@logscl/ng2-date-picker
Version:
https://github.com/vlio20/angular-datepicker
757 lines (719 loc) • 34.4 kB
TypeScript
import { Dayjs, UnitType, ManipulateType } from 'dayjs';
import * as i0 from '@angular/core';
import { ElementRef, OnInit, OnChanges, ChangeDetectorRef, EventEmitter, SimpleChanges, SimpleChange, OnDestroy, Renderer2, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
import * as i9 from '@angular/forms';
import { ControlValueAccessor, Validator, UntypedFormControl, ValidationErrors, NgControl } from '@angular/forms';
import * as i10 from '@angular/cdk/overlay';
import { ConnectionPositionPair } from '@angular/cdk/overlay';
import * as i8 from '@angular/common';
type SingleCalendarValue = Dayjs | string;
interface IDate {
date: Dayjs;
selected: boolean;
}
declare enum ECalendarMode {
Day = 0,
DayTime = 1,
Month = 2,
Time = 3
}
interface IDay extends IDate {
currentMonth?: boolean;
prevMonth?: boolean;
nextMonth?: boolean;
currentDay?: boolean;
disabled?: boolean;
}
interface IDayEvent {
day: IDay;
event: MouseEvent;
}
interface IMonth extends IDate {
currentMonth: boolean;
disabled: boolean;
text: string;
}
declare enum ECalendarValue {
Dayjs = 1,
DayjsArr = 2,
String = 3,
StringArr = 4
}
type CalendarValue = Dayjs | Dayjs[] | string | string[];
interface ICalendar {
min?: SingleCalendarValue;
max?: Dayjs | string;
}
interface ICalendarInternal {
min?: Dayjs;
max?: Dayjs;
}
type WeekDays = 'su' | 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa';
interface IConfig$3 {
isDayDisabledCallback?: (date: Dayjs) => boolean;
isMonthDisabledCallback?: (date: Dayjs) => boolean;
weekDayFormat?: string;
weekDayFormatter?: (dayIndex: number) => string;
showNearMonthDays?: boolean;
showWeekNumbers?: boolean;
firstDayOfWeek?: WeekDays;
format?: string;
allowMultiSelect?: boolean;
monthFormat?: string;
monthFormatter?: (month: Dayjs) => string;
enableMonthSelector?: boolean;
yearFormat?: string;
yearFormatter?: (year: Dayjs) => string;
dayBtnFormat?: string;
dayBtnFormatter?: (day: Dayjs) => string;
dayBtnCssClassCallback?: (day: Dayjs) => string;
monthBtnFormat?: string;
monthBtnFormatter?: (day: Dayjs) => string;
monthBtnCssClassCallback?: (day: Dayjs) => string;
multipleYearsNavigateBy?: number;
showMultipleYearsNavigation?: boolean;
returnedValueType?: ECalendarValue;
showGoToCurrent?: boolean;
unSelectOnClick?: boolean;
numOfMonthRows?: number;
}
interface IDayCalendarConfig extends IConfig$3, ICalendar {
}
interface IDayCalendarConfigInternal extends IConfig$3, ICalendarInternal {
}
type TOpens = 'right' | 'left';
type TDrops = 'up' | 'down';
interface IConfig$2 {
isMonthDisabledCallback?: (date: Dayjs) => boolean;
allowMultiSelect?: boolean;
yearFormat?: string;
yearFormatter?: (month: Dayjs) => string;
format?: string;
isNavHeaderBtnClickable?: boolean;
monthBtnFormat?: string;
monthBtnFormatter?: (day: Dayjs) => string;
numOfMonthRows?: number;
monthBtnCssClassCallback?: (day: Dayjs) => string;
multipleYearsNavigateBy?: number;
showMultipleYearsNavigation?: boolean;
returnedValueType?: ECalendarValue;
showGoToCurrent?: boolean;
unSelectOnClick?: boolean;
}
interface IMonthCalendarConfig extends IConfig$2, ICalendar {
}
interface IMonthCalendarConfigInternal extends IConfig$2, ICalendarInternal {
}
interface IConfig$1 {
hours12Format?: string;
hours24Format?: string;
maxTime?: Dayjs;
meridiemFormat?: string;
minTime?: Dayjs;
minutesFormat?: string;
minutesInterval?: number;
secondsFormat?: string;
secondsInterval?: number;
showSeconds?: boolean;
showTwentyFourHours?: boolean;
timeSeparator?: string;
returnedValueType?: ECalendarValue;
}
interface ITimeSelectConfig extends IConfig$1, ICalendar {
}
interface ITimeSelectConfigInternal extends IConfig$1, ICalendarInternal {
}
interface IConfig {
closeOnSelect?: boolean;
closeOnSelectDelay?: number;
openOnFocus?: boolean;
openOnClick?: boolean;
onOpenDelay?: number;
closeOnEnter?: boolean;
disableKeypress?: boolean;
inputElementContainer?: HTMLElement | string | ElementRef;
drops?: TDrops;
opens?: TOpens;
hideInputContainer?: boolean;
hideOnOutsideClick?: boolean;
}
interface IDatePickerConfig extends IConfig, IDayCalendarConfig, IMonthCalendarConfig, ITimeSelectConfig {
}
interface IDatePickerConfigInternal extends IConfig, IDayCalendarConfigInternal, IMonthCalendarConfigInternal, ITimeSelectConfigInternal {
}
interface IDatePickerDirectiveConfig extends IDayCalendarConfig, IMonthCalendarConfig, ITimeSelectConfig {
closeOnSelect?: boolean;
closeOnSelectDelay?: number;
onOpenDelay?: number;
disableKeypress?: boolean;
inputElementContainer?: HTMLElement | ElementRef;
drops?: TDrops;
opens?: TOpens;
hideInputContainer?: boolean;
}
interface IDayTimeCalendarConfig extends ITimeSelectConfig, IDayCalendarConfig {
}
interface IDayTimeCalendarConfigInternal extends ITimeSelectConfigInternal, IDayCalendarConfigInternal {
}
declare enum SelectEvent {
INPUT = "input",
SELECTION = "selection"
}
interface ISelectionEvent {
date: SingleCalendarValue;
granularity: UnitType;
type: SelectEvent;
}
type CalendarMode = 'day' | 'month' | 'daytime' | 'time';
type DateValidator = (inputVal: CalendarValue) => {
[key: string]: any;
};
interface DateLimits {
minDate?: SingleCalendarValue;
maxDate?: SingleCalendarValue;
minTime?: SingleCalendarValue;
maxTime?: SingleCalendarValue;
}
declare class UtilsService {
static debounce(func: Function, wait: number): () => void;
createArray(size: number): number[];
convertToDayjs(date: SingleCalendarValue, format: string): Dayjs;
isDateValid(date: string, format: string): boolean;
getDefaultDisplayDate(current: Dayjs, selected: Dayjs[], allowMultiSelect: boolean, minDate: Dayjs): Dayjs;
getInputType(value: CalendarValue, allowMultiSelect: boolean): ECalendarValue;
convertToDayjsArray(value: CalendarValue, config: {
allowMultiSelect?: boolean;
format?: string;
}): Dayjs[];
convertFromDayjsArray(format: string, value: Dayjs[], convertTo: ECalendarValue): CalendarValue;
convertToString(value: CalendarValue, format: string): string;
clearUndefined<T>(obj: T): T;
updateSelected(isMultiple: boolean, currentlySelected: Dayjs[], date: IDate, granularity?: UnitType): Dayjs[];
closestParent(element: HTMLElement, selector: string): HTMLElement;
onlyTime(m: Dayjs): Dayjs;
granularityFromType(calendarType: CalendarMode): UnitType;
createValidator({ minDate, maxDate, minTime, maxTime }: DateLimits, format: string, calendarType: CalendarMode): DateValidator;
datesStringToStringArray(value: string): string[];
getValidDayjsArray(value: string, format: string): Dayjs[];
shouldShowCurrent(showGoToCurrent: boolean, mode: CalendarMode, min: Dayjs, max: Dayjs): boolean;
isDateInRange(date: Dayjs, from: Dayjs, to: Dayjs): boolean;
convertPropsToDayjs(obj: {
[key: string]: any;
}, format: string, props: string[]): void;
shouldResetCurrentView<T extends ICalendarInternal>(prevConf: T, currentConf: T): boolean;
getNativeElement(elem: HTMLElement | string | ElementRef): HTMLElement;
static ɵfac: i0.ɵɵFactoryDeclaration<UtilsService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<UtilsService>;
}
declare class DayCalendarService {
private utilsService;
readonly DEFAULT_CONFIG: IDayCalendarConfig;
private readonly DAYS;
constructor(utilsService: UtilsService);
getConfig(config: IDayCalendarConfig): IDayCalendarConfigInternal;
generateDaysMap(firstDayOfWeek: WeekDays): {
[key: string]: number;
};
generateMonthArray(config: IDayCalendarConfigInternal, month: Dayjs, selected: Dayjs[]): IDay[][];
generateWeekdays(firstDayOfWeek: WeekDays): Dayjs[];
isDateDisabled(date: Dayjs, config: IDayCalendarConfigInternal): boolean;
getHeaderLabel(config: IDayCalendarConfigInternal, month: Dayjs): string;
shouldShowLeft(min: Dayjs, currentMonthView: Dayjs): boolean;
shouldShowRight(max: Dayjs, currentMonthView: Dayjs): boolean;
generateDaysIndexMap(firstDayOfWeek: WeekDays): {
[key: number]: string;
};
getMonthCalendarConfig(componentConfig: IDayCalendarConfigInternal): IMonthCalendarConfig;
getDayBtnText(config: IDayCalendarConfigInternal, day: Dayjs): string;
getDayBtnCssClass(config: IDayCalendarConfigInternal, day: Dayjs): string;
private removeNearMonthWeeks;
static ɵfac: i0.ɵɵFactoryDeclaration<DayCalendarService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DayCalendarService>;
}
interface INavEvent {
from: Dayjs;
to: Dayjs;
}
declare class DayCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {
readonly dayCalendarService: DayCalendarService;
readonly utilsService: UtilsService;
readonly cd: ChangeDetectorRef;
config: IDayCalendarConfig;
displayDate: SingleCalendarValue;
minDate: Dayjs;
maxDate: Dayjs;
theme: string;
onSelect: EventEmitter<IDay>;
onMonthSelect: EventEmitter<IMonth>;
onNavHeaderBtnClick: EventEmitter<ECalendarMode>;
onGoToCurrent: EventEmitter<void>;
onLeftNav: EventEmitter<INavEvent>;
onRightNav: EventEmitter<INavEvent>;
CalendarMode: typeof ECalendarMode;
isInited: boolean;
componentConfig: IDayCalendarConfigInternal;
weeks: IDay[][];
weekdays: Dayjs[];
inputValue: CalendarValue;
inputValueType: ECalendarValue;
validateFn: DateValidator;
currentCalendarMode: ECalendarMode;
monthCalendarConfig: IMonthCalendarConfig;
_shouldShowCurrent: boolean;
navLabel: string;
showLeftNav: boolean;
showRightNav: boolean;
api: {
moveCalendarsBy: any;
moveCalendarTo: any;
toggleCalendarMode: any;
};
constructor(dayCalendarService: DayCalendarService, utilsService: UtilsService, cd: ChangeDetectorRef);
_selected: Dayjs[];
get selected(): Dayjs[];
set selected(selected: Dayjs[]);
_currentDateView: Dayjs;
get currentDateView(): Dayjs;
set currentDateView(current: Dayjs);
ngOnInit(): void;
init(): void;
ngOnChanges(changes: SimpleChanges): void;
writeValue(value: CalendarValue): void;
registerOnChange(fn: any): void;
onChangeCallback(_: any): void;
registerOnTouched(fn: any): void;
validate(formControl: UntypedFormControl): ValidationErrors | any;
processOnChangeCallback(value: Dayjs[]): CalendarValue;
initValidators(): void;
dayClicked(day: IDay): void;
getDayBtnText(day: IDay): string;
getDayBtnCssClass(day: IDay): {
[klass: string]: boolean;
};
onLeftNavClick(): void;
onRightNavClick(): void;
onMonthCalendarLeftClick(change: INavEvent): void;
onMonthCalendarRightClick(change: INavEvent): void;
onMonthCalendarSecondaryLeftClick(change: INavEvent): void;
onMonthCalendarSecondaryRightClick(change: INavEvent): void;
getWeekdayName(weekday: Dayjs): string;
toggleCalendarMode(mode: ECalendarMode): void;
monthSelected(month: IMonth): void;
moveCalendarsBy(current: Dayjs, amount: number, granularity?: ManipulateType): void;
moveCalendarTo(to: SingleCalendarValue): void;
shouldShowCurrent(): boolean;
goToCurrent(): void;
handleConfigChange(config: SimpleChange): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DayCalendarComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DayCalendarComponent, "dp-day-calendar", never, { "config": { "alias": "config"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "onSelect": "onSelect"; "onMonthSelect": "onMonthSelect"; "onNavHeaderBtnClick": "onNavHeaderBtnClick"; "onGoToCurrent": "onGoToCurrent"; "onLeftNav": "onLeftNav"; "onRightNav": "onRightNav"; }, never, never, false, never>;
}
type TimeUnit = 'hour' | 'minute' | 'second';
declare class TimeSelectService {
private readonly utilsService;
readonly DEFAULT_CONFIG: ITimeSelectConfigInternal;
constructor(utilsService: UtilsService);
getConfig(config: ITimeSelectConfig): ITimeSelectConfigInternal;
getTimeFormat(config: ITimeSelectConfigInternal): string;
getHours(config: ITimeSelectConfigInternal, t: Dayjs | null): string;
getMinutes(config: ITimeSelectConfigInternal, t: Dayjs | null): string;
getSeconds(config: ITimeSelectConfigInternal, t: Dayjs | null): string;
getMeridiem(config: ITimeSelectConfigInternal, time: Dayjs): string;
decrease(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): Dayjs;
increase(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): Dayjs;
toggleMeridiem(time: Dayjs): Dayjs;
shouldShowDecrease(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): boolean;
shouldShowIncrease(config: ITimeSelectConfigInternal, time: Dayjs, unit: TimeUnit): boolean;
shouldShowToggleMeridiem(config: ITimeSelectConfigInternal, time: Dayjs): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<TimeSelectService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TimeSelectService>;
}
declare class TimeSelectComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {
readonly timeSelectService: TimeSelectService;
readonly utilsService: UtilsService;
readonly cd: ChangeDetectorRef;
config: ITimeSelectConfig;
displayDate: SingleCalendarValue;
minDate: SingleCalendarValue;
maxDate: SingleCalendarValue;
minTime: SingleCalendarValue;
maxTime: SingleCalendarValue;
theme: string;
onChange: EventEmitter<IDate>;
isInited: boolean;
componentConfig: ITimeSelectConfigInternal;
inputValue: CalendarValue;
inputValueType: ECalendarValue;
validateFn: DateValidator;
hours: string;
minutes: string;
seconds: string;
meridiem: string;
showDecHour: boolean;
showDecMinute: boolean;
showDecSecond: boolean;
showIncHour: boolean;
showIncMinute: boolean;
showIncSecond: boolean;
showToggleMeridiem: boolean;
api: {
triggerChange: any;
};
constructor(timeSelectService: TimeSelectService, utilsService: UtilsService, cd: ChangeDetectorRef);
_selected: Dayjs;
get selected(): Dayjs;
set selected(selected: Dayjs);
ngOnInit(): void;
init(): void;
ngOnChanges(changes: SimpleChanges): void;
writeValue(value: CalendarValue): void;
registerOnChange(fn: any): void;
onChangeCallback(_: any): void;
registerOnTouched(fn: any): void;
validate(formControl: UntypedFormControl): ValidationErrors | any;
processOnChangeCallback(value: Dayjs): CalendarValue;
initValidators(): void;
decrease(unit: TimeUnit): void;
increase(unit: TimeUnit): void;
toggleMeridiem(): void;
emitChange(): void;
calculateTimeParts(time: Dayjs): void;
private handleConfigChange;
static ɵfac: i0.ɵɵFactoryDeclaration<TimeSelectComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<TimeSelectComponent, "dp-time-select", never, { "config": { "alias": "config"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "onChange": "onChange"; }, never, never, false, never>;
}
interface IDpDayPickerApi {
open: () => void;
close: () => void;
moveCalendarTo: (date: SingleCalendarValue) => void;
}
declare class DayTimeCalendarService {
private utilsService;
private dayCalendarService;
private timeSelectService;
readonly DEFAULT_CONFIG: IDayTimeCalendarConfig;
constructor(utilsService: UtilsService, dayCalendarService: DayCalendarService, timeSelectService: TimeSelectService);
getConfig(config: IDayTimeCalendarConfig): IDayTimeCalendarConfigInternal;
updateDay(current: Dayjs, day: Dayjs, config: IDayCalendarConfigInternal): Dayjs;
updateTime(current: Dayjs, time: Dayjs): Dayjs;
static ɵfac: i0.ɵɵFactoryDeclaration<DayTimeCalendarService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DayTimeCalendarService>;
}
declare class DatePickerService {
private readonly utilsService;
private readonly timeSelectService;
private readonly daytimeCalendarService;
readonly onPickerClosed: EventEmitter<null>;
private defaultConfig;
constructor(utilsService: UtilsService, timeSelectService: TimeSelectService, daytimeCalendarService: DayTimeCalendarService);
getConfig(config: IDatePickerConfig, mode?: CalendarMode): IDatePickerConfigInternal;
getDayConfigService(pickerConfig: IDatePickerConfig): IDayCalendarConfig;
getDayTimeConfig(pickerConfig: IDatePickerConfig): IDayTimeCalendarConfig;
getTimeConfig(pickerConfig: IDatePickerConfig): ITimeSelectConfig;
pickerClosed(): void;
isValidInputDateValue(value: string, config: IDatePickerConfig): boolean;
convertInputValueToDayjsArray(value: string, config: IDatePickerConfig): Dayjs[];
getOverlayPosition({ drops, opens }: IDatePickerConfig): ConnectionPositionPair[] | undefined;
private static getDefaultFormatByMode;
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DatePickerService>;
}
declare class MonthCalendarService {
private utilsService;
readonly DEFAULT_CONFIG: IMonthCalendarConfigInternal;
constructor(utilsService: UtilsService);
getConfig(config: IMonthCalendarConfig): IMonthCalendarConfigInternal;
generateYear(config: IMonthCalendarConfig, year: Dayjs, selected?: Dayjs[]): IMonth[][];
isMonthDisabled(date: Dayjs, config: IMonthCalendarConfig): boolean;
shouldShowLeft(min: Dayjs, currentMonthView: Dayjs): boolean;
shouldShowRight(max: Dayjs, currentMonthView: Dayjs): boolean;
getHeaderLabel(config: IMonthCalendarConfig, year: Dayjs): string;
getMonthBtnText(config: IMonthCalendarConfig, month: Dayjs): string;
getMonthBtnCssClass(config: IMonthCalendarConfig, month: Dayjs): string;
private static validateConfig;
static ɵfac: i0.ɵɵFactoryDeclaration<MonthCalendarService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<MonthCalendarService>;
}
declare class MonthCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {
readonly monthCalendarService: MonthCalendarService;
readonly utilsService: UtilsService;
readonly cd: ChangeDetectorRef;
config: IMonthCalendarConfig;
displayDate: Dayjs | string;
minDate: Dayjs;
maxDate: Dayjs;
theme: string;
onSelect: EventEmitter<IMonth>;
onNavHeaderBtnClick: EventEmitter<null>;
onGoToCurrent: EventEmitter<void>;
onLeftNav: EventEmitter<INavEvent>;
onRightNav: EventEmitter<INavEvent>;
onLeftSecondaryNav: EventEmitter<INavEvent>;
onRightSecondaryNav: EventEmitter<INavEvent>;
isInited: boolean;
componentConfig: IMonthCalendarConfigInternal;
yearMonths: IMonth[][];
inputValue: CalendarValue;
inputValueType: ECalendarValue;
validateFn: DateValidator;
_shouldShowCurrent: boolean;
navLabel: string;
showLeftNav: boolean;
showRightNav: boolean;
showSecondaryLeftNav: boolean;
showSecondaryRightNav: boolean;
api: {
toggleCalendar: any;
moveCalendarTo: any;
};
constructor(monthCalendarService: MonthCalendarService, utilsService: UtilsService, cd: ChangeDetectorRef);
_selected: Dayjs[];
get selected(): Dayjs[];
set selected(selected: Dayjs[]);
_currentDateView: Dayjs;
get currentDateView(): Dayjs;
set currentDateView(current: Dayjs);
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
init(): void;
writeValue(value: CalendarValue): void;
registerOnChange(fn: any): void;
onChangeCallback(_: any): void;
registerOnTouched(fn: any): void;
validate(formControl: UntypedFormControl): ValidationErrors | any;
processOnChangeCallback(value: Dayjs[]): CalendarValue;
initValidators(): void;
monthClicked(month: IMonth): void;
onLeftNavClick(): void;
onLeftSecondaryNavClick(): void;
onRightNavClick(): void;
onRightSecondaryNavClick(): void;
toggleCalendarMode(): void;
getMonthBtnCssClass(month: IMonth): {
[klass: string]: boolean;
};
shouldShowCurrent(): boolean;
goToCurrent(): void;
moveCalendarTo(to: SingleCalendarValue): void;
handleConfigChange(config: SimpleChange): void;
static ɵfac: i0.ɵɵFactoryDeclaration<MonthCalendarComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<MonthCalendarComponent, "dp-month-calendar", never, { "config": { "alias": "config"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "onSelect": "onSelect"; "onNavHeaderBtnClick": "onNavHeaderBtnClick"; "onGoToCurrent": "onGoToCurrent"; "onLeftNav": "onLeftNav"; "onRightNav": "onRightNav"; "onLeftSecondaryNav": "onLeftSecondaryNav"; "onRightSecondaryNav": "onRightSecondaryNav"; }, never, never, false, never>;
}
declare class DayTimeCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {
dayTimeCalendarService: DayTimeCalendarService;
utilsService: UtilsService;
cd: ChangeDetectorRef;
config: IDayTimeCalendarConfig;
displayDate: SingleCalendarValue;
minDate: SingleCalendarValue;
maxDate: SingleCalendarValue;
theme: string;
onChange: EventEmitter<IDate>;
onGoToCurrent: EventEmitter<void>;
onLeftNav: EventEmitter<INavEvent>;
onRightNav: EventEmitter<INavEvent>;
dayCalendarRef: DayCalendarComponent;
isInited: boolean;
componentConfig: IDayTimeCalendarConfigInternal;
inputValue: CalendarValue;
inputValueType: ECalendarValue;
validateFn: DateValidator;
api: {
moveCalendarTo: any;
};
constructor(dayTimeCalendarService: DayTimeCalendarService, utilsService: UtilsService, cd: ChangeDetectorRef);
_selected: Dayjs;
get selected(): Dayjs;
set selected(selected: Dayjs);
ngOnInit(): void;
init(): void;
ngOnChanges(changes: SimpleChanges): void;
writeValue(value: CalendarValue): void;
registerOnChange(fn: any): void;
onChangeCallback(_: any): void;
registerOnTouched(fn: any): void;
validate(formControl: UntypedFormControl): ValidationErrors | any;
processOnChangeCallback(value: Dayjs): CalendarValue;
initValidators(): void;
dateSelected(day: IDate): void;
timeChange(time: IDate): void;
emitChange(): void;
moveCalendarTo(to: SingleCalendarValue): void;
onLeftNavClick(change: INavEvent): void;
onRightNavClick(change: INavEvent): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DayTimeCalendarComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DayTimeCalendarComponent, "dp-day-time-calendar", never, { "config": { "alias": "config"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "onChange": "onChange"; "onGoToCurrent": "onGoToCurrent"; "onLeftNav": "onLeftNav"; "onRightNav": "onRightNav"; }, never, never, false, never>;
}
declare class DatePickerComponent implements OnChanges, OnInit, ControlValueAccessor, Validator, OnDestroy {
private readonly dayPickerService;
private readonly elemRef;
private readonly renderer;
private readonly utilsService;
readonly cd: ChangeDetectorRef;
isInitialized: boolean;
config: IDatePickerConfig;
mode: CalendarMode;
placeholder: string;
disabled: boolean;
displayDate: Dayjs | string;
theme: string;
minDate: SingleCalendarValue;
maxDate: SingleCalendarValue;
minTime: SingleCalendarValue;
maxTime: SingleCalendarValue;
open: EventEmitter<void>;
close: EventEmitter<void>;
onChange: EventEmitter<CalendarValue>;
onGoToCurrent: EventEmitter<void>;
onLeftNav: EventEmitter<INavEvent>;
onRightNav: EventEmitter<INavEvent>;
onSelect: EventEmitter<ISelectionEvent>;
calendarContainer: ElementRef;
dayCalendarRef: DayCalendarComponent;
monthCalendarRef: MonthCalendarComponent;
dayTimeCalendarRef: DayTimeCalendarComponent;
timeSelectRef: TimeSelectComponent;
inputElement: ElementRef<HTMLInputElement>;
componentConfig: IDatePickerConfigInternal;
dayCalendarConfig: IDayCalendarConfig;
dayTimeCalendarConfig: IDayTimeCalendarConfig;
timeSelectConfig: ITimeSelectConfig;
inputValue: CalendarValue;
isFocusedTrigger: boolean;
inputElementValue: string;
calendarWrapper: HTMLElement;
appendToElement: HTMLElement;
handleInnerElementClickUnlisteners: Function[];
globalListenersUnlisteners: Function[];
validateFn: DateValidator;
api: IDpDayPickerApi;
selectEvent: typeof SelectEvent;
origin: ElementRef | HTMLElement;
private onOpenDelayTimeoutHandler;
constructor(dayPickerService: DatePickerService, elemRef: ElementRef, renderer: Renderer2, utilsService: UtilsService, cd: ChangeDetectorRef);
get openOnFocus(): boolean;
get openOnClick(): boolean;
areCalendarsShown: boolean;
_selected: Dayjs[];
get selected(): Dayjs[];
set selected(selected: Dayjs[]);
_currentDateView: Dayjs;
overlayPosition: ConnectionPositionPair[] | undefined;
get currentDateView(): Dayjs;
set currentDateView(date: Dayjs);
onClick(): void;
onBodyClick(event: MouseEvent): void;
writeValue(value: CalendarValue): void;
registerOnChange(fn: any): void;
onChangeCallback(_: any, __: boolean): void;
registerOnTouched(fn: any): void;
onTouchedCallback(): void;
validate(formControl: UntypedFormControl): ValidationErrors;
processOnChangeCallback(selected: Dayjs[] | string): CalendarValue;
initValidators(): void;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
setDisabledState(isDisabled: boolean): void;
init(): void;
inputFocused(): void;
inputBlurred(): void;
showCalendars(): void;
hideCalendar(): void;
onViewDateChange(value: CalendarValue): void;
dateSelected(date: IDate, granularity: UnitType, type: SelectEvent, ignoreClose?: boolean): void;
onDateClick(): void;
onKeyPress(event: KeyboardEvent): void;
moveCalendarTo(date: SingleCalendarValue): void;
onLeftNavClick(change: INavEvent): void;
onRightNavClick(change: INavEvent): void;
startGlobalListeners(): void;
stopGlobalListeners(): void;
ngOnDestroy(): void;
goToCurrent(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "dp-date-picker", never, { "config": { "alias": "config"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; }, { "open": "open"; "close": "close"; "onChange": "onChange"; "onGoToCurrent": "onGoToCurrent"; "onLeftNav": "onLeftNav"; "onRightNav": "onRightNav"; "onSelect": "onSelect"; }, never, never, false, never>;
}
declare class DatePickerDirective implements OnInit {
readonly viewContainerRef: ViewContainerRef;
readonly elemRef: ElementRef;
readonly componentFactoryResolver: ComponentFactoryResolver;
readonly formControl: NgControl;
readonly utilsService: UtilsService;
open: EventEmitter<void>;
close: EventEmitter<void>;
onChange: EventEmitter<CalendarValue>;
onGoToCurrent: EventEmitter<void>;
onLeftNav: EventEmitter<INavEvent>;
onRightNav: EventEmitter<INavEvent>;
onSelect: EventEmitter<ISelectionEvent>;
datePicker: DatePickerComponent;
api: IDpDayPickerApi;
constructor(viewContainerRef: ViewContainerRef, elemRef: ElementRef, componentFactoryResolver: ComponentFactoryResolver, formControl: NgControl, utilsService: UtilsService);
private _config;
get config(): IDatePickerDirectiveConfig;
set config(config: IDatePickerDirectiveConfig);
private _theme;
get theme(): string;
set theme(theme: string);
private _mode;
get mode(): CalendarMode;
set mode(mode: CalendarMode);
private _minDate;
get minDate(): SingleCalendarValue;
set minDate(minDate: SingleCalendarValue);
private _maxDate;
get maxDate(): SingleCalendarValue;
set maxDate(maxDate: SingleCalendarValue);
private _minTime;
get minTime(): SingleCalendarValue;
set minTime(minTime: SingleCalendarValue);
private _maxTime;
get maxTime(): SingleCalendarValue;
set maxTime(maxTime: SingleCalendarValue);
private _displayDate;
get displayDate(): Dayjs | string;
set displayDate(displayDate: Dayjs | string);
ngOnInit(): void;
createDatePicker(): DatePickerComponent;
attachModelToDatePicker(): void;
onClick(): void;
onFocus(): void;
onEnter(): void;
markForCheck(): void;
private updateDatepickerConfig;
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerDirective, [null, null, null, { optional: true; }, null]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DatePickerDirective, "[dpDayPicker]", ["dpDayPicker"], { "config": { "alias": "dpDayPicker"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; }, { "open": "open"; "close": "close"; "onChange": "onChange"; "onGoToCurrent": "onGoToCurrent"; "onLeftNav": "onLeftNav"; "onRightNav": "onRightNav"; "onSelect": "onSelect"; }, never, never, false, never>;
}
declare class CalendarNavComponent {
label: string;
isLabelClickable: boolean;
showLeftNav: boolean;
showLeftSecondaryNav: boolean;
showRightNav: boolean;
showRightSecondaryNav: boolean;
leftNavDisabled: boolean;
leftSecondaryNavDisabled: boolean;
rightNavDisabled: boolean;
rightSecondaryNavDisabled: boolean;
showGoToCurrent: boolean;
theme: string;
onLeftNav: EventEmitter<null>;
onLeftSecondaryNav: EventEmitter<null>;
onRightNav: EventEmitter<null>;
onRightSecondaryNav: EventEmitter<null>;
onLabelClick: EventEmitter<null>;
onGoToCurrent: EventEmitter<null>;
leftNavClicked(): void;
leftSecondaryNavClicked(): void;
rightNavClicked(): void;
rightSecondaryNavClicked(): void;
labelClicked(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<CalendarNavComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CalendarNavComponent, "dp-calendar-nav", never, { "label": { "alias": "label"; "required": false; }; "isLabelClickable": { "alias": "isLabelClickable"; "required": false; }; "showLeftNav": { "alias": "showLeftNav"; "required": false; }; "showLeftSecondaryNav": { "alias": "showLeftSecondaryNav"; "required": false; }; "showRightNav": { "alias": "showRightNav"; "required": false; }; "showRightSecondaryNav": { "alias": "showRightSecondaryNav"; "required": false; }; "leftNavDisabled": { "alias": "leftNavDisabled"; "required": false; }; "leftSecondaryNavDisabled": { "alias": "leftSecondaryNavDisabled"; "required": false; }; "rightNavDisabled": { "alias": "rightNavDisabled"; "required": false; }; "rightSecondaryNavDisabled": { "alias": "rightSecondaryNavDisabled"; "required": false; }; "showGoToCurrent": { "alias": "showGoToCurrent"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "onLeftNav": "onLeftNav"; "onLeftSecondaryNav": "onLeftSecondaryNav"; "onRightNav": "onRightNav"; "onRightSecondaryNav": "onRightSecondaryNav"; "onLabelClick": "onLabelClick"; "onGoToCurrent": "onGoToCurrent"; }, never, never, false, never>;
}
declare class DpDatePickerModule {
static ɵfac: i0.ɵɵFactoryDeclaration<DpDatePickerModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<DpDatePickerModule, [typeof DatePickerComponent, typeof DatePickerDirective, typeof DayCalendarComponent, typeof MonthCalendarComponent, typeof CalendarNavComponent, typeof TimeSelectComponent, typeof DayTimeCalendarComponent], [typeof i8.CommonModule, typeof i9.FormsModule, typeof i10.OverlayModule], [typeof DatePickerComponent, typeof DatePickerDirective, typeof MonthCalendarComponent, typeof DayCalendarComponent, typeof TimeSelectComponent, typeof DayTimeCalendarComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<DpDatePickerModule>;
}
export { DatePickerComponent, DatePickerDirective, DayCalendarComponent, DayTimeCalendarComponent, DpDatePickerModule, ECalendarMode, ECalendarValue, MonthCalendarComponent, SelectEvent, TimeSelectComponent };
export type { CalendarValue, IDate, IDatePickerConfig, IDatePickerDirectiveConfig, IDay, IDayCalendarConfig, IDayEvent, IDayTimeCalendarConfig, IMonth, IMonthCalendarConfig, ISelectionEvent, SingleCalendarValue };