Beispiele
Im Abschnitt Verwendung finden Sie Informationen zum korrekten Design einer Datumsbereichsauswahl und den verschiedenen von Guidewire bereitgestellten Konfigurationsoptionen.
Einfaches Beispiel
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 in dem modalen Kalenderfenster ein. Benutzer können ein beliebiges Datum in die 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 dem 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/new';
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}
/>
);
}
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 die Art des auszuwählenden Jahres 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 Feldes.
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 Status.
Interaktionen
Maus
Benutzer können mit diesem Element interagieren, indem sie auf den Bereich innerhalb des Rahmens klicken.

Tastatur
Die Datumsauswahl wird mit Spacebar aus- und eingeklappt. Die Benutzer navigieren mit den Pfeiltasten durch die Optionen und wählen mit der Taste Spacebar oder Enter 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 fokussiert werden, 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. Über dieses Eingabefeld kann das Datum manuell eingegeben werden. Solange das vorausgefüllten Datum fokussiert wird, ist auch ein Kalender-Widget verfügbar. Die Benutzer können den Fokus durch Drücken der Abwärtspfeiltaste 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“ sind über die Tab-Taste fokussierbar, wenn das Widget geöffnet ist. Die React-Datumsauswahl aktiviert derzeit nicht die Tastaturnavigation zum Link „Heute“.
Barrierefreiheit
Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1 gemäß den Anforderungen der WCAG 2.1 AA. Nicht-textuelle Inhalte, die eine Bedeutung vermitteln müssen (z. B. Symbole und Sichtbarkeit des Tastaturfokus), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf. Alle Inhalte sind bis einschließlich 400 % sichtbar und funktionsfähig, ohne dass ein Scrollen in zwei Dimensionen erforderlich ist.
Diese Komponente wurde validiert, um die Zugänglichkeitsrichtlinien WCAG 2.1 AA zu erfüllen. Vom Autor des Inhalts vorgenommene Änderungen können sich jedoch auf die Konformität mit der Barrierefreiheit auswirken.
Achten Sie bei der Verwendung dieser Komponente darauf, dass die Beschriftungen eindeutig angeben, welches Datum 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/new';
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 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 Verhaltensweisen
Die Komponente DateRangePicker stellt über die Eigenschaft onChange einen Prüfmechanismus bereit. Diese Eigenschaft akzeptiert 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.
Sehen Sie sich das Prüfbeispiel an, um zu sehen, wie die Prüfung 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 Komponente DateRangePicker definiert zwei Übersetzungsschlüssel für die aria-label:
| Schlüssel | Verwendet für |
|---|
| jutro-components.fields.DatePicker.chooseStartDate | Startdatum aria-label |
| jutro-components.fields.DatePicker.chooseEndDate | Enddatum aria-label |
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 das aktuelle Jahr als Wert auszuwählen. |
| jutro-components.YearCalendar.previousYears | Die Beschriftung 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 | Die Beschriftung für die Schaltfläche zur Auswahl des aktuellen Jahres als Wert. |
Escape Hatches
Weitere Informationen finden Sie in unserer Dokumentation über Escape-Hatches.
Verwenden Sie die ältere Version dieser Komponente?
- Um die Dokumente für die ältere Komponente anzuzeigen, wechseln Sie zu einer Version der Dokumente, die älter als 10.5.x ist.
- Die ältere Komponente ist auch in Storybook verfügbar: