import { AnimationEvent } from '@angular/animations'; import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, QueryList, Renderer2, TemplateRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { OverlayService, PrimeNGConfig, PrimeTemplate } from 'primeng/api'; import { ConnectedOverlayScrollHandler } from 'primeng/dom'; import { Subscription } from 'rxjs'; import { Nullable, VoidListener } from 'primeng/ts-helpers'; import { NavigationState, CalendarResponsiveOptions, CalendarTypeView, LocaleSettings, Month, CalendarMonthChangeEvent, CalendarYearChangeEvent } from './calendar.interface'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "primeng/button"; import * as i3 from "primeng/api"; import * as i4 from "primeng/ripple"; import * as i5 from "primeng/icons/chevronleft"; import * as i6 from "primeng/icons/chevronright"; import * as i7 from "primeng/icons/chevronup"; import * as i8 from "primeng/icons/chevrondown"; import * as i9 from "primeng/icons/times"; import * as i10 from "primeng/icons/calendar"; import * as i11 from "primeng/autofocus"; export declare const CALENDAR_VALUE_ACCESSOR: any; /** * Calendar also known as DatePicker, is a form component to work with dates. * @group Components */ export declare class Calendar implements OnInit, OnDestroy, ControlValueAccessor { private document; el: ElementRef; renderer: Renderer2; cd: ChangeDetectorRef; private zone; private config; overlayService: OverlayService; iconDisplay: 'input' | 'button'; /** * Inline style of the component. * @group Props */ style: { [klass: string]: any; } | null | undefined; /** * Style class of the component. * @group Props */ styleClass: string | undefined; /** * Inline style of the input field. * @group Props */ inputStyle: { [klass: string]: any; } | null | undefined; /** * Identifier of the focus input to match a label defined for the component. * @group Props */ inputId: string | undefined; /** * Name of the input element. * @group Props */ name: string | undefined; /** * Style class of the input field. * @group Props */ inputStyleClass: string | undefined; /** * Placeholder text for the input. * @group Props */ placeholder: string | undefined; /** * Establishes relationships between the component and label(s) where its value should be one or more element IDs. * @group Props */ ariaLabelledBy: string | undefined; /** * Defines a string that labels the input for accessibility. * @group Props */ ariaLabel: string | undefined; /** * Defines a string that labels the icon button for accessibility. * @group Props */ iconAriaLabel: string | undefined; /** * When specified, disables the component. * @group Props */ disabled: boolean | undefined; /** * Format of the date which can also be defined at locale settings. * @group Props */ dateFormat: string | undefined; /** * Separator for multiple selection mode. * @group Props */ multipleSeparator: string; /** * Separator for joining start and end dates on range selection mode. * @group Props */ rangeSeparator: string; /** * When enabled, displays the calendar as inline. Default is false for popup mode. * @group Props */ inline: boolean; /** * Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option. * @group Props */ showOtherMonths: boolean; /** * Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true. * @group Props */ selectOtherMonths: boolean | undefined; /** * When enabled, displays a button with icon next to input. * @group Props */ showIcon: boolean | undefined; /** * Icon of the calendar button. * @group Props */ icon: string | undefined; /** * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having#mydiv as variable name). * @group Props */ appendTo: HTMLElement | ElementRef | TemplateRef | string | null | undefined | any; /** * When specified, prevents entering the date manually with keyboard. * @group Props */ readonlyInput: boolean | undefined; /** * The cutoff year for determining the century for a date. * @group Props */ shortYearCutoff: any; /** * Whether the month should be rendered as a dropdown instead of text. * @group Props * @deprecated Navigator is always on. */ monthNavigator: boolean | undefined; /** * Whether the year should be rendered as a dropdown instead of text. * @group Props * @deprecated Navigator is always on. */ yearNavigator: boolean | undefined; /** * Specifies 12 or 24 hour format. * @group Props */ hourFormat: string; /** * Whether to display timepicker only. * @group Props */ timeOnly: boolean | undefined; /** * Hours to change per step. * @group Props */ stepHour: number; /** * Minutes to change per step. * @group Props */ stepMinute: number; /** * Seconds to change per step. * @group Props */ stepSecond: number; /** * Whether to show the seconds in time picker. * @group Props */ showSeconds: boolean; /** * When present, it specifies that an input field must be filled out before submitting the form. * @group Props */ required: boolean | undefined; /** * When disabled, datepicker will not be visible with input focus. * @group Props */ showOnFocus: boolean; /** * When enabled, calendar will show week numbers. * @group Props */ showWeek: boolean; /** * When enabled, calendar will start week numbers from first day of the year. * @group Props */ startWeekFromFirstDayOfYear: boolean; /** * When enabled, a clear icon is displayed to clear the value. * @group Props */ showClear: boolean; /** * Type of the value to write back to ngModel, default is date and alternative is string. * @group Props */ dataType: string; /** * Defines the quantity of the selection, valid values are "single", "multiple" and "range". * @group Props */ selectionMode: 'single' | 'multiple' | 'range' | undefined; /** * Maximum number of selectable dates in multiple mode. * @group Props */ maxDateCount: number | undefined; /** * Whether to display today and clear buttons at the footer * @group Props */ showButtonBar: boolean | undefined; /** * Style class of the today button. * @group Props */ todayButtonStyleClass: string; /** * Style class of the clear button. * @group Props */ clearButtonStyleClass: string; /** * When present, it specifies that the component should automatically get focus on load. * @group Props */ autofocus: boolean | undefined; /** * Whether to automatically manage layering. * @group Props */ autoZIndex: boolean; /** * Base zIndex value to use in layering. * @group Props */ baseZIndex: number; /** * Style class of the datetimepicker container element. * @group Props */ panelStyleClass: string | undefined; /** * Inline style of the datetimepicker container element. * @group Props */ panelStyle: any; /** * Keep invalid value when input blur. * @group Props */ keepInvalid: boolean; /** * Whether to hide the overlay on date selection. * @group Props */ hideOnDateTimeSelect: boolean; /** * When enabled, calendar overlay is displayed as optimized for touch devices. * @group Props */ touchUI: boolean | undefined; /** * Separator of time selector. * @group Props */ timeSeparator: string; /** * When enabled, can only focus on elements inside the calendar. * @group Props */ focusTrap: boolean; /** * Transition options of the show animation. * @group Props */ showTransitionOptions: string; /** * Transition options of the hide animation. * @group Props */ hideTransitionOptions: string; /** * Index of the element in tabbing order. * @group Props */ tabindex: number | undefined; /** * Specifies the input variant of the component. * @group Props */ variant: 'filled' | 'outlined'; /** * The minimum selectable date. * @group Props */ get minDate(): Date | undefined | null; set minDate(date: Date | undefined | null); /** * The maximum selectable date. * @group Props */ get maxDate(): Date | undefined | null; set maxDate(date: Date | undefined | null); /** * Array with dates that should be disabled (not selectable). * @group Props */ get disabledDates(): Date[]; set disabledDates(disabledDates: Date[]); /** * Array with weekday numbers that should be disabled (not selectable). * @group Props */ get disabledDays(): number[]; set disabledDays(disabledDays: number[]); /** * The range of years displayed in the year drop-down in (nnnn:nnnn) format such as (2000:2020). * @group Props * @deprecated Years are based on decades by default. */ get yearRange(): string; set yearRange(yearRange: string); /** * Whether to display timepicker. * @group Props */ get showTime(): boolean; set showTime(showTime: boolean); /** * An array of options for responsive design. * @group Props */ get responsiveOptions(): CalendarResponsiveOptions[]; set responsiveOptions(responsiveOptions: CalendarResponsiveOptions[]); /** * Number of months to display. * @group Props */ get numberOfMonths(): number; set numberOfMonths(numberOfMonths: number); /** * Defines the first of the week for various date calculations. * @group Props */ get firstDayOfWeek(): number; set firstDayOfWeek(firstDayOfWeek: number); /** * Option to set calendar locale. * @group Props * @deprecated Locale property has no effect, use new i18n API instead. */ set locale(newLocale: LocaleSettings); /** * Type of view to display, valid values are "date" for datepicker and "month" for month picker. * @group Props */ get view(): CalendarTypeView; set view(view: CalendarTypeView); /** * Set the date to highlight on first opening if the field is blank. * @group Props */ get defaultDate(): Date; set defaultDate(defaultDate: Date); get inputClass(): { 'p-inputtext p-component': boolean; 'p-variant-filled': boolean; }; /** * Callback to invoke on focus of input field. * @param {Event} event - browser event. * @group Emits */ onFocus: EventEmitter; /** * Callback to invoke on blur of input field. * @param {Event} event - browser event. * @group Emits */ onBlur: EventEmitter; /** * Callback to invoke when date panel closed. * @param {Event} event - Mouse event * @group Emits */ onClose: EventEmitter; /** * Callback to invoke on date select. * @param {Date} date - date value. * @group Emits */ onSelect: EventEmitter; /** * Callback to invoke when input field cleared. * @group Emits */ onClear: EventEmitter; /** * Callback to invoke when input field is being typed. * @param {Event} event - browser event * @group Emits */ onInput: EventEmitter; /** * Callback to invoke when today button is clicked. * @param {Date} date - today as a date instance. * @group Emits */ onTodayClick: EventEmitter; /** * Callback to invoke when clear button is clicked. * @param {Event} event - browser event. * @group Emits */ onClearClick: EventEmitter; /** * Callback to invoke when a month is changed using the navigators. * @param {CalendarMonthChangeEvent} event - custom month change event. * @group Emits */ onMonthChange: EventEmitter; /** * Callback to invoke when a year is changed using the navigators. * @param {CalendarYearChangeEvent} event - custom year change event. * @group Emits */ onYearChange: EventEmitter; /** * Callback to invoke when clicked outside of the date panel. * @group Emits */ onClickOutside: EventEmitter; /** * Callback to invoke when datepicker panel is shown. * @group Emits */ onShow: EventEmitter; templates: QueryList; containerViewChild: Nullable; inputfieldViewChild: Nullable; set content(content: ElementRef); contentViewChild: ElementRef; value: any; dates: Nullable; months: Month[]; weekDays: Nullable; currentMonth: number; currentYear: number; currentHour: Nullable; currentMinute: Nullable; currentSecond: Nullable; pm: Nullable; mask: Nullable; maskClickListener: VoidListener; overlay: Nullable; responsiveStyleElement: HTMLStyleElement | undefined | null; overlayVisible: Nullable; onModelChange: Function; onModelTouched: Function; calendarElement: Nullable; timePickerTimer: any; documentClickListener: VoidListener; animationEndListener: VoidListener; ticksTo1970: Nullable; yearOptions: Nullable; focus: Nullable; isKeydown: Nullable; filled: Nullable; inputFieldValue: Nullable; _minDate?: Date | null; _maxDate?: Date | null; _showTime: boolean; _yearRange: string; preventDocumentListener: Nullable; dateTemplate: Nullable>; headerTemplate: Nullable>; footerTemplate: Nullable>; disabledDateTemplate: Nullable>; decadeTemplate: Nullable>; previousIconTemplate: Nullable>; nextIconTemplate: Nullable>; triggerIconTemplate: Nullable>; clearIconTemplate: Nullable>; decrementIconTemplate: Nullable>; incrementIconTemplate: Nullable>; inputIconTemplate: Nullable>; _disabledDates: Array; _disabledDays: Array; selectElement: Nullable; todayElement: Nullable; focusElement: Nullable; scrollHandler: Nullable; documentResizeListener: VoidListener; navigationState: Nullable; isMonthNavigate: Nullable; initialized: Nullable; translationSubscription: Nullable; _locale: LocaleSettings; _responsiveOptions: CalendarResponsiveOptions[]; currentView: Nullable; attributeSelector: Nullable; panelId: Nullable; _numberOfMonths: number; _firstDayOfWeek: number; _view: CalendarTypeView; preventFocus: Nullable; _defaultDate: Date; _focusKey: Nullable; private window; get locale(): LocaleSettings; get iconButtonAriaLabel(): any; get prevIconAriaLabel(): any; get nextIconAriaLabel(): any; constructor(document: Document, el: ElementRef, renderer: Renderer2, cd: ChangeDetectorRef, zone: NgZone, config: PrimeNGConfig, overlayService: OverlayService); ngOnInit(): void; ngAfterContentInit(): void; ngAfterViewInit(): void; getTranslation(option: string): any; populateYearOptions(start: number, end: number): void; createWeekDays(): void; monthPickerValues(): any[]; yearPickerValues(): any[]; createMonths(month: number, year: number): void; getWeekNumber(date: Date): number; createMonth(month: number, year: number): Month; initTime(date: Date): void; navBackward(event: any): void; navForward(event: any): void; decrementYear(): void; decrementDecade(): void; incrementDecade(): void; incrementYear(): void; switchToMonthView(event: Event): void; switchToYearView(event: Event): void; onDateSelect(event: Event, dateMeta: any): void; shouldSelectDate(dateMeta: any): boolean; onMonthSelect(event: Event, index: number): void; onYearSelect(event: Event, year: number): void; updateInputfield(): void; formatDateTime(date: any): any; formatDateMetaToDate(dateMeta: any): Date; formatDateKey(date: Date): string; setCurrentHourPM(hours: number): void; setCurrentView(currentView: CalendarTypeView): void; selectDate(dateMeta: any): void; updateModel(value: any): void; getFirstDayOfMonthIndex(month: number, year: number): number; getDaysCountInMonth(month: number, year: number): number; getDaysCountInPrevMonth(month: number, year: number): number; getPreviousMonthAndYear(month: number, year: number): { month: any; year: any; }; getNextMonthAndYear(month: number, year: number): { month: any; year: any; }; getSundayIndex(): number; isSelected(dateMeta: any): boolean | undefined; isComparable(): boolean; isMonthSelected(month: number): boolean; isMonthDisabled(month: number, year?: number): boolean; isYearDisabled(year: number): boolean; isYearSelected(year: number): boolean; isDateEquals(value: any, dateMeta: any): boolean; isDateBetween(start: Date, end: Date, dateMeta: any): boolean; isSingleSelection(): boolean; isRangeSelection(): boolean; isMultipleSelection(): boolean; isToday(today: Date, day: number, month: number, year: number): boolean; isSelectable(day: any, month: any, year: any, otherMonth: any): boolean; isDateDisabled(day: number, month: number, year: number): boolean; isDayDisabled(day: number, month: number, year: number): boolean; onInputFocus(event: Event): void; onInputClick(): void; onInputBlur(event: Event): void; onButtonClick(event: Event, inputfield?: any): void; clear(): void; onOverlayClick(event: Event): void; getMonthName(index: number): any; getYear(month: any): any; switchViewButtonDisabled(): boolean; onPrevButtonClick(event: Event): void; onNextButtonClick(event: Event): void; onContainerButtonKeydown(event: KeyboardEvent): void; onInputKeydown(event: any): void; onDateCellKeydown(event: any, dateMeta: any, groupIndex: number): void; onMonthCellKeydown(event: any, index: number): void; onYearCellKeydown(event: any, index: number): void; navigateToMonth(prev: boolean, groupIndex: number, focusKey?: string): void; updateFocus(): void; initFocusableCell(): void; trapFocus(event: any): void; onMonthDropdownChange(m: string): void; onYearDropdownChange(y: string): void; convertTo24Hour(hours: number, pm: boolean): number; constrainTime(hour: number, minute: number, second: number, pm: boolean): number[]; incrementHour(event: any): void; toggleAMPMIfNotMinDate(newPM: boolean): void; onTimePickerElementMouseDown(event: Event, type: number, direction: number): void; onTimePickerElementMouseUp(event: Event): void; onTimePickerElementMouseLeave(): void; repeat(event: Event | null, interval: number | null, type: number | null, direction: number | null): void; clearTimePickerTimer(): void; decrementHour(event: any): void; incrementMinute(event: any): void; decrementMinute(event: any): void; incrementSecond(event: any): void; decrementSecond(event: any): void; updateTime(): void; toggleAMPM(event: any): void; onUserInput(event: KeyboardEvent | any): void; isValidSelection(value: any): boolean; parseValueFromString(text: string): Date | Date[] | null; parseDateTime(text: any): Date; populateTime(value: any, timeString: any, ampm: any): void; isValidDate(date: any): boolean; updateUI(): void; showOverlay(): void; hideOverlay(): void; toggle(): void; onOverlayAnimationStart(event: AnimationEvent): void; onOverlayAnimationDone(event: AnimationEvent): void; appendOverlay(): void; restoreOverlayAppend(): void; alignOverlay(): void; enableModality(element: any): void; disableModality(): void; destroyMask(): void; unbindMaskClickListener(): void; unbindAnimationEndListener(): void; writeValue(value: any): void; registerOnChange(fn: Function): void; registerOnTouched(fn: Function): void; setDisabledState(val: boolean): void; getDateFormat(): any; getFirstDateOfWeek(): any; formatDate(date: any, format: any): string; formatTime(date: any): string; parseTime(value: any): { hour: number; minute: number; second: number; }; parseDate(value: any, format: any): any; daylightSavingAdjust(date: any): any; updateFilledState(): void; isValidDateForTimeConstraints(selectedDate: Date): boolean; onTodayButtonClick(event: any): void; onClearButtonClick(event: any): void; createResponsiveStyle(): void; destroyResponsiveStyleElement(): void; bindDocumentClickListener(): void; unbindDocumentClickListener(): void; bindDocumentResizeListener(): void; unbindDocumentResizeListener(): void; bindScrollListener(): void; unbindScrollListener(): void; isOutsideClicked(event: Event): boolean; isNavIconClicked(event: Event): boolean; onWindowResize(): void; onOverlayHide(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; static ngAcceptInputType_disabled: unknown; static ngAcceptInputType_inline: unknown; static ngAcceptInputType_showOtherMonths: unknown; static ngAcceptInputType_selectOtherMonths: unknown; static ngAcceptInputType_showIcon: unknown; static ngAcceptInputType_readonlyInput: unknown; static ngAcceptInputType_monthNavigator: unknown; static ngAcceptInputType_yearNavigator: unknown; static ngAcceptInputType_timeOnly: unknown; static ngAcceptInputType_stepHour: unknown; static ngAcceptInputType_stepMinute: unknown; static ngAcceptInputType_stepSecond: unknown; static ngAcceptInputType_showSeconds: unknown; static ngAcceptInputType_required: unknown; static ngAcceptInputType_showOnFocus: unknown; static ngAcceptInputType_showWeek: unknown; static ngAcceptInputType_showClear: unknown; static ngAcceptInputType_maxDateCount: unknown; static ngAcceptInputType_showButtonBar: unknown; static ngAcceptInputType_autofocus: unknown; static ngAcceptInputType_autoZIndex: unknown; static ngAcceptInputType_baseZIndex: unknown; static ngAcceptInputType_keepInvalid: unknown; static ngAcceptInputType_hideOnDateTimeSelect: unknown; static ngAcceptInputType_touchUI: unknown; static ngAcceptInputType_focusTrap: unknown; static ngAcceptInputType_tabindex: unknown; } export declare class CalendarModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; }