forked from Ivasoft/geovisio-website
Various fixes on sequence page and list of sequences
This commit is contained in:
committed by
Jean Andreani
parent
6690eecb81
commit
4aa96cf243
@@ -10,7 +10,7 @@ Available parameters are:
|
||||
|
||||
- `VITE_API_URL`: the URL to the GeoVisio API (with trailing `/`, example: `https://geovisio.fr/`)
|
||||
- `VITE_INSTANCE_NAME`: the name of the instance (example: `IGN`)
|
||||
- `VITE_TILES`: the URL of your tiles : default tiles are the Open Street Map Tiles (example: `https://wxs.ign.fr/essentiels/static/vectorTiles/styles/PLAN.IGN/attenue.json`)
|
||||
- `VITE_TILES`: the URL of your tiles : default tiles are the Open Street Map Tiles (example: `https://data.geopf.fr/annexes/ressources/vectorTiles/styles/PLAN.IGN/standard.json`)
|
||||
- `VITE_MAX_ZOOM`: the max zoom to use on the map (defaults to 24).
|
||||
- `VITE_ZOOM`: the zoom to use at the initialization of the map (defaults to 0).
|
||||
- `VITE_CENTER`: the center position to use at the initialization of the map (defaults to 0).
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"axios": "^1.2.3",
|
||||
"bootstrap": "^5.2.3",
|
||||
"bootstrap-icons": "^1.10.3",
|
||||
"geovisio": "2.5.1-develop-3e498d46",
|
||||
"geovisio": "3.0.0-develop-28e7fdc1",
|
||||
"moment": "^2.29.4",
|
||||
"pako": "^2.1.0",
|
||||
"pinia": "^2.1.4",
|
||||
|
||||
10
src/App.vue
10
src/App.vue
@@ -1,21 +1,17 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, computed } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
import Header from '@/components/Header.vue'
|
||||
import Footer from '@/components/Footer.vue'
|
||||
import { RouterView } from 'vue-router'
|
||||
import { hasASessionCookieDecoded } from '@/utils/auth'
|
||||
import authConfig from './composables/auth'
|
||||
import { authConfig, isAuth } from './composables/auth'
|
||||
const { authConf } = authConfig()
|
||||
const { isLogged } = isAuth()
|
||||
|
||||
let focusMap = ref<string>('focus-map')
|
||||
|
||||
function setFocusMap(value: string) {
|
||||
focusMap.value = value
|
||||
}
|
||||
const isLogged = computed((): boolean => {
|
||||
const cookie = hasASessionCookieDecoded()
|
||||
return !!(cookie && cookie.account)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
1
src/assets/images/en.svg
Normal file
1
src/assets/images/en.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5.8 KiB |
1
src/assets/images/fr.svg
Normal file
1
src/assets/images/fr.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" version="1.1"><path d="M 341 256 L 341 424.064 412.272 423.782 L 483.545 423.500 490.127 420.259 C 498.055 416.355, 505.078 409.201, 508.820 401.218 L 511.500 395.500 511.500 256 L 511.500 116.500 508.820 110.782 C 505.078 102.799, 498.055 95.645, 490.127 91.741 L 483.545 88.500 412.272 88.218 L 341 87.936 341 256" stroke="none" fill="#ff4b55" fill-rule="evenodd"/><path d="M 171 256 L 171 424 256 424 L 341 424 341 256 L 341 88 256 88 L 171 88 171 256" stroke="none" fill="#f4f4f4" fill-rule="evenodd"/><path d="M 27.929 89.367 C 17.637 92.142, 8.008 100.484, 3.160 110.825 L 0.500 116.500 0.500 256 L 0.500 395.500 3.180 401.218 C 6.922 409.201, 13.945 416.355, 21.873 420.259 L 28.455 423.500 99.728 423.782 L 171 424.064 171 256.032 L 171 88 101.750 88.067 C 50.201 88.118, 31.332 88.450, 27.929 89.367" stroke="none" fill="#44449c" fill-rule="evenodd"/></svg>
|
||||
|
After Width: | Height: | Size: 953 B |
1
src/assets/images/hu.svg
Normal file
1
src/assets/images/hu.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" version="1.1"><path d="M 50 17.886 C 41.197 20.732, 35.982 23.858, 29.912 29.928 C 23.834 36.006, 20.197 42.216, 17.612 50.932 C 16.208 55.662, 16 64.083, 16 116.182 L 16 176 256 176 L 496 176 496 116.182 C 496 51.184, 496.061 51.984, 490.272 40.554 C 487.059 34.209, 477.791 24.941, 471.446 21.728 C 459.317 15.586, 474.887 15.995, 255.568 16.054 C 66.632 16.105, 55.194 16.206, 50 17.886" stroke="none" fill="#c0392b" fill-rule="evenodd"/><path d="M 16 256 L 16 336 256 336 L 496 336 496 256 L 496 176 256 176 L 16 176 16 256" stroke="none" fill="#fcfcfc" fill-rule="evenodd"/><path d="M 16 395.818 C 16 460.816, 15.939 460.016, 21.728 471.446 C 24.941 477.791, 34.209 487.059, 40.554 490.272 C 52.678 496.412, 37.187 496, 256 496 C 474.813 496, 459.322 496.412, 471.446 490.272 C 477.791 487.059, 487.059 477.791, 490.272 471.446 C 496.061 460.016, 496 460.816, 496 395.818 L 496 336 256 336 L 16 336 16 395.818" stroke="none" fill="#24ac64" fill-rule="evenodd"/></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
1
src/assets/images/pt.svg
Normal file
1
src/assets/images/pt.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" version="1.1"><path d="M 170.377 245.461 C 170.056 246.296, 169.957 252.497, 170.157 259.240 C 170.443 268.882, 170.911 272.141, 172.345 274.500 C 178.068 283.914, 190.051 284.114, 195.500 274.887 C 197.234 271.950, 197.500 269.704, 197.500 258 L 197.500 244.500 184.230 244.221 C 173.107 243.987, 170.865 244.187, 170.377 245.461" stroke="none" fill="#004cba" fill-rule="evenodd"/><path d="M 153.189 250.776 L 153.500 276.551 156.787 283.223 C 164.622 299.127, 181.991 306.147, 195.922 299.040 C 202.361 295.755, 208.630 289.450, 211.728 283.143 L 214.500 277.500 214.824 251.250 L 215.147 225 184.012 225 L 152.877 225 153.189 250.776 M 170.377 245.461 C 170.056 246.296, 169.953 252.497, 170.147 259.240 C 170.453 269.872, 170.801 271.984, 172.766 275.144 C 176.832 281.682, 184.484 283.718, 190.656 279.903 C 196.539 276.268, 197.480 273.250, 197.491 258 L 197.500 244.500 184.230 244.221 C 173.107 243.987, 170.865 244.187, 170.377 245.461" stroke="none" fill="#ffffff" fill-rule="evenodd"/><path d="M 173.500 148.570 C 140.174 153.092, 115.707 166.576, 97.570 190.413 C 61.447 237.890, 70.878 305.962, 118.472 341.285 C 153.937 367.605, 199.632 369.859, 238.444 347.202 C 249.571 340.707, 267.651 322.620, 274.392 311.242 C 279.888 301.965, 285.403 288.090, 287.784 277.546 C 290.041 267.558, 290.033 243.939, 287.771 233.765 C 283.057 212.569, 274.214 196.340, 259 180.962 C 242.241 164.022, 226.242 155.179, 203.819 150.462 C 196.553 148.933, 178.928 147.834, 173.500 148.570 M 128.750 201.080 C 127.133 202.022, 127 204.912, 127 239 C 127 261.889, 127.417 277.914, 128.097 281.201 C 130.603 293.305, 140.064 308.220, 149.714 315.277 C 164.345 325.975, 179.016 329.755, 193.451 326.543 C 211.705 322.482, 226.548 310.919, 234.893 294.260 C 240.551 282.965, 240.969 279.203, 240.985 239.405 C 240.999 205.696, 240.879 203.201, 239.171 201.655 C 237.517 200.158, 232.254 200.003, 183.921 200.030 C 149.501 200.050, 129.878 200.423, 128.750 201.080" stroke="none" fill="#ffe600" fill-rule="evenodd"/><path d="M 75 1.553 C 40.842 8.877, 14.816 32.647, 3.340 67 L 0.500 75.500 0.236 253.351 C -0.024 429.355, -0.006 431.291, 2.013 439.791 C 9.839 472.741, 35.014 498.784, 69.067 509.155 C 76.325 511.366, 77.765 511.427, 130.250 511.758 L 184 512.097 184 437.765 L 184 363.434 172.750 362.225 C 158.801 360.727, 149.219 358.088, 137.148 352.421 C 81.316 326.207, 59.078 258.161, 88.643 204 C 106.061 172.094, 138.074 151.693, 175.750 148.493 L 184 147.792 184 73.896 L 184 0 132.750 0.079 C 92.950 0.141, 80.048 0.470, 75 1.553" stroke="none" fill="#04a206" fill-rule="evenodd"/><path d="M 184 73.898 L 184 147.841 190.750 148.526 C 210.176 150.497, 226.827 156.307, 242.910 166.727 C 251.981 172.603, 268.750 190.300, 274.476 200.037 C 280.234 209.831, 285.314 222.719, 287.771 233.765 C 290.033 243.939, 290.041 267.558, 287.784 277.546 C 283.274 297.513, 274.210 314.428, 260.101 329.208 C 241.790 348.391, 220.088 359.179, 193.793 362.169 L 184 363.282 184 437.641 L 184 512 306.542 512 C 414.592 512, 429.996 511.812, 436.792 510.412 C 473.570 502.834, 503.058 473.237, 510.450 436.484 C 511.895 429.301, 512.027 410.846, 511.773 252.500 L 511.490 76.500 509.204 69 C 499.478 37.085, 474.881 12.491, 443 2.803 L 435.500 0.523 309.750 0.239 L 184 -0.045 184 73.898 M 128.750 201.080 C 127.133 202.022, 127 204.912, 127 239 C 127 261.889, 127.417 277.914, 128.097 281.201 C 130.603 293.305, 140.064 308.220, 149.714 315.277 C 164.345 325.975, 179.016 329.755, 193.451 326.543 C 211.705 322.482, 226.548 310.919, 234.893 294.260 C 240.551 282.965, 240.969 279.203, 240.985 239.405 C 240.999 205.696, 240.879 203.201, 239.171 201.655 C 237.517 200.158, 232.254 200.003, 183.921 200.030 C 149.501 200.050, 129.878 200.423, 128.750 201.080 M 153.189 251.250 L 153.500 277.500 156.272 283.143 C 161.388 293.558, 171.743 300.889, 182.568 301.758 C 190.722 302.412, 199.009 298.836, 205.555 291.838 C 214.130 282.670, 214.456 281.242, 214.811 251.250 L 215.121 225 184 225 L 152.879 225 153.189 251.250" stroke="none" fill="#f3042b" fill-rule="evenodd"/></svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -107,6 +107,9 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="entry-lang-switcher">
|
||||
<LangSwitcher />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -119,10 +122,13 @@ import { onClickOutside } from '@vueuse/core'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { getAuthRoute, hasASessionCookieDecoded } from '@/utils/auth'
|
||||
import { isAuth } from '../composables/auth'
|
||||
import Link from '@/components/Link.vue'
|
||||
import InstanceName from '@/components/InstanceName.vue'
|
||||
import HeaderOpen from '@/components/header/HeaderOpen.vue'
|
||||
import AccountButton from '@/components/header/AccountButton.vue'
|
||||
import LangSwitcher from '@/components/header/LangSwitcher.vue'
|
||||
const { isLogged } = isAuth()
|
||||
const { t } = useI18n()
|
||||
const route = useRoute()
|
||||
defineProps({
|
||||
@@ -140,10 +146,6 @@ function closeModal(): void {
|
||||
function toggleMenu(): void {
|
||||
menuIsClosed.value = !menuIsClosed.value
|
||||
}
|
||||
const isLogged = computed((): boolean => {
|
||||
const cookie = hasASessionCookieDecoded()
|
||||
return !!(cookie && cookie.account)
|
||||
})
|
||||
const ariaLabel = computed((): string =>
|
||||
menuIsClosed.value
|
||||
? t('general.header.burger_menu_aria_label_open')
|
||||
@@ -199,6 +201,9 @@ const userName = computed((): string => {
|
||||
div {
|
||||
margin-right: toRem(2);
|
||||
}
|
||||
div:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
.link-upload {
|
||||
margin-right: toRem(2);
|
||||
@@ -212,6 +217,9 @@ const userName = computed((): string => {
|
||||
padding-left: toRem(0.5);
|
||||
color: var(--blue);
|
||||
}
|
||||
.entry-lang-switcher {
|
||||
margin-left: toRem(2);
|
||||
}
|
||||
@media (max-width: toRem(102.4)) {
|
||||
.nav {
|
||||
padding-right: toRem(2);
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import { getEnv } from '@/utils'
|
||||
const instanceName = computed((): string | null => {
|
||||
const instanceName = String(import.meta.env.VITE_INSTANCE_NAME)
|
||||
const instanceName = getEnv('VITE_INSTANCE_NAME')
|
||||
if (instanceName) return instanceName
|
||||
return null
|
||||
})
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import axios from 'axios'
|
||||
import { onMounted, onUnmounted, ref, computed } from 'vue'
|
||||
import { onMounted, onUnmounted, ref, watch, computed } from 'vue'
|
||||
import { useSequenceStore } from '@/store/sequence'
|
||||
import { Viewer, StandaloneMap, Editor } from 'geovisio'
|
||||
import { createUrlLink, manageSlashUrl } from '@/utils'
|
||||
import { createUrlLink, manageSlashUrl, getEnv } from '@/utils'
|
||||
import { isAuth } from '../composables/auth'
|
||||
import {
|
||||
createLink,
|
||||
createSequenceLink,
|
||||
@@ -17,13 +18,14 @@ import { useI18n } from 'vue-i18n'
|
||||
import { hasASessionCookieDecoded } from '@/utils/auth'
|
||||
import type {
|
||||
ViewerInterface,
|
||||
ParamsViewerInterface,
|
||||
EditorInterface,
|
||||
StandAloneInterface,
|
||||
MapInterface
|
||||
ParamsViewerInterface,
|
||||
ParamsEditorStandaloneInterface
|
||||
} from '@/views/interfaces/common'
|
||||
const sequenceStore = useSequenceStore()
|
||||
const { t } = useI18n()
|
||||
const { t, locale } = useI18n()
|
||||
const { isLogged } = isAuth()
|
||||
let mapIsLoaded = ref<boolean>(false)
|
||||
let viewer = ref()
|
||||
const props = defineProps({
|
||||
@@ -37,10 +39,6 @@ const props = defineProps({
|
||||
seqBruteDeg: { type: Number, default: 0 },
|
||||
roadDegrees: { type: Number, default: 0 }
|
||||
})
|
||||
const isLogged = computed((): boolean => {
|
||||
const cookie = hasASessionCookieDecoded()
|
||||
return !!(cookie && cookie.account)
|
||||
})
|
||||
const userName = computed((): string => {
|
||||
const cookie = hasASessionCookieDecoded()
|
||||
if (cookie && cookie.account) return cookie.account.name
|
||||
@@ -92,10 +90,15 @@ function createViewerButton(link: HTMLDivElement): void {
|
||||
}
|
||||
)
|
||||
}
|
||||
watch(locale, () => {
|
||||
const viewerEl = document.getElementById('viewer')
|
||||
if (viewerEl) viewerEl.innerHTML = ''
|
||||
initViewer()
|
||||
})
|
||||
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 maxZoom = getEnv('VITE_MAX_ZOOM')
|
||||
const zoom = getEnv('VITE_ZOOM')
|
||||
const center = getEnv('VITE_CENTER')
|
||||
const reportLink = document.createElement('div')
|
||||
reportLink.className = 'gvs-group gvs-group-large gvs-group-btnpanel'
|
||||
let paramsViewer: ViewerInterface = {
|
||||
@@ -103,6 +106,15 @@ function setupViewer(params: ParamsViewerInterface): void {
|
||||
widgets: { customWidget: reportLink },
|
||||
map: { startWide: true }
|
||||
}
|
||||
if (params.map && params.map.raster) {
|
||||
paramsViewer = {
|
||||
...paramsViewer,
|
||||
map: {
|
||||
...paramsViewer.map,
|
||||
raster: params.map.raster
|
||||
}
|
||||
}
|
||||
}
|
||||
if (center && center.length > 0) {
|
||||
const centerMap = center.split(',').map((el: string) => parseInt(el))
|
||||
paramsViewer = {
|
||||
@@ -133,7 +145,7 @@ function setupViewer(params: ParamsViewerInterface): void {
|
||||
}
|
||||
viewer.value = new Viewer(
|
||||
'viewer', // Div ID
|
||||
`${manageSlashUrl()}/api/search`,
|
||||
`${manageSlashUrl()}api`,
|
||||
{
|
||||
...paramsViewer
|
||||
}
|
||||
@@ -155,21 +167,21 @@ function setupStandAlone(params: ParamsViewerInterface): void {
|
||||
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`,
|
||||
`${manageSlashUrl()}api`,
|
||||
{
|
||||
...paramsMap,
|
||||
bounds: bbox
|
||||
}
|
||||
)
|
||||
}
|
||||
function setupEditor(params: ParamsViewerInterface): void {
|
||||
function setupEditor(params: ParamsEditorStandaloneInterface): 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
|
||||
`${manageSlashUrl()}/api/search`,
|
||||
`${manageSlashUrl()}api`,
|
||||
{
|
||||
...paramsMap
|
||||
}
|
||||
@@ -178,22 +190,25 @@ function setupEditor(params: ParamsViewerInterface): void {
|
||||
console.log(e)
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(async (): Promise<void> => {
|
||||
const tiles = String(import.meta.env.VITE_TILES)
|
||||
const rasterTile = String(import.meta.env.VITE_RASTER_TILE)
|
||||
let params: ParamsViewerInterface | MapInterface = {}
|
||||
async function initViewer(): Promise<void> {
|
||||
const tiles = getEnv('VITE_TILES')
|
||||
const rasterTile = getEnv('VITE_RASTER_TILE')
|
||||
let params: ParamsViewerInterface | ParamsEditorStandaloneInterface = {
|
||||
lang: locale.value
|
||||
}
|
||||
if (rasterTile && rasterTile.length > 0) {
|
||||
const raster = JSON.parse(rasterTile)
|
||||
if (props.viewerType === 'viewer') params = { ...params, raster }
|
||||
if (props.viewerType !== 'viewer') params = { ...params, raster }
|
||||
else params = { ...params, map: { raster } }
|
||||
}
|
||||
if (tiles && tiles.length) params = { style: await fetchTiles(tiles) }
|
||||
if (tiles && tiles.length) {
|
||||
params = { ...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 }
|
||||
params = { ...params, fetchOptions: { ...props.fetchOptions } }
|
||||
}
|
||||
try {
|
||||
if (props.viewerType === 'standAlone') setupStandAlone(params)
|
||||
@@ -201,9 +216,11 @@ onMounted(async (): Promise<void> => {
|
||||
else setupViewer(params)
|
||||
mapIsLoaded.value = true
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
mapIsLoaded.value = true
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
initViewer()
|
||||
})
|
||||
onUnmounted((): void => {
|
||||
if (viewer.value && props.viewerType) {
|
||||
|
||||
103
src/components/header/LangSwitcher.vue
Normal file
103
src/components/header/LangSwitcher.vue
Normal file
@@ -0,0 +1,103 @@
|
||||
<template>
|
||||
<div class="dropdown">
|
||||
<img :src="img(`${locale}.svg`)" loading="lazy" class="img-lang" />
|
||||
<span class="desktop">{{ locale.toUpperCase() }}</span>
|
||||
<div class="image-chevron desktop">
|
||||
<i class="bi bi-chevron-down" />
|
||||
</div>
|
||||
<div class="dropdown-block">
|
||||
<button
|
||||
v-for="lang in allLocales"
|
||||
@click.native="changeLocale(lang)"
|
||||
class="item-lang"
|
||||
>
|
||||
<img :src="formatLangListUrl(lang)" loading="lazy" class="img-lang" />
|
||||
<span>{{ lang.toUpperCase() }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { img } from '../../utils/image'
|
||||
const { locale, messages } = useI18n()
|
||||
const displayed = ref<boolean>(true)
|
||||
const allLocales = computed(() => {
|
||||
let locales: string[] = []
|
||||
Object.keys(messages.value).forEach(function (key) {
|
||||
if (locale.value !== key) locales = [...locales, key]
|
||||
})
|
||||
return locales
|
||||
})
|
||||
function changeLocale(lang: string): void {
|
||||
locale.value = lang
|
||||
displayed.value = false
|
||||
}
|
||||
function formatLangListUrl(lang: string): string {
|
||||
return img(`${lang}.svg`)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.dropdown {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
height: toRem(2);
|
||||
}
|
||||
.dropdown:hover > .dropdown-block {
|
||||
display: block;
|
||||
}
|
||||
.dropdown:hover > .image-chevron {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
.dropdown-block {
|
||||
display: none;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
background-color: var(--white);
|
||||
border-radius: toRem(0.5);
|
||||
width: fit-content;
|
||||
left: toRem(-1);
|
||||
top: toRem(2);
|
||||
padding: toRem(0.5);
|
||||
}
|
||||
.img-lang {
|
||||
height: toRem(1.5);
|
||||
margin-right: toRem(0.5);
|
||||
}
|
||||
.desktop {
|
||||
@include text(xs-r-regular);
|
||||
}
|
||||
.image-chevron {
|
||||
margin-left: toRem(0.5);
|
||||
}
|
||||
.item-lang {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
background-color: var(--white);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
@include text(xs-r-regular);
|
||||
margin-bottom: toRem(0.5);
|
||||
}
|
||||
@media (max-width: toRem(50)) {
|
||||
.desktop {
|
||||
display: none;
|
||||
}
|
||||
.img-lang {
|
||||
height: toRem(2);
|
||||
}
|
||||
.dropdown-block {
|
||||
left: toRem(-2);
|
||||
top: toRem(3);
|
||||
padding: toRem(0.5);
|
||||
}
|
||||
.item-lang {
|
||||
margin-bottom: toRem(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -50,12 +50,13 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, watchEffect } from 'vue'
|
||||
import { ref, watchEffect, onMounted, onUnmounted } from 'vue'
|
||||
import InformationCard from '@/components/InformationCard.vue'
|
||||
import Button from '@/components/Button.vue'
|
||||
import Input from '@/components/Input.vue'
|
||||
import WidgetOrientation from '@/components/sequence/WidgetOrientation.vue'
|
||||
import { modulo180 } from '@/utils/calc'
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'triggerAngle', value: number): void
|
||||
(e: 'triggerMovingAngle', value: number): void
|
||||
@@ -68,6 +69,13 @@ const props = defineProps({
|
||||
seqBruteDeg: { type: Number, default: 0 },
|
||||
isLoading: { type: Boolean, default: false }
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
triggerMovingAngle(angleInputValue.value)
|
||||
})
|
||||
onUnmounted(() => {
|
||||
triggerMovingAngle(angleInputValue.value)
|
||||
})
|
||||
watchEffect(() => {
|
||||
angleValue.value = props.seqBruteDeg
|
||||
angleInputValue.value = Math.round(props.seqBruteDeg - props.roadDegrees)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<Button
|
||||
look="button--blue"
|
||||
type="submit"
|
||||
:text="$t('pages.sequence.orientation_panel_button')"
|
||||
:text="$t('pages.sequence.sort_panel_button')"
|
||||
:disabled="sortValue.length === 0"
|
||||
/>
|
||||
</form>
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
@mousedown="mousedown"
|
||||
@mousemove="handleMouseMove"
|
||||
@mouseup="mouseup"
|
||||
@mouseout="mouseup"
|
||||
class="cursor-img"
|
||||
>
|
||||
<button class="arrow-img arrow-img-1" @click="clickAndMove(45)">
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import axios from 'axios'
|
||||
import { onMounted, ref } from 'vue'
|
||||
import { onMounted, watchEffect, ref } from 'vue'
|
||||
import { hasASessionCookieDecoded } from '@/utils/auth'
|
||||
import type { AuthConfigInterface } from './interfaces/Auth'
|
||||
|
||||
export default function authConfig() {
|
||||
export function authConfig() {
|
||||
const authConf = ref<AuthConfigInterface>()
|
||||
|
||||
async function getConfig(): Promise<AuthConfigInterface> {
|
||||
@@ -15,3 +16,12 @@ export default function authConfig() {
|
||||
onMounted(async () => (authConf.value = await getConfig()))
|
||||
return { authConf }
|
||||
}
|
||||
|
||||
export function isAuth() {
|
||||
const isLogged = ref<boolean>(false)
|
||||
watchEffect(() => {
|
||||
const cookie = hasASessionCookieDecoded()
|
||||
isLogged.value = !!(cookie && cookie.account)
|
||||
})
|
||||
return { isLogged }
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"sort_panel_check_gps": "GPS Date",
|
||||
"sort_panel_check_file": "File date",
|
||||
"sort_panel_check_name": "File name",
|
||||
"sort_panel_button": "Validate sort",
|
||||
"created": "Uploaded :",
|
||||
"taken": "Shot on :",
|
||||
"duration": "Duration :",
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
"sort_panel_check_gps": "Date du GPS",
|
||||
"sort_panel_check_file": "Date de la caméra",
|
||||
"sort_panel_check_name": "Nom du fichier",
|
||||
"sort_panel_button": "Valider le tri",
|
||||
"created": "Versement :",
|
||||
"taken": "Prise de vue :",
|
||||
"duration": "Durée :",
|
||||
|
||||
@@ -1,162 +1,162 @@
|
||||
{
|
||||
"general": {
|
||||
"meta": {
|
||||
"title": "Instância Panoramax",
|
||||
"description": "Panoramax, a alternativa livre para foto-mapear território."
|
||||
},
|
||||
"header": {
|
||||
"contribute_text": "Porquê Contribuir?",
|
||||
"viewer": "Visualizador",
|
||||
"my_account": "Minha Conta",
|
||||
"upload_text": "+ Partilhar Imagens",
|
||||
"alt_logo": "Logo da Instância",
|
||||
"alt_photos": "Icon das Imagens",
|
||||
"alt_information": "Icon do Utilizador",
|
||||
"alt_settings": "Icon das Definições",
|
||||
"alt_logout": "Icon de Terminar Sessão",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Versão Beta",
|
||||
"logout_text": "Terminar Sessão",
|
||||
"my_information_text": "Meus Detalhes",
|
||||
"my_settings_text": "Minhas Definições",
|
||||
"burger_menu_aria_label_open": "Mostrar Menu",
|
||||
"burger_menu_aria_label_closed": "Esconder menu",
|
||||
"sequences_text": "Minhas Imagens",
|
||||
"login_text": "Iniciar Sessão",
|
||||
"register_text": "Criar Conta"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "Descobrir Panoramax",
|
||||
"information_gitlab": "Mostrar código fonte",
|
||||
"gitlab_logo": "Logo do GitLab",
|
||||
"ay11_text": "Acessibilidade: Não conforme"
|
||||
},
|
||||
"error_text": "Um erro ocorreu",
|
||||
"success_text": "Atualização concluida",
|
||||
"title": "Instância Panoramax"
|
||||
"general": {
|
||||
"meta": {
|
||||
"title": "Instância Panoramax",
|
||||
"description": "Panoramax, a alternativa livre para foto-mapear território."
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_button_text": "Reportar esta imagem",
|
||||
"sequence_title": "Ver a sequencia",
|
||||
"open_fullscreen": "Modo ecrã inteiro",
|
||||
"close_fullscreen": "Modo normal",
|
||||
"report_mail": "?subject=⚠️ Denuncia na imagem {picId}&body=Olá, %0D%0A%0D%0A Problema na imagem (manter tipo de problema reportado): %0D%0A%0D%0A %0D%0A%0D%0A conteúdo inapropriado / falta de desfoque num elemento a ser anonimizado ou desfocado por razões de segurançans / sobredesfocamento (demasiado desfocamento) %0D%0A%0D%0A Link para a imagem afetada: {link} %0D%0A%0D%0A Detalhes dos elementos afetados (especialmente para problemas de desfocamento - o que deveria ou não estar defocado?):"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Meus tokens",
|
||||
"setting_tooltip": "Mostrar ou esconder token"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Publicado",
|
||||
"sequence_waiting": "Ainda a processar",
|
||||
"sequence_hidden": "Escondido",
|
||||
"sequence_form_title": "Editar o titulo",
|
||||
"back_button": "Voltar à lista das minhas sequencias",
|
||||
"delete_sequence_tooltip": "Permanentemente apagar esta sequencia",
|
||||
"hide_photo_tooltip": "Esconder imagens selecionadas",
|
||||
"delete_photo_tooltip": "Apagar permanentemente as imagens selecionadas",
|
||||
"conf_pic_msg": "⚠️ As imagens selecionadas irão ser apagadas permanentemente",
|
||||
"conf_sequence_msg": "⚠️ Esta sequencia vai ser apagada permanentemente",
|
||||
"button_panel_orientation": "Definir orientação",
|
||||
"button_panel_sort": "Ordenar sequencia",
|
||||
"orientation_panel_tooltip": "Arraste a caixa azul para a direção desejada\"",
|
||||
"orientation_input_label": "ou altere o ângulo aqui",
|
||||
"orientation_input_placeholder": "Valor entre -180 e 180",
|
||||
"orientation_input_error_value": "O valor tem de estar entre -180 e 180",
|
||||
"orientation_panel_button": "Validar posição",
|
||||
"orientation_updated": "Orientação atualizada",
|
||||
"sort_updated": "Sequencia ordenada",
|
||||
"hide_sequence_tooltip": "Esconder estas sequencias",
|
||||
"info_msg_maj": "Use a tecla SHIFT para selecionar várias imagens",
|
||||
"button_panel_photos": "Gerir imagens",
|
||||
"orientation_panel_title": "Ajustar a orientação de todas as fotos na sequencia",
|
||||
"duration_end": "Fim :",
|
||||
"camera": "Camera :",
|
||||
"button_delete": "Apagar a sequencia",
|
||||
"button_disable": "Ocultar a sequencia",
|
||||
"button_enable": "Mostrar a sequencia",
|
||||
"picture_selected": "{count} imagem selecionada| {count} imagens selecionadas",
|
||||
"hours": "{count} hora| {count} horas",
|
||||
"minutes": "{count} minuto| {count} minutos",
|
||||
"seconds": "{count} segundo| {count} segundos",
|
||||
"select_text": "Selecionar tudo",
|
||||
"unselect_text": "Desselecionar tudo",
|
||||
"select_shift_text": "Selecione múltiplas imagens com shift",
|
||||
"waiting_process": "Foto em progresso",
|
||||
"no_image": "Sem imagens na sequencia",
|
||||
"sort_panel_title": "Definição de ordenamento da sequencia",
|
||||
"sort_panel_settings": "Ordenar sequencia por:",
|
||||
"sort_panel_settings_order": "Ordenar:",
|
||||
"sort_panel_settings_order_increase": "Ascendente",
|
||||
"sort_panel_settings_order_decrease": "Descendente",
|
||||
"sort_panel_check_gps": "Data GPS",
|
||||
"sort_panel_check_file": "Data do ficheiro",
|
||||
"sort_panel_check_name": "Nome do ficheiro",
|
||||
"created": "Enviada :",
|
||||
"taken": "Tirada em :",
|
||||
"duration": "Duração :",
|
||||
"duration_begin": "Inicio :"
|
||||
},
|
||||
"sequences": {
|
||||
"no_sequence_found": "Nenhuma sequencia encontrada",
|
||||
"filter_bbox_button": "Procurar nesta área",
|
||||
"filter_date_close_button": "Fechar",
|
||||
"title": "Minhas sequencias",
|
||||
"filter_date_upload_title": "Filtrar por data de envio:",
|
||||
"radio_date_placeholder": "03/01/2024",
|
||||
"radio_date": "data",
|
||||
"hide_button": "Ocultar",
|
||||
"show_button": "Mostrar",
|
||||
"delete_button": "Apagar",
|
||||
"filter_date_reset_button": "Restaurar",
|
||||
"filter_date_title": "Filtrar por data da foto :",
|
||||
"sequence_name": "Nome",
|
||||
"sequence_photos": "Fotos",
|
||||
"sequence_date": "Tirada em",
|
||||
"sequence_creation": "Enviar",
|
||||
"sequence_creation_tooltip": "Filtrar por data de envio",
|
||||
"sequence_date_tooltip": "Filtrar por data da foto",
|
||||
"reset_filter_button": "Restaurar filtros",
|
||||
"sequence_status": "Estado",
|
||||
"sequence_published": "Publicado",
|
||||
"sequence_waiting": "Ainda a processar",
|
||||
"sequence_hidden": "Oculto",
|
||||
"no_sequences_text": "Ainda não tem fotos publicadas 😢",
|
||||
"button_upload": "Enviar imagens",
|
||||
"sequence_deleted": "A sequencia foi apagada"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Porquê contribuir para o Panoramax?",
|
||||
"upload_description": "A aplicação web Panoramax permite o envio de todas as fotos de campo em formato JPEG com apenas um clique. Não são necessárias habilidades de programação. Para grandes números de fotos, recomendamos o uso da ferramenta em linha comandos",
|
||||
"information_about_description": "Uma API está disponivel para recolher todos os metadados e fotos. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nDescubra mais aqui </a>\nOs dados também são exibidos na forma de <a href='{docTiles}' target='_blank' style='color:#0a1f69'> vector tiles </a>",
|
||||
"card_description2": "Fotos 360º não são obrigatórias: fotos tiradas com o smartphone são tudo o que é necessário. Datas, localização e formato jpg são os únicos pré-requisitos.",
|
||||
"description": "Contribuir para o Panoramax significa participar no desenvolvimento de um recurso digital geo-comum, livre, soberano e reutilizavel. Cada foto geolocalizada publicada no panoramax pode ser usada por qualquer um para uma grande variedade de propósitos, por exemplo, por uma autoridade local que precise de observar o estado das estradas, ou por um operador de telecomunicações para preparar uma intrevenção.\n\nCada contribuidor pode enviar as suas sequencias de imagens, modificar e consulta-las, tal como ver todas as outras - 360º ou não - contribuidas pela comunidade. O desfocamento das caras e matriculas é automático na plataforma.",
|
||||
"alt_img_map": "Ilustração de uma mulher a olhar para um mapa com o seu smartphone geolocalizado",
|
||||
"card_photo1": "Locais visíveis de uma estrada publica",
|
||||
"card_photo2": "Fotos publicadas em formato 360º ou não",
|
||||
"card_photo3": "Fotos facilmente reutilizáveis",
|
||||
"card_photo4": "Uma fácil e rápida contribuição de imagens",
|
||||
"card_alt_photo1": "Imagem de um edificio",
|
||||
"card_alt_photo2": "Imagem a mostrar 360-graus",
|
||||
"card_alt_photo3": "Imagem a mostrar um mapa com um ponteiro",
|
||||
"card_alt_photo4": "Imagem a representar um ponteiro",
|
||||
"card_description1": "Todas as fotos tiradas de uma estrada publica são aceites, desde que sejam geolocalizadas e vistas desde o solo.",
|
||||
"card_description3": "Todas as fotos são acessíveis e reutilizáveis sem uma conta: via website ou API standard (standard STAC).",
|
||||
"card_description4": "Várias ferramentas estão disponíveis para facilitar contribuições, incluindo em linhas de comandos e no site.",
|
||||
"upload_subtitle": "Envie as suas fotos facilmente online",
|
||||
"upload_illustration_alt": "Ilustração a mostrar o envio de fotos online",
|
||||
"upload_button": "+ Enviar fotos",
|
||||
"command_line_subtitle": "Ferramenta de linha de comandos",
|
||||
"comment_install": "Instalar a ferramenta de linha de comandos geovisio",
|
||||
"comment_upload": "Iniciar o comando de envio de imagens na pasta escolhida",
|
||||
"button_copy": "Copiar",
|
||||
"information_subtitle": "Aqui, todas as suas fotos são acessíveis para todos: ",
|
||||
"information_text1": "Automaticamente desfocado em conformidade com a legislação.",
|
||||
"information_text3": "No seu formato e resolução original para diversas reutilizações.",
|
||||
"information_about_title": "Precisa acesso a fotos?",
|
||||
"terminal_text": "geovisio upload --api-url {url} <PASTA_FOTOS>",
|
||||
"information_text2": "As fotos enviadas serão publicadas como {word}"
|
||||
}
|
||||
"header": {
|
||||
"contribute_text": "Porquê Contribuir?",
|
||||
"viewer": "Visualizador",
|
||||
"my_account": "Minha Conta",
|
||||
"upload_text": "+ Partilhar Imagens",
|
||||
"alt_logo": "Logo da Instância",
|
||||
"alt_photos": "Icon das Imagens",
|
||||
"alt_information": "Icon do Utilizador",
|
||||
"alt_settings": "Icon das Definições",
|
||||
"alt_logout": "Icon de Terminar Sessão",
|
||||
"title": "Panoramax",
|
||||
"beta_text": "Versão Beta",
|
||||
"logout_text": "Terminar Sessão",
|
||||
"my_information_text": "Meus Detalhes",
|
||||
"my_settings_text": "Minhas Definições",
|
||||
"burger_menu_aria_label_open": "Mostrar Menu",
|
||||
"burger_menu_aria_label_closed": "Esconder menu",
|
||||
"sequences_text": "Minhas Imagens",
|
||||
"login_text": "Iniciar Sessão",
|
||||
"register_text": "Criar Conta"
|
||||
},
|
||||
"footer": {
|
||||
"panoramax_site": "Descobrir Panoramax",
|
||||
"information_gitlab": "Mostrar código fonte",
|
||||
"gitlab_logo": "Logo do GitLab",
|
||||
"ay11_text": "Acessibilidade: Não conforme"
|
||||
},
|
||||
"error_text": "Um erro ocorreu",
|
||||
"success_text": "Atualização concluida",
|
||||
"title": "Instância Panoramax"
|
||||
},
|
||||
"pages": {
|
||||
"home": {
|
||||
"report_button_text": "Reportar esta imagem",
|
||||
"sequence_title": "Ver a sequencia",
|
||||
"open_fullscreen": "Modo ecrã inteiro",
|
||||
"close_fullscreen": "Modo normal",
|
||||
"report_mail": "?subject=⚠️ Denuncia na imagem {picId}&body=Olá, %0D%0A%0D%0A Problema na imagem (manter tipo de problema reportado): %0D%0A%0D%0A %0D%0A%0D%0A conteúdo inapropriado / falta de desfoque num elemento a ser anonimizado ou desfocado por razões de segurançans / sobredesfocamento (demasiado desfocamento) %0D%0A%0D%0A Link para a imagem afetada: {link} %0D%0A%0D%0A Detalhes dos elementos afetados (especialmente para problemas de desfocamento - o que deveria ou não estar defocado?):"
|
||||
},
|
||||
"settings": {
|
||||
"title": "Meus tokens",
|
||||
"setting_tooltip": "Mostrar ou esconder token"
|
||||
},
|
||||
"sequence": {
|
||||
"sequence_published": "Publicado",
|
||||
"sequence_waiting": "Ainda a processar",
|
||||
"sequence_hidden": "Escondido",
|
||||
"sequence_form_title": "Editar o titulo",
|
||||
"back_button": "Voltar à lista das minhas sequencias",
|
||||
"delete_sequence_tooltip": "Permanentemente apagar esta sequencia",
|
||||
"hide_photo_tooltip": "Esconder imagens selecionadas",
|
||||
"delete_photo_tooltip": "Apagar permanentemente as imagens selecionadas",
|
||||
"conf_pic_msg": "⚠️ As imagens selecionadas irão ser apagadas permanentemente",
|
||||
"conf_sequence_msg": "⚠️ Esta sequencia vai ser apagada permanentemente",
|
||||
"button_panel_orientation": "Definir orientação",
|
||||
"button_panel_sort": "Ordenar sequencia",
|
||||
"orientation_panel_tooltip": "Arraste a caixa azul para a direção desejada\"",
|
||||
"orientation_input_label": "ou altere o ângulo aqui",
|
||||
"orientation_input_placeholder": "Valor entre -180 e 180",
|
||||
"orientation_input_error_value": "O valor tem de estar entre -180 e 180",
|
||||
"orientation_panel_button": "Validar posição",
|
||||
"orientation_updated": "Orientação atualizada",
|
||||
"sort_updated": "Sequencia ordenada",
|
||||
"hide_sequence_tooltip": "Esconder estas sequencias",
|
||||
"info_msg_maj": "Use a tecla SHIFT para selecionar várias imagens",
|
||||
"button_panel_photos": "Gerir imagens",
|
||||
"orientation_panel_title": "Ajustar a orientação de todas as fotos na sequencia",
|
||||
"duration_end": "Fim :",
|
||||
"camera": "Camera :",
|
||||
"button_delete": "Apagar a sequencia",
|
||||
"button_disable": "Ocultar a sequencia",
|
||||
"button_enable": "Mostrar a sequencia",
|
||||
"picture_selected": "{count} imagem selecionada| {count} imagens selecionadas",
|
||||
"hours": "{count} hora| {count} horas",
|
||||
"minutes": "{count} minuto| {count} minutos",
|
||||
"seconds": "{count} segundo| {count} segundos",
|
||||
"select_text": "Selecionar tudo",
|
||||
"unselect_text": "Desselecionar tudo",
|
||||
"select_shift_text": "Selecione múltiplas imagens com shift",
|
||||
"waiting_process": "Foto em progresso",
|
||||
"no_image": "Sem imagens na sequencia",
|
||||
"sort_panel_title": "Definição de ordenamento da sequencia",
|
||||
"sort_panel_settings": "Ordenar sequencia por:",
|
||||
"sort_panel_settings_order": "Ordenar:",
|
||||
"sort_panel_settings_order_increase": "Ascendente",
|
||||
"sort_panel_settings_order_decrease": "Descendente",
|
||||
"sort_panel_check_gps": "Data GPS",
|
||||
"sort_panel_check_file": "Data do ficheiro",
|
||||
"sort_panel_check_name": "Nome do ficheiro",
|
||||
"created": "Enviada :",
|
||||
"taken": "Tirada em :",
|
||||
"duration": "Duração :",
|
||||
"duration_begin": "Inicio :"
|
||||
},
|
||||
"sequences": {
|
||||
"no_sequence_found": "Nenhuma sequencia encontrada",
|
||||
"filter_bbox_button": "Procurar nesta área",
|
||||
"filter_date_close_button": "Fechar",
|
||||
"title": "Minhas sequencias",
|
||||
"filter_date_upload_title": "Filtrar por data de envio:",
|
||||
"radio_date_placeholder": "03/01/2024",
|
||||
"radio_date": "data",
|
||||
"hide_button": "Ocultar",
|
||||
"show_button": "Mostrar",
|
||||
"delete_button": "Apagar",
|
||||
"filter_date_reset_button": "Restaurar",
|
||||
"filter_date_title": "Filtrar por data da foto :",
|
||||
"sequence_name": "Nome",
|
||||
"sequence_photos": "Fotos",
|
||||
"sequence_date": "Tirada em",
|
||||
"sequence_creation": "Enviar",
|
||||
"sequence_creation_tooltip": "Filtrar por data de envio",
|
||||
"sequence_date_tooltip": "Filtrar por data da foto",
|
||||
"reset_filter_button": "Restaurar filtros",
|
||||
"sequence_status": "Estado",
|
||||
"sequence_published": "Publicado",
|
||||
"sequence_waiting": "Ainda a processar",
|
||||
"sequence_hidden": "Oculto",
|
||||
"no_sequences_text": "Ainda não tem fotos publicadas 😢",
|
||||
"button_upload": "Enviar imagens",
|
||||
"sequence_deleted": "A sequencia foi apagada"
|
||||
},
|
||||
"share_pictures": {
|
||||
"title": "Porquê contribuir para o Panoramax?",
|
||||
"upload_description": "A aplicação web Panoramax permite o envio de todas as fotos de campo em formato JPEG com apenas um clique. Não são necessárias habilidades de programação. Para grandes números de fotos, recomendamos o uso da ferramenta em linha comandos",
|
||||
"information_about_description": "Uma API está disponivel para recolher todos os metadados e fotos. <a href='{docLink}' target='_blank' style='color:#0a1f69'>\nDescubra mais aqui </a>\nOs dados também são exibidos na forma de <a href='{docTiles}' target='_blank' style='color:#0a1f69'> vector tiles </a>",
|
||||
"card_description2": "Fotos 360º não são obrigatórias: fotos tiradas com o smartphone são tudo o que é necessário. Datas, localização e formato jpg são os únicos pré-requisitos.",
|
||||
"description": "Contribuir para o Panoramax significa participar no desenvolvimento de um recurso digital geo-comum, livre, soberano e reutilizavel. Cada foto geolocalizada publicada no panoramax pode ser usada por qualquer um para uma grande variedade de propósitos, por exemplo, por uma autoridade local que precise de observar o estado das estradas, ou por um operador de telecomunicações para preparar uma intrevenção.\n\nCada contribuidor pode enviar as suas sequencias de imagens, modificar e consulta-las, tal como ver todas as outras - 360º ou não - contribuidas pela comunidade. O desfocamento das caras e matriculas é automático na plataforma.",
|
||||
"alt_img_map": "Ilustração de uma mulher a olhar para um mapa com o seu smartphone geolocalizado",
|
||||
"card_photo1": "Locais visíveis de uma estrada publica",
|
||||
"card_photo2": "Fotos publicadas em formato 360º ou não",
|
||||
"card_photo3": "Fotos facilmente reutilizáveis",
|
||||
"card_photo4": "Uma fácil e rápida contribuição de imagens",
|
||||
"card_alt_photo1": "Imagem de um edificio",
|
||||
"card_alt_photo2": "Imagem a mostrar 360-graus",
|
||||
"card_alt_photo3": "Imagem a mostrar um mapa com um ponteiro",
|
||||
"card_alt_photo4": "Imagem a representar um ponteiro",
|
||||
"card_description1": "Todas as fotos tiradas de uma estrada publica são aceites, desde que sejam geolocalizadas e vistas desde o solo.",
|
||||
"card_description3": "Todas as fotos são acessíveis e reutilizáveis sem uma conta: via website ou API standard (standard STAC).",
|
||||
"card_description4": "Várias ferramentas estão disponíveis para facilitar contribuições, incluindo em linhas de comandos e no site.",
|
||||
"upload_subtitle": "Envie as suas fotos facilmente online",
|
||||
"upload_illustration_alt": "Ilustração a mostrar o envio de fotos online",
|
||||
"upload_button": "+ Enviar fotos",
|
||||
"command_line_subtitle": "Ferramenta de linha de comandos",
|
||||
"comment_install": "Instalar a ferramenta de linha de comandos geovisio",
|
||||
"comment_upload": "Iniciar o comando de envio de imagens na pasta escolhida",
|
||||
"button_copy": "Copiar",
|
||||
"information_subtitle": "Aqui, todas as suas fotos são acessíveis para todos: ",
|
||||
"information_text1": "Automaticamente desfocado em conformidade com a legislação.",
|
||||
"information_text3": "No seu formato e resolução original para diversas reutilizações.",
|
||||
"information_about_title": "Precisa acesso a fotos?",
|
||||
"terminal_text": "geovisio upload --api-url {url} <PASTA_FOTOS>",
|
||||
"information_text2": "As fotos enviadas serão publicadas como {word}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
11
src/main.ts
11
src/main.ts
@@ -12,10 +12,12 @@ import { pinia } from './store'
|
||||
import fr from './locales/fr.json'
|
||||
import en from './locales/en.json'
|
||||
import hu from './locales/hu.json'
|
||||
import pt from './locales/pt.json'
|
||||
import './assets/main.scss'
|
||||
import 'bootstrap/dist/css/bootstrap.css'
|
||||
import 'bootstrap-icons/font/bootstrap-icons.css'
|
||||
import 'geovisio/build/index.css'
|
||||
import { getEnv } from '@/utils'
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@@ -23,10 +25,10 @@ declare global {
|
||||
}
|
||||
}
|
||||
|
||||
axios.defaults.baseURL = String(import.meta.env.VITE_API_URL)
|
||||
axios.defaults.baseURL = getEnv('VITE_API_URL')
|
||||
axios.defaults.withCredentials = true
|
||||
const matomoHost = String(import.meta.env.VITE_MATOMO_HOST)
|
||||
const matomoSiteId = String(import.meta.env.VITE_MATOMO_SITE_ID)
|
||||
const matomoHost = getEnv('VITE_MATOMO_HOST')
|
||||
const matomoSiteId = getEnv('VITE_MATOMO_SITE_ID')
|
||||
const matomoExist = matomoHost && matomoSiteId
|
||||
|
||||
const i18n = createI18n({
|
||||
@@ -38,7 +40,8 @@ const i18n = createI18n({
|
||||
messages: {
|
||||
fr,
|
||||
en,
|
||||
hu
|
||||
hu,
|
||||
pt
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ describe('Template', () => {
|
||||
}
|
||||
})
|
||||
expect(wrapper.html()).contains('class="logged-link desktop"')
|
||||
expect(wrapper.html()).contains('text="Pourquoi contribuer ?"')
|
||||
expect(wrapper.html()).contains('text="Pourquoi contribuer ?"')
|
||||
})
|
||||
})
|
||||
describe('When the user is in mobile', () => {
|
||||
@@ -63,7 +63,7 @@ describe('Template', () => {
|
||||
userProfileUrlLength: 5
|
||||
}
|
||||
})
|
||||
expect(wrapper.html()).contains('text="Pourquoi contribuer ?"')
|
||||
expect(wrapper.html()).contains('text="Pourquoi contribuer ?"')
|
||||
expect(wrapper.html()).contains('text="+ Partager des photos"')
|
||||
expect(wrapper.html()).contains('text="Mes informations"')
|
||||
expect(wrapper.html()).contains('text="Mes paramètres"')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { it, describe, expect, vi, beforeEach } from 'vitest'
|
||||
import { it, describe, expect, vi } from 'vitest'
|
||||
import {
|
||||
imageStatus,
|
||||
photoToDeleteOrPatchSelected,
|
||||
@@ -11,7 +11,6 @@ import {
|
||||
decodingFlaskCookie,
|
||||
hasASessionCookieDecoded
|
||||
} from '../../utils/auth'
|
||||
import { img } from '../../utils/image'
|
||||
import { useCookies } from 'vue3-cookies'
|
||||
vi.mock('vue3-cookies', () => {
|
||||
const mockCookies = {
|
||||
@@ -177,13 +176,6 @@ describe('hasASessionCookieDecoded', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('img', () => {
|
||||
it('should render the formated img path', () => {
|
||||
const name = 'my-img'
|
||||
expect(img(name)).contains('src/assets/images')
|
||||
})
|
||||
})
|
||||
|
||||
describe('sortByName', () => {
|
||||
it('should return the the list sorted by name', () => {
|
||||
const list1 = [
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
function modulo180(value: number, roadDegrees: number): number {
|
||||
let moduloAngle = (value - roadDegrees) % 360
|
||||
if (moduloAngle < -180) moduloAngle += 360
|
||||
if (moduloAngle > 180) moduloAngle -= 360
|
||||
while (moduloAngle > 180 || moduloAngle < -180) {
|
||||
if (moduloAngle < -180) moduloAngle += 360
|
||||
if (moduloAngle > 180) moduloAngle -= 360
|
||||
}
|
||||
return Math.round(moduloAngle)
|
||||
}
|
||||
|
||||
|
||||
@@ -3,9 +3,14 @@ function createUrlLink(picId: string): string {
|
||||
}
|
||||
|
||||
function manageSlashUrl(): string {
|
||||
let apiUrl = String(import.meta.env.VITE_API_URL)
|
||||
let apiUrl = getEnv('VITE_API_URL')
|
||||
if (apiUrl.charAt(apiUrl.length - 1) !== '/') apiUrl += '/'
|
||||
return apiUrl
|
||||
}
|
||||
|
||||
export { createUrlLink, manageSlashUrl }
|
||||
function getEnv(value: string | undefined) {
|
||||
if (value) return import.meta.env[value]
|
||||
return null
|
||||
}
|
||||
|
||||
export { createUrlLink, manageSlashUrl, getEnv }
|
||||
|
||||
@@ -10,9 +10,10 @@
|
||||
<section v-if="sequence" class="entry-viewer">
|
||||
<WebsiteViewer
|
||||
:key="viewerType"
|
||||
:fetch-options="{ fetchOptions: { credentials: 'include' } }"
|
||||
:pic-id="pictures[0].id"
|
||||
:fetch-options="{ credentials: 'include' }"
|
||||
:pic-id="pictures[0] && pictures[0].id ? pictures[0].id : undefined"
|
||||
:seq-id="sequence.id"
|
||||
:user-id="getUserId"
|
||||
:viewer-type="viewerType"
|
||||
:seq-brute-deg="seqBruteDeg"
|
||||
:road-degrees="seqDegrees"
|
||||
@@ -202,7 +203,7 @@ import PanelPhotosManagement from '@/components/sequence/PanelPhotosManagement.v
|
||||
import PanelOrientationManagement from '@/components/sequence/PanelOrientationManagement.vue'
|
||||
import PanelSortManagement from '@/components/sequence/PanelSortManagement.vue'
|
||||
import WebsiteViewer from '@/components/WebsiteViewer.vue'
|
||||
import type ViewerType from '@/components/Viewer.vue'
|
||||
import type ViewerType from '@/components/WebsiteViewer.vue'
|
||||
import { durationCalc, formatDate } from '@/utils/dates'
|
||||
import {
|
||||
deleteACollectionItem,
|
||||
@@ -219,6 +220,7 @@ import {
|
||||
spliceIntoChunks,
|
||||
formatPaginationItems
|
||||
} from '@/views/utils/sequence/index'
|
||||
import { getEnv } from '@/utils'
|
||||
import type {
|
||||
ResponseUserPhotoInterface,
|
||||
ResponseUserPhotoLinksInterface,
|
||||
@@ -279,6 +281,7 @@ onMounted(async () => {
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
isLoading.value = false
|
||||
})
|
||||
onUnmounted(() => {
|
||||
document.removeEventListener('keydown', (evt) => {
|
||||
@@ -312,7 +315,7 @@ function setPanelView(value: string): void {
|
||||
panelView.value = value
|
||||
if (!viewerRef?.value?.viewer) return
|
||||
if (value === 'orientation') {
|
||||
const raster = String(import.meta.env.VITE_RASTER_TILE)
|
||||
const raster = getEnv('VITE_RASTER_TILE')
|
||||
if (raster) viewerRef.value.viewer.map.setBackground('aerial')
|
||||
setSeqDegrees()
|
||||
} else viewerRef.value.viewer.map.setBackground('streets')
|
||||
@@ -348,7 +351,7 @@ const isSequenceOwner = computed((): boolean => {
|
||||
sequence.value.providers[0].name === cookies.get('user_name')
|
||||
)
|
||||
})
|
||||
|
||||
const getUserId = computed<string>((): string => cookies.get('user_id'))
|
||||
const sequenceStatus = computed((): string => {
|
||||
if (sequence.value?.status === 'ready')
|
||||
return t('pages.sequence.sequence_published')
|
||||
@@ -470,7 +473,11 @@ function triggerCheck(value: CheckboxInterface): void {
|
||||
} else picturesToDelete.value = []
|
||||
}
|
||||
function orientMovingSequence(value: number): void {
|
||||
if (!viewerRef?.value?.viewer) return
|
||||
if (
|
||||
!viewerRef?.value?.viewer ||
|
||||
!viewerRef.value.viewer?.psv?.getPictureMetadata()
|
||||
)
|
||||
return
|
||||
viewerRef.value.viewer.previewSequenceHeadingChange(value)
|
||||
}
|
||||
async function orientSequence(value: number): Promise<void> {
|
||||
@@ -481,6 +488,11 @@ async function orientSequence(value: number): Promise<void> {
|
||||
})
|
||||
formatSequenceFetched(data)
|
||||
sequenceStore.addToastText(t('pages.sequence.orientation_updated'), 'success')
|
||||
if (viewerRef.value) {
|
||||
orientMovingSequence(value)
|
||||
await viewerRef.value.viewer._loadSequence()
|
||||
await viewerRef.value.viewer.psv.clearPictureMetadataCache()
|
||||
}
|
||||
isLoadingOrient.value = false
|
||||
}
|
||||
async function sortSequence(value: string): Promise<void> {
|
||||
|
||||
@@ -21,11 +21,7 @@
|
||||
>
|
||||
<WebsiteViewer
|
||||
v-if="collectionBbox.length"
|
||||
:fetch-options="{
|
||||
fetchOptions: {
|
||||
credentials: 'include'
|
||||
}
|
||||
}"
|
||||
:fetch-options="{ credentials: 'include' }"
|
||||
viewer-type="standAlone"
|
||||
:user-id="getUserId"
|
||||
:bbox="collectionBbox"
|
||||
@@ -295,7 +291,7 @@ import {
|
||||
import { useCookies } from 'vue3-cookies'
|
||||
import axios from 'axios'
|
||||
import WebsiteViewer from '@/components/WebsiteViewer.vue'
|
||||
import type ViewerType from '@/components/Viewer.vue'
|
||||
import type ViewerType from '@/components/WebsiteViewer.vue'
|
||||
import Button from '@/components/Button.vue'
|
||||
import Link from '@/components/Link.vue'
|
||||
import Toast from '@/components/Toast.vue'
|
||||
@@ -421,11 +417,18 @@ async function deleteCollection(
|
||||
sequence: SequenceLinkInterface
|
||||
): Promise<void> {
|
||||
isLoading.value = true
|
||||
if (confirm(t('pages.sequence.conf_sequence_msg'))) {
|
||||
await deleteACollection(sequence.id)
|
||||
await fetchAndFormatSequence()
|
||||
if (viewerRef.value) viewerRef.value.viewer.map.reloadVectorTiles()
|
||||
try {
|
||||
if (confirm(t('pages.sequence.conf_sequence_msg'))) {
|
||||
await deleteACollection(sequence.id)
|
||||
await fetchAndFormatSequence()
|
||||
}
|
||||
} catch (error: unknown) {
|
||||
const err = error as { response: { data: { message: string } } }
|
||||
if (err.response.data.message.includes('No data loaded for user')) {
|
||||
userSequences.value = []
|
||||
}
|
||||
}
|
||||
if (viewerRef.value) viewerRef.value.viewer.map.reloadVectorTiles()
|
||||
isLoading.value = false
|
||||
}
|
||||
function sequenceStatus(status: string): string {
|
||||
@@ -559,7 +562,6 @@ onMounted(async () => {
|
||||
isLoading.value = false
|
||||
} catch (err) {
|
||||
isLoading.value = false
|
||||
console.log(err)
|
||||
}
|
||||
})
|
||||
function formatUri(): void {
|
||||
@@ -713,6 +715,8 @@ watchEffect(() => {
|
||||
background-color: var(--blue-pale);
|
||||
padding-right: toRem(2);
|
||||
padding-left: toRem(2);
|
||||
padding-top: toRem(0.5);
|
||||
padding-bottom: toRem(0.5);
|
||||
&:nth-child(2n) {
|
||||
background-color: var(--white);
|
||||
}
|
||||
|
||||
@@ -165,15 +165,13 @@ import InformationCard from '@/components/InformationCard.vue'
|
||||
import License from '@/components/License.vue'
|
||||
import { computed } from 'vue'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import authConfig from '../composables/auth'
|
||||
import { manageSlashUrl } from '@/utils'
|
||||
import { authConfig } from '../composables/auth'
|
||||
import { manageSlashUrl, getEnv } from '@/utils'
|
||||
const { t } = useI18n()
|
||||
const { authConf } = authConfig()
|
||||
|
||||
const apiUrl = computed((): string =>
|
||||
String(import.meta.env.VITE_API_URL)
|
||||
? manageSlashUrl()
|
||||
: 'https://panoramax.ign.fr/'
|
||||
getEnv('VITE_API_URL') ? manageSlashUrl() : 'https://panoramax.ign.fr/'
|
||||
)
|
||||
|
||||
const formatTextInfoCard = computed((): string => {
|
||||
@@ -271,7 +269,7 @@ ul {
|
||||
.subtitle {
|
||||
@include text(h2);
|
||||
color: var(--blue-dark);
|
||||
margin-bottom: 0;
|
||||
margin-bottom: toRem(2);
|
||||
}
|
||||
.upload-button {
|
||||
display: flex;
|
||||
@@ -285,10 +283,6 @@ ul {
|
||||
.entry-information-card {
|
||||
margin-top: toRem(2);
|
||||
}
|
||||
.subtitle {
|
||||
@include text(h2);
|
||||
color: var(--blue-dark);
|
||||
}
|
||||
.icon-block {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -142,7 +142,7 @@ import {
|
||||
createASequence
|
||||
} from '@/views/utils/upload/request'
|
||||
import { sortByName } from '@/views/utils/upload/index'
|
||||
import authConfig from '../composables/auth'
|
||||
import { authConfig } from '../composables/auth'
|
||||
import { deleteACollection } from '@/views/utils/sequence/request'
|
||||
|
||||
const { authConf } = authConfig()
|
||||
|
||||
@@ -23,36 +23,38 @@ export interface ViewerInterface {
|
||||
| {
|
||||
type: string
|
||||
tiles: string[]
|
||||
attribution: string
|
||||
tileSize: number
|
||||
}
|
||||
| string
|
||||
}
|
||||
fetchOptions?: { credentials: string }
|
||||
fetchOptions?: { credentials?: string }
|
||||
}
|
||||
|
||||
export interface ParamsViewerInterface {
|
||||
style?: void
|
||||
raster?: RasterInterface
|
||||
selectedPicture?: string
|
||||
fetchOptions?: { credentials: string }
|
||||
}
|
||||
|
||||
export interface MapInterface {
|
||||
lang: string
|
||||
style?: void
|
||||
selectedPicture?: string
|
||||
fetchOptions?: { credentials: string }
|
||||
map: {
|
||||
raster?: RasterInterface
|
||||
fetchOptions?: { credentials?: string }
|
||||
map?: {
|
||||
raster?:
|
||||
| {
|
||||
type: string
|
||||
tiles: string[]
|
||||
tileSize: number
|
||||
}
|
||||
| string
|
||||
}
|
||||
}
|
||||
|
||||
interface RasterInterface {
|
||||
raster:
|
||||
export interface ParamsEditorStandaloneInterface {
|
||||
lang: string
|
||||
style?: void
|
||||
selectedPicture?: string
|
||||
fetchOptions?: { credentials?: string }
|
||||
raster?:
|
||||
| {
|
||||
type: string
|
||||
tiles: string[]
|
||||
attribution: string
|
||||
tileSize: number
|
||||
}
|
||||
| string
|
||||
|
||||
@@ -3,7 +3,6 @@ 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()) }
|
||||
|
||||
436
yarn.lock
436
yarn.lock
@@ -2,11 +2,6 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@aashutoshrathi/word-wrap@^1.2.3":
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
|
||||
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
|
||||
|
||||
"@achrinza/node-ipc@^9.2.5":
|
||||
version "9.2.8"
|
||||
resolved "https://registry.yarnpkg.com/@achrinza/node-ipc/-/node-ipc-9.2.8.tgz#aabfe9fe84406c90bfb7319d5e68b5b517dd8686"
|
||||
@@ -24,7 +19,7 @@
|
||||
"@jridgewell/gen-mapping" "^0.3.5"
|
||||
"@jridgewell/trace-mapping" "^0.3.24"
|
||||
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.8.3":
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.8.3":
|
||||
version "7.24.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
|
||||
integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
|
||||
@@ -38,32 +33,32 @@
|
||||
integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==
|
||||
|
||||
"@babel/core@^7.11.6", "@babel/core@^7.12.16", "@babel/core@^7.12.3", "@babel/core@^7.18.10", "@babel/core@^7.23.9":
|
||||
version "7.24.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.4.tgz#1f758428e88e0d8c563874741bc4ffc4f71a4717"
|
||||
integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.5.tgz#15ab5b98e101972d171aeef92ac70d8d6718f06a"
|
||||
integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==
|
||||
dependencies:
|
||||
"@ampproject/remapping" "^2.2.0"
|
||||
"@babel/code-frame" "^7.24.2"
|
||||
"@babel/generator" "^7.24.4"
|
||||
"@babel/generator" "^7.24.5"
|
||||
"@babel/helper-compilation-targets" "^7.23.6"
|
||||
"@babel/helper-module-transforms" "^7.23.3"
|
||||
"@babel/helpers" "^7.24.4"
|
||||
"@babel/parser" "^7.24.4"
|
||||
"@babel/helper-module-transforms" "^7.24.5"
|
||||
"@babel/helpers" "^7.24.5"
|
||||
"@babel/parser" "^7.24.5"
|
||||
"@babel/template" "^7.24.0"
|
||||
"@babel/traverse" "^7.24.1"
|
||||
"@babel/types" "^7.24.0"
|
||||
"@babel/traverse" "^7.24.5"
|
||||
"@babel/types" "^7.24.5"
|
||||
convert-source-map "^2.0.0"
|
||||
debug "^4.1.0"
|
||||
gensync "^1.0.0-beta.2"
|
||||
json5 "^2.2.3"
|
||||
semver "^6.3.1"
|
||||
|
||||
"@babel/generator@^7.18.10", "@babel/generator@^7.24.1", "@babel/generator@^7.24.4", "@babel/generator@^7.7.2":
|
||||
version "7.24.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.4.tgz#1fc55532b88adf952025d5d2d1e71f946cb1c498"
|
||||
integrity sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==
|
||||
"@babel/generator@^7.18.10", "@babel/generator@^7.24.5", "@babel/generator@^7.7.2":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.5.tgz#e5afc068f932f05616b66713e28d0f04e99daeb3"
|
||||
integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.24.0"
|
||||
"@babel/types" "^7.24.5"
|
||||
"@jridgewell/gen-mapping" "^0.3.5"
|
||||
"@jridgewell/trace-mapping" "^0.3.25"
|
||||
jsesc "^2.5.1"
|
||||
@@ -99,81 +94,81 @@
|
||||
dependencies:
|
||||
"@babel/types" "^7.22.5"
|
||||
|
||||
"@babel/helper-module-imports@^7.22.15":
|
||||
"@babel/helper-module-imports@^7.24.3":
|
||||
version "7.24.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
|
||||
integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
|
||||
dependencies:
|
||||
"@babel/types" "^7.24.0"
|
||||
|
||||
"@babel/helper-module-transforms@^7.23.3":
|
||||
version "7.23.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
|
||||
integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
|
||||
"@babel/helper-module-transforms@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz#ea6c5e33f7b262a0ae762fd5986355c45f54a545"
|
||||
integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==
|
||||
dependencies:
|
||||
"@babel/helper-environment-visitor" "^7.22.20"
|
||||
"@babel/helper-module-imports" "^7.22.15"
|
||||
"@babel/helper-simple-access" "^7.22.5"
|
||||
"@babel/helper-split-export-declaration" "^7.22.6"
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
"@babel/helper-module-imports" "^7.24.3"
|
||||
"@babel/helper-simple-access" "^7.24.5"
|
||||
"@babel/helper-split-export-declaration" "^7.24.5"
|
||||
"@babel/helper-validator-identifier" "^7.24.5"
|
||||
|
||||
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.8.0":
|
||||
version "7.24.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
|
||||
integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz#a924607dd254a65695e5bd209b98b902b3b2f11a"
|
||||
integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==
|
||||
|
||||
"@babel/helper-simple-access@^7.22.5":
|
||||
version "7.22.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
|
||||
integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
|
||||
"@babel/helper-simple-access@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz#50da5b72f58c16b07fbd992810be6049478e85ba"
|
||||
integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==
|
||||
dependencies:
|
||||
"@babel/types" "^7.22.5"
|
||||
"@babel/types" "^7.24.5"
|
||||
|
||||
"@babel/helper-split-export-declaration@^7.22.6":
|
||||
version "7.22.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
|
||||
integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
|
||||
"@babel/helper-split-export-declaration@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz#b9a67f06a46b0b339323617c8c6213b9055a78b6"
|
||||
integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==
|
||||
dependencies:
|
||||
"@babel/types" "^7.22.5"
|
||||
"@babel/types" "^7.24.5"
|
||||
|
||||
"@babel/helper-string-parser@^7.23.4":
|
||||
"@babel/helper-string-parser@^7.24.1":
|
||||
version "7.24.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
|
||||
integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.22.20":
|
||||
version "7.22.20"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
||||
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
||||
"@babel/helper-validator-identifier@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz#918b1a7fa23056603506370089bd990d8720db62"
|
||||
integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==
|
||||
|
||||
"@babel/helper-validator-option@^7.23.5":
|
||||
version "7.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
|
||||
integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
|
||||
|
||||
"@babel/helpers@^7.24.4":
|
||||
version "7.24.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.4.tgz#dc00907fd0d95da74563c142ef4cd21f2cb856b6"
|
||||
integrity sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==
|
||||
"@babel/helpers@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.5.tgz#fedeb87eeafa62b621160402181ad8585a22a40a"
|
||||
integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==
|
||||
dependencies:
|
||||
"@babel/template" "^7.24.0"
|
||||
"@babel/traverse" "^7.24.1"
|
||||
"@babel/types" "^7.24.0"
|
||||
"@babel/traverse" "^7.24.5"
|
||||
"@babel/types" "^7.24.5"
|
||||
|
||||
"@babel/highlight@^7.24.2":
|
||||
version "7.24.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
|
||||
integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.5.tgz#bc0613f98e1dd0720e99b2a9ee3760194a704b6e"
|
||||
integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
"@babel/helper-validator-identifier" "^7.24.5"
|
||||
chalk "^2.4.2"
|
||||
js-tokens "^4.0.0"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.14.7", "@babel/parser@^7.18.11", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.24.4":
|
||||
version "7.24.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88"
|
||||
integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==
|
||||
"@babel/parser@^7.1.0", "@babel/parser@^7.10.5", "@babel/parser@^7.14.7", "@babel/parser@^7.18.11", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0", "@babel/parser@^7.24.4", "@babel/parser@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790"
|
||||
integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==
|
||||
|
||||
"@babel/plugin-syntax-async-generators@^7.8.4":
|
||||
version "7.8.4"
|
||||
@@ -274,9 +269,9 @@
|
||||
"@babel/helper-plugin-utils" "^7.24.0"
|
||||
|
||||
"@babel/runtime@^7.21.0":
|
||||
version "7.24.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.4.tgz#de795accd698007a66ba44add6cc86542aff1edd"
|
||||
integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c"
|
||||
integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
|
||||
@@ -289,29 +284,29 @@
|
||||
"@babel/parser" "^7.24.0"
|
||||
"@babel/types" "^7.24.0"
|
||||
|
||||
"@babel/traverse@^7.10.5", "@babel/traverse@^7.18.11", "@babel/traverse@^7.24.1":
|
||||
version "7.24.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
|
||||
integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
|
||||
"@babel/traverse@^7.10.5", "@babel/traverse@^7.18.11", "@babel/traverse@^7.24.5":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.5.tgz#972aa0bc45f16983bf64aa1f877b2dd0eea7e6f8"
|
||||
integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.24.1"
|
||||
"@babel/generator" "^7.24.1"
|
||||
"@babel/code-frame" "^7.24.2"
|
||||
"@babel/generator" "^7.24.5"
|
||||
"@babel/helper-environment-visitor" "^7.22.20"
|
||||
"@babel/helper-function-name" "^7.23.0"
|
||||
"@babel/helper-hoist-variables" "^7.22.5"
|
||||
"@babel/helper-split-export-declaration" "^7.22.6"
|
||||
"@babel/parser" "^7.24.1"
|
||||
"@babel/types" "^7.24.0"
|
||||
"@babel/helper-split-export-declaration" "^7.24.5"
|
||||
"@babel/parser" "^7.24.5"
|
||||
"@babel/types" "^7.24.5"
|
||||
debug "^4.3.1"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.3.3":
|
||||
version "7.24.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
|
||||
integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
|
||||
"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5", "@babel/types@^7.3.3":
|
||||
version "7.24.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.5.tgz#7661930afc638a5383eb0c4aee59b74f38db84d7"
|
||||
integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==
|
||||
dependencies:
|
||||
"@babel/helper-string-parser" "^7.23.4"
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
"@babel/helper-string-parser" "^7.24.1"
|
||||
"@babel/helper-validator-identifier" "^7.24.5"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@bcoe/v8-coverage@^0.2.3":
|
||||
@@ -1197,9 +1192,9 @@
|
||||
integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
|
||||
|
||||
"@types/node@*":
|
||||
version "20.12.7"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
|
||||
integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==
|
||||
version "20.12.8"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.8.tgz#35897bf2bfe3469847ab04634636de09552e8256"
|
||||
integrity sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==
|
||||
dependencies:
|
||||
undici-types "~5.26.4"
|
||||
|
||||
@@ -1455,47 +1450,47 @@
|
||||
semver "^7.3.4"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
"@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==
|
||||
"@vue/compiler-core@3.4.26":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.26.tgz#d507886520e83a6f8339ed55ed0b2b5d84b44b73"
|
||||
integrity sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.24.4"
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/shared" "3.4.26"
|
||||
entities "^4.5.0"
|
||||
estree-walker "^2.0.2"
|
||||
source-map-js "^1.2.0"
|
||||
|
||||
"@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==
|
||||
"@vue/compiler-dom@3.4.26", "@vue/compiler-dom@^3.3.0":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.26.tgz#acc7b788b48152d087d4bb9e655b795e3dbec554"
|
||||
integrity sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "3.4.24"
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/compiler-core" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
|
||||
"@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==
|
||||
"@vue/compiler-sfc@3.4.26", "@vue/compiler-sfc@^3.2.37":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.26.tgz#c679f206829954c3c078d8a9be76d0098b8377ae"
|
||||
integrity sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==
|
||||
dependencies:
|
||||
"@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"
|
||||
"@vue/compiler-core" "3.4.26"
|
||||
"@vue/compiler-dom" "3.4.26"
|
||||
"@vue/compiler-ssr" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.30.10"
|
||||
postcss "^8.4.38"
|
||||
source-map-js "^1.2.0"
|
||||
|
||||
"@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==
|
||||
"@vue/compiler-ssr@3.4.26":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.26.tgz#22842d8adfff972d87bb798b8d496111f7f814b5"
|
||||
integrity sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.4.24"
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/compiler-dom" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
|
||||
"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.5.1":
|
||||
version "6.6.1"
|
||||
@@ -1534,42 +1529,42 @@
|
||||
path-browserify "^1.0.1"
|
||||
vue-template-compiler "^2.7.14"
|
||||
|
||||
"@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==
|
||||
"@vue/reactivity@3.4.26":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.26.tgz#1191f543809d4c93e5b3e842ba83022350a3f205"
|
||||
integrity sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==
|
||||
dependencies:
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/shared" "3.4.26"
|
||||
|
||||
"@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==
|
||||
"@vue/runtime-core@3.4.26":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.26.tgz#51ee971cb700370a67e5a510c4a84eff7491d658"
|
||||
integrity sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==
|
||||
dependencies:
|
||||
"@vue/reactivity" "3.4.24"
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/reactivity" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
|
||||
"@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==
|
||||
"@vue/runtime-dom@3.4.26":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.26.tgz#179aa7c8dc964112e6d096bc8ec5f361111009a1"
|
||||
integrity sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==
|
||||
dependencies:
|
||||
"@vue/runtime-core" "3.4.24"
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/runtime-core" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
csstype "^3.1.3"
|
||||
|
||||
"@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==
|
||||
"@vue/server-renderer@3.4.26":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.26.tgz#6d0c6b0366bfe0232579aea00e3ff6784e5a1c60"
|
||||
integrity sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==
|
||||
dependencies:
|
||||
"@vue/compiler-ssr" "3.4.24"
|
||||
"@vue/shared" "3.4.24"
|
||||
"@vue/compiler-ssr" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
|
||||
"@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/shared@3.4.26", "@vue/shared@^3.3.0":
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.26.tgz#f17854fb1faf889854aed4b23b60e86a8cab6403"
|
||||
integrity sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==
|
||||
|
||||
"@vue/test-utils@^2.2.4":
|
||||
version "2.4.5"
|
||||
@@ -2268,9 +2263,9 @@ camelcase@^6.2.0:
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001587:
|
||||
version "1.0.30001612"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae"
|
||||
integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==
|
||||
version "1.0.30001615"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001615.tgz#7c2c8772db681b6dee74d81d6550db68f2d28842"
|
||||
integrity sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==
|
||||
|
||||
caseless@~0.12.0:
|
||||
version "0.12.0"
|
||||
@@ -2375,9 +2370,9 @@ ci-info@^3.2.0:
|
||||
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
|
||||
|
||||
cjs-module-lexer@^1.0.0:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
|
||||
integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c"
|
||||
integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==
|
||||
|
||||
clean-css@^5.2.2:
|
||||
version "5.3.3"
|
||||
@@ -2751,9 +2746,9 @@ date-fns@^2.16.1:
|
||||
"@babel/runtime" "^7.21.0"
|
||||
|
||||
dayjs@^1.10.4:
|
||||
version "1.11.10"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
|
||||
integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
|
||||
version "1.11.11"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
|
||||
integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
|
||||
|
||||
de-indent@^1.0.2:
|
||||
version "1.0.2"
|
||||
@@ -2829,7 +2824,7 @@ define-lazy-prop@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
|
||||
integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
|
||||
|
||||
define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
|
||||
define-properties@^1.2.0, define-properties@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
|
||||
integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
|
||||
@@ -3033,9 +3028,9 @@ ejs@^3.1.6:
|
||||
jake "^10.8.5"
|
||||
|
||||
electron-to-chromium@^1.4.668:
|
||||
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==
|
||||
version "1.4.754"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.754.tgz#20a9f3cc80e0fb6a804b86605e55da16918a58b0"
|
||||
integrity sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==
|
||||
|
||||
emittery@^0.13.1:
|
||||
version "0.13.1"
|
||||
@@ -3169,9 +3164,9 @@ es-errors@^1.2.1, es-errors@^1.3.0:
|
||||
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
|
||||
|
||||
es-module-lexer@^1.2.1:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.0.tgz#4878fee3789ad99e065f975fdd3c645529ff0236"
|
||||
integrity sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.2.tgz#00b423304f2500ac59359cc9b6844951f372d497"
|
||||
integrity sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==
|
||||
|
||||
es-object-atoms@^1.0.0:
|
||||
version "1.0.0"
|
||||
@@ -3361,7 +3356,7 @@ esbuild@^0.18.10:
|
||||
"@esbuild/win32-ia32" "0.18.20"
|
||||
"@esbuild/win32-x64" "0.18.20"
|
||||
|
||||
escalade@^3.1.1:
|
||||
escalade@^3.1.1, escalade@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
|
||||
integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
|
||||
@@ -3924,9 +3919,9 @@ fs-extra@^9.0.0, fs-extra@^9.1.0:
|
||||
universalify "^2.0.0"
|
||||
|
||||
fs-monkey@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788"
|
||||
integrity sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2"
|
||||
integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
@@ -3968,10 +3963,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-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==
|
||||
geovisio@3.0.0-develop-28e7fdc1:
|
||||
version "3.0.0-develop-28e7fdc1"
|
||||
resolved "https://registry.yarnpkg.com/geovisio/-/geovisio-3.0.0-develop-28e7fdc1.tgz#0160cc28d0ffd81edd1f65d97620ee23d5ba262e"
|
||||
integrity sha512-s4dR7nHuC0hNB+GPio8yBxOFjGQh7RoeJJprQHGw+IXTPnHOgZTabKAHX9vsr8LFcgadmcNwiZyNlVjrvPFvZA==
|
||||
dependencies:
|
||||
"@fortawesome/fontawesome-svg-core" "^6.4.0"
|
||||
"@fortawesome/free-solid-svg-icons" "^6.4.0"
|
||||
@@ -4181,11 +4176,12 @@ globals@^13.19.0, globals@^13.24.0:
|
||||
type-fest "^0.20.2"
|
||||
|
||||
globalthis@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
|
||||
integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
|
||||
integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
|
||||
dependencies:
|
||||
define-properties "^1.1.3"
|
||||
define-properties "^1.2.1"
|
||||
gopd "^1.0.1"
|
||||
|
||||
globby@^11.0.2, globby@^11.1.0:
|
||||
version "11.1.0"
|
||||
@@ -5262,9 +5258,9 @@ jest@^29.6.4:
|
||||
jest-cli "^29.7.0"
|
||||
|
||||
joi@^17.4.0:
|
||||
version "17.13.0"
|
||||
resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.0.tgz#b6f340b8029ee7af2397f821d17a4f03bf34b043"
|
||||
integrity sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==
|
||||
version "17.13.1"
|
||||
resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca"
|
||||
integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==
|
||||
dependencies:
|
||||
"@hapi/hoek" "^9.3.0"
|
||||
"@hapi/topo" "^5.1.0"
|
||||
@@ -5631,9 +5627,9 @@ lower-case@^2.0.2:
|
||||
tslib "^2.0.3"
|
||||
|
||||
lru-cache@^10.2.0:
|
||||
version "10.2.0"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
|
||||
integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
|
||||
version "10.2.2"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
|
||||
integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
|
||||
|
||||
lru-cache@^5.1.1:
|
||||
version "5.1.1"
|
||||
@@ -6498,16 +6494,16 @@ open@^8.0.2:
|
||||
is-wsl "^2.2.0"
|
||||
|
||||
optionator@^0.9.3:
|
||||
version "0.9.3"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
|
||||
integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
|
||||
version "0.9.4"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
|
||||
integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==
|
||||
dependencies:
|
||||
"@aashutoshrathi/word-wrap" "^1.2.3"
|
||||
deep-is "^0.1.3"
|
||||
fast-levenshtein "^2.0.6"
|
||||
levn "^0.4.1"
|
||||
prelude-ls "^1.2.1"
|
||||
type-check "^0.4.0"
|
||||
word-wrap "^1.2.5"
|
||||
|
||||
ora@^5.3.0:
|
||||
version "5.4.1"
|
||||
@@ -6990,9 +6986,9 @@ randombytes@^2.1.0:
|
||||
safe-buffer "^5.1.0"
|
||||
|
||||
react-is@^18.0.0:
|
||||
version "18.2.0"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
|
||||
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
|
||||
version "18.3.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
|
||||
integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
|
||||
|
||||
read-pkg-up@^9.1.0:
|
||||
version "9.1.0"
|
||||
@@ -7290,9 +7286,9 @@ safe-regex-test@^1.0.3:
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sass@^1.62.0:
|
||||
version "1.75.0"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.75.0.tgz#91bbe87fb02dfcc34e052ddd6ab80f60d392be6c"
|
||||
integrity sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==
|
||||
version "1.76.0"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.76.0.tgz#fe15909500735ac154f0dc7386d656b62b03987d"
|
||||
integrity sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
immutable "^4.0.0"
|
||||
@@ -7596,7 +7592,16 @@ string-length@^4.0.1:
|
||||
char-regex "^1.0.2"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
"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:
|
||||
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==
|
||||
@@ -7667,7 +7672,14 @@ 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", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
"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:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
@@ -7783,9 +7795,9 @@ terser-webpack-plugin@^5.3.10:
|
||||
terser "^5.26.0"
|
||||
|
||||
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==
|
||||
version "5.31.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1"
|
||||
integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==
|
||||
dependencies:
|
||||
"@jridgewell/source-map" "^0.3.3"
|
||||
acorn "^8.8.2"
|
||||
@@ -7875,9 +7887,9 @@ to-regex-range@^5.0.1:
|
||||
is-number "^7.0.0"
|
||||
|
||||
tough-cookie@^4.1.2, tough-cookie@^4.1.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
|
||||
integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
|
||||
version "4.1.4"
|
||||
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
|
||||
integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
|
||||
dependencies:
|
||||
psl "^1.1.33"
|
||||
punycode "^2.1.1"
|
||||
@@ -8158,11 +8170,11 @@ untildify@^4.0.0:
|
||||
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
|
||||
|
||||
update-browserslist-db@^1.0.13:
|
||||
version "1.0.13"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
|
||||
integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
|
||||
version "1.0.14"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.14.tgz#46a9367c323f8ade9a9dddb7f3ae7814b3a0b31c"
|
||||
integrity sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==
|
||||
dependencies:
|
||||
escalade "^3.1.1"
|
||||
escalade "^3.1.2"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
uri-js@^4.2.2:
|
||||
@@ -8379,9 +8391,9 @@ vue-axios@^3.5.2:
|
||||
integrity sha512-GP+dct7UlAWkl1qoP3ppw0z6jcSua5/IrMpjB5O8bh089iIiJ+hdxPYH2NPEpajlYgkW5EVMP95ttXWdas1O0g==
|
||||
|
||||
vue-component-type-helpers@^2.0.0:
|
||||
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==
|
||||
version "2.0.16"
|
||||
resolved "https://registry.yarnpkg.com/vue-component-type-helpers/-/vue-component-type-helpers-2.0.16.tgz#bfdb9cba265dca097b0f3411baeae879e008c33d"
|
||||
integrity sha512-qisL/iAfdO++7w+SsfYQJVPj6QKvxp4i1MMxvsNO41z/8zu3KuAw9LkhKUfP/kcOWGDxESp+pQObWppXusejCA==
|
||||
|
||||
vue-demi@>=0.14.5, vue-demi@>=0.14.7:
|
||||
version "0.14.7"
|
||||
@@ -8470,15 +8482,15 @@ vue3-smooth-scroll@^0.8.1:
|
||||
integrity sha512-9EN1aiBT2RtkIe1MoGiyGjUoLmqmlJ96R9/QVCylaiurHQ7oGu1SPzEoGJyxdhCa1q3qyMcX/pne1oTAn1UaoQ==
|
||||
|
||||
vue@^3.0.0, vue@^3.4.21:
|
||||
version "3.4.24"
|
||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.24.tgz#f269549939a6c092480f018aa0bd886ba64f4c6f"
|
||||
integrity sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg==
|
||||
version "3.4.26"
|
||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.26.tgz#936c97e37672c737705d7bdfa62c31af18742269"
|
||||
integrity sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==
|
||||
dependencies:
|
||||
"@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"
|
||||
"@vue/compiler-dom" "3.4.26"
|
||||
"@vue/compiler-sfc" "3.4.26"
|
||||
"@vue/runtime-dom" "3.4.26"
|
||||
"@vue/server-renderer" "3.4.26"
|
||||
"@vue/shared" "3.4.26"
|
||||
|
||||
w3c-xmlserializer@^4.0.0:
|
||||
version "4.0.0"
|
||||
@@ -8623,7 +8635,12 @@ which@^2.0.1:
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
||||
word-wrap@^1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
||||
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
|
||||
|
||||
"wrap-ansi-cjs@npm: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==
|
||||
@@ -8641,6 +8658,15 @@ 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"
|
||||
@@ -8664,9 +8690,9 @@ write-file-atomic@^4.0.2:
|
||||
signal-exit "^3.0.7"
|
||||
|
||||
ws@^8.11.0:
|
||||
version "8.16.0"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
|
||||
integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
|
||||
version "8.17.0"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
|
||||
integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==
|
||||
|
||||
xml-name-validator@^4.0.0:
|
||||
version "4.0.0"
|
||||
|
||||
Reference in New Issue
Block a user