food editor WIP

This commit is contained in:
vabene1111
2024-09-22 12:31:59 +02:00
parent a173e66a59
commit 73e4f22256
40 changed files with 523 additions and 147 deletions

View File

@@ -25,15 +25,15 @@
},
"devDependencies": {
"@fortawesome/fontawesome-free": "^6.6.0",
"@tsconfig/node18": "^18.2.4",
"@tsconfig/node20": "^20.1.4",
"@types/jsdom": "^21.1.1",
"@types/node": "^18.17.5",
"@vitejs/plugin-vue": "^5.0.5",
"@types/node": "^20.16.5",
"@vitejs/plugin-vue": "^5.1.4",
"@vue/tsconfig": "^0.5.1",
"jsdom": "^24.1.0",
"typescript": "^5.5.3",
"vite": "^5.3.3",
"vite-plugin-vuetify": "^2.0.3",
"typescript": "^5.6.2",
"vite": "^5.4.7",
"vite-plugin-vuetify": "^2.0.4",
"vue-tsc": "^2.0.26"
}
}

View File

@@ -4,6 +4,7 @@
<invite-link-editor :item="item" @create="createEvent" @save="saveEvent" @delete="deleteEvent" dialog @close="dialog = false" v-if="model == SupportedModels.InviteLink"></invite-link-editor>
<user-space-editor :item="item" @create="createEvent" @save="saveEvent" @delete="deleteEvent" dialog @close="dialog = false" v-if="model == SupportedModels.UserSpace"></user-space-editor>
<meal-type-editor :item="item" @create="createEvent" @save="saveEvent" @delete="deleteEvent" dialog @close="dialog = false" v-if="model == SupportedModels.MealType"></meal-type-editor>
<property-editor :item="item" @create="createEvent" @save="saveEvent" @delete="deleteEvent" dialog @close="dialog = false" v-if="model == SupportedModels.Property"></property-editor>
</v-dialog>
</template>
@@ -16,12 +17,14 @@ import {AccessToken, Food} from "@/openapi";
import InviteLinkEditor from "@/components/model_editors/InviteLinkEditor.vue";
import UserSpaceEditor from "@/components/model_editors/UserSpaceEditor.vue";
import MealTypeEditor from "@/components/model_editors/MealTypeEditor.vue";
import PropertyEditor from "@/components/model_editors/PropertyEditor.vue";
enum SupportedModels {
AccessToken = 'AccessToken',
InviteLink = 'InviteLink',
UserSpace = 'UserSpace',
MealType = 'MealType',
Property = 'Property',
}
const emit = defineEmits(['create', 'save', 'delete'])

View File

@@ -1,9 +1,10 @@
<template>
<v-input :hint="hint" persistent-hint :label="label">
<!-- TODO label is not showing for some reason, for now in placeholder -->
<!-- TODO support density prop -->
<v-input :hint="hint" persistent-hint :label="label" class="">
<!-- TODO resolve-on-load false for now, race condition with model class, make prop once better solution is found -->
<!-- TODO strange behavior/layering issues with appendTo body, find solution to make it work -->
<!-- TODO label is not showing for some reason -->
<Multiselect
:id="id"
@@ -24,7 +25,7 @@
:can-clear="canClear"
:can-deselect="canClear"
:limit="limit"
:placeholder="$t('Search')"
:placeholder="label"
:noOptionsText="$t('No_Results')"
:noResultsText="$t('No_Results')"
/>

View File

