v8.7
Facettes multi-sélectionnables
La recherche supporte maintenant la multi-sélection de valeurs au niveau des facettes, si l'API serveur utilisée est compatible. Conformément à l'implémentation choisie, chaque facette doit être manuellement déclarée comme multi-sélectionnable dans la déclaration de facette côté serveur, et cette information doit être relayée au client via une nouvelle propriété isMultiSelectable
attendue sur l'objet FacetOutput
(à côté du code
, label
et values
). Cela permet au composant d'adapter son affichage pour gérer la sélection multiple via des checkbox.
Attention breaking change, selectedFacets
contient maintenant des listes de valeurs (string[]
) au lieu d'une valeur simple, et ce changement est reflété dans l'objet QueryInput
envoyé au serveur. On utilise des listes partout, y compris si la facette n'est pas multi-sélectionnable (pour garder une API homogène).
Masques de saisie
L'Input
de react-toolbox
a été surchargé dans focus4/components
pour ajouter la gestion de masques de saisie, via la nouvelle prop mask
. L'implémentation utilise inputmask-core et le contenu de la prop correspond aux options listées dans la doc.
Evolutions champs date et heure
Les InputDate
et InputTime
utilisent maintenant des masques de saisie pour la saisie manuelle des dates et heures. Le masque est déduit automatiquement depuis le format de date/heure demandé. Par conséquent, il n'est plus possible de préciser plusieurs inputFormat
en entrée (ce qui ne sert de toute façon plus à rien si on a un masque 😄 ).
De plus, le calendrier/l'horloge s'affiche maintenant au dessus du champ s'il n'y a pas la place en dessous, et le horloge ne déconne plus si on scrolle pendant qu'elle est ouverte.
Autocomplete isQuickSearch
Un nouveau mode à été ajouté au composant d'Autocomplete
pour gérer un mode "recherche rapide", dans le cas ou on ne veut pas le lier à un champ et que tout ce qu'on veut utiliser est l'évènement onChange
. Dans ce nouveau mode, l'Autocomplete ignore la valeur qui lui est passée et vide le champ texte à la sélection de valeur.
La méthode focus()
est maintenant exposée (accessible par ref
) et est également appelée sur le onChange
du mode "recherche rapide", pour pouvoir facilement sélectionner plusieurs valeurs.
Les libellés issue des keyResolver
et querySearcher
de l'Autocomplete est maintenant traduits.
L'Autocomplete encode maintenant bien les caractères spéciaux à l'appel du querySearcher
.
Tooltip sur les labels
Il est maintenant possible d'afficher des tooltips au niveau des libellés (sur la droite). Deux props on été ajoutées sur fieldFor
: showTooltip
et comment
, pour afficher la tooltip et renseigner son contenu.
Le champ comment
a également été ajouté sur FieldEntry
(à côté de isRequired
, name
...) pour permettre la génération du commentaire de la tooltip via le modèle, qui sera utilisé nativement par fieldFor
si non reprécisé (comme tout le reste). C'est pour ça qu'on a séparé showTooltip
et comment
, puisqu'idéalement tous les commentaires seront renseignés.
notfoundHandler
sur le routeur.
Dans la configuration du routeur, il est maintenant possible de préciser un handler personnalisé pour les routes non trouvées. Il s'exécute avant la redirection vers la page de 404 et peut retourner :
- Une url (string), URL sur laquelle rediriger
true
, pour ne rien faire et rester sur place.undefined
(ou rien), pour continuer sur la redirection d'erreur.