Utilisation
Présentation
Le sélecteur de date est un composant constitué de deux éléments principaux : un champ de sélecteur de date et un calendrier déroulant. Le composant Calendrier représente visuellement une date et offre une expérience de navigation cohérente entre les affichages des jours, des mois et des années. Ce calendrier intégré permet aux utilisateurs de parcourir et de sélectionner des dates dans une vue.
Quand l'utiliser
- Pour sélectionner une date proche de la date du jour.
- Pour sélectionner une date et l'enregistrer dans un champ de saisie.
- Pour parcourir différentes vues de dates, telles que les jours, les mois et les années.
- Pour une représentation visuelle de la date.
Quand ne pas l'utiliser
- Pour sélectionner une date dans un passé ou un futur lointain. Dans ce cas, utilisez la saisie de date.
- Pour sélectionner une plage de dates. Dans ce cas, utilisez la plage de dates.
- Pour sélectionner uniquement le mois et l'année, sans jour spécifique. Dans ce cas, utilisez le sélecteur de mois.
- Pour sélectionner uniquement l'année, sans spécifier le mois ou le jour. Dans ce cas, utilisez le sélecteur d'année.
- Pour sélectionner une heure spécifique. Dans ce cas, utilisez le sélecteur d'heure.
Voir également
Structure

Le composant Sélecteur de date est constitué des éléments suivants :
- Champ du sélecteur de date : champ de saisie dans lequel l'utilisateur peut entrer manuellement le jour, le mois et l'année.
- Icône Calendrier : bouton avec icône qui déclenche le calendrier déroulant lorsque l'utilisateur clique dessus.
- Bouton Mois précédent : commande de navigation permettant d'afficher et de sélectionner les dates du mois précédent.
- Bouton Mois : commande permettant de sélectionner un autre mois.
- Bouton Année : commande permettant de sélectionner une année différente.
- Bouton Mois suivant : commande de navigation permettant d'afficher et de sélectionner les dates du mois suivant.
- Date du jour : date du jour, avec une ligne affichée en dessous pour l'indiquer visuellement.
- Date sélectionnée : date spécifique choisie par l'utilisateur et mise en surbrillance ou mise en évidence dans l'interface du sélecteur de date.
- Bouton « Aujourd'hui » : bouton qui renseigne automatiquement le champ du sélecteur de date avec le jour, le mois et l'année du jour lorsque l'utilisateur clique dessus.
Le format de la date affichée dans le sélecteur de date dépend des paramètres régionaux de l'utilisateur. Cela signifie que le format de date varie en fonction de la localisation et des paramètres linguistiques de l'utilisateur.
Par exemple, aux États-Unis, le format de date est généralement MM/DD/YYYY, alors que dans de nombreux pays européens, le format est DD/MM/YYYY.
Le format de date est affiché sous la forme d'un espace réservé dans le sélecteur de date pour aider l'utilisateur à saisir la date. Cela garantit que le format reste visible tout au long du processus de saisie.

Un espace réservé dans le champ de saisie aide les utilisateurs à choisir un format de date attendu au fur et à mesure qu'ils saisissent des données.
Contenu
Directives générales relatives à la rédaction
- Mettez une majuscule en début de phrase pour tous les aspects relatifs à la conception des interfaces de produit Guidewire. Ne mettez pas la 1re lettre du 1er mot du titre en majuscule.
- Utilisez des verbes au présent et la forme active dans la plupart des cas.
- Utilisez des contractions courantes pour donner à votre texte un ton plus naturel et informel.
- Utilisez un langage simple. Évitez tout jargon inutile et les formulations complexes.
- Utilisez des termes et des phrases concis.
Inclure une étiquette
Renseignez un texte clair et descriptif pour l'étiquette du sélecteur de date. Cette étiquette doit indiquer sa fonction et le type spécifique de date sélectionné.
Placez une étiquette permanente en dehors du champ.
N'utilisez pas de texte de l'espace réservé pour remplacer l'étiquette.
Ajoutez un texte d'aide si cela est utile
Utilisez le texte d'aide pour fournir du contexte et indiquer la date à sélectionner. Voici quelques exemples de ce que vous pouvez inclure :
- Des conseils qui aident l'utilisateur à choisir la date appropriée
- Plus de contexte pour expliquer pourquoi l'utilisateur doit sélectionner une date spécifique
N'utilisez le texte d'aide que pour les informations pertinentes. Évitez de reformuler les détails qui apparaissent dans l'étiquette. Rédigez le texte d'aide en 1 ou 2 phrases courtes et complètes se terminant par un point. Mettez une majuscule en début de phrase.
N'utilisez pas de texte d'aide pour indiquer le contexte.
N'utilisez pas le texte d'aide pour simplement reformuler les mêmes informations que celles qui apparaissent dans l'étiquette.
Comportements
États
Le composant Sélecteur de date se comporte comme un champ de saisie, avec les mêmes états interactifs.
Interactions
Souris
Les utilisateurs peuvent entrer le jour, le mois et l'année manuellement dans le champ du sélecteur de date ou cliquer sur l'icône Calendrier pour sélectionner le jour, le mois et l'année dans une liste déroulante.

