@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
112 lines • 4.13 kB
TypeScript
import { CalendarProps } from '../calendar/interfaces';
import { BaseComponentProps } from '../internal/base-component';
import { ExpandToViewport } from '../internal/components/dropdown/interfaces';
import { FormFieldValidationControlProps } from '../internal/context/form-field-context';
import { NonCancelableEventHandler } from '../internal/events';
import { DateFormat, DateGranularity, EditableDateFormat } from '../internal/utils/date-time/interfaces';
export interface DatePickerProps extends BaseComponentProps, FormFieldValidationControlProps, ExpandToViewport, CalendarProps {
/**
* Specifies the placeholder text rendered when the value is an empty string.
*/
placeholder?: string;
/**
* Specifies a function that generates the `aria-label` for the 'open calendar' button. The `selectedDate` parameter is
* a human-readable localised string representing the current value of the input.
* (for example, ``selectedDate => 'Choose Date' + (selectedDate ? `, selected date is ${selectedDate}` : '')``)
*/
openCalendarAriaLabel?: DatePickerProps.OpenCalendarAriaLabel;
/**
* Specifies the name of the control used in HTML forms.
*/
name?: string;
/**
* Specifies if the control is disabled, which prevents the
* user from modifying the value and prevents the value from
* being included in a form submission. A disabled control can't
* receive focus.
*/
disabled?: boolean;
/**
* Specifies if the control is read-only, which prevents the
* user from modifying the value but includes it in a form
* submission. A read-only control can receive focus.
*
* Do not use read-only inputs outside of a form.
*/
readOnly?: boolean;
/**
* Indicates whether the control should be focused as
* soon as the page loads, which enables the user to
* start typing without having to manually focus the control. Don't
* use this option on pages where the control may be
* scrolled out of the viewport.
*/
autoFocus?: boolean;
/**
* Adds an `aria-label` to the native control.
*
* Use this if you don't have a visible label for this control.
*/
ariaLabel?: string;
/**
* Specifies whether to add `aria-required` to the native control.
*/
ariaRequired?: boolean;
/**
* The format as it is displayed. It can take the following values:
* * `iso`: ISO 8601 format without time, e.g.: 2024-01-30 (or 2024-01)
* * `long-localized`: a more human-readable, localized format, e.g.: January 30, 2024 (or January, 2024)
* * `slashed`: similar to ISO 8601 but with '/' in place of '-'. e.g.: 2024/01/30 (or 2024/01)
*
* @default 'slashed'
*/
format?: DatePickerProps.Format;
/**
* Specifies the date format to use when the format is 'long-localized' and the user needs to edit the date.
*
* The format of the input as it is being interacted with. It can take the following values:
* * `iso`: ISO 8601 format without time, e.g.: 2024-01-30 (or 2024-01)
* * `slashed`: similar to ISO 8601 but with '/' in place of '-'. e.g.: 2024/01/30 (or 2024/01)
*
* @default 'slashed'.
*/
inputFormat?: DatePickerProps.InputFormat;
/**
* Called when input focus is moved to the UI control.
*/
onFocus?: NonCancelableEventHandler<null>;
/**
* Called when input focus is removed from the UI control.
*/
onBlur?: NonCancelableEventHandler<null>;
/**
* An object containing all the necessary localized strings required by
* the component.
* @i18n
*/
i18nStrings?: DatePickerProps.I18nStrings;
}
export declare namespace DatePickerProps {
interface ChangeDetail {
/**
* The new value of this date-picker.
*/
value: string;
}
interface IsDateEnabledFunction {
(date: Date): boolean;
}
interface OpenCalendarAriaLabel {
(selectedDate: string | null): string;
}
interface Ref {
/**
* Sets the browser focus on the UI control
*/
focus(): void;
}
type I18nStrings = CalendarProps.I18nStrings;
type Granularity = DateGranularity;
type Format = DateFormat;
type InputFormat = EditableDateFormat;
}