Merge branch 'main' into feature/ready-state

# Conflicts:
#	src/components/home/contentNoAuth.vue
This commit is contained in:
kolaente 2021-11-13 17:20:45 +01:00
commit 0f630a9c1c
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
47 changed files with 717 additions and 470 deletions

View File

@ -151,6 +151,10 @@ steps:
- node ./scripts/deploy-preview-netlify.js
depends_on:
- build-prod
when:
event:
include:
- pull_request
---
kind: pipeline
@ -651,6 +655,6 @@ steps:
from_secret: crowdin_key
---
kind: signature
hmac: b343ca4448b29bcd26ba9888fa67926040b2f420d891b62e2e74ce487557c58c
hmac: 15df446c7e93a881249d46273485183386157229ee6a37b1ed0fcb2a0b32bbe2
...

View File

@ -7,7 +7,7 @@ describe('The Menu', () => {
})
it('Can be hidden on desktop', () => {
cy.get('a.menu-show-button:visible')
cy.get('button.menu-show-button:visible')
.click()
cy.get('.namespace-container')
.should('not.have.class', 'is-active')
@ -21,7 +21,7 @@ describe('The Menu', () => {
it('Is can be shown on mobile', () => {
cy.viewport('iphone-8')
cy.get('a.menu-show-button:visible')
cy.get('button.menu-show-button:visible')
.click()
cy.get('.namespace-container')
.should('have.class', 'is-active')

View File

@ -1,3 +1,15 @@
[build]
command = "yarn build"
publish = "dist"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-XSS-Protection = "1; mode=block"
X-Robots-Tag = "noindex"

View File

@ -69,10 +69,15 @@ http {
ssl_certificate /etc/nginx/ssl/dummy.crt;
ssl_certificate_key /etc/nginx/ssl/dummy.key;
location ~* .(txt|webmanifest|css|js|mjs|map|svg|jpg|jpeg|png|ico|ttf|woff|woff2|wav)$ {
root /usr/share/nginx/html;
try_files $uri $uri/ =404;
}
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /;
index index.html index.htm;
try_files $uri $uri/ /index.html;
index index.html;
}
error_page 500 502 503 504 /50x.html;

View File

@ -18,8 +18,8 @@
},
"dependencies": {
"@kyvg/vue3-notification": "2.3.4",
"@sentry/tracing": "6.14.1",
"@sentry/vue": "6.14.1",
"@sentry/tracing": "6.14.3",
"@sentry/vue": "6.14.3",
"@vue/compat": "3.2.21",
"bulma": "0.9.3",
"camel-case": "4.1.2",
@ -33,7 +33,7 @@
"is-touch-device": "1.0.1",
"lodash.clonedeep": "4.5.0",
"lodash.debounce": "4.0.8",
"marked": "4.0.0",
"marked": "4.0.3",
"register-service-worker": "1.7.2",
"snake-case": "3.0.4",
"ufo": "0.7.9",
@ -62,7 +62,7 @@
"autoprefixer": "10.4.0",
"axios": "0.24.0",
"browserslist": "4.17.6",
"cypress": "8.7.0",
"cypress": "9.0.0",
"cypress-file-upload": "5.0.8",
"esbuild": "0.13.13",
"eslint": "8.2.0",
@ -70,17 +70,18 @@
"express": "4.17.1",
"faker": "5.5.3",
"jest": "27.3.1",
"netlify-cli": "^6.14.19",
"netlify-cli": "6.14.23",
"postcss": "8.3.11",
"rollup": "2.59.0",
"rollup": "2.60.0",
"rollup-plugin-visualizer": "5.5.2",
"sass": "1.43.4",
"slugify": "^1.6.2",
"slugify": "1.6.2",
"ts-jest": "27.0.7",
"typescript": "4.4.4",
"vite": "2.6.14",
"vite-plugin-pwa": "0.11.3",
"vue-tsc": "0.29.3",
"vue-tsc": "0.29.4",
"vite-svg-loader": "3.1.0",
"wait-on": "6.0.0",
"workbox-cli": "6.3.0"
},

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
import { computed } from 'vue'
import LogoFull from '@/assets/logo-full.svg?component'
import LogoFullPride from '@/assets/logo-full-pride.svg?component'
const Logo = computed(() => new Date().getMonth() === 5 ? LogoFullPride : LogoFull)
</script>
<template>
<Logo alt="Vikunja" />
</template>

View File

@ -0,0 +1,75 @@
<template>
<button
type="button"
@click="$store.commit('toggleMenu')"
class="menu-show-button"
@shortkey="() => $store.commit('toggleMenu')"
v-shortkey="['ctrl', 'e']"
:aria-label="menuActive ? $t('misc.hideMenu') : $t('misc.showMenu')"
/>
</template>
<script setup>
import { computed} from 'vue'
import {store} from '@/store'
const menuActive = computed(() => store.menuActive)
</script>
<style lang="scss" scoped>
$lineWidth: 2rem;
$size: $lineWidth + 1rem;
.menu-show-button {
// FIXME: create general button component
appearance: none;
background-color: transparent;
border: 0;
min-height: $size;
width: $size;
position: relative;
$transformX: translateX(-50%);
&::before,
&::after {
content: '';
display: block;
position: absolute;
height: 3px;
width: $lineWidth;
left: 50%;
transform: $transformX;
background-color: $grey-400;
border-radius: 2px;
transition: all $transition;
}
&::before {
top: 50%;
transform: $transformX translateY(-0.4rem)
}
&::after {
bottom: 50%;
transform: $transformX translateY(0.4rem)
}
&:hover,
&:focus {
&::before,
&::after {
background-color: $grey-600;
}
&::before {
transform: $transformX translateY(-0.5rem);
}
&::after {
transform: $transformX translateY(0.5rem)
}
}
}
</style>

View File

@ -0,0 +1,20 @@
<template>
<a class="menu-bottom-link" :href="poweredByUrl" target="_blank" rel="noreferrer noopener nofollow">
{{ $t('misc.poweredBy') }}
</a>
</template>
<script setup lang="ts">
import {POWERED_BY as poweredByUrl} from '@/urls'
</script>
<style lang="scss">
.menu-bottom-link {
color: $grey-300;
text-align: center;
display: block;
padding-top: 1rem;
padding-bottom: 1rem;
font-size: .8rem;
}
</style>

View File

@ -1,7 +1,7 @@
<template>
<div>
<a @click="$store.commit('menuActive', false)" class="menu-hide-button" v-if="menuActive">
<icon icon="times"></icon>
<icon icon="times" />
</a>
<div
:class="{'has-background': background}"
@ -134,6 +134,32 @@ export default {
</script>
<style lang="scss" scoped>
.menu-hide-button {
position: fixed;
top: 0.5rem;
right: 0.5rem;
z-index: 31;
width: 3rem;
height: 3rem;
display: flex;
justify-content: center;
align-items: center;
font-size: 2rem;
color: $grey-400;
line-height: 1;
transition: all $transition;
@media screen and (min-width: $tablet) {
display: none;
}
&:hover,
&:focus {
height: 1rem;
color: $grey-600;
}
}
.app-container {
min-height: calc(100vh - 65px);

View File

@ -6,7 +6,7 @@
>
<div class="container has-text-centered link-share-view">
<div class="column is-10 is-offset-1">
<img alt="Vikunja" class="logo" :src="logoUrl" />
<Logo class="logo" />
<h1
:style="{ 'opacity': currentList.title === '' ? '0': '1' }"
class="title">
@ -14,9 +14,7 @@
</h1>
<div class="box has-text-left view">
<router-view/>
<a class="menu-bottom-link" href="https://vikunja.io" target="_blank" rel="noreferrer noopener nofollow">
{{ $t('misc.poweredBy') }}
</a>
<PoweredByLink />
</div>
</div>
</div>
@ -25,51 +23,45 @@
<script>
import {mapState} from 'vuex'
import {CURRENT_LIST} from '@/store/mutation-types'
import logoUrl from '@/assets/logo-full.svg'
import Logo from '@/components/home/Logo.vue'
import PoweredByLink from './PoweredByLink.vue'
export default {
name: 'contentLinkShare',
data() {
return {
logoUrl,
}
components: {
Logo,
PoweredByLink,
},
computed: mapState({
currentList: CURRENT_LIST,
background: 'background',
}),
computed: mapState([
'currentList',
'background',
]),
}
</script>
<style lang="scss" scoped>
.link-share-container.has-background .view {
background: transparent;
background-color: transparent;
border: none;
.logout .button {
box-shadow: none;
}
}
.link-share-view {
.logo {
max-width: 300px;
width: 90%;
margin: 2rem 0 1.5rem;
}
.logo {
max-width: 300px;
width: 90%;
margin: 2rem 0 1.5rem;
}
.column {
max-width: 100%;
}
.column {
max-width: 100%;
}
.card {
background: $white;
}
.title {
.title {
text-shadow: 0 0 1rem $white;
}
}
// FIXME: this should be defined somewhere deep
.link-share-view .card {
background-color: $white;
}
</style>

View File

@ -2,7 +2,7 @@
<div :class="{'is-active': menuActive}" class="namespace-container">
<div class="menu top-menu">
<router-link :to="{name: 'home'}" class="logo">
<img alt="Vikunja" :src="logoUrl" width="164" height="48"/>
<Logo width="164" height="48" />
</router-link>
<ul class="menu-list">
<li>
@ -146,25 +146,34 @@
</div>
</template>
</aside>
<a class="menu-bottom-link" :href="poweredByUrl" target="_blank" rel="noreferrer noopener nofollow">
{{ $t('misc.poweredBy') }}
</a>
<PoweredByLink />
</div>
</template>
<script>
import {mapState} from 'vuex'
import {CURRENT_LIST, MENU_ACTIVE, LOADING, LOADING_MODULE} from '@/store/mutation-types'
import draggable from 'vuedraggable'
import ListSettingsDropdown from '@/components/list/list-settings-dropdown.vue'
import NamespaceSettingsDropdown from '@/components/namespace/namespace-settings-dropdown.vue'
import draggable from 'vuedraggable'
import {calculateItemPosition} from '@/helpers/calculateItemPosition'
import {POWERED_BY} from '@/urls'
import PoweredByLink from '@/components/home/PoweredByLink.vue'
import Logo from '@/components/home/Logo.vue'
import {CURRENT_LIST, MENU_ACTIVE, LOADING, LOADING_MODULE} from '@/store/mutation-types'
import {calculateItemPosition} from '@/helpers/calculateItemPosition'
import logoUrl from '@/assets/logo-full.svg'
export default {
name: 'navigation',
components: {
ListSettingsDropdown,
NamespaceSettingsDropdown,
draggable,
Logo,
PoweredByLink,
},
data() {
return {
listsVisible: {},
@ -174,15 +183,8 @@ export default {
ghostClass: 'ghost',
},
listUpdating: {},
logoUrl,
poweredByUrl: POWERED_BY,
}
},
components: {
ListSettingsDropdown,
NamespaceSettingsDropdown,
draggable,
},
computed: {
...mapState({
namespaces: state => state.namespaces.namespaces.filter(n => !n.isArchived),
@ -509,10 +511,13 @@ $vikunja-nav-selected-width: 0.4rem;
}
.logo {
display: none;
display: block;
@media screen and (max-width: $tablet) {
display: block;
padding-left: 2rem;
margin-right: 1rem;
@media screen and (min-width: $tablet) {
display: none;
}
}

View File

@ -5,24 +5,11 @@
class="navbar main-theme is-fixed-top"
role="navigation"
>
<div class="navbar-brand">
<router-link :to="{name: 'home'}" class="navbar-item logo">
<img width="164" height="48" alt="Vikunja" :src="logoUrl" />
</router-link>
<a
@click="$store.commit('toggleMenu')"
class="menu-show-button"
@shortkey="() => $store.commit('toggleMenu')"
v-shortkey="['ctrl', 'e']"
>
</a>
</div>
<a
@click="$store.commit('toggleMenu')"
class="menu-show-button"
>
</a>
<div class="list-title" ref="listTitle" :style="{'display': currentList.id ? '': 'none'}">
<router-link :to="{name: 'home'}" class="logo">
<Logo width="164" height="48" />
</router-link>
<MenuButton class="menu-button" />
<div class="list-title" ref="listTitle" v-show="currentList.id">
<template v-if="currentList.id">
<h1
:style="{ 'opacity': currentList.title === '' ? '0': '1' }"
@ -101,9 +88,8 @@ import Update from '@/components/home/update.vue'
import ListSettingsDropdown from '@/components/list/list-settings-dropdown.vue'
import Dropdown from '@/components/misc/dropdown.vue'
import Notifications from '@/components/notifications/notifications.vue'
import logoUrl from '@/assets/logo-full.svg'
import logoFullPrideUrl from '@/assets/logo-full-pride.svg'
import Logo from '@/components/home/Logo.vue'
import MenuButton from '@/components/home/MenuButton.vue'
export default {
name: 'topNavigation',
@ -112,11 +98,10 @@ export default {
Dropdown,
ListSettingsDropdown,
Update,
Logo,
MenuButton,
},
computed: {
logoUrl() {
return (new Date()).getMonth() === 5 ? logoFullPrideUrl : logoUrl
},
...mapState({
userInfo: state => state.auth.info,
userAvatar: state => state.auth.avatarUrl,
@ -155,19 +140,26 @@ $vikunja-nav-logo-full-width: 164px;
.navbar {
z-index: 4 !important;
}
.navbar-brand {
.logo {
display: none;
@media screen and (min-width: $tablet) {
align-self: stretch;
display: flex;
align-items: center;
.logo img {
width: $vikunja-nav-logo-full-width;
}
padding-left: 2rem;
margin-right: 1.5rem;
}
&.is-dark .navbar-brand > .navbar-item {
@media screen and (max-width: $tablet) {
margin: 0 auto;
}
}
.menu-button {
align-self: stretch;
margin-right: auto;
@media screen and (max-width: $tablet) {
margin-left: $hamburger-menu-icon-spacing;
}
}
@ -197,10 +189,6 @@ $vikunja-nav-logo-full-width: 164px;
}
@media screen and (max-width: $tablet) {
.navbar-brand {
display: none;
}
.user {
width: $user-dropdown-width-mobile;
display: flex;

View File

@ -4,7 +4,13 @@
<p class="card-header-title">
{{ title }}
</p>
<a @click="$emit('close')" class="card-header-icon" v-if="hasClose">
<a
v-if="hasClose"
class="card-header-icon"
:aria-label="$t('misc.close')"
@click="$emit('close')"
v-tooltip="$t('misc.close')"
>
<span class="icon">
<icon :icon="closeIcon"/>
</span>
@ -36,7 +42,7 @@ export default {
},
closeIcon: {
type: String,
default: 'angle-right',
default: 'times',
},
shadow: {
type: Boolean,

View File

@ -6,7 +6,6 @@
:padding="false"
class="has-text-left has-overflow"
:has-close="true"
close-icon="times"
@close="$router.back()"
:loading="loading"
>

View File

@ -1,6 +1,6 @@
<template>
<modal @close="close()">
<card class="has-background-white has-no-shadow" :title="$t('keyboardShortcuts.title')">
<card class="has-no-shadow" :title="$t('keyboardShortcuts.title')">
<div class="message is-primary">
<div class="message-body">
{{ $t('keyboardShortcuts.allPages') }}

View File

@ -1,4 +1,10 @@
<template>
<card
class="taskedit"
:title="$t('list.list.editTask')"
@close="$emit('close')"
:has-close="true"
>
<form @submit.prevent="editTaskSubmit()">
<div class="field">
<label class="label" for="tasktext">{{ $t('task.attributes.title') }}</label>
@ -66,6 +72,7 @@
{{ $t('task.openDetail') }}
</router-link>
</form>
</card>
</template>
<script>

View File

@ -167,15 +167,13 @@
</x-button>
</form>
<transition name="fade">
<card
<edit-task
v-if="isTaskEdit"
class="taskedit"
:title="$t('list.list.editTask')"
@close="() => {isTaskEdit = false;taskToEdit = null}"
:has-close="true"
>
<edit-task :task="taskToEdit"/>
</card>
:task="taskToEdit"
/>
</transition>
</div>
</template>
@ -612,7 +610,6 @@ $gantt-vertical-border-color: $grey-100;
.taskedit {
position: fixed;
min-height: 0;
top: 10vh;
right: 10vw;
z-index: 5;

View File

@ -11,7 +11,7 @@
:overflow="true"
variant="hint-modal"
>
<card class="has-background-white has-no-shadow" :title="$t('task.quickAddMagic.title')">
<card class="has-no-shadow" :title="$t('task.quickAddMagic.title')">
<p>{{ $t('task.quickAddMagic.intro') }}</p>
<h3>{{ $t('task.attributes.labels') }}</h3>

View File

@ -449,7 +449,9 @@
"saved": "Uloženo!",
"default": "Výchozí",
"close": "Zavřít",
"download": "Stáhnout"
"download": "Stáhnout",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Obnovit barvu",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Příkazy",
"placeholder": "Napište příkaz nebo vyhledávání…",
"hint": "Můžete použít # pro hledání úkolů, * pro hledání seznamů a @ pro hledání týmů.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Úkoly",
"lists": "Seznamy",
"teams": "Týmy",

View File

@ -449,7 +449,9 @@
"saved": "Gespeichert!",
"default": "Standard",
"close": "Schließen",
"download": "Herunterladen"
"download": "Herunterladen",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Farbe zurücksetzen",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Befehle",
"placeholder": "Gib einen Befehl oder eine Suche ein …",
"hint": "Du kannst # verwenden, um nur nach Aufgaben zu suchen, *, um nur nach Listen zu suchen und @, um nur nach Teams zu suchen.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Aufgaben",
"lists": "Listen",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Gspeicheret!",
"default": "Standard",
"close": "Schlüüse",
"download": "Herunterladen"
"download": "Herunterladen",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Farb zruggsetze",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Befehl",
"placeholder": "Schriib en Befehl oder suech…",
"hint": "Du chasch en # benutze, um nur nach Uufgabe zsueche, * um nur nach Liste zsueche und @ um nur Teams z'sueche.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Uufgabe",
"lists": "Listene",
"teams": "Teams",

View File

@ -459,7 +459,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -803,7 +805,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Enregistré !",
"default": "Par défaut",
"close": "Fermer",
"download": "Télécharger"
"download": "Télécharger",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Réinitialiser la couleur",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commandes",
"placeholder": "Écris une commande ou une recherche…",
"hint": "Tu peux utiliser # pour rechercher uniquement les tâches, * pour rechercher uniquement les listes et @ pour rechercher uniquement les équipes.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tâches",
"lists": "Listes",
"teams": "Équipes",

View File

@ -105,7 +105,7 @@
}
},
"deletion": {
"title": "Elimina il tuo account Vikunja",
"title": "Delete your Vikunja Account",
"text1": "The deletion of your account is permanent and cannot be undone. We will delete all your namespaces, lists, tasks and everything associated with it.",
"text2": "Per continuare, inserisci la tua password. Riceverai un'e-mail con ulteriori istruzioni.",
"confirm": "Elimina il mio profilo",
@ -449,7 +449,9 @@
"saved": "Salvato!",
"default": "Predefinito",
"close": "Chiudi",
"download": "Scarica"
"download": "Scarica",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Ripristina Colore",
@ -506,7 +508,7 @@
"titleDates": "Attività dal {from} al {to}",
"noDates": "Mostra attività senza date",
"current": "Attività attuali",
"from": "Attività da",
"from": "Tasks from",
"until": "until",
"today": "Oggi",
"nextWeek": "Settimana Prossima",
@ -534,14 +536,14 @@
"text2": "Questo rimuoverà anche tutti gli allegati, i promemoria e le relazioni associati a questa attività e non può essere ripristinato!"
},
"actions": {
"assign": "Assegna questa attività a un utente",
"assign": "Assign this task to a user",
"label": "Aggiungi etichette",
"priority": "Imposta Priorità",
"dueDate": "Imposta data di scadenza",
"startDate": "Imposta una data di inizio",
"endDate": "Imposta una data di fine",
"reminders": "Imposta promemoria",
"repeatAfter": "Imposta un intervallo di ripetizione",
"repeatAfter": "Set a repeating interval",
"percentDone": "Imposta Percentuale Completata",
"attachments": "Aggiungi allegati",
"relatedTasks": "Aggiungi attività collegate",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Liste",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Сохранено!",
"default": "По умолчанию",
"close": "Закрыть",
"download": "Скачать"
"download": "Скачать",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Сбросить цвет",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Команды",
"placeholder": "Введи команду или поисковый запрос…",
"hint": "Используй # для поиска только задач, * для поиска только списков и @ для поиска только команд.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Задачи",
"lists": "Списки",
"teams": "Команды",

View File

@ -449,7 +449,9 @@
"saved": "Saved!",
"default": "Default",
"close": "Close",
"download": "Download"
"download": "Download",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Reset Color",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Commands",
"placeholder": "Type a command or search…",
"hint": "You can use # to only seach for tasks, * to only search for lists and @ to only search for teams.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tasks",
"lists": "Lists",
"teams": "Teams",

View File

@ -449,7 +449,9 @@
"saved": "Đã lưu!",
"default": "Mặc định",
"close": "Đóng",
"download": "Tải về"
"download": "Tải về",
"showMenu": "Show the menu",
"hideMenu": "Hide the menu"
},
"input": {
"resetColor": "Đặt lại màu",
@ -792,7 +794,7 @@
"quickActions": {
"commands": "Các lệnh",
"placeholder": "Gõ một lệnh hoặc tìm kiếm…",
"hint": "Bạn có thể dùng # để chỉ tìm kiếm công việc, * để chỉ tìm kiếm danh sách và @ để chỉ tìm kiếm Team.",
"hint": "You can use # to only search for tasks, * to only search for lists and @ to only search for teams.",
"tasks": "Tác vụ",
"lists": "Danh sách",
"teams": "Team",

View File

@ -7,5 +7,4 @@
@import "form";
@import "link-share";
@import "loading";
@import "navigation";
@import "notification";

View File

@ -1,92 +0,0 @@
// FIXME: create <MenuButton> component
.menu-hide-button,
.menu-show-button {
display: none;
z-index: 31;
font-weight: bold;
font-size: 2rem;
color: $grey-400;
line-height: 1;
transition: all $transition;
&:hover,
&:focus {
height: 1rem;
color: $grey-600;
}
}
.menu-show-button {
height: .75rem;
width: 2rem;
@media screen and (max-width: $tablet) {
display: block;
margin-left: $hamburger-menu-icon-spacing;
}
// menu line icon and animationanimation // START
&::before,
&::after {
display: block;
content: '';
border-top: 3px solid $grey-400;
border-radius: $radius;
transition: all $transition;
}
&::before {
margin-bottom: .5rem;
}
&::after {
margin-top: .5rem;
}
&:hover,
&:focus {
&::before {
margin-bottom: .75rem;
}
&::after {
margin-top: .75rem;
}
}
// menu line animation // END
}
.menu-hide-button {
position: fixed;
@media screen and (max-width: $tablet) {
display: block;
top: $hamburger-menu-icon-spacing;
right: $hamburger-menu-icon-spacing;
}
&:hover,
&:focus {
color: $text;
}
}
.navbar-brand .menu-show-button {
display: block;
}
@media screen and (max-width: $tablet) {
.navbar.is-dark .navbar-brand > .navbar-item {
margin: 0 auto;
}
}
.menu-bottom-link {
width: 100%;
color: $grey-300;
text-align: center;
display: block;
margin: 1rem 0;
font-size: .8rem;
}

View File

@ -33,15 +33,6 @@ h6 {
font-weight: 400 !important;
}
.logo {
padding-left: 2rem !important;
img {
max-height: 3rem !important;
margin-right: 1rem;
}
}
// FIXME: create <ProgressBar> component. used in
// - attachments.vue
// - kanban-card.vue

1
src/types/vite-svg-loader.d.ts vendored Normal file
View File

@ -0,0 +1 @@
/// <reference types="vite-svg-loader" />

View File

@ -5,30 +5,29 @@
variant="hint-modal"
>
<card
class="has-background-white has-no-shadow"
:title="$t('about.title')"
:has-close="true"
close-icon="times"
@close="$router.back()"
:padding="false"
>
<div class="p-4">
<p>
{{ $t('about.frontendVersion', {version: this.frontendVersion}) }}
</p>
<p>
{{ $t('about.apiVersion', {version: this.apiVersion}) }}
</p>
</div>
<footer class="modal-card-foot is-flex is-justify-content-flex-end">
<x-button
type="secondary"
@click.prevent.stop="$router.back()"
>
{{ $t('misc.close') }}
</x-button>
</footer>
</card>
class="has-no-shadow"
:title="$t('about.title')"
:has-close="true"
@close="$router.back()"
:padding="false"
>
<div class="p-4">
<p>
{{ $t('about.frontendVersion', {version: this.frontendVersion}) }}
</p>
<p>
{{ $t('about.apiVersion', {version: this.apiVersion}) }}
</p>
</div>
<footer class="modal-card-foot is-flex is-justify-content-flex-end">
<x-button
type="secondary"
@click.prevent.stop="$router.back()"
>
{{ $t('misc.close') }}
</x-button>
</footer>
</card>
</modal>
</template>

View File

@ -51,7 +51,7 @@
/>
</div>
</div>
<ShowTasks :show-all="true" v-if="hasLists" :key="showTasksKey"/>
<ShowTasks class="mt-4" :show-all="true" v-if="hasLists" :key="showTasksKey"/>
</div>
</template>

View File

@ -3,7 +3,7 @@
@close="$router.back()"
variant="hint-modal"
>
<card class="has-background-white has-no-shadow" :title="$t('filters.create.title')">
<card class="has-no-shadow" :title="$t('filters.create.title')">
<p>
{{ $t('filters.create.description') }}
</p>

View File

@ -116,13 +116,14 @@
</template>
</draggable>
</div>
<card
<edit-task
v-if="isTaskEdit"
class="taskedit mt-0" :title="$t('list.list.editTask')" :has-close="true"
class="taskedit mt-0"
:title="$t('list.list.editTask')"
@close="() => isTaskEdit = false"
:shadow="false">
<edit-task :task="taskEditTask"/>
</card>
:shadow="false"
:task="taskEditTask"
/>
</div>
<Pagination
@ -344,6 +345,7 @@ export default {
width: 33%;
margin-right: 1rem;
margin-left: .5rem;
min-height: calc(100% - 1rem);
@media screen and (max-width: $tablet) {
width: 100%;

View File

@ -41,7 +41,7 @@
<div class="progress-dots">
<span v-for="i in progressDotsCount" :key="i" />
</div>
<img alt="Vikunja" :src="logoUrl" />
<Logo alt="Vikunja" />
</div>
<p>{{ $t('migrate.inProgress') }}</p>
</div>
@ -70,14 +70,17 @@
<script>
import AbstractMigrationService from '@/services/migrator/abstractMigration'
import AbstractMigrationFileService from '@/services/migrator/abstractMigrationFile'
import {MIGRATORS} from './migrators'
import Logo from '@/assets/logo.svg?component'
import logoUrl from '@/assets/logo.svg'
import {MIGRATORS} from './migrators'
const PROGRESS_DOTS_COUNT = 8
export default {
name: 'MigrateService',
components: { Logo },
data() {
return {
progressDotsCount: PROGRESS_DOTS_COUNT,
@ -87,7 +90,6 @@ export default {
message: '',
migratorAuthCode: '',
migrationService: null,
logoUrl,
}
},

View File

@ -1,8 +1,8 @@
import wunderlistIcon from './icons/wunderlist.jpg'
import todoistIcon from './icons/todoist.svg'
import trelloIcon from './icons/trello.svg'
import microsoftTodoIcon from './icons/microsoft-todo.svg'
import vikunjaFileIcon from './icons/vikunja-file.png'
import todoistIcon from './icons/todoist.svg?url'
import trelloIcon from './icons/trello.svg?url'
import microsoftTodoIcon from './icons/microsoft-todo.svg?url'
import vikunjaFileIcon from './icons/vikunja-file.png?url'
export interface Migrator {
id: string

View File

@ -38,7 +38,7 @@
</div>
<template v-if="!loading && (!tasks || tasks.length === 0) && showNothingToDo">
<h3 class="nothing">{{ $t('task.show.noTasks') }}</h3>
<img alt="" :src="llamaCoolUrl" />
<LlamaCool class="llama-cool" />
</template>
<div :class="{ 'is-loading': loading}" class="spinner"></div>
@ -64,7 +64,7 @@ import 'flatpickr/dist/flatpickr.css'
import Fancycheckbox from '../../components/input/fancycheckbox'
import {LOADING, LOADING_MODULE} from '../../store/mutation-types'
import llamaCoolUrl from '@/assets/llama-cool.svg'
import LlamaCool from '@/assets/llama-cool.svg?component'
export default {
name: 'ShowTasks',
@ -72,6 +72,7 @@ export default {
Fancycheckbox,
SingleTaskInList,
flatPickr,
LlamaCool,
},
data() {
return {
@ -83,7 +84,6 @@ export default {
cEndDate: null,
showNothingToDo: false,
llamaCoolUrl,
}
},
props: {
@ -256,28 +256,22 @@ export default {
</script>
<style lang="scss" scoped>
.show-tasks {
h3 {
text-align: left;
h3 {
text-align: left;
&.nothing {
text-align: center;
margin-top: 3rem;
}
:deep(.input) {
width: 190px;
vertical-align: middle;
margin: .5rem 0;
}
&.nothing {
text-align: center;
margin-top: 3rem;
}
img {
margin-top: 2rem;
}
.user img {
margin: 0;
:deep(.input) {
width: 190px;
vertical-align: middle;
margin: .5rem 0;
}
}
.llama-cool {
margin-top: 2rem;
}
</style>

View File

@ -4,6 +4,7 @@ import legacyFn from '@vitejs/plugin-legacy'
const {VitePWA} = require('vite-plugin-pwa')
const path = require('path')
const {visualizer} = require('rollup-plugin-visualizer')
import svgLoader from 'vite-svg-loader'
const pathSrc = path.resolve(__dirname, './src')
@ -42,6 +43,11 @@ export default defineConfig({
},
}),
legacy,
svgLoader({
// Since the svgs are already manually optimized via https://jakearchibald.github.io/svgomg/
// we don't need to optimize them again.
svgo: false,
}),
VitePWA({
srcDir: 'src',
filename: 'sw.js',

485
yarn.lock
View File

@ -1742,10 +1742,10 @@
dependencies:
"@cspotcode/source-map-consumer" "0.8.0"
"@cypress/request@^2.88.6":
version "2.88.6"
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.6.tgz#a970dd675befc6bdf8a8921576c01f51cc5798e9"
integrity sha512-z0UxBE/+qaESAHY9p9sM2h8Y4XqtsbDCt0/DPOrqA/RZgKi4PkxdpXyK4wCCnSk1xHqWHZZAE+gV6aDAR6+caQ==
"@cypress/request@^2.88.7":
version "2.88.7"
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.7.tgz#386d960ab845a96953723348088525d5a75aaac4"
integrity sha512-FTULIP2rnDJvZDT9t6B4nSfYR40ue19tVmv3wUcY05R9/FPCoMl1nAPJkzWzBCo7ltVn5ThQTbxiMoGBN7k0ig==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@ -2158,10 +2158,10 @@
call-me-maybe "^1.0.1"
glob-to-regexp "^0.3.0"
"@netlify/build@^18.21.7":
version "18.21.8"
resolved "https://registry.yarnpkg.com/@netlify/build/-/build-18.21.8.tgz#d4fa33523167dfc6a48af7287c3646512ec3fd9b"
integrity sha512-VNApf9pFGtFT1MELx00BhXDecZkPbszZgxOU2krnXKakcHiZo5/BjiMNlO5Rher3Us+8RJlW7/AMM8SqnuHa/g==
"@netlify/build@^18.22.0":
version "18.22.0"
resolved "https://registry.yarnpkg.com/@netlify/build/-/build-18.22.0.tgz#09ed6874acfc4e7bc3ccb15f79a13a3654d9c3ca"
integrity sha512-/cOSn08l4JGghV6o7F4z34qYaRPLN153IAIFs16DnrSffLkQO25GB+cxmxgb2Er9kUo9pTK3Otg5WzkfZuUKCg==
dependencies:
"@bugsnag/js" "^7.0.0"
"@netlify/cache-utils" "^2.0.0"
@ -2169,9 +2169,9 @@
"@netlify/functions-utils" "^2.0.0"
"@netlify/git-utils" "^2.0.0"
"@netlify/plugin-edge-handlers" "^1.11.22"
"@netlify/plugins-list" "^4.1.0"
"@netlify/plugins-list" "^4.2.0"
"@netlify/run-utils" "^2.0.0"
"@netlify/zip-it-and-ship-it" "^4.29.1"
"@netlify/zip-it-and-ship-it" "^4.29.4"
"@sindresorhus/slugify" "^1.1.0"
"@ungap/from-entries" "^0.2.1"
ansi-escapes "^4.3.2"
@ -2414,7 +2414,7 @@
rollup-plugin-terser "^7.0.2"
typescript "^4.1.5"
"@netlify/plugins-list@^4.1.0", "@netlify/plugins-list@^4.2.0":
"@netlify/plugins-list@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@netlify/plugins-list/-/plugins-list-4.2.0.tgz#eadcf3582b236af9a6945fae934effba9fd0fcb7"
integrity sha512-ZHbaafIr77FdY5tVvv2GHDsNKShjVtF4ycZBpkMEr0zg74ng9gGtxKGg785esTj0Jobtx5Em1dluczzC0px//g==
@ -2456,7 +2456,47 @@
dependencies:
execa "^5.1.1"
"@netlify/zip-it-and-ship-it@4.29.1", "@netlify/zip-it-and-ship-it@^4.15.1", "@netlify/zip-it-and-ship-it@^4.29.1":
"@netlify/zip-it-and-ship-it@4.29.3":
version "4.29.3"
resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.29.3.tgz#cafd32eb50529db659ca3d69ef3e205ece37d4f4"
integrity sha512-eDa7xS1PLjFailvfOUhmRpcu4mIuXJqd6UVZv/JZWtClWDOyaE3mIg/CYj4h4LQDAg8P2Ljy+a318izHSfqLJg==
dependencies:
"@babel/parser" "^7.15.7"
"@netlify/esbuild" "^0.13.6"
"@vercel/nft" "^0.17.0"
archiver "^5.3.0"
array-flat-polyfill "^1.0.1"
common-path-prefix "^3.0.0"
cp-file "^9.0.0"
del "^6.0.0"
elf-cam "^0.1.1"
end-of-stream "^1.4.4"
es-module-lexer "^0.9.0"
execa "^5.0.0"
filter-obj "^2.0.1"
find-up "^5.0.0"
glob "^7.1.6"
is-builtin-module "^3.1.0"
junk "^3.1.0"
locate-path "^6.0.0"
make-dir "^3.1.0"
merge-options "^3.0.4"
minimatch "^3.0.4"
p-map "^4.0.0"
path-exists "^4.0.0"
pkg-dir "^5.0.0"
precinct "^8.2.0"
read-package-json-fast "^2.0.2"
require-package-name "^2.0.1"
resolve "^2.0.0-next.1"
semver "^7.0.0"
tmp-promise "^3.0.2"
toml "^3.0.0"
typescript "^4.4.3"
unixify "^1.0.0"
yargs "^16.0.0"
"@netlify/zip-it-and-ship-it@^4.15.1":
version "4.29.1"
resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.29.1.tgz#ff81b1d98b8c4ea886a315b21af1dd4b06cc576f"
integrity sha512-tTJ+EGONXfi5OntmgJlvrCI2dmVlxhJLKRtZsDbcoDr/PbFg3LurVMbdYJS34XqCOMZQNhWG8zRFfqoW1N9T5w==
@ -2496,6 +2536,46 @@
unixify "^1.0.0"
yargs "^16.0.0"
"@netlify/zip-it-and-ship-it@^4.29.4":
version "4.29.4"
resolved "https://registry.yarnpkg.com/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-4.29.4.tgz#25107764afd6e55230b79a59a1336dcebc21a4a0"
integrity sha512-CDU9zzGNQF9p3b/oznT1GGKMw8X7PbaoCnsl787KbC6rx45QjAUiJqspCQv13GOh/a4n8WSnIf05VocCMMFLFw==
dependencies:
"@babel/parser" "^7.15.7"
"@netlify/esbuild" "^0.13.6"
"@vercel/nft" "^0.17.0"
archiver "^5.3.0"
array-flat-polyfill "^1.0.1"
common-path-prefix "^3.0.0"
cp-file "^9.0.0"
del "^6.0.0"
elf-cam "^0.1.1"
end-of-stream "^1.4.4"
es-module-lexer "^0.9.0"
execa "^5.0.0"
filter-obj "^2.0.1"
find-up "^5.0.0"
glob "^7.1.6"
is-builtin-module "^3.1.0"
junk "^3.1.0"
locate-path "^6.0.0"
make-dir "^3.1.0"
merge-options "^3.0.4"
minimatch "^3.0.4"
p-map "^4.0.0"
path-exists "^4.0.0"
pkg-dir "^5.0.0"
precinct "^8.2.0"
read-package-json-fast "^2.0.2"
require-package-name "^2.0.1"
resolve "^2.0.0-next.1"
semver "^7.0.0"
tmp-promise "^3.0.2"
toml "^3.0.0"
typescript "^4.4.3"
unixify "^1.0.0"
yargs "^16.0.0"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@ -2808,79 +2888,79 @@
dependencies:
any-observable "^0.3.0"
"@sentry/browser@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.14.1.tgz#4d255caf9de6e07f12b6d9b350fe391439dd932e"
integrity sha512-xOrKt6jT6rGhJDVwUtHtD/lLrCOEDNYCtLAh8SoJH7jE0JRSI7WK0UDPQ56M8z3II11lEw3F0TOXoK1rZ9BdrQ==
"@sentry/browser@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.14.3.tgz#4e3b67a48b12a70c381cab326d053ee5dfc087d6"
integrity sha512-qp4K+XNYNWQxO1U6gvf6VgOMmI0JKCsvx1pKu7X4ZK7sGHmMgfwj7lukpxsqXZvDop8RxUI8/1KJ0azUsHlpAQ==
dependencies:
"@sentry/core" "6.14.1"
"@sentry/types" "6.14.1"
"@sentry/utils" "6.14.1"
"@sentry/core" "6.14.3"
"@sentry/types" "6.14.3"
"@sentry/utils" "6.14.3"
tslib "^1.9.3"
"@sentry/core@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.14.1.tgz#cbb6eae808279ae2147dd5da22ce6ab5a1cd69d1"
integrity sha512-x2MOax+adphal0ytBsvQukwN5mcxZzb5zsPZ1YWzewQk3BY+2T/DFo50iVpaWdUXsJL2FtoZVVgtpTmf+/3JPw==
"@sentry/core@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.14.3.tgz#42d255c1a8838e8f9d122b823ba5ff5c27803537"
integrity sha512-3yHmYZzkXlOqPi/CGlNhb2RzXFvYAryBhrMJV26KJ9ULJF8r4OJ7TcWlupDooGk6Knmq8GQML58OApUvYi8IKg==
dependencies:
"@sentry/hub" "6.14.1"
"@sentry/minimal" "6.14.1"
"@sentry/types" "6.14.1"
"@sentry/utils" "6.14.1"
"@sentry/hub" "6.14.3"
"@sentry/minimal" "6.14.3"
"@sentry/types" "6.14.3"
"@sentry/utils" "6.14.3"
tslib "^1.9.3"
"@sentry/hub@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.14.1.tgz#6a82cae35de834bd92bbcd3912a1e3029a5369de"
integrity sha512-IqANj5qKG1N+nqBsuYIwAZsXDMmO/Sc4H2zZ2MP7QvRyp0ptpJmu1oTE0r0fohIcGgIWbnIphJjw990Lp507eA==
"@sentry/hub@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.14.3.tgz#f6e84e561a4aff1a4447927356fea541465364c1"
integrity sha512-ZRWLHcAcv4oZAbpSwvCkXlaa1rVFDxcb9lxo5/5v5n6qJq2IG5Z+bXuT2DZlIHQmuCuqRnFSwuBjmBXY7OTHaw==
dependencies:
"@sentry/types" "6.14.1"
"@sentry/utils" "6.14.1"
"@sentry/types" "6.14.3"
"@sentry/utils" "6.14.3"
tslib "^1.9.3"
"@sentry/minimal@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.14.1.tgz#6fbce5b873fb096411dbb9a01ff6706ed684f2e8"
integrity sha512-rxS0YUggCSuA7EzS1ai5jU8XArk4FBHZ02gmSoSSLtwFXmeQIa9XBKY0OEFmG2LMQYNOpvcGsezDO51EB6/X9w==
"@sentry/minimal@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.14.3.tgz#f3a5b062bdc578000689fd0b31abbb994e6b81f3"
integrity sha512-2KNOJuhBpMICoOgdxX56UcO9vGdxCw5mNGYdWvJdKrMwRQr7mC+Fc9lTuTbrYTj6zkfklj2lbdDc3j44Rg787A==
dependencies:
"@sentry/hub" "6.14.1"
"@sentry/types" "6.14.1"
"@sentry/hub" "6.14.3"
"@sentry/types" "6.14.3"
tslib "^1.9.3"
"@sentry/tracing@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.14.1.tgz#fadea88b505078f61b949ecd99891ddb5538f08e"
integrity sha512-Bv/+S5Wn9OPxP7sA9VYMV1wpmXWptFVIMFoG4BuyV4aFYdIAMxSNE/ktqXwmqn+nkBic04nP9rF6lMJBLIvIaA==
"@sentry/tracing@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.14.3.tgz#0223d365ea0c7d3f7c90cb17ea84c4874bc9ef52"
integrity sha512-laFayAxpO/dQL3K3ZcSjtaqJkSf70DH1hHJ8Oiiic0c/xBxh38WSx8yu3TMrbfka5MVIuMNlkq1Gi+SC+moe4w==
dependencies:
"@sentry/hub" "6.14.1"
"@sentry/minimal" "6.14.1"
"@sentry/types" "6.14.1"
"@sentry/utils" "6.14.1"
"@sentry/hub" "6.14.3"
"@sentry/minimal" "6.14.3"
"@sentry/types" "6.14.3"
"@sentry/utils" "6.14.3"
tslib "^1.9.3"
"@sentry/types@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.14.1.tgz#0d562a7aa91253b7843723344b4ba03a010e6376"
integrity sha512-RIk3ZwQKZnASrYWfV5i4wbzVveHz8xLFAS2ySIMqh+hICKnB0N4/r8a1Of/84j7pj+iAbf5vPS85639eIf+9qg==
"@sentry/types@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.14.3.tgz#4af799df7ddfa2702a46bffabc3f1b6eb195de23"
integrity sha512-GuyqvjQ/N0hIgAjGD1Rn0aQ8kpLBBsImk+Aoh7YFhnvXRhCNkp9N8BuXTfC/uMdMshcWa1OFik/udyjdQM3EJA==
"@sentry/utils@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.14.1.tgz#cb746858665314c07cfe9b0f307b410e377032ad"
integrity sha512-GVvf0z18L4DN0a6vIBdHSlrK/Dj8QFhuiiJ8NtccSoY8xiKXQNz9FKN5d52NUNqm59aopAxcVAcs57yQSdxrZQ==
"@sentry/utils@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.14.3.tgz#4ae907054152882fbd376906695ac326934669d1"
integrity sha512-jsCnclEsR2sV9aHMuaLA5gvxSa0xV4Sc6IJCJ81NTTdb/A5fFbteFBbhuISGF9YoFW1pwbpjuTA6+efXwvLwNQ==
dependencies:
"@sentry/types" "6.14.1"
"@sentry/types" "6.14.3"
tslib "^1.9.3"
"@sentry/vue@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/vue/-/vue-6.14.1.tgz#2528d03e2068e28a6a5874f39a5686add509dd55"
integrity sha512-p5O8ZIlFp8Il8ageuIcbc6YHcv1y4SDlsorzJPDb9CUZi2KDa9Ok0IwCt6d2UJ5iosYAp4lxjLiwNO860Jcdkw==
"@sentry/vue@6.14.3":
version "6.14.3"
resolved "https://registry.yarnpkg.com/@sentry/vue/-/vue-6.14.3.tgz#8f1bfadaf6c0f71befa293f508411a011780360b"
integrity sha512-gkf/spGVnvddkNFzYaRWMya0zNKud9HI3fKsPk+8pflGXjIK92kLRPsRyx/Fe9bSjX2K9T3RJDvPYA8P0ENGEg==
dependencies:
"@sentry/browser" "6.14.1"
"@sentry/core" "6.14.1"
"@sentry/minimal" "6.14.1"
"@sentry/types" "6.14.1"
"@sentry/utils" "6.14.1"
"@sentry/browser" "6.14.3"
"@sentry/core" "6.14.3"
"@sentry/minimal" "6.14.3"
"@sentry/types" "6.14.3"
"@sentry/utils" "6.14.3"
tslib "^1.9.3"
"@sideway/address@^4.1.0":
@ -2972,6 +3052,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
"@trysound/sax@0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
"@tsconfig/node10@^1.0.7":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9"
@ -3407,56 +3492,56 @@
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-1.9.4.tgz#4f48485432cbb986a9fb9d254dc33ce30ddccbfa"
integrity sha512-0CZqaCoChriPTTtGkERy1LGPcYjGFpi2uYRhBPIkqJqUGV5JnJFhQAgh6oH9j5XZHfrRaisX8W0xSpO4T7S78A==
"@volar/code-gen@0.29.3":
version "0.29.3"
resolved "https://registry.yarnpkg.com/@volar/code-gen/-/code-gen-0.29.3.tgz#ce275f9badbec6cf46847192d9a72f13ffe3bb63"
integrity sha512-qKpmk5E4+yppI3hqXfjUwatRStO5lmv7jBXQ5OutQwr9ZSEivPKDHTlfdhJxjJ2nd+buk/FDTzhFQFPbApTQAg==
"@volar/code-gen@0.29.4":
version "0.29.4"
resolved "https://registry.yarnpkg.com/@volar/code-gen/-/code-gen-0.29.4.tgz#db6aa99227803dc5e31954571547fbb4c9a3d7ef"
integrity sha512-EY6YKD4DDHnKwuf0cnZEFV8Y920Bv5EYsZIk5E3D9XwJHSrnXAQorASNA8aXBUpI1+aTmjDU8+APhYGqhemApw==
dependencies:
"@volar/shared" "0.29.3"
"@volar/source-map" "0.29.3"
"@volar/shared" "0.29.4"
"@volar/source-map" "0.29.4"
"@volar/html2pug@0.29.3":
version "0.29.3"
resolved "https://registry.yarnpkg.com/@volar/html2pug/-/html2pug-0.29.3.tgz#3b6f618702df953447a73046ef217a442629b42a"
integrity sha512-6PdonV53ln0xkqUJUxgQ7H//OHK/2lRKiwR+y14hJNmwVQmJo40Uj3Irlqdhiw5+Qq6E02OlxD3Xg+77gFSBDw==
"@volar/html2pug@0.29.4":
version "0.29.4"
resolved "https://registry.yarnpkg.com/@volar/html2pug/-/html2pug-0.29.4.tgz#ec5b776976def25b5f2ea87e56f42b5bfb861d92"
integrity sha512-lrdwCdWBJjZXzEI89soeeIXZC/4y2rERs1qn3zIzYfgfU1rQuYh6eCmfKFP4rXzRY6PPqzni48auxQxE8w5obg==
dependencies:
domelementtype "^2.2.0"
domhandler "^4.2.2"
htmlparser2 "^7.1.2"
pug "^3.0.2"
"@volar/shared@0.29.3":
version "0.29.3"
resolved "https://registry.yarnpkg.com/@volar/shared/-/shared-0.29.3.tgz#c9939f932da78f6c081a945171b2f68cb4a20586"
integrity sha512-K4KXHD9me278reBZE65Wqma5ps4U+5puh0nJ20AcAlMX4ItU6CAfP4Tes87kBPPFjTQVHS2V+idE4h6VpaJdMw==
"@volar/shared@0.29.4":
version "0.29.4"
resolved "https://registry.yarnpkg.com/@volar/shared/-/shared-0.29.4.tgz#b85940c4dab3f1b7e50901e02d683d8e25037523"
integrity sha512-Il0XUwq0/yE+8+nznKOuPVURCLcmx0ADKQ+0u5nYAQai75qryW2Bf4rnA8Eu9FicXXlIGLuqnpqX0jTBrYnaxQ==
dependencies:
upath "^2.0.1"
vscode-jsonrpc "^8.0.0-next.2"
vscode-uri "^3.0.2"
"@volar/source-map@0.29.3":
version "0.29.3"
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-0.29.3.tgz#1ef7c7755370f90223ee18039f5d42b66aa89844"
integrity sha512-m0eFr4kM/XEEkANTxDiJmY9Bt/RNeQkMfEhsxBPyIx5fSKs1fLrm+HkkdgdD6fhcXYkIqPXYPWu/2FvpOFxW0g==
"@volar/source-map@0.29.4":
version "0.29.4"
resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-0.29.4.tgz#5d92ddeeac2f86ccd43ff60bbbd34492d773f0cc"
integrity sha512-soPP7AFnUsWqJoe4XNLRc3zH32NVsVX0VYzTeL8B/4cCt9WxphbB4R3mlvP3VT0cvw0ghFHi4eXB/IzKucjP9w==
dependencies:
"@volar/shared" "0.29.3"
"@volar/shared" "0.29.4"
"@volar/transforms@0.29.3":
version "0.29.3"
resolved "https://registry.yarnpkg.com/@volar/transforms/-/transforms-0.29.3.tgz#56a3ca651a9508f1b27b637ced00e466cac957ac"
integrity sha512-8VEGzDV1/1iC4SRBkGpKm7iMv1/AcWy0PFcre6QW3Jl0ttId2RX9Y017s/LvL1c3tGq0gxa3Sw6tvmMLw301+Q==
"@volar/transforms@0.29.4":
version "0.29.4"
resolved "https://registry.yarnpkg.com/@volar/transforms/-/transforms-0.29.4.tgz#21bf6bc09679ec7d2ca8385a476a82846aa29fd6"
integrity sha512-LpKZjB1p14slnqvez5ajhxM670RnaOlG2VWJoIyotVniybHI/9mMjLkaCAw82sxS6pqhNTIy3D+bktakDo3qaA==
dependencies:
"@volar/shared" "0.29.3"
"@volar/shared" "0.29.4"
vscode-languageserver "^8.0.0-next.2"
"@volar/vue-code-gen@0.29.3":
version "0.29.3"
resolved "https://registry.yarnpkg.com/@volar/vue-code-gen/-/vue-code-gen-0.29.3.tgz#0076939775dc625b7eb9b175a97d4f4fe7a13d19"
integrity sha512-pQ+i+7JU90vpQqlQaj1H2wo5oAGQLu7cbTLBtOXfL/ea+UE2Oqb07pFdhDqBnMv6uo0HrDr5bbWVfDYa1Xntnw==
"@volar/vue-code-gen@0.29.4":
version "0.29.4"
resolved "https://registry.yarnpkg.com/@volar/vue-code-gen/-/vue-code-gen-0.29.4.tgz#6bac56f371e4943872fc4d1870fae743e3c718fb"
integrity sha512-zTTcrlzNs0W1UXu1DfqQNADfPXo0FyZJE9b6bSAlNI5m9farlc7F8vmils9bme2inp+uVXweZYDlsis43ZadzA==
dependencies:
"@volar/code-gen" "0.29.3"
"@volar/shared" "0.29.3"
"@volar/source-map" "0.29.3"
"@volar/code-gen" "0.29.4"
"@volar/shared" "0.29.4"
"@volar/source-map" "0.29.4"
"@vue/compiler-core" "^3.2.21"
"@vue/compiler-dom" "^3.2.21"
"@vue/shared" "^3.2.21"
@ -3497,7 +3582,7 @@
"@vue/compiler-core" "3.2.21"
"@vue/shared" "3.2.21"
"@vue/compiler-sfc@3.2.21":
"@vue/compiler-sfc@3.2.21", "@vue/compiler-sfc@^3.2.20":
version "3.2.21"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.21.tgz#42639ee49e725afb7d8f1d1940e75dc17a56002c"
integrity sha512-+yDlUSebKpz/ovxM2vLRRx7w/gVfY767pOfYTgbIhAs+ogvIV2BsIt4fpxlThnlCNChJ+yE0ERUNoROv2kEGEQ==
@ -4307,6 +4392,11 @@ body-parser@1.19.0:
raw-body "2.4.0"
type-is "~1.6.17"
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
boxen@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
@ -5328,6 +5418,37 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
css-select@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067"
integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==
dependencies:
boolbase "^1.0.0"
css-what "^5.0.0"
domhandler "^4.2.0"
domutils "^2.6.0"
nth-check "^2.0.0"
css-tree@^1.1.2, css-tree@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
dependencies:
mdn-data "2.0.14"
source-map "^0.6.1"
css-what@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
csso@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
dependencies:
css-tree "^1.1.2"
cssom@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
@ -5360,12 +5481,12 @@ cypress-file-upload@5.0.8:
resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1"
integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==
cypress@8.7.0:
version "8.7.0"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-8.7.0.tgz#2ee371f383d8f233d3425b6cc26ddeec2668b6da"
integrity sha512-b1bMC3VQydC6sXzBMFnSqcvwc9dTZMgcaOzT0vpSD+Gq1yFc+72JDWi55sfUK5eIeNLAtWOGy1NNb6UlhMvB+Q==
cypress@9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.0.0.tgz#8c496f7f350e611604cc2f77b663fb81d0c235d2"
integrity sha512-/93SWBZTw7BjFZ+I9S8SqkFYZx7VhedDjTtRBmXO0VzTeDbmxgK/snMJm/VFjrqk/caWbI+XY4Qr80myDMQvYg==
dependencies:
"@cypress/request" "^2.88.6"
"@cypress/request" "^2.88.7"
"@cypress/xvfb" "^1.2.4"
"@types/node" "^14.14.31"
"@types/sinonjs__fake-timers" "^6.0.2"
@ -5400,7 +5521,6 @@ cypress@8.7.0:
ospath "^1.2.2"
pretty-bytes "^5.6.0"
proxy-from-env "1.0.0"
ramda "~0.27.1"
request-progress "^3.0.0"
supports-color "^8.1.1"
tmp "~0.2.1"
@ -5844,7 +5964,7 @@ dompurify@2.3.3:
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.3.tgz#c1af3eb88be47324432964d8abc75cf4b98d634c"
integrity sha512-dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg==
domutils@^2.8.0:
domutils@^2.6.0, domutils@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
@ -7125,6 +7245,11 @@ get-amd-module-type@^3.0.0:
ast-module-types "^2.3.2"
node-source-walk "^4.0.0"
get-caller-file@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
@ -9463,10 +9588,10 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
marked@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.0.tgz#fd4ff16f6b99fbe6beb729f2077ea717d0ec4edb"
integrity sha512-K3C1JvtiXuXVLoxDQEJP4NMLBuThlTkthgUOCzqLghIpHfis1DIZZfPI3o4UgfFpQ0d+JvTql2h+szR9jQ1p1w==
marked@4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.3.tgz#986760a428d8fd666251ec578429bf9a239a34bc"
integrity sha512-vSwKKtw+lCA0uFK/02JT4tBfNxEREpoTg21NoXqcmX0ySBIEyLMYWmt8WPsM61QNFaDBZkggupyNXLsV7uPuRg==
marked@^2.0.3:
version "2.1.3"
@ -9495,16 +9620,16 @@ md5-hex@^3.0.1:
dependencies:
blueimp-md5 "^2.10.0"
mdn-data@2.0.14:
version "2.0.14"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
memoize-one@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e"
integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==
memoize-one@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
@ -9714,6 +9839,14 @@ mkdirp@^1.0.3:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mock-require@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz#ccd544d9eae81dd576b3f219f69ec867318a1946"
integrity sha512-lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==
dependencies:
get-caller-file "^1.0.2"
normalize-path "^2.1.1"
module-definition@^3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.3.1.tgz#fedef71667713e36988b93d0626a4fe7b35aebfc"
@ -9847,19 +9980,19 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0:
resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61"
integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==
netlify-cli@^6.14.19:
version "6.14.19"
resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-6.14.19.tgz#c54f8cfb1a0cfef2873f0a88d7ae2185051f835c"
integrity sha512-qYAmed565k26pOkB2gwRjlsOkfsq+9wCmlBvsQPqI6vEvHS2e1KWQNrjPOrgO+nNns6eskuMpl4Vz507nTghMQ==
netlify-cli@6.14.23:
version "6.14.23"
resolved "https://registry.yarnpkg.com/netlify-cli/-/netlify-cli-6.14.23.tgz#7d1d6b962fd0b3c95b4bed48396cda68030ae569"
integrity sha512-22dKRJfuuZrq97QFlWkQm6Dyr3rXutcAIiuYcRE2Wp+PtE+DgyV5K5q4y4FqnRw9L37M8ShSxTYTDP5xmiLuNA==
dependencies:
"@netlify/build" "^18.21.7"
"@netlify/build" "^18.22.0"
"@netlify/config" "^15.8.2"
"@netlify/framework-info" "^5.11.0"
"@netlify/local-functions-proxy" "^1.1.1"
"@netlify/plugin-edge-handlers" "^1.11.22"
"@netlify/plugins-list" "^4.2.0"
"@netlify/routing-local-proxy" "^0.34.1"
"@netlify/zip-it-and-ship-it" "4.29.1"
"@netlify/zip-it-and-ship-it" "4.29.3"
"@oclif/command" "^1.6.1"
"@oclif/config" "^1.15.1"
"@oclif/errors" "^1.3.4"
@ -9922,8 +10055,9 @@ netlify-cli@^6.14.19:
lodash "^4.17.20"
log-symbols "^4.0.0"
make-dir "^3.0.0"
memoize-one "^5.2.1"
memoize-one "^6.0.0"
minimist "^1.2.5"
mock-require "^3.0.3"
multiparty "^4.2.1"
netlify "^8.0.4"
netlify-headers-parser "^4.0.1"
@ -10208,6 +10342,13 @@ npmlog@^5.0.1:
gauge "^3.0.0"
set-blocking "^2.0.0"
nth-check@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
dependencies:
boolbase "^1.0.0"
number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
@ -11133,11 +11274,6 @@ quick-lru@^4.0.1:
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
ramda@~0.27.1:
version "0.27.1"
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9"
integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==
random-bytes@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
@ -11559,7 +11695,14 @@ rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2:
dependencies:
estree-walker "^0.6.1"
rollup@2.59.0, rollup@^2.23.1:
rollup@2.60.0:
version "2.60.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.60.0.tgz#4ee60ab7bdd0356763f87d7099f413e5460fc193"
integrity sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==
optionalDependencies:
fsevents "~2.3.2"
rollup@^2.23.1:
version "2.59.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.59.0.tgz#108c61b0fa0a37ebc8d1f164f281622056f0db59"
integrity sha512-l7s90JQhCQ6JyZjKgo7Lq1dKh2RxatOM+Jr6a9F7WbS9WgKbocyUSeLmZl8evAse7y96Ae98L2k1cBOwWD8nHw==
@ -11849,7 +11992,7 @@ slice-ansi@^4.0.0:
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
slugify@^1.6.2:
slugify@1.6.2:
version "1.6.2"
resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.2.tgz#4cb97220a2278e1b86fb017c6da668e6a865354c"
integrity sha512-XMtI8qD84LwCpthLMBHlIhcrj10cgA+U/Ot8G6FD6uFuWZtMfKK75JO7l81nzpFJsPlsW6LT+VKqWQJW3+6New==
@ -12042,6 +12185,11 @@ sshpk@^1.7.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
stable@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
stack-generator@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.5.tgz#fb00e5b4ee97de603e0773ea78ce944d81596c36"
@ -12320,6 +12468,19 @@ supports-hyperlinks@^2.0.0, supports-hyperlinks@^2.1.0:
has-flag "^4.0.0"
supports-color "^7.0.0"
svgo@^2.7.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
dependencies:
"@trysound/sax" "0.2.0"
commander "^7.2.0"
css-select "^4.1.3"
css-tree "^1.1.3"
csso "^4.2.0"
picocolors "^1.0.0"
stable "^0.1.8"
symbol-observable@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@ -13083,6 +13244,14 @@ vite-plugin-pwa@0.11.3:
workbox-build "^6.3.0"
workbox-window "^6.3.0"
vite-svg-loader@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-3.1.0.tgz#58d4ed5785583afce10059125467f8bf803e3183"
integrity sha512-dcxLJPQXC3e2/HYrKjOi0fEIzP+Wcny1PhOTsYhnZcqLIhyjAHkMeZwWl9jXC3u+QpUZy4TyLgVnBPuiok3BUA==
dependencies:
"@vue/compiler-sfc" "^3.2.20"
svgo "^2.7.0"
vite@2.6.14:
version "2.6.14"
resolved "https://registry.yarnpkg.com/vite/-/vite-2.6.14.tgz#35c09a15e4df823410819a2a239ab11efb186271"
@ -13171,25 +13340,25 @@ vscode-nls@^5.0.0:
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
vscode-pug-languageservice@0.29.3:
version "0.29.3"
resolved "https://registry.yarnpkg.com/vscode-pug-languageservice/-/vscode-pug-languageservice-0.29.3.tgz#efaa3ceff1d5c16adbefcb432134a44ecf4d3ee2"
integrity sha512-efyCCibyRqyAYybT+FPS4CA+YCii4asx5UeNqbx0lMXKnkMuvnrfkbRlIXOWmR+qTJyveDZw4fYQf51VSuLaAg==
vscode-pug-languageservice@0.29.4:
version "0.29.4"
resolved "https://registry.yarnpkg.com/vscode-pug-languageservice/-/vscode-pug-languageservice-0.29.4.tgz#7fa18051bb2e2720ebbe440b7c3e37498c372d85"
integrity sha512-dfO0zvy3y40HzzCbrEmwdfGrnTqTGjE94YIt0q/IP0mn5DVEq/SBccb0f67y+iypcIdAoUf2jSvCG/eKR3KfUw==
dependencies:
"@volar/code-gen" "0.29.3"
"@volar/shared" "0.29.3"
"@volar/source-map" "0.29.3"
"@volar/transforms" "0.29.3"
"@volar/code-gen" "0.29.4"
"@volar/shared" "0.29.4"
"@volar/source-map" "0.29.4"
"@volar/transforms" "0.29.4"
pug-lexer "^5.0.1"
pug-parser "^6.0.0"
vscode-languageserver "^8.0.0-next.2"
vscode-typescript-languageservice@0.29.3:
version "0.29.3"
resolved "https://registry.yarnpkg.com/vscode-typescript-languageservice/-/vscode-typescript-languageservice-0.29.3.tgz#86d3bf06798fa216597b399a54d979a2d96eb924"
integrity sha512-ZW6KawNc/3TH8cHzaHfNs5j8Wn97pwwEpuWm5rQTPz0fNcureSCl2J3hU6brayr7eD81A0BpdIDgknOSJJK0GA==
vscode-typescript-languageservice@0.29.4:
version "0.29.4"
resolved "https://registry.yarnpkg.com/vscode-typescript-languageservice/-/vscode-typescript-languageservice-0.29.4.tgz#8b703c2eff3510e3274652ba59945b813d2030c7"
integrity sha512-lidKI5UBCtGE9NB51dZh4BbBrMncFiZbgnW7UJrbIXEF4qLcPs1xt7tBrYZztm/Z14cNM+MVJA6LwFmAC3ERaw==
dependencies:
"@volar/shared" "0.29.3"
"@volar/shared" "0.29.4"
semver "^7.3.5"
upath "^2.0.1"
vscode-languageserver "^8.0.0-next.2"
@ -13205,17 +13374,17 @@ vscode-uri@^3.0.2:
resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.2.tgz#ecfd1d066cb8ef4c3a208decdbab9a8c23d055d0"
integrity sha512-jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==
vscode-vue-languageservice@0.29.3:
version "0.29.3"
resolved "https://registry.yarnpkg.com/vscode-vue-languageservice/-/vscode-vue-languageservice-0.29.3.tgz#68876a48684d065502e9d6b28d6a683148f645ba"
integrity sha512-DcFAhvejcEHHQl2XFl7foLtH+zHQzYdtjOJ/hROg3+z1W72UYyeRal5sRGatAsmHnOyGL+0AdCjjlHd8d6j0mg==
vscode-vue-languageservice@0.29.4:
version "0.29.4"
resolved "https://registry.yarnpkg.com/vscode-vue-languageservice/-/vscode-vue-languageservice-0.29.4.tgz#06f88bb1f2ebdcb9f184d5fbeb886f7e3eb1c6e8"
integrity sha512-BePX1SJ+d5R98/l7/hyJAsJLB7cTDUosN3bS1cgY5xTgRhC8vOPyoA7keeXBpoZEk+8Hoxfo9hL8HEW2dm93nw==
dependencies:
"@volar/code-gen" "0.29.3"
"@volar/html2pug" "0.29.3"
"@volar/shared" "0.29.3"
"@volar/source-map" "0.29.3"
"@volar/transforms" "0.29.3"
"@volar/vue-code-gen" "0.29.3"
"@volar/code-gen" "0.29.4"
"@volar/html2pug" "0.29.4"
"@volar/shared" "0.29.4"
"@volar/source-map" "0.29.4"
"@volar/transforms" "0.29.4"
"@volar/vue-code-gen" "0.29.4"
"@vscode/emmet-helper" "^2.8.0"
"@vue/reactivity" "^3.2.21"
"@vue/shared" "^3.2.21"
@ -13226,8 +13395,8 @@ vscode-vue-languageservice@0.29.3:
vscode-json-languageservice "^4.1.8"
vscode-languageserver "^8.0.0-next.2"
vscode-languageserver-textdocument "^1.0.1"
vscode-pug-languageservice "0.29.3"
vscode-typescript-languageservice "0.29.3"
vscode-pug-languageservice "0.29.4"
vscode-typescript-languageservice "0.29.4"
vue-advanced-cropper@2.6.3:
version "2.6.3"
@ -13293,13 +13462,13 @@ vue-router@4.0.12:
dependencies:
"@vue/devtools-api" "^6.0.0-beta.18"
vue-tsc@0.29.3:
version "0.29.3"
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-0.29.3.tgz#7e4ef2c50bee79949681d25a43fa7a37539dc487"
integrity sha512-tNe/IwBQFN3kk/Za0d9OeGdQfWCIXb7TvpJTZLn+bdt47aA5X+WtGVl3/WwNMokkO3cgHTFkpMaUcKZ+kGN2mg==
vue-tsc@0.29.4:
version "0.29.4"
resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-0.29.4.tgz#877bd22d95d2eed0418cbc22dd72293558f24e70"
integrity sha512-Zf97KNSIEZ4wKJ4tft6N6FKc4p3dfr5xJIjfpzzMkHNIyu+PTGQyYZSupcQCUs8tYNp4WljcfhtxYiAD8ulaCQ==
dependencies:
"@volar/shared" "0.29.3"
vscode-vue-languageservice "0.29.3"
"@volar/shared" "0.29.4"
vscode-vue-languageservice "0.29.4"
vue@3.2.21:
version "3.2.21"