import type { Meta, StoryObj } from '@storybook/vue3' import HeaderBar from '../../HeaderBar.vue' import HeaderBurgerMenu from '../HeaderBurgerMenu.vue' import HeaderMenuItem from '../HeaderMenuItem/HeaderMenuItem.vue' import HeaderMenuSection from '../HeaderMenuSection/HeaderMenuSection.vue' import HeaderSubMenu from './HeaderSubMenu.vue' const meta = { title: 'Composants/Structure/HeaderBar/HeaderBurgerMenu/HeaderSubMenu', component: HeaderSubMenu, argTypes: { title: { control: { type: 'text' }, description: 'Titre du sous-menu', table: { type: { summary: '{}' }, }, }, default: { control: { type: 'text' }, description: 'Contenu du sous-menu, construit avec des composants `HeaderMenuSection`', table: { type: { summary: '{}' }, }, }, }, parameters: { layout: 'fullscreen', }, } satisfies Meta export default meta type Story = StoryObj export const Default: Story = { args: { title: 'Menu de premier niveau', }, render: (args) => { return { components: { HeaderMenuItem, HeaderBurgerMenu, HeaderBar, HeaderSubMenu, HeaderMenuSection }, setup() { return { args } }, template: ` `, } }, play: async ({ canvasElement }) => { const menuBtn = canvasElement.querySelector('button') setTimeout(() => { menuBtn!.click() }, 1000) }, parameters: { a11y: { disable: true, }, sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, } export const Deep: Story = { args: { title: 'Menu de deuxième niveau', }, render: (args) => { return { components: { HeaderMenuItem, HeaderBurgerMenu, HeaderBar, HeaderSubMenu, HeaderMenuSection }, setup() { return { args } }, template: ` `, } }, play: async ({ canvasElement }) => { const menuBtn = canvasElement.querySelector('button') await new Promise(resolve => setTimeout(resolve, 1000)) await menuBtn!.click() await new Promise(resolve => setTimeout(resolve, 500)) const subMenuBtn = document.querySelector('.sub-menu-btn') await subMenuBtn!.click() await new Promise(resolve => setTimeout(resolve, 500)) const subMenuBtn2 = document.querySelector('.sub-menu .sub-menu .sub-menu-btn') await subMenuBtn2!.click() }, parameters: { sourceCode: [ { name: 'Template', code: ` `, }, { name: 'Script', code: ` `, }, ], }, }