/// import { onMounted, reactive, ref } from 'vue'; import { useTasksStore } from '@/stores/tasks'; const store = useTasksStore(); const showForm = ref(false); const form = reactive({ titre: '', priorite: 'normale', statut: 'a_faire', echeance: '' }); const groupes = [ ['a_faire', 'À faire'], ['en_cours', 'En cours'], ['fait', 'Terminé'], ]; const byStatut = (s) => store.tasks.filter(t => t.statut === s); onMounted(() => store.fetchAll()); async function submit() { await store.create({ ...form }); showForm.value = false; Object.assign(form, { titre: '', priorite: 'normale', statut: 'a_faire', echeance: '' }); } debugger; /* PartiallyEnd: #3632/scriptSetup.vue */ const __VLS_ctx = {}; let __VLS_components; let __VLS_directives; __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "p-4 max-w-2xl mx-auto" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "flex items-center justify-between mb-6" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.h1, __VLS_intrinsicElements.h1)({ ...{ class: "text-2xl font-bold text-green" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({ ...{ onClick: (...[$event]) => { __VLS_ctx.showForm = !__VLS_ctx.showForm; } }, ...{ class: "bg-green text-bg px-4 py-2 rounded-lg text-sm font-semibold hover:opacity-90" }, }); if (__VLS_ctx.showForm) { __VLS_asFunctionalElement(__VLS_intrinsicElements.form, __VLS_intrinsicElements.form)({ ...{ onSubmit: (__VLS_ctx.submit) }, ...{ class: "bg-bg-soft rounded-lg p-4 mb-6 border border-green/30" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "grid gap-3" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({}); __VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({ ...{ class: "text-text-muted text-xs block mb-1" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({ required: true, ...{ class: "w-full bg-bg border border-bg-hard rounded px-3 py-2 text-text text-sm focus:border-green outline-none" }, }); (__VLS_ctx.form.titre); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "grid grid-cols-2 gap-3" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({}); __VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({ ...{ class: "text-text-muted text-xs block mb-1" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.select, __VLS_intrinsicElements.select)({ value: (__VLS_ctx.form.priorite), ...{ class: "w-full bg-bg border border-bg-hard rounded px-3 py-2 text-text text-sm" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.option, __VLS_intrinsicElements.option)({ value: "basse", }); __VLS_asFunctionalElement(__VLS_intrinsicElements.option, __VLS_intrinsicElements.option)({ value: "normale", }); __VLS_asFunctionalElement(__VLS_intrinsicElements.option, __VLS_intrinsicElements.option)({ value: "haute", }); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({}); __VLS_asFunctionalElement(__VLS_intrinsicElements.label, __VLS_intrinsicElements.label)({ ...{ class: "text-text-muted text-xs block mb-1" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.input)({ type: "date", ...{ class: "w-full bg-bg border border-bg-hard rounded px-3 py-2 text-text text-sm focus:border-green outline-none" }, }); (__VLS_ctx.form.echeance); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "flex gap-2 mt-4" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({ type: "submit", ...{ class: "bg-green text-bg px-4 py-2 rounded text-sm font-semibold" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({ ...{ onClick: (...[$event]) => { if (!(__VLS_ctx.showForm)) return; __VLS_ctx.showForm = false; } }, type: "button", ...{ class: "text-text-muted text-sm px-4 py-2 hover:text-text" }, }); } for (const [[groupe, label]] of __VLS_getVForSourceType((__VLS_ctx.groupes))) { __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ key: (groupe), ...{ class: "mb-6" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.h2, __VLS_intrinsicElements.h2)({ ...{ class: "text-text-muted text-xs uppercase tracking-widest mb-2" }, }); (label); if (!__VLS_ctx.byStatut(groupe).length) { __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "text-text-muted text-xs pl-2 mb-2" }, }); } for (const [t] of __VLS_getVForSourceType((__VLS_ctx.byStatut(groupe)))) { __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ key: (t.id), ...{ class: "bg-bg-soft rounded-lg p-3 mb-2 flex items-center gap-3 border border-bg-hard" }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({ ...{ class: ({ 'text-red': t.priorite === 'haute', 'text-yellow': t.priorite === 'normale', 'text-text-muted': t.priorite === 'basse' }) }, }); __VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({ ...{ class: "text-text text-sm flex-1" }, }); (t.titre); __VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({ ...{ class: "flex gap-1 items-center" }, }); if (t.statut === 'a_faire') { __VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({ ...{ onClick: (...[$event]) => { if (!(t.statut === 'a_faire')) return; __VLS_ctx.store.updateStatut(t.id, 'en_cours'); } }, ...{ class: "text-xs text-blue hover:underline" }, }); } if (t.statut === 'en_cours') { __VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({ ...{ onClick: (...[$event]) => { if (!(t.statut === 'en_cours')) return; __VLS_ctx.store.updateStatut(t.id, 'fait'); } }, ...{ class: "text-xs text-green hover:underline" }, }); } __VLS_asFunctionalElement(__VLS_intrinsicElements.button, __VLS_intrinsicElements.button)({ ...{ onClick: (...[$event]) => { __VLS_ctx.store.remove(t.id); } }, ...{ class: "text-xs text-text-muted hover:text-red ml-2" }, }); } } /** @type {__VLS_StyleScopedClasses['p-4']} */ ; /** @type {__VLS_StyleScopedClasses['max-w-2xl']} */ ; /** @type {__VLS_StyleScopedClasses['mx-auto']} */ ; /** @type {__VLS_StyleScopedClasses['flex']} */ ; /** @type {__VLS_StyleScopedClasses['items-center']} */ ; /** @type {__VLS_StyleScopedClasses['justify-between']} */ ; /** @type {__VLS_StyleScopedClasses['mb-6']} */ ; /** @type {__VLS_StyleScopedClasses['text-2xl']} */ ; /** @type {__VLS_StyleScopedClasses['font-bold']} */ ; /** @type {__VLS_StyleScopedClasses['text-green']} */ ; /** @type {__VLS_StyleScopedClasses['bg-green']} */ ; /** @type {__VLS_StyleScopedClasses['text-bg']} */ ; /** @type {__VLS_StyleScopedClasses['px-4']} */ ; /** @type {__VLS_StyleScopedClasses['py-2']} */ ; /** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['font-semibold']} */ ; /** @type {__VLS_StyleScopedClasses['hover:opacity-90']} */ ; /** @type {__VLS_StyleScopedClasses['bg-bg-soft']} */ ; /** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ; /** @type {__VLS_StyleScopedClasses['p-4']} */ ; /** @type {__VLS_StyleScopedClasses['mb-6']} */ ; /** @type {__VLS_StyleScopedClasses['border']} */ ; /** @type {__VLS_StyleScopedClasses['border-green/30']} */ ; /** @type {__VLS_StyleScopedClasses['grid']} */ ; /** @type {__VLS_StyleScopedClasses['gap-3']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @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-hard']} */ ; /** @type {__VLS_StyleScopedClasses['rounded']} */ ; /** @type {__VLS_StyleScopedClasses['px-3']} */ ; /** @type {__VLS_StyleScopedClasses['py-2']} */ ; /** @type {__VLS_StyleScopedClasses['text-text']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['focus:border-green']} */ ; /** @type {__VLS_StyleScopedClasses['outline-none']} */ ; /** @type {__VLS_StyleScopedClasses['grid']} */ ; /** @type {__VLS_StyleScopedClasses['grid-cols-2']} */ ; /** @type {__VLS_StyleScopedClasses['gap-3']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @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-hard']} */ ; /** @type {__VLS_StyleScopedClasses['rounded']} */ ; /** @type {__VLS_StyleScopedClasses['px-3']} */ ; /** @type {__VLS_StyleScopedClasses['py-2']} */ ; /** @type {__VLS_StyleScopedClasses['text-text']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @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-hard']} */ ; /** @type {__VLS_StyleScopedClasses['rounded']} */ ; /** @type {__VLS_StyleScopedClasses['px-3']} */ ; /** @type {__VLS_StyleScopedClasses['py-2']} */ ; /** @type {__VLS_StyleScopedClasses['text-text']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['focus:border-green']} */ ; /** @type {__VLS_StyleScopedClasses['outline-none']} */ ; /** @type {__VLS_StyleScopedClasses['flex']} */ ; /** @type {__VLS_StyleScopedClasses['gap-2']} */ ; /** @type {__VLS_StyleScopedClasses['mt-4']} */ ; /** @type {__VLS_StyleScopedClasses['bg-green']} */ ; /** @type {__VLS_StyleScopedClasses['text-bg']} */ ; /** @type {__VLS_StyleScopedClasses['px-4']} */ ; /** @type {__VLS_StyleScopedClasses['py-2']} */ ; /** @type {__VLS_StyleScopedClasses['rounded']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['font-semibold']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['px-4']} */ ; /** @type {__VLS_StyleScopedClasses['py-2']} */ ; /** @type {__VLS_StyleScopedClasses['hover:text-text']} */ ; /** @type {__VLS_StyleScopedClasses['mb-6']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @type {__VLS_StyleScopedClasses['uppercase']} */ ; /** @type {__VLS_StyleScopedClasses['tracking-widest']} */ ; /** @type {__VLS_StyleScopedClasses['mb-2']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @type {__VLS_StyleScopedClasses['pl-2']} */ ; /** @type {__VLS_StyleScopedClasses['mb-2']} */ ; /** @type {__VLS_StyleScopedClasses['bg-bg-soft']} */ ; /** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ; /** @type {__VLS_StyleScopedClasses['p-3']} */ ; /** @type {__VLS_StyleScopedClasses['mb-2']} */ ; /** @type {__VLS_StyleScopedClasses['flex']} */ ; /** @type {__VLS_StyleScopedClasses['items-center']} */ ; /** @type {__VLS_StyleScopedClasses['gap-3']} */ ; /** @type {__VLS_StyleScopedClasses['border']} */ ; /** @type {__VLS_StyleScopedClasses['border-bg-hard']} */ ; /** @type {__VLS_StyleScopedClasses['text-text']} */ ; /** @type {__VLS_StyleScopedClasses['text-sm']} */ ; /** @type {__VLS_StyleScopedClasses['flex-1']} */ ; /** @type {__VLS_StyleScopedClasses['flex']} */ ; /** @type {__VLS_StyleScopedClasses['gap-1']} */ ; /** @type {__VLS_StyleScopedClasses['items-center']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @type {__VLS_StyleScopedClasses['text-blue']} */ ; /** @type {__VLS_StyleScopedClasses['hover:underline']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @type {__VLS_StyleScopedClasses['text-green']} */ ; /** @type {__VLS_StyleScopedClasses['hover:underline']} */ ; /** @type {__VLS_StyleScopedClasses['text-xs']} */ ; /** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ; /** @type {__VLS_StyleScopedClasses['hover:text-red']} */ ; /** @type {__VLS_StyleScopedClasses['ml-2']} */ ; var __VLS_dollars; const __VLS_self = (await import('vue')).defineComponent({ setup() { return { store: store, showForm: showForm, form: form, groupes: groupes, byStatut: byStatut, submit: submit, }; }, }); export default (await import('vue')).defineComponent({ setup() { return {}; }, }); ; /* PartiallyEnd: #4569/main.vue */