nxt-pick-datetime 20.0.0 → 21.0.0

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,1200 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, Signal, OutputEmitterRef, OnInit, OnDestroy, AfterContentInit, ElementRef } from '@angular/core';
3
+ import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
4
+ import * as nxt_pick_datetime from 'nxt-pick-datetime';
5
+ import { ScrollStrategy } from '@angular/cdk/overlay';
6
+
7
+ declare abstract class DateTimeAdapter<T> {
8
+ /** The locale to use for all dates */
9
+ protected readonly locale: _angular_core.WritableSignal<any>;
10
+ /** total milliseconds in a day */
11
+ protected readonly millisecondsInDay = 86400000;
12
+ /** total milliseconds in a minute */
13
+ protected readonly milliseondsInMinute = 60000;
14
+ /**
15
+ * Get the year of the given date
16
+ */
17
+ abstract getYear(date?: T): number;
18
+ /**
19
+ * Get the month of the given date
20
+ * 0 -- January
21
+ * 11 -- December
22
+ * */
23
+ abstract getMonth(date?: T): number;
24
+ /**
25
+ * Get the day of the week of the given date
26
+ * 0 -- Sunday
27
+ * 6 -- Saturday
28
+ * */
29
+ abstract getDay(date?: T): number;
30
+ /**
31
+ * Get the day num of the given date
32
+ */
33
+ abstract getDate(date?: T): number;
34
+ /**
35
+ * Get the hours of the given date
36
+ */
37
+ abstract getHours(date?: T): number;
38
+ /**
39
+ * Get the minutes of the given date
40
+ */
41
+ abstract getMinutes(date?: T): number;
42
+ /**
43
+ * Get the seconds of the given date
44
+ */
45
+ abstract getSeconds(date?: T): number;
46
+ /**
47
+ * Get the milliseconds timestamp of the given date
48
+ */
49
+ abstract getTime(date?: T): number;
50
+ /**
51
+ * Gets the number of days in the month of the given date.
52
+ */
53
+ abstract getNumDaysInMonth(date?: T): number;
54
+ /**
55
+ * Get the number of calendar days between the given dates.
56
+ * If dateLeft is before dateRight, it would return positive value
57
+ * If dateLeft is after dateRight, it would return negative value
58
+ */
59
+ abstract differenceInCalendarDays(dateLeft?: T, dateRight?: T): number | undefined;
60
+ /**
61
+ * Gets the name for the year of the given date.
62
+ */
63
+ abstract getYearName(date?: T): string;
64
+ /**
65
+ * Get a list of month names
66
+ */
67
+ abstract getMonthNames(style: 'long' | 'short' | 'narrow'): string[];
68
+ /**
69
+ * Get a list of week names
70
+ */
71
+ abstract getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[];
72
+ /**
73
+ * Gets a list of names for the dates of the month.
74
+ */
75
+ abstract getDateNames(): string[];
76
+ /**
77
+ * Return a Date object as a string, using the ISO standard
78
+ */
79
+ abstract toIso8601(date: T): string;
80
+ /**
81
+ * Check if the give dates are equal
82
+ */
83
+ abstract isEqual(dateLeft?: T, dateRight?: T): boolean;
84
+ /**
85
+ * Check if the give dates are the same day
86
+ */
87
+ abstract isSameDay(dateLeft?: T, dateRight?: T): boolean;
88
+ /**
89
+ * Checks whether the given date is valid.
90
+ */
91
+ abstract isValid(date?: T): boolean;
92
+ /**
93
+ * Gets date instance that is not valid.
94
+ */
95
+ abstract invalid(): T;
96
+ /**
97
+ * Checks whether the given object is considered a date instance by this DateTimeAdapter.
98
+ */
99
+ abstract isDateInstance(obj: any): boolean;
100
+ /**
101
+ * Add the specified number of years to the given date
102
+ */
103
+ abstract addCalendarYears(date: T | undefined, amount: number): T;
104
+ /**
105
+ * Add the specified number of months to the given date
106
+ */
107
+ abstract addCalendarMonths(date: T | undefined, amount: number): T;
108
+ /**
109
+ * Add the specified number of days to the given date
110
+ */
111
+ abstract addCalendarDays(date: T | undefined, amount: number): T;
112
+ /**
113
+ * Set the hours to the given date.
114
+ */
115
+ abstract setHours(date: T | undefined, amount: number): T;
116
+ /**
117
+ * Set the minutes to the given date.
118
+ */
119
+ abstract setMinutes(date: T | undefined, amount: number): T;
120
+ /**
121
+ * Set the seconds to the given date.
122
+ */
123
+ abstract setSeconds(date: T | undefined, amount: number): T;
124
+ /**
125
+ * Creates a date with the given year, month, date, hour, minute and second. Does not allow over/under-flow of the
126
+ * month and date.
127
+ */
128
+ abstract createDate(year: number, month: number, date: number): T;
129
+ abstract createDate(year: number, month: number, date: number, hours: number, minutes: number, seconds: number): T;
130
+ /**
131
+ * Clone the given date
132
+ */
133
+ abstract clone(date?: T): T;
134
+ /**
135
+ * Get a new moment
136
+ * */
137
+ abstract now(): T;
138
+ /**
139
+ * Formats a date as a string according to the given format.
140
+ */
141
+ abstract format(date: T | undefined, displayFormat: any): string;
142
+ /**
143
+ * Parse a user-provided value to a Date Object
144
+ */
145
+ abstract parse(value: any, parseFormat: any): T | undefined;
146
+ /**
147
+ * Compare two given dates
148
+ * 1 if the first date is after the second,
149
+ * -1 if the first date is before the second
150
+ * 0 if dates are equal.
151
+ * */
152
+ compare(first?: T, second?: T): number;
153
+ /**
154
+ * Check if two given dates are in the same year
155
+ * 1 if the first date's year is after the second,
156
+ * -1 if the first date's year is before the second
157
+ * 0 if two given dates are in the same year
158
+ * */
159
+ compareYear(first?: T, second?: T): number;
160
+ /**
161
+ * Attempts to deserialize a value to a valid date object. This is different from parsing in that
162
+ * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601
163
+ * string). The default implementation does not allow any deserialization, it simply checks that
164
+ * the given value is already a valid date object or null. The `<mat-datepicker>` will call this
165
+ * method on all of it's `input` properties that accept dates. It is therefore possible to
166
+ * support passing values from your backend directly to these properties by overriding this method
167
+ * to also deserialize the format used by your backend.
168
+ */
169
+ deserialize(value: any): T | undefined;
170
+ /**
171
+ * Sets the locale used for all dates.
172
+ */
173
+ setLocale(locale: any): void;
174
+ /**
175
+ * Clamp the given date between min and max dates.
176
+ */
177
+ clampDate(date: T, min?: T, max?: T): T;
178
+ }
179
+
180
+ interface DateTimeFormats {
181
+ parseInput: any;
182
+ fullPickerInput: any;
183
+ datePickerInput: any;
184
+ timePickerInput: any;
185
+ monthYearLabel: any;
186
+ dateA11yLabel: any;
187
+ monthYearA11yLabel: any;
188
+ }
189
+ /** InjectionToken for date time picker that can be used to override default format */
190
+ declare const NXT_DATE_TIME_FORMATS: InjectionToken<DateTimeFormats>;
191
+
192
+ type PickerType = 'both' | 'calendar' | 'timer';
193
+ type PickerMode = 'popup' | 'dialog' | 'inline';
194
+ type SelectMode = 'single' | 'range' | 'rangeFrom' | 'rangeTo';
195
+ type RenderItem = 'year' | 'month' | 'date';
196
+ type ViewType = 'month' | 'year' | 'multi-years';
197
+ type DateFilter<T> = (date?: T, forRender?: RenderItem) => boolean;
198
+ declare abstract class DateTimeDirective<T> {
199
+ protected readonly dateTimeAdapter: DateTimeAdapter<T>;
200
+ protected readonly dateTimeFormats: DateTimeFormats;
201
+ /**
202
+ * When true, shows a timer to configure the seconds value
203
+ */
204
+ readonly showSecondsTimer: _angular_core.InputSignal<boolean>;
205
+ /**
206
+ * When true, the timer will be in 12-hour format mode
207
+ */
208
+ readonly hour12Timer: _angular_core.InputSignal<boolean>;
209
+ /**
210
+ * The view that the calendar should start on
211
+ */
212
+ readonly startView: _angular_core.InputSignal<ViewType>;
213
+ /**
214
+ * Hours to change per step
215
+ */
216
+ readonly stepHour: _angular_core.InputSignal<number>;
217
+ /**
218
+ * Minutes to change per step
219
+ */
220
+ readonly stepMinute: _angular_core.InputSignal<number>;
221
+ /**
222
+ * Seconds to change per step
223
+ */
224
+ readonly stepSecond: _angular_core.InputSignal<number>;
225
+ /**
226
+ * Set the first day of week
227
+ *
228
+ * Valid values are from 0 [Sunday] to 6 [Saturday]
229
+ */
230
+ readonly firstDayOfWeek: _angular_core.InputSignal<number>;
231
+ /**
232
+ * If true, don't show dates from preious / next month on the calendar month view
233
+ */
234
+ readonly hideOtherMonths: _angular_core.InputSignal<boolean>;
235
+ readonly id: string;
236
+ abstract selected: Signal<T | undefined>;
237
+ abstract selecteds: Signal<Array<T | undefined>>;
238
+ abstract dateTimeFilter: Signal<DateFilter<T> | undefined>;
239
+ abstract max: Signal<T | undefined>;
240
+ abstract min: Signal<T | undefined>;
241
+ abstract selectMode: Signal<SelectMode | undefined>;
242
+ abstract startAt: Signal<T | undefined>;
243
+ abstract isOpen: Signal<boolean>;
244
+ abstract pickerMode: Signal<PickerMode>;
245
+ abstract pickerType: Signal<PickerType>;
246
+ abstract isInSingleMode: Signal<boolean>;
247
+ abstract isInRangeMode: Signal<boolean>;
248
+ abstract disabled: Signal<boolean>;
249
+ abstract select(date: T | Array<T | undefined>): void;
250
+ abstract yearSelected: OutputEmitterRef<T>;
251
+ abstract monthSelected: OutputEmitterRef<T>;
252
+ abstract selectYear(normalizedYear: T): void;
253
+ abstract selectMonth(normalizedMonth: T): void;
254
+ readonly formatString: Signal<any>;
255
+ /**
256
+ * Date Time Checker to check if the give dateTime is selectable
257
+ */
258
+ readonly dateTimeChecker: _angular_core.WritableSignal<(dateTime: T | undefined) => boolean>;
259
+ protected getValidDate(obj: any): T | undefined;
260
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeDirective<any>, never>;
261
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DateTimeDirective<any>, never, never, { "showSecondsTimer": { "alias": "showSecondsTimer"; "required": false; "isSignal": true; }; "hour12Timer": { "alias": "hour12Timer"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; "stepHour": { "alias": "stepHour"; "required": false; "isSignal": true; }; "stepMinute": { "alias": "stepMinute"; "required": false; "isSignal": true; }; "stepSecond": { "alias": "stepSecond"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "hideOtherMonths": { "alias": "hideOtherMonths"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
262
+ }
263
+
264
+ declare class CalendarCell {
265
+ value: number;
266
+ displayValue: string;
267
+ ariaLabel: string;
268
+ enabled: boolean;
269
+ out: boolean;
270
+ cellClass: string;
271
+ constructor(value: number, displayValue: string, ariaLabel: string, enabled: boolean, out?: boolean, cellClass?: string);
272
+ }
273
+
274
+ declare class MonthViewComponent<T> {
275
+ private readonly dateTimeAdapter;
276
+ private readonly dateTimeFormats;
277
+ /**
278
+ * Whether to hide dates in other months at the start or end of the current month
279
+ */
280
+ readonly hideOtherMonths: _angular_core.InputSignal<boolean>;
281
+ private _firstDayOfWeek;
282
+ /**
283
+ * Define the first day of a week
284
+ * Sunday: 0 ~ Saturday: 6
285
+ */
286
+ readonly firstDayOfWeek: _angular_core.InputSignalWithTransform<number, number>;
287
+ /**
288
+ * The select mode of the picker;
289
+ */
290
+ readonly selectMode: _angular_core.InputSignal<SelectMode>;
291
+ /** The currently selected date */
292
+ readonly selected: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
293
+ readonly selecteds: _angular_core.InputSignalWithTransform<(T | undefined)[], (T | undefined)[]>;
294
+ readonly pickerMoment: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
295
+ /**
296
+ * A function used to filter which dates are selectable
297
+ */
298
+ readonly dateTimeFilter: _angular_core.InputSignal<DateFilter<T> | undefined>;
299
+ /** The minimum selectable date */
300
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
301
+ /** The maximum selectable date */
302
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
303
+ readonly weekdays: _angular_core.Signal<{
304
+ long: string;
305
+ short: string;
306
+ narrow: string;
307
+ }[]>;
308
+ readonly _daysData: _angular_core.Signal<{
309
+ days: CalendarCell[][];
310
+ todayDate: number | undefined;
311
+ firstRowOffset: number;
312
+ } | undefined>;
313
+ private _days?;
314
+ readonly days: _angular_core.Signal<CalendarCell[][] | undefined>;
315
+ readonly activeCell: _angular_core.Signal<number | undefined>;
316
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
317
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
318
+ private firstDateOfMonth;
319
+ private _todayDate?;
320
+ /**
321
+ * The date of the month that today falls on.
322
+ */
323
+ readonly todayDate: _angular_core.Signal<number | undefined>;
324
+ private _selectedDates?;
325
+ /**
326
+ * An array to hold all selectedDates' value
327
+ * the value is the day number in current month
328
+ */
329
+ readonly selectedDates: _angular_core.Signal<(number | undefined)[] | undefined>;
330
+ private _firstRowOffset;
331
+ readonly firstRowOffset: _angular_core.Signal<number>;
332
+ /**
333
+ * Callback to invoke when a new date is selected
334
+ */
335
+ readonly selectedChange: _angular_core.OutputEmitterRef<T | undefined>;
336
+ /**
337
+ * Callback to invoke when any date is selected.
338
+ */
339
+ readonly userSelection: _angular_core.OutputEmitterRef<void>;
340
+ /** Emits when any date is activated */
341
+ readonly pickerMomentChange: _angular_core.OutputEmitterRef<T>;
342
+ /** The body of calendar table */
343
+ private readonly calendarBodyElm;
344
+ /**
345
+ * Handle a calendarCell selected
346
+ */
347
+ selectCalendarCell(cell: CalendarCell): void;
348
+ /**
349
+ * Handle a new date selected
350
+ */
351
+ private selectDate;
352
+ /**
353
+ * Handle keydown event on calendar body
354
+ */
355
+ handleCalendarKeydown(event: KeyboardEvent): void;
356
+ /**
357
+ * Creates CalendarCell for days.
358
+ */
359
+ private createDateCell;
360
+ /**
361
+ * Check if the date is valid
362
+ */
363
+ private isDateEnabled;
364
+ /**
365
+ * Get a valid date object
366
+ */
367
+ private getValidDate;
368
+ /**
369
+ * Check if the give dates are defined and in the same month
370
+ */
371
+ isSameMonth(dateLeft?: T, dateRight?: T): boolean;
372
+ private focusActiveCell;
373
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MonthViewComponent<any>, never>;
374
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MonthViewComponent<any>, "nxt-date-time-month-view", never, { "hideOtherMonths": { "alias": "hideOtherMonths"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "selecteds": { "alias": "selecteds"; "required": false; "isSignal": true; }; "pickerMoment": { "alias": "pickerMoment"; "required": false; "isSignal": true; }; "dateTimeFilter": { "alias": "dateTimeFilter"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "selectedChange": "selectedChange"; "userSelection": "userSelection"; "pickerMomentChange": "pickerMomentChange"; }, never, never, true, never>;
375
+ }
376
+
377
+ declare class MultiYearViewComponent<T> {
378
+ private readonly pickerIntl;
379
+ private readonly dateTimeAdapter;
380
+ /**
381
+ * The select mode of the picker;
382
+ */
383
+ readonly selectMode: _angular_core.InputSignal<SelectMode>;
384
+ /** The currently selected date */
385
+ readonly selected: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
386
+ readonly selecteds: _angular_core.InputSignalWithTransform<(T | undefined)[], (T | undefined)[]>;
387
+ /** Settable signal for pickerMoment */
388
+ readonly _pickerMomentInput: _angular_core.InputSignal<T | undefined>;
389
+ private readonly _pickerMoment;
390
+ readonly pickerMoment: _angular_core.Signal<T>;
391
+ /**
392
+ * A function used to filter which dates are selectable
393
+ */
394
+ readonly dateTimeFilter: _angular_core.InputSignal<DateFilter<T> | undefined>;
395
+ /** The minimum selectable date */
396
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
397
+ /** The maximum selectable date */
398
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
399
+ private readonly yearsData;
400
+ readonly years: _angular_core.Signal<CalendarCell[][]>;
401
+ readonly todayYear: _angular_core.Signal<number>;
402
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
403
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
404
+ readonly selectedYears: _angular_core.Signal<(number | undefined)[]>;
405
+ readonly activeCell: _angular_core.Signal<number | undefined>;
406
+ readonly tableHeader: _angular_core.Signal<string | undefined>;
407
+ readonly prevButtonLabel: _angular_core.Signal<string>;
408
+ readonly nextButtonLabel: _angular_core.Signal<string>;
409
+ /**
410
+ * Callback to invoke when a new month is selected
411
+ */
412
+ readonly change: _angular_core.OutputEmitterRef<T>;
413
+ /**
414
+ * Emits the selected year
415
+ *
416
+ * This doesn't imply a change on the selected date.
417
+ */
418
+ readonly yearSelected: _angular_core.OutputEmitterRef<T>;
419
+ /** Emits when any date is activated */
420
+ readonly pickerMomentChange: _angular_core.OutputEmitterRef<T>;
421
+ /** Emits when use keyboard enter to select a calendar cell */
422
+ readonly keyboardEnter: _angular_core.OutputEmitterRef<void>;
423
+ /** The body of calendar table */
424
+ private readonly calendarBodyElm;
425
+ /**
426
+ * Handle a calendarCell selected
427
+ */
428
+ selectCalendarCell(cell: CalendarCell): void;
429
+ private selectYear;
430
+ /**
431
+ * Generate the previous year list
432
+ */
433
+ prevYearList(event: any): void;
434
+ /**
435
+ * Generate the next year list
436
+ */
437
+ nextYearList(event: any): void;
438
+ /** Whether the previous period button is enabled */
439
+ previousEnabled(): boolean;
440
+ /** Whether the next period button is enabled */
441
+ nextEnabled(): boolean;
442
+ handleCalendarKeydown(event: KeyboardEvent): void;
443
+ /**
444
+ * Creates an CalendarCell for the given year.
445
+ */
446
+ private createYearCell;
447
+ /** Whether the given year is enabled */
448
+ private isYearEnabled;
449
+ private isSameYearList;
450
+ /**
451
+ * Get a valid date object
452
+ */
453
+ private getValidDate;
454
+ private focusActiveCell;
455
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MultiYearViewComponent<any>, never>;
456
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MultiYearViewComponent<any>, "nxt-date-time-multi-year-view", never, { "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "selecteds": { "alias": "selecteds"; "required": false; "isSignal": true; }; "_pickerMomentInput": { "alias": "pickerMoment"; "required": false; "isSignal": true; }; "dateTimeFilter": { "alias": "dateTimeFilter"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "change": "change"; "yearSelected": "yearSelected"; "pickerMomentChange": "pickerMomentChange"; "keyboardEnter": "keyboardEnter"; }, never, never, true, never>;
457
+ }
458
+
459
+ declare class YearViewComponent<T> {
460
+ private readonly dateTimeAdapter;
461
+ private readonly dateTimeFormats;
462
+ /**
463
+ * The select mode of the picker;
464
+ */
465
+ readonly selectMode: _angular_core.InputSignal<SelectMode>;
466
+ /** The currently selected date */
467
+ readonly selected: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
468
+ readonly selecteds: _angular_core.InputSignalWithTransform<(T | undefined)[], (T | undefined)[]>;
469
+ readonly pickerMoment: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
470
+ /**
471
+ * A function used to filter which dates are selectable
472
+ */
473
+ readonly dateTimeFilter: _angular_core.InputSignal<DateFilter<T> | undefined>;
474
+ /** The minimum selectable date */
475
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
476
+ /** The maximum selectable date */
477
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
478
+ private readonly monthNames;
479
+ private readonly monthsData;
480
+ private _months?;
481
+ readonly months: _angular_core.Signal<CalendarCell[][] | undefined>;
482
+ readonly activeCell: _angular_core.Signal<number | undefined>;
483
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
484
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
485
+ private _todayMonth?;
486
+ readonly todayMonth: _angular_core.Signal<number | undefined>;
487
+ /**
488
+ * An array to hold all selectedDates' month value
489
+ * the value is the month number in current year
490
+ */
491
+ readonly selectedMonths: _angular_core.Signal<(number | undefined)[]>;
492
+ /**
493
+ * Callback to invoke when a new month is selected
494
+ */
495
+ readonly change: _angular_core.OutputEmitterRef<T>;
496
+ /**
497
+ * Emits the selected year
498
+ *
499
+ * This doesn't imply a change on the selected date.
500
+ */
501
+ readonly monthSelected: _angular_core.OutputEmitterRef<T>;
502
+ /** Emits when any date is activated */
503
+ readonly pickerMomentChange: _angular_core.OutputEmitterRef<T>;
504
+ /** Emits when use keyboard enter to select a calendar cell */
505
+ readonly keyboardEnter: _angular_core.OutputEmitterRef<void>;
506
+ /** The body of calendar table */
507
+ private readonly calendarBodyElm;
508
+ /**
509
+ * Handle a calendarCell selected
510
+ */
511
+ selectCalendarCell(cell: CalendarCell): void;
512
+ /**
513
+ * Handle a new month selected
514
+ */
515
+ private selectMonth;
516
+ /**
517
+ * Handle keydown event on calendar body
518
+ */
519
+ handleCalendarKeydown(event: KeyboardEvent): void;
520
+ /**
521
+ * Creates an CalendarCell for the given month.
522
+ */
523
+ private createMonthCell;
524
+ /**
525
+ * Check if the given month is enable
526
+ */
527
+ private isMonthEnabled;
528
+ /**
529
+ * Gets the month in this year that the given Date falls on.
530
+ * Returns undefined if the given Date is in another year.
531
+ */
532
+ private getMonthInCurrentYear;
533
+ /**
534
+ * Check the given dates are in the same year
535
+ */
536
+ private hasSameYear;
537
+ /**
538
+ * Get a valid date object
539
+ */
540
+ private getValidDate;
541
+ private focusActiveCell;
542
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<YearViewComponent<any>, never>;
543
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<YearViewComponent<any>, "nxt-date-time-year-view", never, { "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "selecteds": { "alias": "selecteds"; "required": false; "isSignal": true; }; "pickerMoment": { "alias": "pickerMoment"; "required": false; "isSignal": true; }; "dateTimeFilter": { "alias": "dateTimeFilter"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "change": "change"; "monthSelected": "monthSelected"; "pickerMomentChange": "pickerMomentChange"; "keyboardEnter": "keyboardEnter"; }, never, never, true, never>;
544
+ }
545
+
546
+ declare class CalendarComponent<T> {
547
+ private readonly elmRef;
548
+ private readonly pickerIntl;
549
+ private readonly ngZone;
550
+ private readonly dateTimeAdapter;
551
+ private readonly dateTimeFormats;
552
+ /**
553
+ * Date filter for the month and year view
554
+ */
555
+ readonly dateTimeFilter: _angular_core.InputSignal<DateFilter<T> | undefined>;
556
+ /**
557
+ * Set the first day of week
558
+ */
559
+ readonly firstDayOfWeek: _angular_core.InputSignal<number>;
560
+ /** The minimum selectable date */
561
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
562
+ /** The maximum selectable date */
563
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
564
+ /** The current picker moment */
565
+ readonly _pickerMomentInput: _angular_core.InputSignal<T | undefined>;
566
+ /** Settable signal for pickerMoment */
567
+ private readonly _pickerMoment;
568
+ readonly pickerMoment: _angular_core.Signal<T>;
569
+ readonly selectMode: _angular_core.InputSignal<SelectMode | undefined>;
570
+ /** The currently selected moment */
571
+ readonly selected: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
572
+ readonly selecteds: _angular_core.InputSignalWithTransform<(T | undefined)[], (T | undefined)[]>;
573
+ /**
574
+ * The view that the calendar should start in
575
+ */
576
+ readonly startView: _angular_core.InputSignal<"year" | "month" | "multi-years">;
577
+ /**
578
+ * Whether to hide dates in other months at the start or end of the current month
579
+ */
580
+ readonly hideOtherMonths: _angular_core.InputSignal<boolean>;
581
+ /** Emits when the currently picker moment changes */
582
+ readonly pickerMomentChange: _angular_core.OutputEmitterRef<T>;
583
+ /** Emits when the currently selected date changes */
584
+ readonly selectedChange: _angular_core.OutputEmitterRef<T | undefined>;
585
+ /** Emits when any date is selected */
586
+ readonly userSelection: _angular_core.OutputEmitterRef<void>;
587
+ /**
588
+ * Emits the selected year
589
+ *
590
+ * This doesn't imply a change on the selected date.
591
+ */
592
+ readonly yearSelected: _angular_core.OutputEmitterRef<T>;
593
+ /**
594
+ * Emits the selected month
595
+ *
596
+ * This doesn't imply a change on the selected date.
597
+ */
598
+ readonly monthSelected: _angular_core.OutputEmitterRef<T>;
599
+ readonly periodButtonText: _angular_core.Signal<string>;
600
+ readonly periodButtonLabel: _angular_core.Signal<string>;
601
+ readonly prevButtonLabel: _angular_core.Signal<string | undefined>;
602
+ readonly nextButtonLabel: _angular_core.Signal<string | undefined>;
603
+ readonly currentView: _angular_core.WritableSignal<"year" | "month" | "multi-years">;
604
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
605
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
606
+ readonly showControlArrows: _angular_core.Signal<boolean>;
607
+ readonly isMonthView: _angular_core.Signal<boolean>;
608
+ /**
609
+ * Date filter for the month and year view
610
+ */
611
+ dateTimeFilterForViews: (date?: T) => boolean;
612
+ constructor();
613
+ /**
614
+ * Toggle between month view and year view
615
+ */
616
+ toggleViews(): void;
617
+ /**
618
+ * Handles user clicks on the previous button.
619
+ */
620
+ previousClicked(): void;
621
+ /**
622
+ * Handles user clicks on the next button.
623
+ */
624
+ nextClicked(): void;
625
+ dateSelected(date?: T): void;
626
+ /**
627
+ * Change the pickerMoment value and switch to a specific view
628
+ */
629
+ goToDateInView(date: T, view: 'month' | 'year' | 'multi-years'): void;
630
+ /**
631
+ * Change the pickerMoment value
632
+ */
633
+ handlePickerMomentChange(date: T): void;
634
+ userSelected(): void;
635
+ /**
636
+ * Whether the previous period button is enabled.
637
+ */
638
+ prevButtonEnabled(): boolean;
639
+ /**
640
+ * Whether the next period button is enabled.
641
+ */
642
+ nextButtonEnabled(): boolean;
643
+ /**
644
+ * Focus to the host element
645
+ */
646
+ focusActiveCell(): void;
647
+ selectYearInMultiYearView(normalizedYear: T): void;
648
+ selectMonthInYearView(normalizedMonth: T): void;
649
+ /**
650
+ * Whether the two dates represent the same view in the current view mode (month or year).
651
+ */
652
+ private isSameView;
653
+ /**
654
+ * Get a valid date object
655
+ */
656
+ private getValidDate;
657
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent<any>, never>;
658
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent<any>, "nxt-date-time-calendar", never, { "dateTimeFilter": { "alias": "dateTimeFilter"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "_pickerMomentInput": { "alias": "pickerMoment"; "required": false; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "selecteds": { "alias": "selecteds"; "required": false; "isSignal": true; }; "startView": { "alias": "startView"; "required": false; "isSignal": true; }; "hideOtherMonths": { "alias": "hideOtherMonths"; "required": false; "isSignal": true; }; }, { "pickerMomentChange": "pickerMomentChange"; "selectedChange": "selectedChange"; "userSelection": "userSelection"; "yearSelected": "yearSelected"; "monthSelected": "monthSelected"; }, never, never, true, never>;
659
+ }
660
+
661
+ declare class DateTimeInlineComponent<T> extends DateTimeDirective<T> implements OnInit, ControlValueAccessor {
662
+ private readonly container;
663
+ /**
664
+ * Set the type of the dateTime picker
665
+ *
666
+ * - `'both'` - show both calendar and timer
667
+ * - `'calendar'` - show only calendar
668
+ * - `'timer'` - show only timer
669
+ */
670
+ readonly pickerType: _angular_core.InputSignal<PickerType>;
671
+ /** Whether the date time picker should be disabled */
672
+ readonly _disabled: _angular_core.InputSignal<boolean>;
673
+ readonly disabled: _angular_core.WritableSignal<boolean>;
674
+ /**
675
+ * The picker select mode
676
+ *
677
+ * - `'single'` - select a single date
678
+ * - `'range'` - select a range [from, to]
679
+ * - `'rangeFrom'` - an open range with a fixed start date
680
+ * - `'rangeTo'` - an open range with a fixed end date
681
+ */
682
+ readonly selectMode: _angular_core.InputSignal<SelectMode>;
683
+ readonly _valueInput: _angular_core.InputSignal<T | undefined>;
684
+ private readonly _value;
685
+ readonly value: _angular_core.Signal<T | undefined>;
686
+ readonly _valuesInput: _angular_core.InputSignal<(T | undefined)[] | undefined>;
687
+ private readonly _values;
688
+ readonly values: _angular_core.Signal<(T | undefined)[]>;
689
+ /**
690
+ * The date to show when picker opens
691
+ *
692
+ * Defaults to selected date (if available) or current date.
693
+ */
694
+ readonly _startAt: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
695
+ readonly startAt: _angular_core.Signal<T | undefined>;
696
+ /** A function to filter available date & time */
697
+ readonly dateTimeFilter: _angular_core.InputSignal<DateFilter<T> | undefined>;
698
+ /** The minimum valid date */
699
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
700
+ /** The maximum valid date */
701
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
702
+ /**
703
+ * Emits selected year in multi-year view
704
+ *
705
+ * This doesn't imply a change on the selected date.
706
+ */
707
+ readonly yearSelected: _angular_core.OutputEmitterRef<T>;
708
+ /**
709
+ * Emits selected month in year view
710
+ *
711
+ * This doesn't imply a change on the selected date.
712
+ */
713
+ readonly monthSelected: _angular_core.OutputEmitterRef<T>;
714
+ readonly selected: _angular_core.WritableSignal<T | undefined>;
715
+ readonly selecteds: _angular_core.WritableSignal<(T | undefined)[]>;
716
+ readonly isOpen: _angular_core.Signal<boolean>;
717
+ readonly pickerMode: _angular_core.Signal<PickerMode>;
718
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
719
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
720
+ private onModelChange?;
721
+ private onModelTouched?;
722
+ ngOnInit(): void;
723
+ writeValue(value: any): void;
724
+ registerOnChange(fn: any): void;
725
+ registerOnTouched(fn: any): void;
726
+ setDisabledState(isDisabled: boolean): void;
727
+ select(date: T[] | T): void;
728
+ /**
729
+ * Emits the selected year in multi-year view
730
+ */
731
+ selectYear(normalizedYear: T): void;
732
+ /**
733
+ * Emits selected month in year view
734
+ */
735
+ selectMonth(normalizedMonth: T): void;
736
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeInlineComponent<any>, never>;
737
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimeInlineComponent<any>, "nxt-date-time-inline", never, { "pickerType": { "alias": "pickerType"; "required": false; "isSignal": true; }; "_disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "_valueInput": { "alias": "value"; "required": false; "isSignal": true; }; "_valuesInput": { "alias": "values"; "required": false; "isSignal": true; }; "_startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "dateTimeFilter": { "alias": "dateTimeFilter"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, { "yearSelected": "yearSelected"; "monthSelected": "monthSelected"; }, never, never, true, never>;
738
+ }
739
+
740
+ declare class DateTimeComponent<T> extends DateTimeDirective<T> implements OnDestroy {
741
+ private readonly overlay;
742
+ private readonly viewContainerRef;
743
+ private readonly dialogService;
744
+ private readonly ngZone;
745
+ private readonly defaultScrollStrategy;
746
+ private readonly document;
747
+ /** Custom class for the picker backdrop */
748
+ readonly backdropClass: _angular_core.InputSignal<string | string[] | undefined>;
749
+ /** Custom class for the picker overlay pane */
750
+ readonly panelClass: _angular_core.InputSignal<string | string[] | undefined>;
751
+ /**
752
+ * The date to show when picker opens
753
+ *
754
+ * Defaults to selected date (if available) or current date.
755
+ */
756
+ readonly _startAt: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
757
+ readonly startAt: _angular_core.Signal<T | undefined>;
758
+ /**
759
+ * Set the type of the dateTime picker
760
+ *
761
+ * - `'both'` - show both calendar and timer
762
+ * - `'calendar'` - show only calendar
763
+ * - `'timer'` - show only timer
764
+ */
765
+ readonly pickerType: _angular_core.InputSignal<PickerType>;
766
+ /**
767
+ * The style the picker would open as
768
+ *
769
+ * - `'popup'` - display picker attached to the trigger element
770
+ * - `'dialog'` - display picker as a dialog
771
+ */
772
+ readonly pickerMode: _angular_core.InputSignalWithTransform<PickerMode, PickerMode>;
773
+ /** Whether the date time picker should be disabled */
774
+ readonly _disabled: _angular_core.InputSignal<boolean | undefined>;
775
+ readonly disabled: _angular_core.WritableSignal<boolean>;
776
+ /** Whether the calendar is open */
777
+ readonly _isOpen: _angular_core.InputSignal<boolean>;
778
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
779
+ /**
780
+ * The scroll strategy when the picker is open (see [CDK documentation](https://material.angular.io/cdk/overlay/overview#scroll-strategies))
781
+ */
782
+ readonly scrollStrategy: _angular_core.InputSignal<ScrollStrategy | undefined>;
783
+ /**
784
+ * Callback when the picker is opened
785
+ */
786
+ readonly afterPickerOpened: _angular_core.OutputEmitterRef<void>;
787
+ /**
788
+ * Callback when the picker is closed
789
+ */
790
+ readonly afterPickerClosed: _angular_core.OutputEmitterRef<void>;
791
+ /**
792
+ * Emits selected year in multi-year view
793
+ *
794
+ * This doesn't imply a change on the selected date.
795
+ */
796
+ readonly yearSelected: _angular_core.OutputEmitterRef<T>;
797
+ /**
798
+ * Emits selected month in year view
799
+ *
800
+ * This doesn't imply a change on the selected date.
801
+ */
802
+ readonly monthSelected: _angular_core.OutputEmitterRef<T>;
803
+ /**
804
+ * Emits when picker open state changes
805
+ */
806
+ readonly isOpenChange: _angular_core.OutputEmitterRef<boolean>;
807
+ /**
808
+ * Emit when the selected value has been confirmed
809
+ */
810
+ readonly confirmSelectedChange: _angular_core.OutputEmitterRef<T | (T | undefined)[]>;
811
+ /**
812
+ * Emits when the date time picker is disabled
813
+ */
814
+ readonly disabledChange: _angular_core.OutputEmitterRef<boolean>;
815
+ private pickerContainerPortal?;
816
+ private pickerContainer?;
817
+ private popupRef?;
818
+ private dialogRef?;
819
+ private hidePickerStreamSub?;
820
+ private confirmSelectedStreamSub?;
821
+ private pickerOpenedStreamSub?;
822
+ /** The element that was focused before the date time picker was isOpen */
823
+ private focusedElementBeforeOpen?;
824
+ private readonly _dtInput;
825
+ readonly dtInput: _angular_core.Signal<DateTimeInputDirective<T> | undefined>;
826
+ private readonly valueChange;
827
+ readonly selected: _angular_core.WritableSignal<T | undefined>;
828
+ readonly selecteds: _angular_core.WritableSignal<(T | undefined)[]>;
829
+ /** The minimum selectable date */
830
+ readonly min: _angular_core.Signal<T | undefined>;
831
+ /** The maximum selectable date */
832
+ readonly max: _angular_core.Signal<T | undefined>;
833
+ readonly dateTimeFilter: _angular_core.Signal<nxt_pick_datetime.DateFilter<T> | undefined>;
834
+ readonly selectMode: _angular_core.Signal<nxt_pick_datetime.SelectMode | undefined>;
835
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
836
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
837
+ constructor();
838
+ ngOnDestroy(): void;
839
+ registerInput(inputDirective: DateTimeInputDirective<T>): void;
840
+ open(): void;
841
+ /**
842
+ * Selects the given date
843
+ */
844
+ select(date: T[] | T): void;
845
+ /**
846
+ * Emits the selected year in multi-year view
847
+ */
848
+ selectYear(normalizedYear: T): void;
849
+ /**
850
+ * Emits selected month in year view
851
+ */
852
+ selectMonth(normalizedMonth: T): void;
853
+ /**
854
+ * Hide the picker
855
+ */
856
+ close(): void;
857
+ /**
858
+ * Confirm the selected value
859
+ */
860
+ confirmSelect(_event?: any): void;
861
+ /**
862
+ * Open the picker as a dialog
863
+ */
864
+ private openAsDialog;
865
+ /**
866
+ * Open the picker as popup
867
+ */
868
+ private openAsPopup;
869
+ private createPopup;
870
+ /**
871
+ * Create the popup PositionStrategy.
872
+ */
873
+ private createPopupPositionStrategy;
874
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeComponent<any>, never>;
875
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimeComponent<any>, "nxt-date-time", never, { "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "_startAt": { "alias": "startAt"; "required": false; "isSignal": true; }; "pickerType": { "alias": "pickerType"; "required": false; "isSignal": true; }; "pickerMode": { "alias": "pickerMode"; "required": false; "isSignal": true; }; "_disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "_isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; "isSignal": true; }; }, { "afterPickerOpened": "open"; "afterPickerClosed": "close"; "yearSelected": "yearSelected"; "monthSelected": "monthSelected"; "isOpenChange": "isOpenChange"; "confirmSelectedChange": "confirmSelectedChange"; "disabledChange": "disabledChange"; }, never, never, true, never>;
876
+ }
877
+
878
+ interface DateTimeInputEvent<T> {
879
+ source: DateTimeInputDirective<T>;
880
+ value?: T | Array<T | undefined>;
881
+ input: HTMLInputElement;
882
+ }
883
+ declare class DateTimeInputDirective<T> implements OnInit, AfterContentInit, OnDestroy, ControlValueAccessor, Validator {
884
+ private readonly elmRef;
885
+ private readonly renderer;
886
+ private readonly dateTimeAdapter;
887
+ private readonly dateTimeFormats;
888
+ /**
889
+ * The date & time picker this input is associated with
890
+ */
891
+ readonly dateTime: _angular_core.InputSignal<DateTimeComponent<T> | undefined>;
892
+ /**
893
+ * A function to filter available date & time
894
+ */
895
+ readonly dateTimeFilter: _angular_core.InputSignal<DateFilter<T> | undefined>;
896
+ /** Whether the date & time picker input is disabled */
897
+ readonly _disabled: _angular_core.InputSignal<boolean>;
898
+ readonly disabled: _angular_core.WritableSignal<boolean>;
899
+ /** The minimum valid date */
900
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
901
+ /** The maximum valid date */
902
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
903
+ /**
904
+ * The picker select mode
905
+ *
906
+ * - `'single'` - select a single date
907
+ * - `'range'` - select a range [from, to]
908
+ * - `'rangeFrom'` - an open range with a fixed start date
909
+ * - `'rangeTo'` - an open range with a fixed end date
910
+ */
911
+ readonly selectMode: _angular_core.InputSignal<SelectMode>;
912
+ /**
913
+ * The character to separate the 'from' and 'to' in input value
914
+ */
915
+ readonly rangeSeparator: _angular_core.InputSignal<string>;
916
+ readonly _valueInput: _angular_core.InputSignal<T | undefined>;
917
+ private readonly _value;
918
+ private readonly valueValidity;
919
+ private readonly parsedValue;
920
+ readonly value: _angular_core.Signal<T | undefined>;
921
+ readonly _valuesInput: _angular_core.InputSignal<(T | undefined)[]>;
922
+ private readonly _values;
923
+ private readonly valuesValidity;
924
+ private readonly parsedValues;
925
+ readonly values: _angular_core.Signal<(T | undefined)[]>;
926
+ private readonly nativeElementValue;
927
+ /**
928
+ * Callback to invoke when `change` event is fired on this `<input>`
929
+ */
930
+ readonly dateTimeChange: _angular_core.OutputEmitterRef<DateTimeInputEvent<T>>;
931
+ /**
932
+ * Callback to invoke when an `input` event is fired on this `<input>`.
933
+ */
934
+ readonly dateTimeInput: _angular_core.OutputEmitterRef<DateTimeInputEvent<T>>;
935
+ get elementRef(): ElementRef<HTMLInputElement>;
936
+ readonly isInSingleMode: _angular_core.Signal<boolean>;
937
+ readonly isInRangeMode: _angular_core.Signal<boolean>;
938
+ /** The date-time-picker that this input is associated with */
939
+ readonly dtPicker: _angular_core.WritableSignal<DateTimeComponent<T> | undefined>;
940
+ private dtPickerSub?;
941
+ private readonly lastValueValid;
942
+ private onModelChange?;
943
+ private onModelTouched?;
944
+ private validatorOnChange?;
945
+ /** The form control validator for whether the input parses */
946
+ private readonly parseValidator;
947
+ /** The form control validator for the min date */
948
+ private readonly minValidator;
949
+ /** The form control validator for the max date */
950
+ private readonly maxValidator;
951
+ /** The form control validator for the date filter */
952
+ private readonly filterValidator;
953
+ /**
954
+ * The form control validator for the range.
955
+ * Check whether the 'before' value is before the 'to' value
956
+ */
957
+ private readonly rangeValidator;
958
+ /** The combined form control validator for this input */
959
+ private readonly validator;
960
+ /** Emits when the value changes (either due to user input or programmatic change) */
961
+ readonly valueChange: _angular_core.OutputEmitterRef<T | (T | undefined)[] | undefined>;
962
+ /** Emits when the disabled state has changed */
963
+ readonly disabledChange: _angular_core.OutputEmitterRef<boolean>;
964
+ /** @internal */
965
+ readonly inputAriaOwns: _angular_core.Signal<string | undefined>;
966
+ /** @internal */
967
+ readonly minIso8601: _angular_core.Signal<string | undefined>;
968
+ /** @internal */
969
+ readonly maxIso8601: _angular_core.Signal<string | undefined>;
970
+ constructor();
971
+ ngOnInit(): void;
972
+ ngAfterContentInit(): void;
973
+ ngOnDestroy(): void;
974
+ writeValue(value: any): void;
975
+ registerOnChange(fn: any): void;
976
+ registerOnTouched(fn: any): void;
977
+ setDisabledState(isDisabled: boolean): void;
978
+ validate(c: AbstractControl): ValidationErrors | null;
979
+ registerOnValidatorChange(fn: () => void): void;
980
+ /**
981
+ * Open the picker when user hold alt + ArrowDown
982
+ */
983
+ handleKeydownOnHost(event: KeyboardEvent): void;
984
+ handleBlurOnHost(_event: Event): void;
985
+ handleInputOnHost(event: any): void;
986
+ handleChangeOnHost(_event: any): void;
987
+ /**
988
+ * Set the native input property 'value'
989
+ */
990
+ /**
991
+ * Convert a given obj to a valid date object
992
+ */
993
+ private getValidDate;
994
+ /**
995
+ * Convert a time string to a date-time string
996
+ * When pickerType is 'timer', the value in the picker's input is a time string.
997
+ * The dateTimeAdapter parse fn could not parse a time string to a Date Object.
998
+ * Therefore we need this fn to convert a time string to a date-time string.
999
+ */
1000
+ private convertTimeStringToDateTimeString;
1001
+ /**
1002
+ * Handle input change in single mode
1003
+ */
1004
+ private changeInputInSingleMode;
1005
+ /**
1006
+ * Handle input change in rangeFrom or rangeTo mode
1007
+ */
1008
+ private changeInputInRangeFromToMode;
1009
+ /**
1010
+ * Handle input change in range mode
1011
+ */
1012
+ private changeInputInRangeMode;
1013
+ /**
1014
+ * Check if the two value is the same
1015
+ */
1016
+ private isSameValue;
1017
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeInputDirective<any>, never>;
1018
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DateTimeInputDirective<any>, "input[nxtDateTime]", ["nxtDateTimeInput"], { "dateTime": { "alias": "nxtDateTime"; "required": false; "isSignal": true; }; "dateTimeFilter": { "alias": "dateTimeFilter"; "required": false; "isSignal": true; }; "_disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "rangeSeparator": { "alias": "rangeSeparator"; "required": false; "isSignal": true; }; "_valueInput": { "alias": "value"; "required": false; "isSignal": true; }; "_valuesInput": { "alias": "values"; "required": false; "isSignal": true; }; }, { "dateTimeChange": "dateTimeChange"; "dateTimeInput": "dateTimeInput"; "valueChange": "valueChange"; "disabledChange": "disabledChange"; }, never, never, true, never>;
1019
+ }
1020
+
1021
+ declare class DateTimeIntl {
1022
+ /** A label for the up second button (used by screen readers). */
1023
+ readonly upSecondLabel: _angular_core.WritableSignal<string>;
1024
+ /** A label for the down second button (used by screen readers). */
1025
+ readonly downSecondLabel: _angular_core.WritableSignal<string>;
1026
+ /** A label for the up minute button (used by screen readers). */
1027
+ readonly upMinuteLabel: _angular_core.WritableSignal<string>;
1028
+ /** A label for the down minute button (used by screen readers). */
1029
+ readonly downMinuteLabel: _angular_core.WritableSignal<string>;
1030
+ /** A label for the up hour button (used by screen readers). */
1031
+ readonly upHourLabel: _angular_core.WritableSignal<string>;
1032
+ /** A label for the down hour button (used by screen readers). */
1033
+ readonly downHourLabel: _angular_core.WritableSignal<string>;
1034
+ /** A label for the previous month button (used by screen readers) */
1035
+ readonly prevMonthLabel: _angular_core.WritableSignal<string>;
1036
+ /** A label for the next month button (used by screen readers) */
1037
+ readonly nextMonthLabel: _angular_core.WritableSignal<string>;
1038
+ /** A label for the previous year button (used by screen readers) */
1039
+ readonly prevYearLabel: _angular_core.WritableSignal<string>;
1040
+ /** A label for the next year button (used by screen readers) */
1041
+ readonly nextYearLabel: _angular_core.WritableSignal<string>;
1042
+ /** A label for the previous multi-year button (used by screen readers) */
1043
+ readonly prevMultiYearLabel: _angular_core.WritableSignal<string>;
1044
+ /** A label for the next multi-year button (used by screen readers) */
1045
+ readonly nextMultiYearLabel: _angular_core.WritableSignal<string>;
1046
+ /** A label for the 'switch to month view' button (used by screen readers) */
1047
+ readonly switchToMonthViewLabel: _angular_core.WritableSignal<string>;
1048
+ /** A label for the 'switch to year view' button (used by screen readers) */
1049
+ readonly switchToMultiYearViewLabel: _angular_core.WritableSignal<string>;
1050
+ /** A label for the cancel button */
1051
+ readonly cancelBtnLabel: _angular_core.WritableSignal<string>;
1052
+ /** A label for the set button */
1053
+ readonly setBtnLabel: _angular_core.WritableSignal<string>;
1054
+ /** A label for the range 'from' in picker info */
1055
+ readonly rangeFromLabel: _angular_core.WritableSignal<string>;
1056
+ /** A label for the range 'to' in picker info */
1057
+ readonly rangeToLabel: _angular_core.WritableSignal<string>;
1058
+ /** A label for the hour12 button (AM) */
1059
+ readonly hour12AMLabel: _angular_core.WritableSignal<string>;
1060
+ /** A label for the hour12 button (PM) */
1061
+ readonly hour12PMLabel: _angular_core.WritableSignal<string>;
1062
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeIntl, never>;
1063
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DateTimeIntl>;
1064
+ }
1065
+
1066
+ declare class DateTimeTriggerDirective<T> {
1067
+ readonly dtPicker: _angular_core.InputSignal<DateTimeComponent<T> | undefined>;
1068
+ readonly _disabled: _angular_core.InputSignal<boolean | undefined>;
1069
+ readonly disabled: _angular_core.Signal<boolean>;
1070
+ handleClickOnHost(event: Event): void;
1071
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeTriggerDirective<any>, never>;
1072
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DateTimeTriggerDirective<any>, "[nxtDateTimeTrigger]", never, { "dtPicker": { "alias": "nxtDateTimeTrigger"; "required": false; "isSignal": true; }; "_disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1073
+ }
1074
+
1075
+ declare class TimerComponent<T> {
1076
+ private readonly ngZone;
1077
+ private readonly elmRef;
1078
+ private readonly pickerIntl;
1079
+ private readonly dateTimeAdapter;
1080
+ /** The current picker moment */
1081
+ readonly pickerMoment: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
1082
+ /** The minimum selectable date time */
1083
+ readonly min: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
1084
+ /** The maximum selectable date time */
1085
+ readonly max: _angular_core.InputSignalWithTransform<T | undefined, T | undefined>;
1086
+ /**
1087
+ * Whether to show the second's timer
1088
+ */
1089
+ readonly showSecondsTimer: _angular_core.InputSignal<boolean>;
1090
+ /**
1091
+ * Whether the timer is in hour12 format
1092
+ */
1093
+ readonly hour12Timer: _angular_core.InputSignal<boolean>;
1094
+ /**
1095
+ * Hours to change per step
1096
+ */
1097
+ readonly stepHour: _angular_core.InputSignal<number>;
1098
+ /**
1099
+ * Minutes to change per step
1100
+ */
1101
+ readonly stepMinute: _angular_core.InputSignal<number>;
1102
+ /**
1103
+ * Seconds to change per step
1104
+ */
1105
+ readonly stepSecond: _angular_core.InputSignal<number>;
1106
+ readonly hourValue: _angular_core.Signal<number>;
1107
+ private readonly hoursWithPM;
1108
+ private _isPM;
1109
+ private readonly isPM;
1110
+ /**
1111
+ * The value would be displayed in hourBox.
1112
+ * We need this because the value displayed in hourBox it not
1113
+ * the same as the hourValue when the timer is in hour12Timer mode.
1114
+ */
1115
+ readonly hourBoxValue: _angular_core.Signal<number>;
1116
+ readonly minuteValue: _angular_core.Signal<number>;
1117
+ readonly secondValue: _angular_core.Signal<number>;
1118
+ readonly upHourButtonLabel: _angular_core.Signal<string>;
1119
+ readonly downHourButtonLabel: _angular_core.Signal<string>;
1120
+ readonly upMinuteButtonLabel: _angular_core.Signal<string>;
1121
+ readonly downMinuteButtonLabel: _angular_core.Signal<string>;
1122
+ readonly upSecondButtonLabel: _angular_core.Signal<string>;
1123
+ readonly downSecondButtonLabel: _angular_core.Signal<string>;
1124
+ readonly hour12ButtonLabel: _angular_core.Signal<string>;
1125
+ readonly selectedChange: _angular_core.OutputEmitterRef<T>;
1126
+ /**
1127
+ * Focus to the host element
1128
+ */
1129
+ focus(): void;
1130
+ /**
1131
+ * Set the hour value via typing into timer box input
1132
+ * We need this to handle the hour value when the timer is in hour12 mode
1133
+ */
1134
+ setHourValueViaInput(hours: number): void;
1135
+ setHourValue(hours: number): void;
1136
+ setMinuteValue(minutes: number): void;
1137
+ setSecondValue(seconds: number): void;
1138
+ setMeridiem(event: any): void;
1139
+ /**
1140
+ * Check if the up hour button is enabled
1141
+ */
1142
+ readonly upHourEnabled: _angular_core.Signal<boolean>;
1143
+ /**
1144
+ * Check if the down hour button is enabled
1145
+ */
1146
+ readonly downHourEnabled: _angular_core.Signal<boolean>;
1147
+ /**
1148
+ * Check if the up minute button is enabled
1149
+ */
1150
+ readonly upMinuteEnabled: _angular_core.Signal<boolean>;
1151
+ /**
1152
+ * Check if the down minute button is enabled
1153
+ */
1154
+ readonly downMinuteEnabled: _angular_core.Signal<boolean>;
1155
+ /**
1156
+ * Check if the up second button is enabled
1157
+ */
1158
+ readonly upSecondEnabled: _angular_core.Signal<boolean>;
1159
+ /**
1160
+ * Check if the down second button is enabled
1161
+ */
1162
+ readonly downSecondEnabled: _angular_core.Signal<boolean>;
1163
+ /**
1164
+ * PickerMoment's hour value +/- certain amount and compare it to the give date
1165
+ * 1 is after the comparedDate
1166
+ * -1 is before the comparedDate
1167
+ * 0 is equal the comparedDate
1168
+ */
1169
+ private compareHours;
1170
+ /**
1171
+ * PickerMoment's minute value +/- certain amount and compare it to the give date
1172
+ * 1 is after the comparedDate
1173
+ * -1 is before the comparedDate
1174
+ * 0 is equal the comparedDate
1175
+ */
1176
+ private compareMinutes;
1177
+ /**
1178
+ * PickerMoment's second value +/- certain amount and compare it to the give date
1179
+ * 1 is after the comparedDate
1180
+ * -1 is before the comparedDate
1181
+ * 0 is equal the comparedDate
1182
+ */
1183
+ private compareSeconds;
1184
+ /**
1185
+ * Get a valid date object
1186
+ */
1187
+ private getValidDate;
1188
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimerComponent<any>, never>;
1189
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimerComponent<any>, "nxt-date-time-timer", never, { "pickerMoment": { "alias": "pickerMoment"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showSecondsTimer": { "alias": "showSecondsTimer"; "required": false; "isSignal": true; }; "hour12Timer": { "alias": "hour12Timer"; "required": false; "isSignal": true; }; "stepHour": { "alias": "stepHour"; "required": false; "isSignal": true; }; "stepMinute": { "alias": "stepMinute"; "required": false; "isSignal": true; }; "stepSecond": { "alias": "stepSecond"; "required": false; "isSignal": true; }; }, { "selectedChange": "selectedChange"; }, never, never, true, never>;
1190
+ }
1191
+
1192
+ /** @deprecated use standalone imports */
1193
+ declare class DateTimeModule {
1194
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimeModule, never>;
1195
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<DateTimeModule, never, [typeof CalendarComponent, typeof TimerComponent, typeof DateTimeTriggerDirective, typeof DateTimeInputDirective, typeof DateTimeComponent, typeof DateTimeInlineComponent, typeof MultiYearViewComponent, typeof YearViewComponent, typeof MonthViewComponent], [typeof CalendarComponent, typeof TimerComponent, typeof DateTimeTriggerDirective, typeof DateTimeInputDirective, typeof DateTimeComponent, typeof DateTimeInlineComponent, typeof MultiYearViewComponent, typeof YearViewComponent, typeof MonthViewComponent]>;
1196
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<DateTimeModule>;
1197
+ }
1198
+
1199
+ export { CalendarComponent, DateTimeAdapter, DateTimeComponent, DateTimeInlineComponent, DateTimeInputDirective, DateTimeIntl, DateTimeModule, DateTimeTriggerDirective, MonthViewComponent, MultiYearViewComponent, NXT_DATE_TIME_FORMATS, TimerComponent, YearViewComponent };
1200
+ export type { DateFilter, DateTimeFormats, DateTimeInputEvent, PickerMode, PickerType, RenderItem, SelectMode, ViewType };