import { OnDestroy } from '@angular/core'; import * as i0 from "@angular/core"; /** * Diretiva para corrigir a acessibilidade do painel do DatePicker PrimeNG. * * Resolve os seguintes problemas: * * 1. **Foco inicial ao abrir overlay**: move foco programaticamente para * a célula selecionada, hoje, ou primeira célula disponível — evitando * que NVDA leia toda estrutura do grid ao entrar no painel. * * 2. **Re-foco ao trocar view (mês/ano)**: ao navegar para views de mês ou * ano, o DOM é destruído e recriado. Sem intervenção, foco escapa para * `` e NVDA lê conteúdo fora do overlay. A diretiva re-foca o * primeiro elemento interativo da nova view. * * 3. **Focus-visible nos elementos internos**: injeta CSS global com * outline para todos elementos interativos do overlay, garantindo * feedback visual mesmo com `appendTo="body"`. * * 4. **aria-label enriquecido nos day cells**: PrimeNG seta apenas o * número do dia. A diretiva sobrescreve com data completa formatada * (ex: "3 de junho de 2026, Qua") — NVDA narra label sem precisar * contextualizar toda grid. * * 5. **View de meses/anos sem tabindex**: spans de mês/ano recebem * `tabindex="0"` e `role="option"` para navegação por teclado. * * Utiliza `MutationObserver` para detectar mudanças internas de view, * já que PrimeNG não emite eventos para essas transições. * * **CSS**: A diretiva injeta um `