Verwendung
Überblick
Mit der Datumsbereichsauswahl können Benutzer ein Start- und ein Enddatum angeben. Benutzer können diese Daten in einem Kalender auswählen oder manuell eingeben. Diese Komponente wird in Versicherungsanwendungen verwendet, um einen Datumsbereich für folgende Aufgaben anzugeben:
- Auswählen der Deckungsperiode einer Versicherungspolice
- Filtern von Schadenfalldaten
Zu verwenden
Zum Auswählen einer Periode mit einem eindeutigen Start- und Enddatum.
Nicht zu verwenden
Zum Auswählen eines einzelnen Datums. Verwenden Sie in diesem Fall die Datumsauswahl-Komponente.
Siehe auch
Aufbau

Die DateRange-Komponente besteht aus den folgenden Elementen:
- Startdatum
- Alle dazwischenliegenden Daten
- Enddatum
Das Startdatum und das Enddatum beinhalten beide ein Feld, in dem Benutzer manuell ein Datum eingeben können. Auch ein Kalendersymbol ist enthalten, bei dem durch Klicken ein Dropdown-Menü zur Datumsauswahl geöffnet wird.
Das Format des Datums, das in der Datumsauswahl angezeigt wird, hängt vom Gebietsschema des Benutzers ab. Das bedeutet, dass das Datumsformat je nach Standort und Spracheinstellungen des Benutzers variiert.
In den USA wird beispielsweise in der Regel das Datumsformat MM/DD/YYYY verwendet, in vielen europäischen Ländern hingegen das Format DD/MM/YYYY.
Das Datumsformat wird als Platzhalter in der Datumsauswahl angezeigt, um dem Benutzer die Datumseingabe zu erleichtern. Dadurch wird gewährleistet, dass das Format während des gesamten Eingabevorgangs sichtbar bleibt.
Inhalt
Allgemeine Richtlinien fürs Schreiben
- Verwenden Sie die Großschreibung des ersten Worts und von Substantiven für alle Aspekte der Gestaltung von Guidewire-Produktschnittstellen. Schreiben Sie nicht alles groß.
- Verwenden Sie in den meisten Situationen Verben im Präsens und im Aktiv.
- Verwenden Sie gebräuchliche Abkürzungen, um Ihrem Text einen natürlichen und informellen Ton zu verleihen.
- Verwenden Sie eine einfache Sprache. Vermeiden Sie unnötigen Jargon und komplexe Sprache.
- Halten Sie Wörter und Sätze kurz.
Eine Beschriftung einfügen
Beschriften Sie die Datumsbereichsauswahl mit einem aussagekräftigen, beschreibenden Text. In dieser Beschriftung müssen der Zweck und das spezifische ausgewählte Jahr angegeben sein.
Beschriftungen werden über dem Datumseingabefeld angezeigt und sind linksbündig ausgerichtet. Es wird die übliche Groß- und Kleinschreibung verwendet.
Positionieren Sie eine dauerhafte Beschriftung außerhalb des Felds.
Verwenden Sie keinen Platzhaltertext als Ersatz für die Beschriftung.
Verhalten
Zustände
Die Datumsbereichsauswahl-Komponente verhält sich wie ein Eingabefeld, mit den gleichen interaktiven Zuständen.
Interaktionen
Maus
Benutzer können mit diesem Element interagieren, indem sie auf den Bereich innerhalb des Rahmens klicken.

