igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
425 lines (424 loc) • 15.2 kB
TypeScript
import { AfterViewChecked, AfterViewInit, AfterContentChecked, ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, PipeTransform, QueryList, Renderer2 } from '@angular/core';
import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
import { IFormattingViews, IFormattingOptions } from '../calendar/public_api';
import { IgxLabelDirective, IgxInputGroupType } from '../input-group/public_api';
import { DateRangeDescriptor } from '../core/dates/dateRange';
import { IDatePickerResourceStrings } from '../core/i18n/date-picker-resources';
import { PlatformUtil } from '../core/utils';
import { PickerBaseDirective } from '../date-common/picker-base.directive';
import { IgxPickerClearComponent } from '../date-common/public_api';
import { PickerHeaderOrientation } from '../date-common/types';
import { DatePart, DatePartDeltas } from '../directives/date-time-editor/public_api';
import { IgxOverlayOutletDirective } from '../directives/toggle/toggle.directive';
import { IgxOverlayService, OverlaySettings } from '../services/public_api';
import { IDatePickerValidationFailedEventArgs } from './date-picker.common';
import * as i0 from "@angular/core";
/**
* Date Picker displays a popup calendar that lets users select a single date.
*
* @igxModule IgxDatePickerModule
* @igxTheme igx-calendar-theme, igx-icon-theme
* @igxGroup Scheduling
* @igxKeywords datepicker, calendar, schedule, date
* @example
* ```html
* <igx-date-picker [(ngModel)]="selectedDate"></igx-date-picker>
* ```
*/
export declare class IgxDatePickerComponent extends PickerBaseDirective implements ControlValueAccessor, Validator, OnInit, AfterViewInit, OnDestroy, AfterViewChecked, AfterContentChecked {
private _overlayService;
private _injector;
private _renderer;
private platform;
private cdr;
/**
* Gets/Sets whether the inactive dates will be hidden.
*
* @remarks
* Applies to dates that are out of the current month.
* Default value is `false`.
* @example
* ```html
* <igx-date-picker [hideOutsideDays]="true"></igx-date-picker>
* ```
* @example
* ```typescript
* let hideOutsideDays = this.datePicker.hideOutsideDays;
* ```
*/
hideOutsideDays: boolean;
/**
* Gets/Sets the number of month views displayed.
*
* @remarks
* Default value is `1`.
*
* @example
* ```html
* <igx-date-picker [displayMonthsCount]="2"></igx-date-picker>
* ```
* @example
* ```typescript
* let monthViewsDisplayed = this.datePicker.displayMonthsCount;
* ```
*/
displayMonthsCount: number;
/**
* Show/hide week numbers
*
* @example
* ```html
* <igx-date-picker [showWeekNumbers]="true"></igx-date-picker>
* ``
*/
showWeekNumbers: boolean;
/**
* Gets/Sets a custom formatter function on the selected or passed date.
*
* @example
* ```html
* <igx-date-picker [value]="date" [formatter]="formatter"></igx-date-picker>
* ```
*/
formatter: (val: Date) => string;
/**
* Gets/Sets the orientation of the `IgxDatePickerComponent` header.
*
* @example
* ```html
* <igx-date-picker headerOrientation="vertical"></igx-date-picker>
* ```
*/
headerOrientation: PickerHeaderOrientation;
/**
* Gets/Sets the today button's label.
*
* @example
* ```html
* <igx-date-picker todayButtonLabel="Today"></igx-date-picker>
* ```
*/
todayButtonLabel: string;
/**
* Gets/Sets the cancel button's label.
*
* @example
* ```html
* <igx-date-picker cancelButtonLabel="Cancel"></igx-date-picker>
* ```
*/
cancelButtonLabel: string;
/**
* Specify if the currently spun date segment should loop over.
*
* @example
* ```html
* <igx-date-picker [spinLoop]="false"></igx-date-picker>
* ```
*/
spinLoop: boolean;
/**
* Delta values used to increment or decrement each editor date part on spin actions.
* All values default to `1`.
*
* @example
* ```html
* <igx-date-picker [spinDelta]="{ date: 5, month: 2 }"></igx-date-picker>
* ```
*/
spinDelta: Pick<DatePartDeltas, 'date' | 'month' | 'year'>;
/**
* Gets/Sets the container used for the popup element.
*
* @remarks
* `outlet` is an instance of `IgxOverlayOutletDirective` or an `ElementRef`.
* @example
* ```html
* <div igxOverlayOutlet #outlet="overlay-outlet"></div>
* //..
* <igx-date-picker [outlet]="outlet"></igx-date-picker>
* //..
* ```
*/
outlet: IgxOverlayOutletDirective | ElementRef;
/**
* Gets/Sets the value of `id` attribute.
*
* @remarks If not provided it will be automatically generated.
* @example
* ```html
* <igx-date-picker [id]="'igx-date-picker-3'" cancelButtonLabel="cancel" todayButtonLabel="today"></igx-date-picker>
* ```
*/
id: string;
/**
* Gets/Sets the format views of the `IgxDatePickerComponent`.
*
* @example
* ```typescript
* let formatViews = this.datePicker.formatViews;
* this.datePicker.formatViews = {day:false, month: false, year:false};
* ```
*/
formatViews: IFormattingViews;
/**
* Gets/Sets the disabled dates descriptors.
*
* @example
* ```typescript
* let disabledDates = this.datepicker.disabledDates;
* this.datePicker.disabledDates = [ {type: DateRangeType.Weekends}, ...];
* ```
*/
get disabledDates(): DateRangeDescriptor[];
set disabledDates(value: DateRangeDescriptor[]);
/**
* Gets/Sets the special dates descriptors.
*
* @example
* ```typescript
* let specialDates = this.datepicker.specialDates;
* this.datePicker.specialDates = [ {type: DateRangeType.Weekends}, ... ];
* ```
*/
get specialDates(): DateRangeDescriptor[];
set specialDates(value: DateRangeDescriptor[]);
/**
* Gets/Sets the format options of the `IgxDatePickerComponent`.
*
* @example
* ```typescript
* this.datePicker.calendarFormat = {day: "numeric", month: "long", weekday: "long", year: "numeric"};
* ```
*/
calendarFormat: IFormattingOptions;
/**
* Gets/Sets the selected date.
*
* @example
* ```html
* <igx-date-picker [value]="date"></igx-date-picker>
* ```
*/
get value(): Date | string;
set value(date: Date | string);
/**
* The minimum value the picker will accept.
*
* @example
* <igx-date-picker [minValue]="minDate"></igx-date-picker>
*/
set minValue(value: Date | string);
get minValue(): Date | string;
/**
* The maximum value the picker will accept.
*
* @example
* <igx-date-picker [maxValue]="maxDate"></igx-date-picker>
*/
set maxValue(value: Date | string);
get maxValue(): Date | string;
/**
* Gets/Sets the resource strings for the picker's default toggle icon.
* By default it uses EN resources.
*/
resourceStrings: IDatePickerResourceStrings;
/** @hidden @internal */
readOnly: boolean;
/**
* Emitted when the picker's value changes.
*
* @remarks
* Used for `two-way` bindings.
*
* @example
* ```html
* <igx-date-picker [(value)]="date"></igx-date-picker>
* ```
*/
valueChange: EventEmitter<Date>;
/**
* Emitted when the user types/spins invalid date in the date-picker editor.
*
* @example
* ```html
* <igx-date-picker (validationFailed)="onValidationFailed($event)"></igx-date-picker>
* ```
*/
validationFailed: EventEmitter<IDatePickerValidationFailedEventArgs>;
/** @hidden @internal */
clearComponents: QueryList<IgxPickerClearComponent>;
/** @hidden @internal */
label: IgxLabelDirective;
private headerTitleTemplate;
private headerTemplate;
private dateTimeEditor;
private viewContainerRef;
private labelDirective;
private inputDirective;
private subheaderTemplate;
private pickerActions;
private get dialogOverlaySettings();
private get dropDownOverlaySettings();
private get inputGroupElement();
private get dateValue();
private get pickerFormatViews();
private get pickerCalendarFormat();
/** @hidden @internal */
displayValue: PipeTransform;
private _resourceStrings;
private _dateValue;
private _overlayId;
private _value;
private _targetViewDate;
private _ngControl;
private _statusChanges$;
private _calendar;
private _calendarContainer?;
private _specialDates;
private _disabledDates;
private _overlaySubFilter;
private _dropDownOverlaySettings;
private _dialogOverlaySettings;
private _calendarFormat;
private _defFormatViews;
private _onChangeCallback;
private _onTouchedCallback;
private _onValidatorChange;
constructor(element: ElementRef<HTMLElement>, _localeId: string, _overlayService: IgxOverlayService, _injector: Injector, _renderer: Renderer2, platform: PlatformUtil, cdr: ChangeDetectorRef, _inputGroupType?: IgxInputGroupType);
/** @hidden @internal */
get required(): boolean;
/** @hidden @internal */
get pickerResourceStrings(): IDatePickerResourceStrings;
protected get toggleContainer(): HTMLElement | undefined;
/** @hidden @internal */
onKeyDown(event: KeyboardEvent): void;
/**
* Opens the picker's dropdown or dialog.
*
* @example
* ```html
* <igx-date-picker #picker></igx-date-picker>
*
* <button type="button" igxButton (click)="picker.open()">Open Dialog</button>
* ```
*/
open(settings?: OverlaySettings): void;
/**
* Toggles the picker's dropdown or dialog
*
* @example
* ```html
* <igx-date-picker #picker></igx-date-picker>
*
* <button type="button" igxButton (click)="picker.toggle()">Toggle Dialog</button>
* ```
*/
toggle(settings?: OverlaySettings): void;
/**
* Closes the picker's dropdown or dialog.
*
* @example
* ```html
* <igx-date-picker #picker></igx-date-picker>
*
* <button type="button" igxButton (click)="picker.close()">Close Dialog</button>
* ```
*/
close(): void;
/**
* Selects a date.
*
* @remarks Updates the value in the input field.
*
* @example
* ```typescript
* this.datePicker.select(date);
* ```
* @param date passed date that has to be set to the calendar.
*/
select(value: Date): void;
/**
* Selects today's date and closes the picker.
*
* @example
* ```html
* <igx-date-picker #picker></igx-date-picker>
*
* <button type="button" igxButton (click)="picker.selectToday()">Select Today</button>
* ```
* */
selectToday(): void;
/**
* Clears the input field and the picker's value.
*
* @example
* ```typescript
* this.datePicker.clear();
* ```
*/
clear(): void;
/**
* Increment a specified `DatePart`.
*
* @param datePart The optional DatePart to increment. Defaults to Date.
* @param delta The optional delta to increment by. Overrides `spinDelta`.
* @example
* ```typescript
* this.datePicker.increment(DatePart.Date);
* ```
*/
increment(datePart?: DatePart, delta?: number): void;
/**
* Decrement a specified `DatePart`
*
* @param datePart The optional DatePart to decrement. Defaults to Date.
* @param delta The optional delta to decrement by. Overrides `spinDelta`.
* @example
* ```typescript
* this.datePicker.decrement(DatePart.Date);
* ```
*/
decrement(datePart?: DatePart, delta?: number): void;
/** @hidden @internal */
writeValue(value: Date | string): void;
/** @hidden @internal */
registerOnChange(fn: any): void;
/** @hidden @internal */
registerOnTouched(fn: any): void;
/** @hidden @internal */
setDisabledState?(isDisabled: boolean): void;
/** @hidden @internal */
registerOnValidatorChange(fn: any): void;
/** @hidden @internal */
validate(control: AbstractControl): ValidationErrors | null;
/** @hidden @internal */
ngOnInit(): void;
/** @hidden @internal */
ngAfterViewInit(): void;
/** @hidden @internal */
ngAfterViewChecked(): void;
/** @hidden @internal */
ngOnDestroy(): void;
/** @hidden @internal */
getEditElement(): HTMLInputElement;
private subscribeToClick;
private setDateValue;
private updateValidity;
private get isTouchedOrDirty();
private get hasValidators();
private onStatusChanged;
private handleSelection;
private subscribeToDateEditorEvents;
private subscribeToOverlayEvents;
private getMinMaxDates;
private setDisabledDates;
private _initializeCalendarContainer;
private setCalendarViewDate;
static ɵfac: i0.ɵɵFactoryDeclaration<IgxDatePickerComponent, [null, null, null, null, null, null, null, { optional: true; }]>;
static ɵcmp: i0.ɵɵComponentDeclaration<IgxDatePickerComponent, "igx-date-picker", never, { "hideOutsideDays": { "alias": "hideOutsideDays"; "required": false; }; "displayMonthsCount": { "alias": "displayMonthsCount"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "headerOrientation": { "alias": "headerOrientation"; "required": false; }; "todayButtonLabel": { "alias": "todayButtonLabel"; "required": false; }; "cancelButtonLabel": { "alias": "cancelButtonLabel"; "required": false; }; "spinLoop": { "alias": "spinLoop"; "required": false; }; "spinDelta": { "alias": "spinDelta"; "required": false; }; "outlet": { "alias": "outlet"; "required": false; }; "id": { "alias": "id"; "required": false; }; "formatViews": { "alias": "formatViews"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "specialDates": { "alias": "specialDates"; "required": false; }; "calendarFormat": { "alias": "calendarFormat"; "required": false; }; "value": { "alias": "value"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "resourceStrings": { "alias": "resourceStrings"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, { "valueChange": "valueChange"; "validationFailed": "validationFailed"; }, ["label", "headerTitleTemplate", "headerTemplate", "subheaderTemplate", "pickerActions", "clearComponents"], ["[igxLabel]", "igx-prefix,[igxPrefix]", "igx-suffix,[igxSuffix]", "igx-hint,[igxHint]"], true, never>;
static ngAcceptInputType_hideOutsideDays: unknown;
static ngAcceptInputType_showWeekNumbers: unknown;
static ngAcceptInputType_spinLoop: unknown;
static ngAcceptInputType_readOnly: unknown;
}