UNPKG

@edugouvfr/ngx-dsfr-ext

Version:

NgxDsfrExt est une extension au package @edugouvfr/ngx-dsfr (portage Angular des éléments DSFR)

73 lines (72 loc) 2.96 kB
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { DsfrNode } from './tree.model'; /** * Interface utilisée par TreeFocusManager */ export interface TreeFocusable { /** Retourne la structure arborescente du composant. */ get nodes(): DsfrNode[]; /** Ouvre tous les nœuds de l'arborescence. */ expandAll(): void; /** Ferme tous les nœuds de l'arborescence. */ collapseAll(): void; /** Effectue l'action par défaut (sélection / déselection) sur le nœud courant. */ doNodeDefaultAction(node: DsfrNode, event: Event): void; /** Recherche la liste des nœuds visibles, ce sont les éléments qui posséderont le tabindex */ findVisibleNodesElt(): HTMLElement[]; /** Retourne l'élément avec focus ou undefined. */ findFocusElement(): HTMLElement | undefined; } /** * TreeFocusManager a pour objectif de : * - Gérer le focus dans un arbre lié aux événements clavier de navigation, * - Gérer l'ouverture la fermeture des nœuds */ export declare class TreeFocusManager { currentElt: HTMLElement | undefined; /** Composant géré par le manager. */ private treeFocusable; private firstNodeElt; constructor(treeFocusable: TreeFocusable); /** * Initialise le tabindex du 1er élément sur lequel placer un focus */ initTabindex(): void; /** Ouvre tous les nœuds de l'arborescence. */ expandAll(nodes: DsfrNode[]): void; /** Ferme tous les nœuds de l'arborescence. */ collapseAll(nodes: DsfrNode[]): void; /** * Répond à un événement clavier. * @param currentNode nœud courant (qui possède le focus) * @event event événement clavier */ doKeyEvent(currentNode: DsfrNode, event: KeyboardEvent, isParentSelectable: boolean): void; /** Bascule l'état ouvert / fermé du nœud. */ doToggleExpand(node: DsfrNode): void; /** * Gestion du scroll dans la liste lors de la navigation clavier avec virtualScroll activé * @param viewport composant de virtualScroll CDK */ scrollForVirtualScroll(viewport: CdkVirtualScrollViewport): void; /** Place le focus sur le 1er élément visible. */ private doFocusFirst; /** Place le focus sur le dernier élément visible. */ private doFocusLast; /** Place le focus sur l'élément suivant l'élément courant. */ private doFocusNext; /** Place le focus sur l'élément précédant le nœud courant. */ private doFocusPrevious; /** Ferme le nœud. */ private doCollapseNode; /** Ouvre le nœud. */ private doExpandNode; /** * Ouvre / ferme récursivement tous les nœuds nodes et leurs descendants * @param nodes Liste de nœuds à ouvrir * @param expand true : ouverture des nœuds, false : fermeture */ private setNodesExpanded; /** Set focus on element and add aria-activedescendant attribute to parent */ private setAriaActiveDescendant; }