UNPKG

@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
# @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`