@@ -1,13 +1,77 @@
<template>
<v-card>
<v-card-title>
{{ $t(OBJ_LOCALIZATION_KEY) }}
{{ $t(OBJ_LOCALIZATION_KEY) }} <span class="text-disabled">{{ editingObj.name }}</span>
<v-btn class="float-right" icon="$close" variant="plain" @click="emit('close')" v-if="dialog"></v-btn>
</v-card-title>
<v-tabs v-model="tab">
<v-tab value="food">{{ $t('Food') }}</v-tab>
<v-tab value="properties">{{ $t('Properties') }}</v-tab>
<v-tab value="conversions">{{ $t('Conversion') }}</v-tab>
<v-tab value="misc">{{ $t('Miscellaneous') }}</v-tab>
</v-tabs>
<v-card-text>
<v-form>
<v-text-field v-model="editingObj.name"></v-text-field>
</v-form>
<v-tabs-window v-model="tab">
<v-tabs-window-item value="food">
<v-form>
<v-text-field :label="$t('Name')" v-model="editingObj.name"></v-text-field>
<v-text-field :label="$t('Plural')" v-model="editingObj.pluralName"></v-text-field>
<v-textarea :label="$t('Description')" v-model="editingObj.description"></v-textarea>
<!-- TODO fix card overflow invisible, overflow-visible class is not working -->
<model-select :label="$t('Category')" v-model="editingObj.supermarketCategory" model="SupermarketCategory"></model-select>
</v-form>
</v-tabs-window-item>
<v-tabs-window-item value="properties">
<v-alert icon="$help">{{ $t('PropertiesFoodHelp') }}</v-alert>
<v-form class="mt-5">
<v-number-input :label="$t('Properties_Food_Amount')" v-model="editingObj.propertiesFoodAmount"></v-number-input>
<model-select :label="$t('Properties_Food_Unit')" v-model="editingObj.propertiesFoodUnit" model="Unit"></model-select>
<v-btn-group density="compact">
<v-btn color="create" @click="editingObj.properties.push({} as Property)" prepend-icon="$create">{{ $t('Add') }}</v-btn>
<v-btn color="secondary" @click="addAllProperties" prepend-icon="fa-solid fa-list">{{ $t('AddAll') }}</v-btn>
</v-btn-group>
<v-row class="mt-2" v-for="p in editingObj.properties" dense>
<v-col cols="0" md="5">
<v-number-input :step="10" v-model="p.propertyAmount" control-variant="stacked">
<template #append-inner v-if="p.propertyType">
<v-chip class="me-4">{{ p.propertyType.unit }} / {{ editingObj.propertiesFoodAmount }} <span v-if="editingObj.propertiesFoodUnit">&nbsp;{{
editingObj.propertiesFoodUnit.name
}}</span>
</v-chip>
</template>
</v-number-input>
</v-col>
<v-col cols="0" md="6">
<!-- TODO fix card overflow invisible, overflow-visible class is not working -->
<model-select :label="$t('Property')" v-model="p.propertyType" model="PropertyType"></model-select>
</v-col>
<v-col cols="0" md="1">
<v-btn color="delete" @click="deleteFoodProperty(p)">
<v-icon icon="$delete"></v-icon>
</v-btn>
</v-col>
</v-row>
<v-list >
<v-list-item v-for="p in editingObj.properties" border>
<span v-if="p.propertyType">{{ p.propertyAmount }} {{p.propertyType.unit}} {{p.propertyType.name}}
<span v-if="editingObj.propertiesFoodUnit"> / {{ editingObj.propertiesFoodAmount }} {{ editingObj.propertiesFoodUnit.name }}</span>
</span>
<span v-else><i><{{$t('New')}}></i></span>
<template #append>
<v-btn color="edit"><v-icon icon="$edit"></v-icon>
<model-editor-dialog model="Property" :item="p"></model-editor-dialog>
</v-btn>
</template>
</v-list-item>
</v-list>
</v-form>
</v-tabs-window-item>
</v-tabs-window>
</v-card-text>
<v-card-actions>
<v-btn color="delete" prepend-icon="$delete" v-if="isUpdate">{{ $t('Delete') }}
@@ -20,11 +84,14 @@
<script setup lang="ts">
import {computed, onMounted, ref} from "vue";
import {ApiApi, Food} from "@/openapi";
import {computed, onMounted, Prop, ref} from "vue";
import {ApiApi, Food, Property, Unit} from "@/openapi";
import DeleteConfirmDialog from "@/components/dialogs/DeleteConfirmDialog.vue";
import {useI18n} from "vue-i18n";
import {ErrorMessageType, PreparedMessage, useMessageStore} from "@/stores/MessageStore";
import ModelSelect from "@/components/inputs/ModelSelect.vue";
import {VNumberInput} from 'vuetify/labs/VNumberInput'
import ModelEditorDialog from "@/components/dialogs/ModelEditorDialog.vue"; //TODO remove once component is out of labs
const {t} = useI18n()
@@ -40,6 +107,14 @@ const OBJ_LOCALIZATION_KEY = 'Food'
const editingObj = ref({} as Food)
const loading = ref(false)
// object specific data (for selects/display)
const tab = ref("properties")
const propertyTableHeaders = ref([
{title: t('Amount'), key: 'propertyAmount'},
{title: t('Type'), key: 'propertyType'},
{title: t('Delete'), key: 'action', align: 'end'},
])
/**
* checks if given object has ID property to determine if it needs to be updated or created
*/
@@ -57,7 +132,7 @@ const objectName = computed(() => {
onMounted(() => {
if (props.item != null) {
editingObj.value = props.item
} else if(props.itemId != null){
} else if (props.itemId != null) {
const api = new ApiApi()
api.apiFoodRetrieve({id: props.itemId}).then(r => {
editingObj.value = r
@@ -66,7 +141,8 @@ onMounted(() => {
})
} else {
// functions to populate defaults for new item
editingObj.value.propertiesFoodAmount = 100
editingObj.value.propertiesFoodUnit = {name: 'g'} as Unit // TODO properly fetch default unit
}
})
@@ -76,7 +152,7 @@ onMounted(() => {
async function saveObject() {
let api = new ApiApi()
if (isUpdate.value) {
api.apiFoodUpdate({id: editingObj.value.id, accessToken: editingObj.value}).then(r => {
api.apiFoodUpdate({id: editingObj.value.id, food: editingObj.value}).then(r => {
editingObj.value = r
emit('save', r)
useMessageStore().addPreparedMessage(PreparedMessage.UPDATE_SUCCESS)
@@ -84,7 +160,7 @@ async function saveObject() {
useMessageStore().addError(ErrorMessageType.UPDATE_ERROR, err)
})
} else {
api.apiFoodCreate({accessToken: editingObj.value}).then(r => {
api.apiFoodCreate({food: editingObj.value}).then(r => {
editingObj.value = r
emit('create', r)
useMessageStore().addPreparedMessage(PreparedMessage.CREATE_SUCCESS)
@@ -107,6 +183,34 @@ async function deleteObject() {
})
}
// ------------------------------------------------------
// object specific functions
// ------------------------------------------------------
/**
* load list of property types from server and add all types that are not yet linked
* to the given food to its properties
*/
function addAllProperties() {
const api = new ApiApi()
api.apiPropertyTypeList().then(r => {
r.results.forEach(pt => {
if (editingObj.value.properties.findIndex(x => x.propertyType.name == pt.name) == -1) {
editingObj.value.properties.push({propertyAmount: 0, propertyType: pt} as Property)
}
})
})
}
/**
* remove property from food
* //TODO also delete relation in database
* @param property property to delete
*/
function deleteFoodProperty(property: Property) {
editingObj.value.properties = editingObj.value.properties.filter(p => p !== property)
}
</script>
<style scoped>

View File

@@ -0,0 +1,133 @@
<template>
<v-card>
<v-card-title>
{{ $t(OBJ_LOCALIZATION_KEY) }}
<v-btn class="float-right" icon="$close" variant="plain" @click="emit('close')" v-if="dialog"></v-btn>
</v-card-title>
<v-card-text>
<v-form>
<v-number-input :step="10" v-model="editingObj.propertyAmount" control-variant="stacked">
<template #append-inner v-if="editingObj.propertyType">
<v-chip class="me-4">{{ editingObj.propertyType.unit }}</v-chip>
</template>
</v-number-input>
<model-select :label="$t('Property')" v-model="editingObj.propertyType" model="PropertyType"></model-select>
</v-form>
</v-card-text>
<v-card-actions>
<v-btn color="delete" prepend-icon="$delete" v-if="isUpdate">{{ $t('Delete') }}
<delete-confirm-dialog :object-name="objectName" @delete="deleteObject"></delete-confirm-dialog>
</v-btn>
<v-btn color="save" prepend-icon="$save" @click="saveObject">{{ isUpdate ? $t('Save') : $t('Create') }}</v-btn>
</v-card-actions>
</v-card>
</template>
<script setup lang="ts">
import {computed, onMounted, ref} from "vue";
import {ApiApi, Property} from "@/openapi";
import DeleteConfirmDialog from "@/components/dialogs/DeleteConfirmDialog.vue";
import {useI18n} from "vue-i18n";
import {ErrorMessageType, PreparedMessage, useMessageStore} from "@/stores/MessageStore";
import ModelSelect from "@/components/inputs/ModelSelect.vue";
import {VNumberInput} from 'vuetify/labs/VNumberInput' //TODO remove once component is out of labs
const {t} = useI18n()
const emit = defineEmits(['create', 'save', 'delete', 'close'])
const props = defineProps({
item: {type: {} as Property, required: false},
itemId: {type: String, required: false},
dialog: {type: Boolean, default: false}
})
const OBJ_LOCALIZATION_KEY = 'Food'
const editingObj = ref({} as Property)
const loading = ref(false)
// object specific data (for selects/display)
/**
* checks if given object has ID property to determine if it needs to be updated or created
*/
const isUpdate = computed(() => {
return Object.keys(editingObj.value).length > 0
})
/**
* display name for object in headers/delete dialog/...
*/
const objectName = computed(() => {
return isUpdate ? `${t(OBJ_LOCALIZATION_KEY)} ${editingObj.value.token}` : `${t(OBJ_LOCALIZATION_KEY)} (${t('New')})`
})
onMounted(() => {
if (props.item != null) {
editingObj.value = props.item
} else if (props.itemId != null) {
const api = new ApiApi()
api.apiPropertyRetrieve({id: props.itemId}).then(r => {
editingObj.value = r
}).catch(err => {
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
})
} else {
// functions to populate defaults for new item
}
})
/**
* saves the edited object in the database
*/
async function saveObject() {
let api = new ApiApi()
if (isUpdate.value) {
api.apiPropertyUpdate({id: editingObj.value.id, property: editingObj.value}).then(r => {
editingObj.value = r
emit('save', r)
useMessageStore().addPreparedMessage(PreparedMessage.UPDATE_SUCCESS)
}).catch(err => {
useMessageStore().addError(ErrorMessageType.UPDATE_ERROR, err)
})
} else {
api.apiPropertyCreate({property: editingObj.value}).then(r => {
editingObj.value = r
emit('create', r)
useMessageStore().addPreparedMessage(PreparedMessage.CREATE_SUCCESS)
}).catch(err => {
useMessageStore().addError(ErrorMessageType.CREATE_ERROR, err)
})
}
}
/**
* deletes the editing object from the database
*/
async function deleteObject() {
if (editingObj.value.id !== undefined) {
let api = new ApiApi()
api.apiPropertyDestroy({id: editingObj.value.id}).then(r => {
editingObj.value = {} as Property
emit('delete', editingObj.value)
}).catch(err => {
useMessageStore().addError(ErrorMessageType.DELETE_ERROR, err)
})
} else {
editingObj.value = {} as Property
emit('delete', editingObj.value)
}
}
// ------------------------------------------------------
// object specific functions
// ------------------------------------------------------
</script>
<style scoped>
</style>

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "",
"AddAll": "",
"AddFoodToShopping": "",
"AddToShopping": "",
"Add_Servings_to_Shopping": "",
@@ -147,6 +148,7 @@
"Merge": "",
"Merge_Keyword": "",
"Message": "",
"Miscellaneous": "",
"Monday": "",
"Month": "",
"Move": "",
@@ -201,6 +203,7 @@
"Previous_Period": "",
"Print": "",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "",
"Proteins": "",
"Quick actions": "",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "Добави",
"AddAll": "",
"AddFoodToShopping": "Добавете {food} към списъка си за пазаруване",
"AddToShopping": "Добавяне към списъка за пазаруване",
"Add_Servings_to_Shopping": "Добавете {servings} порции към Пазаруване",
@@ -141,6 +142,7 @@
"Meal_Types": "Видове хранене",
"Merge": "Обединяване",
"Merge_Keyword": "Обединяване на ключова дума",
"Miscellaneous": "",
"Monday": "",
"Month": "Месец",
"Move": "Премести",
@@ -194,6 +196,7 @@
"Previous_Period": "Предишен период",
"Print": "Печат",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Защитен",
"Proteins": "Протеини (белтъчини)",
"Quick actions": "Бързи действия",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "",
"Add": "",
"AddAll": "",
"AddFoodToShopping": "",
"AddToShopping": "",
"Add_Servings_to_Shopping": "",
@@ -197,6 +198,7 @@
"Merge": "",
"Merge_Keyword": "Fusioneu paraula clau",
"Message": "",
"Miscellaneous": "",
"Monday": "",
"Month": "",
"Move": "",
@@ -267,6 +269,7 @@
"Private_Recipe_Help": "Només tu i la gent amb qui l'has compartit podran veure aquesta recepta.",
"Profile": "",
"Properties": "",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "",
"Properties_Food_Unit": "",
"Property": "",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Účet",
"Add": "Přidat",
"AddAll": "",
"AddFoodToShopping": "Přidat {food} na váš nákupní seznam",
"AddToShopping": "Přidat do nákupního seznamu",
"Add_Servings_to_Shopping": "Přidat {servings} porce na nákupní seznam",
@@ -196,6 +197,7 @@
"Merge": "Spojit",
"Merge_Keyword": "Sloučit štítek",
"Message": "Zpráva",
"Miscellaneous": "",
"Monday": "",
"Month": "Měsíc",
"Move": "Přesunout",
@@ -265,6 +267,7 @@
"Private_Recipe_Help": "Recept můžete zobrazit pouze vy a lidé, se kterými jej sdílíte.",
"Profile": "",
"Properties": "Nutriční vlastnosti",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "Množství nutriční vlastnosti",
"Properties_Food_Unit": "Jednotka nutriční vlastnosti",
"Property": "Nutriční vlastnost",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Bruger",
"Add": "Tilføj",
"AddAll": "",
"AddFoodToShopping": "Tilføj {food} til indkøbsliste",
"AddToShopping": "Tilføj til indkøbsliste",
"Add_Servings_to_Shopping": "Tilføj {servings} serveringer til indkøb",
@@ -183,6 +184,7 @@
"Merge": "Sammenflet",
"Merge_Keyword": "Sammenflet nøgleord",
"Message": "Besked",
"Miscellaneous": "",
"Monday": "",
"Month": "Måned",
"Move": "Flyt",
@@ -250,6 +252,7 @@
"Private_Recipe_Help": "Opskriften er kun synlig for dig, og dem som den er delt med.",
"Profile": "",
"Properties": "Egenskaber",
"PropertiesFoodHelp": "",
"Property": "Egenskab",
"Protected": "Beskyttet",
"Proteins": "Proteiner",

View File

@@ -3,6 +3,7 @@
"Access_Token": "Zugriffstoken",
"Account": "Konto",
"Add": "Hinzufügen",
"AddAll": "Alle Hinzufügen",
"AddFoodToShopping": "Fügen Sie {food} zur Einkaufsliste hinzu",
"AddToShopping": "Zur Einkaufsliste hinzufügen",
"Add_Servings_to_Shopping": "{servings} Portionen zum Einkauf hinzufügen",
@@ -199,6 +200,7 @@
"Merge": "Zusammenführen",
"Merge_Keyword": "Schlagworte zusammenführen",
"Message": "Nachricht",
"Miscellaneous": "Sonstige",
"Monday": "Montag",
"Month": "Monat",
"Move": "Verschieben",
@@ -269,6 +271,7 @@
"Private_Recipe_Help": "Dieses Rezept ist nur für dich und Personen mit denen du es geteilt hast sichtbar.",
"Profile": "Profil",
"Properties": "Eigenschaften",
"PropertiesFoodHelp": "Jedes Lebensmittel kann Eigenschaften zugeordnet bekommen. Rezepte berechnen die Summe der Eigenschaften basierend auf den verwendeten Lebensmitteln und Ihren Mengen.",
"Properties_Food_Amount": "Eigenschaften: Lebensmittelmenge",
"Properties_Food_Unit": "Nährwert Einheit",
"Property": "Eigenschaft",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Λογαριασμός",
"Add": "Προσθήκη",
"AddAll": "",
"AddFoodToShopping": "Προσθήκη του φαγητού {food} στη λίστα αγορών σας",
"AddToShopping": "Προσθήκη στη λίστα αγορών",
"Add_Servings_to_Shopping": "Προσθήκη {servings} μερίδων στις αγορές",
@@ -178,6 +179,7 @@
"Merge": "Συγχώνευση",
"Merge_Keyword": "Συγχώνευση λέξης-κλειδί",
"Message": "Μήνυμα",
"Miscellaneous": "",
"Monday": "",
"Month": "Μήνας",
"Move": "Μετακίνηση",
@@ -242,6 +244,7 @@
"Private_Recipe_Help": "Η συνταγή είναι ορατή μόνο σε εσάς και στα άτομα με τα οποία την μοιράζεστε.",
"Profile": "",
"Properties": "Ιδιότητες",
"PropertiesFoodHelp": "",
"Property": "Ιδιότητα",
"Protected": "Προστατευμένο",
"Proteins": "Πρωτεΐνες",

View File

@@ -3,6 +3,7 @@
"Access_Token": "Access Token",
"Account": "Account",
"Add": "Add",
"AddAll": "Add all",
"AddFoodToShopping": "Add {food} to your shopping list",
"AddToShopping": "Add to shopping list",
"Add_Servings_to_Shopping": "Add {servings} Servings to Shopping",
@@ -199,6 +200,7 @@
"Merge": "Merge",
"Merge_Keyword": "Merge Keyword",
"Message": "Message",
"Miscellaneous": "Miscellaneous",
"Monday": "Monday",
"Month": "Month",
"Move": "Move",
@@ -270,6 +272,7 @@
"Private_Recipe_Help": "Recipe is only shown to you and people its shared with.",
"Profile": "Profile",
"Properties": "Properties",
"PropertiesFoodHelp": "Every food can have properties. Recipes calculate the properties automatically, based on the properties of their foods and the amount given in the ingredients.",
"Properties_Food_Amount": "Properties Food Amount",
"Properties_Food_Unit": "Properties Food Unit",
"Property": "Property",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Cuenta",
"Add": "Añadir",
"AddAll": "",
"AddFoodToShopping": "Añadir {food} a la lista de la compra",
"AddToShopping": "Añadir a la lista de la compra",
"Add_Servings_to_Shopping": "Añadir {servings} raciones a la compra",
@@ -198,6 +199,7 @@
"Merge": "Unificar",
"Merge_Keyword": "Fusionar palabra clave",
"Message": "Mensaje",
"Miscellaneous": "",
"Monday": "",
"Month": "Mes",
"Move": "Mover",
@@ -268,6 +270,7 @@
"Private_Recipe_Help": "La receta solo podrás verla tu y la gente con la que esta compartida.",
"Profile": "",
"Properties": "Propiedades",
"PropertiesFoodHelp": "",
"Property": "Propiedad",
"Property_Editor": "Editor de Propiedades",
"Protected": "Protegido",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "Lisää",
"AddAll": "",
"Add_Step": "Lisää Vaihe",
"Add_nutrition_recipe": "Lisää ravintoaine reseptiin",
"Add_to_Plan": "Lisää suunnitelmaan",
@@ -96,6 +97,7 @@
"Meal_Types": "Ateriatyypit",
"Merge": "Yhdistä",
"Merge_Keyword": "Yhdistä Avainsana",
"Miscellaneous": "",
"Monday": "",
"Month": "Kuukausi",
"Move": "Siirry",
@@ -135,6 +137,7 @@
"Previous_Period": "Edellinen Jakso",
"Print": "Tulosta",
"Profile": "",
"PropertiesFoodHelp": "",
"Proteins": "Proteiinit",
"Rating": "Luokitus",
"Recently_Viewed": "Äskettäin katsotut",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Compte",
"Add": "Ajouter",
"AddAll": "",
"AddFoodToShopping": "Ajouter laliment {food} à votre liste de courses",
"AddToShopping": "Ajouter à la liste de courses",
"Add_Servings_to_Shopping": "Ajouter {servings} portions aux courses",
@@ -197,6 +198,7 @@
"Merge": "Fusionner",
"Merge_Keyword": "Fusionner le mot-clé",
"Message": "Message",
"Miscellaneous": "",
"Monday": "",
"Month": "Mois",
"Move": "Déplacer",
@@ -267,6 +269,7 @@
"Private_Recipe_Help": "La recette est uniquement visible par vous et les gens avec qui elle est partagée.",
"Profile": "",
"Properties": "Propriétés",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "Propriété Quantité de nourriture",
"Properties_Food_Unit": "Propriété Unité de nourriture",
"Property": "Propriété",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "חשבון",
"Add": "הוספה",
"AddAll": "",
"AddFoodToShopping": "הוסף {מזון} לרשימת הקניות",
"AddToShopping": "הוסף לרשימת קניות",
"Add_Servings_to_Shopping": "הוסף{מנה}מנות לקנייה",
@@ -198,6 +199,7 @@
"Merge": "איחוד",
"Merge_Keyword": "איחוד מילת מפתח",
"Message": "הודעה",
"Miscellaneous": "",
"Monday": "",
"Month": "חודש",
"Move": "העברה",
@@ -268,6 +270,7 @@
"Private_Recipe_Help": "המתכון מוצג רק לך ולאנשים ששותפו.",
"Profile": "",
"Properties": "ערכים",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "הגדרות כמות אוכל",
"Properties_Food_Unit": "הגדרות יחידת אוכל",
"Property": "נכס",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Fiók",
"Add": "Hozzáadás",
"AddAll": "",
"AddFoodToShopping": "{food} hozzáadása bevásárlólistához",
"AddToShopping": "Hozzáadás a bevásárlólistához",
"Add_Servings_to_Shopping": "",
@@ -179,6 +180,7 @@
"Merge": "Összefűzés",
"Merge_Keyword": "Kulcsszó összevonása",
"Message": "Üzenet",
"Miscellaneous": "",
"Monday": "",
"Month": "Hónap",
"Move": "Mozgatás",
@@ -244,6 +246,7 @@
"Private_Recipe_Help": "A recept csak Önnek és azoknak az embereknek jelenik meg, akikkel megosztotta.",
"Profile": "",
"Properties": "Tulajdonságok",
"PropertiesFoodHelp": "",
"Property": "Tulajdonság",
"Protected": "Védett",
"Proteins": "Fehérjék",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "",
"AddAll": "",
"Add_nutrition_recipe": "Ավելացնել սննդայնություն բաղադրատոմսին",
"Add_to_Book": "",
"Add_to_Plan": "Ավելացնել պլանին",
@@ -61,6 +62,7 @@
"Meal_Plan": "Ճաշացուցակ",
"Merge": "Միացնել",
"Merge_Keyword": "Միացնել բանալի բառը",
"Miscellaneous": "",
"Monday": "",
"Move": "Տեղափոխել",
"Move_Food": "Տեղափոխել սննդամթերքը",
@@ -81,6 +83,7 @@
"Preparation": "",
"Print": "Տպել",
"Profile": "",
"PropertiesFoodHelp": "",
"Proteins": "",
"Rating": "",
"Recently_Viewed": "Վերջերս դիտած",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "",
"Add": "Tambahkan",
"AddAll": "",
"AddFoodToShopping": "",
"AddToShopping": "",
"Add_Servings_to_Shopping": "",
@@ -164,6 +165,7 @@
"Merge": "Menggabungkan",
"Merge_Keyword": "Gabungkan Kata Kunci",
"Message": "",
"Miscellaneous": "",
"Monday": "",
"Month": "",
"Move": "Bergerak",
@@ -221,6 +223,7 @@
"Private_Recipe": "Resep Pribadi",
"Private_Recipe_Help": "Resep hanya diperlihatkan kepada Anda dan orang-orang yang dibagikan resep tersebut.",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Terlindung",
"Proteins": "Protein",
"Quick actions": "",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "",
"Add": "",
"AddAll": "",
"AddFoodToShopping": "",
"AddToShopping": "",
"Add_Servings_to_Shopping": "",
@@ -197,6 +198,7 @@
"Merge": "",
"Merge_Keyword": "",
"Message": "",
"Miscellaneous": "",
"Monday": "",
"Month": "",
"Move": "",
@@ -267,6 +269,7 @@
"Private_Recipe_Help": "",
"Profile": "",
"Properties": "",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "",
"Properties_Food_Unit": "",
"Property": "",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Account",
"Add": "Aggiungi",
"AddAll": "",
"AddFoodToShopping": "Aggiungi {food} alla tua lista della spesa",
"AddToShopping": "Aggiungi a lista della spesa",
"Add_Servings_to_Shopping": "Aggiungi {servings} porzioni alla spesa",
@@ -169,6 +170,7 @@
"Merge": "Unisci",
"Merge_Keyword": "Unisci parola chiave",
"Message": "Messaggio",
"Miscellaneous": "",
"Monday": "",
"Month": "Mese",
"Move": "Sposta",
@@ -229,6 +231,7 @@
"Private_Recipe": "Ricetta privata",
"Private_Recipe_Help": "La ricetta viene mostrata solo a te e a chi l'hai condivisa.",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Protetto",
"Proteins": "Proteine",
"Quick actions": "Azioni rapide",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "",
"Add": "",
"AddAll": "",
"AddFoodToShopping": "",
"AddToShopping": "",
"Add_Servings_to_Shopping": "",
@@ -181,6 +182,7 @@
"Merge": "",
"Merge_Keyword": "Sujungti raktažodį",
"Message": "",
"Miscellaneous": "",
"Monday": "",
"Month": "",
"Move": "",
@@ -248,6 +250,7 @@
"Private_Recipe_Help": "",
"Profile": "",
"Properties": "",
"PropertiesFoodHelp": "",
"Property": "",
"Protected": "",
"Proteins": "",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "",
"Add": "Legg til",
"AddAll": "",
"AddFoodToShopping": "Legg til {food] i handlelisten din",
"AddToShopping": "Legg til i handleliste",
"Add_Servings_to_Shopping": "Legg til {servings} serveringer i handlelisten",
@@ -176,6 +177,7 @@
"Merge": "Slå sammen",
"Merge_Keyword": "Slå sammen nøkkelord",
"Message": "Melding",
"Miscellaneous": "",
"Monday": "",
"Month": "Måned",
"Move": "Flytt",
@@ -240,6 +242,7 @@
"Private_Recipe_Help": "Oppskriften er bare vist til deg og dem du har delt den med.",
"Profile": "",
"Properties": "Egenskaper",
"PropertiesFoodHelp": "",
"Property": "Egenskap",
"Protected": "Beskyttet",
"Proteins": "Protein",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Account",
"Add": "Voeg toe",
"AddAll": "",
"AddFoodToShopping": "Voeg {food} toe aan je boodschappenlijst",
"AddToShopping": "Voeg toe aan boodschappenlijst",
"Add_Servings_to_Shopping": "Voeg {servings} porties toe aan Winkelen",
@@ -180,6 +181,7 @@
"Merge": "Samenvoegen",
"Merge_Keyword": "Voeg Etiket samen",
"Message": "Bericht",
"Miscellaneous": "",
"Monday": "",
"Month": "Maand",
"Move": "Verplaats",
@@ -244,6 +246,7 @@
"Private_Recipe_Help": "Recept is alleen zichtbaar voor jou en de mensen waar je het mee gedeeld hebt.",
"Profile": "",
"Properties": "Eigenschappen",
"PropertiesFoodHelp": "",
"Property": "Eigenschap",
"Protected": "Beschermd",
"Proteins": "Eiwitten",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Konto",
"Add": "Dodaj",
"AddAll": "",
"AddFoodToShopping": "Dodaj {food} do swojej listy zakupów",
"AddToShopping": "Dodaj do listy zakupów",
"Add_Servings_to_Shopping": "Dodaj {servings} porcje do zakupów",
@@ -199,6 +200,7 @@
"Merge": "Scal",
"Merge_Keyword": "Scal słowa kluczowe",
"Message": "Wiadomość",
"Miscellaneous": "",
"Monday": "",
"Month": "Miesiąc",
"Move": "Przenieś",
@@ -269,6 +271,7 @@
"Private_Recipe_Help": "Przepis jest widoczny tylko dla Ciebie i dla osób, którym jest udostępniany.",
"Profile": "",
"Properties": "Właściwości",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "Właściwości ilości żywności",
"Properties_Food_Unit": "Właściwości jednostek żywności",
"Property": "Właściwość",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "Adicionar",
"AddAll": "",
"AddFoodToShopping": "Adicionar {food} à sua lista de compras",
"AddToShopping": "Adicionar á lista de compras",
"Add_Servings_to_Shopping": "Adicionar {servings} doses ás compras",
@@ -138,6 +139,7 @@
"Meal_Types": "Tipos de refeições",
"Merge": "Juntar",
"Merge_Keyword": "Unir palavra-chave",
"Miscellaneous": "",
"Monday": "",
"Month": "Mês",
"Move": "Mover",
@@ -191,6 +193,7 @@
"Private_Recipe": "Receita Privada",
"Private_Recipe_Help": "A receita só é mostrada ás pessoas com que foi partilhada.",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Protegido",
"Proteins": "Proteínas",
"Quick actions": "Acções Rápidas",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Conta",
"Add": "Adicionar",
"AddAll": "",
"AddFoodToShopping": "Incluir {food} na sua lista de compras",
"AddToShopping": "Incluir na Lista de Compras",
"Add_Servings_to_Shopping": "Adicionar {servings} porções às compras",
@@ -191,6 +192,7 @@
"Merge": "Mesclar",
"Merge_Keyword": "Mesclar palavra-chave",
"Message": "Mensagem",
"Miscellaneous": "",
"Monday": "",
"Month": "Mês",
"Move": "Mover",
@@ -256,6 +258,7 @@
"Private_Recipe_Help": "Receita é visível somente para você e para pessoas compartilhadas.",
"Profile": "",
"Properties": "Propriedades",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "Quantidade de Alimento das Propriedades",
"Properties_Food_Unit": "Unidade de Alimento das Propriedades",
"Property": "Propriedade",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Cont",
"Add": "Adaugă",
"AddAll": "",
"AddFoodToShopping": "Adăugă {food} în lista de cumpărături",
"AddToShopping": "Adaugă la lista de cumpărături",
"Add_Servings_to_Shopping": "Adăugă {servings} porții la cumpărături",
@@ -173,6 +174,7 @@
"Merge": "Unire",
"Merge_Keyword": "Unește cuvânt cheie",
"Message": "Mesaj",
"Miscellaneous": "",
"Monday": "",
"Month": "Lună",
"Move": "Mută",
@@ -233,6 +235,7 @@
"Private_Recipe": "Rețetă privată",
"Private_Recipe_Help": "Rețeta este arătată doar ție și oamenilor cu care este împărtășită.",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Protejat",
"Proteins": "Proteine",
"Quick actions": "Acțiuni rapide",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "Добавить",
"AddAll": "",
"AddFoodToShopping": "Добавить {food} в ваш список покупок",
"AddToShopping": "Добавить в лист покупок",
"Add_Servings_to_Shopping": "Добавить {servings} порции в список покупок",
@@ -127,6 +128,7 @@
"Meal_Types": "Типы питания",
"Merge": "Объединить",
"Merge_Keyword": "Объеденить ключевые слова",
"Miscellaneous": "",
"Monday": "",
"Month": "Месяц",
"Move": "Переместить",
@@ -177,6 +179,7 @@
"Previous_Period": "Предыдущий период",
"Print": "Распечатать",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Защищено",
"Proteins": "Белки",
"Quick actions": "Быстрые действия",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "Dodaj",
"AddAll": "",
"AddFoodToShopping": "Dodaj {food} v nakupovalni listek",
"AddToShopping": "Dodaj nakupovlanemu listku",
"Add_Step": "Dodaj korak",
@@ -123,6 +124,7 @@
"Meal_Types": "Tipi obroka",
"Merge": "Združi",
"Merge_Keyword": "Združi ključno besedo",
"Miscellaneous": "",
"Monday": "",
"Month": "Mesec",
"Move": "Premakni",
@@ -172,6 +174,7 @@
"Private_Recipe": "Zasebni Recept",
"Private_Recipe_Help": "Recept je prikazan samo vam in osebam, s katerimi ga delite.",
"Profile": "",
"PropertiesFoodHelp": "",
"Proteins": "Beljakovine",
"QuickEntry": "Hitri vnos",
"Rating": "Ocena",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Konto",
"Add": "Lägg till",
"AddAll": "",
"AddFoodToShopping": "Lägg till {food} på din inköpslista",
"AddToShopping": "Lägg till i inköpslista",
"Add_Servings_to_Shopping": "Lägg till {servings} portioner till inköp",
@@ -199,6 +200,7 @@
"Merge": "Slå samman",
"Merge_Keyword": "Slå samman nyckelord",
"Message": "Meddelande",
"Miscellaneous": "",
"Monday": "",
"Month": "Månad",
"Move": "Flytta",
@@ -269,6 +271,7 @@
"Private_Recipe_Help": "Receptet visas bara för dig och personer som det delas med.",
"Profile": "",
"Properties": "Egenskaper",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "Egenskaper Livsmedel Mängd",
"Properties_Food_Unit": "Egenskaper Livsmedel Enhet",
"Property": "Egendom",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "Hesap",
"Add": "Ekle",
"AddAll": "",
"AddFoodToShopping": "{food}'ı alışveriş listenize ekleyin",
"AddToShopping": "Alışveriş listesine ekle",
"Add_Servings_to_Shopping": "Alışverişe {servings} Porsiyon Ekle",
@@ -198,6 +199,7 @@
"Merge": "Birleştir",
"Merge_Keyword": "Anahtar Kelimeyi Birleştir",
"Message": "Mesaj",
"Miscellaneous": "",
"Monday": "",
"Month": "Ay",
"Move": "Taşı",
@@ -268,6 +270,7 @@
"Private_Recipe_Help": "Tarif yalnızca size ve paylaştığınız kişilere gösterilir.",
"Profile": "",
"Properties": "Özellikler",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "Özellikler Yiyecek Miktar",
"Properties_Food_Unit": "Özellikler Yiyecek Birim",
"Property": "Özellik",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "Додати",
"AddAll": "",
"AddFoodToShopping": "Додати {food} до вашого списку покупок",
"AddToShopping": "Додати до списку покупок",
"Add_Servings_to_Shopping": "Додати {servings} Порції до Покупок",
@@ -152,6 +153,7 @@
"Meal_Types": "Типи страви",
"Merge": "Об'єднати",
"Merge_Keyword": "Об'єднати Ключове слово",
"Miscellaneous": "",
"Monday": "",
"Month": "Місяць",
"Move": "Перемістити",
@@ -209,6 +211,7 @@
"Private_Recipe": "Приватний Рецепт",
"Private_Recipe_Help": "Рецепт показаний тільки Вам і тими з ким ви поділилися їм.",
"Profile": "",
"PropertiesFoodHelp": "",
"Protected": "Захищено",
"Proteins": "Білки",
"Quick actions": "",

View File

@@ -3,6 +3,7 @@
"Access_Token": "",
"Account": "账户",
"Add": "添加",
"AddAll": "",
"AddFoodToShopping": "添加 {food} 到购物清单",
"AddToShopping": "添加到购物清单",
"Add_Servings_to_Shopping": "添加 {servings} 份到购物",
@@ -194,6 +195,7 @@
"Merge": "合并",
"Merge_Keyword": "合并关键词",
"Message": "信息",
"Miscellaneous": "",
"Monday": "",
"Month": "月份",
"Move": "移动",
@@ -263,6 +265,7 @@
"Private_Recipe_Help": "食谱只有你和共享的人会显示。",
"Profile": "",
"Properties": "属性",
"PropertiesFoodHelp": "",
"Properties_Food_Amount": "食物数量属性",
"Properties_Food_Unit": "食品单位属性",
"Property": "属性",

View File

@@ -1,6 +1,7 @@
{
"Access_Token": "",
"Add": "",
"AddAll": "",
"Add_nutrition_recipe": "為食譜添加營養資訊",
"Add_to_Plan": "加入計劃",
"Add_to_Shopping": "加入購物清單",
@@ -44,6 +45,7 @@
"ManageSubscription": "",
"Manage_Books": "管理書籍",
"Meal_Plan": "膳食計劃",
"Miscellaneous": "",
"Monday": "",
"New": "",
"New_Recipe": "",
@@ -56,6 +58,7 @@
"Preparation": "",
"Print": "",
"Profile": "",
"PropertiesFoodHelp": "",
"Proteins": "",
"Rating": "",
"Recently_Viewed": "",

View File

@@ -8,6 +8,8 @@ import {
MealType as IMealType,
User as IUser,
FoodInheritField as IFoodInheritField,
SupermarketCategory as ISupermarketCategory,
PropertyType as IPropertyType,
} from "@/openapi";
export function getModelFromStr(model_name: String) {
@@ -33,6 +35,12 @@ export function getModelFromStr(model_name: String) {
case 'foodinheritfield': {
return new FoodInheritField
}
case 'supermarketcategory': {
return new SupermarketCategory
}
case 'propertytype': {
return new PropertyType
}
default: {
throw Error(`Invalid Model ${model_name}, did you forget to register it in Models.ts?`)
}
@@ -152,7 +160,7 @@ export class MealType extends GenericModel<IMealType> {
create(name: string) {
const api = new ApiApi()
return api.apiMealTypeCreate({mealType: {name: name} as IMealType}).then(r => {
return r as unknown as IRecipeOverview
return r as unknown as IMealType
})
}
@@ -202,4 +210,46 @@ export class FoodInheritField extends GenericModel<IFoodInheritField> {
}
})
}
}
export class SupermarketCategory extends GenericModel<ISupermarketCategory> {
create(name: string) {
const api = new ApiApi()
return api.apiSupermarketCategoryCreate({supermarketCategory: {name: name} as ISupermarketCategory}).then(r => {
return r as unknown as ISupermarketCategory
})
}
list(query: string) {
const api = new ApiApi()
return api.apiSupermarketCategoryList({query: query}).then(r => {
if (r.results) {
return r.results
} else {
return []
}
})
}
}
export class PropertyType extends GenericModel<IPropertyType> {
create(name: string) {
const api = new ApiApi()
return api.apiPropertyTypeCreate({propertyType: {name: name} as IPropertyType}).then(r => {
return r as unknown as IPropertyType
})
}
list(query: string) {
const api = new ApiApi()
return api.apiPropertyTypeList({query: query}).then(r => {
if (r.results) {
return r.results
} else {
return []
}
})
}
}

View File

@@ -64,6 +64,7 @@ export default createVuetify({
search: 'fa-solid fa-magnifying-glass',
copy: 'fa-solid fa-copy',
close: 'fa-solid fa-xmark',
help: 'fa-solid fa-info',
settings: 'fa-solid fa-sliders',
spaces: 'fa-solid fa-database',
shopping: 'fa-solid fa-cart-shopping',

View File

@@ -1,5 +1,5 @@
{
"extends": "@tsconfig/node18/tsconfig.json",
"extends": "@tsconfig/node20/tsconfig.json",
"include": [
"vite.config.*",
"vitest.config.*",

View File

@@ -189,90 +189,90 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
"@rollup/rollup-android-arm-eabi@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz#f0da481244b7d9ea15296b35f7fe39cd81157396"
integrity sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==
"@rollup/rollup-android-arm-eabi@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5"
integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==
"@rollup/rollup-android-arm64@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz#82ab3c575f4235fb647abea5e08eec6cf325964e"
integrity sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==
"@rollup/rollup-android-arm64@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb"
integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==
"@rollup/rollup-darwin-arm64@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz#6a530452e68a9152809ce58de1f89597632a085b"
integrity sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==
"@rollup/rollup-darwin-arm64@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b"
integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==
"@rollup/rollup-darwin-x64@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz#47727479f5ca292cf434d7e75af2725b724ecbc7"
integrity sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==
"@rollup/rollup-darwin-x64@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791"
integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==
"@rollup/rollup-linux-arm-gnueabihf@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz#46193c498aa7902a8db89ac00128060320e84fef"
integrity sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==
"@rollup/rollup-linux-arm-gnueabihf@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232"
integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==
"@rollup/rollup-linux-arm-musleabihf@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz#22d831fe239643c1d05c98906420325cee439d85"
integrity sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==
"@rollup/rollup-linux-arm-musleabihf@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa"
integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==
"@rollup/rollup-linux-arm64-gnu@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz#19abd33695ec9d588b4a858d122631433084e4a3"
integrity sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==
"@rollup/rollup-linux-arm64-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15"
integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==
"@rollup/rollup-linux-arm64-musl@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz#d60af8c0b9be424424ff96a0ba19fce65d26f6ab"
integrity sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==
"@rollup/rollup-linux-arm64-musl@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820"
integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==
"@rollup/rollup-linux-powerpc64le-gnu@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz#b1194e5ed6d138fdde0842d126fccde74a90f457"
integrity sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==
"@rollup/rollup-linux-powerpc64le-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e"
integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==
"@rollup/rollup-linux-riscv64-gnu@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz#f5a635c017b9bff8b856b0221fbd5c0e3373b7ec"
integrity sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==
"@rollup/rollup-linux-riscv64-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128"
integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==
"@rollup/rollup-linux-s390x-gnu@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz#f1043d9f4026bf6995863cb3f8dd4732606e4baa"
integrity sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==
"@rollup/rollup-linux-s390x-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc"
integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==
"@rollup/rollup-linux-x64-gnu@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz#1e781730be445119f06c9df5f185e193bc82c610"
integrity sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==
"@rollup/rollup-linux-x64-gnu@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0"
integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==
"@rollup/rollup-linux-x64-musl@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz#08f12e1965d6f27d6898ff932592121cca6abc4b"
integrity sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==
"@rollup/rollup-linux-x64-musl@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f"
integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==
"@rollup/rollup-win32-arm64-msvc@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz#4a5dcbbe7af7d41cac92b09798e7c1831da1f599"
integrity sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==
"@rollup/rollup-win32-arm64-msvc@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0"
integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==
"@rollup/rollup-win32-ia32-msvc@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz#075b0713de627843a73b4cf0e087c56b53e9d780"
integrity sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==
"@rollup/rollup-win32-ia32-msvc@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422"
integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==
"@rollup/rollup-win32-x64-msvc@4.18.1":
version "4.18.1"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz#0cb240c147c0dfd0e3eaff4cc060a772d39e155c"
integrity sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==
"@rollup/rollup-win32-x64-msvc@4.22.4":
version "4.22.4"
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202"
integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==
"@tsconfig/node18@^18.2.4":
version "18.2.4"
resolved "https://registry.yarnpkg.com/@tsconfig/node18/-/node18-18.2.4.tgz#094efbdd70f697d37c09f34067bf41bc4a828ae3"
integrity sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ==
"@tsconfig/node20@^20.1.4":
version "20.1.4"
resolved "https://registry.yarnpkg.com/@tsconfig/node20/-/node20-20.1.4.tgz#3457d42eddf12d3bde3976186ab0cd22b85df928"
integrity sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==
"@types/estree@1.0.5":
version "1.0.5"
@@ -300,12 +300,12 @@
dependencies:
undici-types "~5.26.4"
"@types/node@^18.17.5":
version "18.19.17"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.17.tgz#a581a9fb4b2cfdbc61f008804f4436b2d5c40354"
integrity sha512-SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng==
"@types/node@^20.16.5":
version "20.16.5"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.5.tgz#d43c7f973b32ffdf9aa7bd4f80e1072310fd7a53"
integrity sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==
dependencies:
undici-types "~5.26.4"
undici-types "~6.19.2"
"@types/tough-cookie@*":
version "4.0.5"
@@ -317,10 +317,10 @@
resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597"
integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==
"@vitejs/plugin-vue@^5.0.5":
version "5.0.5"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa"
integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==
"@vitejs/plugin-vue@^5.1.4":
version "5.1.4"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4"
integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==
"@volar/language-core@2.4.0-alpha.15", "@volar/language-core@~2.4.0-alpha.15":
version "2.4.0-alpha.15"
@@ -893,11 +893,6 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
picocolors@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
picocolors@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
@@ -920,16 +915,7 @@ postcss@^8.4.33:
picocolors "^1.0.0"
source-map-js "^1.0.2"
postcss@^8.4.39:
version "8.4.39"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3"
integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==
dependencies:
nanoid "^3.3.7"
picocolors "^1.0.1"
source-map-js "^1.2.0"
postcss@^8.4.47:
postcss@^8.4.43, postcss@^8.4.47:
version "8.4.47"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365"
integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==
@@ -958,29 +944,29 @@ requires-port@^1.0.0:
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
rollup@^4.13.0:
version "4.18.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.1.tgz#18a606df5e76ca53b8a69f2d8eab256d69dda851"
integrity sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==
rollup@^4.20.0:
version "4.22.4"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f"
integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.18.1"
"@rollup/rollup-android-arm64" "4.18.1"
"@rollup/rollup-darwin-arm64" "4.18.1"
"@rollup/rollup-darwin-x64" "4.18.1"
"@rollup/rollup-linux-arm-gnueabihf" "4.18.1"
"@rollup/rollup-linux-arm-musleabihf" "4.18.1"
"@rollup/rollup-linux-arm64-gnu" "4.18.1"
"@rollup/rollup-linux-arm64-musl" "4.18.1"
"@rollup/rollup-linux-powerpc64le-gnu" "4.18.1"
"@rollup/rollup-linux-riscv64-gnu" "4.18.1"
"@rollup/rollup-linux-s390x-gnu" "4.18.1"
"@rollup/rollup-linux-x64-gnu" "4.18.1"
"@rollup/rollup-linux-x64-musl" "4.18.1"
"@rollup/rollup-win32-arm64-msvc" "4.18.1"
"@rollup/rollup-win32-ia32-msvc" "4.18.1"
"@rollup/rollup-win32-x64-msvc" "4.18.1"
"@rollup/rollup-android-arm-eabi" "4.22.4"
"@rollup/rollup-android-arm64" "4.22.4"
"@rollup/rollup-darwin-arm64" "4.22.4"
"@rollup/rollup-darwin-x64" "4.22.4"
"@rollup/rollup-linux-arm-gnueabihf" "4.22.4"
"@rollup/rollup-linux-arm-musleabihf" "4.22.4"
"@rollup/rollup-linux-arm64-gnu" "4.22.4"
"@rollup/rollup-linux-arm64-musl" "4.22.4"
"@rollup/rollup-linux-powerpc64le-gnu" "4.22.4"
"@rollup/rollup-linux-riscv64-gnu" "4.22.4"
"@rollup/rollup-linux-s390x-gnu" "4.22.4"
"@rollup/rollup-linux-x64-gnu" "4.22.4"
"@rollup/rollup-linux-x64-musl" "4.22.4"
"@rollup/rollup-win32-arm64-msvc" "4.22.4"
"@rollup/rollup-win32-ia32-msvc" "4.22.4"
"@rollup/rollup-win32-x64-msvc" "4.22.4"
fsevents "~2.3.2"
rrweb-cssom@^0.6.0:
@@ -1059,16 +1045,21 @@ tr46@^5.0.0:
dependencies:
punycode "^2.3.1"
typescript@^5.5.3:
version "5.5.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.3.tgz#e1b0a3c394190838a0b168e771b0ad56a0af0faa"
integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==
typescript@^5.6.2:
version "5.6.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0"
integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==
undici-types@~5.26.4:
version "5.26.5"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
undici-types@~6.19.2:
version "6.19.8"
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
universalify@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
@@ -1087,23 +1078,23 @@ url-parse@^1.5.3:
querystringify "^2.1.1"
requires-port "^1.0.0"
vite-plugin-vuetify@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/vite-plugin-vuetify/-/vite-plugin-vuetify-2.0.3.tgz#b65ee4e05cfc6bf2b478a32b6d58b42398519f1e"
integrity sha512-HbYajgGgb/noaVKNRhnnXIiQZrNXfNIeanUGAwXgOxL6h/KULS40Uf51Kyz8hNmdegF+DwjgXXI/8J1PNS83xw==
vite-plugin-vuetify@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/vite-plugin-vuetify/-/vite-plugin-vuetify-2.0.4.tgz#9beb700ee50da58d83399721d6cf4b0af83202d5"
integrity sha512-A4cliYUoP/u4AWSRVRvAPKgpgR987Pss7LpFa7s1GvOe8WjgDq92Rt3eVXrvgxGCWvZsPKziVqfHHdCMqeDhfw==
dependencies:
"@vuetify/loader-shared" "^2.0.3"
debug "^4.3.3"
upath "^2.0.1"
vite@^5.3.3:
version "5.3.3"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.3.tgz#5265b1f0a825b3b6564c2d07524777c83e3c04c2"
integrity sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==
vite@^5.4.7:
version "5.4.7"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.7.tgz#d226f57c08b61379e955f3836253ed3efb2dcf00"
integrity sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.39"
rollup "^4.13.0"
postcss "^8.4.43"
rollup "^4.20.0"
optionalDependencies:
fsevents "~2.3.3"