claude 5
This commit is contained in:
@@ -15,13 +15,29 @@ const loadingPhotos = ref(false);
|
||||
const lightbox = ref(null);
|
||||
const fileInput = ref(null);
|
||||
const uploadTarget = ref(null);
|
||||
// Navigation variétés
|
||||
const detailVarieties = ref([]);
|
||||
// Navigation variétés (groupe de Plant par nom_commun)
|
||||
const detailPlantGroup = ref([]);
|
||||
const detailVarietyIdx = ref(0);
|
||||
const detailPlant = computed(() => detailVarieties.value[detailVarietyIdx.value] ?? null);
|
||||
const detailPlant = computed(() => detailPlantGroup.value[detailVarietyIdx.value] ?? null);
|
||||
// detailPlantObj : ref sur la plante ouverte en détail (Plant complet)
|
||||
const detailPlantObj = ref(null);
|
||||
// detailVarieties : variétés (PlantVariety) de la plante affichée
|
||||
const detailVarieties = computed(() => {
|
||||
if (!detailPlantObj.value)
|
||||
return [];
|
||||
return detailPlantObj.value.varieties ?? [];
|
||||
});
|
||||
// Associations au niveau nom_commun (première variété ayant des données)
|
||||
const detailAssociations = computed(() => detailVarieties.value.find(v => v.associations_favorables?.length || v.associations_defavorables?.length)
|
||||
const detailAssociations = computed(() => detailPlantGroup.value.find(v => v.associations_favorables?.length || v.associations_defavorables?.length)
|
||||
?? detailPlant.value);
|
||||
// Refs pour le formulaire variété
|
||||
const showFormVariety = ref(false);
|
||||
const editVariety = ref(null);
|
||||
const formVariety = reactive({
|
||||
variete: '', tags: '', notes_variete: '',
|
||||
boutique_nom: '', boutique_url: '', prix_achat: undefined,
|
||||
date_achat: '', poids: '', dluo: '',
|
||||
});
|
||||
const categories = [
|
||||
{ val: '', label: 'TOUTES' },
|
||||
{ val: 'potager', label: '🥕 POTAGER' },
|
||||
@@ -84,7 +100,7 @@ const filteredPlants = computed(() => {
|
||||
const q = searchQuery.value.toLowerCase();
|
||||
result = result.filter(p => {
|
||||
const group = plantGroups.value.get((p.nom_commun || '').toLowerCase()) || [];
|
||||
return group.some(v => v.nom_commun?.toLowerCase().includes(q) || v.variete?.toLowerCase().includes(q));
|
||||
return group.some(v => v.nom_commun?.toLowerCase().includes(q) || v.varieties?.[0]?.variete?.toLowerCase().includes(q));
|
||||
});
|
||||
}
|
||||
return result.sort((a, b) => (a.nom_commun || '').localeCompare(b.nom_commun || '', 'fr'));
|
||||
@@ -144,26 +160,30 @@ function catTextClass(cat) {
|
||||
}[cat] || 'text-text-muted';
|
||||
}
|
||||
function closeDetail() {
|
||||
detailVarieties.value = [];
|
||||
detailPlantGroup.value = [];
|
||||
detailPlantObj.value = null;
|
||||
detailVarietyIdx.value = 0;
|
||||
plantPhotos.value = [];
|
||||
}
|
||||
async function openDetails(p) {
|
||||
const key = (p.nom_commun || '').toLowerCase();
|
||||
const group = plantGroups.value.get(key) || [p];
|
||||
detailVarieties.value = [...group].sort((a, b) => (a.id || 0) - (b.id || 0));
|
||||
detailPlantGroup.value = [...group].sort((a, b) => (a.id || 0) - (b.id || 0));
|
||||
detailVarietyIdx.value = 0;
|
||||
await fetchPhotos(detailVarieties.value[0].id);
|
||||
detailPlantObj.value = detailPlantGroup.value[0];
|
||||
await fetchPhotos(detailPlantGroup.value[0].id);
|
||||
}
|
||||
async function prevVariety() {
|
||||
if (detailVarietyIdx.value > 0) {
|
||||
detailVarietyIdx.value--;
|
||||
detailPlantObj.value = detailPlant.value;
|
||||
await fetchPhotos(detailPlant.value.id);
|
||||
}
|
||||
}
|
||||
async function nextVariety() {
|
||||
if (detailVarietyIdx.value < detailVarieties.value.length - 1) {
|
||||
if (detailVarietyIdx.value < detailPlantGroup.value.length - 1) {
|
||||
detailVarietyIdx.value++;
|
||||
detailPlantObj.value = detailPlant.value;
|
||||
await fetchPhotos(detailPlant.value.id);
|
||||
}
|
||||
}
|
||||
@@ -186,15 +206,16 @@ function startEdit(p) {
|
||||
const withAssoc = group.find(v => v.associations_favorables?.length || v.associations_defavorables?.length) ?? p;
|
||||
closeDetail();
|
||||
editPlant.value = p;
|
||||
const v0 = p.varieties?.[0];
|
||||
Object.assign(form, {
|
||||
nom_commun: p.nom_commun || '', variete: p.variete || '', famille: p.famille || '',
|
||||
nom_commun: p.nom_commun || '', variete: v0?.variete || '', famille: p.famille || '',
|
||||
categorie: p.categorie || 'potager', besoin_eau: p.besoin_eau || 'moyen', besoin_soleil: p.besoin_soleil || 'plein soleil',
|
||||
plantation_mois: p.plantation_mois || '', notes: p.notes || '',
|
||||
associations_favorables: [...(withAssoc.associations_favorables ?? [])],
|
||||
associations_defavorables: [...(withAssoc.associations_defavorables ?? [])],
|
||||
boutique_nom: p.boutique_nom || '', boutique_url: p.boutique_url || '',
|
||||
prix_achat: p.prix_achat ?? null, date_achat: p.date_achat || '',
|
||||
poids: p.poids || '', dluo: p.dluo || '',
|
||||
boutique_nom: v0?.boutique_nom || '', boutique_url: v0?.boutique_url || '',
|
||||
prix_achat: v0?.prix_achat ?? null, date_achat: v0?.date_achat || '',
|
||||
poids: v0?.poids || '', dluo: v0?.dluo || '',
|
||||
});
|
||||
assocFilter.value = '';
|
||||
showAssocModal.value = false;
|
||||
@@ -211,15 +232,87 @@ function closeForm() {
|
||||
date_achat: '', poids: '', dluo: '',
|
||||
});
|
||||
}
|
||||
function openAddVariety() {
|
||||
if (!detailPlantObj.value)
|
||||
return;
|
||||
editVariety.value = null;
|
||||
Object.assign(formVariety, {
|
||||
variete: '', tags: '', notes_variete: '',
|
||||
boutique_nom: '', boutique_url: '', prix_achat: undefined,
|
||||
date_achat: '', poids: '', dluo: '',
|
||||
});
|
||||
showFormVariety.value = true;
|
||||
}
|
||||
function openEditVariety(v) {
|
||||
editVariety.value = v;
|
||||
Object.assign(formVariety, { ...v });
|
||||
showFormVariety.value = true;
|
||||
}
|
||||
function closeFormVariety() {
|
||||
showFormVariety.value = false;
|
||||
editVariety.value = null;
|
||||
}
|
||||
async function submitVariety() {
|
||||
if (!detailPlantObj.value?.id)
|
||||
return;
|
||||
const payload = { ...formVariety, prix_achat: formVariety.prix_achat ?? undefined };
|
||||
try {
|
||||
if (editVariety.value?.id) {
|
||||
await plantsStore.updateVariety(detailPlantObj.value.id, editVariety.value.id, payload);
|
||||
toast.success('Variété modifiée');
|
||||
}
|
||||
else {
|
||||
await plantsStore.createVariety(detailPlantObj.value.id, payload);
|
||||
toast.success('Variété ajoutée');
|
||||
}
|
||||
// Refresh plant data so detailPlantObj reflects updated varieties
|
||||
await plantsStore.fetchAll();
|
||||
const updatedPlant = plantsStore.plants.find(p => p.id === detailPlantObj.value?.id);
|
||||
if (updatedPlant)
|
||||
detailPlantObj.value = updatedPlant;
|
||||
closeFormVariety();
|
||||
}
|
||||
catch {
|
||||
// L'intercepteur Axios affiche le message d'erreur
|
||||
}
|
||||
}
|
||||
async function deleteVariety(vid) {
|
||||
if (!detailPlantObj.value?.id)
|
||||
return;
|
||||
if (!confirm('Supprimer cette variété ?'))
|
||||
return;
|
||||
try {
|
||||
await plantsStore.removeVariety(detailPlantObj.value.id, vid);
|
||||
await plantsStore.fetchAll();
|
||||
const updatedPlant = plantsStore.plants.find(p => p.id === detailPlantObj.value?.id);
|
||||
if (updatedPlant)
|
||||
detailPlantObj.value = updatedPlant;
|
||||
toast.success('Variété supprimée');
|
||||
}
|
||||
catch {
|
||||
// L'intercepteur Axios affiche le message d'erreur
|
||||
}
|
||||
}
|
||||
async function submitPlant() {
|
||||
if (submitting.value)
|
||||
return;
|
||||
submitting.value = true;
|
||||
try {
|
||||
const payload = { ...form, prix_achat: form.prix_achat ?? undefined };
|
||||
// Extraire les champs variété du form (non envoyés dans Plant)
|
||||
const varietyPayload = {
|
||||
variete: form.variete || undefined,
|
||||
boutique_nom: form.boutique_nom || undefined,
|
||||
boutique_url: form.boutique_url || undefined,
|
||||
prix_achat: form.prix_achat ?? undefined,
|
||||
date_achat: form.date_achat || undefined,
|
||||
poids: form.poids || undefined,
|
||||
dluo: form.dluo || undefined,
|
||||
};
|
||||
// Payload Plant pur (sans champs variété)
|
||||
const { variete: _v, boutique_nom: _bn, boutique_url: _bu, prix_achat: _pa, date_achat: _da, poids: _po, dluo: _d, ...plantPayload } = { ...form };
|
||||
if (editPlant.value) {
|
||||
await axios.put(`/api/plants/${editPlant.value.id}`, payload);
|
||||
// Synchroniser les associations à toutes les variétés du même nom commun
|
||||
await axios.put(`/api/plants/${editPlant.value.id}`, plantPayload);
|
||||
// Synchroniser associations aux plantes du même nom commun
|
||||
const nomKey = form.nom_commun.toLowerCase();
|
||||
const siblings = plantsStore.plants.filter(p => p.id !== editPlant.value.id && (p.nom_commun || '').toLowerCase() === nomKey);
|
||||
for (const sibling of siblings) {
|
||||
@@ -228,11 +321,27 @@ async function submitPlant() {
|
||||
associations_defavorables: form.associations_defavorables,
|
||||
});
|
||||
}
|
||||
// Mettre à jour ou créer la variété
|
||||
const existingVariety = editPlant.value.varieties?.[0];
|
||||
const hasVarietyData = Object.values(varietyPayload).some(v => v !== undefined);
|
||||
const plantId = editPlant.value.id;
|
||||
if (existingVariety?.id) {
|
||||
await plantsStore.updateVariety(plantId, existingVariety.id, varietyPayload);
|
||||
}
|
||||
else if (hasVarietyData) {
|
||||
await plantsStore.createVariety(plantId, varietyPayload);
|
||||
}
|
||||
await plantsStore.fetchAll();
|
||||
toast.success('Plante modifiée');
|
||||
}
|
||||
else {
|
||||
await plantsStore.create(payload);
|
||||
const created = await plantsStore.create(plantPayload);
|
||||
// Créer la variété si des données variété sont présentes
|
||||
const hasVarietyData = Object.values(varietyPayload).some(v => v !== undefined);
|
||||
if (created.id && hasVarietyData) {
|
||||
await plantsStore.createVariety(created.id, varietyPayload);
|
||||
}
|
||||
await plantsStore.fetchAll();
|
||||
toast.success('Plante créée');
|
||||
}
|
||||
closeForm();
|
||||
@@ -470,7 +579,7 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-3 mt-3" },
|
||||
});
|
||||
if (__VLS_ctx.detailVarieties.length > 1) {
|
||||
if (__VLS_ctx.detailPlantGroup.length > 1) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center gap-2" },
|
||||
});
|
||||
@@ -484,19 +593,19 @@ if (__VLS_ctx.detailPlant) {
|
||||
...{ class: "text-text-muted text-xs font-bold" },
|
||||
});
|
||||
(__VLS_ctx.detailVarietyIdx + 1);
|
||||
(__VLS_ctx.detailVarieties.length);
|
||||
(__VLS_ctx.detailPlantGroup.length);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.nextVariety) },
|
||||
disabled: (__VLS_ctx.detailVarietyIdx === __VLS_ctx.detailVarieties.length - 1),
|
||||
disabled: (__VLS_ctx.detailVarietyIdx === __VLS_ctx.detailPlantGroup.length - 1),
|
||||
...{ class: (['w-7 h-7 rounded-full border flex items-center justify-center text-sm font-bold transition-all',
|
||||
__VLS_ctx.detailVarietyIdx === __VLS_ctx.detailVarieties.length - 1 ? 'border-bg-soft text-text-muted/30 cursor-not-allowed' : 'border-yellow/50 text-yellow hover:bg-yellow/10']) },
|
||||
__VLS_ctx.detailVarietyIdx === __VLS_ctx.detailPlantGroup.length - 1 ? 'border-bg-soft text-text-muted/30 cursor-not-allowed' : 'border-yellow/50 text-yellow hover:bg-yellow/10']) },
|
||||
});
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.variete) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.variete) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-yellow font-bold uppercase tracking-widest text-sm" },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.variete);
|
||||
(__VLS_ctx.detailPlant.varieties?.[0]?.variete);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.closeDetail) },
|
||||
@@ -550,7 +659,31 @@ if (__VLS_ctx.detailPlant) {
|
||||
...{ class: "font-bold" },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.plantation_mois);
|
||||
if (__VLS_ctx.detailPlant.boutique_nom || __VLS_ctx.detailPlant.prix_achat || __VLS_ctx.detailPlant.poids || __VLS_ctx.detailPlant.dluo) {
|
||||
if (__VLS_ctx.detailPlantObj?.temp_germination) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-[9px] font-black text-text-muted uppercase block mb-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text text-sm" },
|
||||
});
|
||||
(__VLS_ctx.detailPlantObj.temp_germination);
|
||||
}
|
||||
if (__VLS_ctx.detailPlantObj?.temps_levee_j) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-[9px] font-black text-text-muted uppercase block mb-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text text-sm" },
|
||||
});
|
||||
(__VLS_ctx.detailPlantObj.temps_levee_j);
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.boutique_nom || __VLS_ctx.detailPlant.varieties?.[0]?.prix_achat || __VLS_ctx.detailPlant.varieties?.[0]?.poids || __VLS_ctx.detailPlant.varieties?.[0]?.dluo) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-2" },
|
||||
});
|
||||
@@ -560,7 +693,7 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "grid grid-cols-2 sm:grid-cols-3 gap-3" },
|
||||
});
|
||||
if (__VLS_ctx.detailPlant.boutique_nom) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.boutique_nom) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
@@ -570,9 +703,9 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text text-sm font-bold" },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.boutique_nom);
|
||||
(__VLS_ctx.detailPlant.varieties?.[0]?.boutique_nom);
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.prix_achat) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.prix_achat) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
@@ -582,9 +715,9 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-yellow font-bold" },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.prix_achat.toFixed(2));
|
||||
(__VLS_ctx.detailPlant.varieties?.[0]?.prix_achat?.toFixed(2));
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.date_achat) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.date_achat) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
@@ -594,9 +727,9 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text text-sm" },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.date_achat);
|
||||
(__VLS_ctx.detailPlant.varieties?.[0]?.date_achat);
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.poids) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.poids) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
@@ -606,9 +739,9 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text text-sm font-bold" },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.poids);
|
||||
(__VLS_ctx.detailPlant.varieties?.[0]?.poids);
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.dluo) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.dluo) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
@@ -616,12 +749,12 @@ if (__VLS_ctx.detailPlant) {
|
||||
...{ class: "text-[9px] font-black text-text-muted uppercase block mb-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: (['text-sm font-bold', __VLS_ctx.isDluoExpired(__VLS_ctx.detailPlant.dluo) ? 'text-red' : 'text-green']) },
|
||||
...{ class: (['text-sm font-bold', __VLS_ctx.isDluoExpired(__VLS_ctx.detailPlant.varieties?.[0]?.dluo ?? '') ? 'text-red' : 'text-green']) },
|
||||
});
|
||||
(__VLS_ctx.detailPlant.dluo);
|
||||
(__VLS_ctx.isDluoExpired(__VLS_ctx.detailPlant.dluo) ? ' ⚠️' : '');
|
||||
(__VLS_ctx.detailPlant.varieties?.[0]?.dluo);
|
||||
(__VLS_ctx.isDluoExpired(__VLS_ctx.detailPlant.varieties?.[0]?.dluo ?? '') ? ' ⚠️' : '');
|
||||
}
|
||||
if (__VLS_ctx.detailPlant.boutique_url) {
|
||||
if (__VLS_ctx.detailPlant.varieties?.[0]?.boutique_url) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg/30 p-3 rounded-xl border border-bg-soft" },
|
||||
});
|
||||
@@ -629,7 +762,7 @@ if (__VLS_ctx.detailPlant) {
|
||||
...{ class: "text-[9px] font-black text-text-muted uppercase block mb-0.5" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.a, __VLS_intrinsicElements.a)({
|
||||
href: (__VLS_ctx.detailPlant.boutique_url),
|
||||
href: (__VLS_ctx.detailPlant.varieties?.[0]?.boutique_url),
|
||||
target: "_blank",
|
||||
rel: "noopener",
|
||||
...{ class: "text-blue text-xs hover:underline truncate block" },
|
||||
@@ -691,6 +824,69 @@ if (__VLS_ctx.detailPlant) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (__VLS_ctx.detailVarieties.length) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-2 mt-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h3, __VLS_intrinsicElements.h3)({
|
||||
...{ class: "text-[9px] font-black text-text-muted uppercase tracking-widest" },
|
||||
});
|
||||
(__VLS_ctx.detailVarieties.length);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-1" },
|
||||
});
|
||||
for (const [v] of __VLS_getVForSourceType((__VLS_ctx.detailVarieties))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
key: (v.id),
|
||||
...{ class: "flex items-center justify-between bg-bg/30 px-3 py-2 rounded-lg border border-bg-soft" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text text-sm font-bold" },
|
||||
});
|
||||
(v.variete || '(sans nom)');
|
||||
if (v.boutique_nom) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-text-muted text-xs ml-2" },
|
||||
});
|
||||
(v.boutique_nom);
|
||||
}
|
||||
if (v.prix_achat) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-yellow text-xs ml-2" },
|
||||
});
|
||||
(v.prix_achat.toFixed(2));
|
||||
}
|
||||
if (v.dluo && __VLS_ctx.isDluoExpired(v.dluo)) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-red text-xs ml-1" },
|
||||
});
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex gap-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.detailPlant))
|
||||
return;
|
||||
if (!(__VLS_ctx.detailVarieties.length))
|
||||
return;
|
||||
__VLS_ctx.openEditVariety(v);
|
||||
} },
|
||||
...{ class: "text-text-muted hover:text-yellow text-xs px-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.detailPlant))
|
||||
return;
|
||||
if (!(__VLS_ctx.detailVarieties.length))
|
||||
return;
|
||||
__VLS_ctx.deleteVariety(v.id);
|
||||
} },
|
||||
...{ class: "text-text-muted hover:text-red text-xs px-2" },
|
||||
});
|
||||
}
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "space-y-3" },
|
||||
});
|
||||
@@ -766,6 +962,10 @@ if (__VLS_ctx.detailPlant) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "p-4 bg-bg-hard border-t border-bg-soft flex gap-3" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.openAddVariety) },
|
||||
...{ class: "btn-primary !bg-green !text-bg py-2 px-4 font-black uppercase text-xs flex items-center gap-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.detailPlant))
|
||||
@@ -1249,6 +1449,152 @@ __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ class: "hidden" },
|
||||
});
|
||||
/** @type {typeof __VLS_ctx.fileInput} */ ;
|
||||
if (__VLS_ctx.showFormVariety) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: (__VLS_ctx.closeFormVariety) },
|
||||
...{ class: "fixed inset-0 bg-black/80 backdrop-blur-sm z-[70] flex items-center justify-center p-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "bg-bg-hard rounded-3xl p-6 w-full max-w-xl border border-bg-soft shadow-2xl max-h-[90vh] overflow-y-auto" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "flex items-center justify-between mb-5 border-b border-bg-soft pb-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({
|
||||
...{ class: "text-text font-black text-xl uppercase" },
|
||||
});
|
||||
(__VLS_ctx.editVariety ? 'Modifier la variété' : '➕ Nouvelle variété');
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.closeFormVariety) },
|
||||
...{ class: "text-text-muted hover:text-red text-2xl" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.p, __VLS_intrinsicElements.p)({
|
||||
...{ class: "text-text-muted text-xs mb-4 italic" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-yellow font-bold" },
|
||||
});
|
||||
(__VLS_ctx.detailPlantObj?.nom_commun);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.form, __VLS_intrinsicElements.form)({
|
||||
...{ onSubmit: (__VLS_ctx.submitVariety) },
|
||||
...{ class: "grid grid-cols-1 md:grid-cols-2 gap-4" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "md:col-span-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
required: true,
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
placeholder: "Ex: Nantaise, Cornue des Andes, Moneymaker…",
|
||||
});
|
||||
(__VLS_ctx.formVariety.variete);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "md:col-span-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
placeholder: "bio, f1, ancien, résistant…",
|
||||
});
|
||||
(__VLS_ctx.formVariety.tags);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.select, __VLS_intrinsicElements.select)({
|
||||
value: (__VLS_ctx.formVariety.boutique_nom),
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm outline-none focus:border-yellow appearance-none" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.option, __VLS_intrinsicElements.option)({
|
||||
value: "",
|
||||
});
|
||||
for (const [b] of __VLS_getVForSourceType((__VLS_ctx.BOUTIQUES))) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.option, __VLS_intrinsicElements.option)({
|
||||
key: (b),
|
||||
value: (b),
|
||||
});
|
||||
(b);
|
||||
}
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "number",
|
||||
step: "0.01",
|
||||
min: "0",
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
});
|
||||
(__VLS_ctx.formVariety.prix_achat);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
placeholder: "ex: 5g, 100 graines",
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
});
|
||||
(__VLS_ctx.formVariety.poids);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "date",
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
});
|
||||
(__VLS_ctx.formVariety.date_achat);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "date",
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
});
|
||||
(__VLS_ctx.formVariety.dluo);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "md:col-span-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
type: "url",
|
||||
placeholder: "https://…",
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none" },
|
||||
});
|
||||
(__VLS_ctx.formVariety.boutique_url);
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "md:col-span-2" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({
|
||||
...{ class: "text-text-muted text-[10px] font-black uppercase tracking-widest block mb-1" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.textarea)({
|
||||
value: (__VLS_ctx.formVariety.notes_variete),
|
||||
rows: "3",
|
||||
...{ class: "w-full bg-bg border border-bg-soft rounded-xl px-4 py-3 text-text text-sm focus:border-yellow outline-none resize-none" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ class: "md:col-span-2 flex justify-between pt-4 border-t border-bg-soft" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
...{ onClick: (__VLS_ctx.closeFormVariety) },
|
||||
type: "button",
|
||||
...{ class: "text-text-muted hover:text-red uppercase text-xs font-bold px-6" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({
|
||||
type: "submit",
|
||||
...{ class: "btn-primary px-8 py-3 !bg-green !text-bg font-black" },
|
||||
});
|
||||
(__VLS_ctx.editVariety ? 'Sauvegarder' : 'Ajouter');
|
||||
}
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-w-[1800px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mx-auto']} */ ;
|
||||
@@ -1503,6 +1849,32 @@ __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
/** @type {__VLS_StyleScopedClasses['gap-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg/30']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[9px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg/30']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[9px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
@@ -1653,6 +2025,45 @@ __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
/** @type {__VLS_StyleScopedClasses['py-0.5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['capitalize']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mt-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[9px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg/30']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ml-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ml-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-red']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['ml-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-red']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['space-y-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
@@ -1722,6 +2133,17 @@ __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['btn-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['!bg-green']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['!text-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['btn-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['!bg-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['!text-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-1']} */ ;
|
||||
@@ -2333,6 +2755,235 @@ __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({
|
||||
/** @type {__VLS_StyleScopedClasses['hover:opacity-90']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-opacity']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hidden']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['fixed']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inset-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-black/80']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['backdrop-blur-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-[70]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg-hard']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-3xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-w-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-2xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['max-h-[90vh]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['overflow-y-auto']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['items-center']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-5']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-b']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pb-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-red']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-2xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['italic']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['grid']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['grid-cols-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:grid-cols-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:col-span-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:col-span-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['appearance-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:col-span-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:col-span-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-[10px]']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['block']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['focus:border-yellow']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['outline-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['resize-none']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:col-span-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['justify-between']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['pt-4']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-t']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-red']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['uppercase']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xs']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['btn-primary']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-8']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['!bg-green']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['!text-bg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-black']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
@@ -2346,10 +2997,15 @@ const __VLS_self = (await import('vue')).defineComponent({
|
||||
loadingPhotos: loadingPhotos,
|
||||
lightbox: lightbox,
|
||||
fileInput: fileInput,
|
||||
detailVarieties: detailVarieties,
|
||||
detailPlantGroup: detailPlantGroup,
|
||||
detailVarietyIdx: detailVarietyIdx,
|
||||
detailPlant: detailPlant,
|
||||
detailPlantObj: detailPlantObj,
|
||||
detailVarieties: detailVarieties,
|
||||
detailAssociations: detailAssociations,
|
||||
showFormVariety: showFormVariety,
|
||||
editVariety: editVariety,
|
||||
formVariety: formVariety,
|
||||
categories: categories,
|
||||
BOUTIQUES: BOUTIQUES,
|
||||
form: form,
|
||||
@@ -2373,6 +3029,11 @@ const __VLS_self = (await import('vue')).defineComponent({
|
||||
nextVariety: nextVariety,
|
||||
startEdit: startEdit,
|
||||
closeForm: closeForm,
|
||||
openAddVariety: openAddVariety,
|
||||
openEditVariety: openEditVariety,
|
||||
closeFormVariety: closeFormVariety,
|
||||
submitVariety: submitVariety,
|
||||
deleteVariety: deleteVariety,
|
||||
submitPlant: submitPlant,
|
||||
removePlant: removePlant,
|
||||
openUpload: openUpload,
|
||||
|
||||
Reference in New Issue
Block a user