import type { Meta, StoryObj } from '@storybook/vue3' import AmeliproTransmission from './AmeliproTransmission.vue' const meta = { argTypes: { 'actions': { description: 'Pour remplacer les boutons inclus par défaut dans le composant`' }, 'alternateButtonLabel': { description: 'Label du bouton alternatif' }, 'click:confirm': { description: 'Événement émis au clic sur le bouton confirmer', type: 'void' }, 'click:modify': { description: 'Événement émis au clic sur le bouton modifier', type: 'void' }, 'click:print': { description: 'Événement émis au clic sur le bouton imprimer', type: 'void' }, 'confirmButtonLabel': { description: 'Label du bouton de confirmation' }, 'confirmHref': { description: 'Url du bouton confirmer' }, 'confirmTo': { description: 'Route du bouton confirmer' }, 'default': { description: 'Slot par défaut qui permet de mettre du contenu dans le composant' }, 'modifyHref': { description: 'Url du bouton modifier' }, 'modifyTo': { description: 'Route du bouton modifier' }, 'printHref': { description: 'Url du bouton imprimer' }, 'printTo': { description: 'Route du bouton imprimer' }, 'transmissionActions': { description: 'Activation des boutons d’actions se désactive automatiquement si on rempli le slot actions' }, 'transmissionCardTitle': { description: 'Titre de la card' }, 'uniqueId': { description: 'Identifiant unique du composant' }, }, component: AmeliproTransmission, title: 'Composants/Amelipro/Cartes/AmeliproTransmission', } as Meta export default meta type Story = StoryObj export const Default: Story = { args: { transmissionCardTitle: 'Titre de la carte' }, parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Scripts', code: ``, }, ], }, render: args => ({ components: { AmeliproTransmission }, setup() { return { args } }, template: ` Contenu principal `, }), } // --- Carte avec actions personnalisées via le slot --- export const ActionsPersonnalisees: Story = { name: 'Actions personnalisées', args: { transmissionCardTitle: 'Carte avec actions personnalisées', uniqueId: 'transmission-actions-slot', }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, ], }, render: args => ({ components: { AmeliproTransmission }, setup() { return { args } }, template: `

Les actions sont personnalisées grâce au slot actions.

`, }), } // --- Carte avec navigation sur le bouton de confirmation --- export const BoutonConfirmerNavigation: Story = { name: 'Bouton confirmer avec navigation', args: { transmissionCardTitle: 'Carte avec navigation', confirmButtonLabel: 'Confirmer', confirmHref: 'https://espacepro.ameli.fr', uniqueId: 'transmission-confirm-href', }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, ], }, render: args => ({ components: { AmeliproTransmission }, setup() { return { args } }, template: `

Le bouton Confirmer redirige vers une URL grâce à la prop confirmHref.

Contenu principal `, }), } // --- Carte avec label personnalisé pour le bouton alternatif --- export const LabelBoutonAlternatif: Story = { name: 'Label bouton alternatif', args: { transmissionCardTitle: 'Carte avec bouton alternatif', alternateButtonLabel: 'Annuler', uniqueId: 'transmission-alternate-label', }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, ], }, render: args => ({ components: { AmeliproTransmission }, setup() { return { args } }, template: `

Le label du bouton alternatif est personnalisé grâce à la prop alternateButtonLabel.

Contenu principal `, }), } // --- Carte avec désactivation des actions automatiques --- export const SansActionsAutomatiques: Story = { name: 'Sans actions automatiques', args: { transmissionCardTitle: 'Carte sans actions automatiques', transmissionActions: false, uniqueId: 'transmission-no-actions', }, parameters: { sourceCode: [ { name: 'Template', code: ``, }, ], }, render: args => ({ components: { AmeliproTransmission }, setup() { return { args } }, template: `

Les boutons d’actions par défaut sont désactivés grâce à la prop transmissionActions à false.

Contenu principal `, }), }