76 lines
2.1 KiB
Vue
76 lines
2.1 KiB
Vue
<template>
|
|
<Story title="Date/DateWeek">
|
|
<div class="grid grid-cols-1 items-start gap-6 md:grid-cols-2">
|
|
<div class="rounded-lg border p-4">
|
|
<h2 class="mb-4 text-xl font-bold">Simple</h2>
|
|
<MalioDateWeek
|
|
v-model="simpleValue"
|
|
label="Semaine"
|
|
/>
|
|
</div>
|
|
|
|
<div class="rounded-lg border p-4">
|
|
<h2 class="mb-4 text-xl font-bold">Valeur initiale</h2>
|
|
<MalioDateWeek
|
|
v-model="initialValue"
|
|
label="Semaine de livraison"
|
|
/>
|
|
</div>
|
|
|
|
<div class="rounded-lg border p-4">
|
|
<h2 class="mb-4 text-xl font-bold">Avec min/max</h2>
|
|
<MalioDateWeek
|
|
v-model="boundedValue"
|
|
label="Semaine bornée"
|
|
:min="todayIso"
|
|
:max="maxIso"
|
|
hint="Entre aujourd'hui et +60 jours"
|
|
/>
|
|
</div>
|
|
|
|
<div class="rounded-lg border p-4">
|
|
<h2 class="mb-4 text-xl font-bold">Non effaçable</h2>
|
|
<MalioDateWeek
|
|
v-model="initialValue"
|
|
label="Semaine verrouillée"
|
|
:clearable="false"
|
|
/>
|
|
</div>
|
|
|
|
<div class="rounded-lg border p-4">
|
|
<h2 class="mb-4 text-xl font-bold">Désactivé</h2>
|
|
<MalioDateWeek
|
|
v-model="initialValue"
|
|
label="Désactivé"
|
|
disabled
|
|
/>
|
|
</div>
|
|
|
|
<div class="rounded-lg border p-4">
|
|
<h2 class="mb-4 text-xl font-bold">Erreur</h2>
|
|
<MalioDateWeek
|
|
v-model="errorValue"
|
|
label="Semaine"
|
|
error="Semaine invalide"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</Story>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import {ref} from 'vue'
|
|
import MalioDateWeek from '../../components/malio/date/DateWeek.vue'
|
|
|
|
const simpleValue = ref<string | null>(null)
|
|
const initialValue = ref<string | null>('2026-W21')
|
|
const boundedValue = ref<string | null>(null)
|
|
const errorValue = ref<string | null>(null)
|
|
|
|
const pad = (n: number) => String(n).padStart(2, '0')
|
|
const toIso = (d: Date) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`
|
|
const now = new Date()
|
|
const todayIso = toIso(now)
|
|
const maxIso = toIso(new Date(now.getTime() + 60 * 86400000))
|
|
</script>
|