@webilix/ngx-calendar-m3
Version:
Jalali calendar components for Angular and Material 3
370 lines (357 loc) • 13.3 kB
TypeScript
import * as i0 from '@angular/core';
import { OnInit, OnChanges, EventEmitter, SimpleChanges } from '@angular/core';
import { JalaliDateTimeCalendar, JalaliDateTimePeriod } from '@webilix/jalali-date-time';
import { ActivatedRoute, Router } from '@angular/router';
import { NgxHelperContainerService } from '@webilix/ngx-helper-m3';
type NgxCalendar = 'DATE' | 'WEEK' | 'MONTH' | 'YEAR' | 'PERIOD';
interface INgxCalendar {
readonly calendar: NgxCalendar;
readonly period: {
readonly from: Date;
readonly to: Date;
};
readonly title: string;
}
interface INgxCalendarMoment {
readonly moment: Date;
readonly title: string;
readonly jalali: string;
}
interface INgxCalendarDate {
readonly date: Date;
readonly title: string;
readonly jalali: string;
}
interface INgxCalendarWeek {
readonly period: {
readonly from: Date;
readonly to: Date;
};
readonly title: string;
}
interface INgxCalendarMonth {
readonly period: {
readonly from: Date;
readonly to: Date;
};
readonly title: string;
readonly jalali: string;
}
interface INgxCalendarYear {
readonly period: {
readonly from: Date;
readonly to: Date;
};
readonly year: number;
}
declare class NgxCalendarDateComponent implements OnInit, OnChanges {
private className;
value?: Date;
minDate?: 'NOW' | Date;
maxDate?: 'NOW' | Date;
onChange: EventEmitter<INgxCalendarDate>;
view: 'CALENDAR' | 'MONTH';
values: {
today: string;
selected: string;
minDate: string;
maxDate: string;
};
calendar: JalaliDateTimeCalendar;
year: number;
years: number[];
seasons: {
title: string;
month: string;
}[][];
private jalali;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
formatDate(date: Date): string;
initValues(): void;
changeMonth(change: number): void;
setDate(value: string): void;
toggleView(): void;
changeYear(year?: number): void;
setMonth(month: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarDateComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarDateComponent, "ngx-calendar-date", never, { "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
}
declare class NgxCalendarMomentComponent implements OnInit, OnChanges {
private className;
value?: Date;
minDate?: 'NOW' | Date;
maxDate?: 'NOW' | Date;
onChange: EventEmitter<INgxCalendarMoment>;
canSubmit: boolean;
dateString: string;
hour: string;
hours: string[];
minute: string;
minutes: string[];
private jalali;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
formatDate(date: Date): string;
getMinMax(): {
minDate: Date | undefined;
maxDate: Date | undefined;
};
initValues(): void;
updateValue(): void;
setDate(date: INgxCalendarDate): void;
checkHour(hour: string): boolean;
setHour(hour: string): void;
checkMinute(minute: string): boolean;
setMinute(minute: string): void;
onSubmit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarMomentComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarMomentComponent, "ngx-calendar-moment", never, { "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
}
declare class NgxCalendarWeekComponent implements OnInit, OnChanges {
private className;
value?: Date | {
from: Date;
to: Date;
};
minDate?: 'NOW' | Date;
maxDate?: 'NOW' | Date;
onChange: EventEmitter<INgxCalendarWeek>;
view: 'CALENDAR' | 'MONTH';
values: {
today: string;
selected: string;
minDate: string;
maxDate: string;
};
calendar: JalaliDateTimeCalendar;
year: number;
years: number[];
seasons: {
title: string;
month: string;
}[][];
private jalali;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
formatDate(date: Date): string;
initValues(): void;
changeMonth(change: number): void;
setDate(value: string): void;
toggleView(): void;
changeYear(year?: number): void;
setMonth(month: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarWeekComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarWeekComponent, "ngx-calendar-week", never, { "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
}
declare class NgxCalendarMonthComponent implements OnInit, OnChanges {
private className;
value?: Date | {
from: Date;
to: Date;
};
minDate?: 'NOW' | Date;
maxDate?: 'NOW' | Date;
onChange: EventEmitter<INgxCalendarMonth>;
values: {
today: string;
selected: string;
minDate: string;
maxDate: string;
};
year: number;
years: number[];
seasons: {
title: string;
month: string;
}[][];
private jalali;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
initValues(): void;
changeYear(year?: number): void;
setMonth(value: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarMonthComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarMonthComponent, "ngx-calendar-month", never, { "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
}
declare class NgxCalendarYearComponent implements OnInit, OnChanges {
private className;
value?: Date | {
from: Date;
to: Date;
};
minDate?: 'NOW' | Date;
maxDate?: 'NOW' | Date;
onChange: EventEmitter<INgxCalendarYear>;
values: {
today: string;
selected: string;
minDate: string;
maxDate: string;
};
years: number[];
private jalali;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
initValues(): void;
changeYear(year: number): void;
setYear(value: string): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarYearComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarYearComponent, "ngx-calendar-year", never, { "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "onChange": "onChange"; }, never, never, true, never>;
}
interface IContainer {
readonly value?: {
readonly from: Date;
readonly to: Date;
};
readonly minDate?: 'NOW' | Date;
readonly maxDate?: 'NOW' | Date;
}
interface ICalendar {
readonly title: string;
readonly value: Date;
readonly minDate: 'NOW' | Date;
readonly maxDate: 'NOW' | Date;
}
interface ICalendarMoment extends ICalendar {
}
interface ICalendarDate extends ICalendar {
}
interface ICalendarWeek extends Omit<ICalendar, 'value'> {
readonly value: Date | {
readonly from: Date;
readonly to: Date;
};
}
interface ICalendarMonth extends Omit<ICalendar, 'value'> {
readonly value: Date | {
readonly from: Date;
readonly to: Date;
};
}
interface ICalendarYear extends Omit<ICalendar, 'value'> {
readonly value: Date | {
readonly from: Date;
readonly to: Date;
};
}
declare class NgxCalendarClass<R> {
private readonly calendar;
private readonly container;
private readonly ngxHelperContainerService;
private readonly title?;
constructor(calendar: NgxCalendar | 'MOMENT', container: IContainer, ngxHelperContainerService: NgxHelperContainerService, title?: string | undefined);
private getTitle;
dialog(onResponse: (response: R) => void): void;
dialog(onResponse: (response: R) => void, onDismiss: () => void): void;
bottomSheet(onResponse: (response: R) => void): void;
bottomSheet(onResponse: (response: R) => void, onDismiss: () => void): void;
}
declare class NgxCalendarService {
private readonly ngxHelperContainerService;
constructor(ngxHelperContainerService: NgxHelperContainerService);
getDate(): NgxCalendarClass<INgxCalendarDate>;
getDate(options: Partial<ICalendarDate>): NgxCalendarClass<INgxCalendarDate>;
getMoment(): NgxCalendarClass<INgxCalendarMoment>;
getMoment(options: Partial<ICalendarMoment>): NgxCalendarClass<INgxCalendarMoment>;
getWeek(): NgxCalendarClass<INgxCalendarWeek>;
getWeek(options: Partial<ICalendarWeek>): NgxCalendarClass<INgxCalendarWeek>;
getMonth(): NgxCalendarClass<INgxCalendarMonth>;
getMonth(options: Partial<ICalendarMonth>): NgxCalendarClass<INgxCalendarMonth>;
getYear(): NgxCalendarClass<INgxCalendarYear>;
getYear(options: Partial<ICalendarYear>): NgxCalendarClass<INgxCalendarYear>;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<NgxCalendarService>;
}
declare class NgxCalendarComponent implements OnInit {
private readonly activatedRoute;
private readonly router;
private readonly ngxCalendarService;
private className;
cssWidth: string;
cssHeight: string;
calendars: NgxCalendar[];
minDate?: 'NOW' | Date;
maxDate?: 'NOW' | Date;
width?: string;
height: string;
route: string[];
container: 'DIALOG' | 'BOTTONSHEET';
onChanged: EventEmitter<INgxCalendar>;
calendar: NgxCalendar;
calendarTitle: string;
periodTitle: string | [string, string];
from: Date;
to: Date;
previous: {
active: boolean;
date: Date;
};
next: {
active: boolean;
date: Date;
};
private jalali;
list: NgxCalendar[];
calendarsList: {
[key in NgxCalendar]: {
title: string;
icon: string;
method: (v: number, d?: Date, t?: string) => JalaliDateTimePeriod;
};
};
constructor(activatedRoute: ActivatedRoute, router: Router, ngxCalendarService: NgxCalendarService);
ngOnInit(): void;
getMinMax(): {
minDate: Date | undefined;
maxDate: Date | undefined;
};
updateView(): void;
setCalendar(calendar: NgxCalendar, from?: Date, to?: Date): void;
setPrevious(): void;
setNext(): void;
getDate(): void;
getWeek(): void;
getMonth(): void;
getYear(): void;
getPeriodFrom(): void;
getPeriodTo(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarComponent, "ngx-calendar", never, { "calendars": { "alias": "calendars"; "required": true; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "route": { "alias": "route"; "required": false; }; "container": { "alias": "container"; "required": false; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
}
interface INgxCalendarDay {
readonly day: string;
readonly title: string;
}
declare class NgxCalendarDayComponent implements OnInit {
private readonly activatedRoute;
private readonly router;
private className;
cssWidth: string;
cssHeight: string;
width?: string;
height: string;
route: string[];
onChanged: EventEmitter<INgxCalendarDay>;
day: string;
title: string;
view?: 'MONTH' | 'DAY';
selected?: {
month: number;
title: string;
};
months: string[][];
days: (number | null)[][];
private jalali;
constructor(activatedRoute: ActivatedRoute, router: Router);
ngOnInit(): void;
updateView(): void;
setPrevious(): void;
setNext(): void;
setMonth(month: number): void;
setDay(day: number | null): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarDayComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<NgxCalendarDayComponent, "ngx-calendar-day", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "route": { "alias": "route"; "required": false; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
}
export { NgxCalendarComponent, NgxCalendarDateComponent, NgxCalendarDayComponent, NgxCalendarMomentComponent, NgxCalendarMonthComponent, NgxCalendarService, NgxCalendarWeekComponent, NgxCalendarYearComponent };
export type { INgxCalendar, INgxCalendarDate, INgxCalendarDay, INgxCalendarMoment, INgxCalendarMonth, INgxCalendarWeek, INgxCalendarYear, NgxCalendar };