@brickclay/calendar 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,173 @@
1
+ import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { CalendarManagerService } from '../../services/calendar-manager.service';
3
+ import * as i0 from "@angular/core";
4
+ export interface CalendarRange {
5
+ start: Date;
6
+ end: Date;
7
+ }
8
+ export interface CalendarSelection {
9
+ startDate: Date | null;
10
+ endDate: Date | null;
11
+ selectedDates?: Date[];
12
+ }
13
+ export declare class CustomCalendarComponent implements OnInit, OnDestroy, OnChanges {
14
+ private calendarManager;
15
+ enableTimepicker: boolean;
16
+ autoApply: boolean;
17
+ closeOnAutoApply: boolean;
18
+ showCancel: boolean;
19
+ linkedCalendars: boolean;
20
+ singleDatePicker: boolean;
21
+ showWeekNumbers: boolean;
22
+ showISOWeekNumbers: boolean;
23
+ customRangeDirection: boolean;
24
+ lockStartDate: boolean;
25
+ position: 'center' | 'left' | 'right';
26
+ drop: 'up' | 'down';
27
+ dualCalendar: boolean;
28
+ showRanges: boolean;
29
+ timeFormat: 12 | 24;
30
+ enableSeconds: boolean;
31
+ customRanges?: Record<string, CalendarRange>;
32
+ multiDateSelection: boolean;
33
+ maxDate?: Date;
34
+ minDate?: Date;
35
+ placeholder: string;
36
+ opens: 'left' | 'right' | 'center';
37
+ inline: boolean;
38
+ isDisplayCrossIcon: boolean;
39
+ selected: EventEmitter<CalendarSelection>;
40
+ opened: EventEmitter<void>;
41
+ closed: EventEmitter<void>;
42
+ /**
43
+ * External value passed from parent. If provided, component will select these dates on init / change.
44
+ * Accepts { startDate: Date|null, endDate: Date|null, selectedDates?: Date[] }
45
+ */
46
+ selectedValue: CalendarSelection | null;
47
+ /** Optional display format for the input value. Uses moment formatting tokens. */
48
+ displayFormat: string;
49
+ show: boolean;
50
+ today: Date;
51
+ month: number;
52
+ year: number;
53
+ calendar: {
54
+ day: number;
55
+ currentMonth: boolean;
56
+ }[][];
57
+ leftMonth: number;
58
+ leftYear: number;
59
+ rightMonth: number;
60
+ rightYear: number;
61
+ leftCalendar: {
62
+ day: number;
63
+ currentMonth: boolean;
64
+ }[][];
65
+ rightCalendar: {
66
+ day: number;
67
+ currentMonth: boolean;
68
+ }[][];
69
+ startDate: Date | null;
70
+ endDate: Date | null;
71
+ selectedDates: Date[];
72
+ disableHighlight: boolean;
73
+ hoveredDate: Date | null;
74
+ minuteInputValues: {
75
+ [key: string]: string;
76
+ };
77
+ selectedHour: number;
78
+ selectedMinute: number;
79
+ selectedSecond: number;
80
+ selectedAMPM: 'AM' | 'PM';
81
+ startHour: number;
82
+ startMinute: number;
83
+ startSecond: number;
84
+ startAMPM: 'AM' | 'PM';
85
+ endHour: number;
86
+ endMinute: number;
87
+ endSecond: number;
88
+ endAMPM: 'AM' | 'PM';
89
+ openTimePickerId: string | null;
90
+ closePickerCounter: {
91
+ [key: string]: number;
92
+ };
93
+ defaultRanges: Record<string, CalendarRange>;
94
+ activeRange: string | null;
95
+ rangeOrder: string[];
96
+ private unregisterFn?;
97
+ private closeAllSubscription?;
98
+ private closeFn?;
99
+ constructor(calendarManager: CalendarManagerService);
100
+ onClickOutside(event: MouseEvent): void;
101
+ ngOnInit(): void;
102
+ ngOnChanges(changes: SimpleChanges): void;
103
+ ngOnDestroy(): void;
104
+ checkAndSetActiveRange(): void;
105
+ initializeDefaultRanges(): void;
106
+ initializeTimeFromDate(date: Date, isStart: boolean): void;
107
+ toggle(): void;
108
+ close(): void;
109
+ onDateHover(day: number | null, fromRight?: boolean): void;
110
+ onDateLeave(): void;
111
+ selectDate(day: number | null, fromRight?: boolean): void;
112
+ handleMultiDateSelection(selected: Date): void;
113
+ getDateString(date: Date): string;
114
+ isDateInMultiSelection(year: number, month: number, day: number): boolean;
115
+ apply(): void;
116
+ cancel(): void;
117
+ clear(): void;
118
+ chooseRange(key: string): void;
119
+ emitSelection(): void;
120
+ addDays(date: Date, days: number): Date;
121
+ generateCalendar(): void;
122
+ nextMonth(): void;
123
+ prevMonth(): void;
124
+ nextLeftMonth(): void;
125
+ prevLeftMonth(): void;
126
+ nextRightMonth(): void;
127
+ prevRightMonth(): void;
128
+ initializeDual(): void;
129
+ generateDualCalendars(): void;
130
+ buildCalendar(year: number, month: number): {
131
+ day: number;
132
+ currentMonth: boolean;
133
+ }[][];
134
+ isDateSelected(year: number, month: number, day: number): boolean;
135
+ isDateInRange(year: number, month: number, day: number): boolean;
136
+ isDateDisabled(year: number, month: number, day: number): boolean;
137
+ isToday(year: number, month: number, day: number): boolean;
138
+ getDisplayValue(): string;
139
+ getTimeInputValue(isStart?: boolean): string;
140
+ getSingleTimeInputValue(): string;
141
+ getSingleTimePickerDisplay(): string;
142
+ getDualTimePickerDisplay(isStart?: boolean): string;
143
+ onTimePickerOpened(pickerId: string): void;
144
+ onTimePickerClosed(pickerId: string): void;
145
+ shouldClosePicker(pickerId: string): number;
146
+ private parsePickerTimeString;
147
+ onSingleTimePickerChange(time: string): void;
148
+ onDualTimePickerChange(time: string, isStart?: boolean): void;
149
+ onTimeChange(event: any, isStart?: boolean): void;
150
+ onSingleTimeChange(event: any): void;
151
+ incrementHour(isStart?: boolean): void;
152
+ decrementHour(isStart?: boolean): void;
153
+ incrementMinute(isStart?: boolean): void;
154
+ decrementMinute(isStart?: boolean): void;
155
+ toggleAMPM(isStart?: boolean): void;
156
+ incrementSingleHour(): void;
157
+ decrementSingleHour(): void;
158
+ incrementSingleMinute(): void;
159
+ decrementSingleMinute(): void;
160
+ toggleSingleAMPM(): void;
161
+ getMonthName(month: number): string;
162
+ onHourInput(event: any, isStart?: boolean, isSingle?: boolean): void;
163
+ onHourBlur(event: any, isStart?: boolean, isSingle?: boolean): void;
164
+ onMinuteInput(event: any, isStart?: boolean, isSingle?: boolean): void;
165
+ onMinuteBlur(event: any, isStart?: boolean, isSingle?: boolean): void;
166
+ getDisplayHour(hour: number): number;
167
+ getMinuteDisplayValue(isStart: boolean, isSingle: boolean): string;
168
+ applyTimeToDate(date: Date, isStart: boolean): void;
169
+ onTimeInputFocus(event: any): void;
170
+ formatAllMinuteInputs(): void;
171
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomCalendarComponent, never>;
172
+ static ɵcmp: i0.ɵɵComponentDeclaration<CustomCalendarComponent, "app-custom-calendar", never, { "enableTimepicker": { "alias": "enableTimepicker"; "required": false; }; "autoApply": { "alias": "autoApply"; "required": false; }; "closeOnAutoApply": { "alias": "closeOnAutoApply"; "required": false; }; "showCancel": { "alias": "showCancel"; "required": false; }; "linkedCalendars": { "alias": "linkedCalendars"; "required": false; }; "singleDatePicker": { "alias": "singleDatePicker"; "required": false; }; "showWeekNumbers": { "alias": "showWeekNumbers"; "required": false; }; "showISOWeekNumbers": { "alias": "showISOWeekNumbers"; "required": false; }; "customRangeDirection": { "alias": "customRangeDirection"; "required": false; }; "lockStartDate": { "alias": "lockStartDate"; "required": false; }; "position": { "alias": "position"; "required": false; }; "drop": { "alias": "drop"; "required": false; }; "dualCalendar": { "alias": "dualCalendar"; "required": false; }; "showRanges": { "alias": "showRanges"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; "customRanges": { "alias": "customRanges"; "required": false; }; "multiDateSelection": { "alias": "multiDateSelection"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "opens": { "alias": "opens"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "isDisplayCrossIcon": { "alias": "isDisplayCrossIcon"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; "displayFormat": { "alias": "displayFormat"; "required": false; }; }, { "selected": "selected"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
173
+ }
@@ -0,0 +1,78 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { CalendarSelection } from '../custom-calendar/custom-calendar.component';
3
+ import * as i0 from "@angular/core";
4
+ export interface TimeConfiguration {
5
+ date: Date;
6
+ allDay: boolean;
7
+ startTime: string;
8
+ endTime: string;
9
+ }
10
+ export interface ScheduledDateSelection {
11
+ mode: 'single' | 'multiple' | 'range';
12
+ singleDate?: {
13
+ startDate: Date;
14
+ endDate: Date;
15
+ allDay: boolean;
16
+ startTime: string;
17
+ endTime: string;
18
+ };
19
+ multipleDates?: TimeConfiguration[];
20
+ dateRange?: {
21
+ startDate: Date;
22
+ endDate: Date;
23
+ allDay: boolean;
24
+ startTime: string;
25
+ endTime: string;
26
+ };
27
+ }
28
+ export declare class ScheduledDatePickerComponent implements OnInit {
29
+ timeFormat: 12 | 24;
30
+ enableSeconds: boolean;
31
+ scheduled: EventEmitter<ScheduledDateSelection>;
32
+ cleared: EventEmitter<void>;
33
+ activeTab: 'single' | 'multiple' | 'range';
34
+ openTimePickerId: string | null;
35
+ closePickerCounter: {
36
+ [key: string]: number;
37
+ };
38
+ singleDate: Date | null;
39
+ singleAllDay: boolean;
40
+ singleStartTime: string;
41
+ singleEndTime: string;
42
+ multipleDates: TimeConfiguration[];
43
+ rangeStartDate: Date | null;
44
+ rangeEndDate: Date | null;
45
+ rangeAllDay: boolean;
46
+ rangeStartTime: string;
47
+ rangeEndTime: string;
48
+ ngOnInit(): void;
49
+ onTabChange(tab: 'single' | 'multiple' | 'range'): void;
50
+ onTimePickerOpened(pickerId: string): void;
51
+ onTimePickerClosed(pickerId: string): void;
52
+ shouldClosePicker(pickerId: string): number;
53
+ onSingleDateSelected(event: CalendarSelection): void;
54
+ onSingleAllDayChange(): void;
55
+ onSingleStartTimeChange(time: string): void;
56
+ onSingleEndTimeChange(time: string): void;
57
+ updateSingleDateTimes(): void;
58
+ onMultipleDatesSelected(event: CalendarSelection): void;
59
+ onMultipleDateAllDayChange(index: number): void;
60
+ onMultipleDateStartTimeChange(index: number, time: string): void;
61
+ onMultipleDateEndTimeChange(index: number, time: string): void;
62
+ onRangeSelected(event: CalendarSelection): void;
63
+ onRangeAllDayChange(): void;
64
+ onRangeStartTimeChange(time: string): void;
65
+ onRangeEndTimeChange(time: string): void;
66
+ updateRangeTimes(): void;
67
+ parseTimeString(timeStr: string): {
68
+ hours: number;
69
+ minutes: number;
70
+ };
71
+ getDateString(date: Date): string;
72
+ formatDate(date: Date): string;
73
+ emitScheduled(): void;
74
+ clear(): void;
75
+ apply(): void;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScheduledDatePickerComponent, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScheduledDatePickerComponent, "app-scheduled-date-picker", never, { "timeFormat": { "alias": "timeFormat"; "required": false; }; "enableSeconds": { "alias": "enableSeconds"; "required": false; }; }, { "scheduled": "scheduled"; "cleared": "cleared"; }, never, never, true, never>;
78
+ }
@@ -0,0 +1,48 @@
1
+ import { EventEmitter, OnInit, OnChanges, AfterViewInit, QueryList, ElementRef, SimpleChanges } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class TimePickerComponent implements OnInit, OnChanges, AfterViewInit {
4
+ value: string;
5
+ label: string;
6
+ placeholder: string;
7
+ position: 'left' | 'right';
8
+ pickerId: string;
9
+ closePicker: number;
10
+ timeFormat: 12 | 24;
11
+ showSeconds: boolean;
12
+ timeChange: EventEmitter<string>;
13
+ pickerOpened: EventEmitter<string>;
14
+ pickerClosed: EventEmitter<string>;
15
+ timeScrollElements: QueryList<ElementRef>;
16
+ showPicker: boolean;
17
+ currentHour: number;
18
+ currentMinute: number;
19
+ currentAMPM: string;
20
+ currentSecond: number;
21
+ ngOnInit(): void;
22
+ ngAfterViewInit(): void;
23
+ parseTimeValue(): void;
24
+ getHours(): number[];
25
+ getMinutes(): number[];
26
+ getSeconds(): number[];
27
+ getAMPMOptions(): string[];
28
+ parseTimeStringToComponents(timeStr: string): {
29
+ hour: number;
30
+ minute: number;
31
+ second: number;
32
+ ampm: string;
33
+ };
34
+ formatTimeFromComponents(hour: number, minute: number, second: number, ampm: string): string;
35
+ togglePicker(): void;
36
+ onHourChange(hour: number): void;
37
+ onMinuteChange(minute: number): void;
38
+ onSecondChange(second: number): void;
39
+ onAMPMChange(ampm: string): void;
40
+ updateTime(): void;
41
+ scrollToSelectedTimes(): void;
42
+ onDocumentClick(event: MouseEvent): void;
43
+ private previousCloseCounter;
44
+ ngOnChanges(changes: SimpleChanges): void;
45
+ onInputKeydown(event: KeyboardEvent): void;
46
+ static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerComponent, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerComponent, "app-time-picker", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "position": { "alias": "position"; "required": false; }; "pickerId": { "alias": "pickerId"; "required": false; }; "closePicker": { "alias": "closePicker"; "required": false; }; "timeFormat": { "alias": "timeFormat"; "required": false; }; "showSeconds": { "alias": "showSeconds"; "required": false; }; }, { "timeChange": "timeChange"; "pickerOpened": "pickerOpened"; "pickerClosed": "pickerClosed"; }, never, never, true, never>;
48
+ }
@@ -0,0 +1,20 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CalendarManagerService {
3
+ private calendarInstances;
4
+ private closeAllSubject;
5
+ closeAll$: import("rxjs").Observable<void>;
6
+ /**
7
+ * Register a calendar instance with its close function
8
+ */
9
+ register(closeFn: () => void): () => void;
10
+ /**
11
+ * Close all calendars except the one being opened
12
+ */
13
+ closeAllExcept(exceptCloseFn: () => void): void;
14
+ /**
15
+ * Close all calendars
16
+ */
17
+ closeAll(): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<CalendarManagerService, never>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<CalendarManagerService>;
20
+ }