Tastatur
Die Datumsauswahl wird mit Spacebar erweitert und reduziert. Benutzer navigieren mit den Pfeiltasten durch die Optionen und wählen mit der Spacebar- oder Enter-Taste eine Option aus.
Wenn der Benutzer mit der Tabulatortaste in das Eingabefeld für die Monatsauswahl wechselt, wird ein Kalender-Widget angezeigt. Das aktuelle Datum wird hervorgehoben und Nur-Tastatur-Benutzer können das Datum hier manuell eingeben. Durch Drücken der Nach-Unten-Taste können Benutzer den Tastaturfokus auch auf das Widget legen, wenn es erweitert ist. Navigieren Sie mit den Pfeiltasten durch den Kalender. Die Schaltflächen „Zurück“, „Monat“, „Jahr“ und „Weiter“ können mit der Tab-Taste den Fokus erhalten, wenn das Widget geöffnet ist.
Screenreader
Wenn Benutzer mit der Tabulatortaste in das Eingabefeld für die Datumsauswahl wechseln, werden sie über den vorausgefüllten Datumswert informiert und darüber, dass dieser Wert aktuell aktiviert ist. In diesem Eingabefeld kann das Datum manuell eingegeben werden. Solange der Fokus auf dem vorausgefüllten Datum liegt, ist auch ein Kalender-Widget verfügbar. Benutzer können durch Drücken der Nach-Unten-Taste den Fokus auch auf das Widget verschieben. Die Navigation durch den Kalenderbereich des Widgets erfolgt über die Pfeiltasten. Der Wert, der aktuell den Fokus hat, wird von Screenreadern über das WAI-ARIA-Attribut aria-label ausgegeben. Die Schaltflächen „Zurück“, „Monat“, „Jahr“ und „Weiter“ können mit der Tab-Taste den Fokus erhalten, wenn das Widget geöffnet ist. Die React-Datumsauswahl aktiviert derzeit nicht die Tastaturnavigation zum Link „Heute“.
Barrierefreiheit
Diese Komponente wurde validiert, um die Richtlinien für Barrierefreiheit WCAG 2.2 AA in der Standardbasiskonfiguration zu erfüllen. Dazu wird u. a. Folgendes sichergestellt:
- Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1.
- Nicht-textuelle Inhalte, die eine Bedeutung vermitteln sollen (z. B. Symbole und Fokusanzeigen), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf.
- Das jeweilige Element kann sowohl über eine Tastatur als auch über eine Maus bedient werden.
- Der Zugriff auf die Inhalte erfolgt über Screenreader wie JAWS oder VoiceOver.
Die Konformität mit den Richtlinien für Barrierefreiheit hängt letztendlich davon ab, wie diese Komponente implementiert und angepasst wird. Vom Autor des Inhalts vorgenommene Änderungen können sich auf die Barrierefreiheit auswirken. Details zu unserem Modell der geteilten Verantwortung finden Sie in unserer Erklärung zur Barrierefreiheit von Jutro.
Achten Sie bei der Verwendung dieser Komponente darauf, dass die Beschriftungen eindeutig angeben, welche Daten ein Benutzer eingeben oder auswählen muss.
Code
<DateRangePicker
label={{ start: 'Choose start date', end: 'Choose end date' }}
onChange={(event, value) =>
console.log('The dates chosen are', value.start, value.end)
}
/>
Importanweisung
import { DateRangePicker } from '@jutro/components';
Komponentenvertrag
Vergewissern Sie sich, dass Sie die API-Oberfläche der Design System-Komponenten und die damit verbundenen Auswirkungen und Kompromisse verstehen. Erfahren Sie mehr in unserer Einführung zur Komponenten-API.
Eigenschaften
labelerforderlich
Typ{ start: IntlMessageShape, end: IntlMessageShape }
BeschreibungLabels associated with the input fields, also passed as a default value to 'aria-label'. Must be in object format: start - an IntlMessageShape label for the start date picker, end - an IntlMessageShape label for the end date picker.
className
BeschreibungCSS class name for this component.
disabled
BeschreibungIf set to true, the component is rendered in disabled state.
Typ'vshort' | 'short' | 'long' | 'abbreviated' | 'full'
BeschreibungThe date format. This value along with locale will determine how the date is displayed to the user.
displayOnly
BeschreibungIf 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
Typ{ start: boolean, end: boolean }
BeschreibungIf set to true, the label is not visible. Must be in object format: start - Boolean value for the start date picker, end - Boolean value for the end date picker.
BeschreibungIf set to true, hides the Today button in the calendar.
initialValue
Typ{start: { day: number, month: number, year: number }, end: { day: number, month: number, year: number }}
BeschreibungInitial value of the input. Must be in object format: start - initial value for the start date picker, end - initial value for the end date picker. The start and end initial values must be in object format with day, month and year property where the month is indexed from 1. If the value prop is specified along with this prop, this prop's value is discarded.
labelPosition
BeschreibungAllows selection of label position.
maxDate
Typ{ day: number, month: number, year: number }
BeschreibungMaximum allowed date value.
minDate
Typ{ day: number, month: number, year: number }
BeschreibungMinimum allowed date value.
onBlur
Typfunction (FocusEvent<HTMLInputElement>)
BeschreibungA callback called after the component is focused.
onChange
Typfunction (React.ChangeEvent<HTMLInputElement>, {start: { day: number, month: number, year: number }, end: { day: number, month: number, year: number }})
BeschreibungCallback invoked when component value is changed.
onFocus
Typfunction (FocusEvent<HTMLInputElement>)
BeschreibungA callback called after the component is focused.
placeholder
BeschreibungPlaceholder to display on an empty component. Must be in object format: start - an IntlMessageShape placeholder for the start date picker, end - an IntlMessageShape placeholder for the end date picker. If the value prop is specified along with this prop, this prop's value is discarded.
readOnly
BeschreibungIf set to true, component is rendered in a read-only state. For values in plain text, consider using displayOnly.
required
BeschreibungIf set to true, the component is rendered as required and the label will display an asterisk.
secondaryLabel
Typ{ start: IntlMessageShape, end: IntlMessageShape }
BeschreibungSecondary label text to display. Must be in object format: start - an IntlMessageShape secondary label for the start date picker, end - an IntlMessageShape secondary label for the end date picker.
stateMessages
BeschreibungAn object with a list of error messages for the current state.
Typ{ text: intlMessageShape, trigger: string } | intlMessageShapetext
BeschreibungText to show tooltip content.
trigger
BeschreibungThe trigger to show the tooltip.
BeschreibungText to be displayed in the tooltip or tooltip object that includes: text - to show tooltip content, trigger - to set tooltip trigger.
value
Typ{start: { day: number, month: number, year: number }, end: { day: number, month: number, year: number }}
BeschreibungValue of the input. Takes precedence over initialValue. Must be in object format: start - the value for the start date picker, end - the value for the end date picker. Value must be in object format with day, month and year property where the month is indexed from 1. If this prop is passed, the component works in controlled mode and its value will change only if this prop changes.
Benutzerdefinierte Verhalten
Die Komponente DateRangePicker stellt über die Eigenschaft onChange einen Validierungsmechanismus bereit. Diese Eigenschaft unterstützt die Parameter event, value und errorCode. Diese enthalten separate start- und end-Eigenschaften, um zu unterscheiden, auf welche Eingabe verwiesen wird. Folgende errorCode-Werte sind möglich:
INVALID_DATE: Das Datumsformat ist falsch, z. B. wenn ein Monatswert größer als 12 eingegeben wird.
MIN_EXCEEDED: Der Eingabewert ist kleiner als der durch die Eigenschaft minDate festgelegte Mindestwert.
MAX_EXCEEDED: Der Eingabewert ist größer als der durch die Eigenschaft maxDate festgelegte Höchstwert.
Unter Beispiel für Validierung können Sie sehen, wie die Validierung funktioniert.
Mit der Eigenschaft displayFormat kann das Format der Datumsangaben geändert werden, wenn die Eigenschaft readOnly oder displayOnly verwendet wird. Es gibt fünf verschiedene Alternativen:
vshort: 20.6.2024
short: 20. Jun 2024
long: 20. Juni 2024
abbreviated: Do, 20. Juni 2024
full: Donnerstag, 20. Juni 2024
Hooks
Für DateRangePicker sind keine Hooks verfügbar.
Übersetzungsschlüssel
Die DateRangePicker-Komponente definiert zwei Übersetzungsschlüssel für aria-label:
| Schlüssel | Verwendet für |
|---|
| jutro-components.fields.DatePicker.chooseStartDate | aria-label für Startdatum |
| jutro-components.fields.DatePicker.chooseEndDate | aria-label für Enddatum |
DateRangePicker übernimmt auch die folgenden Übersetzungen:
| Schlüssel | Verwendet für |
|---|
| jutro-components.DateCalendar.previousMonth | Der Beschriftungstext für die Schaltfläche Vorheriger Monat. |
| jutro-components.DateCalendar.nextMonth | Der Beschriftungstext für die Schaltfläche zum nächsten Monat. |
| jutro-components.DateCalendar.currentDay | Der Beschriftungstext für die Schaltfläche zum aktuellen Datum. |
| jutro-components.DateCalendar.currentDayAriaLabel | Der Beschriftungstext für die Schaltfläche, um das aktuelle Datum als Wert auszuwählen. |
| jutro-components.MonthSkeleton.previousYear | Der Beschriftungstext für das vorherige Jahr. |
| jutro-components.MonthSkeleton.nextYear | Der Beschriftungstext für die Schaltfläche zum nächsten Jahr. |
| jutro-components.MonthSkeleton.currentMonth | Der Beschriftungstext für die Schaltfläche zum aktuellen Monat. |
| jutro-components.MonthSkeleton.currentMonthAriaLabel | Der Beschriftungstext für die Schaltfläche, um den aktuellen Monat als Wert auszuwählen. |
| jutro-components.YearCalendar.previousYears | Beschriftungstext für die Schaltfläche für den vorherigen Jahresbereich. |
| jutro-components.YearCalendar.currentYear | Die Beschriftung für die Schaltfläche „Zum aktuellen Jahr gehen“. |
| jutro-components.YearCalendar.currentYearAriaLabel | Beschriftungstext für die Schaltfläche, um das aktuelle Jahr als Wert auszuwählen. |
Escape Hatches
Weitere Informationen finden Sie in unserer Dokumentation über Escape Hatches.
Verwenden Sie die ältere Version dieser Komponente?
- Um die entsprechende Dokumentation für die alte Komponente anzuzeigen, wechseln Sie zu einer Version der Dokumentation, die älter als 10.5.x ist.
- Die ältere Komponente ist auch in Storybook verfügbar:
Beispiele
Im Abschnitt Verwendung finden Sie Informationen zum korrekten Design einer Datumsbereichsauswahl und den verschiedenen von Guidewire bereitgestellten Konfigurationsoptionen.
Beispiel für einen einfachen Datumsbereich
Sie können eine Eingabe hinzufügen, mit der ein Benutzer einen Datumsbereich entweder manuell oder über modale Kalenderfenster eingeben kann.
<DateRangePicker
label={{ start: 'Choose start date', end: 'Choose end date' }}
onChange={(event, value) =>
console.log('The dates chosen are', value.start, value.end)
}
/>
Beispiel für Min/Max
Sie können den Datumsbereich begrenzen, der vom Benutzer ausgewählt werden kann.
Note: Dies beinhaltet keine Validierung, sondern schränkt nur die Optionen im modalen Kalenderfenster ein. Benutzer können ein beliebiges Datum in der Eingabe eingeben.
<DateRangePicker
label={{ start: 'Choose start date', end: 'Choose end date' }}
minDate={{ day: 1, month: 1, year: 2024 }}
maxDate={{ day: 31, month: 12, year: 2024 }}
/>
Beispiel für Validierung
Mit der Eigenschaft onChange kann eine Funktion aufgerufen werden, die stateMessages aktualisiert, um für den Benutzer Fehler anzuzeigen. Im folgenden Beispiel werden Fehler für ungültige Daten oder Daten angezeigt, die nicht im Jahr 2024 liegen.
Note: Wie im vorherigen Beispiel erwähnt, können Benutzer unabhängig von den Eigenschaften minDate und maxDate ein beliebiges Datum eingeben.
import React, { useState } from 'react';
import { DateRangePicker } from '@jutro/components';
export function DateRangePickerError() {
const [stateMessages, setStateMessages] = useState({});
const parseErrorCode = (sideErrorObject) => {
let errorCode = sideErrorObject.errorCode;
if (errorCode === 'INVALID_DATE') {
return { error: ['Please enter a valid date.'] };
}
if (errorCode === 'MIN_EXCEEDED' || errorCode === 'MAX_EXCEEDED') {
return { error: ['Please enter a valid date.'] };
}
};
const handleChange = (event, value, errorObject) => {
let parsedMessages: {
start?: { error: string[] };
end?: { error: string[] };
} = {};
let start_error = errorObject?.start;
if (start_error) {
parsedMessages.start = parseErrorCode(start_error);
}
let end_error = errorObject?.end;
if (end_error) {
parsedMessages.end = parseErrorCode(end_error);
}
console.log(parsedMessages);
setStateMessages(parsedMessages);
};
return (
<DateRangePicker
label={{ start: 'Choose start date', end: 'Choose end date' }}
minDate={{ day: 1, month: 1, year: 2024 }}
maxDate={{ day: 31, month: 12, year: 2024 }}
onChange={handleChange}
stateMessages={stateMessages}
/>
);
}
Änderungsprotokoll
10.13.0
Für die DateRangePicker-Komponente wurde ein Importpfad aus @jutro/components hinzugefügt.
Der alte Importpfad aus @jutro/components/new wird in einer künftigen Hauptversion entfernt.
Benutzern wird empfohlen, den folgenden Befehl auszuführen, um einen Codemod anzuwenden und die Importpfade in ihrem Code zu aktualisieren.
jutro codemod:apply --name=MigrateDateRangePickerImportFromNew
Weitere Informationen zu Jutro-Codemods finden Sie in der Codemods-Dokumentation.
10.5.0
Es wurde die neue Komponente @jutro/components/new/DateRangePicker eingeführt, die DateRangeField ersetzt.
DateRangeField kann weiterhin aus @jutro/components/DateRangeField importiert werden, allerdings erhalten Sie eine Warnung, dass diese Aktion abgekündigt wurde.