@dereekb/dbx-form 13.7.0 → 13.9.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 +425 -144
- package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-expand.field.component-Bp5_uO1A.mjs +56 -0
- package/fesm2022/dereekb-dbx-form-expand.field.component-Bp5_uO1A.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-CpOHCk87.mjs +39 -0
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-CpOHCk87.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-info.field.component-B0cFprvc.mjs +50 -0
- package/fesm2022/dereekb-dbx-form-info.field.component-B0cFprvc.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-info.wrapper.component-18n632L-.mjs +61 -0
- package/fesm2022/dereekb-dbx-form-info.wrapper.component-18n632L-.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-mapbox.mjs +639 -32
- package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-quiz.mjs +46 -55
- package/fesm2022/dereekb-dbx-form-quiz.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-section.wrapper.component-vq21oG6v.mjs +52 -0
- package/fesm2022/dereekb-dbx-form-section.wrapper.component-vq21oG6v.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-style.wrapper.component-BbKj-IHD.mjs +42 -0
- package/fesm2022/dereekb-dbx-form-style.wrapper.component-BbKj-IHD.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form.mjs +13688 -5235
- package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
- package/lib/forge/_forge.scss +14 -0
- package/lib/forge/field/_field.scss +12 -0
- package/lib/forge/field/selection/_selection.scss +18 -0
- package/lib/forge/field/selection/list/_list.scss +17 -0
- package/lib/forge/field/selection/pickable/_pickable.scss +36 -0
- package/lib/forge/field/selection/searchable/_searchable.scss +34 -0
- package/lib/forge/field/selection/sourceselect/_sourceselect.scss +30 -0
- package/lib/forge/field/wrapper/_wrapper.scss +72 -0
- package/lib/{formly/form/_form.scss → forge/preset/_preset.scss} +3 -12
- package/lib/forge/style/_shared.scss +36 -0
- package/lib/form/_form.scss +109 -0
- package/lib/formly/field/selection/sourceselect/_sourceselect.scss +0 -7
- package/lib/formly/field/texteditor/_texteditor.scss +8 -0
- package/lib/formly/field/value/array/_array.scss +6 -0
- package/lib/formly/field/value/phone/_phone.scss +4 -1
- package/lib/style/_all-core.scss +2 -2
- package/lib/style/_all-theme.scss +2 -2
- package/lib/style/_all-typography.scss +1 -1
- package/package.json +16 -14
- package/types/dereekb-dbx-form-calendar.d.ts +306 -100
- package/types/dereekb-dbx-form-mapbox.d.ts +304 -8
- package/types/dereekb-dbx-form.d.ts +8837 -2720
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as i1 from '@dereekb/dbx-form';
|
|
2
|
-
import { formlyField, propsAndConfigForFieldConfig,
|
|
2
|
+
import { formlyField, propsAndConfigForFieldConfig, dbxForgeToggleField, AbstractSyncForgeFormDirective, DbxForgeFormComponentImportsModule, dbxForgeFormComponentProviders, DBX_FORGE_FORM_COMPONENT_TEMPLATE, DbxFormSourceDirective, DbxActionFormDirective, formlyFlexLayoutWrapper, formlyToggleField, AbstractSyncFormlyFormDirective, DbxFormlyFormComponentImportsModule, DbxFormFormlyWrapperModule, DbxFormFormlyBooleanFieldModule, dbxFormlyFormComponentProviders, DBX_FORMLY_FORM_COMPONENT_TEMPLATE } from '@dereekb/dbx-form';
|
|
3
3
|
import * as i1$3 from '@dereekb/dbx-web';
|
|
4
4
|
import { DbxActionModule, DbxButtonSpacerDirective, DbxContentContainerDirective, DbxLabelBlockComponent, AbstractPopoverDirective, DbxPopoverInteractionModule, DbxPopoverService, DbxButtonComponent, AbstractDialogDirective, sanitizeDbxDialogContentConfig, DbxDialogModule, CompactContextStore } from '@dereekb/dbx-web';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { Injectable, inject, Directive, Optional, SkipSelf, Injector, ChangeDetectionStrategy, Component, viewChild, input, effect, computed, ElementRef, output, InjectionToken, NgModule } from '@angular/core';
|
|
7
7
|
import { FieldType } from '@ngx-formly/material';
|
|
8
|
-
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject, filter, combineLatest, EMPTY, startWith, throttleTime } from 'rxjs';
|
|
8
|
+
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject, filter, combineLatest, EMPTY, startWith, throttleTime, skip } from 'rxjs';
|
|
9
9
|
import { filterMaybe, distinctUntilHasDifferentValues, SubscriptionObject, asObservableFromGetter, asObservable } from '@dereekb/rxjs';
|
|
10
10
|
import { DateCellScheduleDayCode, expandDateCellScheduleDayCodesToDayOfWeekSet, dateCellTimingStartsAtForStartOfDay, dateCellTimingRelativeIndexFactory, dateCellDayOfWeekFactory, dateTimezoneUtcNormal, findMaxDate, findMinDate, isSameDateRange, isSameDateDay, isSameDate, dateCellTimingDateFactory, expandDateCellScheduleRange, formatToISO8601DayStringForSystem, changeDateCellScheduleDateRangeToTimezone, isSameDateCellScheduleDateRange, dateCellTimingRelativeIndexArrayFactory, isInfiniteDateRange, copyDateCellScheduleDateFilterConfig, SYSTEM_DATE_TIMEZONE_UTC_NORMAL_INSTANCE, dateCellScheduleDateFilter, fullDateCellScheduleRange, dateCellTimingTimezoneNormalInstance, expandDateCellScheduleDayCodes, fullWeekDateCellScheduleDayCodes, dateCellScheduleDayCodesAreSetsEquivalent, simplifyDateCellScheduleDayCodes, dateCellTimingStartDateFactory, isDateInDateRangeFunction, isDateWithinDateCellRangeFunction, dateCellScheduleEncodedWeek, enabledDaysFromDateCellScheduleDayCodes, dateCellScheduleDayCodesFromEnabledDays, formatToMonthDayString, dateRange, DateRangeType } from '@dereekb/date';
|
|
11
|
-
import { isInAllowedDaysOfWeekSet, mapValuesToSet, unique, mergeArrays, iterableToArray, isIterable, firstValueFromIterable, minAndMaxNumber, range, toggleInSet, removeFromSet, addToSet, isIndexNumberInIndexRangeFunction, getDaysOfWeekNames, reduceBooleansWithAnd, mergeObjects, KeyValueTypleValueFilter } from '@dereekb/util';
|
|
11
|
+
import { isInAllowedDaysOfWeekSet, mapValuesToSet, unique, mergeArrays, iterableToArray, isIterable, firstValueFromIterable, minAndMaxNumber, range, toggleInSet, removeFromSet, addToSet, isIndexNumberInIndexRangeFunction, getDaysOfWeekNames, reduceBooleansWithAnd, mergeObjects, KeyValueTypleValueFilter, filterFromPOJO } from '@dereekb/util';
|
|
12
12
|
import { ComponentStore } from '@ngrx/component-store';
|
|
13
13
|
import { endOfDay, startOfDay, isBefore, endOfWeek } from 'date-fns';
|
|
14
14
|
import * as i1$1 from '@dereekb/dbx-core';
|
|
@@ -28,10 +28,13 @@ import * as i1$4 from '@angular/material/icon';
|
|
|
28
28
|
import { MatIconModule } from '@angular/material/icon';
|
|
29
29
|
import * as i1$5 from '@ngx-formly/core';
|
|
30
30
|
import { FormlyModule } from '@ngx-formly/core';
|
|
31
|
+
import { DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES } from '@ng-forge/dynamic-forms';
|
|
32
|
+
import { setupMetaTracking, resolveValueFieldContext, buildValueFieldInputs } from '@ng-forge/dynamic-forms/integration';
|
|
31
33
|
|
|
32
34
|
/**
|
|
33
35
|
* Creates a Formly field configuration for a date schedule range picker with calendar-based selection.
|
|
34
36
|
*
|
|
37
|
+
* @deprecated Use dbxForgeDateScheduleRangeField() from the forge API instead.
|
|
35
38
|
* @param config - Optional schedule range field configuration overrides
|
|
36
39
|
* @returns A validated Formly field configuration for date schedule range selection
|
|
37
40
|
*/
|
|
@@ -207,12 +210,7 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
207
210
|
inputStart$ = this.state$.pipe(map((x) => x.inputStart), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
208
211
|
inputEnd$ = this.state$.pipe(map((x) => x.inputEnd), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
209
212
|
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) => {
|
|
210
|
-
|
|
211
|
-
return x;
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
return undefined;
|
|
215
|
-
}
|
|
213
|
+
return x.inputStart && x.inputEnd ? x : undefined;
|
|
216
214
|
}), shareReplay(1));
|
|
217
215
|
inputRange$ = this.currentInputRange$.pipe(filterMaybe(), shareReplay(1));
|
|
218
216
|
isEnabledFilterDayFunction$ = this.state$.pipe(map((x) => x.isEnabledFilterDay), distinctUntilChanged(), shareReplay(1));
|
|
@@ -311,10 +309,10 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
311
309
|
* Should typically not be used by the user directly with the intention of the parent synchronizing to this state.
|
|
312
310
|
*/
|
|
313
311
|
setViewReadonlyState = this.updater((state, isViewReadonly) => ({ ...state, isViewReadonly }));
|
|
314
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
315
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
312
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
313
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStore });
|
|
316
314
|
}
|
|
317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStore, decorators: [{
|
|
318
316
|
type: Injectable
|
|
319
317
|
}], ctorParameters: () => [] });
|
|
320
318
|
/**
|
|
@@ -538,9 +536,7 @@ function updateStateWithTimezoneValue(state, timezone) {
|
|
|
538
536
|
};
|
|
539
537
|
return updateStateWithDateCellScheduleRangeValue({ ...state, outputTimezone: timezone, outputTimezoneNormal: timezoneNormal }, newRange);
|
|
540
538
|
}
|
|
541
|
-
|
|
542
|
-
return { ...state, outputTimezone: timezone, outputTimezoneNormal: timezoneNormal }; // no change in value
|
|
543
|
-
}
|
|
539
|
+
return { ...state, outputTimezone: timezone, outputTimezoneNormal: timezoneNormal }; // no change in value
|
|
544
540
|
}
|
|
545
541
|
/**
|
|
546
542
|
* Updates the state from an external date cell schedule range value, converting timezone-aware inputs
|
|
@@ -580,15 +576,15 @@ function updateStateWithDateCellScheduleRangeValue(state, inputChange) {
|
|
|
580
576
|
if (isSameValue) {
|
|
581
577
|
return state;
|
|
582
578
|
}
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
}
|
|
579
|
+
if (change != null) {
|
|
580
|
+
// The incoming ex indexes are relative to change.start, but toggledIndexes must be
|
|
581
|
+
// relative to state.start. Adjust by the offset between them.
|
|
582
|
+
const inputStartIndex = state.indexFactory(change.start);
|
|
583
|
+
const adjustedEx = inputStartIndex !== 0 && change.ex ? change.ex.map((i) => i + inputStartIndex) : (change.ex ?? []);
|
|
584
|
+
const nextState = { ...state, inputStart: change.start, inputEnd: change.end, toggledIndexes: new Set(adjustedEx) };
|
|
585
|
+
return updateStateWithChangedScheduleDays(finalizeNewCalendarScheduleSelectionState(nextState), expandDateCellScheduleDayCodes(change.w || '89'));
|
|
591
586
|
}
|
|
587
|
+
return noSelectionCalendarScheduleSelectionState(state); // clear selection, retain disabled days
|
|
592
588
|
}
|
|
593
589
|
/**
|
|
594
590
|
* Updates the default schedule day codes (used when no explicit schedule days are set) and recalculates allowed days.
|
|
@@ -603,9 +599,7 @@ function updateStateWithChangedDefaultScheduleDays(state, change) {
|
|
|
603
599
|
if (dateCellScheduleDayCodesAreSetsEquivalent(defaultScheduleDays, currentDefaultScheduleDays)) {
|
|
604
600
|
return state; // no change
|
|
605
601
|
}
|
|
606
|
-
|
|
607
|
-
return finalizeUpdateStateWithChangedScheduleDays(state, { ...state, defaultScheduleDays });
|
|
608
|
-
}
|
|
602
|
+
return finalizeUpdateStateWithChangedScheduleDays(state, { ...state, defaultScheduleDays });
|
|
609
603
|
}
|
|
610
604
|
/**
|
|
611
605
|
* Updates the explicit schedule day codes override and recalculates allowed days of the week.
|
|
@@ -632,9 +626,7 @@ function updateStateWithChangedScheduleDays(state, change) {
|
|
|
632
626
|
if (newScheduleDays === undefined) {
|
|
633
627
|
return state;
|
|
634
628
|
}
|
|
635
|
-
|
|
636
|
-
return finalizeUpdateStateWithChangedScheduleDays(state, { ...state, scheduleDays: newScheduleDays ?? undefined });
|
|
637
|
-
}
|
|
629
|
+
return finalizeUpdateStateWithChangedScheduleDays(state, { ...state, scheduleDays: newScheduleDays ?? undefined });
|
|
638
630
|
}
|
|
639
631
|
/**
|
|
640
632
|
* Switches between single and multiple selection mode, trimming the selection to a single value when switching to single mode.
|
|
@@ -650,14 +642,10 @@ function updateStateWithSelectionMode(state, selectionMode) {
|
|
|
650
642
|
if (selectionMode === 'multiple') {
|
|
651
643
|
return nextState;
|
|
652
644
|
}
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
return currentSelectionRange ? updateStateWithChangedDates(nextState, { set: [currentSelectionRange.i], invertSetBehavior: true }) : nextState;
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
else {
|
|
659
|
-
return state;
|
|
645
|
+
const currentSelectionRange = computeCalendarScheduleSelectionDateCellRange(nextState);
|
|
646
|
+
return currentSelectionRange ? updateStateWithChangedDates(nextState, { set: [currentSelectionRange.i], invertSetBehavior: true }) : nextState;
|
|
660
647
|
}
|
|
648
|
+
return state;
|
|
661
649
|
}
|
|
662
650
|
/**
|
|
663
651
|
* Finalizes a schedule days change by recalculating allowed days of the week and updating toggled indexes accordingly.
|
|
@@ -672,16 +660,14 @@ function finalizeUpdateStateWithChangedScheduleDays(previousState, nextState) {
|
|
|
672
660
|
if (dateCellScheduleDayCodesAreSetsEquivalent(nextScheduleDays, previousScheduleDays)) {
|
|
673
661
|
return nextState; // the default or input schedule changed but the schedule is still the same, so no need for an update.
|
|
674
662
|
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
});
|
|
684
|
-
}
|
|
663
|
+
const effectiveScheduleDays = new Set(simplifyDateCellScheduleDayCodes(nextScheduleDays));
|
|
664
|
+
const allowedDaysOfWeek = expandDateCellScheduleDayCodesToDayOfWeekSet(nextScheduleDays);
|
|
665
|
+
return finalizeNewCalendarScheduleSelectionState({
|
|
666
|
+
...nextState,
|
|
667
|
+
// update the effective schedule days and allowed days of week
|
|
668
|
+
effectiveScheduleDays,
|
|
669
|
+
allowedDaysOfWeek
|
|
670
|
+
});
|
|
685
671
|
}
|
|
686
672
|
/**
|
|
687
673
|
* Applies date changes (toggle, add, remove, set, selectAll, or reset) to the calendar selection state,
|
|
@@ -832,10 +818,8 @@ function updateStateWithChangedDates(state, change) {
|
|
|
832
818
|
if (rangeAndExclusion) {
|
|
833
819
|
return finalizeNewCalendarScheduleSelectionState({ ...nextState, toggledIndexes: new Set(rangeAndExclusion.excluded), inputStart: rangeAndExclusion.start, inputEnd: rangeAndExclusion.end });
|
|
834
820
|
}
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
return noSelectionCalendarScheduleSelectionState(nextState);
|
|
838
|
-
}
|
|
821
|
+
// no selected days
|
|
822
|
+
return noSelectionCalendarScheduleSelectionState(nextState);
|
|
839
823
|
}
|
|
840
824
|
/**
|
|
841
825
|
* Clears all date selections from the state, retaining other configuration like schedule days and filter.
|
|
@@ -928,7 +912,7 @@ function computeScheduleSelectionValue(state) {
|
|
|
928
912
|
let end = rangeEnd;
|
|
929
913
|
// If computeSelectionResultRelativeToFilter is true, then we need to offset the values to be relative to that start.
|
|
930
914
|
if (computeSelectionResultRelativeToFilter && filter?.start) {
|
|
931
|
-
start = filter.start; //
|
|
915
|
+
start = filter.start; // start at the filter's start date
|
|
932
916
|
let startInSystemTimezone = start;
|
|
933
917
|
if (filter.timezone) {
|
|
934
918
|
timezone = filter.timezone;
|
|
@@ -939,8 +923,26 @@ function computeScheduleSelectionValue(state) {
|
|
|
939
923
|
const rangeStartIndex = systemIndexFactory(rangeStart);
|
|
940
924
|
const startIndex = systemIndexFactory(startInSystemTimezone);
|
|
941
925
|
const filterStartIndexOffset = rangeStartIndex - startIndex;
|
|
942
|
-
|
|
943
|
-
|
|
926
|
+
// When minMaxDateRange constrains the start to after filter.start,
|
|
927
|
+
// use rangeStart as the output start instead of filter.start.
|
|
928
|
+
// This prevents outputting a start date that violates the minMaxDateRange
|
|
929
|
+
// and avoids the round-trip corruption when the value is synced back to the store.
|
|
930
|
+
if (filterStartIndexOffset > 0 && state.minMaxDateRange?.start) {
|
|
931
|
+
// rangeStart already respects minMaxDateRange. Convert it to the filter's timezone for the output.
|
|
932
|
+
if (filter.timezone) {
|
|
933
|
+
const filterNormal = dateTimezoneUtcNormal(filter.timezone);
|
|
934
|
+
start = filterNormal.startOfDayInTargetTimezone(rangeStart);
|
|
935
|
+
}
|
|
936
|
+
else {
|
|
937
|
+
start = rangeStart;
|
|
938
|
+
}
|
|
939
|
+
// No filter offset exclusions needed since start is at the selection start.
|
|
940
|
+
// indexOffset stays as dateCellRange.i (relative to state.start → rangeStart).
|
|
941
|
+
}
|
|
942
|
+
else {
|
|
943
|
+
filterOffsetExcludedRange = range(0, filterStartIndexOffset);
|
|
944
|
+
indexOffset = indexOffset - filterStartIndexOffset;
|
|
945
|
+
}
|
|
944
946
|
}
|
|
945
947
|
const excluded = computeSelectionResultRelativeToFilter
|
|
946
948
|
? allExcluded.filter((x) => {
|
|
@@ -1051,12 +1053,7 @@ function computeCalendarScheduleSelectionDateCellRange(state) {
|
|
|
1051
1053
|
}
|
|
1052
1054
|
}
|
|
1053
1055
|
}
|
|
1054
|
-
|
|
1055
|
-
return { i: startRange, to: endRange };
|
|
1056
|
-
}
|
|
1057
|
-
else {
|
|
1058
|
-
return undefined;
|
|
1059
|
-
}
|
|
1056
|
+
return startRange != null && endRange != null ? { i: startRange, to: endRange } : undefined;
|
|
1060
1057
|
}
|
|
1061
1058
|
|
|
1062
1059
|
/**
|
|
@@ -1064,17 +1061,17 @@ function computeCalendarScheduleSelectionDateCellRange(state) {
|
|
|
1064
1061
|
*/
|
|
1065
1062
|
class DbxCalendarScheduleSelectionStoreProviderBlock {
|
|
1066
1063
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore, { skipSelf: true });
|
|
1067
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1068
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1064
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStoreProviderBlock, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1065
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStoreProviderBlock });
|
|
1069
1066
|
}
|
|
1070
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1067
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStoreProviderBlock, decorators: [{
|
|
1071
1068
|
type: Injectable
|
|
1072
1069
|
}] });
|
|
1073
1070
|
class DbxCalendarScheduleSelectionStoreInjectionBlockDirective {
|
|
1074
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1075
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
1071
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStoreInjectionBlockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1072
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.4", type: DbxCalendarScheduleSelectionStoreInjectionBlockDirective, isStandalone: true, selector: "[dbxCalendarScheduleSelectionStoreParentBlocker]", providers: [DbxCalendarScheduleSelectionStoreProviderBlock], ngImport: i0 });
|
|
1076
1073
|
}
|
|
1077
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxCalendarScheduleSelectionStoreInjectionBlockDirective, decorators: [{
|
|
1078
1075
|
type: Directive,
|
|
1079
1076
|
args: [{
|
|
1080
1077
|
selector: '[dbxCalendarScheduleSelectionStoreParentBlocker]',
|
|
@@ -1109,41 +1106,43 @@ function provideCalendarScheduleSelectionStoreIfParentIsUnavailable() {
|
|
|
1109
1106
|
}
|
|
1110
1107
|
|
|
1111
1108
|
/**
|
|
1112
|
-
* Creates form fields for selecting which days of the week are enabled in a schedule selection calendar
|
|
1113
|
-
*
|
|
1109
|
+
* Creates forge form fields for selecting which days of the week are enabled in a schedule selection calendar
|
|
1110
|
+
* as a vertical list of toggle fields with styled boxes.
|
|
1114
1111
|
*
|
|
1115
|
-
*
|
|
1112
|
+
* This is the forge equivalent of {@link dbxScheduleSelectionCalendarDateDaysFormFields}.
|
|
1113
|
+
*
|
|
1114
|
+
* @returns A FormConfig with toggle fields for each day of the week
|
|
1116
1115
|
*/
|
|
1117
|
-
function
|
|
1118
|
-
|
|
1119
|
-
return [flexLayoutWrapper(fields, { relative: true, size: 3 })];
|
|
1116
|
+
function dbxScheduleSelectionCalendarDateDaysForgeFormFields() {
|
|
1117
|
+
return { fields: dbxScheduleSelectionCalendarDateDaysForgeFormDayFields() };
|
|
1120
1118
|
}
|
|
1121
1119
|
/**
|
|
1122
|
-
* Creates an array of toggle field
|
|
1120
|
+
* Creates an array of forge toggle field definitions, one for each day of the week, keyed by lowercase day name.
|
|
1123
1121
|
*
|
|
1124
|
-
* @returns An array of toggle
|
|
1122
|
+
* @returns An array of forge toggle field definitions for each day of the week
|
|
1125
1123
|
*/
|
|
1126
|
-
function
|
|
1124
|
+
function dbxScheduleSelectionCalendarDateDaysForgeFormDayFields() {
|
|
1127
1125
|
return getDaysOfWeekNames(false).map((dayOfWeekName) => {
|
|
1128
|
-
return
|
|
1126
|
+
return dbxForgeToggleField({
|
|
1129
1127
|
key: dayOfWeekName.toLowerCase(),
|
|
1130
|
-
label: dayOfWeekName
|
|
1128
|
+
label: dayOfWeekName,
|
|
1129
|
+
styledBox: false
|
|
1131
1130
|
});
|
|
1132
1131
|
});
|
|
1133
1132
|
}
|
|
1134
1133
|
|
|
1135
|
-
class
|
|
1136
|
-
|
|
1137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1138
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1134
|
+
class DbxScheduleSelectionCalendarDateDaysForgeFormComponent extends AbstractSyncForgeFormDirective {
|
|
1135
|
+
formConfig = dbxScheduleSelectionCalendarDateDaysForgeFormFields();
|
|
1136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysForgeFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DbxScheduleSelectionCalendarDateDaysForgeFormComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-days-forge-form", providers: dbxForgeFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-forge></dbx-forge>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: i1.DbxForgeFormComponent, selector: "dbx-forge" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1139
1138
|
}
|
|
1140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysForgeFormComponent, decorators: [{
|
|
1141
1140
|
type: Component,
|
|
1142
1141
|
args: [{
|
|
1143
|
-
selector: 'dbx-schedule-selection-calendar-date-days-form',
|
|
1144
|
-
template:
|
|
1145
|
-
providers:
|
|
1146
|
-
imports: [
|
|
1142
|
+
selector: 'dbx-schedule-selection-calendar-date-days-forge-form',
|
|
1143
|
+
template: DBX_FORGE_FORM_COMPONENT_TEMPLATE,
|
|
1144
|
+
providers: dbxForgeFormComponentProviders(),
|
|
1145
|
+
imports: [DbxForgeFormComponentImportsModule],
|
|
1147
1146
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1148
1147
|
standalone: true
|
|
1149
1148
|
}]
|
|
@@ -1163,23 +1162,23 @@ class DbxScheduleSelectionCalendarDateDaysComponent {
|
|
|
1163
1162
|
this.dbxCalendarScheduleSelectionStore.setScheduleDays(new Set(dateCellScheduleDayCodesFromEnabledDays(value)));
|
|
1164
1163
|
return of(true);
|
|
1165
1164
|
};
|
|
1166
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1167
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1165
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1166
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DbxScheduleSelectionCalendarDateDaysComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-days", ngImport: i0, template: `
|
|
1168
1167
|
<div class="dbx-schedule-selection-calendar-date-days" dbxAction dbxActionAutoTrigger dbxActionEnforceModified [useInstantTriggerPreset]="true" [dbxActionHandler]="updateScheduleDays">
|
|
1169
|
-
<dbx-schedule-selection-calendar-date-days-form dbxActionForm [dbxFormSource]="template$" [dbxActionFormIsModified]="isFormModified"></dbx-schedule-selection-calendar-date-days-form>
|
|
1168
|
+
<dbx-schedule-selection-calendar-date-days-forge-form dbxActionForm [dbxFormSource]="template$" [dbxActionFormIsModified]="isFormModified"></dbx-schedule-selection-calendar-date-days-forge-form>
|
|
1170
1169
|
</div>
|
|
1171
|
-
`, isInline: true, dependencies: [{ kind: "component", type:
|
|
1170
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxScheduleSelectionCalendarDateDaysForgeFormComponent, selector: "dbx-schedule-selection-calendar-date-days-forge-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 });
|
|
1172
1171
|
}
|
|
1173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysComponent, decorators: [{
|
|
1174
1173
|
type: Component,
|
|
1175
1174
|
args: [{
|
|
1176
1175
|
selector: 'dbx-schedule-selection-calendar-date-days',
|
|
1177
1176
|
template: `
|
|
1178
1177
|
<div class="dbx-schedule-selection-calendar-date-days" dbxAction dbxActionAutoTrigger dbxActionEnforceModified [useInstantTriggerPreset]="true" [dbxActionHandler]="updateScheduleDays">
|
|
1179
|
-
<dbx-schedule-selection-calendar-date-days-form dbxActionForm [dbxFormSource]="template$" [dbxActionFormIsModified]="isFormModified"></dbx-schedule-selection-calendar-date-days-form>
|
|
1178
|
+
<dbx-schedule-selection-calendar-date-days-forge-form dbxActionForm [dbxFormSource]="template$" [dbxActionFormIsModified]="isFormModified"></dbx-schedule-selection-calendar-date-days-forge-form>
|
|
1180
1179
|
</div>
|
|
1181
1180
|
`,
|
|
1182
|
-
imports: [
|
|
1181
|
+
imports: [DbxScheduleSelectionCalendarDateDaysForgeFormComponent, DbxFormSourceDirective, DbxActionModule, DbxActionFormDirective],
|
|
1183
1182
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1184
1183
|
standalone: true
|
|
1185
1184
|
}]
|
|
@@ -1215,12 +1214,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1215
1214
|
});
|
|
1216
1215
|
errorStateMatcher = {
|
|
1217
1216
|
isErrorState: (control, _form) => {
|
|
1218
|
-
|
|
1219
|
-
return (control.invalid && (control.dirty || control.touched)) || (control.touched && this.range.invalid);
|
|
1220
|
-
}
|
|
1221
|
-
else {
|
|
1222
|
-
return false;
|
|
1223
|
-
}
|
|
1217
|
+
return control ? (control.invalid && (control.dirty || control.touched)) || (control.touched && this.range.invalid) : false;
|
|
1224
1218
|
}
|
|
1225
1219
|
};
|
|
1226
1220
|
minDate$ = this.dbxCalendarScheduleSelectionStore.minDate$;
|
|
@@ -1325,17 +1319,17 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
1325
1319
|
pickerClosed() {
|
|
1326
1320
|
this._pickerOpened.next(false);
|
|
1327
1321
|
}
|
|
1328
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1329
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1322
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1323
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", 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\">\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 });
|
|
1330
1324
|
}
|
|
1331
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, decorators: [{
|
|
1332
1326
|
type: Component,
|
|
1333
1327
|
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\">\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" }]
|
|
1334
1328
|
}], 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 }] }] } });
|
|
1335
1329
|
|
|
1336
1330
|
class DbxScheduleSelectionCalendarDatePopoverContentComponent {
|
|
1337
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1338
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1331
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1332
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DbxScheduleSelectionCalendarDatePopoverContentComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover-content", ngImport: i0, template: `
|
|
1339
1333
|
<dbx-content-container padding="min" topPadding="normal">
|
|
1340
1334
|
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="false"></dbx-schedule-selection-calendar-date-range>
|
|
1341
1335
|
<dbx-label-block header="Allowed Days Of Week">
|
|
@@ -1344,7 +1338,7 @@ class DbxScheduleSelectionCalendarDatePopoverContentComponent {
|
|
|
1344
1338
|
</dbx-content-container>
|
|
1345
1339
|
`, 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 });
|
|
1346
1340
|
}
|
|
1347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1341
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, decorators: [{
|
|
1348
1342
|
type: Component,
|
|
1349
1343
|
args: [{
|
|
1350
1344
|
selector: 'dbx-schedule-selection-calendar-date-popover-content',
|
|
@@ -1372,8 +1366,8 @@ class DbxScheduleSelectionCalendarDatePopoverComponent extends AbstractPopoverDi
|
|
|
1372
1366
|
injector
|
|
1373
1367
|
});
|
|
1374
1368
|
}
|
|
1375
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1376
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1369
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1370
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DbxScheduleSelectionCalendarDatePopoverComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-date-popover", usesInheritance: true, ngImport: i0, template: `
|
|
1377
1371
|
<dbx-popover-content>
|
|
1378
1372
|
<dbx-popover-scroll-content>
|
|
1379
1373
|
<dbx-schedule-selection-calendar-date-popover-content></dbx-schedule-selection-calendar-date-popover-content>
|
|
@@ -1381,7 +1375,7 @@ class DbxScheduleSelectionCalendarDatePopoverComponent extends AbstractPopoverDi
|
|
|
1381
1375
|
</dbx-popover-content>
|
|
1382
1376
|
`, 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 });
|
|
1383
1377
|
}
|
|
1384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverComponent, decorators: [{
|
|
1385
1379
|
type: Component,
|
|
1386
1380
|
args: [{
|
|
1387
1381
|
selector: 'dbx-schedule-selection-calendar-date-popover',
|
|
@@ -1410,9 +1404,7 @@ class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
|
|
|
1410
1404
|
const endString = formatToMonthDayString(x.end);
|
|
1411
1405
|
return startString === endString ? startString : `${formatToMonthDayString(x.start)} - ${formatToMonthDayString(x.end)}`;
|
|
1412
1406
|
}
|
|
1413
|
-
|
|
1414
|
-
return 'Pick a Date Range';
|
|
1415
|
-
}
|
|
1407
|
+
return 'Pick a Date Range';
|
|
1416
1408
|
}), shareReplay(1));
|
|
1417
1409
|
disabledSignal = toSignal(this.disabled$, { initialValue: false });
|
|
1418
1410
|
buttonTextSignal = toSignal(this.buttonText$, { initialValue: 'Pick a Date Range' });
|
|
@@ -1422,12 +1414,12 @@ class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
|
|
|
1422
1414
|
DbxScheduleSelectionCalendarDatePopoverComponent.openPopover(this.popoverService, { origin: buttonElement, injector: this.injector });
|
|
1423
1415
|
}
|
|
1424
1416
|
}
|
|
1425
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1426
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.
|
|
1417
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1418
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.4", 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: `
|
|
1427
1419
|
<dbx-button #buttonPopoverOrigin icon="date_range" [disabled]="disabledSignal()" [raised]="true" color="accent" [text]="buttonTextSignal()" (buttonClick)="openPopover()"></dbx-button>
|
|
1428
1420
|
`, 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", "customContent", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1429
1421
|
}
|
|
1430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1422
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, decorators: [{
|
|
1431
1423
|
type: Component,
|
|
1432
1424
|
args: [{
|
|
1433
1425
|
selector: 'dbx-schedule-selection-calendar-date-popover-button',
|
|
@@ -1448,15 +1440,15 @@ class DbxScheduleSelectionCalendarCellComponent {
|
|
|
1448
1440
|
contentSignal = toSignal(this.cellContent$, { initialValue: {} });
|
|
1449
1441
|
iconSignal = computed(() => this.contentSignal().icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
|
|
1450
1442
|
textSignal = computed(() => this.contentSignal().text, ...(ngDevMode ? [{ debugName: "textSignal" }] : /* istanbul ignore next */ []));
|
|
1451
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1452
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1443
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1444
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", 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: `
|
|
1453
1445
|
@if (iconSignal()) {
|
|
1454
1446
|
<mat-icon>{{ iconSignal() }}</mat-icon>
|
|
1455
1447
|
}
|
|
1456
1448
|
<span>{{ textSignal() }}</span>
|
|
1457
1449
|
`, 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 });
|
|
1458
1450
|
}
|
|
1459
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, decorators: [{
|
|
1460
1452
|
type: Component,
|
|
1461
1453
|
args: [{
|
|
1462
1454
|
selector: 'dbx-schedule-selection-calendar-cell',
|
|
@@ -1519,12 +1511,12 @@ class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
|
|
|
1519
1511
|
toggleSelection() {
|
|
1520
1512
|
this.dbxCalendarScheduleSelectionStore.toggleSelection();
|
|
1521
1513
|
}
|
|
1522
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1523
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1514
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1515
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", 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: `
|
|
1524
1516
|
<dbx-button [disabled]="disableButtonSignal()" [buttonDisplay]="buttonDisplaySignal()" [raised]="true" (buttonClick)="toggleSelection()"></dbx-button>
|
|
1525
1517
|
`, 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", "customContent", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1526
1518
|
}
|
|
1527
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1519
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, decorators: [{
|
|
1528
1520
|
type: Component,
|
|
1529
1521
|
args: [{
|
|
1530
1522
|
selector: 'dbx-schedule-selection-calendar-selection-toggle-button',
|
|
@@ -1601,9 +1593,7 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
1601
1593
|
if (x) {
|
|
1602
1594
|
return of(true);
|
|
1603
1595
|
}
|
|
1604
|
-
|
|
1605
|
-
return this.readonly$.pipe(map((x) => !x));
|
|
1606
|
-
}
|
|
1596
|
+
return this.readonly$.pipe(map((x) => !x));
|
|
1607
1597
|
}), distinctUntilChanged(), shareReplay(1));
|
|
1608
1598
|
showClearSelectionButton$ = this.config$.pipe(map((config) => config?.showClearSelectionButton ?? true), combineLatestWith(this.showButtons$), map((x) => reduceBooleansWithAnd(x)), distinctUntilChanged(), shareReplay(1));
|
|
1609
1599
|
datePopoverButtonInjectionConfig$ = this.config$.pipe(map((x) => x?.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), combineLatestWith(this.showButtons$), map(([config, showButton]) => (showButton ? config : undefined)), shareReplay(1));
|
|
@@ -1674,10 +1664,10 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
1674
1664
|
beforeMonthViewRender(renderEvent) {
|
|
1675
1665
|
this.beforeMonthViewRenderSignal()?.(renderEvent);
|
|
1676
1666
|
}
|
|
1677
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1678
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1667
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1668
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", 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 });
|
|
1679
1669
|
}
|
|
1680
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1670
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, decorators: [{
|
|
1681
1671
|
type: Component,
|
|
1682
1672
|
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" }]
|
|
1683
1673
|
}], 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 }] }] } });
|
|
@@ -1710,8 +1700,8 @@ class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDire
|
|
|
1710
1700
|
}
|
|
1711
1701
|
});
|
|
1712
1702
|
}
|
|
1713
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1714
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1703
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1704
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DbxScheduleSelectionCalendarDateDialogComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1715
1705
|
<dbx-dialog-content class="dbx-schedule-selection-calendar-date-dialog">
|
|
1716
1706
|
<dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
|
|
1717
1707
|
<dbx-schedule-selection-calendar></dbx-schedule-selection-calendar>
|
|
@@ -1719,7 +1709,7 @@ class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDire
|
|
|
1719
1709
|
</dbx-dialog-content>
|
|
1720
1710
|
`, 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 });
|
|
1721
1711
|
}
|
|
1722
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1712
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogComponent, decorators: [{
|
|
1723
1713
|
type: Component,
|
|
1724
1714
|
args: [{
|
|
1725
1715
|
template: `
|
|
@@ -1744,12 +1734,12 @@ class DbxScheduleSelectionCalendarDateDialogButtonComponent {
|
|
|
1744
1734
|
clickCustomize() {
|
|
1745
1735
|
DbxScheduleSelectionCalendarDateDialogComponent.openDialog(this.matDialog, { injector: this.injector, contentConfig: this.contentConfig() });
|
|
1746
1736
|
}
|
|
1747
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1748
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1737
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1738
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", 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: `
|
|
1749
1739
|
<dbx-button [raised]="true" color="accent" [text]="buttonText()" [disabled]="disabled()" (buttonClick)="clickCustomize()"></dbx-button>
|
|
1750
1740
|
`, 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", "customContent", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1751
1741
|
}
|
|
1752
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, decorators: [{
|
|
1753
1743
|
type: Component,
|
|
1754
1744
|
args: [{
|
|
1755
1745
|
selector: 'dbx-schedule-selection-calendar-date-dialog-button',
|
|
@@ -1762,6 +1752,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImpor
|
|
|
1762
1752
|
}]
|
|
1763
1753
|
}], propDecorators: { buttonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonText", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], contentConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentConfig", required: false }] }] } });
|
|
1764
1754
|
|
|
1755
|
+
/**
|
|
1756
|
+
* @deprecated Use DbxForgeCalendarDateScheduleRangeFieldComponent instead.
|
|
1757
|
+
*/
|
|
1765
1758
|
class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
1766
1759
|
compact = inject(CompactContextStore, { optional: true });
|
|
1767
1760
|
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
|
|
@@ -1875,8 +1868,8 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1875
1868
|
this._exclusionsSub.destroy();
|
|
1876
1869
|
this._formControlObs.complete();
|
|
1877
1870
|
}
|
|
1878
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1879
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1871
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormCalendarDateScheduleRangeFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1872
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: DbxFormCalendarDateScheduleRangeFieldComponent, isStandalone: true, selector: "ng-component", providers: [provideCalendarScheduleSelectionStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
|
|
1880
1873
|
<div class="dbx-schedule-selection-field">
|
|
1881
1874
|
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClick" [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1882
1875
|
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disabledSignal()" [contentConfig]="dialogContentConfig"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
@@ -1885,7 +1878,7 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1885
1878
|
</div>
|
|
1886
1879
|
`, 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 });
|
|
1887
1880
|
}
|
|
1888
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1881
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormCalendarDateScheduleRangeFieldComponent, decorators: [{
|
|
1889
1882
|
type: Component,
|
|
1890
1883
|
args: [{
|
|
1891
1884
|
template: `
|
|
@@ -1904,14 +1897,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImpor
|
|
|
1904
1897
|
}] });
|
|
1905
1898
|
|
|
1906
1899
|
const importsAndExports$1 = [DbxFormCalendarDateScheduleRangeFieldComponent];
|
|
1900
|
+
/**
|
|
1901
|
+
* @deprecated Use provideDbxForgeCalendarFieldDeclarations() instead.
|
|
1902
|
+
*/
|
|
1907
1903
|
class DbxFormDateScheduleRangeFieldModule {
|
|
1908
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1909
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
1910
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
1904
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1905
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.4", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, imports: [DbxFormCalendarDateScheduleRangeFieldComponent, i1$5.FormlyModule], exports: [DbxFormCalendarDateScheduleRangeFieldComponent] });
|
|
1906
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, imports: [importsAndExports$1, FormlyModule.forChild({
|
|
1911
1907
|
types: [{ name: 'date-schedule-range', component: DbxFormCalendarDateScheduleRangeFieldComponent }]
|
|
1912
1908
|
})] });
|
|
1913
1909
|
}
|
|
1914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1910
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormDateScheduleRangeFieldModule, decorators: [{
|
|
1915
1911
|
type: NgModule,
|
|
1916
1912
|
args: [{
|
|
1917
1913
|
imports: [
|
|
@@ -1924,7 +1920,273 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImpor
|
|
|
1924
1920
|
}]
|
|
1925
1921
|
}] });
|
|
1926
1922
|
|
|
1927
|
-
|
|
1923
|
+
/**
|
|
1924
|
+
* The custom forge field type name for the calendar date schedule range field.
|
|
1925
|
+
*/
|
|
1926
|
+
const FORGE_CALENDAR_DATE_SCHEDULE_RANGE_FIELD_TYPE = 'dbx-forge-calendar-date-schedule-range';
|
|
1927
|
+
/**
|
|
1928
|
+
* Creates a forge field definition for a calendar date schedule range picker.
|
|
1929
|
+
*
|
|
1930
|
+
* This is the forge equivalent of {@link dateScheduleRangeField}.
|
|
1931
|
+
*
|
|
1932
|
+
* @param config - Optional schedule range field configuration overrides
|
|
1933
|
+
* @returns A validated forge field definition for date schedule range selection
|
|
1934
|
+
*/
|
|
1935
|
+
function dbxForgeDateScheduleRangeField(config = {}) {
|
|
1936
|
+
const { key = 'schedule', label, description, required, readonly: isReadonly, appearance, allowTextInput, hideCustomize, allowCustomizeWithoutDateRange, outputTimezone, defaultScheduleDays, minMaxDateRange, filter, exclusions, dialogContentConfig, computeSelectionResultRelativeToFilter, initialSelectionState, cellContentFactory, customDetailsConfig } = config;
|
|
1937
|
+
const props = filterFromPOJO({
|
|
1938
|
+
label: label ?? 'Schedule',
|
|
1939
|
+
description,
|
|
1940
|
+
appearance,
|
|
1941
|
+
allowTextInput,
|
|
1942
|
+
hideCustomize,
|
|
1943
|
+
allowCustomizeWithoutDateRange,
|
|
1944
|
+
outputTimezone,
|
|
1945
|
+
defaultScheduleDays,
|
|
1946
|
+
minMaxDateRange,
|
|
1947
|
+
filter,
|
|
1948
|
+
exclusions,
|
|
1949
|
+
dialogContentConfig,
|
|
1950
|
+
computeSelectionResultRelativeToFilter,
|
|
1951
|
+
initialSelectionState,
|
|
1952
|
+
cellContentFactory,
|
|
1953
|
+
customDetailsConfig
|
|
1954
|
+
});
|
|
1955
|
+
return filterFromPOJO({
|
|
1956
|
+
key,
|
|
1957
|
+
type: FORGE_CALENDAR_DATE_SCHEDULE_RANGE_FIELD_TYPE,
|
|
1958
|
+
label: label ?? 'Schedule',
|
|
1959
|
+
value: undefined,
|
|
1960
|
+
required,
|
|
1961
|
+
readonly: isReadonly,
|
|
1962
|
+
props: Object.keys(props).length > 0 ? props : undefined
|
|
1963
|
+
});
|
|
1964
|
+
}
|
|
1965
|
+
|
|
1966
|
+
/**
|
|
1967
|
+
* Forge custom field component for calendar date schedule range selection.
|
|
1968
|
+
*
|
|
1969
|
+
* This is the forge equivalent of {@link DbxFormCalendarDateScheduleRangeFieldComponent}.
|
|
1970
|
+
* It bridges ng-forge Signal Forms with the {@link DbxCalendarScheduleSelectionStore}.
|
|
1971
|
+
*
|
|
1972
|
+
* Registered as ng-forge type 'dbx-forge-calendar-date-schedule-range'.
|
|
1973
|
+
*/
|
|
1974
|
+
class DbxForgeCalendarDateScheduleRangeFieldComponent {
|
|
1975
|
+
compact = inject(CompactContextStore, { optional: true });
|
|
1976
|
+
dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
|
|
1977
|
+
elementRef = inject((ElementRef));
|
|
1978
|
+
// Standard ng-forge value field inputs
|
|
1979
|
+
field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
1980
|
+
key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
1981
|
+
label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
1982
|
+
placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
1983
|
+
className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
1984
|
+
tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
1985
|
+
props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
1986
|
+
meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
1987
|
+
validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
1988
|
+
defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
1989
|
+
// Subscription management
|
|
1990
|
+
_syncSub = new SubscriptionObject();
|
|
1991
|
+
_valueSub = new SubscriptionObject();
|
|
1992
|
+
_timezoneSub = new SubscriptionObject();
|
|
1993
|
+
_minMaxDateRangeSub = new SubscriptionObject();
|
|
1994
|
+
_defaultWeekSub = new SubscriptionObject();
|
|
1995
|
+
_filterSub = new SubscriptionObject();
|
|
1996
|
+
_exclusionsSub = new SubscriptionObject();
|
|
1997
|
+
// Field value signal (double-call pattern: field()() to get FieldState)
|
|
1998
|
+
fieldValue = computed(() => {
|
|
1999
|
+
const state = this.field()?.();
|
|
2000
|
+
return state?.value?.();
|
|
2001
|
+
}, ...(ngDevMode ? [{ debugName: "fieldValue" }] : /* istanbul ignore next */ []));
|
|
2002
|
+
isDisabled = computed(() => {
|
|
2003
|
+
const state = this.field()?.();
|
|
2004
|
+
return state?.disabled?.() ?? false;
|
|
2005
|
+
}, ...(ngDevMode ? [{ debugName: "isDisabled" }] : /* istanbul ignore next */ []));
|
|
2006
|
+
isRequiredSignal = computed(() => {
|
|
2007
|
+
const state = this.field()?.();
|
|
2008
|
+
return state?.required?.() ?? false;
|
|
2009
|
+
}, ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
2010
|
+
// Computed props
|
|
2011
|
+
labelTextSignal = computed(() => this.props()?.label, ...(ngDevMode ? [{ debugName: "labelTextSignal" }] : /* istanbul ignore next */ []));
|
|
2012
|
+
descriptionSignal = computed(() => this.props()?.description, ...(ngDevMode ? [{ debugName: "descriptionSignal" }] : /* istanbul ignore next */ []));
|
|
2013
|
+
isReadonlyOrDisabledSignal = computed(() => this.props()?.readonly || this.isDisabled(), ...(ngDevMode ? [{ debugName: "isReadonlyOrDisabledSignal" }] : /* istanbul ignore next */ []));
|
|
2014
|
+
openPickerOnTextClickSignal = computed(() => this.props()?.allowTextInput !== true, ...(ngDevMode ? [{ debugName: "openPickerOnTextClickSignal" }] : /* istanbul ignore next */ []));
|
|
2015
|
+
showCustomizeSignal = computed(() => !this.props()?.hideCustomize, ...(ngDevMode ? [{ debugName: "showCustomizeSignal" }] : /* istanbul ignore next */ []));
|
|
2016
|
+
dialogContentConfigSignal = computed(() => this.props()?.dialogContentConfig, ...(ngDevMode ? [{ debugName: "dialogContentConfigSignal" }] : /* istanbul ignore next */ []));
|
|
2017
|
+
customDetailsConfigSignal = computed(() => this.props()?.customDetailsConfig, ...(ngDevMode ? [{ debugName: "customDetailsConfigSignal" }] : /* istanbul ignore next */ []));
|
|
2018
|
+
allowCustomizeWithoutDateRangeSignal = computed(() => this.props()?.allowCustomizeWithoutDateRange ?? false, ...(ngDevMode ? [{ debugName: "allowCustomizeWithoutDateRangeSignal" }] : /* istanbul ignore next */ []));
|
|
2019
|
+
disableCustomizeSignal = computed(() => {
|
|
2020
|
+
if (this.allowCustomizeWithoutDateRangeSignal()) {
|
|
2021
|
+
return false;
|
|
2022
|
+
}
|
|
2023
|
+
return !this.fieldValue();
|
|
2024
|
+
}, ...(ngDevMode ? [{ debugName: "disableCustomizeSignal" }] : /* istanbul ignore next */ []));
|
|
2025
|
+
_setFieldValue(value) {
|
|
2026
|
+
try {
|
|
2027
|
+
const state = this.field()?.();
|
|
2028
|
+
if (state?.value?.set) {
|
|
2029
|
+
state.value.set(value);
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
catch {
|
|
2033
|
+
// field input may not be available yet (NG0950) during early store emissions
|
|
2034
|
+
}
|
|
2035
|
+
}
|
|
2036
|
+
constructor() {
|
|
2037
|
+
setupMetaTracking(this.elementRef, this.meta, { selector: 'dbx-schedule-selection-calendar-date-range' });
|
|
2038
|
+
// Convert field value to observable for store sync
|
|
2039
|
+
const fieldValue$ = toObservable(this.fieldValue);
|
|
2040
|
+
// Sync field value → store (skip initial emission)
|
|
2041
|
+
this._syncSub.subscription = fieldValue$
|
|
2042
|
+
.pipe(skip(1), distinctUntilChanged((a, b) => isSameDateCellScheduleDateRange(a, b)))
|
|
2043
|
+
.subscribe((x) => {
|
|
2044
|
+
this.dbxCalendarScheduleSelectionStore.setDateScheduleRangeValue(x);
|
|
2045
|
+
});
|
|
2046
|
+
// Sync store → field value
|
|
2047
|
+
this._valueSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateCellScheduleRangeValue$.subscribe((x) => {
|
|
2048
|
+
this._setFieldValue(x);
|
|
2049
|
+
});
|
|
2050
|
+
// Set up store configuration from props (runs once on init via effect)
|
|
2051
|
+
effect(() => {
|
|
2052
|
+
const p = this.props();
|
|
2053
|
+
if (!p) {
|
|
2054
|
+
return;
|
|
2055
|
+
}
|
|
2056
|
+
const { outputTimezone, minMaxDateRange, filter, exclusions, defaultScheduleDays, initialSelectionState, computeSelectionResultRelativeToFilter, cellContentFactory } = p;
|
|
2057
|
+
if (filter != null) {
|
|
2058
|
+
this._filterSub.subscription = this.dbxCalendarScheduleSelectionStore.setFilter(asObservable(filter));
|
|
2059
|
+
}
|
|
2060
|
+
if (defaultScheduleDays != null) {
|
|
2061
|
+
this._defaultWeekSub.subscription = this.dbxCalendarScheduleSelectionStore.setDefaultScheduleDays(asObservable(defaultScheduleDays));
|
|
2062
|
+
}
|
|
2063
|
+
if (minMaxDateRange != null) {
|
|
2064
|
+
this._minMaxDateRangeSub.subscription = this.dbxCalendarScheduleSelectionStore.setMinMaxDateRange(asObservable(minMaxDateRange));
|
|
2065
|
+
}
|
|
2066
|
+
if (exclusions != null) {
|
|
2067
|
+
this._exclusionsSub.subscription = this.dbxCalendarScheduleSelectionStore.setExclusions(asObservable(exclusions));
|
|
2068
|
+
}
|
|
2069
|
+
if (outputTimezone != null) {
|
|
2070
|
+
this.dbxCalendarScheduleSelectionStore.setOutputTimezone(asObservable(outputTimezone));
|
|
2071
|
+
}
|
|
2072
|
+
if (initialSelectionState !== undefined) {
|
|
2073
|
+
this.dbxCalendarScheduleSelectionStore.setInitialSelectionState(initialSelectionState);
|
|
2074
|
+
}
|
|
2075
|
+
if (computeSelectionResultRelativeToFilter != null) {
|
|
2076
|
+
this.dbxCalendarScheduleSelectionStore.setComputeSelectionResultRelativeToFilter(computeSelectionResultRelativeToFilter);
|
|
2077
|
+
}
|
|
2078
|
+
if (cellContentFactory != null) {
|
|
2079
|
+
this.dbxCalendarScheduleSelectionStore.setCellContentFactory(cellContentFactory);
|
|
2080
|
+
}
|
|
2081
|
+
});
|
|
2082
|
+
}
|
|
2083
|
+
ngOnDestroy() {
|
|
2084
|
+
this._syncSub.destroy();
|
|
2085
|
+
this._valueSub.destroy();
|
|
2086
|
+
this._filterSub.destroy();
|
|
2087
|
+
this._timezoneSub.destroy();
|
|
2088
|
+
this._minMaxDateRangeSub.destroy();
|
|
2089
|
+
this._defaultWeekSub.destroy();
|
|
2090
|
+
this._exclusionsSub.destroy();
|
|
2091
|
+
}
|
|
2092
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxForgeCalendarDateScheduleRangeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2093
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.4", type: DbxForgeCalendarDateScheduleRangeFieldComponent, isStandalone: true, selector: "dbx-forge-calendar-date-schedule-range-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideCalendarScheduleSelectionStoreIfParentIsUnavailable()], ngImport: i0, template: `
|
|
2094
|
+
<div class="dbx-schedule-selection-field">
|
|
2095
|
+
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClickSignal()" [showCustomize]="showCustomizeSignal()" [required]="isRequiredSignal()" [disabled]="isReadonlyOrDisabledSignal()" [label]="labelTextSignal()" [hint]="descriptionSignal()">
|
|
2096
|
+
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomizeSignal()" [contentConfig]="dialogContentConfigSignal()"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
2097
|
+
<dbx-injection [config]="customDetailsConfigSignal()"></dbx-injection>
|
|
2098
|
+
</dbx-schedule-selection-calendar-date-range>
|
|
2099
|
+
</div>
|
|
2100
|
+
`, 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 });
|
|
2101
|
+
}
|
|
2102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxForgeCalendarDateScheduleRangeFieldComponent, decorators: [{
|
|
2103
|
+
type: Component,
|
|
2104
|
+
args: [{
|
|
2105
|
+
selector: 'dbx-forge-calendar-date-schedule-range-field',
|
|
2106
|
+
template: `
|
|
2107
|
+
<div class="dbx-schedule-selection-field">
|
|
2108
|
+
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClickSignal()" [showCustomize]="showCustomizeSignal()" [required]="isRequiredSignal()" [disabled]="isReadonlyOrDisabledSignal()" [label]="labelTextSignal()" [hint]="descriptionSignal()">
|
|
2109
|
+
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomizeSignal()" [contentConfig]="dialogContentConfigSignal()"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
2110
|
+
<dbx-injection [config]="customDetailsConfigSignal()"></dbx-injection>
|
|
2111
|
+
</dbx-schedule-selection-calendar-date-range>
|
|
2112
|
+
</div>
|
|
2113
|
+
`,
|
|
2114
|
+
providers: [provideCalendarScheduleSelectionStoreIfParentIsUnavailable()],
|
|
2115
|
+
imports: [DbxInjectionComponent, DbxScheduleSelectionCalendarDateRangeComponent, DbxScheduleSelectionCalendarDateDialogButtonComponent],
|
|
2116
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2117
|
+
standalone: true
|
|
2118
|
+
}]
|
|
2119
|
+
}], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
|
|
2120
|
+
/**
|
|
2121
|
+
* Custom mapper for the forge calendar date schedule range field.
|
|
2122
|
+
*
|
|
2123
|
+
* Uses the standard buildValueFieldInputs to bridge the ng-forge field definition
|
|
2124
|
+
* to the component's input signals.
|
|
2125
|
+
*
|
|
2126
|
+
* @param fieldDef - Field definition configuration
|
|
2127
|
+
* @param fieldDef.key - Form model key for the field
|
|
2128
|
+
* @returns Signal containing a Record of input names to values for ngComponentOutlet
|
|
2129
|
+
*/
|
|
2130
|
+
function calendarDateScheduleRangeFieldMapper(fieldDef) {
|
|
2131
|
+
const ctx = resolveValueFieldContext();
|
|
2132
|
+
const defaultProps = inject(DEFAULT_PROPS);
|
|
2133
|
+
const defaultValidationMessages = inject(DEFAULT_VALIDATION_MESSAGES);
|
|
2134
|
+
return computed(() => {
|
|
2135
|
+
return buildValueFieldInputs(fieldDef, ctx, defaultProps?.(), defaultValidationMessages?.());
|
|
2136
|
+
});
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2139
|
+
var calendar_schedule_forge_field_component = /*#__PURE__*/Object.freeze({
|
|
2140
|
+
__proto__: null,
|
|
2141
|
+
DbxForgeCalendarDateScheduleRangeFieldComponent: DbxForgeCalendarDateScheduleRangeFieldComponent,
|
|
2142
|
+
calendarDateScheduleRangeFieldMapper: calendarDateScheduleRangeFieldMapper
|
|
2143
|
+
});
|
|
2144
|
+
|
|
2145
|
+
/**
|
|
2146
|
+
* Creates form fields for selecting which days of the week are enabled in a schedule selection calendar,
|
|
2147
|
+
* wrapped in a responsive flex layout.
|
|
2148
|
+
*
|
|
2149
|
+
* @deprecated Use dbxScheduleSelectionCalendarDateDaysForgeFormFields() instead.
|
|
2150
|
+
* @returns An array of Formly field configs with toggle fields for each day of the week
|
|
2151
|
+
*/
|
|
2152
|
+
function dbxScheduleSelectionCalendarDateDaysFormFields() {
|
|
2153
|
+
const fields = dbxScheduleSelectionCalendarDateDaysFormDayFields();
|
|
2154
|
+
return [formlyFlexLayoutWrapper(fields, { relative: true, size: 3 })];
|
|
2155
|
+
}
|
|
2156
|
+
/**
|
|
2157
|
+
* Creates an array of toggle field configs, one for each day of the week, keyed by lowercase day name.
|
|
2158
|
+
*
|
|
2159
|
+
* @deprecated Use forge toggle fields directly.
|
|
2160
|
+
* @returns An array of toggle Formly field configs for each day of the week
|
|
2161
|
+
*/
|
|
2162
|
+
function dbxScheduleSelectionCalendarDateDaysFormDayFields() {
|
|
2163
|
+
return getDaysOfWeekNames(false).map((dayOfWeekName) => {
|
|
2164
|
+
return formlyToggleField({
|
|
2165
|
+
key: dayOfWeekName.toLowerCase(),
|
|
2166
|
+
label: dayOfWeekName
|
|
2167
|
+
});
|
|
2168
|
+
});
|
|
2169
|
+
}
|
|
2170
|
+
|
|
2171
|
+
/**
|
|
2172
|
+
* @deprecated Use DbxScheduleSelectionCalendarDateDaysForgeFormComponent instead.
|
|
2173
|
+
*/
|
|
2174
|
+
class DbxScheduleSelectionCalendarDateDaysFormComponent extends AbstractSyncFormlyFormDirective {
|
|
2175
|
+
fields = dbxScheduleSelectionCalendarDateDaysFormFields();
|
|
2176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2177
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", 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 });
|
|
2178
|
+
}
|
|
2179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysFormComponent, decorators: [{
|
|
2180
|
+
type: Component,
|
|
2181
|
+
args: [{
|
|
2182
|
+
selector: 'dbx-schedule-selection-calendar-date-days-form',
|
|
2183
|
+
template: DBX_FORMLY_FORM_COMPONENT_TEMPLATE,
|
|
2184
|
+
providers: dbxFormlyFormComponentProviders(),
|
|
2185
|
+
imports: [DbxFormlyFormComponentImportsModule, DbxFormFormlyWrapperModule, DbxFormFormlyBooleanFieldModule],
|
|
2186
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2187
|
+
standalone: true
|
|
2188
|
+
}]
|
|
2189
|
+
}] });
|
|
1928
2190
|
|
|
1929
2191
|
const importsAndExports = [
|
|
1930
2192
|
DbxScheduleSelectionCalendarComponent,
|
|
@@ -1942,9 +2204,12 @@ const importsAndExports = [
|
|
|
1942
2204
|
//
|
|
1943
2205
|
DbxFormFormlyWrapperModule
|
|
1944
2206
|
];
|
|
2207
|
+
/**
|
|
2208
|
+
* @deprecated Import components directly and use provideDbxForgeCalendarFieldDeclarations().
|
|
2209
|
+
*/
|
|
1945
2210
|
class DbxFormCalendarModule {
|
|
1946
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1947
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
2211
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2212
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.4", ngImport: i0, type: DbxFormCalendarModule, imports: [DbxScheduleSelectionCalendarComponent,
|
|
1948
2213
|
DbxScheduleSelectionCalendarDateDaysComponent,
|
|
1949
2214
|
DbxScheduleSelectionCalendarDateDaysFormComponent,
|
|
1950
2215
|
DbxScheduleSelectionCalendarDateRangeComponent,
|
|
@@ -1971,7 +2236,7 @@ class DbxFormCalendarModule {
|
|
|
1971
2236
|
DbxScheduleSelectionCalendarSelectionToggleButtonComponent,
|
|
1972
2237
|
//
|
|
1973
2238
|
DbxFormFormlyWrapperModule] });
|
|
1974
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
2239
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormCalendarModule, imports: [DbxScheduleSelectionCalendarComponent,
|
|
1975
2240
|
DbxScheduleSelectionCalendarDateDaysComponent,
|
|
1976
2241
|
DbxScheduleSelectionCalendarDateDaysFormComponent,
|
|
1977
2242
|
DbxScheduleSelectionCalendarDateRangeComponent,
|
|
@@ -1987,7 +2252,7 @@ class DbxFormCalendarModule {
|
|
|
1987
2252
|
//
|
|
1988
2253
|
DbxFormFormlyWrapperModule] });
|
|
1989
2254
|
}
|
|
1990
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
2255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: DbxFormCalendarModule, decorators: [{
|
|
1991
2256
|
type: NgModule,
|
|
1992
2257
|
args: [{
|
|
1993
2258
|
imports: importsAndExports,
|
|
@@ -1995,9 +2260,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImpor
|
|
|
1995
2260
|
}]
|
|
1996
2261
|
}] });
|
|
1997
2262
|
|
|
2263
|
+
/**
|
|
2264
|
+
* Forge calendar date schedule range field type definition.
|
|
2265
|
+
*
|
|
2266
|
+
* Registers the custom calendar date schedule range field component with ng-forge's dynamic form system.
|
|
2267
|
+
* Uses lazy loading for the component.
|
|
2268
|
+
*/
|
|
2269
|
+
const DbxForgeCalendarDateScheduleRangeFieldType = {
|
|
2270
|
+
name: FORGE_CALENDAR_DATE_SCHEDULE_RANGE_FIELD_TYPE,
|
|
2271
|
+
loadComponent: () => Promise.resolve().then(function () { return calendar_schedule_forge_field_component; }).then((m) => m.DbxForgeCalendarDateScheduleRangeFieldComponent),
|
|
2272
|
+
mapper: calendarDateScheduleRangeFieldMapper
|
|
2273
|
+
};
|
|
2274
|
+
/**
|
|
2275
|
+
* All custom dbx-form/calendar forge field type definitions.
|
|
2276
|
+
*/
|
|
2277
|
+
const DBX_FORGE_CALENDAR_FIELD_TYPES = [DbxForgeCalendarDateScheduleRangeFieldType];
|
|
2278
|
+
|
|
1998
2279
|
/**
|
|
1999
2280
|
* Generated bundle index. Do not edit.
|
|
2000
2281
|
*/
|
|
2001
2282
|
|
|
2002
|
-
export { CalendarScheduleSelectionDayState, DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN, DEFAULT_SCHEDULE_SELECTION_CALENDAR_DATE_POPOVER_KEY, DbxCalendarScheduleSelectionStore, DbxCalendarScheduleSelectionStoreInjectionBlockDirective, DbxCalendarScheduleSelectionStoreProviderBlock, DbxFormCalendarDateScheduleRangeFieldComponent, DbxFormCalendarModule, DbxFormDateScheduleRangeFieldModule, DbxScheduleSelectionCalendarCellComponent, DbxScheduleSelectionCalendarComponent, DbxScheduleSelectionCalendarDateDaysComponent, DbxScheduleSelectionCalendarDateDaysFormComponent, DbxScheduleSelectionCalendarDateDialogButtonComponent, DbxScheduleSelectionCalendarDateDialogComponent, DbxScheduleSelectionCalendarDatePopoverButtonComponent, DbxScheduleSelectionCalendarDatePopoverComponent, DbxScheduleSelectionCalendarDatePopoverContentComponent, DbxScheduleSelectionCalendarDateRangeComponent, DbxScheduleSelectionCalendarSelectionToggleButtonComponent, calendarScheduleMaxDate, calendarScheduleMinAndMaxDateRange, calendarScheduleMinDate, calendarScheduleStartBeingUsedFromFilter, computeCalendarScheduleSelectionDateCellRange, computeCalendarScheduleSelectionRange, computeScheduleSelectionRangeAndExclusion, computeScheduleSelectionValue, dateScheduleRangeField, dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory, dbxScheduleSelectionCalendarDateDaysFormDayFields, dbxScheduleSelectionCalendarDateDaysFormFields, defaultCalendarScheduleSelectionCellContentFactory, finalizeNewCalendarScheduleSelectionState, finalizeUpdateStateWithChangedScheduleDays, initialCalendarScheduleSelectionState, isEnabledDayInCalendarScheduleSelectionState, noSelectionCalendarScheduleSelectionState, provideCalendarScheduleSelectionStoreIfParentIsUnavailable, updateStateWithChangedDates, updateStateWithChangedDefaultScheduleDays, updateStateWithChangedRange, updateStateWithChangedScheduleDays, updateStateWithComputeSelectionResultRelativeToFilter, updateStateWithDateCellScheduleRangeValue, updateStateWithExclusions, updateStateWithFilter, updateStateWithInitialSelectionState, updateStateWithMinMaxDateRange, updateStateWithSelectionMode, updateStateWithTimezoneValue };
|
|
2283
|
+
export { CalendarScheduleSelectionDayState, DBX_FORGE_CALENDAR_FIELD_TYPES, DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN, DEFAULT_SCHEDULE_SELECTION_CALENDAR_DATE_POPOVER_KEY, DbxCalendarScheduleSelectionStore, DbxCalendarScheduleSelectionStoreInjectionBlockDirective, DbxCalendarScheduleSelectionStoreProviderBlock, DbxForgeCalendarDateScheduleRangeFieldComponent, DbxFormCalendarDateScheduleRangeFieldComponent, DbxFormCalendarModule, DbxFormDateScheduleRangeFieldModule, DbxScheduleSelectionCalendarCellComponent, DbxScheduleSelectionCalendarComponent, DbxScheduleSelectionCalendarDateDaysComponent, DbxScheduleSelectionCalendarDateDaysForgeFormComponent, DbxScheduleSelectionCalendarDateDaysFormComponent, DbxScheduleSelectionCalendarDateDialogButtonComponent, DbxScheduleSelectionCalendarDateDialogComponent, DbxScheduleSelectionCalendarDatePopoverButtonComponent, DbxScheduleSelectionCalendarDatePopoverComponent, DbxScheduleSelectionCalendarDatePopoverContentComponent, DbxScheduleSelectionCalendarDateRangeComponent, DbxScheduleSelectionCalendarSelectionToggleButtonComponent, FORGE_CALENDAR_DATE_SCHEDULE_RANGE_FIELD_TYPE, calendarDateScheduleRangeFieldMapper, calendarScheduleMaxDate, calendarScheduleMinAndMaxDateRange, calendarScheduleMinDate, calendarScheduleStartBeingUsedFromFilter, computeCalendarScheduleSelectionDateCellRange, computeCalendarScheduleSelectionRange, computeScheduleSelectionRangeAndExclusion, computeScheduleSelectionValue, dateScheduleRangeField, dbxForgeDateScheduleRangeField, dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory, dbxScheduleSelectionCalendarDateDaysForgeFormDayFields, dbxScheduleSelectionCalendarDateDaysForgeFormFields, dbxScheduleSelectionCalendarDateDaysFormDayFields, dbxScheduleSelectionCalendarDateDaysFormFields, defaultCalendarScheduleSelectionCellContentFactory, finalizeNewCalendarScheduleSelectionState, finalizeUpdateStateWithChangedScheduleDays, initialCalendarScheduleSelectionState, isEnabledDayInCalendarScheduleSelectionState, noSelectionCalendarScheduleSelectionState, provideCalendarScheduleSelectionStoreIfParentIsUnavailable, updateStateWithChangedDates, updateStateWithChangedDefaultScheduleDays, updateStateWithChangedRange, updateStateWithChangedScheduleDays, updateStateWithComputeSelectionResultRelativeToFilter, updateStateWithDateCellScheduleRangeValue, updateStateWithExclusions, updateStateWithFilter, updateStateWithInitialSelectionState, updateStateWithMinMaxDateRange, updateStateWithSelectionMode, updateStateWithTimezoneValue };
|
|
2003
2284
|
//# sourceMappingURL=dereekb-dbx-form-calendar.mjs.map
|