import { EventEmitter } from '../../stencil-public-runtime'; import { FormFieldValidationRule } from '../../helpers/validator/rules/form-field-validation-rule'; import { DatePickerModeType, DatePickerMonthYearTypes, DatePickerValueType, DropdownConfigForDatePicker } from './types'; import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core'; import { FormFieldControllerSlimmer } from '../../helpers/slimmers/form-field-controller-slimmer'; import { VegaDatePickerRenderer } from './slimmers/renderers/vega-date-picker-renderer'; import { VegaDatePickerSingleInputRenderer } from './slimmers/renderers/vega-date-picker-single-input-renderer'; import { VegaDatePickerRangeInputRenderer } from './slimmers/renderers/vega-date-picker-range-input-renderer'; import { VegaDatePickerCalendarRenderer } from './slimmers/renderers/vega-date-picker-calendar-renderer'; import { VegaDatePickerValueController } from './slimmers/controllers/vega-date-picker-value-controller'; import { VegaDatePickerFormatController } from './slimmers/controllers/vega-date-picker-format-controller'; import { VegaDatePickerKeyboardController } from './slimmers/controllers/vega-date-picker-keyboard-controller'; import { EventEmitSlimmerBase } from '../../helpers/event-manager/slimmers/event-emit-slimmer'; import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer'; import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics'; import { TranslationSlimmer } from '../../helpers/slimmers/translation'; import { VegaDatePickerCalendarOpenStateController } from './slimmers/controllers/vega-date-picker-calendar-open-state-controller'; import { DisabledDate } from '../vega-calendar/types'; /** * @vegaVersion 1.3.0 */ export declare class VegaDatePicker { protected readonly globalSlimmers: GlobalSlimmers; protected translationSlimmer: TranslationSlimmer; protected calendarOpenStateController: VegaDatePickerCalendarOpenStateController; protected vegaDatePickerValueController: VegaDatePickerValueController; protected vegaDatePickerFormatController: VegaDatePickerFormatController; protected startInputFormatController: VegaDatePickerFormatController; protected endInputFormatController: VegaDatePickerFormatController; protected vegaDatePickerKeyboardController: VegaDatePickerKeyboardController; protected vegaDatePickerRenderer: VegaDatePickerRenderer; protected vegaDatePickerSingleInputRenderer: VegaDatePickerSingleInputRenderer; protected vegaDatePickerRangeInputRenderer: VegaDatePickerRangeInputRenderer; protected vegaDatePickerCalendarRenderer: VegaDatePickerCalendarRenderer; protected formFieldController: FormFieldControllerSlimmer; protected changeEventEmitter: EventEmitSlimmerBase; protected monthYearChangeEventEmitter: EventEmitSlimmerBase; protected inputEventPrevent: ChildNodesEventPreventSlimmer; protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer; host: HTMLVegaDatePickerElement; isMobileDevice: boolean; isCalendarShow: boolean; watchIsCalendarShow(): void; /** * Specifies the selection mode of the date picker. * * - Use `single` to allow selecting a single date. * - Use `range` to allow selecting a date range. * * @vegaVersion 1.3.0 */ mode: DatePickerModeType; /** Update datePicker settings property of mode is changed */ watchMode(): void; /** * Specifies the selected date or date range in the date picker. * * @vegaVersion 1.3.0 */ value: DatePickerValueType; watchValue(newValue: DatePickerValueType, oldValue: DatePickerValueType): void; /** * Specifies the label or title for the date picker field. * * It provides descriptive text that helps identify the * purpose or content expected in the date picker field. * * @vegaVersion 1.3.0 */ label: string; /** * Determines whether the date picker field is required. * * Specifies whether a date or range must be selected for * the date picker to pass form validation. * * @vegaVersion 1.3.0 */ required: boolean; /** * Indicates whether the field should be presented as optional. * * This property only takes effect when `required` is `false`. * When `true`, an "optional" label is displayed next to the field label. * * @default false * @vegaVersion 2.89.0 */ optional: boolean; /** * Specifies the validation status of the date picker component. * * @vegaVersion 1.3.0 */ isValid: boolean | null; /** * Determines whether automatic validation should be implemented * when a date or range is selected. * * @vegaVersion 1.3.0 */ autoValidation: boolean; /** * Specifies the desired date format. * * @vegaVersion 1.3.0 */ format: string; /** * It is decorated with the `@MapToComponentMethod` decorator, * which indicates that this method should be mapped to a component method called 'format'. * * @param {string} format - The value of the format. */ watchFormat(format: string): void; /** * Specifies the size of the date picker field. * * @vegaVersion 1.3.0 */ size: 'default' | 'small'; /** * Specifies custom validation rules for the date picker field. * * @vegaVersion 1.3.0 */ validationRules: FormFieldValidationRule[]; watchValidationRules(): void; /** * Specifies the minimum selectable date in the date picker. * * @vegaVersion 1.3.0 */ minDate: string; watchMinDate(value: string): void; /** * Specifies the maximum selectable date in the date picker. * * @vegaVersion 1.3.0 */ maxDate: string; watchMaxDate(value: string): void; /** * Specifies a placeholder string that displays as a temporary hint * or example inside the date picker field. * * It indicates the expected format or pattern of the date picker field. * * @vegaVersion 1.3.0 */ placeholder: string | string[]; /** * Specifies whether to display the clear button when the calendar is shown. * * @vegaVersion 1.3.0 */ clearButton: boolean; /** * Specifies whether the date picker field is set to read-only. * * If set to `true`, keyboards and touch devices will skip * interacting with this element. * * @vegaVersion 1.3.0 */ readOnly: boolean; /** * Specifies whether the user is allowed to change either the * start date or end date of an already selected date range * without completely resetting the selected range. * * @vegaVersion 1.3.0 */ allowRepick: boolean; /** Update property of allowRepick when it is changed */ watchAllowRepick(): void; /** * Specifies the configuration for the calendar dropdown * associated with the date picker. * * @vegaVersion 1.5.0 */ dropdownConfig: DropdownConfigForDatePicker; /** * Determines whether the clear icon should be displayed or hidden. * * @vegaVersion 2.33.0 */ showClearIcon: boolean; /** * Determines whether to show months and years dropdown in date picker * If set to true, date picker calendar will have months and years dropdown * * @vegaVersion 2.36.0 */ showYearMonthDropdowns: boolean; watchShowYearMonthDropdowns(): void; /** * Specifies whether the date picker field is disabled. * * @vegaVersion 1.3.0 */ disabled: boolean; watchDisabled(): void; /** * Specifies the IANA time zone or Etc/GMT±n format. * It accepts values such as "America/New_York" or "Etc/GMT+12". * For a complete list of IANA time zones, refer to Time Zone DB(https://timezonedb.com/time-zones). * If not configured, the time zone will default to the system's time zone. * * @vegaVersion 2.35.0 */ timezone: string; /** * Specifies a predicate function that determines whether a given date in the date picker should be disabled (non-interactive). * * The function is called for each date cell before rendering. * * Return `true` to disable the cell, or false to keep it selectable. * Default behavior: always returns `false` (no cells are disabled). * * @param date - The `Date` object for the cell being evaluated. * @returns `true` if the cell should be disabled; otherwise `false`. * @vegaVersion 2.60.0 */ isDateDisabled: DisabledDate; /** * An event emitter notifying the change of the value in the date picker, * whether triggered programmatically or through user interaction. * * @vegaVersion 1.3.0 */ vegaChange: EventEmitter; /** * An event emitter notifying the change of the value in the date picker, * whether triggered programmatically or through user interaction. * @eventSemantics namespace:native * @vegaVersion 2.0.0 */ change: EventEmitter; /** * An event emitter notifying the month and year change when the navigation buttons are clicked or the month and year dropdowns are selected in the date picker, * whether triggered programmatically or through user interaction. * * @vegaVersion 2.61.0 */ vegaMonthYearChange: EventEmitter; /** * An event emitter notifying the month and year change when the navigation buttons are clicked or the month and year dropdowns are selected in the date picker, * @eventSemantics namespace:native * @vegaVersion 2.61.0 */ monthYearChange: EventEmitter; /** * Invoke this method to close the calendar dropdown * associated with the date picker. * * @see{module:vega-date-picker-click-call-do-open-close} * @vegaVersion 1.3.0 */ doClose(): Promise; /** * Invoke this method to open the calendar dropdown * associated with the date picker. * * @see{module:vega-date-picker-click-call-do-open-close} * @vegaVersion 1.3.0 */ doOpen(): Promise; render(): VegaDatePicker; }