@dereekb/dbx-form 13.4.1 → 13.5.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/fesm2022/dereekb-dbx-form-calendar.mjs +310 -98
- package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-mapbox.mjs +33 -21
- package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-quiz.mjs +81 -64
- package/fesm2022/dereekb-dbx-form-quiz.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form.mjs +613 -400
- package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
- package/lib/extension/_extension.scss +0 -13
- package/lib/extension/calendar/_calendar.scss +0 -19
- package/lib/form/_form.scss +0 -19
- package/lib/formly/_formly.scss +0 -19
- package/lib/formly/field/_field.scss +0 -6
- package/lib/formly/field/checklist/_checklist.scss +0 -24
- package/lib/formly/field/component/_component.scss +0 -19
- package/lib/formly/field/selection/_selection.scss +0 -4
- package/lib/formly/field/selection/list/_list.scss +0 -19
- package/lib/formly/field/selection/pickable/_pickable.scss +0 -19
- package/lib/formly/field/selection/searchable/_searchable.scss +0 -19
- package/lib/formly/field/selection/sourceselect/_sourceselect.scss +0 -19
- package/lib/formly/field/texteditor/_texteditor.scss +10 -40
- package/lib/formly/field/value/_value.scss +0 -6
- package/lib/formly/field/value/array/_array.scss +3 -32
- package/lib/formly/field/value/boolean/_boolean.scss +0 -19
- package/lib/formly/field/value/date/_date.scss +1 -24
- package/lib/formly/field/value/number/_number.scss +0 -18
- package/lib/formly/field/value/phone/_phone.scss +4 -35
- package/lib/formly/field/value/text/_text.scss +0 -19
- package/lib/formly/field/wrapper/_wrapper.scss +0 -19
- package/lib/formly/form/_form.scss +0 -19
- package/lib/layout/_layout.scss +0 -19
- package/lib/style/_all-typography.scss +0 -13
- package/lib/style/_theming.scss +1 -200
- package/package.json +16 -16
- package/types/dereekb-dbx-form-calendar.d.ts +208 -0
- package/types/dereekb-dbx-form-mapbox.d.ts +12 -0
- package/types/dereekb-dbx-form-quiz.d.ts +17 -0
- package/types/dereekb-dbx-form.d.ts +401 -91
|
@@ -15,8 +15,7 @@ import * as i1$1 from '@dereekb/dbx-core';
|
|
|
15
15
|
import { TimezoneAbbreviationPipe, switchMapDbxInjectionComponentConfig, DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
16
16
|
import { toSignal, toObservable } from '@angular/core/rxjs-interop';
|
|
17
17
|
import { MatDialog } from '@angular/material/dialog';
|
|
18
|
-
import
|
|
19
|
-
import { CalendarModule } from 'angular-calendar';
|
|
18
|
+
import { CalendarMonthViewComponent, CalendarDatePipe } from 'angular-calendar';
|
|
20
19
|
import { DbxCalendarStore, prepareAndSortCalendarEvents, DbxCalendarBaseComponent } from '@dereekb/dbx-web/calendar';
|
|
21
20
|
import * as i2 from '@angular/forms';
|
|
22
21
|
import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -27,9 +26,15 @@ import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
|
27
26
|
import { NgClass } from '@angular/common';
|
|
28
27
|
import * as i1$4 from '@angular/material/icon';
|
|
29
28
|
import { MatIconModule } from '@angular/material/icon';
|
|
30
|
-
import * as i1$
|
|
29
|
+
import * as i1$5 from '@ngx-formly/core';
|
|
31
30
|
import { FormlyModule } from '@ngx-formly/core';
|
|
32
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Creates a Formly field configuration for a date schedule range picker with calendar-based selection.
|
|
34
|
+
*
|
|
35
|
+
* @param config - Optional schedule range field configuration overrides
|
|
36
|
+
* @returns A validated Formly field configuration for date schedule range selection
|
|
37
|
+
*/
|
|
33
38
|
function dateScheduleRangeField(config = {}) {
|
|
34
39
|
const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, outputTimezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig, customDetailsConfig } = config;
|
|
35
40
|
const fieldConfig = {
|
|
@@ -80,6 +85,9 @@ const defaultCalendarScheduleSelectionCellContentFactory = (day) => {
|
|
|
80
85
|
icon = 'check_box_outline_blank';
|
|
81
86
|
text = 'Add';
|
|
82
87
|
break;
|
|
88
|
+
default:
|
|
89
|
+
// meta.state is undefined when no metadata is attached to the day cell
|
|
90
|
+
break;
|
|
83
91
|
}
|
|
84
92
|
const result = {
|
|
85
93
|
icon,
|
|
@@ -88,6 +96,12 @@ const defaultCalendarScheduleSelectionCellContentFactory = (day) => {
|
|
|
88
96
|
return result;
|
|
89
97
|
};
|
|
90
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Creates the default initial state for the calendar schedule selection store,
|
|
101
|
+
* using the current system timezone and all days of the week enabled.
|
|
102
|
+
*
|
|
103
|
+
* @returns A fresh CalendarScheduleSelectionState with default values
|
|
104
|
+
*/
|
|
91
105
|
function initialCalendarScheduleSelectionState() {
|
|
92
106
|
const defaultScheduleDays = new Set([DateCellScheduleDayCode.WEEKDAY, DateCellScheduleDayCode.WEEKEND]);
|
|
93
107
|
const allowedDaysOfWeek = expandDateCellScheduleDayCodesToDayOfWeekSet(defaultScheduleDays);
|
|
@@ -134,18 +148,42 @@ function calendarScheduleMinAndMaxDateRangeRelativeToFilter(x) {
|
|
|
134
148
|
}
|
|
135
149
|
return calendarScheduleMinAndMaxDateRange(input);
|
|
136
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Computes the effective min and max date range by combining the filter and the explicit minMaxDateRange constraints.
|
|
153
|
+
*
|
|
154
|
+
* @param x - State containing filter and minMaxDateRange to compute from
|
|
155
|
+
* @returns A partial date range with the effective start and end boundaries
|
|
156
|
+
*/
|
|
137
157
|
function calendarScheduleMinAndMaxDateRange(x) {
|
|
138
158
|
return {
|
|
139
159
|
start: calendarScheduleMinDate(x) || undefined,
|
|
140
160
|
end: calendarScheduleMaxDate(x) || undefined
|
|
141
161
|
};
|
|
142
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Returns the effective minimum date by taking the latest start date between the filter and minMaxDateRange.
|
|
165
|
+
*
|
|
166
|
+
* @param x - State containing filter and minMaxDateRange
|
|
167
|
+
* @returns The latest start date, or undefined if none
|
|
168
|
+
*/
|
|
143
169
|
function calendarScheduleMinDate(x) {
|
|
144
170
|
return findMaxDate([x.filter?.start, x.minMaxDateRange?.start]);
|
|
145
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Returns the effective maximum date by taking the earliest end date between the filter and minMaxDateRange.
|
|
174
|
+
*
|
|
175
|
+
* @param x - State containing filter and minMaxDateRange
|
|
176
|
+
* @returns The earliest end date, or undefined if none
|
|
177
|
+
*/
|
|
146
178
|
function calendarScheduleMaxDate(x) {
|
|
147
179
|
return findMinDate([x.filter?.end, x.minMaxDateRange?.end]);
|
|
148
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Returns whether the filter's start date is being used as the effective start for the selection result computation.
|
|
183
|
+
*
|
|
184
|
+
* @param x - State containing filter and computeSelectionResultRelativeToFilter
|
|
185
|
+
* @returns True if the filter start is being used for the selection result
|
|
186
|
+
*/
|
|
149
187
|
function calendarScheduleStartBeingUsedFromFilter(x) {
|
|
150
188
|
return x.computeSelectionResultRelativeToFilter && x.filter?.start != null; // may be using either
|
|
151
189
|
}
|
|
@@ -165,7 +203,7 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
165
203
|
minMaxDateRange$ = this.state$.pipe(map(calendarScheduleMinAndMaxDateRange), distinctUntilChanged(isSameDateRange), shareReplay(1));
|
|
166
204
|
minDate$ = this.minMaxDateRange$.pipe(map((x) => x?.start), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
167
205
|
maxDate$ = this.minMaxDateRange$.pipe(map((x) => x?.end), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
168
|
-
hasConfiguredMinMaxRange$ = this.minMaxDateRange$.pipe(map((x) => x
|
|
206
|
+
hasConfiguredMinMaxRange$ = this.minMaxDateRange$.pipe(map((x) => x?.start != null && x.end != null), distinctUntilChanged(), shareReplay(1));
|
|
169
207
|
inputStart$ = this.state$.pipe(map((x) => x.inputStart), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
170
208
|
inputEnd$ = this.state$.pipe(map((x) => x.inputEnd), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
171
209
|
currentInputRange$ = this.state$.pipe(map(({ inputStart, inputEnd }) => ({ start: inputStart, end: inputEnd })), distinctUntilChanged((a, b) => isSameDateRange(a, b)), map((x) => ({ inputStart: x.start, inputEnd: x.end })), map((x) => {
|
|
@@ -273,12 +311,19 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
273
311
|
* Should typically not be used by the user directly with the intention of the parent synchronizing to this state.
|
|
274
312
|
*/
|
|
275
313
|
setViewReadonlyState = this.updater((state, isViewReadonly) => ({ ...state, isViewReadonly }));
|
|
276
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
277
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
314
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
315
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStore });
|
|
278
316
|
}
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
317
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStore, decorators: [{
|
|
280
318
|
type: Injectable
|
|
281
319
|
}], ctorParameters: () => [] });
|
|
320
|
+
/**
|
|
321
|
+
* Updates the state with an initial selection (all or none) and applies it when no dates are currently toggled.
|
|
322
|
+
*
|
|
323
|
+
* @param state - The current selection state
|
|
324
|
+
* @param initialSelectionState - The initial selection mode ('all' or 'none')
|
|
325
|
+
* @returns The updated selection state
|
|
326
|
+
*/
|
|
282
327
|
function updateStateWithInitialSelectionState(state, initialSelectionState) {
|
|
283
328
|
const { toggledIndexes } = state;
|
|
284
329
|
if (toggledIndexes.size === 0 && initialSelectionState === 'all') {
|
|
@@ -286,6 +331,13 @@ function updateStateWithInitialSelectionState(state, initialSelectionState) {
|
|
|
286
331
|
}
|
|
287
332
|
return { ...state, initialSelectionState };
|
|
288
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Updates the computeSelectionResultRelativeToFilter flag and recalculates the state if the value changed.
|
|
336
|
+
*
|
|
337
|
+
* @param currentState - The current selection state
|
|
338
|
+
* @param computeSelectionResultRelativeToFilter - Whether to compute results relative to the filter
|
|
339
|
+
* @returns The updated selection state
|
|
340
|
+
*/
|
|
289
341
|
function updateStateWithComputeSelectionResultRelativeToFilter(currentState, computeSelectionResultRelativeToFilter) {
|
|
290
342
|
let state = { ...currentState, computeSelectionResultRelativeToFilter };
|
|
291
343
|
if (Boolean(currentState.computeSelectionResultRelativeToFilter) !== Boolean(computeSelectionResultRelativeToFilter)) {
|
|
@@ -293,6 +345,13 @@ function updateStateWithComputeSelectionResultRelativeToFilter(currentState, com
|
|
|
293
345
|
}
|
|
294
346
|
return state;
|
|
295
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Updates the state with date exclusions, converting input dates/ranges to cell indexes and reapplying the filter.
|
|
350
|
+
*
|
|
351
|
+
* @param state - The current selection state
|
|
352
|
+
* @param inputExclusions - Dates, date ranges, or cell indexes to exclude
|
|
353
|
+
* @returns The updated selection state with exclusions applied
|
|
354
|
+
*/
|
|
296
355
|
function updateStateWithExclusions(state, inputExclusions) {
|
|
297
356
|
let computedExclusions;
|
|
298
357
|
if (inputExclusions) {
|
|
@@ -303,6 +362,13 @@ function updateStateWithExclusions(state, inputExclusions) {
|
|
|
303
362
|
state = { ...state, inputExclusions, computedExclusions };
|
|
304
363
|
return updateStateWithFilter(state, state.filter);
|
|
305
364
|
}
|
|
365
|
+
/**
|
|
366
|
+
* Sets the min/max date range constraint on the state, normalizing start to startOfDay and end to endOfDay.
|
|
367
|
+
*
|
|
368
|
+
* @param state - The current selection state
|
|
369
|
+
* @param minMaxDateRange - The min/max boundary dates to enforce
|
|
370
|
+
* @returns The updated selection state with the boundary applied
|
|
371
|
+
*/
|
|
306
372
|
function updateStateWithMinMaxDateRange(state, minMaxDateRange) {
|
|
307
373
|
if (minMaxDateRange != null && !isInfiniteDateRange(minMaxDateRange)) {
|
|
308
374
|
state = {
|
|
@@ -318,6 +384,23 @@ function updateStateWithMinMaxDateRange(state, minMaxDateRange) {
|
|
|
318
384
|
}
|
|
319
385
|
return updateStateWithFilter(state, state.filter);
|
|
320
386
|
}
|
|
387
|
+
/**
|
|
388
|
+
* Applies a date cell schedule filter to the selection state, computing the enabled day function
|
|
389
|
+
* from the filter, exclusions, and min/max date range constraints.
|
|
390
|
+
*
|
|
391
|
+
* @param currentState - The current selection state
|
|
392
|
+
* @param inputFilter - The filter configuration to apply
|
|
393
|
+
* @returns The updated selection state with the filter applied
|
|
394
|
+
*/
|
|
395
|
+
/**
|
|
396
|
+
* Applies a date cell schedule filter to the selection state, computing the enabled day function
|
|
397
|
+
* from the filter, exclusions, and min/max date range constraints.
|
|
398
|
+
*
|
|
399
|
+
* @param currentState - The current selection state
|
|
400
|
+
* @param inputFilter - The filter configuration to apply
|
|
401
|
+
* @returns The updated selection state with the filter applied
|
|
402
|
+
*/
|
|
403
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
321
404
|
function updateStateWithFilter(currentState, inputFilter) {
|
|
322
405
|
const { computedExclusions: exclusions, minMaxDateRange, systemTimezone } = currentState;
|
|
323
406
|
let isEnabledFilterDay = () => true;
|
|
@@ -412,7 +495,7 @@ function updateStateWithFilter(currentState, inputFilter) {
|
|
|
412
495
|
}
|
|
413
496
|
let nextState = { ...currentState, filter, isEnabledFilterDay };
|
|
414
497
|
// For the same reason as above, use the filter's start date as the relative start if applicable.
|
|
415
|
-
if (filter
|
|
498
|
+
if (filter?.start) {
|
|
416
499
|
let startForSystemTimezone = filter.start;
|
|
417
500
|
if (filter.timezone) {
|
|
418
501
|
const timezoneNormal = dateTimezoneUtcNormal(filter.timezone);
|
|
@@ -433,6 +516,13 @@ function updateStateWithFilter(currentState, inputFilter) {
|
|
|
433
516
|
}
|
|
434
517
|
return nextState;
|
|
435
518
|
}
|
|
519
|
+
/**
|
|
520
|
+
* Updates the output timezone and transforms the current selection value to reflect the new timezone.
|
|
521
|
+
*
|
|
522
|
+
* @param state - The current selection state
|
|
523
|
+
* @param timezone - The target timezone string
|
|
524
|
+
* @returns The updated selection state with timezone-adjusted values
|
|
525
|
+
*/
|
|
436
526
|
function updateStateWithTimezoneValue(state, timezone) {
|
|
437
527
|
const { currentSelectionValue } = state;
|
|
438
528
|
const timezoneNormal = timezone ? dateTimezoneUtcNormal({ timezone }) : undefined;
|
|
@@ -452,6 +542,14 @@ function updateStateWithTimezoneValue(state, timezone) {
|
|
|
452
542
|
return { ...state, outputTimezone: timezone, outputTimezoneNormal: timezoneNormal }; // no change in value
|
|
453
543
|
}
|
|
454
544
|
}
|
|
545
|
+
/**
|
|
546
|
+
* Updates the state from an external date cell schedule range value, converting timezone-aware inputs
|
|
547
|
+
* to system time and synchronizing the internal selection indexes.
|
|
548
|
+
*
|
|
549
|
+
* @param state - The current selection state
|
|
550
|
+
* @param inputChange - The date cell schedule range to apply
|
|
551
|
+
* @returns The updated selection state
|
|
552
|
+
*/
|
|
455
553
|
function updateStateWithDateCellScheduleRangeValue(state, inputChange) {
|
|
456
554
|
const { currentSelectionValue, systemTimezone } = state;
|
|
457
555
|
const currentDateCellScheduleRange = currentSelectionValue?.dateScheduleRange; // current range is always in system time
|
|
@@ -492,6 +590,13 @@ function updateStateWithDateCellScheduleRangeValue(state, inputChange) {
|
|
|
492
590
|
}
|
|
493
591
|
}
|
|
494
592
|
}
|
|
593
|
+
/**
|
|
594
|
+
* Updates the default schedule day codes (used when no explicit schedule days are set) and recalculates allowed days.
|
|
595
|
+
*
|
|
596
|
+
* @param state - The current selection state
|
|
597
|
+
* @param change - The new default schedule day codes
|
|
598
|
+
* @returns The updated selection state
|
|
599
|
+
*/
|
|
495
600
|
function updateStateWithChangedDefaultScheduleDays(state, change) {
|
|
496
601
|
const { defaultScheduleDays: currentDefaultScheduleDays } = state;
|
|
497
602
|
const defaultScheduleDays = new Set(change ?? fullWeekDateCellScheduleDayCodes());
|
|
@@ -502,6 +607,13 @@ function updateStateWithChangedDefaultScheduleDays(state, change) {
|
|
|
502
607
|
return finalizeUpdateStateWithChangedScheduleDays(state, { ...state, defaultScheduleDays });
|
|
503
608
|
}
|
|
504
609
|
}
|
|
610
|
+
/**
|
|
611
|
+
* Updates the explicit schedule day codes override and recalculates allowed days of the week.
|
|
612
|
+
*
|
|
613
|
+
* @param state - The current selection state
|
|
614
|
+
* @param change - The new schedule day codes, or null/undefined to clear the override
|
|
615
|
+
* @returns The updated selection state
|
|
616
|
+
*/
|
|
505
617
|
function updateStateWithChangedScheduleDays(state, change) {
|
|
506
618
|
const { scheduleDays: currentScheduleDays } = state;
|
|
507
619
|
const scheduleDays = new Set(change ?? []);
|
|
@@ -524,6 +636,13 @@ function updateStateWithChangedScheduleDays(state, change) {
|
|
|
524
636
|
return finalizeUpdateStateWithChangedScheduleDays(state, { ...state, scheduleDays: newScheduleDays ?? undefined });
|
|
525
637
|
}
|
|
526
638
|
}
|
|
639
|
+
/**
|
|
640
|
+
* Switches between single and multiple selection mode, trimming the selection to a single value when switching to single mode.
|
|
641
|
+
*
|
|
642
|
+
* @param state - The current selection state
|
|
643
|
+
* @param selectionMode - The new selection mode
|
|
644
|
+
* @returns The updated selection state
|
|
645
|
+
*/
|
|
527
646
|
function updateStateWithSelectionMode(state, selectionMode) {
|
|
528
647
|
const { selectionMode: currentSelectionMode } = state;
|
|
529
648
|
if (currentSelectionMode !== selectionMode) {
|
|
@@ -540,6 +659,13 @@ function updateStateWithSelectionMode(state, selectionMode) {
|
|
|
540
659
|
return state;
|
|
541
660
|
}
|
|
542
661
|
}
|
|
662
|
+
/**
|
|
663
|
+
* Finalizes a schedule days change by recalculating allowed days of the week and updating toggled indexes accordingly.
|
|
664
|
+
*
|
|
665
|
+
* @param previousState - The state before the schedule days change
|
|
666
|
+
* @param nextState - The state with updated schedule day codes
|
|
667
|
+
* @returns The finalized selection state with recalculated allowed days and toggled indexes
|
|
668
|
+
*/
|
|
543
669
|
function finalizeUpdateStateWithChangedScheduleDays(previousState, nextState) {
|
|
544
670
|
const previousScheduleDays = previousState.effectiveScheduleDays;
|
|
545
671
|
const nextScheduleDays = nextState.scheduleDays ?? nextState.defaultScheduleDays;
|
|
@@ -557,8 +683,25 @@ function finalizeUpdateStateWithChangedScheduleDays(previousState, nextState) {
|
|
|
557
683
|
});
|
|
558
684
|
}
|
|
559
685
|
}
|
|
686
|
+
/**
|
|
687
|
+
* Applies date changes (toggle, add, remove, set, selectAll, or reset) to the calendar selection state,
|
|
688
|
+
* updating toggled indexes and input start/end accordingly.
|
|
689
|
+
*
|
|
690
|
+
* @param state - The current selection state
|
|
691
|
+
* @param change - The date changes to apply
|
|
692
|
+
* @returns The updated selection state
|
|
693
|
+
*/
|
|
694
|
+
/**
|
|
695
|
+
* Applies date changes (toggle, add, remove, set, selectAll, or reset) to the calendar selection state,
|
|
696
|
+
* updating toggled indexes and input start/end accordingly.
|
|
697
|
+
*
|
|
698
|
+
* @param state - The current selection state
|
|
699
|
+
* @param change - The date changes to apply
|
|
700
|
+
* @returns The updated selection state
|
|
701
|
+
*/
|
|
702
|
+
// eslint-disable-next-line sonarjs/cognitive-complexity
|
|
560
703
|
function updateStateWithChangedDates(state, change) {
|
|
561
|
-
const { selectionMode, allowedDaysOfWeek, indexFactory, indexDayOfWeek, inputStart: currentInputStart, inputEnd: currentInputEnd, minMaxDateRange, filter } = state;
|
|
704
|
+
const { selectionMode, allowedDaysOfWeek, indexFactory, indexDayOfWeek, inputStart: currentInputStart, inputEnd: currentInputEnd, minMaxDateRange: _minMaxDateRange, filter: _filter } = state;
|
|
562
705
|
const { start: minDateFromFilter, end: maxDateFromFilter } = calendarScheduleMinAndMaxDateRangeRelativeToFilter(state);
|
|
563
706
|
let inputStart = currentInputStart;
|
|
564
707
|
let inputEnd = currentInputEnd;
|
|
@@ -612,6 +755,9 @@ function updateStateWithChangedDates(state, change) {
|
|
|
612
755
|
inputEnd = null;
|
|
613
756
|
set = [];
|
|
614
757
|
break;
|
|
758
|
+
default:
|
|
759
|
+
// selectAll is undefined or null; no bulk selection change needed
|
|
760
|
+
break;
|
|
615
761
|
}
|
|
616
762
|
const inputSetIndexes = asIndexes(set);
|
|
617
763
|
toggledIndexes = new Set(inputSetIndexes);
|
|
@@ -691,9 +837,22 @@ function updateStateWithChangedDates(state, change) {
|
|
|
691
837
|
return noSelectionCalendarScheduleSelectionState(nextState);
|
|
692
838
|
}
|
|
693
839
|
}
|
|
840
|
+
/**
|
|
841
|
+
* Clears all date selections from the state, retaining other configuration like schedule days and filter.
|
|
842
|
+
*
|
|
843
|
+
* @param state - The current selection state
|
|
844
|
+
* @returns The state with all selections cleared
|
|
845
|
+
*/
|
|
694
846
|
function noSelectionCalendarScheduleSelectionState(state) {
|
|
695
847
|
return finalizeNewCalendarScheduleSelectionState({ ...state, toggledIndexes: new Set(), inputStart: null, inputEnd: null });
|
|
696
848
|
}
|
|
849
|
+
/**
|
|
850
|
+
* Updates the selection state with a new start/end date range, retaining toggled indexes within the new range bounds.
|
|
851
|
+
*
|
|
852
|
+
* @param state - The current selection state
|
|
853
|
+
* @param change - The new input start and end dates
|
|
854
|
+
* @returns The updated selection state
|
|
855
|
+
*/
|
|
697
856
|
function updateStateWithChangedRange(state, change) {
|
|
698
857
|
const { inputStart: currentInputStart, inputEnd: currentInputEnd, indexFactory } = state;
|
|
699
858
|
const { start: minDate, end: maxDate } = calendarScheduleMinAndMaxDateRange(state);
|
|
@@ -706,18 +865,30 @@ function updateStateWithChangedRange(state, change) {
|
|
|
706
865
|
// retain all indexes that are within the new range
|
|
707
866
|
const minIndex = indexFactory(inputStart);
|
|
708
867
|
const maxIndex = indexFactory(inputEnd) + 1;
|
|
709
|
-
const currentIndexes =
|
|
868
|
+
const currentIndexes = [...state.toggledIndexes];
|
|
710
869
|
const isInCurrentRange = isIndexNumberInIndexRangeFunction({ minIndex, maxIndex });
|
|
711
870
|
const excludedIndexesInNewRange = currentIndexes.filter(isInCurrentRange);
|
|
712
871
|
const toggledIndexes = new Set(excludedIndexesInNewRange);
|
|
713
872
|
const nextState = { ...state, toggledIndexes, inputStart, inputEnd };
|
|
714
873
|
return finalizeNewCalendarScheduleSelectionState(nextState);
|
|
715
874
|
}
|
|
875
|
+
/**
|
|
876
|
+
* Finalizes a partially-built state by recomputing the isEnabledDay function and the current selection value.
|
|
877
|
+
*
|
|
878
|
+
* @param nextState - The partially-built selection state to finalize
|
|
879
|
+
* @returns The finalized selection state
|
|
880
|
+
*/
|
|
716
881
|
function finalizeNewCalendarScheduleSelectionState(nextState) {
|
|
717
882
|
nextState.isEnabledDay = isEnabledDayInCalendarScheduleSelectionState(nextState);
|
|
718
883
|
nextState.currentSelectionValue = computeScheduleSelectionValue(nextState);
|
|
719
884
|
return nextState;
|
|
720
885
|
}
|
|
886
|
+
/**
|
|
887
|
+
* Builds a decision function that determines whether a given day index is enabled (selected) in the current state.
|
|
888
|
+
*
|
|
889
|
+
* @param state - The selection state to derive the enabled-day function from
|
|
890
|
+
* @returns A function that returns true if the given day is enabled/selected
|
|
891
|
+
*/
|
|
721
892
|
function isEnabledDayInCalendarScheduleSelectionState(state) {
|
|
722
893
|
const { allowedDaysOfWeek, indexFactory, inputStart, inputEnd, indexDayOfWeek, systemTimezone } = state;
|
|
723
894
|
let isInStartAndEndRange;
|
|
@@ -733,10 +904,16 @@ function isEnabledDayInCalendarScheduleSelectionState(state) {
|
|
|
733
904
|
const isInSelectedRange = isInStartAndEndRange(index);
|
|
734
905
|
const isSelected = state.toggledIndexes.has(index);
|
|
735
906
|
const isAllowedDayOfWeek = allowedDaysOfWeek.has(dayOfWeek);
|
|
736
|
-
|
|
737
|
-
return result;
|
|
907
|
+
return isAllowedDayOfWeek && ((isInSelectedRange && !isSelected) || (isSelected && !isInSelectedRange));
|
|
738
908
|
};
|
|
739
909
|
}
|
|
910
|
+
/**
|
|
911
|
+
* Computes the output DateCellScheduleDateRange value from the current selection state,
|
|
912
|
+
* applying timezone offsets and filter-relative computations as needed.
|
|
913
|
+
*
|
|
914
|
+
* @param state - The current selection state to compute from
|
|
915
|
+
* @returns The computed selection value, or null if nothing is selected
|
|
916
|
+
*/
|
|
740
917
|
function computeScheduleSelectionValue(state) {
|
|
741
918
|
const { indexFactory: systemIndexFactory, allowedDaysOfWeek, effectiveScheduleDays, indexDayOfWeek, computeSelectionResultRelativeToFilter, filter, systemTimezone } = state;
|
|
742
919
|
let timezone = systemTimezone;
|
|
@@ -767,8 +944,8 @@ function computeScheduleSelectionValue(state) {
|
|
|
767
944
|
}
|
|
768
945
|
const excluded = computeSelectionResultRelativeToFilter
|
|
769
946
|
? allExcluded.filter((x) => {
|
|
770
|
-
|
|
771
|
-
return
|
|
947
|
+
// ???
|
|
948
|
+
return allowedDaysOfWeek.has(indexDayOfWeek(x));
|
|
772
949
|
})
|
|
773
950
|
: allExcluded;
|
|
774
951
|
const offsetExcluded = excluded.map((x) => x - indexOffset); // set to the proper offset
|
|
@@ -792,6 +969,13 @@ function computeScheduleSelectionValue(state) {
|
|
|
792
969
|
minMaxRange: { start, end }
|
|
793
970
|
};
|
|
794
971
|
}
|
|
972
|
+
/**
|
|
973
|
+
* Computes the selected date range with its corresponding cell range and all excluded day indexes.
|
|
974
|
+
* Returns null if no days are selected.
|
|
975
|
+
*
|
|
976
|
+
* @param state - The current selection state
|
|
977
|
+
* @returns The range and exclusion data, or null if nothing is selected
|
|
978
|
+
*/
|
|
795
979
|
function computeScheduleSelectionRangeAndExclusion(state) {
|
|
796
980
|
const { start: currentStart, isEnabledDay, isEnabledFilterDay, systemTimezone } = state;
|
|
797
981
|
const dateFactory = dateCellTimingStartDateFactory({ startsAt: currentStart, timezone: systemTimezone });
|
|
@@ -802,8 +986,7 @@ function computeScheduleSelectionRangeAndExclusion(state) {
|
|
|
802
986
|
const start = dateFactory(dateCellRange.i);
|
|
803
987
|
const end = dateFactory(dateCellRange.to);
|
|
804
988
|
const excluded = range(dateCellRange.i, dateCellRange.to + 1).filter((x) => {
|
|
805
|
-
|
|
806
|
-
return isExcludedIndex;
|
|
989
|
+
return !isEnabledDay(x) || !isEnabledFilterDay(x);
|
|
807
990
|
});
|
|
808
991
|
const result = {
|
|
809
992
|
dateCellRange,
|
|
@@ -813,15 +996,27 @@ function computeScheduleSelectionRangeAndExclusion(state) {
|
|
|
813
996
|
};
|
|
814
997
|
return result;
|
|
815
998
|
}
|
|
999
|
+
/**
|
|
1000
|
+
* Computes the selected date range (start and end dates) from the current selection state.
|
|
1001
|
+
*
|
|
1002
|
+
* @param state - The current selection state
|
|
1003
|
+
* @returns The selected date range, or undefined if nothing is selected
|
|
1004
|
+
*/
|
|
816
1005
|
function computeCalendarScheduleSelectionRange(state) {
|
|
817
1006
|
const dateFactory = dateCellTimingDateFactory({ startsAt: state.start, timezone: state.systemTimezone });
|
|
818
1007
|
const dateCellRange = computeCalendarScheduleSelectionDateCellRange(state);
|
|
819
1008
|
const dateRange = dateCellRange != null ? { start: dateFactory(dateCellRange.i), end: dateFactory(dateCellRange.to) } : undefined;
|
|
820
1009
|
return dateRange;
|
|
821
1010
|
}
|
|
1011
|
+
/**
|
|
1012
|
+
* Computes the date cell index range (i, to) that spans all selected and toggled days in the current state.
|
|
1013
|
+
*
|
|
1014
|
+
* @param state - The current selection state
|
|
1015
|
+
* @returns The cell range spanning all selected days, or undefined if nothing is selected
|
|
1016
|
+
*/
|
|
822
1017
|
function computeCalendarScheduleSelectionDateCellRange(state) {
|
|
823
1018
|
const { allowedDaysOfWeek, indexFactory, inputStart, inputEnd, indexDayOfWeek, isEnabledDay, isEnabledFilterDay } = state;
|
|
824
|
-
const enabledExclusionIndexes =
|
|
1019
|
+
const enabledExclusionIndexes = [...state.toggledIndexes].filter((i) => allowedDaysOfWeek.has(indexDayOfWeek(i)));
|
|
825
1020
|
const minAndMaxSelectedValues = minAndMaxNumber(enabledExclusionIndexes);
|
|
826
1021
|
let startRange;
|
|
827
1022
|
let endRange;
|
|
@@ -869,17 +1064,17 @@ function computeCalendarScheduleSelectionDateCellRange(state) {
|
|
|
869
1064
|
*/
|
|
870
1065
|
class DbxCalendarScheduleSelectionStoreProviderBlock {
|
|
871
1066
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore, { skipSelf: true });
|
|
872
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
873
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1067
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStoreProviderBlock, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1068
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStoreProviderBlock });
|
|
874
1069
|
}
|
|
875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1070
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStoreProviderBlock, decorators: [{
|
|
876
1071
|
type: Injectable
|
|
877
1072
|
}] });
|
|
878
1073
|
class DbxCalendarScheduleSelectionStoreInjectionBlockDirective {
|
|
879
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
880
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
1074
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStoreInjectionBlockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1075
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: DbxCalendarScheduleSelectionStoreInjectionBlockDirective, isStandalone: true, selector: "[dbxCalendarScheduleSelectionStoreParentBlocker]", providers: [DbxCalendarScheduleSelectionStoreProviderBlock], ngImport: i0 });
|
|
881
1076
|
}
|
|
882
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1077
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxCalendarScheduleSelectionStoreInjectionBlockDirective, decorators: [{
|
|
883
1078
|
type: Directive,
|
|
884
1079
|
args: [{
|
|
885
1080
|
selector: '[dbxCalendarScheduleSelectionStoreParentBlocker]',
|
|
@@ -898,7 +1093,7 @@ function provideCalendarScheduleSelectionStoreIfParentIsUnavailable() {
|
|
|
898
1093
|
return {
|
|
899
1094
|
provide: DbxCalendarScheduleSelectionStore,
|
|
900
1095
|
useFactory: (parentInjector, dbxCalendarScheduleSelectionStoreInjectionBlock, dbxCalendarScheduleSelectionStore) => {
|
|
901
|
-
if (!dbxCalendarScheduleSelectionStore || (dbxCalendarScheduleSelectionStore && dbxCalendarScheduleSelectionStoreInjectionBlock
|
|
1096
|
+
if (!dbxCalendarScheduleSelectionStore || (dbxCalendarScheduleSelectionStore && dbxCalendarScheduleSelectionStoreInjectionBlock?.dbxCalendarScheduleSelectionStore === dbxCalendarScheduleSelectionStore)) {
|
|
902
1097
|
// create a new dbxCalendarScheduleSelectionStore to use
|
|
903
1098
|
const injector = Injector.create({ providers: [{ provide: DbxCalendarScheduleSelectionStore }], parent: parentInjector });
|
|
904
1099
|
dbxCalendarScheduleSelectionStore = injector.get(DbxCalendarScheduleSelectionStore);
|
|
@@ -909,10 +1104,21 @@ function provideCalendarScheduleSelectionStoreIfParentIsUnavailable() {
|
|
|
909
1104
|
};
|
|
910
1105
|
}
|
|
911
1106
|
|
|
1107
|
+
/**
|
|
1108
|
+
* Creates form fields for selecting which days of the week are enabled in a schedule selection calendar,
|
|
1109
|
+
* wrapped in a responsive flex layout.
|
|
1110
|
+
*
|
|
1111
|
+
* @returns An array of Formly field configs with toggle fields for each day of the week
|
|
1112
|
+
*/
|
|
912
1113
|
function dbxScheduleSelectionCalendarDateDaysFormFields() {
|
|
913
1114
|
const fields = dbxScheduleSelectionCalendarDateDaysFormDayFields();
|
|
914
1115
|
return [flexLayoutWrapper(fields, { relative: true, size: 3 })];
|
|
915
1116
|
}
|
|
1117
|
+
/**
|
|
1118
|
+
* Creates an array of toggle field configs, one for each day of the week, keyed by lowercase day name.
|
|
1119
|
+
*
|
|
1120
|
+
* @returns An array of toggle Formly field configs for each day of the week
|
|
1121
|
+
*/
|
|
916
1122
|
function dbxScheduleSelectionCalendarDateDaysFormDayFields() {
|
|
917
1123
|
return getDaysOfWeekNames(false).map((dayOfWeekName) => {
|
|
918
1124
|
return toggleField({
|
|
@@ -924,10 +1130,10 @@ function dbxScheduleSelectionCalendarDateDaysFormDayFields() {
|
|
|
924
1130
|
|
|
925
1131
|
class DbxScheduleSelectionCalendarDateDaysFormComponent extends AbstractSyncFormlyFormDirective {
|
|
926
1132
|
fields = dbxScheduleSelectionCalendarDateDaysFormFields();
|
|
927
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
928
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1133
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1134
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDateDaysFormComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-days-form", providers: dbxFormlyFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-formly></dbx-formly>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxFormlyFormComponentImportsModule }, { kind: "component", type: i1.DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }, { kind: "ngmodule", type: DbxFormFormlyWrapperModule }, { kind: "ngmodule", type: DbxFormFormlyBooleanFieldModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
929
1135
|
}
|
|
930
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysFormComponent, decorators: [{
|
|
931
1137
|
type: Component,
|
|
932
1138
|
args: [{
|
|
933
1139
|
selector: 'dbx-schedule-selection-calendar-date-days-form',
|
|
@@ -946,22 +1152,21 @@ class DbxScheduleSelectionCalendarDateDaysComponent {
|
|
|
946
1152
|
isFormModified = (value) => {
|
|
947
1153
|
const newSetValue = new Set(dateCellScheduleDayCodesFromEnabledDays(value));
|
|
948
1154
|
return this.dbxCalendarScheduleSelectionStore.scheduleDays$.pipe(map((currentSet) => {
|
|
949
|
-
|
|
950
|
-
return result;
|
|
1155
|
+
return !dateCellScheduleDayCodesAreSetsEquivalent(newSetValue, currentSet);
|
|
951
1156
|
}));
|
|
952
1157
|
};
|
|
953
1158
|
updateScheduleDays = (value) => {
|
|
954
1159
|
this.dbxCalendarScheduleSelectionStore.setScheduleDays(new Set(dateCellScheduleDayCodesFromEnabledDays(value)));
|
|
955
1160
|
return of(true);
|
|
956
1161
|
};
|
|
957
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
958
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1162
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1163
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDateDaysComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-days", ngImport: i0, template: `
|
|
959
1164
|
<div class="dbx-schedule-selection-calendar-date-days" dbxAction dbxActionAutoTrigger dbxActionEnforceModified [useInstantTriggerPreset]="true" [dbxActionHandler]="updateScheduleDays">
|
|
960
1165
|
<dbx-schedule-selection-calendar-date-days-form dbxActionForm [dbxFormSource]="template$" [dbxActionFormIsModified]="isFormModified"></dbx-schedule-selection-calendar-date-days-form>
|
|
961
1166
|
</div>
|
|
962
1167
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxScheduleSelectionCalendarDateDaysFormComponent, selector: "dbx-schedule-selection-calendar-date-days-form" }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1$1.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1$1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1$1.DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: i1$1.DbxActionAutoTriggerDirective, selector: "dbxActionAutoTrigger,[dbxActionAutoTrigger]", inputs: ["triggerDebounce", "triggerThrottle", "triggerErrorThrottle", "maxErrorsForThrottle", "triggerLimit", "dbxActionAutoTrigger", "useFastTriggerPreset", "useInstantTriggerPreset"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
963
1168
|
}
|
|
964
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysComponent, decorators: [{
|
|
965
1170
|
type: Component,
|
|
966
1171
|
args: [{
|
|
967
1172
|
selector: 'dbx-schedule-selection-calendar-date-days',
|
|
@@ -981,12 +1186,12 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
981
1186
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
|
|
982
1187
|
matFormFieldDefaultOptions = inject(MAT_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });
|
|
983
1188
|
picker = viewChild.required('picker');
|
|
984
|
-
required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
|
|
985
|
-
openPickerOnTextClick = input(true, ...(ngDevMode ? [{ debugName: "openPickerOnTextClick" }] : []));
|
|
986
|
-
label = input('Enter a date range', ...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
987
|
-
hint = input(...(ngDevMode ? [undefined, { debugName: "hint" }] : []));
|
|
988
|
-
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : []));
|
|
989
|
-
showCustomize = input(false, ...(ngDevMode ? [{ debugName: "showCustomize" }] : []));
|
|
1189
|
+
required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : /* istanbul ignore next */ []));
|
|
1190
|
+
openPickerOnTextClick = input(true, ...(ngDevMode ? [{ debugName: "openPickerOnTextClick" }] : /* istanbul ignore next */ []));
|
|
1191
|
+
label = input('Enter a date range', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
1192
|
+
hint = input(...(ngDevMode ? [undefined, { debugName: "hint" }] : /* istanbul ignore next */ []));
|
|
1193
|
+
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
1194
|
+
showCustomize = input(false, ...(ngDevMode ? [{ debugName: "showCustomize" }] : /* istanbul ignore next */ []));
|
|
990
1195
|
timezone$ = this.dbxCalendarScheduleSelectionStore.effectiveOutputTimezone$;
|
|
991
1196
|
_disabledEffect = effect(() => {
|
|
992
1197
|
const disabled = this.disabled();
|
|
@@ -996,7 +1201,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
996
1201
|
else {
|
|
997
1202
|
this.range.enable();
|
|
998
1203
|
}
|
|
999
|
-
}, ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : []));
|
|
1204
|
+
}, ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
|
|
1000
1205
|
_pickerOpened = new BehaviorSubject(false);
|
|
1001
1206
|
_syncSub = new SubscriptionObject();
|
|
1002
1207
|
_valueSub = new SubscriptionObject();
|
|
@@ -1005,7 +1210,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1005
1210
|
end: new FormControl(null)
|
|
1006
1211
|
});
|
|
1007
1212
|
errorStateMatcher = {
|
|
1008
|
-
isErrorState: (control,
|
|
1213
|
+
isErrorState: (control, _form) => {
|
|
1009
1214
|
if (control) {
|
|
1010
1215
|
return (control.invalid && (control.dirty || control.touched)) || (control.touched && this.range.invalid);
|
|
1011
1216
|
}
|
|
@@ -1050,15 +1255,14 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1050
1255
|
}), shareReplay(1));
|
|
1051
1256
|
datePickerFilter$ = combineLatest([this.dbxCalendarScheduleSelectionStore.isEnabledFilterDayFunction$, this.dbxCalendarScheduleSelectionStore.isInAllowedDaysOfWeekFunction$]).pipe(map(([isEnabled, isAllowedDayOfWeek]) => {
|
|
1052
1257
|
const fn = (date) => {
|
|
1053
|
-
|
|
1054
|
-
return result;
|
|
1258
|
+
return date ? isAllowedDayOfWeek(date) && isEnabled(date) : true;
|
|
1055
1259
|
};
|
|
1056
1260
|
return fn;
|
|
1057
1261
|
}), shareReplay(1));
|
|
1058
1262
|
timezoneSignal = toSignal(this.timezone$);
|
|
1059
1263
|
timezoneReleventDateSignal = toSignal(this.timezoneReleventDate$, { initialValue: new Date() });
|
|
1060
1264
|
isCustomizedSignal = toSignal(this.isCustomized$, { initialValue: false });
|
|
1061
|
-
showCustomLabelSignal = computed(() => this.showCustomize() && this.isCustomizedSignal(), ...(ngDevMode ? [{ debugName: "showCustomLabelSignal" }] : []));
|
|
1265
|
+
showCustomLabelSignal = computed(() => this.showCustomize() && this.isCustomizedSignal(), ...(ngDevMode ? [{ debugName: "showCustomLabelSignal" }] : /* istanbul ignore next */ []));
|
|
1062
1266
|
currentErrorMessageSignal = toSignal(this.currentErrorMessage$);
|
|
1063
1267
|
datePickerFilterSignal = toSignal(this.datePickerFilter$, { initialValue: (() => true) });
|
|
1064
1268
|
_requiredUpdateValidatorsEffect = effect(() => {
|
|
@@ -1066,7 +1270,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1066
1270
|
? [
|
|
1067
1271
|
(control) => {
|
|
1068
1272
|
const range = control.value;
|
|
1069
|
-
if (!range
|
|
1273
|
+
if (!range?.start || !range.end) {
|
|
1070
1274
|
return { required: true };
|
|
1071
1275
|
}
|
|
1072
1276
|
return null;
|
|
@@ -1074,7 +1278,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1074
1278
|
]
|
|
1075
1279
|
: [];
|
|
1076
1280
|
this.range.setValidators(validators);
|
|
1077
|
-
}, ...(ngDevMode ? [{ debugName: "_requiredUpdateValidatorsEffect" }] : []));
|
|
1281
|
+
}, ...(ngDevMode ? [{ debugName: "_requiredUpdateValidatorsEffect" }] : /* istanbul ignore next */ []));
|
|
1078
1282
|
ngOnInit() {
|
|
1079
1283
|
this._syncSub.subscription = this.dbxCalendarScheduleSelectionStore.currentInputRange$.subscribe((x) => {
|
|
1080
1284
|
this.range.setValue({
|
|
@@ -1117,17 +1321,17 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1117
1321
|
pickerClosed() {
|
|
1118
1322
|
this._pickerOpened.next(false);
|
|
1119
1323
|
}
|
|
1120
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1121
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1324
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1325
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDateRangeComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-range", inputs: { required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, openPickerOnTextClick: { classPropertyName: "openPickerOnTextClick", publicName: "openPickerOnTextClick", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, showCustomize: { classPropertyName: "showCustomize", publicName: "showCustomize", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true, isSignal: true }], ngImport: i0, template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n <div class=\"dbx-schedule-selection-calendar-date-range-field-content\">\n <!-- Primary Content -->\n <div class=\"dbx-flex-bar\">\n @if (showCustomLabelSignal()) {\n <div class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n }\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle class=\"mat-datepicker-button-highlight\" matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input (click)=\"clickedDateRangeInput()\" [required]=\"required()\" [dateFilter]=\"datePickerFilterSignal()\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input [errorStateMatcher]=\"errorStateMatcher\" matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input [errorStateMatcher]=\"errorStateMatcher\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n @if (timezoneSignal()) {\n <span class=\"dbx-schedule-selection-timezone dbx-faint dbx-nowrap dbx-icon-spacer\">{{ timezoneSignal() | timezoneAbbreviation: timezoneReleventDateSignal() }}</span>\n }\n @if (showCustomize()) {\n <div>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n }\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n </div>\n <!-- Custom Content -->\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n @if (currentErrorMessageSignal()) {\n <mat-error>{{ currentErrorMessageSignal() }}</mat-error>\n }\n <mat-hint>{{ hint() }}</mat-hint>\n</mat-form-field>\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "pipe", type: TimezoneAbbreviationPipe, name: "timezoneAbbreviation" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1122
1326
|
}
|
|
1123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1327
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, decorators: [{
|
|
1124
1328
|
type: Component,
|
|
1125
1329
|
args: [{ selector: 'dbx-schedule-selection-calendar-date-range', imports: [MatFormFieldModule, FormsModule, ReactiveFormsModule, DbxButtonSpacerDirective, MatDatepickerModule, TimezoneAbbreviationPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n @if (label()) {\n <mat-label>{{ label() }}</mat-label>\n }\n <div class=\"dbx-schedule-selection-calendar-date-range-field-content\">\n <!-- Primary Content -->\n <div class=\"dbx-flex-bar\">\n @if (showCustomLabelSignal()) {\n <div class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n }\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle class=\"mat-datepicker-button-highlight\" matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input (click)=\"clickedDateRangeInput()\" [required]=\"required()\" [dateFilter]=\"datePickerFilterSignal()\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input [errorStateMatcher]=\"errorStateMatcher\" matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input [errorStateMatcher]=\"errorStateMatcher\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n @if (timezoneSignal()) {\n <span class=\"dbx-schedule-selection-timezone dbx-faint dbx-nowrap dbx-icon-spacer\">{{ timezoneSignal() | timezoneAbbreviation: timezoneReleventDateSignal() }}</span>\n }\n @if (showCustomize()) {\n <div>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n }\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n </div>\n <!-- Custom Content -->\n <div>\n <ng-content></ng-content>\n </div>\n </div>\n @if (currentErrorMessageSignal()) {\n <mat-error>{{ currentErrorMessageSignal() }}</mat-error>\n }\n <mat-hint>{{ hint() }}</mat-hint>\n</mat-form-field>\n" }]
|
|
1126
1330
|
}], propDecorators: { picker: [{ type: i0.ViewChild, args: ['picker', { isSignal: true }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], openPickerOnTextClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "openPickerOnTextClick", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], showCustomize: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCustomize", required: false }] }] } });
|
|
1127
1331
|
|
|
1128
1332
|
class DbxScheduleSelectionCalendarDatePopoverContentComponent {
|
|
1129
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1130
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1333
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1334
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDatePopoverContentComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover-content", ngImport: i0, template: `
|
|
1131
1335
|
<dbx-content-container padding="min" topPadding="normal">
|
|
1132
1336
|
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="false"></dbx-schedule-selection-calendar-date-range>
|
|
1133
1337
|
<dbx-label-block header="Allowed Days Of Week">
|
|
@@ -1136,7 +1340,7 @@ class DbxScheduleSelectionCalendarDatePopoverContentComponent {
|
|
|
1136
1340
|
</dbx-content-container>
|
|
1137
1341
|
`, isInline: true, dependencies: [{ kind: "directive", type: DbxContentContainerDirective, selector: "dbx-content-container,[dbxContentContainer],.dbx-content-container", inputs: ["grow", "padding", "topPadding"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: ["required", "openPickerOnTextClick", "label", "hint", "disabled", "showCustomize"] }, { kind: "component", type: DbxLabelBlockComponent, selector: "dbx-label-block", inputs: ["header"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDaysComponent, selector: "dbx-schedule-selection-calendar-date-days" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1138
1342
|
}
|
|
1139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, decorators: [{
|
|
1140
1344
|
type: Component,
|
|
1141
1345
|
args: [{
|
|
1142
1346
|
selector: 'dbx-schedule-selection-calendar-date-popover-content',
|
|
@@ -1164,8 +1368,8 @@ class DbxScheduleSelectionCalendarDatePopoverComponent extends AbstractPopoverDi
|
|
|
1164
1368
|
injector
|
|
1165
1369
|
});
|
|
1166
1370
|
}
|
|
1167
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1168
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1371
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1372
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDatePopoverComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover", usesInheritance: true, ngImport: i0, template: `
|
|
1169
1373
|
<dbx-popover-content>
|
|
1170
1374
|
<dbx-popover-scroll-content>
|
|
1171
1375
|
<dbx-schedule-selection-calendar-date-popover-content></dbx-schedule-selection-calendar-date-popover-content>
|
|
@@ -1173,7 +1377,7 @@ class DbxScheduleSelectionCalendarDatePopoverComponent extends AbstractPopoverDi
|
|
|
1173
1377
|
</dbx-popover-content>
|
|
1174
1378
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxPopoverInteractionModule }, { kind: "component", type: i1$3.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "directive", type: i1$3.DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxScheduleSelectionCalendarDatePopoverContentComponent, selector: "dbx-schedule-selection-calendar-date-popover-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1175
1379
|
}
|
|
1176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1380
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverComponent, decorators: [{
|
|
1177
1381
|
type: Component,
|
|
1178
1382
|
args: [{
|
|
1179
1383
|
selector: 'dbx-schedule-selection-calendar-date-popover',
|
|
@@ -1214,12 +1418,12 @@ class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
|
|
|
1214
1418
|
DbxScheduleSelectionCalendarDatePopoverComponent.openPopover(this.popoverService, { origin: buttonElement, injector: this.injector });
|
|
1215
1419
|
}
|
|
1216
1420
|
}
|
|
1217
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1218
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.
|
|
1421
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1422
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover-button", viewQueries: [{ propertyName: "buttonPopoverOrigin", first: true, predicate: ["buttonPopoverOrigin"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
|
|
1219
1423
|
<dbx-button #buttonPopoverOrigin icon="date_range" [disabled]="disabledSignal()" [raised]="true" color="accent" [text]="buttonTextSignal()" (buttonClick)="openPopover()"></dbx-button>
|
|
1220
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1424
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1221
1425
|
}
|
|
1222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, decorators: [{
|
|
1223
1427
|
type: Component,
|
|
1224
1428
|
args: [{
|
|
1225
1429
|
selector: 'dbx-schedule-selection-calendar-date-popover-button',
|
|
@@ -1234,21 +1438,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1234
1438
|
|
|
1235
1439
|
class DbxScheduleSelectionCalendarCellComponent {
|
|
1236
1440
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
|
|
1237
|
-
day = input.required(...(ngDevMode ? [{ debugName: "day" }] : []));
|
|
1441
|
+
day = input.required(...(ngDevMode ? [{ debugName: "day" }] : /* istanbul ignore next */ []));
|
|
1238
1442
|
day$ = toObservable(this.day);
|
|
1239
1443
|
cellContent$ = this.dbxCalendarScheduleSelectionStore.cellContentFactory$.pipe(switchMap((fn) => this.day$.pipe(map((x) => fn(x)))), shareReplay(1));
|
|
1240
1444
|
contentSignal = toSignal(this.cellContent$, { initialValue: {} });
|
|
1241
|
-
iconSignal = computed(() => this.contentSignal().icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : []));
|
|
1242
|
-
textSignal = computed(() => this.contentSignal().text, ...(ngDevMode ? [{ debugName: "textSignal" }] : []));
|
|
1243
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1244
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1445
|
+
iconSignal = computed(() => this.contentSignal().icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
|
|
1446
|
+
textSignal = computed(() => this.contentSignal().text, ...(ngDevMode ? [{ debugName: "textSignal" }] : /* istanbul ignore next */ []));
|
|
1447
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1448
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarCellComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-cell", inputs: { day: { classPropertyName: "day", publicName: "day", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "dbx-schedule-selection-calendar-cell" }, ngImport: i0, template: `
|
|
1245
1449
|
@if (iconSignal()) {
|
|
1246
1450
|
<mat-icon>{{ iconSignal() }}</mat-icon>
|
|
1247
1451
|
}
|
|
1248
1452
|
<span>{{ textSignal() }}</span>
|
|
1249
1453
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1250
1454
|
}
|
|
1251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1455
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, decorators: [{
|
|
1252
1456
|
type: Component,
|
|
1253
1457
|
args: [{
|
|
1254
1458
|
selector: 'dbx-schedule-selection-calendar-cell',
|
|
@@ -1271,7 +1475,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1271
1475
|
* Toggle button for selecting and clearing the current selection.
|
|
1272
1476
|
*/
|
|
1273
1477
|
class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
|
|
1274
|
-
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : []));
|
|
1478
|
+
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
1275
1479
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
|
|
1276
1480
|
selectionModeSignal = toSignal(this.dbxCalendarScheduleSelectionStore.selectionMode$, { initialValue: 'multiple' });
|
|
1277
1481
|
nextToggleSelectionSignal = toSignal(this.dbxCalendarScheduleSelectionStore.nextToggleSelection$, { initialValue: 'none' });
|
|
@@ -1286,7 +1490,7 @@ class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
|
|
|
1286
1490
|
disableButton = !nextToggleSelection;
|
|
1287
1491
|
}
|
|
1288
1492
|
return disableButton;
|
|
1289
|
-
}, ...(ngDevMode ? [{ debugName: "disableButtonSignal" }] : []));
|
|
1493
|
+
}, ...(ngDevMode ? [{ debugName: "disableButtonSignal" }] : /* istanbul ignore next */ []));
|
|
1290
1494
|
buttonDisplaySignal = computed(() => {
|
|
1291
1495
|
const selectionMode = this.selectionModeSignal();
|
|
1292
1496
|
const nextToggleSelection = this.nextToggleSelectionSignal();
|
|
@@ -1307,16 +1511,16 @@ class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
|
|
|
1307
1511
|
break;
|
|
1308
1512
|
}
|
|
1309
1513
|
return buttonDisplay;
|
|
1310
|
-
}, ...(ngDevMode ? [{ debugName: "buttonDisplaySignal" }] : []));
|
|
1514
|
+
}, ...(ngDevMode ? [{ debugName: "buttonDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
1311
1515
|
toggleSelection() {
|
|
1312
1516
|
this.dbxCalendarScheduleSelectionStore.toggleSelection();
|
|
1313
1517
|
}
|
|
1314
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1315
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1518
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1519
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-selection-toggle-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1316
1520
|
<dbx-button [disabled]="disableButtonSignal()" [buttonDisplay]="buttonDisplaySignal()" [raised]="true" (buttonClick)="toggleSelection()"></dbx-button>
|
|
1317
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1521
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1318
1522
|
}
|
|
1319
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, decorators: [{
|
|
1320
1524
|
type: Component,
|
|
1321
1525
|
args: [{
|
|
1322
1526
|
selector: 'dbx-schedule-selection-calendar-selection-toggle-button',
|
|
@@ -1329,7 +1533,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1329
1533
|
}]
|
|
1330
1534
|
}], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
1331
1535
|
|
|
1536
|
+
/**
|
|
1537
|
+
* Creates a factory that produces a beforeMonthViewRender handler for the schedule selection calendar.
|
|
1538
|
+
* The handler applies CSS classes and metadata to each day cell based on the current selection state.
|
|
1539
|
+
*
|
|
1540
|
+
* @param inputModifyFn - Optional function to further customize each day cell after default processing
|
|
1541
|
+
* @returns A factory function that accepts a state observable and produces a render handler
|
|
1542
|
+
*/
|
|
1332
1543
|
function dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(inputModifyFn) {
|
|
1544
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1333
1545
|
const modifyFn = inputModifyFn || (() => { });
|
|
1334
1546
|
return (state$) => {
|
|
1335
1547
|
return (renderEvent) => {
|
|
@@ -1373,8 +1585,8 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
1373
1585
|
calendarStore = inject((DbxCalendarStore));
|
|
1374
1586
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
|
|
1375
1587
|
clickEvent = output();
|
|
1376
|
-
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
|
|
1377
|
-
readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
|
|
1588
|
+
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
1589
|
+
readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
|
|
1378
1590
|
_centerRangeSub = new SubscriptionObject();
|
|
1379
1591
|
config$ = toObservable(this.config).pipe(distinctUntilChanged(), shareReplay(1));
|
|
1380
1592
|
readonly$ = this.config$.pipe(switchMap((x) => (x?.readonly != null ? asObservableFromGetter(x.readonly) : of(undefined))), combineLatestWith(toObservable(this.readonly)), map(([configReadonly, inputReadonly]) => {
|
|
@@ -1458,12 +1670,12 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
1458
1670
|
beforeMonthViewRender(renderEvent) {
|
|
1459
1671
|
this.beforeMonthViewRenderSignal()?.(renderEvent);
|
|
1460
1672
|
}
|
|
1461
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1462
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1673
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1674
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, providers: [DbxCalendarStore], ngImport: i0, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\" [ngClass]=\"readonlySignal() ? 'dbx-schedule-selection-calendar-readonly' : ''\">\n <ng-container controls>\n @if (showClearSelectionButtonSignal()) {\n <dbx-schedule-selection-calendar-selection-toggle-button [disabled]=\"readonlySignal()\"></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-injection [config]=\"datePopoverButtonInjectionConfigSignal()\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"viewDateSignal()!\" [events]=\"eventsSignal()\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n @if (day.badgeTotal > 0) {\n <span class=\"cal-day-badge\">{{ day.badgeTotal }}</span>\n }\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber' : locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: DbxScheduleSelectionCalendarCellComponent, selector: "dbx-schedule-selection-calendar-cell", inputs: ["day"] }, { kind: "component", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, selector: "dbx-schedule-selection-calendar-selection-toggle-button", inputs: ["disabled"] }, { kind: "pipe", type: CalendarDatePipe, name: "calendarDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1463
1675
|
}
|
|
1464
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1676
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, decorators: [{
|
|
1465
1677
|
type: Component,
|
|
1466
|
-
args: [{ selector: 'dbx-schedule-selection-calendar', imports: [NgClass,
|
|
1678
|
+
args: [{ selector: 'dbx-schedule-selection-calendar', imports: [NgClass, CalendarMonthViewComponent, CalendarDatePipe, DbxCalendarBaseComponent, DbxInjectionComponent, DbxButtonSpacerDirective, DbxScheduleSelectionCalendarCellComponent, DbxScheduleSelectionCalendarSelectionToggleButtonComponent], providers: [DbxCalendarStore], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\" [ngClass]=\"readonlySignal() ? 'dbx-schedule-selection-calendar-readonly' : ''\">\n <ng-container controls>\n @if (showClearSelectionButtonSignal()) {\n <dbx-schedule-selection-calendar-selection-toggle-button [disabled]=\"readonlySignal()\"></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-injection [config]=\"datePopoverButtonInjectionConfigSignal()\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"viewDateSignal()!\" [events]=\"eventsSignal()\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n @if (day.badgeTotal > 0) {\n <span class=\"cal-day-badge\">{{ day.badgeTotal }}</span>\n }\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber' : locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n" }]
|
|
1467
1679
|
}], propDecorators: { clickEvent: [{ type: i0.Output, args: ["clickEvent"] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }] } });
|
|
1468
1680
|
|
|
1469
1681
|
/**
|
|
@@ -1494,8 +1706,8 @@ class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDire
|
|
|
1494
1706
|
}
|
|
1495
1707
|
});
|
|
1496
1708
|
}
|
|
1497
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1498
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1709
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1710
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDateDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1499
1711
|
<dbx-dialog-content class="dbx-schedule-selection-calendar-date-dialog">
|
|
1500
1712
|
<dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
|
|
1501
1713
|
<dbx-schedule-selection-calendar></dbx-schedule-selection-calendar>
|
|
@@ -1503,7 +1715,7 @@ class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDire
|
|
|
1503
1715
|
</dbx-dialog-content>
|
|
1504
1716
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxDialogModule }, { kind: "directive", type: i1$3.DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: ["width"] }, { kind: "component", type: i1$3.DbxDialogContentFooterComponent, selector: "dbx-dialog-content-footer", inputs: ["config", "closeText", "buttonColor"], outputs: ["close"] }, { kind: "component", type: i1$3.DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", inputs: ["padded"], outputs: ["close"] }, { kind: "component", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: ["config", "readonly"], outputs: ["clickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1505
1717
|
}
|
|
1506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1718
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogComponent, decorators: [{
|
|
1507
1719
|
type: Component,
|
|
1508
1720
|
args: [{
|
|
1509
1721
|
template: `
|
|
@@ -1522,18 +1734,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1522
1734
|
class DbxScheduleSelectionCalendarDateDialogButtonComponent {
|
|
1523
1735
|
injector = inject(Injector);
|
|
1524
1736
|
matDialog = inject(MatDialog);
|
|
1525
|
-
buttonText = input('Customize', ...(ngDevMode ? [{ debugName: "buttonText" }] : []));
|
|
1526
|
-
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : []));
|
|
1527
|
-
contentConfig = input(...(ngDevMode ? [undefined, { debugName: "contentConfig" }] : []));
|
|
1737
|
+
buttonText = input('Customize', ...(ngDevMode ? [{ debugName: "buttonText" }] : /* istanbul ignore next */ []));
|
|
1738
|
+
disabled = input(...(ngDevMode ? [undefined, { debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
1739
|
+
contentConfig = input(...(ngDevMode ? [undefined, { debugName: "contentConfig" }] : /* istanbul ignore next */ []));
|
|
1528
1740
|
clickCustomize() {
|
|
1529
1741
|
DbxScheduleSelectionCalendarDateDialogComponent.openDialog(this.matDialog, { injector: this.injector, contentConfig: this.contentConfig() });
|
|
1530
1742
|
}
|
|
1531
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1532
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1743
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1744
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: { classPropertyName: "buttonText", publicName: "buttonText", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, contentConfig: { classPropertyName: "contentConfig", publicName: "contentConfig", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1533
1745
|
<dbx-button [raised]="true" color="accent" [text]="buttonText()" [disabled]="disabled()" (buttonClick)="clickCustomize()"></dbx-button>
|
|
1534
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1746
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1535
1747
|
}
|
|
1536
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, decorators: [{
|
|
1537
1749
|
type: Component,
|
|
1538
1750
|
args: [{
|
|
1539
1751
|
selector: 'dbx-schedule-selection-calendar-date-dialog-button',
|
|
@@ -1659,8 +1871,8 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1659
1871
|
this._exclusionsSub.destroy();
|
|
1660
1872
|
this._formControlObs.complete();
|
|
1661
1873
|
}
|
|
1662
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1663
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1874
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormCalendarDateScheduleRangeFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1875
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFormCalendarDateScheduleRangeFieldComponent, isStandalone: true, selector: "ng-component", providers: [provideCalendarScheduleSelectionStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
|
|
1664
1876
|
<div class="dbx-schedule-selection-field">
|
|
1665
1877
|
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClick" [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1666
1878
|
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disabledSignal()" [contentConfig]="dialogContentConfig"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
@@ -1669,7 +1881,7 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1669
1881
|
</div>
|
|
1670
1882
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: ["required", "openPickerOnTextClick", "label", "hint", "disabled", "showCustomize"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: ["buttonText", "disabled", "contentConfig"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1671
1883
|
}
|
|
1672
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1884
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormCalendarDateScheduleRangeFieldComponent, decorators: [{
|
|
1673
1885
|
type: Component,
|
|
1674
1886
|
args: [{
|
|
1675
1887
|
template: `
|
|
@@ -1689,13 +1901,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1689
1901
|
|
|
1690
1902
|
const importsAndExports$1 = [DbxFormCalendarDateScheduleRangeFieldComponent];
|
|
1691
1903
|
class DbxFormDateScheduleRangeFieldModule {
|
|
1692
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1693
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
1694
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
1904
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1905
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, imports: [DbxFormCalendarDateScheduleRangeFieldComponent, i1$5.FormlyModule], exports: [DbxFormCalendarDateScheduleRangeFieldComponent] });
|
|
1906
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, imports: [importsAndExports$1, FormlyModule.forChild({
|
|
1695
1907
|
types: [{ name: 'date-schedule-range', component: DbxFormCalendarDateScheduleRangeFieldComponent }]
|
|
1696
1908
|
})] });
|
|
1697
1909
|
}
|
|
1698
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1910
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, decorators: [{
|
|
1699
1911
|
type: NgModule,
|
|
1700
1912
|
args: [{
|
|
1701
1913
|
imports: [
|
|
@@ -1727,8 +1939,8 @@ const importsAndExports = [
|
|
|
1727
1939
|
DbxFormFormlyWrapperModule
|
|
1728
1940
|
];
|
|
1729
1941
|
class DbxFormCalendarModule {
|
|
1730
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1731
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
1942
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1943
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.3", ngImport: i0, type: DbxFormCalendarModule, imports: [DbxScheduleSelectionCalendarComponent,
|
|
1732
1944
|
DbxScheduleSelectionCalendarDateDaysComponent,
|
|
1733
1945
|
DbxScheduleSelectionCalendarDateDaysFormComponent,
|
|
1734
1946
|
DbxScheduleSelectionCalendarDateRangeComponent,
|
|
@@ -1755,7 +1967,7 @@ class DbxFormCalendarModule {
|
|
|
1755
1967
|
DbxScheduleSelectionCalendarSelectionToggleButtonComponent,
|
|
1756
1968
|
//
|
|
1757
1969
|
DbxFormFormlyWrapperModule] });
|
|
1758
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
1970
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormCalendarModule, imports: [DbxScheduleSelectionCalendarComponent,
|
|
1759
1971
|
DbxScheduleSelectionCalendarDateDaysComponent,
|
|
1760
1972
|
DbxScheduleSelectionCalendarDateDaysFormComponent,
|
|
1761
1973
|
DbxScheduleSelectionCalendarDateRangeComponent,
|
|
@@ -1771,7 +1983,7 @@ class DbxFormCalendarModule {
|
|
|
1771
1983
|
//
|
|
1772
1984
|
DbxFormFormlyWrapperModule] });
|
|
1773
1985
|
}
|
|
1774
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1986
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFormCalendarModule, decorators: [{
|
|
1775
1987
|
type: NgModule,
|
|
1776
1988
|
args: [{
|
|
1777
1989
|
imports: importsAndExports,
|