nxt-pick-datetime 21.0.0 → 22.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.
- package/assets/picker.scss +13 -11
- package/fesm2022/nxt-pick-datetime-moment-adapter.mjs +5 -21
- package/fesm2022/nxt-pick-datetime-moment-adapter.mjs.map +1 -1
- package/fesm2022/nxt-pick-datetime-native-adapter.mjs +7 -24
- package/fesm2022/nxt-pick-datetime-native-adapter.mjs.map +1 -1
- package/fesm2022/nxt-pick-datetime.mjs +718 -526
- package/fesm2022/nxt-pick-datetime.mjs.map +1 -1
- package/package.json +6 -7
- package/types/nxt-pick-datetime-moment-adapter.d.ts +1 -8
- package/types/nxt-pick-datetime-native-adapter.d.ts +1 -9
- package/types/nxt-pick-datetime.d.ts +12 -12
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, InjectionToken, inject, ElementRef, NgZone, input, output, computed, Component, linkedSignal, viewChild, Injectable, afterRenderEffect, Directive, Pipe, forwardRef, Renderer2, effect, DOCUMENT,
|
|
3
|
-
import { take, debounceTime, distinctUntilChanged, filter, concatAll } from 'rxjs/operators';
|
|
2
|
+
import { signal, InjectionToken, inject, ElementRef, NgZone, Injector, DestroyRef, input, output, computed, afterNextRender, Component, linkedSignal, viewChild, Injectable, afterRenderEffect, Directive, Pipe, forwardRef, Renderer2, effect, DOCUMENT, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
4
3
|
import { CdkMonitorFocus, CdkTrapFocus, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
|
|
5
4
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators } from '@angular/forms';
|
|
6
5
|
import { Subject, defer, of, merge } from 'rxjs';
|
|
7
6
|
import { coerceNumberProperty, coerceArray } from '@angular/cdk/coercion';
|
|
8
|
-
import {
|
|
7
|
+
import { debounceTime, distinctUntilChanged, filter, take, concatAll } from 'rxjs/operators';
|
|
9
8
|
import { NoopScrollStrategy, Overlay, OverlayContainer, OverlayConfig } from '@angular/cdk/overlay';
|
|
10
9
|
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';
|
|
11
10
|
import { Location } from '@angular/common';
|
|
@@ -14,7 +13,8 @@ import { outputToObservable } from '@angular/core/rxjs-interop';
|
|
|
14
13
|
class DateTimeAdapter {
|
|
15
14
|
constructor() {
|
|
16
15
|
/** The locale to use for all dates */
|
|
17
|
-
this.locale = signal(undefined,
|
|
16
|
+
this.locale = signal(undefined, /* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [{ debugName: "locale" }] : /* istanbul ignore next */ []));
|
|
18
18
|
/** total milliseconds in a day */
|
|
19
19
|
this.millisecondsInDay = 86400000;
|
|
20
20
|
/** total milliseconds in a minute */
|
|
@@ -121,45 +121,56 @@ class CalendarBodyComponent {
|
|
|
121
121
|
constructor() {
|
|
122
122
|
this.elmRef = inject(ElementRef);
|
|
123
123
|
this.ngZone = inject(NgZone);
|
|
124
|
+
this.injector = inject(Injector);
|
|
125
|
+
this.destroyRef = inject(DestroyRef);
|
|
124
126
|
/**
|
|
125
127
|
* The cell number of the active cell in the table.
|
|
126
128
|
*/
|
|
127
|
-
this.activeCell = input(0,
|
|
129
|
+
this.activeCell = input(0, /* @ts-ignore */
|
|
130
|
+
...(ngDevMode ? [{ debugName: "activeCell" }] : /* istanbul ignore next */ []));
|
|
128
131
|
/**
|
|
129
132
|
* The cells to display in the table.
|
|
130
133
|
*/
|
|
131
|
-
this.rows = input(
|
|
134
|
+
this.rows = input(/* @ts-ignore */
|
|
135
|
+
...(ngDevMode ? [undefined, { debugName: "rows" }] : /* istanbul ignore next */ []));
|
|
132
136
|
/**
|
|
133
137
|
* The number of columns in the table.
|
|
134
138
|
*/
|
|
135
|
-
this.numCols = input(7,
|
|
139
|
+
this.numCols = input(7, /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "numCols" }] : /* istanbul ignore next */ []));
|
|
136
141
|
/**
|
|
137
142
|
* The ratio (width / height) to use for the cells in the table.
|
|
138
143
|
*/
|
|
139
|
-
this.cellRatio = input(1,
|
|
144
|
+
this.cellRatio = input(1, /* @ts-ignore */
|
|
145
|
+
...(ngDevMode ? [{ debugName: "cellRatio" }] : /* istanbul ignore next */ []));
|
|
140
146
|
/**
|
|
141
147
|
* The value in the table that corresponds to today.
|
|
142
148
|
*/
|
|
143
|
-
this.todayValue = input(
|
|
149
|
+
this.todayValue = input(/* @ts-ignore */
|
|
150
|
+
...(ngDevMode ? [undefined, { debugName: "todayValue" }] : /* istanbul ignore next */ []));
|
|
144
151
|
/**
|
|
145
152
|
* The value in the table that is currently selected.
|
|
146
153
|
*/
|
|
147
|
-
this.selectedValues = input(
|
|
154
|
+
this.selectedValues = input(/* @ts-ignore */
|
|
155
|
+
...(ngDevMode ? [undefined, { debugName: "selectedValues" }] : /* istanbul ignore next */ []));
|
|
148
156
|
/**
|
|
149
157
|
* Current picker select mode
|
|
150
158
|
*/
|
|
151
|
-
this.selectMode = input(
|
|
159
|
+
this.selectMode = input(/* @ts-ignore */
|
|
160
|
+
...(ngDevMode ? [undefined, { debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
152
161
|
/**
|
|
153
162
|
* Emit when a calendar cell is selected
|
|
154
163
|
*/
|
|
155
164
|
this.select = output();
|
|
156
|
-
this.isInSingleMode = computed(() => this.selectMode() === 'single',
|
|
165
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
166
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
157
167
|
this.isInRangeMode = computed(() => {
|
|
158
168
|
const selectMode = this.selectMode();
|
|
159
169
|
return (selectMode === 'range' ||
|
|
160
170
|
selectMode === 'rangeFrom' ||
|
|
161
171
|
selectMode === 'rangeTo');
|
|
162
|
-
},
|
|
172
|
+
}, /* @ts-ignore */
|
|
173
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
163
174
|
}
|
|
164
175
|
selectCell(cell) {
|
|
165
176
|
this.select.emit(cell);
|
|
@@ -227,21 +238,21 @@ class CalendarBodyComponent {
|
|
|
227
238
|
* Focus to a active cell
|
|
228
239
|
*/
|
|
229
240
|
focusActiveCell() {
|
|
230
|
-
this.
|
|
231
|
-
|
|
232
|
-
.
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
241
|
+
if (!this.destroyRef.destroyed)
|
|
242
|
+
afterNextRender(() => {
|
|
243
|
+
this.ngZone.runOutsideAngular(() => {
|
|
244
|
+
this.elmRef.nativeElement
|
|
245
|
+
?.querySelector('.nxt-dt-calendar-cell-active')
|
|
246
|
+
?.focus();
|
|
247
|
+
});
|
|
248
|
+
}, {
|
|
249
|
+
injector: this.injector
|
|
238
250
|
});
|
|
239
|
-
});
|
|
240
251
|
}
|
|
241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
242
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
252
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CalendarBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CalendarBodyComponent, isStandalone: true, selector: "[nxtDateTimeCalendarBody]", inputs: { activeCell: { classPropertyName: "activeCell", publicName: "activeCell", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, numCols: { classPropertyName: "numCols", publicName: "numCols", isSignal: true, isRequired: false, transformFunction: null }, cellRatio: { classPropertyName: "cellRatio", publicName: "cellRatio", isSignal: true, isRequired: false, transformFunction: null }, todayValue: { classPropertyName: "todayValue", publicName: "todayValue", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { select: "select" }, host: { properties: { "class.nxt-dt-calendar-body": "true" } }, exportAs: ["nxtDateTimeCalendarBody"], ngImport: i0, template: "@for (row of rows(); track rowIndex; let rowIndex = $index) {\r\n<tr role=\"row\">\r\n @for (item of row; track colIndex; let colIndex = $index) {\r\n <td class=\"nxt-dt-calendar-cell {{item.cellClass}}\"\r\n [tabindex]=\"isActiveCell(rowIndex, colIndex) ? 0 : -1\"\r\n [class.nxt-dt-calendar-cell-active]=\"isActiveCell(rowIndex, colIndex)\"\r\n [class.nxt-dt-calendar-cell-disabled]=\"!item.enabled\"\r\n [class.nxt-dt-calendar-cell-in-range]=\"isInRange(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from]=\"isRangeFrom(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-from-long]=\"isInRange(item.value + 7)\"\r\n [class.nxt-dt-calendar-cell-range-to]=\"isRangeTo(item.value)\"\r\n [class.nxt-dt-calendar-cell-range-to-long]=\"isInRange(item.value - 7)\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-disabled]=\"!item.enabled || null\"\r\n [style.width.%]=\"100 / numCols()\"\r\n [style.paddingTop.%]=\"50 * cellRatio() / numCols()\"\r\n [style.paddingBottom.%]=\"50 * cellRatio() / numCols()\"\r\n (click)=\"selectCell(item)\">\r\n <span class=\"nxt-dt-calendar-cell-content\"\r\n [class]=\"{\r\n 'nxt-dt-calendar-cell-out': item.out,\r\n 'nxt-dt-calendar-cell-today': item.value === todayValue(),\r\n 'nxt-dt-calendar-cell-selected': isSelected(item.value)\r\n }\">\r\n {{item.displayValue}}\r\n </span>\r\n </td>\r\n }\r\n</tr>\r\n}\r\n", styles: [""] }); }
|
|
243
254
|
}
|
|
244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CalendarBodyComponent, decorators: [{
|
|
245
256
|
type: Component,
|
|
246
257
|
args: [{ selector: '[nxtDateTimeCalendarBody]', exportAs: 'nxtDateTimeCalendarBody', preserveWhitespaces: false, host: {
|
|
247
258
|
'[class.nxt-dt-calendar-body]': 'true'
|
|
@@ -259,13 +270,14 @@ class MonthViewComponent {
|
|
|
259
270
|
/**
|
|
260
271
|
* Whether to hide dates in other months at the start or end of the current month
|
|
261
272
|
*/
|
|
262
|
-
this.hideOtherMonths = input(false,
|
|
273
|
+
this.hideOtherMonths = input(false, /* @ts-ignore */
|
|
274
|
+
...(ngDevMode ? [{ debugName: "hideOtherMonths" }] : /* istanbul ignore next */ []));
|
|
263
275
|
this._firstDayOfWeek = 0;
|
|
264
276
|
/**
|
|
265
277
|
* Define the first day of a week
|
|
266
278
|
* Sunday: 0 ~ Saturday: 6
|
|
267
279
|
*/
|
|
268
|
-
this.firstDayOfWeek = input(this._firstDayOfWeek, { ...(ngDevMode ? { debugName: "firstDayOfWeek" } : {}), transform: (val) => {
|
|
280
|
+
this.firstDayOfWeek = input(this._firstDayOfWeek, { ...(ngDevMode ? { debugName: "firstDayOfWeek" } : /* istanbul ignore next */ {}), transform: (val) => {
|
|
269
281
|
if (val >= 0 && val <= 6 && val !== this._firstDayOfWeek) {
|
|
270
282
|
return this._firstDayOfWeek = val;
|
|
271
283
|
}
|
|
@@ -274,31 +286,33 @@ class MonthViewComponent {
|
|
|
274
286
|
/**
|
|
275
287
|
* The select mode of the picker;
|
|
276
288
|
*/
|
|
277
|
-
this.selectMode = input('single',
|
|
289
|
+
this.selectMode = input('single', /* @ts-ignore */
|
|
290
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
278
291
|
/** The currently selected date */
|
|
279
|
-
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : {}), transform: value => {
|
|
292
|
+
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: value => {
|
|
280
293
|
value = this.dateTimeAdapter.deserialize(value);
|
|
281
294
|
return this.getValidDate(value);
|
|
282
295
|
} });
|
|
283
|
-
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : {}), transform: values => values.map(v => {
|
|
296
|
+
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : /* istanbul ignore next */ {}), transform: values => values.map(v => {
|
|
284
297
|
v = this.dateTimeAdapter.deserialize(v);
|
|
285
298
|
return this.getValidDate(v);
|
|
286
299
|
}) });
|
|
287
|
-
this.pickerMoment = input(undefined, { ...(ngDevMode ? { debugName: "pickerMoment" } : {}), transform: value => {
|
|
300
|
+
this.pickerMoment = input(undefined, { ...(ngDevMode ? { debugName: "pickerMoment" } : /* istanbul ignore next */ {}), transform: value => {
|
|
288
301
|
value = this.dateTimeAdapter.deserialize(value);
|
|
289
302
|
return this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
290
303
|
} });
|
|
291
304
|
/**
|
|
292
305
|
* A function used to filter which dates are selectable
|
|
293
306
|
*/
|
|
294
|
-
this.dateTimeFilter = input(
|
|
307
|
+
this.dateTimeFilter = input(/* @ts-ignore */
|
|
308
|
+
...(ngDevMode ? [undefined, { debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
295
309
|
/** The minimum selectable date */
|
|
296
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: value => {
|
|
310
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: value => {
|
|
297
311
|
value = this.dateTimeAdapter.deserialize(value);
|
|
298
312
|
return this.getValidDate(value);
|
|
299
313
|
} });
|
|
300
314
|
/** The maximum selectable date */
|
|
301
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: value => {
|
|
315
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: value => {
|
|
302
316
|
value = this.dateTimeAdapter.deserialize(value);
|
|
303
317
|
return this.getValidDate(value);
|
|
304
318
|
} });
|
|
@@ -311,7 +325,8 @@ class MonthViewComponent {
|
|
|
311
325
|
return weekdays
|
|
312
326
|
.slice(firstDayOfWeek)
|
|
313
327
|
.concat(weekdays.slice(0, firstDayOfWeek));
|
|
314
|
-
},
|
|
328
|
+
}, /* @ts-ignore */
|
|
329
|
+
...(ngDevMode ? [{ debugName: "weekdays" }] : /* istanbul ignore next */ []));
|
|
315
330
|
this._daysData = computed(() => {
|
|
316
331
|
if (!this.pickerMoment()) {
|
|
317
332
|
return;
|
|
@@ -347,13 +362,15 @@ class MonthViewComponent {
|
|
|
347
362
|
todayDate,
|
|
348
363
|
firstRowOffset
|
|
349
364
|
};
|
|
350
|
-
},
|
|
365
|
+
}, /* @ts-ignore */
|
|
366
|
+
...(ngDevMode ? [{ debugName: "_daysData" }] : /* istanbul ignore next */ []));
|
|
351
367
|
this.days = computed(() => {
|
|
352
368
|
const days = this._daysData()?.days;
|
|
353
369
|
if (days != undefined)
|
|
354
370
|
return this._days = days;
|
|
355
371
|
return this._days;
|
|
356
|
-
},
|
|
372
|
+
}, /* @ts-ignore */
|
|
373
|
+
...(ngDevMode ? [{ debugName: "days" }] : /* istanbul ignore next */ []));
|
|
357
374
|
this.activeCell = computed(() => {
|
|
358
375
|
if (this.pickerMoment()) {
|
|
359
376
|
return (this.dateTimeAdapter.getDate(this.pickerMoment()) +
|
|
@@ -361,12 +378,15 @@ class MonthViewComponent {
|
|
|
361
378
|
1);
|
|
362
379
|
}
|
|
363
380
|
return;
|
|
364
|
-
},
|
|
365
|
-
|
|
381
|
+
}, /* @ts-ignore */
|
|
382
|
+
...(ngDevMode ? [{ debugName: "activeCell" }] : /* istanbul ignore next */ []));
|
|
383
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
384
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
366
385
|
this.isInRangeMode = computed(() => (this.selectMode() === 'range' ||
|
|
367
386
|
this.selectMode() === 'rangeFrom' ||
|
|
368
|
-
this.selectMode() === 'rangeTo'),
|
|
369
|
-
|
|
387
|
+
this.selectMode() === 'rangeTo'), /* @ts-ignore */
|
|
388
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
389
|
+
this.firstDateOfMonth = linkedSignal({ ...(ngDevMode ? { debugName: "firstDateOfMonth" } : /* istanbul ignore next */ {}), source: () => this.pickerMoment(),
|
|
370
390
|
computation: (val) => this.dateTimeAdapter.createDate(this.dateTimeAdapter.getYear(val), this.dateTimeAdapter.getMonth(val), 1) });
|
|
371
391
|
/**
|
|
372
392
|
* The date of the month that today falls on.
|
|
@@ -376,7 +396,8 @@ class MonthViewComponent {
|
|
|
376
396
|
if (todayDate != undefined)
|
|
377
397
|
return this._todayDate = todayDate;
|
|
378
398
|
return this._todayDate;
|
|
379
|
-
},
|
|
399
|
+
}, /* @ts-ignore */
|
|
400
|
+
...(ngDevMode ? [{ debugName: "todayDate" }] : /* istanbul ignore next */ []));
|
|
380
401
|
/**
|
|
381
402
|
* An array to hold all selectedDates' value
|
|
382
403
|
* the value is the day number in current month
|
|
@@ -406,7 +427,8 @@ class MonthViewComponent {
|
|
|
406
427
|
});
|
|
407
428
|
}
|
|
408
429
|
return this._selectedDates = selectedDates;
|
|
409
|
-
},
|
|
430
|
+
}, /* @ts-ignore */
|
|
431
|
+
...(ngDevMode ? [{ debugName: "selectedDates" }] : /* istanbul ignore next */ []));
|
|
410
432
|
this._firstRowOffset = 0;
|
|
411
433
|
// the index of cell that contains the first date of the month
|
|
412
434
|
this.firstRowOffset = computed(() => {
|
|
@@ -414,7 +436,8 @@ class MonthViewComponent {
|
|
|
414
436
|
if (firstRowOffset != undefined)
|
|
415
437
|
return this._firstRowOffset = firstRowOffset;
|
|
416
438
|
return this._firstRowOffset;
|
|
417
|
-
},
|
|
439
|
+
}, /* @ts-ignore */
|
|
440
|
+
...(ngDevMode ? [{ debugName: "firstRowOffset" }] : /* istanbul ignore next */ []));
|
|
418
441
|
/**
|
|
419
442
|
* Callback to invoke when a new date is selected
|
|
420
443
|
*/
|
|
@@ -426,7 +449,8 @@ class MonthViewComponent {
|
|
|
426
449
|
/** Emits when any date is activated */
|
|
427
450
|
this.pickerMomentChange = output();
|
|
428
451
|
/** The body of calendar table */
|
|
429
|
-
this.calendarBodyElm = viewChild(CalendarBodyComponent,
|
|
452
|
+
this.calendarBodyElm = viewChild(CalendarBodyComponent, /* @ts-ignore */
|
|
453
|
+
...(ngDevMode ? [{ debugName: "calendarBodyElm" }] : /* istanbul ignore next */ []));
|
|
430
454
|
}
|
|
431
455
|
/**
|
|
432
456
|
* Handle a calendarCell selected
|
|
@@ -566,10 +590,10 @@ class MonthViewComponent {
|
|
|
566
590
|
focusActiveCell() {
|
|
567
591
|
this.calendarBodyElm()?.focusActiveCell();
|
|
568
592
|
}
|
|
569
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
570
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
593
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MonthViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
594
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: MonthViewComponent, isStandalone: true, selector: "nxt-date-time-month-view", inputs: { hideOtherMonths: { classPropertyName: "hideOtherMonths", publicName: "hideOtherMonths", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selecteds: { classPropertyName: "selecteds", publicName: "selecteds", isSignal: true, isRequired: false, transformFunction: null }, pickerMoment: { classPropertyName: "pickerMoment", publicName: "pickerMoment", isSignal: true, isRequired: false, transformFunction: null }, dateTimeFilter: { classPropertyName: "dateTimeFilter", publicName: "dateTimeFilter", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange", userSelection: "userSelection", pickerMomentChange: "pickerMomentChange" }, host: { properties: { "class.nxt-dt-calendar-view": "true" } }, viewQueries: [{ propertyName: "calendarBodyElm", first: true, predicate: CalendarBodyComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<table class=\"nxt-dt-calendar-table nxt-dt-calendar-month-table\"\r\n [class.nxt-dt-calendar-only-current-month]=\"hideOtherMonths()\">\r\n <thead class=\"nxt-dt-calendar-header\">\r\n <tr class=\"nxt-dt-weekdays\">\r\n @for (weekday of weekdays(); track weekday.long) {\r\n <th [attr.aria-label]=\"weekday.long\"\r\n class=\"nxt-dt-weekday\"\r\n scope=\"col\">\r\n <span>{{weekday.short}}</span>\r\n </th>\r\n }\r\n </tr>\r\n <tr>\r\n <th class=\"nxt-dt-calendar-table-divider\"\r\n aria-hidden=\"true\"\r\n colspan=\"7\"></th>\r\n </tr>\r\n </thead>\r\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\r\n <tbody nxtDateTimeCalendarBody\r\n role=\"grid\"\r\n [rows]=\"days()\"\r\n [todayValue]=\"todayDate()\"\r\n [selectedValues]=\"selectedDates()\"\r\n [selectMode]=\"selectMode()\"\r\n [activeCell]=\"activeCell() ?? 0\"\r\n (keydown)=\"handleCalendarKeydown($event)\"\r\n (select)=\"selectCalendarCell($event)\">\r\n </tbody>\r\n</table>\r\n", styles: [""], dependencies: [{ kind: "component", type: CalendarBodyComponent, selector: "[nxtDateTimeCalendarBody]", inputs: ["activeCell", "rows", "numCols", "cellRatio", "todayValue", "selectedValues", "selectMode"], outputs: ["select"], exportAs: ["nxtDateTimeCalendarBody"] }] }); }
|
|
571
595
|
}
|
|
572
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MonthViewComponent, decorators: [{
|
|
573
597
|
type: Component,
|
|
574
598
|
args: [{ selector: 'nxt-date-time-month-view', preserveWhitespaces: false, imports: [
|
|
575
599
|
CalendarBodyComponent
|
|
@@ -581,50 +605,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
581
605
|
class DateTimeIntl {
|
|
582
606
|
constructor() {
|
|
583
607
|
/** A label for the up second button (used by screen readers). */
|
|
584
|
-
this.upSecondLabel = signal($localize `:@@nxt-pick-datetime.up-second:Add a second`,
|
|
608
|
+
this.upSecondLabel = signal($localize `:@@nxt-pick-datetime.up-second:Add a second`, /* @ts-ignore */
|
|
609
|
+
...(ngDevMode ? [{ debugName: "upSecondLabel" }] : /* istanbul ignore next */ []));
|
|
585
610
|
/** A label for the down second button (used by screen readers). */
|
|
586
|
-
this.downSecondLabel = signal($localize `:@@nxt-pick-datetime.down-second:Minus a second`,
|
|
611
|
+
this.downSecondLabel = signal($localize `:@@nxt-pick-datetime.down-second:Minus a second`, /* @ts-ignore */
|
|
612
|
+
...(ngDevMode ? [{ debugName: "downSecondLabel" }] : /* istanbul ignore next */ []));
|
|
587
613
|
/** A label for the up minute button (used by screen readers). */
|
|
588
|
-
this.upMinuteLabel = signal($localize `:@@nxt-pick-datetime.up-minute:Add a minute`,
|
|
614
|
+
this.upMinuteLabel = signal($localize `:@@nxt-pick-datetime.up-minute:Add a minute`, /* @ts-ignore */
|
|
615
|
+
...(ngDevMode ? [{ debugName: "upMinuteLabel" }] : /* istanbul ignore next */ []));
|
|
589
616
|
/** A label for the down minute button (used by screen readers). */
|
|
590
|
-
this.downMinuteLabel = signal($localize `:@@nxt-pick-datetime.down-minute:Minus a minute`,
|
|
617
|
+
this.downMinuteLabel = signal($localize `:@@nxt-pick-datetime.down-minute:Minus a minute`, /* @ts-ignore */
|
|
618
|
+
...(ngDevMode ? [{ debugName: "downMinuteLabel" }] : /* istanbul ignore next */ []));
|
|
591
619
|
/** A label for the up hour button (used by screen readers). */
|
|
592
|
-
this.upHourLabel = signal($localize `:@@nxt-pick-datetime.up-hour:Add a hour`,
|
|
620
|
+
this.upHourLabel = signal($localize `:@@nxt-pick-datetime.up-hour:Add a hour`, /* @ts-ignore */
|
|
621
|
+
...(ngDevMode ? [{ debugName: "upHourLabel" }] : /* istanbul ignore next */ []));
|
|
593
622
|
/** A label for the down hour button (used by screen readers). */
|
|
594
|
-
this.downHourLabel = signal($localize `:@@nxt-pick-datetime.down-hour:Minus a hour`,
|
|
623
|
+
this.downHourLabel = signal($localize `:@@nxt-pick-datetime.down-hour:Minus a hour`, /* @ts-ignore */
|
|
624
|
+
...(ngDevMode ? [{ debugName: "downHourLabel" }] : /* istanbul ignore next */ []));
|
|
595
625
|
/** A label for the previous month button (used by screen readers) */
|
|
596
|
-
this.prevMonthLabel = signal($localize `:@@nxt-pick-datetime.prev-month:Previous month`,
|
|
626
|
+
this.prevMonthLabel = signal($localize `:@@nxt-pick-datetime.prev-month:Previous month`, /* @ts-ignore */
|
|
627
|
+
...(ngDevMode ? [{ debugName: "prevMonthLabel" }] : /* istanbul ignore next */ []));
|
|
597
628
|
/** A label for the next month button (used by screen readers) */
|
|
598
|
-
this.nextMonthLabel = signal($localize `:@@nxt-pick-datetime.next-month:Next month`,
|
|
629
|
+
this.nextMonthLabel = signal($localize `:@@nxt-pick-datetime.next-month:Next month`, /* @ts-ignore */
|
|
630
|
+
...(ngDevMode ? [{ debugName: "nextMonthLabel" }] : /* istanbul ignore next */ []));
|
|
599
631
|
/** A label for the previous year button (used by screen readers) */
|
|
600
|
-
this.prevYearLabel = signal($localize `:@@nxt-pick-datetime.prev-year:Previous year`,
|
|
632
|
+
this.prevYearLabel = signal($localize `:@@nxt-pick-datetime.prev-year:Previous year`, /* @ts-ignore */
|
|
633
|
+
...(ngDevMode ? [{ debugName: "prevYearLabel" }] : /* istanbul ignore next */ []));
|
|
601
634
|
/** A label for the next year button (used by screen readers) */
|
|
602
|
-
this.nextYearLabel = signal($localize `:@@nxt-pick-datetime.next-year:Next year`,
|
|
635
|
+
this.nextYearLabel = signal($localize `:@@nxt-pick-datetime.next-year:Next year`, /* @ts-ignore */
|
|
636
|
+
...(ngDevMode ? [{ debugName: "nextYearLabel" }] : /* istanbul ignore next */ []));
|
|
603
637
|
/** A label for the previous multi-year button (used by screen readers) */
|
|
604
|
-
this.prevMultiYearLabel = signal($localize `:@@nxt-pick-datetime.prev-multi-year:Previous 21 years`,
|
|
638
|
+
this.prevMultiYearLabel = signal($localize `:@@nxt-pick-datetime.prev-multi-year:Previous 21 years`, /* @ts-ignore */
|
|
639
|
+
...(ngDevMode ? [{ debugName: "prevMultiYearLabel" }] : /* istanbul ignore next */ []));
|
|
605
640
|
/** A label for the next multi-year button (used by screen readers) */
|
|
606
|
-
this.nextMultiYearLabel = signal($localize `:@@nxt-pick-datetime.next-multi-year:Next 21 years`,
|
|
641
|
+
this.nextMultiYearLabel = signal($localize `:@@nxt-pick-datetime.next-multi-year:Next 21 years`, /* @ts-ignore */
|
|
642
|
+
...(ngDevMode ? [{ debugName: "nextMultiYearLabel" }] : /* istanbul ignore next */ []));
|
|
607
643
|
/** A label for the 'switch to month view' button (used by screen readers) */
|
|
608
|
-
this.switchToMonthViewLabel = signal($localize `:@@nxt-pick-datetime.switch-to-month:Change to month view`,
|
|
644
|
+
this.switchToMonthViewLabel = signal($localize `:@@nxt-pick-datetime.switch-to-month:Change to month view`, /* @ts-ignore */
|
|
645
|
+
...(ngDevMode ? [{ debugName: "switchToMonthViewLabel" }] : /* istanbul ignore next */ []));
|
|
609
646
|
/** A label for the 'switch to year view' button (used by screen readers) */
|
|
610
|
-
this.switchToMultiYearViewLabel = signal($localize `:@@nxt-pick-datetime.switch-to-year-month:Choose month and year`,
|
|
647
|
+
this.switchToMultiYearViewLabel = signal($localize `:@@nxt-pick-datetime.switch-to-year-month:Choose month and year`, /* @ts-ignore */
|
|
648
|
+
...(ngDevMode ? [{ debugName: "switchToMultiYearViewLabel" }] : /* istanbul ignore next */ []));
|
|
611
649
|
/** A label for the cancel button */
|
|
612
|
-
this.cancelBtnLabel = signal($localize `:@@nxt-pick-datetime.cancel:Cancel`,
|
|
650
|
+
this.cancelBtnLabel = signal($localize `:@@nxt-pick-datetime.cancel:Cancel`, /* @ts-ignore */
|
|
651
|
+
...(ngDevMode ? [{ debugName: "cancelBtnLabel" }] : /* istanbul ignore next */ []));
|
|
613
652
|
/** A label for the set button */
|
|
614
|
-
this.setBtnLabel = signal($localize `:@@nxt-pick-datetime.set:Set`,
|
|
653
|
+
this.setBtnLabel = signal($localize `:@@nxt-pick-datetime.set:Set`, /* @ts-ignore */
|
|
654
|
+
...(ngDevMode ? [{ debugName: "setBtnLabel" }] : /* istanbul ignore next */ []));
|
|
615
655
|
/** A label for the range 'from' in picker info */
|
|
616
|
-
this.rangeFromLabel = signal($localize `:@@nxt-pick-datetime.from:From`,
|
|
656
|
+
this.rangeFromLabel = signal($localize `:@@nxt-pick-datetime.from:From`, /* @ts-ignore */
|
|
657
|
+
...(ngDevMode ? [{ debugName: "rangeFromLabel" }] : /* istanbul ignore next */ []));
|
|
617
658
|
/** A label for the range 'to' in picker info */
|
|
618
|
-
this.rangeToLabel = signal($localize `:@@nxt-pick-datetime.to:To`,
|
|
659
|
+
this.rangeToLabel = signal($localize `:@@nxt-pick-datetime.to:To`, /* @ts-ignore */
|
|
660
|
+
...(ngDevMode ? [{ debugName: "rangeToLabel" }] : /* istanbul ignore next */ []));
|
|
619
661
|
/** A label for the hour12 button (AM) */
|
|
620
|
-
this.hour12AMLabel = signal($localize `:@@nxt-pick-datetime.time-am:AM`,
|
|
662
|
+
this.hour12AMLabel = signal($localize `:@@nxt-pick-datetime.time-am:AM`, /* @ts-ignore */
|
|
663
|
+
...(ngDevMode ? [{ debugName: "hour12AMLabel" }] : /* istanbul ignore next */ []));
|
|
621
664
|
/** A label for the hour12 button (PM) */
|
|
622
|
-
this.hour12PMLabel = signal($localize `:@@nxt-pick-datetime.time-pm:PM`,
|
|
665
|
+
this.hour12PMLabel = signal($localize `:@@nxt-pick-datetime.time-pm:PM`, /* @ts-ignore */
|
|
666
|
+
...(ngDevMode ? [{ debugName: "hour12PMLabel" }] : /* istanbul ignore next */ []));
|
|
623
667
|
}
|
|
624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
625
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
668
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeIntl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
669
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeIntl, providedIn: 'root' }); }
|
|
626
670
|
}
|
|
627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
671
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeIntl, decorators: [{
|
|
628
672
|
type: Injectable,
|
|
629
673
|
args: [{
|
|
630
674
|
providedIn: 'root'
|
|
@@ -642,36 +686,39 @@ class MultiYearViewComponent {
|
|
|
642
686
|
/**
|
|
643
687
|
* The select mode of the picker;
|
|
644
688
|
*/
|
|
645
|
-
this.selectMode = input('single',
|
|
689
|
+
this.selectMode = input('single', /* @ts-ignore */
|
|
690
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
646
691
|
/** The currently selected date */
|
|
647
|
-
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : {}), transform: value => {
|
|
692
|
+
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: value => {
|
|
648
693
|
value = this.dateTimeAdapter.deserialize(value);
|
|
649
694
|
return this.getValidDate(value);
|
|
650
695
|
} });
|
|
651
|
-
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : {}), transform: values => values.map(v => {
|
|
696
|
+
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : /* istanbul ignore next */ {}), transform: values => values.map(v => {
|
|
652
697
|
v = this.dateTimeAdapter.deserialize(v);
|
|
653
698
|
return this.getValidDate(v);
|
|
654
699
|
}) });
|
|
655
700
|
/** Settable signal for pickerMoment */
|
|
656
701
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
657
|
-
this._pickerMomentInput = input(undefined, { ...(ngDevMode ? { debugName: "_pickerMomentInput" } : {}), alias: 'pickerMoment' });
|
|
658
|
-
this._pickerMoment = linkedSignal({ ...(ngDevMode ? { debugName: "_pickerMoment" } : {}), source: () => this._pickerMomentInput(),
|
|
702
|
+
this._pickerMomentInput = input(undefined, { ...(ngDevMode ? { debugName: "_pickerMomentInput" } : /* istanbul ignore next */ {}), alias: 'pickerMoment' });
|
|
703
|
+
this._pickerMoment = linkedSignal({ ...(ngDevMode ? { debugName: "_pickerMoment" } : /* istanbul ignore next */ {}), source: () => this._pickerMomentInput(),
|
|
659
704
|
computation: v => v });
|
|
660
705
|
this.pickerMoment = computed(() => {
|
|
661
706
|
const value = this.dateTimeAdapter.deserialize(this._pickerMoment());
|
|
662
707
|
return this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
663
|
-
},
|
|
708
|
+
}, /* @ts-ignore */
|
|
709
|
+
...(ngDevMode ? [{ debugName: "pickerMoment" }] : /* istanbul ignore next */ []));
|
|
664
710
|
/**
|
|
665
711
|
* A function used to filter which dates are selectable
|
|
666
712
|
*/
|
|
667
|
-
this.dateTimeFilter = input(
|
|
713
|
+
this.dateTimeFilter = input(/* @ts-ignore */
|
|
714
|
+
...(ngDevMode ? [undefined, { debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
668
715
|
/** The minimum selectable date */
|
|
669
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: value => {
|
|
716
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: value => {
|
|
670
717
|
value = this.dateTimeAdapter.deserialize(value);
|
|
671
718
|
return this.getValidDate(value);
|
|
672
719
|
} });
|
|
673
720
|
/** The maximum selectable date */
|
|
674
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: value => {
|
|
721
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: value => {
|
|
675
722
|
value = this.dateTimeAdapter.deserialize(value);
|
|
676
723
|
return this.getValidDate(value);
|
|
677
724
|
} });
|
|
@@ -693,13 +740,18 @@ class MultiYearViewComponent {
|
|
|
693
740
|
years,
|
|
694
741
|
todayYear
|
|
695
742
|
};
|
|
696
|
-
},
|
|
697
|
-
|
|
698
|
-
this.
|
|
699
|
-
|
|
743
|
+
}, /* @ts-ignore */
|
|
744
|
+
...(ngDevMode ? [{ debugName: "yearsData" }] : /* istanbul ignore next */ []));
|
|
745
|
+
this.years = computed(() => this.yearsData().years, /* @ts-ignore */
|
|
746
|
+
...(ngDevMode ? [{ debugName: "years" }] : /* istanbul ignore next */ []));
|
|
747
|
+
this.todayYear = computed(() => this.yearsData().todayYear, /* @ts-ignore */
|
|
748
|
+
...(ngDevMode ? [{ debugName: "todayYear" }] : /* istanbul ignore next */ []));
|
|
749
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
750
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
700
751
|
this.isInRangeMode = computed(() => (this.selectMode() === 'range' ||
|
|
701
752
|
this.selectMode() === 'rangeFrom' ||
|
|
702
|
-
this.selectMode() === 'rangeTo'),
|
|
753
|
+
this.selectMode() === 'rangeTo'), /* @ts-ignore */
|
|
754
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
703
755
|
this.selectedYears = computed(() => {
|
|
704
756
|
let selectedYears = new Array();
|
|
705
757
|
if (this.isInSingleMode() && this.selected()) {
|
|
@@ -714,20 +766,23 @@ class MultiYearViewComponent {
|
|
|
714
766
|
});
|
|
715
767
|
}
|
|
716
768
|
return selectedYears;
|
|
717
|
-
},
|
|
769
|
+
}, /* @ts-ignore */
|
|
770
|
+
...(ngDevMode ? [{ debugName: "selectedYears" }] : /* istanbul ignore next */ []));
|
|
718
771
|
this.activeCell = computed(() => {
|
|
719
772
|
if (this.pickerMoment()) {
|
|
720
773
|
return this.dateTimeAdapter.getYear(this.pickerMoment()) % (YEARS_PER_ROW * YEAR_ROWS);
|
|
721
774
|
}
|
|
722
775
|
return;
|
|
723
|
-
},
|
|
776
|
+
}, /* @ts-ignore */
|
|
777
|
+
...(ngDevMode ? [{ debugName: "activeCell" }] : /* istanbul ignore next */ []));
|
|
724
778
|
this.tableHeader = computed(() => {
|
|
725
779
|
const years = this.years();
|
|
726
780
|
if (years && years.length > 0) {
|
|
727
781
|
return `${years[0][0].displayValue} ~ ${years[YEAR_ROWS - 1][YEARS_PER_ROW - 1].displayValue}`;
|
|
728
782
|
}
|
|
729
783
|
return;
|
|
730
|
-
},
|
|
784
|
+
}, /* @ts-ignore */
|
|
785
|
+
...(ngDevMode ? [{ debugName: "tableHeader" }] : /* istanbul ignore next */ []));
|
|
731
786
|
this.prevButtonLabel = this.pickerIntl.prevMultiYearLabel.asReadonly();
|
|
732
787
|
this.nextButtonLabel = this.pickerIntl.nextMultiYearLabel.asReadonly();
|
|
733
788
|
/**
|
|
@@ -745,7 +800,8 @@ class MultiYearViewComponent {
|
|
|
745
800
|
/** Emits when use keyboard enter to select a calendar cell */
|
|
746
801
|
this.keyboardEnter = output();
|
|
747
802
|
/** The body of calendar table */
|
|
748
|
-
this.calendarBodyElm = viewChild(CalendarBodyComponent,
|
|
803
|
+
this.calendarBodyElm = viewChild(CalendarBodyComponent, /* @ts-ignore */
|
|
804
|
+
...(ngDevMode ? [{ debugName: "calendarBodyElm" }] : /* istanbul ignore next */ []));
|
|
749
805
|
}
|
|
750
806
|
/**
|
|
751
807
|
* Handle a calendarCell selected
|
|
@@ -878,10 +934,10 @@ class MultiYearViewComponent {
|
|
|
878
934
|
focusActiveCell() {
|
|
879
935
|
this.calendarBodyElm()?.focusActiveCell();
|
|
880
936
|
}
|
|
881
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
882
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
937
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MultiYearViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
938
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: MultiYearViewComponent, isStandalone: true, selector: "nxt-date-time-multi-year-view", inputs: { selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selecteds: { classPropertyName: "selecteds", publicName: "selecteds", isSignal: true, isRequired: false, transformFunction: null }, _pickerMomentInput: { classPropertyName: "_pickerMomentInput", publicName: "pickerMoment", isSignal: true, isRequired: false, transformFunction: null }, dateTimeFilter: { classPropertyName: "dateTimeFilter", publicName: "dateTimeFilter", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", yearSelected: "yearSelected", pickerMomentChange: "pickerMomentChange", keyboardEnter: "keyboardEnter" }, host: { properties: { "class.nxt-dt-calendar-view": "true", "class.nxt-dt-calendar-multi-year-view": "true" } }, viewQueries: [{ propertyName: "calendarBodyElm", first: true, predicate: CalendarBodyComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<button class=\"nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n [disabled]=\"!previousEnabled()\"\r\n [attr.aria-label]=\"prevButtonLabel()\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n (click)=\"prevYearList($event)\">\r\n <span class=\"nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Left\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path style=\"fill-rule: evenodd; clip-rule: evenodd;\"\r\n d=\"M96.633,125.369l95.053-94.533c7.101-7.055,7.101-18.492,0-25.546 c-7.1-7.054-18.613-7.054-25.714,0L58.989,111.689c-3.784,3.759-5.487,8.759-5.238,13.68c-0.249,4.922,1.454,9.921,5.238,13.681 l106.983,106.398c7.101,7.055,18.613,7.055,25.714,0c7.101-7.054,7.101-18.491,0-25.544L96.633,125.369z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n</button>\r\n<table class=\"nxt-dt-calendar-table nxt-dt-calendar-multi-year-table\">\r\n <thead class=\"nxt-dt-calendar-header\">\r\n <tr>\r\n <th colspan=\"3\">{{tableHeader()}}</th>\r\n </tr>\r\n </thead>\r\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\r\n <tbody nxtDateTimeCalendarBody\r\n role=\"grid\"\r\n [rows]=\"years()\"\r\n [numCols]=\"3\"\r\n [cellRatio]=\"3 / 7\"\r\n [activeCell]=\"activeCell() ?? 0\"\r\n [todayValue]=\"todayYear()\"\r\n [selectedValues]=\"selectedYears()\"\r\n [selectMode]=\"selectMode()\"\r\n (keydown)=\"handleCalendarKeydown($event)\"\r\n (select)=\"selectCalendarCell($event)\"></tbody>\r\n</table>\r\n<button class=\"nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n [disabled]=\"!nextEnabled()\"\r\n [attr.aria-label]=\"nextButtonLabel()\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n (click)=\"nextYearList($event)\">\r\n <span class=\"nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Right\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\">\r\n <path style=\"fill-rule:evenodd;clip-rule:evenodd;\"\r\n d=\"M191.75,111.689L84.766,5.291c-7.1-7.055-18.613-7.055-25.713,0\r\n c-7.101,7.054-7.101,18.49,0,25.544l95.053,94.534l-95.053,94.533c-7.101,7.054-7.101,18.491,0,25.545\r\n c7.1,7.054,18.613,7.054,25.713,0L191.75,139.05c3.784-3.759,5.487-8.759,5.238-13.681\r\n C197.237,120.447,195.534,115.448,191.75,111.689z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "component", type: CalendarBodyComponent, selector: "[nxtDateTimeCalendarBody]", inputs: ["activeCell", "rows", "numCols", "cellRatio", "todayValue", "selectedValues", "selectMode"], outputs: ["select"], exportAs: ["nxtDateTimeCalendarBody"] }] }); }
|
|
883
939
|
}
|
|
884
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
940
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MultiYearViewComponent, decorators: [{
|
|
885
941
|
type: Component,
|
|
886
942
|
args: [{ selector: 'nxt-date-time-multi-year-view', preserveWhitespaces: false, imports: [
|
|
887
943
|
CalendarBodyComponent
|
|
@@ -902,31 +958,33 @@ class YearViewComponent {
|
|
|
902
958
|
/**
|
|
903
959
|
* The select mode of the picker;
|
|
904
960
|
*/
|
|
905
|
-
this.selectMode = input('single',
|
|
961
|
+
this.selectMode = input('single', /* @ts-ignore */
|
|
962
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
906
963
|
/** The currently selected date */
|
|
907
|
-
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : {}), transform: value => {
|
|
964
|
+
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: value => {
|
|
908
965
|
value = this.dateTimeAdapter.deserialize(value);
|
|
909
966
|
return this.getValidDate(value);
|
|
910
967
|
} });
|
|
911
|
-
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : {}), transform: values => values.map(v => {
|
|
968
|
+
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : /* istanbul ignore next */ {}), transform: values => values.map(v => {
|
|
912
969
|
v = this.dateTimeAdapter.deserialize(v);
|
|
913
970
|
return this.getValidDate(v);
|
|
914
971
|
}) });
|
|
915
|
-
this.pickerMoment = input(undefined, { ...(ngDevMode ? { debugName: "pickerMoment" } : {}), transform: value => {
|
|
972
|
+
this.pickerMoment = input(undefined, { ...(ngDevMode ? { debugName: "pickerMoment" } : /* istanbul ignore next */ {}), transform: value => {
|
|
916
973
|
value = this.dateTimeAdapter.deserialize(value);
|
|
917
974
|
return this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
918
975
|
} });
|
|
919
976
|
/**
|
|
920
977
|
* A function used to filter which dates are selectable
|
|
921
978
|
*/
|
|
922
|
-
this.dateTimeFilter = input(
|
|
979
|
+
this.dateTimeFilter = input(/* @ts-ignore */
|
|
980
|
+
...(ngDevMode ? [undefined, { debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
923
981
|
/** The minimum selectable date */
|
|
924
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: value => {
|
|
982
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: value => {
|
|
925
983
|
value = this.dateTimeAdapter.deserialize(value);
|
|
926
984
|
return this.getValidDate(value);
|
|
927
985
|
} });
|
|
928
986
|
/** The maximum selectable date */
|
|
929
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: value => {
|
|
987
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: value => {
|
|
930
988
|
value = this.dateTimeAdapter.deserialize(value);
|
|
931
989
|
return this.getValidDate(value);
|
|
932
990
|
} });
|
|
@@ -950,29 +1008,35 @@ class YearViewComponent {
|
|
|
950
1008
|
months,
|
|
951
1009
|
todayMonth
|
|
952
1010
|
};
|
|
953
|
-
},
|
|
1011
|
+
}, /* @ts-ignore */
|
|
1012
|
+
...(ngDevMode ? [{ debugName: "monthsData" }] : /* istanbul ignore next */ []));
|
|
954
1013
|
this.months = computed(() => {
|
|
955
1014
|
const months = this.monthsData()?.months;
|
|
956
1015
|
if (months != undefined)
|
|
957
1016
|
return this._months = months;
|
|
958
1017
|
return this._months;
|
|
959
|
-
},
|
|
1018
|
+
}, /* @ts-ignore */
|
|
1019
|
+
...(ngDevMode ? [{ debugName: "months" }] : /* istanbul ignore next */ []));
|
|
960
1020
|
this.activeCell = computed(() => {
|
|
961
1021
|
if (this.pickerMoment()) {
|
|
962
1022
|
return this.dateTimeAdapter.getMonth(this.pickerMoment());
|
|
963
1023
|
}
|
|
964
1024
|
return;
|
|
965
|
-
},
|
|
966
|
-
|
|
1025
|
+
}, /* @ts-ignore */
|
|
1026
|
+
...(ngDevMode ? [{ debugName: "activeCell" }] : /* istanbul ignore next */ []));
|
|
1027
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
1028
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
967
1029
|
this.isInRangeMode = computed(() => (this.selectMode() === 'range' ||
|
|
968
1030
|
this.selectMode() === 'rangeFrom' ||
|
|
969
|
-
this.selectMode() === 'rangeTo'),
|
|
1031
|
+
this.selectMode() === 'rangeTo'), /* @ts-ignore */
|
|
1032
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
970
1033
|
this.todayMonth = computed(() => {
|
|
971
1034
|
const todayMonth = this.monthsData()?.todayMonth;
|
|
972
1035
|
if (todayMonth != undefined)
|
|
973
1036
|
return this._todayMonth = todayMonth;
|
|
974
1037
|
return this._todayMonth;
|
|
975
|
-
},
|
|
1038
|
+
}, /* @ts-ignore */
|
|
1039
|
+
...(ngDevMode ? [{ debugName: "todayMonth" }] : /* istanbul ignore next */ []));
|
|
976
1040
|
/**
|
|
977
1041
|
* An array to hold all selectedDates' month value
|
|
978
1042
|
* the value is the month number in current year
|
|
@@ -992,7 +1056,8 @@ class YearViewComponent {
|
|
|
992
1056
|
selectedMonths[1] = this.getMonthInCurrentYear(this.selecteds()[1]);
|
|
993
1057
|
}
|
|
994
1058
|
return selectedMonths;
|
|
995
|
-
},
|
|
1059
|
+
}, /* @ts-ignore */
|
|
1060
|
+
...(ngDevMode ? [{ debugName: "selectedMonths" }] : /* istanbul ignore next */ []));
|
|
996
1061
|
/**
|
|
997
1062
|
* Callback to invoke when a new month is selected
|
|
998
1063
|
*/
|
|
@@ -1008,7 +1073,8 @@ class YearViewComponent {
|
|
|
1008
1073
|
/** Emits when use keyboard enter to select a calendar cell */
|
|
1009
1074
|
this.keyboardEnter = output();
|
|
1010
1075
|
/** The body of calendar table */
|
|
1011
|
-
this.calendarBodyElm = viewChild(CalendarBodyComponent,
|
|
1076
|
+
this.calendarBodyElm = viewChild(CalendarBodyComponent, /* @ts-ignore */
|
|
1077
|
+
...(ngDevMode ? [{ debugName: "calendarBodyElm" }] : /* istanbul ignore next */ []));
|
|
1012
1078
|
}
|
|
1013
1079
|
/**
|
|
1014
1080
|
* Handle a calendarCell selected
|
|
@@ -1154,10 +1220,10 @@ class YearViewComponent {
|
|
|
1154
1220
|
focusActiveCell() {
|
|
1155
1221
|
this.calendarBodyElm()?.focusActiveCell();
|
|
1156
1222
|
}
|
|
1157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
1223
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: YearViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: YearViewComponent, isStandalone: true, selector: "nxt-date-time-year-view", inputs: { selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selecteds: { classPropertyName: "selecteds", publicName: "selecteds", isSignal: true, isRequired: false, transformFunction: null }, pickerMoment: { classPropertyName: "pickerMoment", publicName: "pickerMoment", isSignal: true, isRequired: false, transformFunction: null }, dateTimeFilter: { classPropertyName: "dateTimeFilter", publicName: "dateTimeFilter", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", monthSelected: "monthSelected", pickerMomentChange: "pickerMomentChange", keyboardEnter: "keyboardEnter" }, host: { properties: { "class.nxt-dt-calendar-view": "true" } }, viewQueries: [{ propertyName: "calendarBodyElm", first: true, predicate: CalendarBodyComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<table class=\"nxt-dt-calendar-table nxt-dt-calendar-year-table\">\r\n <thead class=\"nxt-dt-calendar-header\">\r\n <tr>\r\n <th class=\"nxt-dt-calendar-table-divider\"\r\n aria-hidden=\"true\"\r\n colspan=\"3\"></th>\r\n </tr>\r\n </thead>\r\n <!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\r\n <tbody nxtDateTimeCalendarBody\r\n role=\"grid\"\r\n [rows]=\"months()\"\r\n [numCols]=\"3\"\r\n [cellRatio]=\"3 / 7\"\r\n [activeCell]=\"activeCell() ?? 0\"\r\n [todayValue]=\"todayMonth()\"\r\n [selectedValues]=\"selectedMonths()\"\r\n [selectMode]=\"selectMode()\"\r\n (keydown)=\"handleCalendarKeydown($event)\"\r\n (select)=\"selectCalendarCell($event)\">\r\n </tbody>\r\n</table>\r\n", styles: [""], dependencies: [{ kind: "component", type: CalendarBodyComponent, selector: "[nxtDateTimeCalendarBody]", inputs: ["activeCell", "rows", "numCols", "cellRatio", "todayValue", "selectedValues", "selectMode"], outputs: ["select"], exportAs: ["nxtDateTimeCalendarBody"] }] }); }
|
|
1159
1225
|
}
|
|
1160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: YearViewComponent, decorators: [{
|
|
1161
1227
|
type: Component,
|
|
1162
1228
|
args: [{ selector: 'nxt-date-time-year-view', preserveWhitespaces: false, imports: [
|
|
1163
1229
|
CalendarBodyComponent
|
|
@@ -1171,18 +1237,22 @@ class CalendarComponent {
|
|
|
1171
1237
|
this.elmRef = inject(ElementRef);
|
|
1172
1238
|
this.pickerIntl = inject(DateTimeIntl);
|
|
1173
1239
|
this.ngZone = inject(NgZone);
|
|
1240
|
+
this.injector = inject(Injector);
|
|
1241
|
+
this.destroyRef = inject(DestroyRef);
|
|
1174
1242
|
this.dateTimeAdapter = inject(DateTimeAdapter);
|
|
1175
1243
|
this.dateTimeFormats = inject(NXT_DATE_TIME_FORMATS);
|
|
1176
1244
|
/**
|
|
1177
1245
|
* Date filter for the month and year view
|
|
1178
1246
|
*/
|
|
1179
|
-
this.dateTimeFilter = input(
|
|
1247
|
+
this.dateTimeFilter = input(/* @ts-ignore */
|
|
1248
|
+
...(ngDevMode ? [undefined, { debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
1180
1249
|
/**
|
|
1181
1250
|
* Set the first day of week
|
|
1182
1251
|
*/
|
|
1183
|
-
this.firstDayOfWeek = input(0,
|
|
1252
|
+
this.firstDayOfWeek = input(0, /* @ts-ignore */
|
|
1253
|
+
...(ngDevMode ? [{ debugName: "firstDayOfWeek" }] : /* istanbul ignore next */ []));
|
|
1184
1254
|
/** The minimum selectable date */
|
|
1185
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: (value) => {
|
|
1255
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: (value) => {
|
|
1186
1256
|
value = this.dateTimeAdapter.deserialize(value);
|
|
1187
1257
|
value = this.getValidDate(value);
|
|
1188
1258
|
return value
|
|
@@ -1190,7 +1260,7 @@ class CalendarComponent {
|
|
|
1190
1260
|
: undefined;
|
|
1191
1261
|
} });
|
|
1192
1262
|
/** The maximum selectable date */
|
|
1193
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: (value) => {
|
|
1263
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: (value) => {
|
|
1194
1264
|
value = this.dateTimeAdapter.deserialize(value);
|
|
1195
1265
|
value = this.getValidDate(value);
|
|
1196
1266
|
return value
|
|
@@ -1199,32 +1269,36 @@ class CalendarComponent {
|
|
|
1199
1269
|
} });
|
|
1200
1270
|
/** The current picker moment */
|
|
1201
1271
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
1202
|
-
this._pickerMomentInput = input(undefined, { ...(ngDevMode ? { debugName: "_pickerMomentInput" } : {}), alias: 'pickerMoment' });
|
|
1272
|
+
this._pickerMomentInput = input(undefined, { ...(ngDevMode ? { debugName: "_pickerMomentInput" } : /* istanbul ignore next */ {}), alias: 'pickerMoment' });
|
|
1203
1273
|
/** Settable signal for pickerMoment */
|
|
1204
|
-
this._pickerMoment = linkedSignal({ ...(ngDevMode ? { debugName: "_pickerMoment" } : {}), source: () => this._pickerMomentInput(),
|
|
1274
|
+
this._pickerMoment = linkedSignal({ ...(ngDevMode ? { debugName: "_pickerMoment" } : /* istanbul ignore next */ {}), source: () => this._pickerMomentInput(),
|
|
1205
1275
|
computation: v => v });
|
|
1206
1276
|
this.pickerMoment = computed(() => {
|
|
1207
1277
|
const value = this.dateTimeAdapter.deserialize(this._pickerMoment());
|
|
1208
1278
|
return this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
1209
|
-
},
|
|
1210
|
-
|
|
1279
|
+
}, /* @ts-ignore */
|
|
1280
|
+
...(ngDevMode ? [{ debugName: "pickerMoment" }] : /* istanbul ignore next */ []));
|
|
1281
|
+
this.selectMode = input(/* @ts-ignore */
|
|
1282
|
+
...(ngDevMode ? [undefined, { debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
1211
1283
|
/** The currently selected moment */
|
|
1212
|
-
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : {}), transform: (value) => {
|
|
1284
|
+
this.selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: (value) => {
|
|
1213
1285
|
value = this.dateTimeAdapter.deserialize(value);
|
|
1214
1286
|
return this.getValidDate(value);
|
|
1215
1287
|
} });
|
|
1216
|
-
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : {}), transform: (values) => values.map(v => {
|
|
1288
|
+
this.selecteds = input([], { ...(ngDevMode ? { debugName: "selecteds" } : /* istanbul ignore next */ {}), transform: (values) => values.map(v => {
|
|
1217
1289
|
v = this.dateTimeAdapter.deserialize(v);
|
|
1218
1290
|
return this.getValidDate(v);
|
|
1219
1291
|
}) });
|
|
1220
1292
|
/**
|
|
1221
1293
|
* The view that the calendar should start in
|
|
1222
1294
|
*/
|
|
1223
|
-
this.startView = input('month',
|
|
1295
|
+
this.startView = input('month', /* @ts-ignore */
|
|
1296
|
+
...(ngDevMode ? [{ debugName: "startView" }] : /* istanbul ignore next */ []));
|
|
1224
1297
|
/**
|
|
1225
1298
|
* Whether to hide dates in other months at the start or end of the current month
|
|
1226
1299
|
*/
|
|
1227
|
-
this.hideOtherMonths = input(false,
|
|
1300
|
+
this.hideOtherMonths = input(false, /* @ts-ignore */
|
|
1301
|
+
...(ngDevMode ? [{ debugName: "hideOtherMonths" }] : /* istanbul ignore next */ []));
|
|
1228
1302
|
/** Emits when the currently picker moment changes */
|
|
1229
1303
|
this.pickerMomentChange = output();
|
|
1230
1304
|
/** Emits when the currently selected date changes */
|
|
@@ -1245,10 +1319,12 @@ class CalendarComponent {
|
|
|
1245
1319
|
this.monthSelected = output();
|
|
1246
1320
|
this.periodButtonText = computed(() => this.isMonthView()
|
|
1247
1321
|
? this.dateTimeAdapter.format(this.pickerMoment(), this.dateTimeFormats.monthYearLabel)
|
|
1248
|
-
: this.dateTimeAdapter.getYearName(this.pickerMoment()),
|
|
1322
|
+
: this.dateTimeAdapter.getYearName(this.pickerMoment()), /* @ts-ignore */
|
|
1323
|
+
...(ngDevMode ? [{ debugName: "periodButtonText" }] : /* istanbul ignore next */ []));
|
|
1249
1324
|
this.periodButtonLabel = computed(() => this.isMonthView()
|
|
1250
1325
|
? this.pickerIntl.switchToMultiYearViewLabel()
|
|
1251
|
-
: this.pickerIntl.switchToMonthViewLabel(),
|
|
1326
|
+
: this.pickerIntl.switchToMonthViewLabel(), /* @ts-ignore */
|
|
1327
|
+
...(ngDevMode ? [{ debugName: "periodButtonLabel" }] : /* istanbul ignore next */ []));
|
|
1252
1328
|
this.prevButtonLabel = computed(() => {
|
|
1253
1329
|
const currentView = this.currentView();
|
|
1254
1330
|
if (currentView === 'month') {
|
|
@@ -1258,7 +1334,8 @@ class CalendarComponent {
|
|
|
1258
1334
|
return this.pickerIntl.prevYearLabel();
|
|
1259
1335
|
}
|
|
1260
1336
|
return;
|
|
1261
|
-
},
|
|
1337
|
+
}, /* @ts-ignore */
|
|
1338
|
+
...(ngDevMode ? [{ debugName: "prevButtonLabel" }] : /* istanbul ignore next */ []));
|
|
1262
1339
|
this.nextButtonLabel = computed(() => {
|
|
1263
1340
|
const currentView = this.currentView();
|
|
1264
1341
|
if (currentView === 'month') {
|
|
@@ -1268,18 +1345,23 @@ class CalendarComponent {
|
|
|
1268
1345
|
return this.pickerIntl.nextYearLabel();
|
|
1269
1346
|
}
|
|
1270
1347
|
return;
|
|
1271
|
-
},
|
|
1272
|
-
|
|
1348
|
+
}, /* @ts-ignore */
|
|
1349
|
+
...(ngDevMode ? [{ debugName: "nextButtonLabel" }] : /* istanbul ignore next */ []));
|
|
1350
|
+
this.currentView = linkedSignal({ ...(ngDevMode ? { debugName: "currentView" } : /* istanbul ignore next */ {}), source: () => this.startView(),
|
|
1273
1351
|
computation: v => v });
|
|
1274
|
-
this.isInSingleMode = computed(() => this.selectMode() === 'single',
|
|
1352
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
1353
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
1275
1354
|
this.isInRangeMode = computed(() => {
|
|
1276
1355
|
const selectMode = this.selectMode();
|
|
1277
1356
|
return (selectMode === 'range' ||
|
|
1278
1357
|
selectMode === 'rangeFrom' ||
|
|
1279
1358
|
selectMode === 'rangeTo');
|
|
1280
|
-
},
|
|
1281
|
-
|
|
1282
|
-
this.
|
|
1359
|
+
}, /* @ts-ignore */
|
|
1360
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
1361
|
+
this.showControlArrows = computed(() => this.currentView() !== 'multi-years', /* @ts-ignore */
|
|
1362
|
+
...(ngDevMode ? [{ debugName: "showControlArrows" }] : /* istanbul ignore next */ []));
|
|
1363
|
+
this.isMonthView = computed(() => this.currentView() === 'month', /* @ts-ignore */
|
|
1364
|
+
...(ngDevMode ? [{ debugName: "isMonthView" }] : /* istanbul ignore next */ []));
|
|
1283
1365
|
/**
|
|
1284
1366
|
* Date filter for the month and year view
|
|
1285
1367
|
*/
|
|
@@ -1294,12 +1376,11 @@ class CalendarComponent {
|
|
|
1294
1376
|
};
|
|
1295
1377
|
afterRenderEffect(() => {
|
|
1296
1378
|
this.currentView();
|
|
1297
|
-
this.
|
|
1298
|
-
/*this.ngZone.runOutsideAngular(() => {
|
|
1379
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1299
1380
|
this.elmRef.nativeElement
|
|
1300
|
-
?.querySelector
|
|
1301
|
-
?.focus()
|
|
1302
|
-
})
|
|
1381
|
+
?.querySelector('.nxt-dt-calendar-cell-active')
|
|
1382
|
+
?.focus();
|
|
1383
|
+
});
|
|
1303
1384
|
});
|
|
1304
1385
|
}
|
|
1305
1386
|
/**
|
|
@@ -1373,16 +1454,14 @@ class CalendarComponent {
|
|
|
1373
1454
|
* Focus to the host element
|
|
1374
1455
|
*/
|
|
1375
1456
|
focusActiveCell() {
|
|
1376
|
-
this.
|
|
1377
|
-
|
|
1378
|
-
.
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
});
|
|
1385
|
-
});
|
|
1457
|
+
if (!this.destroyRef.destroyed)
|
|
1458
|
+
afterNextRender(() => {
|
|
1459
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1460
|
+
this.elmRef.nativeElement
|
|
1461
|
+
?.querySelector('.nxt-dt-calendar-cell-active')
|
|
1462
|
+
?.focus();
|
|
1463
|
+
});
|
|
1464
|
+
}, { injector: this.injector });
|
|
1386
1465
|
}
|
|
1387
1466
|
selectYearInMultiYearView(normalizedYear) {
|
|
1388
1467
|
this.yearSelected.emit(normalizedYear);
|
|
@@ -1421,10 +1500,10 @@ class CalendarComponent {
|
|
|
1421
1500
|
? obj
|
|
1422
1501
|
: undefined;
|
|
1423
1502
|
}
|
|
1424
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1425
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1503
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1504
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: CalendarComponent, isStandalone: true, selector: "nxt-date-time-calendar", inputs: { dateTimeFilter: { classPropertyName: "dateTimeFilter", publicName: "dateTimeFilter", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, _pickerMomentInput: { classPropertyName: "_pickerMomentInput", publicName: "pickerMoment", isSignal: true, isRequired: false, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, selecteds: { classPropertyName: "selecteds", publicName: "selecteds", isSignal: true, isRequired: false, transformFunction: null }, startView: { classPropertyName: "startView", publicName: "startView", isSignal: true, isRequired: false, transformFunction: null }, hideOtherMonths: { classPropertyName: "hideOtherMonths", publicName: "hideOtherMonths", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pickerMomentChange: "pickerMomentChange", selectedChange: "selectedChange", userSelection: "userSelection", yearSelected: "yearSelected", monthSelected: "monthSelected" }, host: { properties: { "class.nxt-dt-calendar": "true" } }, ngImport: i0, template: "<div class=\"nxt-dt-calendar-control\">\r\n <!-- focus when keyboard tab (http://kizu.ru/en/blog/keyboard-only-focus/#x) -->\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows()? 'visible': 'hidden'\"\r\n [disabled]=\"!prevButtonEnabled()\"\r\n [attr.aria-label]=\"prevButtonLabel()\"\r\n (click)=\"previousClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Left\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path style=\"fill-rule: evenodd; clip-rule: evenodd;\"\r\n d=\"M96.633,125.369l95.053-94.533c7.101-7.055,7.101-18.492,0-25.546 c-7.1-7.054-18.613-7.054-25.714,0L58.989,111.689c-3.784,3.759-5.487,8.759-5.238,13.68c-0.249,4.922,1.454,9.921,5.238,13.681 l106.983,106.398c7.101,7.055,18.613,7.055,25.714,0c7.101-7.054,7.101-18.491,0-25.544L96.633,125.369z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n <div class=\"nxt-dt-calendar-control-content\">\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-period-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [attr.aria-label]=\"periodButtonLabel()\"\r\n (click)=\"toggleViews()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n {{periodButtonText()}}\r\n\r\n <span class=\"nxt-dt-control-button-arrow\"\r\n [style.transform]=\"'rotate(' + (isMonthView()? 0 : 180) +'deg)'\">\r\n <!-- <editor-fold desc=\"SVG Arrow\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n width=\"50%\"\r\n height=\"50%\"\r\n viewBox=\"0 0 292.362 292.362\"\r\n style=\"enable-background:new 0 0 292.362 292.362;\"\r\n xml:space=\"preserve\">\r\n <g>\r\n <path d=\"M286.935,69.377c-3.614-3.617-7.898-5.424-12.848-5.424H18.274c-4.952,0-9.233,1.807-12.85,5.424\r\n C1.807,72.998,0,77.279,0,82.228c0,4.948,1.807,9.229,5.424,12.847l127.907,127.907c3.621,3.617,7.902,5.428,12.85,5.428\r\n s9.233-1.811,12.847-5.428L286.935,95.074c3.613-3.617,5.427-7.898,5.427-12.847C292.362,77.279,290.548,72.998,286.935,69.377z\" />\r\n </g>\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </span>\r\n </button>\r\n </div>\r\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n [style.visibility]=\"showControlArrows()? 'visible': 'hidden'\"\r\n [disabled]=\"!nextButtonEnabled()\"\r\n [attr.aria-label]=\"nextButtonLabel()\"\r\n (click)=\"nextClicked()\">\r\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Right\"> -->\r\n <svg version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 250.738 250.738\"\r\n style=\"enable-background:new 0 0 250.738 250.738;\"\r\n xml:space=\"preserve\">\r\n <path style=\"fill-rule:evenodd;clip-rule:evenodd;\"\r\n d=\"M191.75,111.689L84.766,5.291c-7.1-7.055-18.613-7.055-25.713,0\r\n c-7.101,7.054-7.101,18.49,0,25.544l95.053,94.534l-95.053,94.533c-7.101,7.054-7.101,18.491,0,25.545\r\n c7.1,7.054,18.613,7.054,25.713,0L191.75,139.05c3.784-3.759,5.487-8.759,5.238-13.681\r\n C197.237,120.447,195.534,115.448,191.75,111.689z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n </button>\r\n</div>\r\n<div class=\"nxt-dt-calendar-main\"\r\n cdkMonitorSubtreeFocus\r\n tabindex=\"-1\">\r\n @switch (currentView()) {\r\n @case ('month') {\r\n <nxt-date-time-month-view [pickerMoment]=\"pickerMoment()\"\r\n [firstDayOfWeek]=\"firstDayOfWeek()\"\r\n [selected]=\"selected()\"\r\n [selecteds]=\"selecteds()\"\r\n [selectMode]=\"selectMode() ?? 'single'\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [dateTimeFilter]=\"dateTimeFilter()\"\r\n [hideOtherMonths]=\"hideOtherMonths()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (selectedChange)=\"dateSelected($event)\"\r\n (userSelection)=\"userSelected()\" />\r\n }\r\n @case ('year') {\r\n <nxt-date-time-year-view [pickerMoment]=\"pickerMoment()\"\r\n [selected]=\"selected()\"\r\n [selecteds]=\"selecteds()\"\r\n [selectMode]=\"selectMode() ?? 'single'\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [dateTimeFilter]=\"dateTimeFilter()\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (monthSelected)=\"selectMonthInYearView($event)\"\r\n (change)=\"goToDateInView($event, 'month')\" />\r\n }\r\n @case ('multi-years') {\r\n <nxt-date-time-multi-year-view [pickerMoment]=\"pickerMoment()\"\r\n [selected]=\"selected()\"\r\n [selecteds]=\"selecteds()\"\r\n [selectMode]=\"selectMode() ?? 'single'\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [dateTimeFilter]=\"dateTimeFilter()\"\r\n (keyboardEnter)=\"focusActiveCell()\"\r\n (pickerMomentChange)=\"handlePickerMomentChange($event)\"\r\n (yearSelected)=\"selectYearInMultiYearView($event)\"\r\n (change)=\"goToDateInView($event, 'year')\" />\r\n }\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: MonthViewComponent, selector: "nxt-date-time-month-view", inputs: ["hideOtherMonths", "firstDayOfWeek", "selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["selectedChange", "userSelection", "pickerMomentChange"] }, { kind: "component", type: YearViewComponent, selector: "nxt-date-time-year-view", inputs: ["selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["change", "monthSelected", "pickerMomentChange", "keyboardEnter"] }, { kind: "component", type: MultiYearViewComponent, selector: "nxt-date-time-multi-year-view", inputs: ["selectMode", "selected", "selecteds", "pickerMoment", "dateTimeFilter", "min", "max"], outputs: ["change", "yearSelected", "pickerMomentChange", "keyboardEnter"] }] }); }
|
|
1426
1505
|
}
|
|
1427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
1428
1507
|
type: Component,
|
|
1429
1508
|
args: [{ selector: 'nxt-date-time-calendar', preserveWhitespaces: false, imports: [
|
|
1430
1509
|
CdkMonitorFocus,
|
|
@@ -1445,50 +1524,60 @@ class DateTimeDirective {
|
|
|
1445
1524
|
/**
|
|
1446
1525
|
* When true, shows a timer to configure the seconds value
|
|
1447
1526
|
*/
|
|
1448
|
-
this.showSecondsTimer = input(false,
|
|
1527
|
+
this.showSecondsTimer = input(false, /* @ts-ignore */
|
|
1528
|
+
...(ngDevMode ? [{ debugName: "showSecondsTimer" }] : /* istanbul ignore next */ []));
|
|
1449
1529
|
/**
|
|
1450
1530
|
* When true, the timer will be in 12-hour format mode
|
|
1451
1531
|
*/
|
|
1452
|
-
this.hour12Timer = input(false,
|
|
1532
|
+
this.hour12Timer = input(false, /* @ts-ignore */
|
|
1533
|
+
...(ngDevMode ? [{ debugName: "hour12Timer" }] : /* istanbul ignore next */ []));
|
|
1453
1534
|
/**
|
|
1454
1535
|
* The view that the calendar should start on
|
|
1455
1536
|
*/
|
|
1456
|
-
this.startView = input('month',
|
|
1537
|
+
this.startView = input('month', /* @ts-ignore */
|
|
1538
|
+
...(ngDevMode ? [{ debugName: "startView" }] : /* istanbul ignore next */ []));
|
|
1457
1539
|
/**
|
|
1458
1540
|
* Hours to change per step
|
|
1459
1541
|
*/
|
|
1460
|
-
this.stepHour = input(1,
|
|
1542
|
+
this.stepHour = input(1, /* @ts-ignore */
|
|
1543
|
+
...(ngDevMode ? [{ debugName: "stepHour" }] : /* istanbul ignore next */ []));
|
|
1461
1544
|
/**
|
|
1462
1545
|
* Minutes to change per step
|
|
1463
1546
|
*/
|
|
1464
|
-
this.stepMinute = input(1,
|
|
1547
|
+
this.stepMinute = input(1, /* @ts-ignore */
|
|
1548
|
+
...(ngDevMode ? [{ debugName: "stepMinute" }] : /* istanbul ignore next */ []));
|
|
1465
1549
|
/**
|
|
1466
1550
|
* Seconds to change per step
|
|
1467
1551
|
*/
|
|
1468
|
-
this.stepSecond = input(1,
|
|
1552
|
+
this.stepSecond = input(1, /* @ts-ignore */
|
|
1553
|
+
...(ngDevMode ? [{ debugName: "stepSecond" }] : /* istanbul ignore next */ []));
|
|
1469
1554
|
/**
|
|
1470
1555
|
* Set the first day of week
|
|
1471
1556
|
*
|
|
1472
1557
|
* Valid values are from 0 [Sunday] to 6 [Saturday]
|
|
1473
1558
|
*/
|
|
1474
|
-
this.firstDayOfWeek = input(0,
|
|
1559
|
+
this.firstDayOfWeek = input(0, /* @ts-ignore */
|
|
1560
|
+
...(ngDevMode ? [{ debugName: "firstDayOfWeek" }] : /* istanbul ignore next */ []));
|
|
1475
1561
|
/**
|
|
1476
1562
|
* If true, don't show dates from preious / next month on the calendar month view
|
|
1477
1563
|
*/
|
|
1478
|
-
this.hideOtherMonths = input(false,
|
|
1564
|
+
this.hideOtherMonths = input(false, /* @ts-ignore */
|
|
1565
|
+
...(ngDevMode ? [{ debugName: "hideOtherMonths" }] : /* istanbul ignore next */ []));
|
|
1479
1566
|
this.id = `nxt-dt-picker-${nextUniqueId++}`;
|
|
1480
1567
|
this.formatString = computed(() => this.pickerType() === 'both'
|
|
1481
1568
|
? this.dateTimeFormats.fullPickerInput
|
|
1482
1569
|
: this.pickerType() === 'calendar'
|
|
1483
1570
|
? this.dateTimeFormats.datePickerInput
|
|
1484
|
-
: this.dateTimeFormats.timePickerInput,
|
|
1571
|
+
: this.dateTimeFormats.timePickerInput, /* @ts-ignore */
|
|
1572
|
+
...(ngDevMode ? [{ debugName: "formatString" }] : /* istanbul ignore next */ []));
|
|
1485
1573
|
/**
|
|
1486
1574
|
* Date Time Checker to check if the give dateTime is selectable
|
|
1487
1575
|
*/
|
|
1488
1576
|
this.dateTimeChecker = signal((dateTime) => (!!dateTime &&
|
|
1489
1577
|
(!this.dateTimeFilter() || this.dateTimeFilter()(dateTime)) &&
|
|
1490
1578
|
(!this.min() || this.dateTimeAdapter.compare(dateTime, this.min()) >= 0) &&
|
|
1491
|
-
(!this.max() || this.dateTimeAdapter.compare(dateTime, this.max()) <= 0)),
|
|
1579
|
+
(!this.max() || this.dateTimeAdapter.compare(dateTime, this.max()) <= 0)), /* @ts-ignore */
|
|
1580
|
+
...(ngDevMode ? [{ debugName: "dateTimeChecker" }] : /* istanbul ignore next */ []));
|
|
1492
1581
|
}
|
|
1493
1582
|
getValidDate(obj) {
|
|
1494
1583
|
return this.dateTimeAdapter.isDateInstance(obj) &&
|
|
@@ -1496,10 +1585,10 @@ class DateTimeDirective {
|
|
|
1496
1585
|
? obj
|
|
1497
1586
|
: undefined;
|
|
1498
1587
|
}
|
|
1499
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1500
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
1588
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1589
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: DateTimeDirective, isStandalone: true, inputs: { showSecondsTimer: { classPropertyName: "showSecondsTimer", publicName: "showSecondsTimer", isSignal: true, isRequired: false, transformFunction: null }, hour12Timer: { classPropertyName: "hour12Timer", publicName: "hour12Timer", isSignal: true, isRequired: false, transformFunction: null }, startView: { classPropertyName: "startView", publicName: "startView", isSignal: true, isRequired: false, transformFunction: null }, stepHour: { classPropertyName: "stepHour", publicName: "stepHour", isSignal: true, isRequired: false, transformFunction: null }, stepMinute: { classPropertyName: "stepMinute", publicName: "stepMinute", isSignal: true, isRequired: false, transformFunction: null }, stepSecond: { classPropertyName: "stepSecond", publicName: "stepSecond", isSignal: true, isRequired: false, transformFunction: null }, firstDayOfWeek: { classPropertyName: "firstDayOfWeek", publicName: "firstDayOfWeek", isSignal: true, isRequired: false, transformFunction: null }, hideOtherMonths: { classPropertyName: "hideOtherMonths", publicName: "hideOtherMonths", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
1501
1590
|
}
|
|
1502
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1591
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeDirective, decorators: [{
|
|
1503
1592
|
type: Directive
|
|
1504
1593
|
}], propDecorators: { showSecondsTimer: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSecondsTimer", required: false }] }], hour12Timer: [{ type: i0.Input, args: [{ isSignal: true, alias: "hour12Timer", required: false }] }], startView: [{ type: i0.Input, args: [{ isSignal: true, alias: "startView", required: false }] }], stepHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepHour", required: false }] }], stepMinute: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinute", required: false }] }], stepSecond: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepSecond", required: false }] }], firstDayOfWeek: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstDayOfWeek", required: false }] }], hideOtherMonths: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideOtherMonths", required: false }] }] } });
|
|
1505
1594
|
|
|
@@ -1513,10 +1602,10 @@ class NumberFixedLenPipe {
|
|
|
1513
1602
|
return number;
|
|
1514
1603
|
return number.toFixed(0).padStart(Math.floor(len), '0');
|
|
1515
1604
|
}
|
|
1516
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1517
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
1605
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: NumberFixedLenPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1606
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.6", ngImport: i0, type: NumberFixedLenPipe, isStandalone: true, name: "numberFixedLen" }); }
|
|
1518
1607
|
}
|
|
1519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: NumberFixedLenPipe, decorators: [{
|
|
1520
1609
|
type: Pipe,
|
|
1521
1610
|
args: [{
|
|
1522
1611
|
name: 'numberFixedLen'
|
|
@@ -1526,25 +1615,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
1526
1615
|
/** @internal */
|
|
1527
1616
|
class TimerBoxComponent {
|
|
1528
1617
|
constructor() {
|
|
1529
|
-
this.showDivider = input(false,
|
|
1530
|
-
|
|
1531
|
-
this.
|
|
1532
|
-
|
|
1533
|
-
this.
|
|
1618
|
+
this.showDivider = input(false, /* @ts-ignore */
|
|
1619
|
+
...(ngDevMode ? [{ debugName: "showDivider" }] : /* istanbul ignore next */ []));
|
|
1620
|
+
this.upBtnAriaLabel = input(/* @ts-ignore */
|
|
1621
|
+
...(ngDevMode ? [undefined, { debugName: "upBtnAriaLabel" }] : /* istanbul ignore next */ []));
|
|
1622
|
+
this.upBtnDisabled = input(false, /* @ts-ignore */
|
|
1623
|
+
...(ngDevMode ? [{ debugName: "upBtnDisabled" }] : /* istanbul ignore next */ []));
|
|
1624
|
+
this.downBtnAriaLabel = input(/* @ts-ignore */
|
|
1625
|
+
...(ngDevMode ? [undefined, { debugName: "downBtnAriaLabel" }] : /* istanbul ignore next */ []));
|
|
1626
|
+
this.downBtnDisabled = input(false, /* @ts-ignore */
|
|
1627
|
+
...(ngDevMode ? [{ debugName: "downBtnDisabled" }] : /* istanbul ignore next */ []));
|
|
1534
1628
|
/**
|
|
1535
1629
|
* Value would be displayed in the box
|
|
1536
1630
|
* If it is undefiend, the box would display [value]
|
|
1537
1631
|
*/
|
|
1538
|
-
this.boxValue = input(
|
|
1539
|
-
|
|
1540
|
-
this.
|
|
1541
|
-
|
|
1542
|
-
this.
|
|
1543
|
-
|
|
1632
|
+
this.boxValue = input(/* @ts-ignore */
|
|
1633
|
+
...(ngDevMode ? [undefined, { debugName: "boxValue" }] : /* istanbul ignore next */ []));
|
|
1634
|
+
this.value = input(0, /* @ts-ignore */
|
|
1635
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
1636
|
+
this.min = input(0, /* @ts-ignore */
|
|
1637
|
+
...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
|
|
1638
|
+
this.max = input(0, /* @ts-ignore */
|
|
1639
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
1640
|
+
this.step = input(1, /* @ts-ignore */
|
|
1641
|
+
...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
|
|
1642
|
+
this.inputLabel = input(/* @ts-ignore */
|
|
1643
|
+
...(ngDevMode ? [undefined, { debugName: "inputLabel" }] : /* istanbul ignore next */ []));
|
|
1544
1644
|
this.valueChange = output();
|
|
1545
1645
|
this.inputChange = output();
|
|
1546
1646
|
this.inputStream = new Subject();
|
|
1547
|
-
this.displayValue = computed(() => this.boxValue() || this.value(),
|
|
1647
|
+
this.displayValue = computed(() => this.boxValue() || this.value(), /* @ts-ignore */
|
|
1648
|
+
...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
|
|
1548
1649
|
}
|
|
1549
1650
|
ngOnInit() {
|
|
1550
1651
|
this.inputStreamSub = this.inputStream.pipe(debounceTime(500), distinctUntilChanged()).subscribe((val) => {
|
|
@@ -1576,10 +1677,10 @@ class TimerBoxComponent {
|
|
|
1576
1677
|
}
|
|
1577
1678
|
this.inputChange.emit(value);
|
|
1578
1679
|
}
|
|
1579
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1580
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1680
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TimerBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1681
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: TimerBoxComponent, isStandalone: true, selector: "nxt-date-time-timer-box", inputs: { showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null }, upBtnAriaLabel: { classPropertyName: "upBtnAriaLabel", publicName: "upBtnAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, upBtnDisabled: { classPropertyName: "upBtnDisabled", publicName: "upBtnDisabled", isSignal: true, isRequired: false, transformFunction: null }, downBtnAriaLabel: { classPropertyName: "downBtnAriaLabel", publicName: "downBtnAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, downBtnDisabled: { classPropertyName: "downBtnDisabled", publicName: "downBtnDisabled", isSignal: true, isRequired: false, transformFunction: null }, boxValue: { classPropertyName: "boxValue", publicName: "boxValue", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, inputLabel: { classPropertyName: "inputLabel", publicName: "inputLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", inputChange: "inputChange" }, host: { properties: { "class.nxt-dt-timer-box": "true" } }, ngImport: i0, template: "@if (showDivider()) {\r\n<div class=\"nxt-dt-timer-divider\"\r\n aria-hidden=\"true\"></div>\r\n}\r\n<button class=\"nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n [disabled]=\"upBtnDisabled()\"\r\n [attr.aria-label]=\"upBtnAriaLabel()\"\r\n (click)=\"upBtnClicked()\">\r\n <span class=\"nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Up\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 451.847 451.846\"\r\n style=\"enable-background:new 0 0 451.847 451.846;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path d=\"M248.292,106.406l194.281,194.29c12.365,12.359,12.365,32.391,0,44.744c-12.354,12.354-32.391,12.354-44.744,0\r\n L225.923,173.529L54.018,345.44c-12.36,12.354-32.395,12.354-44.748,0c-12.359-12.354-12.359-32.391,0-44.75L203.554,106.4\r\n c6.18-6.174,14.271-9.259,22.369-9.259C234.018,97.141,242.115,100.232,248.292,106.406z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n</button>\r\n<label class=\"nxt-dt-timer-content\">\r\n <input class=\"nxt-dt-timer-input\"\r\n maxlength=\"2\"\r\n [value]=\"displayValue() | numberFixedLen : 2\"\r\n (input)=\"handleInputChange(valueInput.value)\"\r\n #valueInput>\r\n <span class=\"nxt-hidden-accessible\">{{inputLabel()}}</span>\r\n</label>\r\n<button class=\"nxt-dt-control-button nxt-dt-control-arrow-button\"\r\n type=\"button\"\r\n tabindex=\"-1\"\r\n [disabled]=\"downBtnDisabled()\"\r\n [attr.aria-label]=\"downBtnAriaLabel()\"\r\n (click)=\"downBtnClicked()\">\r\n <span class=\"nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n <!-- <editor-fold desc=\"SVG Arrow Down\"> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n version=\"1.1\"\r\n x=\"0px\"\r\n y=\"0px\"\r\n viewBox=\"0 0 451.847 451.846\"\r\n style=\"enable-background:new 0 0 451.847 451.846;\"\r\n xml:space=\"preserve\"\r\n width=\"100%\"\r\n height=\"100%\">\r\n <path d=\"M225.923,354.706c-8.098,0-16.195-3.092-22.369-9.263L9.27,151.157c-12.359-12.359-12.359-32.397,0-44.751\r\n c12.354-12.354,32.388-12.354,44.748,0l171.905,171.915l171.906-171.909c12.359-12.354,32.391-12.354,44.744,0\r\n c12.365,12.354,12.365,32.392,0,44.751L248.292,345.449C242.115,351.621,234.018,354.706,225.923,354.706z\" />\r\n </svg>\r\n <!-- </editor-fold> -->\r\n </span>\r\n</button>\r\n", styles: [""], dependencies: [{ kind: "pipe", type: NumberFixedLenPipe, name: "numberFixedLen" }] }); }
|
|
1581
1682
|
}
|
|
1582
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TimerBoxComponent, decorators: [{
|
|
1583
1684
|
type: Component,
|
|
1584
1685
|
args: [{ selector: 'nxt-date-time-timer-box', preserveWhitespaces: false, imports: [
|
|
1585
1686
|
NumberFixedLenPipe
|
|
@@ -1591,45 +1692,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
1591
1692
|
class TimerComponent {
|
|
1592
1693
|
constructor() {
|
|
1593
1694
|
this.ngZone = inject(NgZone);
|
|
1695
|
+
this.injector = inject(Injector);
|
|
1696
|
+
this.destroyRef = inject(DestroyRef);
|
|
1594
1697
|
this.elmRef = inject(ElementRef);
|
|
1595
1698
|
this.pickerIntl = inject(DateTimeIntl);
|
|
1596
1699
|
this.dateTimeAdapter = inject(DateTimeAdapter);
|
|
1597
1700
|
/** The current picker moment */
|
|
1598
|
-
this.pickerMoment = input(undefined, { ...(ngDevMode ? { debugName: "pickerMoment" } : {}), transform: value => {
|
|
1701
|
+
this.pickerMoment = input(undefined, { ...(ngDevMode ? { debugName: "pickerMoment" } : /* istanbul ignore next */ {}), transform: value => {
|
|
1599
1702
|
value = this.dateTimeAdapter.deserialize(value);
|
|
1600
1703
|
return this.getValidDate(value) || this.dateTimeAdapter.now();
|
|
1601
1704
|
} });
|
|
1602
1705
|
/** The minimum selectable date time */
|
|
1603
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: value => {
|
|
1706
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: value => {
|
|
1604
1707
|
value = this.dateTimeAdapter.deserialize(value);
|
|
1605
1708
|
return this.getValidDate(value);
|
|
1606
1709
|
} });
|
|
1607
1710
|
/** The maximum selectable date time */
|
|
1608
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: value => {
|
|
1711
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: value => {
|
|
1609
1712
|
value = this.dateTimeAdapter.deserialize(value);
|
|
1610
1713
|
return this.getValidDate(value);
|
|
1611
1714
|
} });
|
|
1612
1715
|
/**
|
|
1613
1716
|
* Whether to show the second's timer
|
|
1614
1717
|
*/
|
|
1615
|
-
this.showSecondsTimer = input(false,
|
|
1718
|
+
this.showSecondsTimer = input(false, /* @ts-ignore */
|
|
1719
|
+
...(ngDevMode ? [{ debugName: "showSecondsTimer" }] : /* istanbul ignore next */ []));
|
|
1616
1720
|
/**
|
|
1617
1721
|
* Whether the timer is in hour12 format
|
|
1618
1722
|
*/
|
|
1619
|
-
this.hour12Timer = input(false,
|
|
1723
|
+
this.hour12Timer = input(false, /* @ts-ignore */
|
|
1724
|
+
...(ngDevMode ? [{ debugName: "hour12Timer" }] : /* istanbul ignore next */ []));
|
|
1620
1725
|
/**
|
|
1621
1726
|
* Hours to change per step
|
|
1622
1727
|
*/
|
|
1623
|
-
this.stepHour = input(1,
|
|
1728
|
+
this.stepHour = input(1, /* @ts-ignore */
|
|
1729
|
+
...(ngDevMode ? [{ debugName: "stepHour" }] : /* istanbul ignore next */ []));
|
|
1624
1730
|
/**
|
|
1625
1731
|
* Minutes to change per step
|
|
1626
1732
|
*/
|
|
1627
|
-
this.stepMinute = input(1,
|
|
1733
|
+
this.stepMinute = input(1, /* @ts-ignore */
|
|
1734
|
+
...(ngDevMode ? [{ debugName: "stepMinute" }] : /* istanbul ignore next */ []));
|
|
1628
1735
|
/**
|
|
1629
1736
|
* Seconds to change per step
|
|
1630
1737
|
*/
|
|
1631
|
-
this.stepSecond = input(1,
|
|
1632
|
-
|
|
1738
|
+
this.stepSecond = input(1, /* @ts-ignore */
|
|
1739
|
+
...(ngDevMode ? [{ debugName: "stepSecond" }] : /* istanbul ignore next */ []));
|
|
1740
|
+
this.hourValue = computed(() => this.dateTimeAdapter.getHours(this.pickerMoment()), /* @ts-ignore */
|
|
1741
|
+
...(ngDevMode ? [{ debugName: "hourValue" }] : /* istanbul ignore next */ []));
|
|
1633
1742
|
this.hoursWithPM = computed(() => {
|
|
1634
1743
|
let hours = this.hourValue();
|
|
1635
1744
|
let isPM;
|
|
@@ -1653,10 +1762,11 @@ class TimerComponent {
|
|
|
1653
1762
|
}
|
|
1654
1763
|
return { hours, isPM };
|
|
1655
1764
|
}
|
|
1656
|
-
},
|
|
1765
|
+
}, /* @ts-ignore */
|
|
1766
|
+
...(ngDevMode ? [{ debugName: "hoursWithPM" }] : /* istanbul ignore next */ []));
|
|
1657
1767
|
this._isPM = false;
|
|
1658
1768
|
// a flag indicates the current timer moment is in PM or AM
|
|
1659
|
-
this.isPM = linkedSignal({ ...(ngDevMode ? { debugName: "isPM" } : {}), source: () => this.hoursWithPM().isPM,
|
|
1769
|
+
this.isPM = linkedSignal({ ...(ngDevMode ? { debugName: "isPM" } : /* istanbul ignore next */ {}), source: () => this.hoursWithPM().isPM,
|
|
1660
1770
|
computation: (v) => {
|
|
1661
1771
|
if (v != undefined)
|
|
1662
1772
|
return this._isPM = v;
|
|
@@ -1667,9 +1777,12 @@ class TimerComponent {
|
|
|
1667
1777
|
* We need this because the value displayed in hourBox it not
|
|
1668
1778
|
* the same as the hourValue when the timer is in hour12Timer mode.
|
|
1669
1779
|
*/
|
|
1670
|
-
this.hourBoxValue = computed(() => this.hoursWithPM().hours,
|
|
1671
|
-
|
|
1672
|
-
this.
|
|
1780
|
+
this.hourBoxValue = computed(() => this.hoursWithPM().hours, /* @ts-ignore */
|
|
1781
|
+
...(ngDevMode ? [{ debugName: "hourBoxValue" }] : /* istanbul ignore next */ []));
|
|
1782
|
+
this.minuteValue = computed(() => this.dateTimeAdapter.getMinutes(this.pickerMoment()), /* @ts-ignore */
|
|
1783
|
+
...(ngDevMode ? [{ debugName: "minuteValue" }] : /* istanbul ignore next */ []));
|
|
1784
|
+
this.secondValue = computed(() => this.dateTimeAdapter.getSeconds(this.pickerMoment()), /* @ts-ignore */
|
|
1785
|
+
...(ngDevMode ? [{ debugName: "secondValue" }] : /* istanbul ignore next */ []));
|
|
1673
1786
|
this.upHourButtonLabel = this.pickerIntl.upHourLabel.asReadonly();
|
|
1674
1787
|
this.downHourButtonLabel = this.pickerIntl.downHourLabel.asReadonly();
|
|
1675
1788
|
this.upMinuteButtonLabel = this.pickerIntl.upMinuteLabel.asReadonly();
|
|
@@ -1678,51 +1791,58 @@ class TimerComponent {
|
|
|
1678
1791
|
this.downSecondButtonLabel = this.pickerIntl.downSecondLabel.asReadonly();
|
|
1679
1792
|
this.hour12ButtonLabel = computed(() => this.isPM()
|
|
1680
1793
|
? this.pickerIntl.hour12PMLabel()
|
|
1681
|
-
: this.pickerIntl.hour12AMLabel(),
|
|
1794
|
+
: this.pickerIntl.hour12AMLabel(), /* @ts-ignore */
|
|
1795
|
+
...(ngDevMode ? [{ debugName: "hour12ButtonLabel" }] : /* istanbul ignore next */ []));
|
|
1682
1796
|
this.selectedChange = output();
|
|
1683
1797
|
/**
|
|
1684
1798
|
* Check if the up hour button is enabled
|
|
1685
1799
|
*/
|
|
1686
1800
|
this.upHourEnabled = computed(() => (!this.max() ||
|
|
1687
|
-
this.compareHours(this.stepHour(), this.max()) < 1),
|
|
1801
|
+
this.compareHours(this.stepHour(), this.max()) < 1), /* @ts-ignore */
|
|
1802
|
+
...(ngDevMode ? [{ debugName: "upHourEnabled" }] : /* istanbul ignore next */ []));
|
|
1688
1803
|
/**
|
|
1689
1804
|
* Check if the down hour button is enabled
|
|
1690
1805
|
*/
|
|
1691
1806
|
this.downHourEnabled = computed(() => (!this.min() ||
|
|
1692
|
-
this.compareHours(-this.stepHour(), this.min()) > -1),
|
|
1807
|
+
this.compareHours(-this.stepHour(), this.min()) > -1), /* @ts-ignore */
|
|
1808
|
+
...(ngDevMode ? [{ debugName: "downHourEnabled" }] : /* istanbul ignore next */ []));
|
|
1693
1809
|
/**
|
|
1694
1810
|
* Check if the up minute button is enabled
|
|
1695
1811
|
*/
|
|
1696
1812
|
this.upMinuteEnabled = computed(() => (!this.max() ||
|
|
1697
|
-
this.compareMinutes(this.stepMinute(), this.max()) < 1),
|
|
1813
|
+
this.compareMinutes(this.stepMinute(), this.max()) < 1), /* @ts-ignore */
|
|
1814
|
+
...(ngDevMode ? [{ debugName: "upMinuteEnabled" }] : /* istanbul ignore next */ []));
|
|
1698
1815
|
/**
|
|
1699
1816
|
* Check if the down minute button is enabled
|
|
1700
1817
|
*/
|
|
1701
1818
|
this.downMinuteEnabled = computed(() => (!this.min() ||
|
|
1702
|
-
this.compareMinutes(-this.stepMinute(), this.min()) > -1),
|
|
1819
|
+
this.compareMinutes(-this.stepMinute(), this.min()) > -1), /* @ts-ignore */
|
|
1820
|
+
...(ngDevMode ? [{ debugName: "downMinuteEnabled" }] : /* istanbul ignore next */ []));
|
|
1703
1821
|
/**
|
|
1704
1822
|
* Check if the up second button is enabled
|
|
1705
1823
|
*/
|
|
1706
1824
|
this.upSecondEnabled = computed(() => (!this.max() ||
|
|
1707
|
-
this.compareSeconds(this.stepSecond(), this.max()) < 1),
|
|
1825
|
+
this.compareSeconds(this.stepSecond(), this.max()) < 1), /* @ts-ignore */
|
|
1826
|
+
...(ngDevMode ? [{ debugName: "upSecondEnabled" }] : /* istanbul ignore next */ []));
|
|
1708
1827
|
/**
|
|
1709
1828
|
* Check if the down second button is enabled
|
|
1710
1829
|
*/
|
|
1711
1830
|
this.downSecondEnabled = computed(() => (!this.min() ||
|
|
1712
|
-
this.compareSeconds(-this.stepSecond(), this.min()) > -1),
|
|
1831
|
+
this.compareSeconds(-this.stepSecond(), this.min()) > -1), /* @ts-ignore */
|
|
1832
|
+
...(ngDevMode ? [{ debugName: "downSecondEnabled" }] : /* istanbul ignore next */ []));
|
|
1713
1833
|
}
|
|
1714
1834
|
/**
|
|
1715
1835
|
* Focus to the host element
|
|
1716
1836
|
*/
|
|
1717
1837
|
focus() {
|
|
1718
|
-
this.
|
|
1719
|
-
|
|
1720
|
-
.
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1838
|
+
if (!this.destroyRef.destroyed)
|
|
1839
|
+
afterNextRender(() => {
|
|
1840
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1841
|
+
this.elmRef.nativeElement.focus();
|
|
1842
|
+
});
|
|
1843
|
+
}, {
|
|
1844
|
+
injector: this.injector
|
|
1724
1845
|
});
|
|
1725
|
-
});
|
|
1726
1846
|
}
|
|
1727
1847
|
/**
|
|
1728
1848
|
* Set the hour value via typing into timer box input
|
|
@@ -1806,10 +1926,10 @@ class TimerComponent {
|
|
|
1806
1926
|
? obj
|
|
1807
1927
|
: undefined;
|
|
1808
1928
|
}
|
|
1809
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1810
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1929
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TimerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1930
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: TimerComponent, isStandalone: true, selector: "nxt-date-time-timer", inputs: { pickerMoment: { classPropertyName: "pickerMoment", publicName: "pickerMoment", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, showSecondsTimer: { classPropertyName: "showSecondsTimer", publicName: "showSecondsTimer", isSignal: true, isRequired: false, transformFunction: null }, hour12Timer: { classPropertyName: "hour12Timer", publicName: "hour12Timer", isSignal: true, isRequired: false, transformFunction: null }, stepHour: { classPropertyName: "stepHour", publicName: "stepHour", isSignal: true, isRequired: false, transformFunction: null }, stepMinute: { classPropertyName: "stepMinute", publicName: "stepMinute", isSignal: true, isRequired: false, transformFunction: null }, stepSecond: { classPropertyName: "stepSecond", publicName: "stepSecond", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class.nxt-dt-timer": "true", "attr.tabindex": "-1" } }, ngImport: i0, template: "<nxt-date-time-timer-box [upBtnAriaLabel]=\"upHourButtonLabel()\"\r\n [downBtnAriaLabel]=\"downHourButtonLabel()\"\r\n [upBtnDisabled]=\"!upHourEnabled()\"\r\n [downBtnDisabled]=\"!downHourEnabled()\"\r\n [boxValue]=\"hourBoxValue()\"\r\n [value]=\"hourValue()\"\r\n [min]=\"0\"\r\n [max]=\"23\"\r\n [step]=\"stepHour()\"\r\n inputLabel=\"Hour\"\r\n (inputChange)=\"setHourValueViaInput($event)\"\r\n (valueChange)=\"setHourValue($event)\" />\r\n<nxt-date-time-timer-box [showDivider]=\"true\"\r\n [upBtnAriaLabel]=\"upMinuteButtonLabel()\"\r\n [downBtnAriaLabel]=\"downMinuteButtonLabel()\"\r\n [upBtnDisabled]=\"!upMinuteEnabled()\"\r\n [downBtnDisabled]=\"!downMinuteEnabled()\"\r\n [value]=\"minuteValue()\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n [step]=\"stepMinute()\"\r\n inputLabel=\"Minute\"\r\n (inputChange)=\"setMinuteValue($event)\"\r\n (valueChange)=\"setMinuteValue($event)\" />\r\n@if (showSecondsTimer()) {\r\n<nxt-date-time-timer-box [showDivider]=\"true\"\r\n [upBtnAriaLabel]=\"upSecondButtonLabel()\"\r\n [downBtnAriaLabel]=\"downSecondButtonLabel()\"\r\n [upBtnDisabled]=\"!upSecondEnabled()\"\r\n [downBtnDisabled]=\"!downSecondEnabled()\"\r\n [value]=\"secondValue()\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n [step]=\"stepSecond()\"\r\n inputLabel=\"Second\"\r\n (inputChange)=\"setSecondValue($event)\"\r\n (valueChange)=\"setSecondValue($event)\" />\r\n}\r\n\r\n@if (hour12Timer()) {\r\n<div class=\"nxt-dt-timer-hour12\">\r\n <button class=\"nxt-dt-control-button nxt-dt-timer-hour12-box\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n (click)=\"setMeridiem($event)\">\r\n <span class=\"nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n {{hour12ButtonLabel()}}\r\n </span>\r\n </button>\r\n</div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: TimerBoxComponent, selector: "nxt-date-time-timer-box", inputs: ["showDivider", "upBtnAriaLabel", "upBtnDisabled", "downBtnAriaLabel", "downBtnDisabled", "boxValue", "value", "min", "max", "step", "inputLabel"], outputs: ["valueChange", "inputChange"] }] }); }
|
|
1811
1931
|
}
|
|
1812
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1932
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TimerComponent, decorators: [{
|
|
1813
1933
|
type: Component,
|
|
1814
1934
|
args: [{ selector: 'nxt-date-time-timer', preserveWhitespaces: false, imports: [
|
|
1815
1935
|
TimerBoxComponent
|
|
@@ -1819,34 +1939,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
1819
1939
|
}, template: "<nxt-date-time-timer-box [upBtnAriaLabel]=\"upHourButtonLabel()\"\r\n [downBtnAriaLabel]=\"downHourButtonLabel()\"\r\n [upBtnDisabled]=\"!upHourEnabled()\"\r\n [downBtnDisabled]=\"!downHourEnabled()\"\r\n [boxValue]=\"hourBoxValue()\"\r\n [value]=\"hourValue()\"\r\n [min]=\"0\"\r\n [max]=\"23\"\r\n [step]=\"stepHour()\"\r\n inputLabel=\"Hour\"\r\n (inputChange)=\"setHourValueViaInput($event)\"\r\n (valueChange)=\"setHourValue($event)\" />\r\n<nxt-date-time-timer-box [showDivider]=\"true\"\r\n [upBtnAriaLabel]=\"upMinuteButtonLabel()\"\r\n [downBtnAriaLabel]=\"downMinuteButtonLabel()\"\r\n [upBtnDisabled]=\"!upMinuteEnabled()\"\r\n [downBtnDisabled]=\"!downMinuteEnabled()\"\r\n [value]=\"minuteValue()\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n [step]=\"stepMinute()\"\r\n inputLabel=\"Minute\"\r\n (inputChange)=\"setMinuteValue($event)\"\r\n (valueChange)=\"setMinuteValue($event)\" />\r\n@if (showSecondsTimer()) {\r\n<nxt-date-time-timer-box [showDivider]=\"true\"\r\n [upBtnAriaLabel]=\"upSecondButtonLabel()\"\r\n [downBtnAriaLabel]=\"downSecondButtonLabel()\"\r\n [upBtnDisabled]=\"!upSecondEnabled()\"\r\n [downBtnDisabled]=\"!downSecondEnabled()\"\r\n [value]=\"secondValue()\"\r\n [min]=\"0\"\r\n [max]=\"59\"\r\n [step]=\"stepSecond()\"\r\n inputLabel=\"Second\"\r\n (inputChange)=\"setSecondValue($event)\"\r\n (valueChange)=\"setSecondValue($event)\" />\r\n}\r\n\r\n@if (hour12Timer()) {\r\n<div class=\"nxt-dt-timer-hour12\">\r\n <button class=\"nxt-dt-control-button nxt-dt-timer-hour12-box\"\r\n type=\"button\"\r\n tabindex=\"0\"\r\n (click)=\"setMeridiem($event)\">\r\n <span class=\"nxt-dt-control-button-content\"\r\n tabindex=\"-1\">\r\n {{hour12ButtonLabel()}}\r\n </span>\r\n </button>\r\n</div>\r\n}\r\n" }]
|
|
1820
1940
|
}], propDecorators: { pickerMoment: [{ type: i0.Input, args: [{ isSignal: true, alias: "pickerMoment", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], showSecondsTimer: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSecondsTimer", required: false }] }], hour12Timer: [{ type: i0.Input, args: [{ isSignal: true, alias: "hour12Timer", required: false }] }], stepHour: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepHour", required: false }] }], stepMinute: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepMinute", required: false }] }], stepSecond: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepSecond", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }] } });
|
|
1821
1941
|
|
|
1822
|
-
/** @internal */
|
|
1823
|
-
const dateTimePickerAnimations = {
|
|
1824
|
-
transformPicker: trigger('transformPicker', [
|
|
1825
|
-
state('void', style({ opacity: 0, transform: 'scale(1, 0)' })),
|
|
1826
|
-
state('enter', style({ opacity: 1, transform: 'scale(1, 1)' })),
|
|
1827
|
-
transition('void => enter', group([
|
|
1828
|
-
query('@fadeInPicker', animateChild(), { optional: true }),
|
|
1829
|
-
animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)')
|
|
1830
|
-
])),
|
|
1831
|
-
transition('enter => void', animate('100ms linear', style({ opacity: 0 })))
|
|
1832
|
-
]),
|
|
1833
|
-
fadeInPicker: trigger('fadeInPicker', [
|
|
1834
|
-
state('enter', style({ opacity: 1 })),
|
|
1835
|
-
state('void', style({ opacity: 0 })),
|
|
1836
|
-
transition('void => enter', animate('400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)'))
|
|
1837
|
-
])
|
|
1838
|
-
};
|
|
1839
|
-
|
|
1840
1942
|
/** @internal */
|
|
1841
1943
|
class DateTimeContainerComponent {
|
|
1842
1944
|
constructor() {
|
|
1843
1945
|
this.elmRef = inject(ElementRef);
|
|
1844
1946
|
this.pickerIntl = inject(DateTimeIntl);
|
|
1845
1947
|
this.dateTimeAdapter = inject(DateTimeAdapter);
|
|
1846
|
-
this.calendar = viewChild(CalendarComponent,
|
|
1847
|
-
|
|
1848
|
-
this.
|
|
1849
|
-
|
|
1948
|
+
this.calendar = viewChild(CalendarComponent, /* @ts-ignore */
|
|
1949
|
+
...(ngDevMode ? [{ debugName: "calendar" }] : /* istanbul ignore next */ []));
|
|
1950
|
+
this.timer = viewChild(TimerComponent, /* @ts-ignore */
|
|
1951
|
+
...(ngDevMode ? [{ debugName: "timer" }] : /* istanbul ignore next */ []));
|
|
1952
|
+
this.picker = signal(undefined, /* @ts-ignore */
|
|
1953
|
+
...(ngDevMode ? [{ debugName: "picker" }] : /* istanbul ignore next */ []));
|
|
1954
|
+
this.activeSelectedIndex = signal(0, /* @ts-ignore */
|
|
1955
|
+
...(ngDevMode ? [{ debugName: "activeSelectedIndex" }] : /* istanbul ignore next */ [])); // The current active SelectedIndex in range select mode (0: 'from', 1: 'to')
|
|
1850
1956
|
/**
|
|
1851
1957
|
* Stream emits when try to hide picker
|
|
1852
1958
|
*/
|
|
@@ -1863,28 +1969,50 @@ class DateTimeContainerComponent {
|
|
|
1863
1969
|
* The current picker moment. This determines which time period is shown and which date is
|
|
1864
1970
|
* highlighted when using keyboard navigation.
|
|
1865
1971
|
*/
|
|
1866
|
-
this._clamPickerMoment = signal(undefined,
|
|
1867
|
-
|
|
1868
|
-
this.
|
|
1869
|
-
|
|
1870
|
-
this.
|
|
1871
|
-
|
|
1872
|
-
this.
|
|
1873
|
-
|
|
1874
|
-
this.
|
|
1875
|
-
|
|
1876
|
-
this.
|
|
1877
|
-
|
|
1878
|
-
this.
|
|
1879
|
-
|
|
1880
|
-
this.
|
|
1881
|
-
|
|
1882
|
-
this.
|
|
1883
|
-
|
|
1884
|
-
this.
|
|
1885
|
-
|
|
1886
|
-
this.
|
|
1887
|
-
|
|
1972
|
+
this._clamPickerMoment = signal(undefined, /* @ts-ignore */
|
|
1973
|
+
...(ngDevMode ? [{ debugName: "_clamPickerMoment" }] : /* istanbul ignore next */ []));
|
|
1974
|
+
this.pickerType = computed(() => this.picker()?.pickerType(), /* @ts-ignore */
|
|
1975
|
+
...(ngDevMode ? [{ debugName: "pickerType" }] : /* istanbul ignore next */ []));
|
|
1976
|
+
this.pickerMode = computed(() => this.picker()?.pickerMode(), /* @ts-ignore */
|
|
1977
|
+
...(ngDevMode ? [{ debugName: "pickerMode" }] : /* istanbul ignore next */ []));
|
|
1978
|
+
this.min = computed(() => this.picker()?.min(), /* @ts-ignore */
|
|
1979
|
+
...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
|
|
1980
|
+
this.max = computed(() => this.picker()?.max(), /* @ts-ignore */
|
|
1981
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
1982
|
+
this.selected = computed(() => this.picker()?.selected(), /* @ts-ignore */
|
|
1983
|
+
...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
1984
|
+
this.selecteds = computed(() => this.picker()?.selecteds(), /* @ts-ignore */
|
|
1985
|
+
...(ngDevMode ? [{ debugName: "selecteds" }] : /* istanbul ignore next */ []));
|
|
1986
|
+
this.selectMode = computed(() => this.picker()?.selectMode(), /* @ts-ignore */
|
|
1987
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
1988
|
+
this.isInRangeMode = computed(() => this.picker()?.isInRangeMode(), /* @ts-ignore */
|
|
1989
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
1990
|
+
this.firstDayOfWeek = computed(() => this.picker()?.firstDayOfWeek(), /* @ts-ignore */
|
|
1991
|
+
...(ngDevMode ? [{ debugName: "firstDayOfWeek" }] : /* istanbul ignore next */ []));
|
|
1992
|
+
this.dateTimeFilter = computed(() => this.picker()?.dateTimeFilter(), /* @ts-ignore */
|
|
1993
|
+
...(ngDevMode ? [{ debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
1994
|
+
this.startView = computed(() => this.picker()?.startView(), /* @ts-ignore */
|
|
1995
|
+
...(ngDevMode ? [{ debugName: "startView" }] : /* istanbul ignore next */ []));
|
|
1996
|
+
this.hideOtherMonths = computed(() => this.picker()?.hideOtherMonths(), /* @ts-ignore */
|
|
1997
|
+
...(ngDevMode ? [{ debugName: "hideOtherMonths" }] : /* istanbul ignore next */ []));
|
|
1998
|
+
this.showSecondsTimer = computed(() => this.picker()?.showSecondsTimer(), /* @ts-ignore */
|
|
1999
|
+
...(ngDevMode ? [{ debugName: "showSecondsTimer" }] : /* istanbul ignore next */ []));
|
|
2000
|
+
this.hour12Timer = computed(() => this.picker()?.hour12Timer(), /* @ts-ignore */
|
|
2001
|
+
...(ngDevMode ? [{ debugName: "hour12Timer" }] : /* istanbul ignore next */ []));
|
|
2002
|
+
this.stepHour = computed(() => this.picker()?.stepHour(), /* @ts-ignore */
|
|
2003
|
+
...(ngDevMode ? [{ debugName: "stepHour" }] : /* istanbul ignore next */ []));
|
|
2004
|
+
this.stepMinute = computed(() => this.picker()?.stepMinute(), /* @ts-ignore */
|
|
2005
|
+
...(ngDevMode ? [{ debugName: "stepMinute" }] : /* istanbul ignore next */ []));
|
|
2006
|
+
this.stepSecond = computed(() => this.picker()?.stepSecond(), /* @ts-ignore */
|
|
2007
|
+
...(ngDevMode ? [{ debugName: "stepSecond" }] : /* istanbul ignore next */ []));
|
|
2008
|
+
this.disabled = computed(() => this.picker()?.disabled(), /* @ts-ignore */
|
|
2009
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
2010
|
+
this.formatString = computed(() => this.picker()?.formatString(), /* @ts-ignore */
|
|
2011
|
+
...(ngDevMode ? [{ debugName: "formatString" }] : /* istanbul ignore next */ []));
|
|
2012
|
+
this.startAt = computed(() => this.picker()?.startAt(), /* @ts-ignore */
|
|
2013
|
+
...(ngDevMode ? [{ debugName: "startAt" }] : /* istanbul ignore next */ []));
|
|
2014
|
+
this.dateTimeChecker = computed(() => this.picker()?.dateTimeChecker(), /* @ts-ignore */
|
|
2015
|
+
...(ngDevMode ? [{ debugName: "dateTimeChecker" }] : /* istanbul ignore next */ []));
|
|
1888
2016
|
this.cancelLabel = this.pickerIntl.cancelBtnLabel.asReadonly();
|
|
1889
2017
|
this.setLabel = this.pickerIntl.setBtnLabel.asReadonly();
|
|
1890
2018
|
/**
|
|
@@ -1903,7 +2031,8 @@ class DateTimeContainerComponent {
|
|
|
1903
2031
|
return value
|
|
1904
2032
|
? this.dateTimeAdapter.format(value, this.formatString())
|
|
1905
2033
|
: '';
|
|
1906
|
-
},
|
|
2034
|
+
}, /* @ts-ignore */
|
|
2035
|
+
...(ngDevMode ? [{ debugName: "fromFormattedValue" }] : /* istanbul ignore next */ []));
|
|
1907
2036
|
/**
|
|
1908
2037
|
* The range 'to' formatted value
|
|
1909
2038
|
*/
|
|
@@ -1912,7 +2041,8 @@ class DateTimeContainerComponent {
|
|
|
1912
2041
|
return value
|
|
1913
2042
|
? this.dateTimeAdapter.format(value, this.formatString())
|
|
1914
2043
|
: '';
|
|
1915
|
-
},
|
|
2044
|
+
}, /* @ts-ignore */
|
|
2045
|
+
...(ngDevMode ? [{ debugName: "toFormattedValue" }] : /* istanbul ignore next */ []));
|
|
1916
2046
|
/**
|
|
1917
2047
|
* Cases in which the control buttons show in the picker
|
|
1918
2048
|
* 1) picker mode is 'dialog'
|
|
@@ -1924,7 +2054,57 @@ class DateTimeContainerComponent {
|
|
|
1924
2054
|
return (pickerMode === 'dialog' ||
|
|
1925
2055
|
(pickerType !== 'calendar' &&
|
|
1926
2056
|
pickerMode !== 'inline'));
|
|
1927
|
-
},
|
|
2057
|
+
}, /* @ts-ignore */
|
|
2058
|
+
...(ngDevMode ? [{ debugName: "showControlButtons" }] : /* istanbul ignore next */ []));
|
|
2059
|
+
}
|
|
2060
|
+
static { this.animate = true; }
|
|
2061
|
+
transformPickerEnter({ target, animationComplete }) {
|
|
2062
|
+
if (!DateTimeContainerComponent.animate) {
|
|
2063
|
+
this.pickerOpened$.next();
|
|
2064
|
+
animationComplete();
|
|
2065
|
+
return;
|
|
2066
|
+
}
|
|
2067
|
+
let anim = target.animate([
|
|
2068
|
+
{ opacity: 0, transform: 'scale(1, 0)' },
|
|
2069
|
+
{ opacity: 1, transform: 'scale(1, 1)' }
|
|
2070
|
+
], {
|
|
2071
|
+
duration: 400,
|
|
2072
|
+
easing: 'cubic-bezier(0.25, 0.8, 0.25, 1)'
|
|
2073
|
+
});
|
|
2074
|
+
const inner = target.querySelector('.nxt-dt-container-inner');
|
|
2075
|
+
if (inner) {
|
|
2076
|
+
inner.style.opacity = '0';
|
|
2077
|
+
anim = inner.animate([
|
|
2078
|
+
{ opacity: 0 },
|
|
2079
|
+
{ opacity: 1 }
|
|
2080
|
+
], {
|
|
2081
|
+
duration: 400,
|
|
2082
|
+
delay: 100,
|
|
2083
|
+
easing: 'cubic-bezier(0.55, 0, 0.55, 0.2)'
|
|
2084
|
+
});
|
|
2085
|
+
}
|
|
2086
|
+
anim.addEventListener('finish', () => {
|
|
2087
|
+
if (inner)
|
|
2088
|
+
inner.style.opacity = '';
|
|
2089
|
+
this.pickerOpened$.next();
|
|
2090
|
+
animationComplete();
|
|
2091
|
+
});
|
|
2092
|
+
}
|
|
2093
|
+
transformPickerLeave({ target, animationComplete }) {
|
|
2094
|
+
if (!DateTimeContainerComponent.animate) {
|
|
2095
|
+
animationComplete();
|
|
2096
|
+
return;
|
|
2097
|
+
}
|
|
2098
|
+
const anim = target.animate([
|
|
2099
|
+
{ opacity: 1 },
|
|
2100
|
+
{ opacity: 0 }
|
|
2101
|
+
], {
|
|
2102
|
+
duration: 100,
|
|
2103
|
+
easing: 'linear'
|
|
2104
|
+
});
|
|
2105
|
+
anim.addEventListener('finish', () => {
|
|
2106
|
+
animationComplete();
|
|
2107
|
+
});
|
|
1928
2108
|
}
|
|
1929
2109
|
get pickerMoment() {
|
|
1930
2110
|
return this._clamPickerMoment();
|
|
@@ -1943,12 +2123,6 @@ class DateTimeContainerComponent {
|
|
|
1943
2123
|
ngAfterViewInit() {
|
|
1944
2124
|
this.focusPicker();
|
|
1945
2125
|
}
|
|
1946
|
-
handleContainerAnimationDone(event) {
|
|
1947
|
-
const toState = event.toState;
|
|
1948
|
-
if (toState === 'enter') {
|
|
1949
|
-
this.pickerOpened$.next();
|
|
1950
|
-
}
|
|
1951
|
-
}
|
|
1952
2126
|
dateSelected(date) {
|
|
1953
2127
|
let result;
|
|
1954
2128
|
const picker = this.picker();
|
|
@@ -2162,18 +2336,12 @@ class DateTimeContainerComponent {
|
|
|
2162
2336
|
timer.focus();
|
|
2163
2337
|
}
|
|
2164
2338
|
}
|
|
2165
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2167
|
-
dateTimePickerAnimations.transformPicker,
|
|
2168
|
-
dateTimePickerAnimations.fadeInPicker
|
|
2169
|
-
] }); }
|
|
2339
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2340
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: DateTimeContainerComponent, isStandalone: true, selector: "nxt-date-time-container", host: { listeners: { "animate.enter": "transformPickerEnter($event)", "animate.leave": "transformPickerLeave($event)" }, properties: { "class.nxt-dt-container": "true", "class.nxt-dt-popup-container": "pickerMode() === 'popup'", "class.nxt-dt-dialog-container": "pickerMode() === 'dialog'", "class.nxt-dt-inline-container": "pickerMode() === 'inline'", "class.nxt-dt-container-disabled": "disabled()", "attr.id": "picker()?.id" } }, viewQueries: [{ propertyName: "calendar", first: true, predicate: CalendarComponent, descendants: true, isSignal: true }, { propertyName: "timer", first: true, predicate: TimerComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<div [cdkTrapFocus]=\"pickerMode() !== 'inline'\"\n class=\"nxt-dt-container-inner\">\n\n @if (pickerType() === 'both' || pickerType() === 'calendar') {\n <nxt-date-time-calendar class=\"nxt-dt-container-row\"\n [firstDayOfWeek]=\"firstDayOfWeek() ?? 0\"\n [(pickerMoment)]=\"pickerMoment\"\n [selected]=\"selected()\"\n [selecteds]=\"selecteds() ?? []\"\n [selectMode]=\"selectMode()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [dateTimeFilter]=\"dateTimeFilter()\"\n [startView]=\"startView() ?? 'month'\"\n [hideOtherMonths]=\"!!hideOtherMonths()\"\n (yearSelected)=\"picker()?.selectYear($event)\"\n (monthSelected)=\"picker()?.selectMonth($event)\"\n (selectedChange)=\"dateSelected($event)\" />\n }\n\n @if (pickerType() === 'both' || pickerType() === 'timer') {\n <nxt-date-time-timer class=\"nxt-dt-container-row\"\n [pickerMoment]=\"pickerMoment\"\n [min]=\"min()\"\n [max]=\"max()\"\n [showSecondsTimer]=\"!!showSecondsTimer()\"\n [hour12Timer]=\"!!hour12Timer()\"\n [stepHour]=\"stepHour() ?? 1\"\n [stepMinute]=\"stepMinute() ?? 1\"\n [stepSecond]=\"stepSecond() ?? 1\"\n (selectedChange)=\"timeSelected($event)\" />\n }\n\n @if (isInRangeMode()) {\n <div role=\"radiogroup\"\n class=\"nxt-dt-container-info nxt-dt-container-row\">\n <div role=\"radio\"\n [tabindex]=\"activeSelectedIndex() === 0 ? 0 : -1\"\n [attr.aria-checked]=\"activeSelectedIndex() === 0\"\n class=\"nxt-dt-control nxt-dt-container-range nxt-dt-container-from\"\n [class.nxt-dt-container-info-active]=\"activeSelectedIndex() === 0\"\n (click)=\"handleClickOnInfoGroup($event, 0)\"\n (keydown)=\"handleKeydownOnInfoGroup($event, to, 0)\"\n #from>\n <span class=\"nxt-dt-control-content nxt-dt-container-range-content\"\n tabindex=\"-1\">\n <span class=\"nxt-dt-container-info-label\">{{fromLabel()}}:</span>\n <span class=\"nxt-dt-container-info-value\">{{fromFormattedValue()}}</span>\n </span>\n </div>\n <div role=\"radio\"\n [tabindex]=\"activeSelectedIndex() === 1 ? 0 : -1\"\n [attr.aria-checked]=\"activeSelectedIndex() === 1\"\n class=\"nxt-dt-control nxt-dt-container-range nxt-dt-container-to\"\n [class.nxt-dt-container-info-active]=\"activeSelectedIndex() === 1\"\n (click)=\"handleClickOnInfoGroup($event, 1)\"\n (keydown)=\"handleKeydownOnInfoGroup($event, from, 1)\"\n #to>\n <span class=\"nxt-dt-control-content nxt-dt-container-range-content\"\n tabindex=\"-1\">\n <span class=\"nxt-dt-container-info-label\">{{toLabel()}}:</span>\n <span class=\"nxt-dt-container-info-value\">{{toFormattedValue()}}</span>\n </span>\n </div>\n </div>\n }\n\n @if (showControlButtons()) {\n <div class=\"nxt-dt-container-buttons nxt-dt-container-row\">\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-container-control-button\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"onCancelClicked($event)\">\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\n tabindex=\"-1\">\n {{cancelLabel()}}\n </span>\n </button>\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-container-control-button\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"onSetClicked($event)\">\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\n tabindex=\"-1\">\n {{setLabel()}}\n </span>\n </button>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: CalendarComponent, selector: "nxt-date-time-calendar", inputs: ["dateTimeFilter", "firstDayOfWeek", "min", "max", "pickerMoment", "selectMode", "selected", "selecteds", "startView", "hideOtherMonths"], outputs: ["pickerMomentChange", "selectedChange", "userSelection", "yearSelected", "monthSelected"] }, { kind: "component", type: TimerComponent, selector: "nxt-date-time-timer", inputs: ["pickerMoment", "min", "max", "showSecondsTimer", "hour12Timer", "stepHour", "stepMinute", "stepSecond"], outputs: ["selectedChange"] }] }); }
|
|
2170
2341
|
}
|
|
2171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeContainerComponent, decorators: [{
|
|
2172
2343
|
type: Component,
|
|
2173
|
-
args: [{ selector: 'nxt-date-time-container', preserveWhitespaces: false,
|
|
2174
|
-
dateTimePickerAnimations.transformPicker,
|
|
2175
|
-
dateTimePickerAnimations.fadeInPicker
|
|
2176
|
-
], imports: [
|
|
2344
|
+
args: [{ selector: 'nxt-date-time-container', preserveWhitespaces: false, imports: [
|
|
2177
2345
|
CdkTrapFocus,
|
|
2178
2346
|
CalendarComponent,
|
|
2179
2347
|
TimerComponent
|
|
@@ -2184,9 +2352,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
2184
2352
|
'[class.nxt-dt-inline-container]': "pickerMode() === 'inline'",
|
|
2185
2353
|
'[class.nxt-dt-container-disabled]': 'disabled()',
|
|
2186
2354
|
'[attr.id]': 'picker()?.id',
|
|
2187
|
-
'
|
|
2188
|
-
'(
|
|
2189
|
-
}, template: "<div [cdkTrapFocus]=\"pickerMode() !== 'inline'\"\
|
|
2355
|
+
'(animate.enter)': 'transformPickerEnter($event)',
|
|
2356
|
+
'(animate.leave)': 'transformPickerLeave($event)'
|
|
2357
|
+
}, template: "<div [cdkTrapFocus]=\"pickerMode() !== 'inline'\"\n class=\"nxt-dt-container-inner\">\n\n @if (pickerType() === 'both' || pickerType() === 'calendar') {\n <nxt-date-time-calendar class=\"nxt-dt-container-row\"\n [firstDayOfWeek]=\"firstDayOfWeek() ?? 0\"\n [(pickerMoment)]=\"pickerMoment\"\n [selected]=\"selected()\"\n [selecteds]=\"selecteds() ?? []\"\n [selectMode]=\"selectMode()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [dateTimeFilter]=\"dateTimeFilter()\"\n [startView]=\"startView() ?? 'month'\"\n [hideOtherMonths]=\"!!hideOtherMonths()\"\n (yearSelected)=\"picker()?.selectYear($event)\"\n (monthSelected)=\"picker()?.selectMonth($event)\"\n (selectedChange)=\"dateSelected($event)\" />\n }\n\n @if (pickerType() === 'both' || pickerType() === 'timer') {\n <nxt-date-time-timer class=\"nxt-dt-container-row\"\n [pickerMoment]=\"pickerMoment\"\n [min]=\"min()\"\n [max]=\"max()\"\n [showSecondsTimer]=\"!!showSecondsTimer()\"\n [hour12Timer]=\"!!hour12Timer()\"\n [stepHour]=\"stepHour() ?? 1\"\n [stepMinute]=\"stepMinute() ?? 1\"\n [stepSecond]=\"stepSecond() ?? 1\"\n (selectedChange)=\"timeSelected($event)\" />\n }\n\n @if (isInRangeMode()) {\n <div role=\"radiogroup\"\n class=\"nxt-dt-container-info nxt-dt-container-row\">\n <div role=\"radio\"\n [tabindex]=\"activeSelectedIndex() === 0 ? 0 : -1\"\n [attr.aria-checked]=\"activeSelectedIndex() === 0\"\n class=\"nxt-dt-control nxt-dt-container-range nxt-dt-container-from\"\n [class.nxt-dt-container-info-active]=\"activeSelectedIndex() === 0\"\n (click)=\"handleClickOnInfoGroup($event, 0)\"\n (keydown)=\"handleKeydownOnInfoGroup($event, to, 0)\"\n #from>\n <span class=\"nxt-dt-control-content nxt-dt-container-range-content\"\n tabindex=\"-1\">\n <span class=\"nxt-dt-container-info-label\">{{fromLabel()}}:</span>\n <span class=\"nxt-dt-container-info-value\">{{fromFormattedValue()}}</span>\n </span>\n </div>\n <div role=\"radio\"\n [tabindex]=\"activeSelectedIndex() === 1 ? 0 : -1\"\n [attr.aria-checked]=\"activeSelectedIndex() === 1\"\n class=\"nxt-dt-control nxt-dt-container-range nxt-dt-container-to\"\n [class.nxt-dt-container-info-active]=\"activeSelectedIndex() === 1\"\n (click)=\"handleClickOnInfoGroup($event, 1)\"\n (keydown)=\"handleKeydownOnInfoGroup($event, from, 1)\"\n #to>\n <span class=\"nxt-dt-control-content nxt-dt-container-range-content\"\n tabindex=\"-1\">\n <span class=\"nxt-dt-container-info-label\">{{toLabel()}}:</span>\n <span class=\"nxt-dt-container-info-value\">{{toFormattedValue()}}</span>\n </span>\n </div>\n </div>\n }\n\n @if (showControlButtons()) {\n <div class=\"nxt-dt-container-buttons nxt-dt-container-row\">\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-container-control-button\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"onCancelClicked($event)\">\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\n tabindex=\"-1\">\n {{cancelLabel()}}\n </span>\n </button>\n <button class=\"nxt-dt-control nxt-dt-control-button nxt-dt-container-control-button\"\n type=\"button\"\n tabindex=\"0\"\n (click)=\"onSetClicked($event)\">\n <span class=\"nxt-dt-control-content nxt-dt-control-button-content\"\n tabindex=\"-1\">\n {{setLabel()}}\n </span>\n </button>\n </div>\n }\n</div>\n" }]
|
|
2190
2358
|
}], propDecorators: { calendar: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CalendarComponent), { isSignal: true }] }], timer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TimerComponent), { isSignal: true }] }] } });
|
|
2191
2359
|
|
|
2192
2360
|
/** @internal */
|
|
@@ -2198,7 +2366,8 @@ const NXT_DATETIME_VALUE_ACCESSOR$1 = {
|
|
|
2198
2366
|
class DateTimeInlineComponent extends DateTimeDirective {
|
|
2199
2367
|
constructor() {
|
|
2200
2368
|
super(...arguments);
|
|
2201
|
-
this.container = viewChild(DateTimeContainerComponent,
|
|
2369
|
+
this.container = viewChild(DateTimeContainerComponent, /* @ts-ignore */
|
|
2370
|
+
...(ngDevMode ? [{ debugName: "container" }] : /* istanbul ignore next */ []));
|
|
2202
2371
|
/**
|
|
2203
2372
|
* Set the type of the dateTime picker
|
|
2204
2373
|
*
|
|
@@ -2206,11 +2375,12 @@ class DateTimeInlineComponent extends DateTimeDirective {
|
|
|
2206
2375
|
* - `'calendar'` - show only calendar
|
|
2207
2376
|
* - `'timer'` - show only timer
|
|
2208
2377
|
*/
|
|
2209
|
-
this.pickerType = input('both',
|
|
2378
|
+
this.pickerType = input('both', /* @ts-ignore */
|
|
2379
|
+
...(ngDevMode ? [{ debugName: "pickerType" }] : /* istanbul ignore next */ []));
|
|
2210
2380
|
/** Whether the date time picker should be disabled */
|
|
2211
2381
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2212
|
-
this._disabled = input(false, { ...(ngDevMode ? { debugName: "_disabled" } : {}), alias: 'disabled' });
|
|
2213
|
-
this.disabled = linkedSignal({ ...(ngDevMode ? { debugName: "disabled" } : {}), source: () => this._disabled(),
|
|
2382
|
+
this._disabled = input(false, { ...(ngDevMode ? { debugName: "_disabled" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
2383
|
+
this.disabled = linkedSignal({ ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), source: () => this._disabled(),
|
|
2214
2384
|
computation: v => v });
|
|
2215
2385
|
/**
|
|
2216
2386
|
* The picker select mode
|
|
@@ -2220,20 +2390,22 @@ class DateTimeInlineComponent extends DateTimeDirective {
|
|
|
2220
2390
|
* - `'rangeFrom'` - an open range with a fixed start date
|
|
2221
2391
|
* - `'rangeTo'` - an open range with a fixed end date
|
|
2222
2392
|
*/
|
|
2223
|
-
this.selectMode = input('single',
|
|
2393
|
+
this.selectMode = input('single', /* @ts-ignore */
|
|
2394
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
2224
2395
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2225
|
-
this._valueInput = input(undefined, { ...(ngDevMode ? { debugName: "_valueInput" } : {}), alias: 'value' });
|
|
2226
|
-
this._value = linkedSignal({ ...(ngDevMode ? { debugName: "_value" } : {}), source: () => this._valueInput(),
|
|
2396
|
+
this._valueInput = input(undefined, { ...(ngDevMode ? { debugName: "_valueInput" } : /* istanbul ignore next */ {}), alias: 'value' });
|
|
2397
|
+
this._value = linkedSignal({ ...(ngDevMode ? { debugName: "_value" } : /* istanbul ignore next */ {}), source: () => this._valueInput(),
|
|
2227
2398
|
computation: v => v });
|
|
2228
2399
|
this.value = computed(() => {
|
|
2229
2400
|
let value = this._value();
|
|
2230
2401
|
value = this.dateTimeAdapter.deserialize(value);
|
|
2231
2402
|
value = this.getValidDate(value);
|
|
2232
2403
|
return value;
|
|
2233
|
-
},
|
|
2404
|
+
}, /* @ts-ignore */
|
|
2405
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
2234
2406
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2235
|
-
this._valuesInput = input(undefined, { ...(ngDevMode ? { debugName: "_valuesInput" } : {}), alias: 'values' });
|
|
2236
|
-
this._values = linkedSignal({ ...(ngDevMode ? { debugName: "_values" } : {}), source: () => this._valuesInput(),
|
|
2407
|
+
this._valuesInput = input(undefined, { ...(ngDevMode ? { debugName: "_valuesInput" } : /* istanbul ignore next */ {}), alias: 'values' });
|
|
2408
|
+
this._values = linkedSignal({ ...(ngDevMode ? { debugName: "_values" } : /* istanbul ignore next */ {}), source: () => this._valuesInput(),
|
|
2237
2409
|
computation: v => v });
|
|
2238
2410
|
this.values = computed(() => {
|
|
2239
2411
|
let values = this._values();
|
|
@@ -2248,13 +2420,14 @@ class DateTimeInlineComponent extends DateTimeDirective {
|
|
|
2248
2420
|
else {
|
|
2249
2421
|
return [];
|
|
2250
2422
|
}
|
|
2251
|
-
},
|
|
2423
|
+
}, /* @ts-ignore */
|
|
2424
|
+
...(ngDevMode ? [{ debugName: "values" }] : /* istanbul ignore next */ []));
|
|
2252
2425
|
/**
|
|
2253
2426
|
* The date to show when picker opens
|
|
2254
2427
|
*
|
|
2255
2428
|
* Defaults to selected date (if available) or current date.
|
|
2256
2429
|
*/
|
|
2257
|
-
this._startAt = input(undefined, { ...(ngDevMode ? { debugName: "_startAt" } : {}),
|
|
2430
|
+
this._startAt = input(undefined, { ...(ngDevMode ? { debugName: "_startAt" } : /* istanbul ignore next */ {}),
|
|
2258
2431
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2259
2432
|
alias: 'startAt',
|
|
2260
2433
|
transform: date => this.getValidDate(this.dateTimeAdapter.deserialize(date)) });
|
|
@@ -2277,16 +2450,18 @@ class DateTimeInlineComponent extends DateTimeDirective {
|
|
|
2277
2450
|
else {
|
|
2278
2451
|
return;
|
|
2279
2452
|
}
|
|
2280
|
-
},
|
|
2453
|
+
}, /* @ts-ignore */
|
|
2454
|
+
...(ngDevMode ? [{ debugName: "startAt" }] : /* istanbul ignore next */ []));
|
|
2281
2455
|
/** A function to filter available date & time */
|
|
2282
|
-
this.dateTimeFilter = input(
|
|
2456
|
+
this.dateTimeFilter = input(/* @ts-ignore */
|
|
2457
|
+
...(ngDevMode ? [undefined, { debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
2283
2458
|
/** The minimum valid date */
|
|
2284
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: value => {
|
|
2459
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: value => {
|
|
2285
2460
|
value = this.dateTimeAdapter.deserialize(value);
|
|
2286
2461
|
return this.getValidDate(value);
|
|
2287
2462
|
} });
|
|
2288
2463
|
/** The maximum valid date */
|
|
2289
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: value => {
|
|
2464
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: value => {
|
|
2290
2465
|
value = this.dateTimeAdapter.deserialize(value);
|
|
2291
2466
|
return this.getValidDate(value);
|
|
2292
2467
|
} });
|
|
@@ -2302,16 +2477,18 @@ class DateTimeInlineComponent extends DateTimeDirective {
|
|
|
2302
2477
|
* This doesn't imply a change on the selected date.
|
|
2303
2478
|
*/
|
|
2304
2479
|
this.monthSelected = output();
|
|
2305
|
-
this.selected = linkedSignal({ ...(ngDevMode ? { debugName: "selected" } : {}), source: () => this.value(),
|
|
2480
|
+
this.selected = linkedSignal({ ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), source: () => this.value(),
|
|
2306
2481
|
computation: v => v });
|
|
2307
|
-
this.selecteds = linkedSignal({ ...(ngDevMode ? { debugName: "selecteds" } : {}), source: () => this.values(),
|
|
2482
|
+
this.selecteds = linkedSignal({ ...(ngDevMode ? { debugName: "selecteds" } : /* istanbul ignore next */ {}), source: () => this.values(),
|
|
2308
2483
|
computation: v => v || [] });
|
|
2309
2484
|
this.isOpen = signal(true).asReadonly();
|
|
2310
2485
|
this.pickerMode = signal('inline').asReadonly();
|
|
2311
|
-
this.isInSingleMode = computed(() => this.selectMode() === 'single',
|
|
2486
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
2487
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
2312
2488
|
this.isInRangeMode = computed(() => (this.selectMode() === 'range' ||
|
|
2313
2489
|
this.selectMode() === 'rangeFrom' ||
|
|
2314
|
-
this.selectMode() === 'rangeTo'),
|
|
2490
|
+
this.selectMode() === 'rangeTo'), /* @ts-ignore */
|
|
2491
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
2315
2492
|
}
|
|
2316
2493
|
ngOnInit() {
|
|
2317
2494
|
const container = this.container();
|
|
@@ -2367,10 +2544,10 @@ class DateTimeInlineComponent extends DateTimeDirective {
|
|
|
2367
2544
|
selectMonth(normalizedMonth) {
|
|
2368
2545
|
this.monthSelected.emit(normalizedMonth);
|
|
2369
2546
|
}
|
|
2370
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2371
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
2547
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeInlineComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2548
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: DateTimeInlineComponent, isStandalone: true, selector: "nxt-date-time-inline", inputs: { pickerType: { classPropertyName: "pickerType", publicName: "pickerType", isSignal: true, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, _valueInput: { classPropertyName: "_valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, _valuesInput: { classPropertyName: "_valuesInput", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, _startAt: { classPropertyName: "_startAt", publicName: "startAt", isSignal: true, isRequired: false, transformFunction: null }, dateTimeFilter: { classPropertyName: "dateTimeFilter", publicName: "dateTimeFilter", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { yearSelected: "yearSelected", monthSelected: "monthSelected" }, host: { properties: { "class.nxt-dt-inline": "true" } }, providers: [NXT_DATETIME_VALUE_ACCESSOR$1], viewQueries: [{ propertyName: "container", first: true, predicate: DateTimeContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<nxt-date-time-container />\r\n", styles: [""], dependencies: [{ kind: "component", type: DateTimeContainerComponent, selector: "nxt-date-time-container" }] }); }
|
|
2372
2549
|
}
|
|
2373
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeInlineComponent, decorators: [{
|
|
2374
2551
|
type: Component,
|
|
2375
2552
|
args: [{ selector: 'nxt-date-time-inline', preserveWhitespaces: false, providers: [NXT_DATETIME_VALUE_ACCESSOR$1], imports: [
|
|
2376
2553
|
DateTimeContainerComponent
|
|
@@ -2403,20 +2580,21 @@ class DateTimeInputDirective {
|
|
|
2403
2580
|
/**
|
|
2404
2581
|
* The date & time picker this input is associated with
|
|
2405
2582
|
*/
|
|
2406
|
-
this.dateTime = input(undefined, { ...(ngDevMode ? { debugName: "dateTime" } : {}), alias: 'nxtDateTime' });
|
|
2583
|
+
this.dateTime = input(undefined, { ...(ngDevMode ? { debugName: "dateTime" } : /* istanbul ignore next */ {}), alias: 'nxtDateTime' });
|
|
2407
2584
|
/**
|
|
2408
2585
|
* A function to filter available date & time
|
|
2409
2586
|
*/
|
|
2410
|
-
this.dateTimeFilter = input(
|
|
2587
|
+
this.dateTimeFilter = input(/* @ts-ignore */
|
|
2588
|
+
...(ngDevMode ? [undefined, { debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
2411
2589
|
/** Whether the date & time picker input is disabled */
|
|
2412
2590
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2413
|
-
this._disabled = input(false, { ...(ngDevMode ? { debugName: "_disabled" } : {}), alias: 'disabled' });
|
|
2414
|
-
this.disabled = linkedSignal({ ...(ngDevMode ? { debugName: "disabled" } : {}), source: () => this._disabled(),
|
|
2591
|
+
this._disabled = input(false, { ...(ngDevMode ? { debugName: "_disabled" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
2592
|
+
this.disabled = linkedSignal({ ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), source: () => this._disabled(),
|
|
2415
2593
|
computation: v => v });
|
|
2416
2594
|
/** The minimum valid date */
|
|
2417
|
-
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : {}), transform: value => this.getValidDate(this.dateTimeAdapter.deserialize(value)) });
|
|
2595
|
+
this.min = input(undefined, { ...(ngDevMode ? { debugName: "min" } : /* istanbul ignore next */ {}), transform: value => this.getValidDate(this.dateTimeAdapter.deserialize(value)) });
|
|
2418
2596
|
/** The maximum valid date */
|
|
2419
|
-
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : {}), transform: value => this.getValidDate(this.dateTimeAdapter.deserialize(value)) });
|
|
2597
|
+
this.max = input(undefined, { ...(ngDevMode ? { debugName: "max" } : /* istanbul ignore next */ {}), transform: value => this.getValidDate(this.dateTimeAdapter.deserialize(value)) });
|
|
2420
2598
|
/**
|
|
2421
2599
|
* The picker select mode
|
|
2422
2600
|
*
|
|
@@ -2425,14 +2603,16 @@ class DateTimeInputDirective {
|
|
|
2425
2603
|
* - `'rangeFrom'` - an open range with a fixed start date
|
|
2426
2604
|
* - `'rangeTo'` - an open range with a fixed end date
|
|
2427
2605
|
*/
|
|
2428
|
-
this.selectMode = input('single',
|
|
2606
|
+
this.selectMode = input('single', /* @ts-ignore */
|
|
2607
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
2429
2608
|
/**
|
|
2430
2609
|
* The character to separate the 'from' and 'to' in input value
|
|
2431
2610
|
*/
|
|
2432
|
-
this.rangeSeparator = input('~',
|
|
2611
|
+
this.rangeSeparator = input('~', /* @ts-ignore */
|
|
2612
|
+
...(ngDevMode ? [{ debugName: "rangeSeparator" }] : /* istanbul ignore next */ []));
|
|
2433
2613
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2434
|
-
this._valueInput = input(undefined, { ...(ngDevMode ? { debugName: "_valueInput" } : {}), alias: 'value' });
|
|
2435
|
-
this._value = linkedSignal({ ...(ngDevMode ? { debugName: "_value" } : {}), source: () => this._valueInput(),
|
|
2614
|
+
this._valueInput = input(undefined, { ...(ngDevMode ? { debugName: "_valueInput" } : /* istanbul ignore next */ {}), alias: 'value' });
|
|
2615
|
+
this._value = linkedSignal({ ...(ngDevMode ? { debugName: "_value" } : /* istanbul ignore next */ {}), source: () => this._valueInput(),
|
|
2436
2616
|
computation: v => v });
|
|
2437
2617
|
this.valueValidity = computed(() => {
|
|
2438
2618
|
let value = this._value();
|
|
@@ -2442,12 +2622,13 @@ class DateTimeInputDirective {
|
|
|
2442
2622
|
value,
|
|
2443
2623
|
lastValueValid
|
|
2444
2624
|
};
|
|
2445
|
-
}, { ...(ngDevMode ? { debugName: "valueValidity" } : {}), equal: (a, b) => a.lastValueValid == b.lastValueValid && this.dateTimeAdapter.isEqual(a.value, b.value) });
|
|
2446
|
-
this.parsedValue = linkedSignal(() => this.valueValidity().value,
|
|
2625
|
+
}, { ...(ngDevMode ? { debugName: "valueValidity" } : /* istanbul ignore next */ {}), equal: (a, b) => a.lastValueValid == b.lastValueValid && this.dateTimeAdapter.isEqual(a.value, b.value) });
|
|
2626
|
+
this.parsedValue = linkedSignal(() => this.valueValidity().value, /* @ts-ignore */
|
|
2627
|
+
...(ngDevMode ? [{ debugName: "parsedValue" }] : /* istanbul ignore next */ []));
|
|
2447
2628
|
this.value = this.parsedValue.asReadonly();
|
|
2448
2629
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
2449
|
-
this._valuesInput = input(new Array(), { ...(ngDevMode ? { debugName: "_valuesInput" } : {}), alias: 'values' });
|
|
2450
|
-
this._values = linkedSignal({ ...(ngDevMode ? { debugName: "_values" } : {}), source: () => this._valuesInput(),
|
|
2630
|
+
this._valuesInput = input(new Array(), { ...(ngDevMode ? { debugName: "_valuesInput" } : /* istanbul ignore next */ {}), alias: 'values' });
|
|
2631
|
+
this._values = linkedSignal({ ...(ngDevMode ? { debugName: "_values" } : /* istanbul ignore next */ {}), source: () => this._valuesInput(),
|
|
2451
2632
|
computation: v => v });
|
|
2452
2633
|
this.valuesValidity = computed(() => {
|
|
2453
2634
|
let values = this._values();
|
|
@@ -2470,8 +2651,9 @@ class DateTimeInputDirective {
|
|
|
2470
2651
|
values,
|
|
2471
2652
|
lastValueValid
|
|
2472
2653
|
};
|
|
2473
|
-
}, { ...(ngDevMode ? { debugName: "valuesValidity" } : {}), equal: (a, b) => a.lastValueValid == b.lastValueValid && this.dateTimeAdapter.isEqual(a.values[0], b.values[0]) && this.dateTimeAdapter.isEqual(a.values[1], b.values[1]) });
|
|
2474
|
-
this.parsedValues = linkedSignal(() => this.valuesValidity().values,
|
|
2654
|
+
}, { ...(ngDevMode ? { debugName: "valuesValidity" } : /* istanbul ignore next */ {}), equal: (a, b) => a.lastValueValid == b.lastValueValid && this.dateTimeAdapter.isEqual(a.values[0], b.values[0]) && this.dateTimeAdapter.isEqual(a.values[1], b.values[1]) });
|
|
2655
|
+
this.parsedValues = linkedSignal(() => this.valuesValidity().values, /* @ts-ignore */
|
|
2656
|
+
...(ngDevMode ? [{ debugName: "parsedValues" }] : /* istanbul ignore next */ []));
|
|
2475
2657
|
this.values = this.parsedValues.asReadonly();
|
|
2476
2658
|
this.nativeElementValue = computed(() => {
|
|
2477
2659
|
/**
|
|
@@ -2520,7 +2702,8 @@ class DateTimeInputDirective {
|
|
|
2520
2702
|
}
|
|
2521
2703
|
}
|
|
2522
2704
|
return undefined;
|
|
2523
|
-
},
|
|
2705
|
+
}, /* @ts-ignore */
|
|
2706
|
+
...(ngDevMode ? [{ debugName: "nativeElementValue" }] : /* istanbul ignore next */ []));
|
|
2524
2707
|
/**
|
|
2525
2708
|
* Callback to invoke when `change` event is fired on this `<input>`
|
|
2526
2709
|
*/
|
|
@@ -2529,16 +2712,19 @@ class DateTimeInputDirective {
|
|
|
2529
2712
|
* Callback to invoke when an `input` event is fired on this `<input>`.
|
|
2530
2713
|
*/
|
|
2531
2714
|
this.dateTimeInput = output();
|
|
2532
|
-
this.isInSingleMode = computed(() => this.selectMode() === 'single',
|
|
2715
|
+
this.isInSingleMode = computed(() => this.selectMode() === 'single', /* @ts-ignore */
|
|
2716
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
2533
2717
|
this.isInRangeMode = computed(() => {
|
|
2534
2718
|
const selectMode = this.selectMode();
|
|
2535
2719
|
return (selectMode === 'range' ||
|
|
2536
2720
|
selectMode === 'rangeFrom' ||
|
|
2537
2721
|
selectMode === 'rangeTo');
|
|
2538
|
-
},
|
|
2722
|
+
}, /* @ts-ignore */
|
|
2723
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
2539
2724
|
/** The date-time-picker that this input is associated with */
|
|
2540
|
-
this.dtPicker = signal(undefined,
|
|
2541
|
-
|
|
2725
|
+
this.dtPicker = signal(undefined, /* @ts-ignore */
|
|
2726
|
+
...(ngDevMode ? [{ debugName: "dtPicker" }] : /* istanbul ignore next */ []));
|
|
2727
|
+
this.lastValueValid = linkedSignal({ ...(ngDevMode ? { debugName: "lastValueValid" } : /* istanbul ignore next */ {}), source: () => this.valueValidity().lastValueValid && this.valuesValidity().lastValueValid,
|
|
2542
2728
|
computation: v => v });
|
|
2543
2729
|
/** The form control validator for whether the input parses */
|
|
2544
2730
|
this.parseValidator = computed(() => {
|
|
@@ -2546,7 +2732,8 @@ class DateTimeInputDirective {
|
|
|
2546
2732
|
return () => lastValueValid
|
|
2547
2733
|
? null
|
|
2548
2734
|
: { dateTimeParse: { text: this.elmRef.nativeElement.value } };
|
|
2549
|
-
},
|
|
2735
|
+
}, /* @ts-ignore */
|
|
2736
|
+
...(ngDevMode ? [{ debugName: "parseValidator" }] : /* istanbul ignore next */ []));
|
|
2550
2737
|
/** The form control validator for the min date */
|
|
2551
2738
|
this.minValidator = computed(() => {
|
|
2552
2739
|
const min = this.min();
|
|
@@ -2578,7 +2765,8 @@ class DateTimeInputDirective {
|
|
|
2578
2765
|
}
|
|
2579
2766
|
return null;
|
|
2580
2767
|
};
|
|
2581
|
-
},
|
|
2768
|
+
}, /* @ts-ignore */
|
|
2769
|
+
...(ngDevMode ? [{ debugName: "minValidator" }] : /* istanbul ignore next */ []));
|
|
2582
2770
|
/** The form control validator for the max date */
|
|
2583
2771
|
this.maxValidator = computed(() => {
|
|
2584
2772
|
const max = this.max();
|
|
@@ -2610,7 +2798,8 @@ class DateTimeInputDirective {
|
|
|
2610
2798
|
}
|
|
2611
2799
|
return null;
|
|
2612
2800
|
};
|
|
2613
|
-
},
|
|
2801
|
+
}, /* @ts-ignore */
|
|
2802
|
+
...(ngDevMode ? [{ debugName: "maxValidator" }] : /* istanbul ignore next */ []));
|
|
2614
2803
|
/** The form control validator for the date filter */
|
|
2615
2804
|
this.filterValidator = computed(() => {
|
|
2616
2805
|
const dateTimeFilter = this.dateTimeFilter();
|
|
@@ -2622,7 +2811,8 @@ class DateTimeInputDirective {
|
|
|
2622
2811
|
? null
|
|
2623
2812
|
: { dateTimeFilter: true };
|
|
2624
2813
|
};
|
|
2625
|
-
},
|
|
2814
|
+
}, /* @ts-ignore */
|
|
2815
|
+
...(ngDevMode ? [{ debugName: "filterValidator" }] : /* istanbul ignore next */ []));
|
|
2626
2816
|
/**
|
|
2627
2817
|
* The form control validator for the range.
|
|
2628
2818
|
* Check whether the 'before' value is before the 'to' value
|
|
@@ -2641,7 +2831,8 @@ class DateTimeInputDirective {
|
|
|
2641
2831
|
? null
|
|
2642
2832
|
: { dateTimeRange: true };
|
|
2643
2833
|
};
|
|
2644
|
-
},
|
|
2834
|
+
}, /* @ts-ignore */
|
|
2835
|
+
...(ngDevMode ? [{ debugName: "rangeValidator" }] : /* istanbul ignore next */ []));
|
|
2645
2836
|
/** The combined form control validator for this input */
|
|
2646
2837
|
this.validator = computed(() => Validators.compose([
|
|
2647
2838
|
this.parseValidator(),
|
|
@@ -2649,17 +2840,21 @@ class DateTimeInputDirective {
|
|
|
2649
2840
|
this.maxValidator(),
|
|
2650
2841
|
this.filterValidator(),
|
|
2651
2842
|
this.rangeValidator()
|
|
2652
|
-
]),
|
|
2843
|
+
]), /* @ts-ignore */
|
|
2844
|
+
...(ngDevMode ? [{ debugName: "validator" }] : /* istanbul ignore next */ []));
|
|
2653
2845
|
/** Emits when the value changes (either due to user input or programmatic change) */
|
|
2654
2846
|
this.valueChange = output();
|
|
2655
2847
|
/** Emits when the disabled state has changed */
|
|
2656
2848
|
this.disabledChange = output();
|
|
2657
2849
|
/** @internal */
|
|
2658
|
-
this.inputAriaOwns = computed(() => (this.dtPicker()?.isOpen() && this.dtPicker().id) || undefined,
|
|
2850
|
+
this.inputAriaOwns = computed(() => (this.dtPicker()?.isOpen() && this.dtPicker().id) || undefined, /* @ts-ignore */
|
|
2851
|
+
...(ngDevMode ? [{ debugName: "inputAriaOwns" }] : /* istanbul ignore next */ []));
|
|
2659
2852
|
/** @internal */
|
|
2660
|
-
this.minIso8601 = computed(() => this.min() ? this.dateTimeAdapter.toIso8601(this.min()) : undefined,
|
|
2853
|
+
this.minIso8601 = computed(() => this.min() ? this.dateTimeAdapter.toIso8601(this.min()) : undefined, /* @ts-ignore */
|
|
2854
|
+
...(ngDevMode ? [{ debugName: "minIso8601" }] : /* istanbul ignore next */ []));
|
|
2661
2855
|
/** @internal */
|
|
2662
|
-
this.maxIso8601 = computed(() => this.max() ? this.dateTimeAdapter.toIso8601(this.max()) : undefined,
|
|
2856
|
+
this.maxIso8601 = computed(() => this.max() ? this.dateTimeAdapter.toIso8601(this.max()) : undefined, /* @ts-ignore */
|
|
2857
|
+
...(ngDevMode ? [{ debugName: "maxIso8601" }] : /* istanbul ignore next */ []));
|
|
2663
2858
|
let picker;
|
|
2664
2859
|
effect(() => {
|
|
2665
2860
|
/**
|
|
@@ -2978,13 +3173,13 @@ class DateTimeInputDirective {
|
|
|
2978
3173
|
}
|
|
2979
3174
|
return first == second;
|
|
2980
3175
|
}
|
|
2981
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2982
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
3176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3177
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: DateTimeInputDirective, isStandalone: true, selector: "input[nxtDateTime]", inputs: { dateTime: { classPropertyName: "dateTime", publicName: "nxtDateTime", isSignal: true, isRequired: false, transformFunction: null }, dateTimeFilter: { classPropertyName: "dateTimeFilter", publicName: "dateTimeFilter", isSignal: true, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, rangeSeparator: { classPropertyName: "rangeSeparator", publicName: "rangeSeparator", isSignal: true, isRequired: false, transformFunction: null }, _valueInput: { classPropertyName: "_valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, _valuesInput: { classPropertyName: "_valuesInput", publicName: "values", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dateTimeChange: "dateTimeChange", dateTimeInput: "dateTimeInput", valueChange: "valueChange", disabledChange: "disabledChange" }, host: { listeners: { "keydown": "handleKeydownOnHost($event)", "blur": "handleBlurOnHost($event)", "input": "handleInputOnHost($event)", "change": "handleChangeOnHost($event)" }, properties: { "attr.aria-haspopup": "true", "attr.aria-owns": "inputAriaOwns()", "attr.min": "minIso8601()", "attr.max": "maxIso8601()", "disabled": "disabled()" } }, providers: [
|
|
2983
3178
|
NXT_DATETIME_VALUE_ACCESSOR,
|
|
2984
3179
|
NXT_DATETIME_VALIDATORS
|
|
2985
3180
|
], exportAs: ["nxtDateTimeInput"], ngImport: i0 }); }
|
|
2986
3181
|
}
|
|
2987
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeInputDirective, decorators: [{
|
|
2988
3183
|
type: Directive,
|
|
2989
3184
|
args: [{
|
|
2990
3185
|
selector: 'input[nxtDateTime]',
|
|
@@ -3009,22 +3204,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
3009
3204
|
|
|
3010
3205
|
class DateTimeTriggerDirective {
|
|
3011
3206
|
constructor() {
|
|
3012
|
-
this.dtPicker = input(undefined, { ...(ngDevMode ? { debugName: "dtPicker" } : {}), alias: 'nxtDateTimeTrigger' });
|
|
3207
|
+
this.dtPicker = input(undefined, { ...(ngDevMode ? { debugName: "dtPicker" } : /* istanbul ignore next */ {}), alias: 'nxtDateTimeTrigger' });
|
|
3208
|
+
/** Use the event to calculate origin when opening in dialog mode */
|
|
3209
|
+
this.dialogOrigin = input(false, /* @ts-ignore */
|
|
3210
|
+
...(ngDevMode ? [{ debugName: "dialogOrigin" }] : /* istanbul ignore next */ []));
|
|
3013
3211
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
3014
|
-
this._disabled = input(undefined, { ...(ngDevMode ? { debugName: "_disabled" } : {}), alias: 'disabled' });
|
|
3015
|
-
this.disabled = computed(() => this._disabled() ?? !!this.dtPicker()?.disabled(),
|
|
3212
|
+
this._disabled = input(undefined, { ...(ngDevMode ? { debugName: "_disabled" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
3213
|
+
this.disabled = computed(() => this._disabled() ?? !!this.dtPicker()?.disabled(), /* @ts-ignore */
|
|
3214
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
3016
3215
|
}
|
|
3017
3216
|
handleClickOnHost(event) {
|
|
3018
3217
|
const dtPicker = this.dtPicker();
|
|
3019
3218
|
if (dtPicker) {
|
|
3020
|
-
dtPicker.open();
|
|
3219
|
+
dtPicker.open(this.dialogOrigin() ? event : undefined);
|
|
3021
3220
|
event.stopPropagation();
|
|
3022
3221
|
}
|
|
3023
3222
|
}
|
|
3024
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3025
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
3223
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3224
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.6", type: DateTimeTriggerDirective, isStandalone: true, selector: "[nxtDateTimeTrigger]", inputs: { dtPicker: { classPropertyName: "dtPicker", publicName: "nxtDateTimeTrigger", isSignal: true, isRequired: false, transformFunction: null }, dialogOrigin: { classPropertyName: "dialogOrigin", publicName: "dialogOrigin", isSignal: true, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "handleClickOnHost($event)" }, properties: { "class.nxt-dt-trigger-disabled": "disabled()" } }, ngImport: i0 }); }
|
|
3026
3225
|
}
|
|
3027
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeTriggerDirective, decorators: [{
|
|
3028
3227
|
type: Directive,
|
|
3029
3228
|
args: [{
|
|
3030
3229
|
selector: '[nxtDateTimeTrigger]',
|
|
@@ -3033,7 +3232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
3033
3232
|
'(click)': 'handleClickOnHost($event)'
|
|
3034
3233
|
}
|
|
3035
3234
|
}]
|
|
3036
|
-
}], propDecorators: { dtPicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "nxtDateTimeTrigger", required: false }] }], _disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
3235
|
+
}], propDecorators: { dtPicker: [{ type: i0.Input, args: [{ isSignal: true, alias: "nxtDateTimeTrigger", required: false }] }], dialogOrigin: [{ type: i0.Input, args: [{ isSignal: true, alias: "dialogOrigin", required: false }] }], _disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
3037
3236
|
|
|
3038
3237
|
/** @internal */
|
|
3039
3238
|
let uniqueId = 0;
|
|
@@ -3067,6 +3266,11 @@ class DialogConfig {
|
|
|
3067
3266
|
this.width = '';
|
|
3068
3267
|
/** Height of the dialog */
|
|
3069
3268
|
this.height = '';
|
|
3269
|
+
/**
|
|
3270
|
+
* The min-width of the overlay panel.
|
|
3271
|
+
* If a number is provided, pixel units are assumed.
|
|
3272
|
+
*/
|
|
3273
|
+
this.minWidth = '18.5em';
|
|
3070
3274
|
/**
|
|
3071
3275
|
* The max-width of the overlay panel.
|
|
3072
3276
|
* If a number is provided, pixel units are assumed.
|
|
@@ -3121,14 +3325,21 @@ class DialogRef {
|
|
|
3121
3325
|
}
|
|
3122
3326
|
close(dialogResult) {
|
|
3123
3327
|
this.result = dialogResult;
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3328
|
+
if (!this.container.destroyRef.destroyed) {
|
|
3329
|
+
outputToObservable(this.container.animationStateChanged)
|
|
3330
|
+
.pipe(filter((event) => event.phaseName === 'start'), take(1))
|
|
3331
|
+
.subscribe(() => {
|
|
3332
|
+
this._beforeClose$.next(dialogResult);
|
|
3333
|
+
this._beforeClose$.complete();
|
|
3334
|
+
this.overlayRef.detachBackdrop();
|
|
3335
|
+
});
|
|
3336
|
+
this.container.startExitAnimation();
|
|
3337
|
+
}
|
|
3338
|
+
else {
|
|
3127
3339
|
this._beforeClose$.next(dialogResult);
|
|
3128
3340
|
this._beforeClose$.complete();
|
|
3129
3341
|
this.overlayRef.detachBackdrop();
|
|
3130
|
-
}
|
|
3131
|
-
this.container.startExitAnimation();
|
|
3342
|
+
}
|
|
3132
3343
|
}
|
|
3133
3344
|
/**
|
|
3134
3345
|
* Gets an observable that emits when the overlay's backdrop has been clicked.
|
|
@@ -3220,45 +3431,78 @@ function extendObject(dest, ...sources) {
|
|
|
3220
3431
|
return dest;
|
|
3221
3432
|
}
|
|
3222
3433
|
|
|
3223
|
-
/** @internal */
|
|
3224
|
-
const zoomFadeIn = {
|
|
3225
|
-
opacity: 0,
|
|
3226
|
-
transform: 'translateX({{ x }}) translateY({{ y }}) scale({{scale}})'
|
|
3227
|
-
};
|
|
3228
|
-
/** @internal */
|
|
3229
|
-
const zoomFadeInFrom = {
|
|
3230
|
-
opacity: 0,
|
|
3231
|
-
transform: 'translateX({{ x }}) translateY({{ y }}) scale({{scale}})',
|
|
3232
|
-
transformOrigin: '{{ ox }} {{ oy }}'
|
|
3233
|
-
};
|
|
3234
3434
|
/** @internal */
|
|
3235
3435
|
class DialogContainerComponent extends BasePortalOutlet {
|
|
3436
|
+
static { this.animate = true; }
|
|
3236
3437
|
constructor() {
|
|
3237
|
-
super(
|
|
3438
|
+
super();
|
|
3238
3439
|
this.elementRef = inject(ElementRef);
|
|
3239
3440
|
this.focusTrapFactory = inject(ConfigurableFocusTrapFactory);
|
|
3240
3441
|
this.document = inject(DOCUMENT, { optional: true });
|
|
3241
|
-
this.
|
|
3442
|
+
this.destroyRef = inject(DestroyRef);
|
|
3443
|
+
this.portalOutlet = viewChild(CdkPortalOutlet, /* @ts-ignore */
|
|
3444
|
+
...(ngDevMode ? [{ debugName: "portalOutlet" }] : /* istanbul ignore next */ []));
|
|
3242
3445
|
/** The class that traps and manages focus within the dialog */
|
|
3243
|
-
this.focusTrap = signal(undefined,
|
|
3446
|
+
this.focusTrap = signal(undefined, /* @ts-ignore */
|
|
3447
|
+
...(ngDevMode ? [{ debugName: "focusTrap" }] : /* istanbul ignore next */ []));
|
|
3244
3448
|
/** ID of the element that should be considered as the dialog's label */
|
|
3245
|
-
this.ariaLabelledBy = signal(undefined,
|
|
3449
|
+
this.ariaLabelledBy = signal(undefined, /* @ts-ignore */
|
|
3450
|
+
...(ngDevMode ? [{ debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
|
|
3246
3451
|
/** Emits when an animation state changes */
|
|
3247
3452
|
this.animationStateChanged = output();
|
|
3248
|
-
this.isAnimating = signal(false,
|
|
3249
|
-
|
|
3453
|
+
this.isAnimating = signal(false, /* @ts-ignore */
|
|
3454
|
+
...(ngDevMode ? [{ debugName: "isAnimating" }] : /* istanbul ignore next */ []));
|
|
3455
|
+
this._config = signal(undefined, /* @ts-ignore */
|
|
3456
|
+
...(ngDevMode ? [{ debugName: "_config" }] : /* istanbul ignore next */ []));
|
|
3250
3457
|
this.config = this._config.asReadonly();
|
|
3251
|
-
this.state = signal('enter', ...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
3252
3458
|
// for animation purpose
|
|
3253
|
-
this.params =
|
|
3459
|
+
this.params = {
|
|
3254
3460
|
x: '0px',
|
|
3255
3461
|
y: '0px',
|
|
3256
3462
|
ox: '50%',
|
|
3257
3463
|
oy: '50%',
|
|
3258
3464
|
scale: 0
|
|
3259
|
-
}
|
|
3260
|
-
|
|
3261
|
-
|
|
3465
|
+
};
|
|
3466
|
+
afterNextRender(() => {
|
|
3467
|
+
const params = this.params;
|
|
3468
|
+
const target = this.elementRef.nativeElement;
|
|
3469
|
+
this.isAnimating.set(true);
|
|
3470
|
+
this.animationStateChanged.emit({
|
|
3471
|
+
phaseName: 'start',
|
|
3472
|
+
toState: 'enter'
|
|
3473
|
+
});
|
|
3474
|
+
if (target && DialogContainerComponent.animate) {
|
|
3475
|
+
target.animate([
|
|
3476
|
+
{
|
|
3477
|
+
opacity: 0,
|
|
3478
|
+
transform: `translateX(${params.x}) translateY(${params.y}) scale(${params.scale})`,
|
|
3479
|
+
transformOrigin: `${params.ox} ${params.oy}`
|
|
3480
|
+
},
|
|
3481
|
+
{
|
|
3482
|
+
opacity: 1,
|
|
3483
|
+
transform: 'translateX(0px) translateY(0px) scale(1)',
|
|
3484
|
+
transformOrigin: '50% 50%'
|
|
3485
|
+
}
|
|
3486
|
+
], {
|
|
3487
|
+
duration: 300,
|
|
3488
|
+
easing: 'cubic-bezier(0.35, 0, 0.25, 1)'
|
|
3489
|
+
}).addEventListener('finish', () => {
|
|
3490
|
+
target.animate([
|
|
3491
|
+
{ transform: 'scale(1)', offset: 0 },
|
|
3492
|
+
{ transform: 'scale(1.05)', offset: 0.3 },
|
|
3493
|
+
{ transform: 'scale(.95)', offset: 0.8 },
|
|
3494
|
+
{ transform: 'scale(1)', offset: 1.0 }
|
|
3495
|
+
], {
|
|
3496
|
+
duration: 150
|
|
3497
|
+
}).addEventListener('finish', () => {
|
|
3498
|
+
this.endEnterAnimation();
|
|
3499
|
+
});
|
|
3500
|
+
});
|
|
3501
|
+
}
|
|
3502
|
+
else {
|
|
3503
|
+
this.endEnterAnimation();
|
|
3504
|
+
}
|
|
3505
|
+
});
|
|
3262
3506
|
}
|
|
3263
3507
|
/**
|
|
3264
3508
|
* Attach a ComponentPortal as content to this dialog container.
|
|
@@ -3280,22 +3524,51 @@ class DialogContainerComponent extends BasePortalOutlet {
|
|
|
3280
3524
|
this.calculateZoomOrigin(config.event);
|
|
3281
3525
|
}
|
|
3282
3526
|
}
|
|
3283
|
-
|
|
3527
|
+
startExitAnimation() {
|
|
3528
|
+
const params = this.params;
|
|
3529
|
+
const target = this.elementRef.nativeElement;
|
|
3284
3530
|
this.isAnimating.set(true);
|
|
3285
|
-
this.animationStateChanged.emit(
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3531
|
+
this.animationStateChanged.emit({
|
|
3532
|
+
phaseName: 'start',
|
|
3533
|
+
toState: 'exit'
|
|
3534
|
+
});
|
|
3535
|
+
if (target && DialogContainerComponent.animate) {
|
|
3536
|
+
target.animate([
|
|
3537
|
+
{
|
|
3538
|
+
opacity: 1,
|
|
3539
|
+
transform: 'translateX(0px) translateY(0px) scale(1)'
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
opacity: 0,
|
|
3543
|
+
transform: `translateX(${params.x}) translateY(${params.y}) scale(${params.scale})`
|
|
3544
|
+
}
|
|
3545
|
+
], {
|
|
3546
|
+
duration: 200
|
|
3547
|
+
}).addEventListener('finish', () => {
|
|
3548
|
+
this.endExitAnimation();
|
|
3549
|
+
});
|
|
3290
3550
|
}
|
|
3291
|
-
else
|
|
3292
|
-
this.
|
|
3551
|
+
else {
|
|
3552
|
+
this.endExitAnimation();
|
|
3293
3553
|
}
|
|
3294
|
-
|
|
3554
|
+
}
|
|
3555
|
+
endEnterAnimation() {
|
|
3556
|
+
this.trapFocus();
|
|
3557
|
+
if (!this.destroyRef.destroyed)
|
|
3558
|
+
this.animationStateChanged.emit({
|
|
3559
|
+
phaseName: 'done',
|
|
3560
|
+
toState: 'enter'
|
|
3561
|
+
});
|
|
3295
3562
|
this.isAnimating.set(false);
|
|
3296
3563
|
}
|
|
3297
|
-
|
|
3298
|
-
this.
|
|
3564
|
+
endExitAnimation() {
|
|
3565
|
+
this.restoreFocus();
|
|
3566
|
+
if (!this.destroyRef.destroyed)
|
|
3567
|
+
this.animationStateChanged.emit({
|
|
3568
|
+
phaseName: 'done',
|
|
3569
|
+
toState: 'exit'
|
|
3570
|
+
});
|
|
3571
|
+
this.isAnimating.set(false);
|
|
3299
3572
|
}
|
|
3300
3573
|
/**
|
|
3301
3574
|
* Calculate origin used in the `zoomFadeInFrom()`
|
|
@@ -3310,13 +3583,13 @@ class DialogContainerComponent extends BasePortalOutlet {
|
|
|
3310
3583
|
const y = clientY - hh;
|
|
3311
3584
|
const ox = clientX / window.innerWidth;
|
|
3312
3585
|
const oy = clientY / window.innerHeight;
|
|
3313
|
-
this.params
|
|
3586
|
+
this.params = {
|
|
3314
3587
|
x: `${x}px`,
|
|
3315
3588
|
y: `${y}px`,
|
|
3316
3589
|
ox: `${ox * 100}%`,
|
|
3317
3590
|
oy: `${oy * 100}%`,
|
|
3318
3591
|
scale: 0
|
|
3319
|
-
}
|
|
3592
|
+
};
|
|
3320
3593
|
}
|
|
3321
3594
|
/**
|
|
3322
3595
|
* Save the focused element before dialog was open
|
|
@@ -3346,58 +3619,12 @@ class DialogContainerComponent extends BasePortalOutlet {
|
|
|
3346
3619
|
this.focusTrap.set(undefined);
|
|
3347
3620
|
}
|
|
3348
3621
|
}
|
|
3349
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3350
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
3351
|
-
trigger('slideModal', [
|
|
3352
|
-
transition('void => enter', [
|
|
3353
|
-
style(zoomFadeInFrom),
|
|
3354
|
-
animate('300ms cubic-bezier(0.35, 0, 0.25, 1)', style('*')),
|
|
3355
|
-
animate('150ms', keyframes([
|
|
3356
|
-
style({ transform: 'scale(1)', offset: 0 }),
|
|
3357
|
-
style({ transform: 'scale(1.05)', offset: 0.3 }),
|
|
3358
|
-
style({ transform: 'scale(.95)', offset: 0.8 }),
|
|
3359
|
-
style({ transform: 'scale(1)', offset: 1.0 })
|
|
3360
|
-
])),
|
|
3361
|
-
animateChild()
|
|
3362
|
-
], {
|
|
3363
|
-
params: {
|
|
3364
|
-
x: '0px',
|
|
3365
|
-
y: '0px',
|
|
3366
|
-
ox: '50%',
|
|
3367
|
-
oy: '50%',
|
|
3368
|
-
scale: 1
|
|
3369
|
-
}
|
|
3370
|
-
}),
|
|
3371
|
-
transition('enter => exit', [animateChild(), animate(200, style(zoomFadeIn))], { params: { x: '0px', y: '0px', ox: '50%', oy: '50%' } })
|
|
3372
|
-
])
|
|
3373
|
-
] }); }
|
|
3622
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DialogContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3623
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.6", type: DialogContainerComponent, isStandalone: true, selector: "nxt-dialog-container", outputs: { animationStateChanged: "animationStateChanged" }, host: { properties: { "class.nxt-dialog-container": "true", "attr.tabindex": "-1", "attr.aria-labelledby": "ariaLabelledBy()", "attr.id": "config()?.id", "attr.role": "config()?.role", "attr.aria-describedby": "config()?.ariaDescribedBy" } }, viewQueries: [{ propertyName: "portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet />\r\n", dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] }); }
|
|
3374
3624
|
}
|
|
3375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3625
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DialogContainerComponent, decorators: [{
|
|
3376
3626
|
type: Component,
|
|
3377
|
-
args: [{ selector: 'nxt-dialog-container',
|
|
3378
|
-
trigger('slideModal', [
|
|
3379
|
-
transition('void => enter', [
|
|
3380
|
-
style(zoomFadeInFrom),
|
|
3381
|
-
animate('300ms cubic-bezier(0.35, 0, 0.25, 1)', style('*')),
|
|
3382
|
-
animate('150ms', keyframes([
|
|
3383
|
-
style({ transform: 'scale(1)', offset: 0 }),
|
|
3384
|
-
style({ transform: 'scale(1.05)', offset: 0.3 }),
|
|
3385
|
-
style({ transform: 'scale(.95)', offset: 0.8 }),
|
|
3386
|
-
style({ transform: 'scale(1)', offset: 1.0 })
|
|
3387
|
-
])),
|
|
3388
|
-
animateChild()
|
|
3389
|
-
], {
|
|
3390
|
-
params: {
|
|
3391
|
-
x: '0px',
|
|
3392
|
-
y: '0px',
|
|
3393
|
-
ox: '50%',
|
|
3394
|
-
oy: '50%',
|
|
3395
|
-
scale: 1
|
|
3396
|
-
}
|
|
3397
|
-
}),
|
|
3398
|
-
transition('enter => exit', [animateChild(), animate(200, style(zoomFadeIn))], { params: { x: '0px', y: '0px', ox: '50%', oy: '50%' } })
|
|
3399
|
-
])
|
|
3400
|
-
], imports: [
|
|
3627
|
+
args: [{ selector: 'nxt-dialog-container', imports: [
|
|
3401
3628
|
CdkPortalOutlet
|
|
3402
3629
|
], host: {
|
|
3403
3630
|
'[class.nxt-dialog-container]': 'true',
|
|
@@ -3405,12 +3632,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
3405
3632
|
'[attr.aria-labelledby]': 'ariaLabelledBy()',
|
|
3406
3633
|
'[attr.id]': 'config()?.id',
|
|
3407
3634
|
'[attr.role]': 'config()?.role',
|
|
3408
|
-
'[attr.aria-describedby]': 'config()?.ariaDescribedBy'
|
|
3409
|
-
'[@slideModal]': 'dialogContainerAnimation()',
|
|
3410
|
-
'(@slideModal.start)': 'onAnimationStart($event)',
|
|
3411
|
-
'(@slideModal.done)': 'onAnimationDone($event)'
|
|
3635
|
+
'[attr.aria-describedby]': 'config()?.ariaDescribedBy'
|
|
3412
3636
|
}, template: "<ng-template cdkPortalOutlet />\r\n" }]
|
|
3413
|
-
}], propDecorators: { portalOutlet: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkPortalOutlet), { isSignal: true }] }], animationStateChanged: [{ type: i0.Output, args: ["animationStateChanged"] }] } });
|
|
3637
|
+
}], ctorParameters: () => [], propDecorators: { portalOutlet: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkPortalOutlet), { isSignal: true }] }], animationStateChanged: [{ type: i0.Output, args: ["animationStateChanged"] }] } });
|
|
3414
3638
|
|
|
3415
3639
|
/** @internal */
|
|
3416
3640
|
const NXT_DIALOG_DATA = new InjectionToken('NXT_DIALOG_DATA');
|
|
@@ -3604,10 +3828,10 @@ class DialogService {
|
|
|
3604
3828
|
}
|
|
3605
3829
|
}
|
|
3606
3830
|
}
|
|
3607
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3608
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3831
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3832
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DialogService, providedIn: 'root' }); }
|
|
3609
3833
|
}
|
|
3610
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3834
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DialogService, decorators: [{
|
|
3611
3835
|
type: Injectable,
|
|
3612
3836
|
args: [{
|
|
3613
3837
|
providedIn: 'root'
|
|
@@ -3637,19 +3861,22 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3637
3861
|
this.overlay = inject(Overlay);
|
|
3638
3862
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
3639
3863
|
this.dialogService = inject(DialogService);
|
|
3640
|
-
this.
|
|
3864
|
+
this.injector = inject(Injector);
|
|
3865
|
+
this.destroyRef = inject(DestroyRef);
|
|
3641
3866
|
this.defaultScrollStrategy = inject(NXT_DTPICKER_SCROLL_STRATEGY, { optional: true }) ?? (() => this.overlay.scrollStrategies.block());
|
|
3642
3867
|
this.document = inject(DOCUMENT, { optional: true });
|
|
3643
3868
|
/** Custom class for the picker backdrop */
|
|
3644
|
-
this.backdropClass = input(
|
|
3869
|
+
this.backdropClass = input(/* @ts-ignore */
|
|
3870
|
+
...(ngDevMode ? [undefined, { debugName: "backdropClass" }] : /* istanbul ignore next */ []));
|
|
3645
3871
|
/** Custom class for the picker overlay pane */
|
|
3646
|
-
this.panelClass = input(
|
|
3872
|
+
this.panelClass = input(/* @ts-ignore */
|
|
3873
|
+
...(ngDevMode ? [undefined, { debugName: "panelClass" }] : /* istanbul ignore next */ []));
|
|
3647
3874
|
/**
|
|
3648
3875
|
* The date to show when picker opens
|
|
3649
3876
|
*
|
|
3650
3877
|
* Defaults to selected date (if available) or current date.
|
|
3651
3878
|
*/
|
|
3652
|
-
this._startAt = input(undefined, { ...(ngDevMode ? { debugName: "_startAt" } : {}),
|
|
3879
|
+
this._startAt = input(undefined, { ...(ngDevMode ? { debugName: "_startAt" } : /* istanbul ignore next */ {}),
|
|
3653
3880
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
3654
3881
|
alias: 'startAt',
|
|
3655
3882
|
transform: date => this.getValidDate(this.dateTimeAdapter.deserialize(date)) });
|
|
@@ -3674,7 +3901,8 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3674
3901
|
}
|
|
3675
3902
|
}
|
|
3676
3903
|
return;
|
|
3677
|
-
},
|
|
3904
|
+
}, /* @ts-ignore */
|
|
3905
|
+
...(ngDevMode ? [{ debugName: "startAt" }] : /* istanbul ignore next */ []));
|
|
3678
3906
|
/**
|
|
3679
3907
|
* Set the type of the dateTime picker
|
|
3680
3908
|
*
|
|
@@ -3682,14 +3910,15 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3682
3910
|
* - `'calendar'` - show only calendar
|
|
3683
3911
|
* - `'timer'` - show only timer
|
|
3684
3912
|
*/
|
|
3685
|
-
this.pickerType = input('both',
|
|
3913
|
+
this.pickerType = input('both', /* @ts-ignore */
|
|
3914
|
+
...(ngDevMode ? [{ debugName: "pickerType" }] : /* istanbul ignore next */ []));
|
|
3686
3915
|
/**
|
|
3687
3916
|
* The style the picker would open as
|
|
3688
3917
|
*
|
|
3689
3918
|
* - `'popup'` - display picker attached to the trigger element
|
|
3690
3919
|
* - `'dialog'` - display picker as a dialog
|
|
3691
3920
|
*/
|
|
3692
|
-
this.pickerMode = input('popup', { ...(ngDevMode ? { debugName: "pickerMode" } : {}), transform: mode => {
|
|
3921
|
+
this.pickerMode = input('popup', { ...(ngDevMode ? { debugName: "pickerMode" } : /* istanbul ignore next */ {}), transform: mode => {
|
|
3693
3922
|
if (mode === 'popup') {
|
|
3694
3923
|
return mode;
|
|
3695
3924
|
}
|
|
@@ -3699,17 +3928,19 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3699
3928
|
} });
|
|
3700
3929
|
/** Whether the date time picker should be disabled */
|
|
3701
3930
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
3702
|
-
this._disabled = input(undefined, { ...(ngDevMode ? { debugName: "_disabled" } : {}), alias: 'disabled' });
|
|
3703
|
-
this.disabled = linkedSignal({ ...(ngDevMode ? { debugName: "disabled" } : {}), source: () => this._disabled(),
|
|
3931
|
+
this._disabled = input(undefined, { ...(ngDevMode ? { debugName: "_disabled" } : /* istanbul ignore next */ {}), alias: 'disabled' });
|
|
3932
|
+
this.disabled = linkedSignal({ ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), source: () => this._disabled(),
|
|
3704
3933
|
computation: value => value ?? !!this.dtInput()?.disabled() });
|
|
3705
3934
|
/** Whether the calendar is open */
|
|
3706
3935
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
3707
|
-
this._isOpen = input(false, { ...(ngDevMode ? { debugName: "_isOpen" } : {}), alias: 'isOpen' });
|
|
3708
|
-
this.isOpen = signal(false,
|
|
3936
|
+
this._isOpen = input(false, { ...(ngDevMode ? { debugName: "_isOpen" } : /* istanbul ignore next */ {}), alias: 'isOpen' });
|
|
3937
|
+
this.isOpen = signal(false, /* @ts-ignore */
|
|
3938
|
+
...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
3709
3939
|
/**
|
|
3710
3940
|
* The scroll strategy when the picker is open (see [CDK documentation](https://material.angular.io/cdk/overlay/overview#scroll-strategies))
|
|
3711
3941
|
*/
|
|
3712
|
-
this.scrollStrategy = input(
|
|
3942
|
+
this.scrollStrategy = input(/* @ts-ignore */
|
|
3943
|
+
...(ngDevMode ? [undefined, { debugName: "scrollStrategy" }] : /* istanbul ignore next */ []));
|
|
3713
3944
|
/**
|
|
3714
3945
|
* Callback when the picker is opened
|
|
3715
3946
|
*/
|
|
@@ -3744,19 +3975,29 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3744
3975
|
* Emits when the date time picker is disabled
|
|
3745
3976
|
*/
|
|
3746
3977
|
this.disabledChange = output();
|
|
3747
|
-
this._dtInput = signal(undefined,
|
|
3978
|
+
this._dtInput = signal(undefined, /* @ts-ignore */
|
|
3979
|
+
...(ngDevMode ? [{ debugName: "_dtInput" }] : /* istanbul ignore next */ []));
|
|
3748
3980
|
this.dtInput = this._dtInput.asReadonly();
|
|
3749
|
-
this.valueChange = computed(() => this._dtInput()?.valueChange,
|
|
3750
|
-
|
|
3751
|
-
this.
|
|
3981
|
+
this.valueChange = computed(() => this._dtInput()?.valueChange, /* @ts-ignore */
|
|
3982
|
+
...(ngDevMode ? [{ debugName: "valueChange" }] : /* istanbul ignore next */ []));
|
|
3983
|
+
this.selected = signal(undefined, /* @ts-ignore */
|
|
3984
|
+
...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
3985
|
+
this.selecteds = signal(new Array(), /* @ts-ignore */
|
|
3986
|
+
...(ngDevMode ? [{ debugName: "selecteds" }] : /* istanbul ignore next */ []));
|
|
3752
3987
|
/** The minimum selectable date */
|
|
3753
|
-
this.min = computed(() => this.dtInput()?.min(),
|
|
3988
|
+
this.min = computed(() => this.dtInput()?.min(), /* @ts-ignore */
|
|
3989
|
+
...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
|
|
3754
3990
|
/** The maximum selectable date */
|
|
3755
|
-
this.max = computed(() => this.dtInput()?.max(),
|
|
3756
|
-
|
|
3757
|
-
this.
|
|
3758
|
-
|
|
3759
|
-
this.
|
|
3991
|
+
this.max = computed(() => this.dtInput()?.max(), /* @ts-ignore */
|
|
3992
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
3993
|
+
this.dateTimeFilter = computed(() => this.dtInput()?.dateTimeFilter(), /* @ts-ignore */
|
|
3994
|
+
...(ngDevMode ? [{ debugName: "dateTimeFilter" }] : /* istanbul ignore next */ []));
|
|
3995
|
+
this.selectMode = computed(() => this.dtInput()?.selectMode(), /* @ts-ignore */
|
|
3996
|
+
...(ngDevMode ? [{ debugName: "selectMode" }] : /* istanbul ignore next */ []));
|
|
3997
|
+
this.isInSingleMode = computed(() => !!this.dtInput()?.isInSingleMode(), /* @ts-ignore */
|
|
3998
|
+
...(ngDevMode ? [{ debugName: "isInSingleMode" }] : /* istanbul ignore next */ []));
|
|
3999
|
+
this.isInRangeMode = computed(() => !!this.dtInput()?.isInRangeMode(), /* @ts-ignore */
|
|
4000
|
+
...(ngDevMode ? [{ debugName: "isInRangeMode" }] : /* istanbul ignore next */ []));
|
|
3760
4001
|
effect((registerCleanup) => {
|
|
3761
4002
|
const vc = this.valueChange();
|
|
3762
4003
|
if (vc) {
|
|
@@ -3816,7 +4057,7 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3816
4057
|
}
|
|
3817
4058
|
this._dtInput.set(inputDirective);
|
|
3818
4059
|
}
|
|
3819
|
-
open() {
|
|
4060
|
+
open(event) {
|
|
3820
4061
|
if (this.isOpen() || this.disabled()) {
|
|
3821
4062
|
return;
|
|
3822
4063
|
}
|
|
@@ -3839,7 +4080,7 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3839
4080
|
this.selected.set(this.dateTimeAdapter.createDate(this.dateTimeAdapter.getYear(this.selected()), this.dateTimeAdapter.getMonth(this.selected()), this.dateTimeAdapter.getDate(this.selected()), this.dateTimeAdapter.getHours(this._startAt()), this.dateTimeAdapter.getMinutes(this._startAt()), this.dateTimeAdapter.getSeconds(this._startAt())));
|
|
3840
4081
|
}
|
|
3841
4082
|
if (this.pickerMode() === 'dialog')
|
|
3842
|
-
this.openAsDialog();
|
|
4083
|
+
this.openAsDialog(event);
|
|
3843
4084
|
else
|
|
3844
4085
|
this.openAsPopup();
|
|
3845
4086
|
if (this.pickerContainer)
|
|
@@ -3849,8 +4090,8 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3849
4090
|
this.close();
|
|
3850
4091
|
});
|
|
3851
4092
|
// Listen to picker container's confirmSelectedStream
|
|
3852
|
-
this.confirmSelectedStreamSub = this.pickerContainer?.confirmSelectedStream.subscribe((
|
|
3853
|
-
this.confirmSelect(
|
|
4093
|
+
this.confirmSelectedStreamSub = this.pickerContainer?.confirmSelectedStream.subscribe((e) => {
|
|
4094
|
+
this.confirmSelect(e);
|
|
3854
4095
|
});
|
|
3855
4096
|
}
|
|
3856
4097
|
/**
|
|
@@ -3958,10 +4199,11 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3958
4199
|
/**
|
|
3959
4200
|
* Open the picker as a dialog
|
|
3960
4201
|
*/
|
|
3961
|
-
openAsDialog() {
|
|
4202
|
+
openAsDialog(event) {
|
|
3962
4203
|
const backdropClass = this.backdropClass();
|
|
3963
4204
|
const panelClass = this.panelClass();
|
|
3964
4205
|
this.dialogRef = this.dialogService.open(DateTimeContainerComponent, {
|
|
4206
|
+
event,
|
|
3965
4207
|
autoFocus: false,
|
|
3966
4208
|
backdropClass: [
|
|
3967
4209
|
'cdk-overlay-dark-backdrop',
|
|
@@ -3996,12 +4238,12 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
3996
4238
|
const componentRef = this.popupRef?.attach(this.pickerContainerPortal);
|
|
3997
4239
|
this.pickerContainer = componentRef?.instance;
|
|
3998
4240
|
// Update the position once the calendar has rendered.
|
|
3999
|
-
this.
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4241
|
+
if (!this.destroyRef.destroyed)
|
|
4242
|
+
afterNextRender(() => {
|
|
4243
|
+
this.popupRef?.updatePosition();
|
|
4244
|
+
}, {
|
|
4245
|
+
injector: this.injector
|
|
4246
|
+
});
|
|
4005
4247
|
// emit open stream
|
|
4006
4248
|
this.pickerOpenedStreamSub = this.pickerContainer?.pickerOpenedStream
|
|
4007
4249
|
.pipe(take(1))
|
|
@@ -4089,67 +4331,17 @@ class DateTimeComponent extends DateTimeDirective {
|
|
|
4089
4331
|
]);
|
|
4090
4332
|
return;
|
|
4091
4333
|
}
|
|
4092
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4093
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
4334
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4335
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.6", type: DateTimeComponent, isStandalone: true, selector: "nxt-date-time", inputs: { backdropClass: { classPropertyName: "backdropClass", publicName: "backdropClass", isSignal: true, isRequired: false, transformFunction: null }, panelClass: { classPropertyName: "panelClass", publicName: "panelClass", isSignal: true, isRequired: false, transformFunction: null }, _startAt: { classPropertyName: "_startAt", publicName: "startAt", isSignal: true, isRequired: false, transformFunction: null }, pickerType: { classPropertyName: "pickerType", publicName: "pickerType", isSignal: true, isRequired: false, transformFunction: null }, pickerMode: { classPropertyName: "pickerMode", publicName: "pickerMode", isSignal: true, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, _isOpen: { classPropertyName: "_isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { afterPickerOpened: "open", afterPickerClosed: "close", yearSelected: "yearSelected", monthSelected: "monthSelected", isOpenChange: "isOpenChange", confirmSelectedChange: "confirmSelectedChange", disabledChange: "disabledChange" }, usesInheritance: true, ngImport: i0, template: "\r\n", styles: [""] }); }
|
|
4094
4336
|
}
|
|
4095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: DateTimeComponent, decorators: [{
|
|
4096
4338
|
type: Component,
|
|
4097
4339
|
args: [{ selector: 'nxt-date-time', preserveWhitespaces: false, template: "\r\n" }]
|
|
4098
4340
|
}], ctorParameters: () => [], propDecorators: { backdropClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropClass", required: false }] }], panelClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "panelClass", required: false }] }], _startAt: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAt", required: false }] }], pickerType: [{ type: i0.Input, args: [{ isSignal: true, alias: "pickerType", required: false }] }], pickerMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "pickerMode", required: false }] }], _disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], _isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], scrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollStrategy", required: false }] }], afterPickerOpened: [{ type: i0.Output, args: ["open"] }], afterPickerClosed: [{ type: i0.Output, args: ["close"] }], yearSelected: [{ type: i0.Output, args: ["yearSelected"] }], monthSelected: [{ type: i0.Output, args: ["monthSelected"] }], isOpenChange: [{ type: i0.Output, args: ["isOpenChange"] }], confirmSelectedChange: [{ type: i0.Output, args: ["confirmSelectedChange"] }], disabledChange: [{ type: i0.Output, args: ["disabledChange"] }] } });
|
|
4099
4341
|
|
|
4100
|
-
/** @deprecated use standalone imports */
|
|
4101
|
-
class DateTimeModule {
|
|
4102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DateTimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
4103
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: DateTimeModule, imports: [CalendarComponent,
|
|
4104
|
-
TimerComponent,
|
|
4105
|
-
DateTimeTriggerDirective,
|
|
4106
|
-
DateTimeInputDirective,
|
|
4107
|
-
DateTimeComponent,
|
|
4108
|
-
DateTimeInlineComponent,
|
|
4109
|
-
MultiYearViewComponent,
|
|
4110
|
-
YearViewComponent,
|
|
4111
|
-
MonthViewComponent], exports: [CalendarComponent,
|
|
4112
|
-
TimerComponent,
|
|
4113
|
-
DateTimeTriggerDirective,
|
|
4114
|
-
DateTimeInputDirective,
|
|
4115
|
-
DateTimeComponent,
|
|
4116
|
-
DateTimeInlineComponent,
|
|
4117
|
-
MultiYearViewComponent,
|
|
4118
|
-
YearViewComponent,
|
|
4119
|
-
MonthViewComponent] }); }
|
|
4120
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DateTimeModule }); }
|
|
4121
|
-
}
|
|
4122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DateTimeModule, decorators: [{
|
|
4123
|
-
type: NgModule,
|
|
4124
|
-
args: [{
|
|
4125
|
-
imports: [
|
|
4126
|
-
CalendarComponent,
|
|
4127
|
-
TimerComponent,
|
|
4128
|
-
DateTimeTriggerDirective,
|
|
4129
|
-
DateTimeInputDirective,
|
|
4130
|
-
DateTimeComponent,
|
|
4131
|
-
DateTimeInlineComponent,
|
|
4132
|
-
MultiYearViewComponent,
|
|
4133
|
-
YearViewComponent,
|
|
4134
|
-
MonthViewComponent
|
|
4135
|
-
],
|
|
4136
|
-
exports: [
|
|
4137
|
-
CalendarComponent,
|
|
4138
|
-
TimerComponent,
|
|
4139
|
-
DateTimeTriggerDirective,
|
|
4140
|
-
DateTimeInputDirective,
|
|
4141
|
-
DateTimeComponent,
|
|
4142
|
-
DateTimeInlineComponent,
|
|
4143
|
-
MultiYearViewComponent,
|
|
4144
|
-
YearViewComponent,
|
|
4145
|
-
MonthViewComponent
|
|
4146
|
-
]
|
|
4147
|
-
}]
|
|
4148
|
-
}] });
|
|
4149
|
-
|
|
4150
4342
|
/**
|
|
4151
4343
|
* Generated bundle index. Do not edit.
|
|
4152
4344
|
*/
|
|
4153
4345
|
|
|
4154
|
-
export { CalendarComponent, DateTimeAdapter, DateTimeComponent, DateTimeInlineComponent, DateTimeInputDirective, DateTimeIntl,
|
|
4346
|
+
export { CalendarComponent, DateTimeAdapter, DateTimeComponent, DateTimeInlineComponent, DateTimeInputDirective, DateTimeIntl, DateTimeTriggerDirective, MonthViewComponent, MultiYearViewComponent, NXT_DATE_TIME_FORMATS, TimerComponent, YearViewComponent };
|
|
4155
4347
|
//# sourceMappingURL=nxt-pick-datetime.mjs.map
|