Clavier
Le sélecteur de date est développé et réduit avec Spacebar. Les utilisateurs naviguent parmi les options à l'aide des touches fléchées et les sélectionne à l'aide de la touche Spacebar ou Enter.
Un widget de calendrier apparaît lorsque l'utilisateur utilise la touche de tabulation pour accéder au champ de saisie du sélecteur de date. La date du jour est mise en surbrillance et les utilisateurs qui ne se servent que du clavier peuvent entrer la date manuellement ici. Les utilisateurs peuvent également placer le focus clavier sur le widget en appuyant sur la touche fléchée vers le bas lorsqu'il est développé. Parcourez le calendrier avec les touches fléchées. Il est possible de mettre les boutons « Précédent », « Mois », « Année » et « Suivant » en évidence via la touche Tab lorsque le widget est ouvert.
Lecteur d'écran
Les utilisateurs sont informés de la valeur de date préremplie lorsqu'ils accèdent au champ de saisie du sélecteur de date à l'aide de la touche Tabulation, ainsi que du fait que cette valeur est actuellement sélectionnée. La date peut être saisie manuellement à partir de ce champ de saisie. Bien que le focus reste placé sur la date préremplie, un widget de calendrier est également disponible. Les utilisateurs peuvent également déplacer le focus sur le widget en appuyant sur la touche fléchée vers le bas. La navigation dans la partie calendrier du widget s'effectue à l'aide des touches fléchées, et la valeur actuellement sélectionnée est lue par les lecteurs d'écran via un attribut WAI-ARIA aria-label. Il est possible de mettre les boutons « Précédent », « Mois », « Année » et « Suivant » en évidence via la touche Tab lorsque le widget est ouvert. Le sélecteur de date React n'active actuellement pas la navigation au clavier vers le lien « Aujourd'hui ».
Le composant Sélecteur de date permet de déplacer le caret (curseur de texte clignotant) entre les différentes sections de la date (MM/JJ/AAAA). Toutefois, les utilisateurs ne peuvent pas supprimer des chiffres individuels au sein d’une section. La suppression d’un chiffre efface la section entière (MM, JJ ou AAAA), obligeant les utilisateurs à la saisir de nouveau. Ce comportement est constant dans tous les composants de date, où le masque de saisie formate la saisie au fur et à mesure de la saisie de l’utilisateur.
Accessibilité
Ce composant a été validé pour répondre aux directives d’accessibilité WCAG 2.2 AA dans sa configuration de base par défaut. Il s’agit notamment de s’assurer que :
- Le rapport de contraste des éléments textuels par rapport à leur arrière-plan est supérieur à 4.5:1.
- Le contenu non textuel qui doit transmettre le sens (comme les icônes et les indicateurs de focus) a un rapport de contraste d’au moins 3:1 avec ses couleurs adjacentes.
- Cet élément peut être utilisé à l’aide d’un clavier et d’une souris.
- Le contenu est accessible à l’aide de lecteurs d’écran, tels que JAWS et VoiceOver.
La conformité de l’accessibilité dépend en définitive de la façon dont ce composant est implémenté et personnalisé. Les modifications apportées par l’auteur du contenu peuvent affecter l’accessibilité. Pour en savoir plus sur notre modèle de responsabilité partagée, consultez notre Déclaration d’accessibilité Jutro complète.
Lorsque vous utilisez ce composant, assurez-vous que l'étiquette indique clairement la date que l'utilisateur doit saisir ou sélectionner.
Code
<DatePicker
label="Choose Date"
onChange={(event, value) =>
console.log('The date chosen is', value.day, value.month, value.year)
}
/>
Instruction d'importation
import { DatePicker } from '@jutro/components';
Cahier des charges du composant
Assurez-vous de comprendre la surface de l'API des composants du système de conception, ainsi que les implications et les compromis. Pour en savoir plus, reportez-vous à notre introduction à l'API des composants.
Propriétés
labelobligatoire
DescriptionLabel associated with the input field, also passed as a default value to 'aria-label'.
className
DescriptionCSS class name for this component.
disabled
DescriptionIf set to true, the component is rendered in disabled state.
Type'vshort' | 'short' | 'long' | 'abbreviated' | 'full'
displayOnly
DescriptionIf set to true, displays the component value in plain text. Consider using readonly instead, if possible, because plain text is worse for accessibility than readonly inputs.
hideLabel
DescriptionIf set to true, the label is not visible.
DescriptionHides the Today button in the calendar.
initialValue
Type{ day: number, month: number, year: number }
DescriptionInitial value of the input. Value must be in object format with day, month, and year property where month is indexed from 1. If the value prop is specified along with this prop, this prop's value is discarded.
labelPosition
maxDate
Type{ day: number, month: number, year: number }
DescriptionMaximum allowed day value.
minDate
Type{ day: number, month: number, year: number }
DescriptionMinimum allowed day value.
onBlur
Typefunction (FocusEvent<HTMLInputElement>)
DescriptionA callback called after the component is focused.
onChange
Typefunction (React.ChangeEvent<HTMLInputElement>, { day: number, month: number, year: number })
DescriptionCallback invoked when component value is changed.
onFocus
Typefunction (FocusEvent<HTMLInputElement>)
DescriptionA callback called after the component is focused.
placeholder
DescriptionPlaceholder to display on an empty component.
readOnly
DescriptionIf set to true, component is rendered in a read-only state. For values in plain text, consider using displayOnly.
required
DescriptionIf set to true, the component is rendered as required and the label includes an asterisk.
secondaryLabel
DescriptionSecondary label text to display.
stateMessages
DescriptionAn object with a list of error messages for the current state.
Type{ text: intlMessageShape, trigger: string } | intlMessageShapetext
DescriptionText to show tooltip content.
trigger
DescriptionThe trigger to show the tooltip.
DescriptionText to be displayed in the tooltip or tooltip object that includes: text - to show tooltip content, trigger - to set tooltip trigger.
value
Type{ day: number, month: number, year: number }
DescriptionValue of the input. Takes precedence over initialValue. The value must be in object format with day, month, and year property where month is indexed from 1. If this prop is passed, the component works in a controlled mode and its value will change only if this prop changes.
Crochets
Aucun crochet n'est disponible pour date picker.
Clés de traduction
Le composant date picker définit les clés de traduction suivantes :
| Clé | Utilisée pour |
|---|
| jutro-components.fields.DatePicker.chooseDate | Texte de l'étiquette du champ de saisie. |
| jutro-components.fields.DatePicker.placeholderDay | Partie jour de l'espace réservé. Doit contenir deux caractères répétés. |
| jutro-components.fields.DatePicker.placeholderMonth | Partie mois de l'espace réservé. Doit contenir deux caractères répétés. |
| jutro-components.fields.DatePicker.placeholderYear | Partie année de l'espace réservé. Doit comporter quatre caractères répétés. |
date picker hérite également des traductions suivantes :
| Clé | Utilisée pour |
|---|
| jutro-components.DateCalendar.previousMonth | Texte de l'étiquette du bouton Mois précédent. |
| jutro-components.DateCalendar.nextMonth | Texte de l'étiquette du bouton du mois suivant. |
| jutro-components.DateCalendar.currentDay | Texte de l'étiquette du bouton Date actuelle. |
| jutro-components.DateCalendar.currentDayAriaLabel | Texte de l'étiquette du bouton permettant de sélectionner la date en cours comme valeur. |
| jutro-components.MonthSkeleton.previousYear | Texte de l'étiquette du bouton Année précédente. |
| jutro-components.MonthSkeleton.nextYear | Texte de l'étiquette permettant d'accéder à l'année suivante. |
| jutro-components.MonthSkeleton.currentMonth | Texte de l'étiquette permettant d'accéder au bouton du mois en cours. |
| jutro-components.MonthSkeleton.currentMonthAriaLabel | Texte de l'étiquette du bouton permettant de sélectionner le mois en cours comme valeur. |
| jutro-components.YearCalendar.previousYears | Texte de l'étiquette du bouton de plage de l'année précédente. |
| jutro-components.YearCalendar.currentYear | Texte de l'étiquette du bouton Accéder à l'année en cours. |
| jutro-components.YearCalendar.currentYearAriaLabel | Texte de l'étiquette du bouton permettant de sélectionner l'année en cours comme valeur. |
La date est formatée en fonction des paramètres régionaux sélectionnés. Par exemple, si le paramètre régional est en-US, la date du 20 janvier 2024 prend le format « 01/20/2024 ». Si le paramètre régional est en-GB, le format est « 20/01/2024 ».
Portes de sortie
Pour en savoir plus, reportez-vous à notre documentation sur les portes de sortie.
Exemples
Consultez la section Utilisation pour découvrir comment concevoir correctement un sélecteur de date et connaître les différentes options de configuration que nous proposons.
Exemple de sélecteur de date de base
Vous pouvez ajouter une entrée qui permet à un utilisateur de saisir une date manuellement ou via une fenêtre modale de calendrier.
<DatePicker
label="Choose date"
onChange={(event, value) =>
console.log('The date chosen is', value.day, value.month, value.year)
}
/>
Exemple Min/Max
Vous pouvez limiter la plage de dates qu'un utilisateur peut sélectionner.
Note: Cela n'inclut pas la validation, cela limite uniquement les options dans une liste déroulante. Un utilisateur peut saisir manuellement n'importe quelle date.
<DatePicker
label="Choose date"
minDate={{ day: 1, month: 1, year: 2022 }}
maxDate={{ day: 31, month: 12, year: 2023 }}
/>
Exemple de validation
Vous pouvez utiliser la propriété onChange pour appeler une fonction qui met à jour stateMessages pour afficher les erreurs à l'utilisateur.
L'exemple suivant affiche des erreurs pour des dates non valides ou des dates qui ne correspondent pas à l'année 2022.
function DatePickerMinMaxValidation() {
const [validationMessages, setValidationMessages] = useState({});
const minDate = { day: 1, month: 1, year: 2022 };
const maxDate = { day: 31, month: 12, year: 2022 };
function JutroDateToString(date) {
return `${date.year}-${String(date.month).padStart(2, '0')}-${String(
date.day
).padStart(2, '0')}`;
}
const parseErrorCode = (errorObject: { errorCode?: string }) => {
if (!errorObject) {
return;
}
const { errorCode } = errorObject;
if (errorCode === 'INVALID_DATE') {
return { error: ['Please enter a valid date.'] };
}
if (errorCode === 'MIN_EXCEEDED') {
return {
error: [`Please enter a date after ${JutroDateToString(minDate)}.`],
};
}
if (errorCode === 'MAX_EXCEEDED') {
return {
error: [`Please enter a date before ${JutroDateToString(maxDate)}.`],
};
}
};
const onChange = useCallback((e, newValue, errorObject) => {
setValidationMessages({});
const errorDetected = parseErrorCode(errorObject);
if (errorDetected) {
setValidationMessages(errorDetected);
}
}, []);
return (
<DatePicker
label="Choose date"
onChange={onChange}
minDate={minDate}
maxDate={maxDate}
stateMessages={validationMessages}
/>
);
}
Journal des modifications
10.13.0
Un chemin d’importation à partir de @jutro/components a été ajouté pour le composant DatePicker.
L’ancien chemin d’importation à partir de @jutro/components/new sera supprimé dans une prochaine version majeure.
Il est conseillé aux utilisateurs d’exécuter la commande suivante pour appliquer un codemod afin de mettre à jour les chemins d’importation dans votre code.
jutro codemod:apply --name=MigrateDatePickerImportFromNew
Pour en savoir plus sur les codemods Jutro, reportez-vous à la documentation sur les codemods.
10.9.0
Type de propriété icon étendu
Le type de propriété icon du composant obsolète DateField a été étendu à string | React.ComponentType.
Valeur par défaut icon modifiée
La valeur par défaut de la propriété icon du composant obsolète DateField est passée de 'gw-check' à CheckIcon.
10.5.0
Le nouveau composant @jutro/components/new/DatePicker a été introduit et remplace DateField.
DateField peut toujours être importé depuis @jutro/components/DateField, mais vous recevrez un avertissement indiquant qu'il est obsolète.