@edugouvfr/ngx-dsfr-ext
Version:
NgxDsfrExt est une extension au package @edugouvfr/ngx-dsfr (portage Angular des éléments DSFR)
572 lines (453 loc) • 37.3 kB
Markdown
# @edugouvfr/ngx-dsfr-ext - Changelog
## 1.8.2 (2026-06-19)
- fix(autocomplete): les tags/options sélectionnées sont collés si affichés sur plusieurs lignes
- fix(picklist) : les items respectant `compareWithFn` ne sont pas tous sélectionnés lors de la sélection utilisateur
- fix(treeselect): le label des options s'affichent en noir en mode dark
- fix(upload-dnd): l'alerte de nombre de fichiers maximum atteint ne s'affiche plus (régression 1.8.0)
- fix(upload-dnd): aucune valeur n'est émise en cas de suppression de fichier (régression 1.8.0)
## 1.8.1 (2026-06-11)
- fix(multiselect): léger décalage visuel entre le tag de synthèse et la liste de tags
- fix(treetable): problème de dépendance cyclique dans les tests au niveau du token de `treetable`
## 1.8.0 (2026-06-05)
- break(chore): version minimale requise angular 20 (>= 20.3)
- break(chore): version minimale requise `ngx-dsfr 1.19` (versions antérieures non compatibles avec la 1.19)
- feat(multiselect): possibilité de sélection d'un groupe
- feat(spinner): ajout de la propriété `spinnerSize`
- feat(timeline): ajout de `descriptionMarkup` permettant de placer les descriptions dans une `<div>`
- feat(treetable): possibilité de fixer les colonnes comme sur la `dsfr-table`
- feat(upload-dnd): ajout du slot `dsfrFileActions` et de la directive `dsfrFileDeleteButton`
- fix(picklist): la basculement d'un groupe d'une liste à l'autre ne déselectionne que le parent
- fix(treetable): impossible d'utiliser les directives de la `dsfr-table`
## 1.7.6 (2026-05-07)
- fix(autocomplete): réinitialisation à tort du champ avec `requireSelection` si `minLength > 1` (régression 1.7.0)
- fix(picklist): le message d'accessibilité en cas d'absence de résultat (`noResultsMessage`) n'est pas valorisé
- fix(picklist): lorsque la liste filtrée est vide des deux côtés, la hauteur du picklist se réduit au minimum
## 1.7.5 (2026-04-30)
- fix(autocomplete): ajout à tort d'un attribut `aria-activedescendant` sur le container
- fix(autocomplete): mauvaise suppression des options multiples en cas de présence de `selectedValueKey`
- fix(calendar): le `aria-labelledby` référençant le titre de la modale n'est pas généré
- fix(picklist): mauvaise synchronisation des valeurs sélectionnées lors de la déselection avec un filtre actif
- fix(picklist): doublons de valeurs dans l'évènement `selectionChange` après l'action "Tout sélectionner"
- fix(picklist): les nouvelles options n'apparaissent pas dans la liste cible en cas d'utilisation du filtre
- fix(picklist): le filtrage d'une liste se désactive sans prendre en compte l'ensemble des données
- fix(picklist): les boutons "Tout ajouter/supprimer" déplacent l'ensemble des options même en cas de filtrage
- fix(tree/treeselect): l'attribut `aria-posinset` est mal calculé
## 1.7.4 (2026-04-14)
- fix(datepicker): l'outline du composant ne suit pas les arrondis
- fix(multiselect/treeselect): `searchOnHide` ne restaure pas la liste des options après recherche (régression 1.7.3)
- fix(multiselect): désynchronisation entre le champ de recherche et la liste des options affichées (régression 1.7.3)
- fix(picklist): `showSelectAll` n'est pas exposé
- fix(picklist): l'icône du champ de recherche disparait en cas de `showClearSearch`
## 1.7.3 (2026-03-31)
- fix(grid): mauvais calcul de la hauteur des lignes en cas de `autoRowsHeight` et colonnes `pinned`
- fix(multiselect): déselection de la mauvaise option en cas de groupe et précédente sélection programmatique
- fix(multiselect/picklist): correctif accessibilité, label manquant pour la liste d'options
- fix(tree): un noeud ayant tous ses enfants désactivés est désormais également désactivé
- fix(tree): meilleure gestion de l'état de la case à cocher d'un noeud si il possède des enfants désactivés
- fix(tree/treeselect): revue de la gestion du focus et tabindex lors de la navigation dans l'arbre
- fix(treeselect): mauvais affichage visuel et absence de scroll sur la liste en mode `appendTo` (régression 1.7.0)
## 1.7.2 (2026-03-20)
- fix(autocomplete): correctif accessibilité l'attribut `aria-autocomplete` est manquant
- fix(autocomplete): le champ ne passe pas en `touched` après une mauvaise valeur saisie avec `requireSelection`
- fix(autocomplete): la liste d'options ne s'ouvre pas automatiquement si une valeur est déjà présente à la prise de focus
- fix(autocomplete): le spinner s'affiche au mauvais endroit en mode `combo`
- fix(datepicker/rangepicker): alignement visuel des différents mode du composant
- fix(dropdown-menu): les propriétés `aria-controls` et `aria-pressed` des boutons ne sont pas prises en compte
- fix(toast): correctif accessibilité, tabindex négatif manquant sur le bouton de fermeture du toast
## 1.7.1 (2026-03-06)
- fix(picklist): les titres des groupes sont sélectionnables lorsque `showGroupSelection` est à `false`
## 1.7.0 (2026-03-06)
- feat(autocomplete): l'input `selectedValueKey` permet de retourner une propriété au lieu de l’objet suggestion
- feat(autocomplete): revue du style du spinner de chargement
- feat(calendar): création du type `DsfrCalendarMode`
- feat(picklist): ajout du nouveau composant `Picklist`
- fix(autocomplete): les options ne se désactivent pas en mode multiple
- fix(autocomplete): mode reactiveform + multiple, pas de mise à jour si la valeur initiale n'est pas un tableau
- fix(autocomplete/multiselect/treeselect): suppression de l'outline à la navigation clavier sur la liste des options
- fix(autocomplete): le champ passe en état `touched` avant que la liste des options ne soit refermée
- fix(grid): les icones décrivant le sens du tri de colonne sont inversées
- fix(multiselect): le focus ne se fait pas sur la première option sélectionnée dans l'ordre d'apparition
- fix(multiselect): supprimer une option en mode multiple supprime aussi visuellement l'option suivante
- fix(multiselect/treeselect): alignement du comportement de l'outline au focus avec le select natif sous Chrome
- fix(treetable): améliorations accessibilité sur la navigation clavier des lignes dépliables
## 1.6.2 (2026-02-11)
- fix(autocomplete/multiselect/treeselect): la liste n'est pas réaffichée après réouverture en cas de `virtual scroll`
- fix(autocomplete) : déclenchement intempestif du scroll lors de la navigation à la souris dans les suggestions
- fix(autocomplete): `aria-activedescendant` n'est pas réinitialisé à la fermeture de la liste
- fix(treeselect): impossible de sélectionner les noeuds parents au clavier
## 1.6.1 (2026-01-21)
- fix(autocomplete): en `autoFilter` et `minLength=0`, la liste des suggestions n'est pas réinitialisée au reset
- fix(autocomplete): en `requireSelection` et `minLength > 1` impossible de saisir plusieurs caractères
- fix(autocomplete): la suppression des tags multiples ne s'effectue pas correctement (régression 1.6.0)
- fix(toast): restitution d'un bouton inatteignable en navigation clavier
- fix(toast): les items du toaster restent ouverts de façon incohérente (régression 1.6.0)
- fix(treetable): tri non fonctionnel en slots
## 1.6.0 (2026-01-14)
- break(chore): version minimale requise angular 19 (>= 19.2)
- break(chore): version minimale requise `ngx-dsfr` 1.17
- feat(calendar): ajout de la prévisualisation du range en cours de sélection
- feat(treetable): ajout du nouveau composant `Treetable`
- feat(spinner): ajout de la propriété `label` permettant d'ajouter un libellé au spinner graphique
- feat(spinner): la propriété `labelSrOnly` évolue en `boolean`, les types `string` et `undefined` sont dépréciés
## 1.5.1 (2026-01-07)
- fix(datepicker): pas d'événement `dateChange` lorsque l'utilisateur remet le champ à vide manuellement
- fix(datepicker): la première saisie d'un caractère non autorisé par le masque met à jour la valeur du FormControl
- fix(datepicker): impossible de supprimer la saisie en utilisant la touche `Backspace`
- fix(datepicker): le FormControl ne passe pas en état `touched` lorsqu'on quitte le champ
- fix(datepicker): le FormControl n'est pas invalidé lorsqu'on quitte le champ avec une saisie partielle ou erronée
- fix(datepicker): en mode range l'espace entre le label et le champ de saisie n'est pas conforme (trop grand)
- fix(datepicker): le rendu en mode disabled n'est pas conforme
- fix(multiselect/treeselect): correction des couleurs des labels
- chore: version de Node plus permissive (^20.19.0 || ^22.12.0)
- fix(chore): supprimer `role=status` si `aria-live` est présent (mauvaise restitution NVDA/Voice Over)
- fix(multiselect/treeselect): remplacer `aria-checked` par `aria-selected` en multi-sélection (mauvaise restitution Voice Over)
- fix(multiselect/treeselect): correction des couleurs des labels
- fix(multiselect/treeselect/upload-dnd): l'état `touched` n'est pas mis à jour après interaction
- fix(timeline): correction RGAA du markup HTML
## 1.5.0 (2025-12-03)
- break(grid): version minimale requise `ag-grid` 33, voir partie "Migration ag-grid 33" de la doc. de la grid
- chore(animation): décommission du package `@angular/animations` (`BrowserAnimationsModule` n'est plus nécessaire)
- feat(calendar/calendar-modal/datepicker): ajout du mode `range`
- feat(timeline): ajout de la version courante et de la gestion des variants des boutons
- feat(timeline): ajout de la propriété `layout`
- feat(timeline): ajout dans l'interface `DsfrTimelineEvent` de `detailBottom`
- feat(upload-dnd): ajout de la propriété `maxFiles`
- feat(upload-dnd): émission des évènements `selectionChange` et `fileRemove`à la suppression d'un ou plusieurs fichiers
- fix(datepicker): après la seconde ouverture du datepicker, le capture du focus n'est plus effective
- fix(datepicker): correctifs d'accessibilité (rendu de labels en mode css désactivé, rendu audio des mois)
- fix(datepicker): mauvais positionnement de la modale du calendar en cas d'affichage de messages de validation
- fix(editor): correctifs accessibilité
- fix(multiselect): incohérences graphiques des items dans l'état `focus`
- fix(upload-dnd): amélioration de l'accessibilité pour les différents labels
- fix(upload-dnd): amélioration graphique du mode désactivé
- fix(upload-dnd): harmonisation des couleurs de la zone de drop et homogénéisation de l'espacement en mode inline
- fix(upload-dnd): ajout de l'émission de l'évènement `(selectionChange)` à la suppression de fichiers
- fix(upload-dnd): suppression du `NG_VALIDATORS` du composant qui provoquait une erreur à l'activation du contrôle
## 1.4.6 (2025-11-24)
- fix(autocomplete): impossible de naviguer au clavier sur la première option (régression 1.4.5)
- fix(autocomplete): l'id des messages de validation n'est pas correctement passé en `aria-describedby`
- fix(upload-dnd): correction du style des messages de validation
- fix(upload-dnd): l'id des messages de validation n'est pas correctement passé en `aria-describedby`
## 1.4.5 (2025-11-19)
- fix(autocomplete): en cas de `requireSelection` la value ne doit pas refléter la saisie utilisateur
- fix(autocomplete): après sélection le retour en saisie positionne le focus sur la mauvaise option
- fix(dropdown container): l’évènement `clickOutside` n’est pas correctement détaché lors de la destruction du composant
- fix(multiselect/treeselect): ignorer les options désactivées lors du `selectAll`
## 1.4.4 (2025-11-06)
- fix(autocomplete): correction du rafraîchissement pour une meilleure prise en charge des reactive forms (`setValue`/`reset`)
- fix(multiselect/treeselect): une option désactivée s'affiche en tag supprimable
## 1.4.3 (2025-10-24)
- fix(autocomplete): l'input `icon` n'est pas pris en compte
- fix(dropdown-menu): le menu déroulant n'est pas positionné correctement en `appendTo` (régression 1.4.2)
- fix(multiselect): les options désactivées restent sélectionnables
## 1.4.2 (2025-10-09)
- fix(datepicker): mauvais focus à l'ouverture si la `value` et la date `min` ou `max` sont identiques
- fix(dropdown-menu): `linkSelect` et `buttonSelect` ne sont pas émis lors de l'utilisation de `appendTo`
- fix(dropdown-menu): `iconMenu` n'est pas appliqué
- fix(multiselect): la liste reste vide à la suite d'une recherche sans résultats avec `virtualScroll`
- fix(tree): réinitialiser les tabindex à l'utilisation de `reinitializeState`
## 1.4.1 (2025-08-29)
- fix(autocomplete): l'évènement `blur` n'est pas propagé correctement (requiert `ngx-dsfr` 1.15.1)
- fix(toast): harmonisation du padding avec le composant `alert`
- fix(treeselect): le modèle ne se met pas à jour en mode `multiple`
- chore(storybook): ajout d'un sélecteur de langue dans la toolbar pour toutes les stories
## 1.4.0 (2025-07-17)
- break(chore): version minimale requise angular 18 (>= 18.2)
- break(chore): version minimale requise `ngx-dsfr` 1.15
- feat(autocomplete): ajout de l'input `ariaDescribedBy` pour l'accessibilité
- feat(multiselect/treeselect): ajout des input `ariaRequired` et `ariaInvalid` pour l'accessibilité
- feat(profile-menu): le composant est déplacé dans `@edugouv/ngx-dsfr` (ajout d'un alias vers `DsfrUserMenu`)
- feat(tools-links): le composant est déprécié au profit de l'utilisation de `dsfr-tool-link` de `@edugouv/ngx-dsfr`
- feat(tools-menu): le composant est déplacé dans `@edugouv/ngx-dsfr` (ajout d'un alias vers `DsfrToolLinkMenu`)
- feat(upload-dnd): ajout de l'input `buttonLabel`
- fix(calendar, datepicker): correctifs d'accessibilité (prise de focus, labels aria)
- fix(datepicker): harmonisation graphique du champ par rapport à l'input file natif du DSFR
- fix(grid): en mode `client`, `totalElements` est incorrect en cas d'absence de pagination
- fix(multiselect/tree/treeselect): ajustement des styles hover/sélectionné pour l'accessibilité et harmonisation DSFR
- chore: migration storybook 9
## 1.3.2 (2025-07-04)
- fix(autocomplete, dropdown-menu, multiselect, treeselect): `appendTo` n'est pas compatible avec l'ajout dynamique des composants
- fix(upload-dnd): correction d'une typo
## 1.3.1 (2025-06-16)
- fix(autocomplete, dropdown-menu, multiselect, treeselect): l'utilisation de `appendTo` provoque un scroll en haut de page
- fix(grid): la pagination initiale n'est pas prise en compte en mode client ou si passée dans `rowOptions`
- fix(treeselect): impossible de sélectionner programmatiquement un noeud parent sur le mode `single` en stratégie `all`
- fix(upload-dnd): erreur à l'initialisation en reactive form
- fix(upload-dnd): marge incorrecte entre le label et l'input sur le mode `inline`
- fix(upload-dnd): le nom du fichier n'est pas tronqué lorsque la place disponible est insuffisante
- fix(upload-dnd): gestion du singulier/pluriel sur les labels du composant
## 1.3.0 (2025-06-03)
- feat(autocomplete): ajout d'un mode `multiple` avec affichage des suggestions sélectionnées
- feat(upload-dnd): ajout du composant `dsfr-ext-upload-dnd`
- feat(grid): ajout d'un slot `headerActionsTemplate` pour afficher des boutons d'actions dans le header
- feat(multiselect): possibilité de grouper les options
- feat(multiselect/treeselect): propriété `loading` pour afficher un état de chargement
- feat(toolsmenu): ajout de l'input `outline` permettant de supprimer la bordure du bouton
- feat(treeselect): permettre la sélection d'un noeud parent en mode `single` avec `selectionStrategy`
- fix(grid): suppression de style CSS impactant le label des `dsfr-form-select`
- fix(grid): `sizeColumnsToFit` ne doit pas être appliqué si une `autoSizeStrategy` a été spécifiée dans les options
- fix(toast): les animations d'entrée/sortie du DOM ne s'effectuent pas correctement
- fix(tree): impossible de sélectionner un nœud parent en utilisant le clavier en mode `single`
- fix(tree): la prise de focus à la navigation clavier ne déclenche pas le scroll
- fix(treeselect): le bouton tout (dé)sélectionner ne se met pas à jour après la sélection manuelle des options
## 1.2.4 (2025-05-28)
- fix(editor): en multi-instances, le modèle de la dernière instance écrase celui des autres
## 1.2.3 (2025-05-22)
- fix(editor): l'import erroné de `RouterTestingModule` provoque la suppression du routing
- fix(profile-menu): affichage incorrect du menu en mode tablette (`MD`)
- fix(profile-menu): l'input `mode` n'est pas répercuté sur les liens
## 1.2.2 (2025-05-16)
- fix(calendar, datepicker, multiselect, panel, treeselect): ajoute le type `button` aux boutons par défaut
- fix(multiselect/treeselect): régression 1.2.1 marge excédentaire sur le label des options
## 1.2.1 (2025-05-14)
- fix(grid): suppression de style CSS impactant le label des `dsfr-form-select`
- fix(multiselect/treeselect): marge manquante entre le label et le champ
- fix(profile-menu): le menu ne prend pas toute la largeur en mode mobile
- fix(treeselect): option non sélectionnée à l'init en mode single
## 1.2.0 (2025-03-27)
- feat(autocomplete, datepicker, multiselect, treeselect): label possible en tant que slot et ajout de `labelSrOnly`
- feat(autocomplete, datepicker, multiselect, treeselect): positionnement dynamique de la dropdown selon la place disponible
- feat(datepicker): ajout de l'input `zIndex` afin de commander la propriété css de la modale
- feat(datepicker): ajout de l'input `appendTo` pour utiliser dans un container (accordéon, modale etc.)
- feat(multiselect/treeselect): ajout du slot `optionTemplate` pour l'affichage du label de chaque option
- feat(multiselect/treeselect): ajout des slots `selectedOptionTemplate` et `maxDisplayOptionsTemplate` pour l'affichage des valeurs sélectionnées
- feat(multiselect/treeselect): ajout de l'input `autoWidthDropdown` pour avoir une dropdown de taille fluide (non contrainte par le select)
- feat(dropdown-menu): ajout de l'input `appendTo` pour utiliser dans un container (accordéon, modale etc.)
- feat(profile-menu): ajout du nouveau composant en-tête connecté `dsfr-ext-profilemenu` et du générique `dsfr-ext-toolsmenu`
- fix(autocomplete, multiselect, treeselect): l'utilisation de la barre de scroll ferme la liste déroulante
- fix(dropdown-menu): gestion réactive de la largeur minimale du dropdown
- fix(dropdown-menu): correction style du bouton en version `small`
- fix(grid): en mode serveur le message `aucun résultat` ne s'affiche pas dans le cas d'un filtre sans résultat
- fix(grid): correctif visuel en cas de `striped`, ne pas surcharger la couleur de fond des lignes sélectionnées
- fix(grid): `suppressHeaderFilterButton` doit être à `false` par défaut (cohérence documentation)
- fix(multiselect): aspect incorrect du label si l'input est `disabled`
- fix(multiselect/treeselect): le champ de recherche n'est pas en position absolute avec l'utilisation de `appendTo`
- fix(multiselect/treeselect): accessibilité, navigation clavier en présence de toolbar et utilisation de `aria-checked` en multiple
- fix(chore): dépendances circulaires empêchant l'execution de tests Jest externes
- doc(grid): ajout d'un exemple complet d'un `floating filter` utilisant le composant `dsfrx-multiselect`
## 1.1.2 (2025-02-13)
- fix(autocomplete): impossible de réassigner une valeur nulle à l'input
- fix(autocomplete): en cas de `requireSelection` la valeur doit être réinitialisée uniquement après interaction clavier de l'utilisateur
- fix(datepicker): les dates ne sont pas formatés DD/MM/YYYY quand le composant reçoit une valeur initial en ISO 8601
- fix(multiselect/treeselect): affichage à tort d'un scroll horizontal avec `appendTo='body'`
- fix(multiselect/treeselect): correction du rafraîchissement en reactive form pour `enable()` et `disable()`
- fix(multiselect/treeselect): affichage d'un warning à tort sur l'absence de traduction du placeHolder
- fix(toast): la nouvelle sévérité 'valid' n'est pas gérée par le composant
- fix(toast): absence de notification sur la fermeture des toasts
- fix(treeselect): div résiduelle en l'absence de `showSearch` et `selectAll`
- fix(treeselect): erreur à l'initialisation si aucune option n'est présente
- fix(treeselect): comportement incohérent entre l'utilisation du filtre et le bouton tout sélectionner
## 1.1.1 (2025-01-30)
- fix(datepicker): le type `DsfrDateEvent` n'est pas exporté
- fix(treeselect): mauvaise propagation des états des checkboxes des noeuds parents en cas de filtre
## 1.1.0 (2025-01-23)
- break(chore): version minimale requise angular 17
- break(chore): version minimale requise ngx-dsfr 1.13
- feat(chore): utilisation du pipe `DsfrI18n` pour améliorer la gestion de la traduction
- feat(dropdownmenu): ajout d'un nouveau composant menu déroulant
- feat(tree): ajout de la méthode `getSelection` récupérant la sélection courante
- feat(tree): ajout de la méthode `getTreeState` récupérant l'état courant de l'arbre
- feat(tree/treeselect): ajout de l'attribut `hidden` pour un filtre externe des nœuds
- fix(autocomplete): la valeur initiale n'est pas positionnée
- fix(multiselect): la valeur initiale n'est pas positionnée en mode `single`
- fix(panel): utilisé à travers une modale, les sous-composants du panel persistent à la fermeture de la modale
- fix(tree): l'évènement `selectionChange` se déclenche plusieurs fois pour un même évènement
- fix(tree): en mode checkbox, incohérence de l'état de sélection des noeuds parents à l'initialisation
## 1.0.2 (2025-01-03)
- fix(datepicker): le changement de valeur de l'input n'est pas pris en compte
- fix(datepicker): correction des messages d'erreur pour les dates minimales ou maximales
- fix(multiselect): amélioration du comportement responsive avec `selectAll` combiné au filtre
- fix(multiselect/treeselect): correction du rafraîchissement pour une meilleure prise en charge des reactive forms (`setValue`/`reset`)
- fix(tree): `selectionChange` n'est pas émis sur l'évènement tout sélectionner / tout déselectionner
## 1.0.1 (2024-12-18)
- fix(toast): suppression de l'import de `BrowserAnimationsModule` au niveau du composant
- fix(tree): régression du comportement à la navigation clavier pour la touche `tab`
- fix(tree): émission de l'évènement `selectionChange` pour émettre la liste des nœuds couramment sélectionnés
- fix(tree/treeselect): en mode `single` ou sans sélection, le clic sur un nœud parent doit l'étendre/le réduire
## 1.0.0 (2024-12-16)
- break: version minimale requise ngx-dsfr 1.12.8
- break(autocomplete, multiselect, treeselect): suppression de l'attribut déprécié depuis la 0.7 `appendToBody`, utiliser `appendTo`
- break(multiselect/treeselect): suppression de l'attribut déprécié depuis la 0.6 `showCheckboxes`, utiliser `selectionMode`
- break(multiselect/treeselect): suppression de `showToolBar`, utiliser `showSearch` ou `showSelectAll`
- break(multiselect/treeselect): pas d'affichage du bouton de réinitialisation du filtre de recherche, utiliser `showClearSearch`
- break(progressbar): suppression de l'attribut `mode`, utiliser la valeur `null` pour lancer le mode "indéterminé"
- break(tree/treeselect): les options fournies sont désormais immutables et les composants en `OnPush`.
- break(toast): necessité de mettre en place un `dsfr-ext-toast` à la racine de l'application
- feat(calendar): ajout du composant calendrier et de sa déclinaison en modal
- feat(date picker): révision des couleurs de la grille des jours
- feat(grid): déplacement des boutons d'actions au dessus du titre de la grille pour homogénéiser avec le DSFR 1.12
- feat(grid): exposition de `showPagination` et `showFooterResult`
- feat(autocomplete): `requireSelection` permet de forcer une valeur parmi la liste des suggestions
- feat(autocomplete): possibilité d'afficher la liste des suggestions en passant `minLength` à 0
- feat(autocomplete): la valeur de l'autocomplete est décorrélée de la valeur de l'input et correspond au type des suggestions en cas de sélection
- feat(multiselect/treeselect): ajout de `message` et `messageSeverity` pour harmoniser les messages de groupe (erreur, valide, info) avec ngx-dsfr
- feat(progressbar): ajout de `indeterminateContextMessage` pour donner plus de contexte au mode "indéterminé" avec un lecteur d'écran
- feat(tree): slot `nodeTemplate` pour personnaliser l'affichage du label des nœuds
- fix(autocomplete): accessibilité, complétion des attributs aria de la listbox et fermeture de la liste à la tabulation
- fix(autocomplete): sélection avec l'option `appendTo` non effective
- fix(grid): amélioration de la gestion du titre de la grille
- fix(grid): appliquer un outline à la sélection des cellules (identique navigation clavier)
- fix(grid): redimensionner les colonnes selon la taille de la grid après récupération des données en mode serveur
- fix(multiselect): focus et affichage incorrect de la liste avec la combinaison de `virtualScroll` et `appendTo`
- fix(grid): régression sur l'affichage des filtres actifs
- fix(multiselect/treeselect): améliorations accessibilité, ajouts de message de statut, attributs aria et prise de focus sur le filtre
- fix(multiselect/treeselect): remplacement de la case à cocher "Tout sélectionner" par un bouton d'action
- fix(multiselect/treeselect): correction du focus avec l'utilisation du virtual scroll
- fix(multiselect/treeselect): correction de la couleurs des options lors d'un message d'erreur ou de validation
- fix(panel): ajout d'un message indiquant l'état du bouton d'expansion
- fix(spinner): ajout d'un message apportant le contexte d'utilisation du composant (lecteur d'écran)
- fix(timeline): amélioration de l'accessibilité de la `timeline`
- fix(treeselect): Dans le cas du `clearableOptions`, déselectionner une option "multiple" casse le fonctionnement du composant
- fix(treeselect): mise à jour incorrect des états indéterminés des checkboxes dans le cas de la recherche
## 0.11.2 (2024-11-22)
- fix(grid): ajout de `selectionChange` pour le binding manquant au changement de sélection de ag-grid (`selectionChanged`)
- fix(grid): correction de l'affichage de la sélection en mode sans cases à cocher et avec colonnes fixées
## 0.11.1 (2024-10-25)
- fix(grid): régression 0.11 suite montée de version ag-grid, le modèle de sélection `selection` est renommé comme antérieurement `rowSelection`
## 0.11.0 (2024-10-14)
- break: version minimale requise ngx-dsfr 1.12
- break(grid): version minimale requise ag-grid 32
- break(grid): suppression des propriétés dépréciées `bordered` (utiliser `fr-table--bordered`) et `gridRender` (utiliser `gridReady`)
- feat(chore): ajout du mode haut contraste
- feat(date picker): affichage de la sélection du mois et de l'année similaire au composant Duet
- feat(editor): nouveau composant editeur riche basé sur `quill` (import depuis `@edugouvfr/ngx-dsfr-ext/editor`)
- feat(autocomplete): possibilité de virtual scrolling avec `virtualScroll` et `virtualScrollItemHeight`
- feat(autocomplete): ajout de `loading` et `delay` pour gérer le chargement en asynchrone
- feat(autocomplete): slot `suggestionTemplate` pour personnaliser l'affichage des suggestions
- feat(autocomplete): possibilité de passer des objets en tant que suggestions en précisant `suggestionValueKey`
- feat(autocomplete): exposition des évènements `suggestionSelect` et `listClose`
- feat(grid): revue du style de la grid pour homogénéiser avec la table DSFR 1.12
- feat(grid): implémentation du footer de la table `ngx-dsfr` avec ajout des slots `footerActionsTemplate` et `footerResultsTemplate`
- fix(date picker): problématiques de gestion de dates, d'affichage et d'accessibilité
- fix(multiselect/treeselect): apparence des inputs ne reflétant pas leur état `disabled`
## 0.10.0 (2024-07-25)
- break(datepicker): refonte du composant (suppression de la dépendance externe `duetds` et inclus dans `@edugouvfr/ngx-dsfr-ext`)
- feat(carousel): nouveau composant de carrousel
- feat(datepicker): possibilité de visualiser un masque de saisie
- fix(autocomplete/multiselect): ne pas cacher la liste lors de la suppression des options sous forme de tags
- fix(treeselect): correctif accessibilité pattern de navigation, cacher la liste à la touche entrée ou tabulation
- chore: migration ngx-dsfr 1.11.0
## 0.9.2 (2024-06-28)
- fix(grid): (mode serveur) pas de rechargement des données après un affichage de tableau vide (ex. après filtrage)
- fix(grid): (mode serveur) mauvaise application de la pagination passée en `initialState`
- fix(grid): (mode serveur) ajout de la propriété `rowId` pour corriger le rafraichissement de donnée avec `initialState`
## 0.9.1 (2024-06-12)
- fix(grid): exposition de la propriété ag-grid `initialState` pour permettre de passer un état initial à la grid (ex. page courante)
- fix(grid): exposition de l'évènement ag-grid `onGridPreDestroyed`
- fix(grid): dépréciation de l'évènement `gridRender` au profit de `gridReady` (lisibilité)
- fix(panel): régression bouton pour masquer le contenu non fonctionnel
- fix(panel): attribut aria-label manquant sur le bouton pour masquer le contenu
## 0.9.0 (2024-05-31)
- break(chore): version minimale requise angular 16
- feat(autocomplete): gestion filtre automatique
- feat(grid): composant `DsfrSelectFilterComponent` permettant l'utilisation du `dsfr-form-select` pour filtrer selon une liste d'options
- fix(autocomplete): correction de la gestion du focus pendant la navigation au clavier
- fix(grid): correctifs accessibilité contrastes de couleurs (couleurs de fond, de ligne, de focus et bordures)
- fix(grid): correctif accessibilité, gestion du focus pour une cellule avec éléments interactifs (implémentation par défaut de `suppressKeyboardEvent`)
- fix(grid): correctifs accessibilité sur la pagination du tableau (labels et positionnement)
- fix(grid): ajout d'une icône par défaut indiquant la possibilité de trier une colonne
- fix(grid): attributs manquants pour la gestion de l'accessibilité sur le composant `DsfrButtonCellGridComponent`
- fix(grid): dépréciation de `bordered` au profit de `customClass : 'fr-table-bordered'`
- fix(grid): hauteur minimale d'une ligne de 40px dans le cas d'utilisation de `autoRowsHeight`
- fix(grid): traductions manquantes
- fix(multiselect/treeselect): forcer la fermeture de la liste déroulante en cas de redimensionnement ou zoom de la fenêtre et utilisation de `appendTo`
- fix(spinner): le mode overlay ne couvre pas la totalité de la page
- doc: complément de la doc. du composant grid pour l'accessibilité
- chore: migration storybook 8
## 0.8.1 (2024-05-23)
- fix(toast): position des toasts
## 0.8.0 (2024-04-15)
- feat(multiselect): ajout d'un mode `single`
- feat(progressbar): nouveau composant `dsfr-ext-progressbar`
- fix(autocomplete): régression cacher la liste au clic en dehors de l'élément
- fix(chore): encapsuler les classes CSS par une classe préfixée par `dsfrx-`
- fix(multiselect): dépréciation de `showCheckboxes` au profit de `selectionMode`
- fix(multiselect, treeselect): correction de la zone d'affichage des messages d'erreur et validation
- fix(tree): correction de la couleur du noeud sélectionné
- fix(treeselect): en mode `single`, sélection uniquement des feuilles
- fix(treeselect): dans certains cas de sélections successives sur les checkboxes, l'état indéterminé affiché est incorrect
- fix(treeselect): correctif accessibilité, augmentation des espacements et zones de clic
## 0.7.2 (2024-04-03)
- fix(grid): style des checkboxes harmonisé avec le DSFR (corrige également l'utilisation avec `suppressRowClickSelection`)
- fix(grid): correctif accessibilité affichage du focus sur les cellules sélectionnées
## 0.7.1 (2024-03-26)
- fix(treeselect): correction initialisation du treeselect pour storybook
## 0.7.0 (2024-03-26)
- break(grid): version minimale requise ag-grid 31.1
- feat(date-picker): nouveau composant `dsfr-ext-datepicker`
- feat(autocomplete): possibilité de surcharger la valeur CSS z-index `zIndex`
- feat(grid): émission de l'évènement `rowSelect` lors de la sélection d'une ligne
- feat(multiselect): `clearableOptions` affiche les options sous forme de tags supprimables
- feat(multiselect): `clearSearchOnHide` vide le champ de recherche lorsque la liste est cachée
- feat(tree): nouveau composant `dsfr-ext-tree`
- feat(treeselect): nouveau composant `dsfr-ext-treeselect`
- fix(autocomplete): dépréciation de `appendToBody` au profit de `appendTo` pour pouvoir lier la liste au conteneur parent
- fix(autocomplete): correctif accessibilité navigation clavier avec `appendTo`
- fix(multiselect): correctif accessibilité navigation clavier avec `appendTo`
- fix(multiselect): correctif accessibilité container virtual scroll
- fix(multiselect): remise à zéro du filtre après modification de la fonction `searchFn`
- fix(multiselect): affichage des checkboxes en version small
- fix(toast): régression visuelle avec DSFR 1.11
## 0.6.2 (2024-02-28)
- fix(multiselect): dépréciation de `appendToBody` au profit de `appendTo` pour pouvoir lier la liste au conteneur parent
- fix(multiselect): correctif accessibilité génération automatiques des id des checkboxes
- fix(multiselect): correctif accessibilité placement du focus à la tabulation dans le cas de `appendTo`
## 0.6.1 (2024-02-14)
- fix(doc): erreur compilation storybook injection dependances I18n
## 0.6.0 (2024-02-14)
- feat(autocomplete): ajout de l'input `appendToBody` pour utiliser dans un container
- feat(multiselect): ajout possibilité de virtual scrolling (cf. `virtualScroll` et `virtualScrollItemHeight`)
- feat(multiselect): ajout des options `maxSelectedOptions`, `showCheckboxes`, `showSelectAll`
- fix(autocomplete): corrections accessibilité, attributs `aria-expanded` et `role` sur l'input
- feat(multiselect): possibilité de surcharger la valeur CSS z-index `zIndex`
- fix(autocomplete, multiselect): baser le z-index sur une valeur supérieure aux composants DSFR `lifted`
- fix(grid): correction des noms d'évènements `cellEditingStopped`, `filterChanged` et `sortChanged` pour la version côté client
- fix(grid): fix régression mode serveur sur ag-grid > v31.0.1, forcer utilisation dans ng zone pour mise à jour des données
- fix(multiselect): correction scroll horizontal intempestif avec l'option `appendToBody`
- fix(multiselect): renommage des classes CSS internes du composant (dorénavant préfixées `dsfrx-multiselect__*`)
- fix(doc): fix doc aucomplete
- chore: ajout @angular/cdk en peer dependency
- chore: migration ngx-dsfr 1.9.3
- chore(storybook): migration 7.6
## 0.5.0 (2023-12-14)
- break(chore): version minimale requise `@edugouvfr/ngx-dsfr` 1.8.0
- break(grid): L'import du module doit se faire depuis `/ngx-dsfr-ext/grid` (ajout d'un point d'entrée secondaire).
- break(grid): version minimale requise ag-grid 31.0
- feat(grid): ajout input `gridId`
- feat(toast): nouveau composant `dsfr-ext-toast`
- fix(grid): améliorations du rendu pour `autoRowsHeight` notamment si plusieurs tableaux
- fix(grid): correction des noms d'évènements `cellEditingStopped`, `filterChanged` et `sortChanged`
- chore: compatible `"strictNullChecks": true`
- chore: migration angular 15
## 0.4.3 (2023-12-04)
- fix(grid): erreur compilation type `rowData`
- fix(grid): valeur de l'attribut `fixedHeight` pris en compte
## 0.4.2 (2023-11-27)
- fix(autocomplete): améliorations accessibilité (attributs aria-controls et aria-activedescendant)
- fix(multiselect): améliorations accessibilité (interactions clavier échap/retour tab)
- chore(storybook): migration 7.5
- chore: migration ngx-dsfr 1.7.1
- chore: ajout ag-grid en peer dependencies
## 0.4.1 (2023-11-08)
- fix(grid): mise à jour de la pagination au changement d'affichage du nombre de pages successifs
- fix(multiselect): prise en compte du reset des options et de la value fait programmaticalement
## 0.4.0 (2023-11-02)
- feat(panel): mise à disposition du composant `dsfr-ext-panel`
- feat(spinner): ajout de la propriété `overlay`
- feat(timeline): nouveau composant `dsfr-ext-timeline`
- feat(multiselect): ajout d'une propriété `compareWith` pour fonction de comparaison custom
- fix(multiselect): pas de mise à jour de la value si elle n'est pas au format attendu
- fix(multiselect): correctifs affichage du champ de recherche notamment en cas de multiples multiselect
## 0.3.0 (2023-10-12)
- feat(grid) : ajout d'un attribut `autoRowsHeight` pour permettre une hauteur de ligne dynamique en mode serveur
- feat(multiselect): ajout de l'attribut `appendToBody` pour utiliser dans un conteneur
- fix(multiselect): correction mise à jour des valeurs dans un reactive form
- chore(storybook): migration 7.4.5
## 0.2.0 (2023-09-12)
- feat(autocomplete): nouveau composant `dsfr-ext-autocomplete`
- feat(multiselect) : nouveau composant `dsfr-ext-multiselect`
- feat(spinner): nouveau composant `dsfr-ext-spinner`
- chore: montée de version `@edugouvfr/ngx-dsfr@1.4.0`
## 0.1.0 (2023-07-04)
- feat(datagrid): mise à disposition du composant `dsfr-ext-ag-grid`
- feat(spinner): mise à disposition du composant `dsfr-ext-spinner`