Navigation

TieredMenu

Menu a cascata multi-livello con submenu annidati. Supporta modalità statica e popup con posizionamento automatico, breakpoint responsive e chiusura con tasto Escape.

Import

import { TieredMenu } from '@pzeta/vue-components'
import type { MenuItem } from '@pzeta/vue-components'

Esempio Base

Props

PropTipoDefaultDescrizione
modelMenuItem[][]Array di elementi del menu
popupbooleanfalseModalità popup: il menu si apre tramite toggle() o show()
breakpointstring'960px'Breakpoint massimo per la modalità mobile
appendTo'body' | 'self' | string | HTMLElement'body'Elemento a cui appendere il popup
autoZIndexbooleantrueGestione automatica dello z-index
baseZIndexnumber0Valore base z-index
disabledbooleanfalseDisabilita il componente
tabindexnumber | string0Indice di tabulazione
ariaLabelstringundefinedLabel ARIA del menu
ariaLabelledbystringundefinedID dell'elemento che fornisce il label ARIA

Emits

EventoPayloadDescrizione
focusEventEmesso quando il menu riceve il focus
blurEventEmesso quando il menu perde il focus
beforeShowEmesso prima che il popup diventi visibile
beforeHideEmesso prima che il popup venga nascosto
showEmesso quando il popup è visibile
hideEmesso quando il popup è nascosto

Slot

SlotScopeDescrizione
startContenuto prima degli elementi del menu
endContenuto dopo gli elementi del menu
item{ item: MenuItem; label: string | undefined; props: TieredMenuRouterBindProps; hasSubmenu: boolean }Template personalizzato per ogni voce
itemicon{ item: MenuItem; class: string }Template personalizzato per l'icona della voce
submenuicon{ active: boolean }Template personalizzato per l'icona del submenu

Esempi

Modalità Popup

Template voce personalizzato

Con slot start/end

Metodi esposti (ref)

MetodoFirmaDescrizione
toggle(event: Event) => voidAlterna visibilità del popup
show(event?: Event) => voidMostra il popup ancorato all'elemento trigger
hide() => voidNasconde il popup

Comportamento

  • I submenu si aprono al passaggio del mouse (hover) sulle voci che hanno items.
  • In modalità popup, il menu si chiude al click fuori dall'area del menu o premendo Escape.
  • Il popup si chiude automaticamente al click su una voce senza submenu.
  • Il posizionamento è automatico con rilevamento dei bordi dello schermo.

Accessibilità

  • Usa role="menu" con aria-label configurabile.
  • La chiusura con Escape è supportata nativamente.

TypeScript

import type {
  TieredMenuProps,
  TieredMenuEmits,
  TieredMenuSlots,
  TieredMenuMethods,
  TieredMenuItemSlotScope,
} from '@pzeta/vue-components'