import { ButtonVariant } from '../button/button'; import { IxButtonComponent } from '../button/button-component'; import { IxDatePickerComponent } from '../date-picker/date-picker-component'; import type { DateDropdownOption, DateRangeChangeEvent } from './date-dropdown.types'; export declare class DateDropdown implements Omit, Omit { hostElement: HTMLIxDateDropdownElement; /** * Disable the button that opens the dropdown containing the date picker. */ disabled: boolean; /** * Date format string. * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens. */ format: string; /** * If true disables date range selection (from/to). */ singleSelection: boolean; /** * Picker date. If the picker is in range mode this property is the start date. * If set to `null` no default start date will be pre-selected. * * Format is based on `format` */ from: string; /** * Picker date. If the picker is in range mode this property is the end date. * If the picker is not in range mode leave this value `null` * * Format is based on `format` */ to: string; /** * The earliest date that can be selected by the date picker. * If not set there will be no restriction. */ minDate: string; /** * The latest date that can be selected by the date picker. * If not set there will be no restriction. */ maxDate: string; /** * Used to set the initial select date range as well as the button name, * if not set or no according date range label is found, nothing will be selected */ dateRangeId: string; /** * Button variant */ variant: ButtonVariant; /** * Loading button */ loading: boolean; /** * Shows week numbers displayed on the left side of the date picker * * @since 3.0.0 */ showWeekNumbers: boolean; /** * ARIA label for the dropdown * Will be set as aria-label on the nested HTML button element that will trigger the dropdown */ ariaLabelDropdownButton?: string; onDateRangeIdChange(): void; /** * Controls whether custom date range selection is disabled in the component. * When set to 'false', the user can select a custom date range using the date picker. * When set to 'true', only predefined time date ranges are available for selection. */ customRangeDisabled: boolean; /** * An array of predefined date range options for the date picker. * Each option is an object with a label describing the range and a function * that returns the start and end dates of the range as a DateRangeOption object. * * Example format: * { * id: 'some unique id', * label: 'Name of the range', * from: undefined, to: '2023/03/29' * }, * // ... other predefined date range options ... */ dateRangeOptions: DateDropdownOption[]; onDateRangeOptionsChange(): void; /** * Locale identifier (e.g. 'en' or 'de'). */ locale?: string; /** * The index of which day to start the week on, based on the Locale#weekdays array. * E.g. if the locale is en-us, weekStartIndex = 1 results in starting the week on monday. */ weekStartIndex: number; /** * Text for custom dropdown item. Will be used for translation. */ i18nCustomItem: string; /** * Text for the done button. Will be used for translation. */ i18nDone: string; /** * Text for the done button. Will be used for translation. */ i18nNoRange: string; /** @internal */ today: string; /** * Enable Popover API rendering for dropdown. * * @default false * @since 4.3.0 */ enableTopLayer: boolean; /** * EventEmitter for date range change events. * * This event is emitted when the date range changes within the component. * The event payload contains information about the selected date range. */ private readonly dateRangeChange; private selectedDateRangeId; private currentRangeValue?; private readonly triggerRef; onDisabledChange(): void; private datePickerTouched; componentWillLoad(): void; /** * Retrieves the currently selected date range from the component. * This method returns the selected date range as a `DateChangeEvent` object. */ getDateRange(): Promise; private initialize; private updateCurrentDate; private onDateSelect; private onRangeListSelect; private setDateRangeSelection; private closeDropdown; private getButtonLabel; render(): any; }