@dereekb/dbx-form 9.23.17 → 9.23.19
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/calendar/lib/calendar.module.d.ts +14 -13
- package/calendar/lib/calendar.schedule.selection.component.d.ts +27 -8
- package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +1 -3
- package/calendar/lib/calendar.schedule.selection.store.d.ts +8 -9
- package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +7 -1
- package/esm2020/calendar/lib/calendar.module.mjs +5 -1
- package/esm2020/calendar/lib/calendar.schedule.selection.component.mjs +30 -12
- package/esm2020/calendar/lib/calendar.schedule.selection.dialog.component.mjs +1 -1
- package/esm2020/calendar/lib/calendar.schedule.selection.popover.component.mjs +3 -3
- package/esm2020/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +1 -2
- package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +45 -20
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +10 -3
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +3 -2
- package/esm2020/mapbox/lib/field/latlng/index.mjs +2 -1
- package/esm2020/mapbox/lib/field/latlng/latlng.field.component.mjs +87 -29
- package/esm2020/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +34 -0
- package/esm2020/mapbox/lib/field/latlng/latlng.field.mjs +6 -3
- package/esm2020/mapbox/lib/field/latlng/latlng.module.mjs +6 -4
- package/fesm2015/dereekb-dbx-form-calendar.mjs +98 -45
- package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2015/dereekb-dbx-form-mapbox.mjs +128 -38
- package/fesm2015/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-calendar.mjs +95 -43
- package/fesm2020/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-mapbox.mjs +126 -38
- package/fesm2020/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/lib/extension/calendar/_calendar.scss +4 -0
- package/mapbox/esm2020/lib/field/latlng/index.mjs +2 -1
- package/mapbox/esm2020/lib/field/latlng/latlng.field.component.mjs +87 -29
- package/mapbox/esm2020/lib/field/latlng/latlng.field.marker.component.mjs +34 -0
- package/mapbox/esm2020/lib/field/latlng/latlng.field.mjs +6 -3
- package/mapbox/esm2020/lib/field/latlng/latlng.module.mjs +6 -4
- package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs +128 -38
- package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/mapbox/fesm2020/dereekb-dbx-form-mapbox.mjs +126 -38
- package/mapbox/fesm2020/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/mapbox/lib/field/latlng/index.d.ts +1 -0
- package/mapbox/lib/field/latlng/latlng.field.component.d.ts +45 -5
- package/mapbox/lib/field/latlng/latlng.field.d.ts +1 -1
- package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +12 -0
- package/mapbox/lib/field/latlng/latlng.module.d.ts +11 -10
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import * as i4 from '@dereekb/dbx-form';
|
|
1
|
+
import * as i4$1 from '@dereekb/dbx-form';
|
|
2
2
|
import { formlyField, propsAndConfigForFieldConfig, flexLayoutWrapper, toggleField, AbstractSyncFormlyFormDirective, provideFormlyContext, DbxFormModule, DbxFormlyModule } from '@dereekb/dbx-form';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Injectable, SkipSelf, Directive, Injector, Optional, Component, Inject, Input, ElementRef, ViewChild, ChangeDetectionStrategy, EventEmitter, Output, NgModule } from '@angular/core';
|
|
5
5
|
import { FieldType } from '@ngx-formly/material';
|
|
6
6
|
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, BehaviorSubject, of, startWith, filter, throttleTime } from 'rxjs';
|
|
7
7
|
import { filterMaybe, SubscriptionObject, asObservable } from '@dereekb/rxjs';
|
|
8
|
-
import { DateScheduleDayCode, expandDateScheduleDayCodesToDayOfWeekSet, dateTimingRelativeIndexFactory, dateBlockDayOfWeekFactory, findMaxDate, findMinDate,
|
|
8
|
+
import { DateScheduleDayCode, expandDateScheduleDayCodesToDayOfWeekSet, dateTimingRelativeIndexFactory, dateBlockDayOfWeekFactory, findMaxDate, findMinDate, isSameDateRange, isSameDateDay, isSameDate, isSameDateScheduleRange, dateTimingRelativeIndexArrayFactory, isInfiniteDateRange, copyDateScheduleDateFilterConfig, dateScheduleDateFilter, expandDateScheduleDayCodes, isDateInDateRangeFunction, isDateWithinDateBlockRangeFunction, dateScheduleEncodedWeek, dateBlockTimingDateFactory, enabledDaysFromDateScheduleDayCodes, dateScheduleDayCodesFromEnabledDays, formatToMonthDayString } from '@dereekb/date';
|
|
9
9
|
import { setsAreEquivalent, unique, mergeArrays, iterableToArray, toggleInSet, addToSet, isIndexNumberInIndexRangeFunction, range, minAndMaxNumber, randomNumberFactory, getDaysOfWeekNames } from '@dereekb/util';
|
|
10
10
|
import { ComponentStore } from '@ngrx/component-store';
|
|
11
|
-
import { startOfDay } from 'date-fns';
|
|
11
|
+
import { startOfDay, endOfDay } from 'date-fns';
|
|
12
12
|
import * as i1$1 from '@dereekb/dbx-web';
|
|
13
13
|
import { AbstractPopoverDirective, AbstractDialogDirective, DbxActionModule, DbxButtonModule, DbxDialogInteractionModule, DbxPopoverInteractionModule, DbxTextModule } from '@dereekb/dbx-web';
|
|
14
14
|
import * as i3 from '@angular/forms';
|
|
@@ -17,14 +17,15 @@ import * as i5 from '@angular/material/form-field';
|
|
|
17
17
|
import { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from '@angular/material/form-field';
|
|
18
18
|
import * as i1 from '@dereekb/dbx-web/calendar';
|
|
19
19
|
import { prepareAndSortCalendarEvents, DbxCalendarStore, DbxCalendarModule } from '@dereekb/dbx-web/calendar';
|
|
20
|
-
import * as
|
|
20
|
+
import * as i4 from '@angular/common';
|
|
21
21
|
import { CommonModule } from '@angular/common';
|
|
22
22
|
import * as i7 from '@angular/material/datepicker';
|
|
23
23
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
24
|
-
import * as
|
|
24
|
+
import * as i3$1 from '@dereekb/dbx-core';
|
|
25
|
+
import { switchMapDbxInjectionComponentConfig, DbxInjectionComponentModule } from '@dereekb/dbx-core';
|
|
26
|
+
import * as i6 from 'angular-calendar';
|
|
25
27
|
import { CalendarModule, CalendarDayModule, CalendarWeekModule } from 'angular-calendar';
|
|
26
|
-
import * as i3$2 from '@
|
|
27
|
-
import * as i3$3 from '@angular/material/icon';
|
|
28
|
+
import * as i3$2 from '@angular/material/icon';
|
|
28
29
|
import { MatIconModule } from '@angular/material/icon';
|
|
29
30
|
import * as i1$2 from '@angular/material/dialog';
|
|
30
31
|
import * as i2 from '@angular/material/button';
|
|
@@ -37,9 +38,10 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
|
|
37
38
|
|
|
38
39
|
function dateScheduleRangeField(config = {}) {
|
|
39
40
|
var _a;
|
|
40
|
-
const { key = 'schedule', filter, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions } = config;
|
|
41
|
+
const { key = 'schedule', filter, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, minMaxDateRange } = config;
|
|
41
42
|
const fieldConfig = Object.assign({}, formlyField(Object.assign({ key, type: 'date-schedule-range' }, propsAndConfigForFieldConfig(config, {
|
|
42
43
|
label: (_a = config.label) !== null && _a !== void 0 ? _a : 'Schedule',
|
|
44
|
+
minMaxDateRange,
|
|
43
45
|
filter,
|
|
44
46
|
computeSelectionResultRelativeToFilter,
|
|
45
47
|
initialSelectionState,
|
|
@@ -94,24 +96,22 @@ function initialCalendarScheduleSelectionState() {
|
|
|
94
96
|
indexDayOfWeek,
|
|
95
97
|
isEnabledFilterDay: () => true,
|
|
96
98
|
isEnabledDay: () => false,
|
|
97
|
-
minDate: null,
|
|
98
|
-
maxDate: null,
|
|
99
99
|
computeSelectionResultRelativeToFilter: true,
|
|
100
100
|
cellContentFactory: defaultCalendarScheduleSelectionCellContentFactory
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
103
|
function calendarScheduleMinDate(x) {
|
|
104
|
-
var _a;
|
|
105
|
-
return findMaxDate([(_a = x.filter) === null || _a === void 0 ? void 0 : _a.start, x.
|
|
104
|
+
var _a, _b;
|
|
105
|
+
return findMaxDate([(_a = x.filter) === null || _a === void 0 ? void 0 : _a.start, (_b = x.minMaxDateRange) === null || _b === void 0 ? void 0 : _b.start]);
|
|
106
106
|
}
|
|
107
107
|
function calendarScheduleMaxDate(x) {
|
|
108
|
-
var _a;
|
|
109
|
-
return findMinDate([(_a = x.filter) === null || _a === void 0 ? void 0 : _a.end, x.
|
|
108
|
+
var _a, _b;
|
|
109
|
+
return findMinDate([(_a = x.filter) === null || _a === void 0 ? void 0 : _a.end, (_b = x.minMaxDateRange) === null || _b === void 0 ? void 0 : _b.end]);
|
|
110
110
|
}
|
|
111
|
-
function
|
|
111
|
+
function calendarScheduleMinAndMaxDateRange(x) {
|
|
112
112
|
return {
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
start: calendarScheduleMinDate(x) || undefined,
|
|
114
|
+
end: calendarScheduleMaxDate(x) || undefined
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
@@ -125,7 +125,10 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
125
125
|
});
|
|
126
126
|
// MARK: Accessors
|
|
127
127
|
this.filter$ = this.state$.pipe(map((x) => x.filter), distinctUntilChanged(), shareReplay(1));
|
|
128
|
-
this.
|
|
128
|
+
this.minMaxDateRange$ = this.state$.pipe(map(calendarScheduleMinAndMaxDateRange), distinctUntilChanged(isSameDateRange), shareReplay(1));
|
|
129
|
+
this.minDate$ = this.minMaxDateRange$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.start), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
130
|
+
this.maxDate$ = this.minMaxDateRange$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.end), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
131
|
+
this.hasConfiguredMinMaxRange$ = this.minMaxDateRange$.pipe(map((x) => x != null && x.start != null && x.end != null), distinctUntilChanged(), shareReplay(1));
|
|
129
132
|
this.inputStart$ = this.state$.pipe(map((x) => x.inputStart), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
130
133
|
this.inputEnd$ = this.state$.pipe(map((x) => x.inputEnd), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
131
134
|
this.currentInputRange$ = this.state$.pipe(map(({ inputStart, inputEnd }) => ({ inputStart, inputEnd })), distinctUntilChanged((a, b) => isSameDate(a.inputStart, b.inputStart) && isSameDate(a.inputEnd, b.inputEnd)), map((x) => {
|
|
@@ -159,11 +162,10 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
159
162
|
this.selectionValue$ = this.currentSelectionValue$.pipe(filterMaybe(), shareReplay(1));
|
|
160
163
|
this.currentDateScheduleRangeValue$ = this.currentSelectionValue$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.dateScheduleRange), distinctUntilChanged(isSameDateScheduleRange), shareReplay(1));
|
|
161
164
|
this.dateScheduleRangeValue$ = this.currentDateScheduleRangeValue$.pipe(filterMaybe(), shareReplay(1));
|
|
162
|
-
this.minDate$ = this.state$.pipe(map(calendarScheduleMinDate), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
163
|
-
this.maxDate$ = this.state$.pipe(map(calendarScheduleMaxDate), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
164
165
|
this.cellContentFactory$ = this.state$.pipe(map((x) => x.cellContentFactory), distinctUntilChanged(), shareReplay(1));
|
|
165
166
|
this.isCustomized$ = this.state$.pipe(map((x) => x.selectedIndexes.size > 0), distinctUntilChanged(), shareReplay(1));
|
|
166
167
|
// MARK: State Changes
|
|
168
|
+
this.setMinMaxDateRange = this.updater((state, filter) => updateStateWithMinMaxDateRange(state, filter));
|
|
167
169
|
this.setFilter = this.updater((state, filter) => updateStateWithFilter(state, filter));
|
|
168
170
|
this.setExclusions = this.updater((state, exclusions) => updateStateWithExclusions(state, exclusions));
|
|
169
171
|
this.setComputeSelectionResultRelativeToFilter = this.updater((state, computeSelectionResultRelativeToFilter) => updateStateWithComputeSelectionResultRelativeToFilter(state, computeSelectionResultRelativeToFilter));
|
|
@@ -211,11 +213,26 @@ function updateStateWithExclusions(state, inputExclusions) {
|
|
|
211
213
|
state = Object.assign(Object.assign({}, state), { inputExclusions, computedExclusions });
|
|
212
214
|
return updateStateWithFilter(state, state.filter);
|
|
213
215
|
}
|
|
216
|
+
function updateStateWithMinMaxDateRange(state, minMaxDateRange) {
|
|
217
|
+
state = Object.assign({}, state);
|
|
218
|
+
if (minMaxDateRange != null && !isInfiniteDateRange(minMaxDateRange)) {
|
|
219
|
+
state.minMaxDateRange = {
|
|
220
|
+
start: minMaxDateRange.start != null ? startOfDay(minMaxDateRange.start) : undefined,
|
|
221
|
+
end: minMaxDateRange.end != null ? endOfDay(minMaxDateRange.end) : undefined
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
delete state.minMaxDateRange;
|
|
226
|
+
}
|
|
227
|
+
return updateStateWithFilter(state, state.filter);
|
|
228
|
+
}
|
|
214
229
|
function updateStateWithFilter(state, inputFilter) {
|
|
215
|
-
|
|
230
|
+
var _a;
|
|
231
|
+
const { computedExclusions: exclusions, minMaxDateRange } = state;
|
|
216
232
|
let isEnabledFilterDay = () => true;
|
|
217
233
|
let filter = null;
|
|
218
|
-
|
|
234
|
+
// create the filter using inputFilter, exclusions, and minMaxDateRange
|
|
235
|
+
if (inputFilter || (exclusions === null || exclusions === void 0 ? void 0 : exclusions.length) || minMaxDateRange) {
|
|
219
236
|
let enabledFilter;
|
|
220
237
|
if (inputFilter) {
|
|
221
238
|
filter = copyDateScheduleDateFilterConfig(inputFilter); // copy filter
|
|
@@ -232,10 +249,20 @@ function updateStateWithFilter(state, inputFilter) {
|
|
|
232
249
|
ex: exclusions
|
|
233
250
|
};
|
|
234
251
|
}
|
|
252
|
+
if (minMaxDateRange) {
|
|
253
|
+
enabledFilter.minMaxDateRange = minMaxDateRange;
|
|
254
|
+
enabledFilter.setStartAsMinDate = false;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* If the input filter has a start date, use that as the relative start to ensure indexes are compared the same,
|
|
258
|
+
* otherwise use the state's start. This is important for the index calculations.
|
|
259
|
+
*/
|
|
260
|
+
enabledFilter.start = (_a = inputFilter === null || inputFilter === void 0 ? void 0 : inputFilter.start) !== null && _a !== void 0 ? _a : state.start;
|
|
261
|
+
// create the filter
|
|
235
262
|
isEnabledFilterDay = dateScheduleDateFilter(enabledFilter);
|
|
236
263
|
}
|
|
237
264
|
state = Object.assign(Object.assign({}, state), { filter, isEnabledFilterDay });
|
|
238
|
-
//
|
|
265
|
+
// For the same reason as above, use the filter's start date as the relative start if applicable.
|
|
239
266
|
if (filter && filter.start) {
|
|
240
267
|
const start = filter.start;
|
|
241
268
|
state.start = start;
|
|
@@ -283,8 +310,8 @@ function updateStateWithChangedScheduleDays(state, change) {
|
|
|
283
310
|
}
|
|
284
311
|
function updateStateWithChangedDates(state, change) {
|
|
285
312
|
var _a;
|
|
286
|
-
const { indexFactory, allowedDaysOfWeek, indexDayOfWeek, inputStart: currentInputStart, inputEnd: currentInputEnd } = state;
|
|
287
|
-
const { minDate, maxDate } =
|
|
313
|
+
const { indexFactory, allowedDaysOfWeek, indexDayOfWeek, inputStart: currentInputStart, inputEnd: currentInputEnd, minMaxDateRange } = state;
|
|
314
|
+
const { start: minDate, end: maxDate } = calendarScheduleMinAndMaxDateRange(state);
|
|
288
315
|
let inputStart = currentInputStart;
|
|
289
316
|
let inputEnd = currentInputEnd;
|
|
290
317
|
let selectedIndexes;
|
|
@@ -338,9 +365,10 @@ function noSelectionCalendarScheduleSelectionState(state) {
|
|
|
338
365
|
return finalizeNewCalendarScheduleSelectionState(Object.assign(Object.assign({}, state), { selectedIndexes: new Set(), inputStart: null, inputEnd: null }));
|
|
339
366
|
}
|
|
340
367
|
function updateStateWithChangedRange(state, change) {
|
|
341
|
-
const { inputStart: currentInputStart, inputEnd: currentInputEnd, indexFactory,
|
|
368
|
+
const { inputStart: currentInputStart, inputEnd: currentInputEnd, indexFactory, minMaxDateRange } = state;
|
|
369
|
+
const { start: minDate, end: maxDate } = minMaxDateRange !== null && minMaxDateRange !== void 0 ? minMaxDateRange : {};
|
|
342
370
|
let inputStart = startOfDay(change.inputStart);
|
|
343
|
-
let inputEnd =
|
|
371
|
+
let inputEnd = endOfDay(change.inputEnd);
|
|
344
372
|
const isValidRange = minDate != null || maxDate != null ? isDateInDateRangeFunction({ start: minDate !== null && minDate !== void 0 ? minDate : undefined, end: maxDate !== null && maxDate !== void 0 ? maxDate : undefined }) : () => true;
|
|
345
373
|
if (!isValidRange(inputStart) || !isValidRange(inputEnd) || (isSameDateDay(inputStart, currentInputStart) && isSameDateDay(inputEnd, currentInputEnd))) {
|
|
346
374
|
return state; // if no change, return the current state.
|
|
@@ -606,7 +634,7 @@ class DbxScheduleSelectionCalendarDateRangeComponent {
|
|
|
606
634
|
}
|
|
607
635
|
}
|
|
608
636
|
DbxScheduleSelectionCalendarDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, deps: [{ token: i1.DbxCalendarStore }, { token: DbxCalendarScheduleSelectionStore }, { token: MAT_FORM_FIELD_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
|
|
609
|
-
DbxScheduleSelectionCalendarDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: { required: "required", label: "label", hint: "hint", disabled: "disabled", showCustomize: "showCustomize" }, ngImport: i0, template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input [required]=\"required\" [min]=\"minDate$ | async\" [max]=\"maxDate$ | async\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <div *ngIf=\"showCustomize\">\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n <mat-error *ngIf=\"range.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"range.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n <mat-hint>{{ hint }}</mat-hint>\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type:
|
|
637
|
+
DbxScheduleSelectionCalendarDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: { required: "required", label: "label", hint: "hint", disabled: "disabled", showCustomize: "showCustomize" }, ngImport: i0, template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input [required]=\"required\" [min]=\"minDate$ | async\" [max]=\"maxDate$ | async\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <div *ngIf=\"showCustomize\">\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n <mat-error *ngIf=\"range.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"range.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n <mat-hint>{{ hint }}</mat-hint>\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i7.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i7.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i7.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i7.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
610
638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateRangeComponent, decorators: [{
|
|
611
639
|
type: Component,
|
|
612
640
|
args: [{ selector: 'dbx-schedule-selection-calendar-date-range', template: "<mat-form-field class=\"dbx-schedule-selection-calendar-date-range-field\">\n <mat-label *ngIf=\"label\">{{ label }}</mat-label>\n <div *ngIf=\"showCustomize && (isCustomized$ | async)\" class=\"date-range-field-customized\">\n <span class=\"dbx-accent-bg date-range-field-customized-text\">Custom</span>\n </div>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <dbx-button-spacer></dbx-button-spacer>\n <mat-date-range-input [required]=\"required\" [min]=\"minDate$ | async\" [max]=\"maxDate$ | async\" [formGroup]=\"range\" [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n <div *ngIf=\"showCustomize\">\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content select=\"[customizeButton]\"></ng-content>\n </div>\n <mat-date-range-picker #picker (opened)=\"pickerOpened()\" (closed)=\"pickerClosed()\"></mat-date-range-picker>\n <mat-error *ngIf=\"range.controls.start.hasError('matStartDateInvalid')\">Invalid start date</mat-error>\n <mat-error *ngIf=\"range.controls.end.hasError('matEndDateInvalid')\">Invalid end date</mat-error>\n <mat-hint>{{ hint }}</mat-hint>\n</mat-form-field>\n" }]
|
|
@@ -649,7 +677,7 @@ class DbxScheduleSelectionCalendarDateDaysFormComponent extends AbstractSyncForm
|
|
|
649
677
|
DbxScheduleSelectionCalendarDateDaysFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
650
678
|
DbxScheduleSelectionCalendarDateDaysFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateDaysFormComponent, selector: "dbx-schedule-selection-calendar-date-days-form", providers: [provideFormlyContext()], usesInheritance: true, ngImport: i0, template: `
|
|
651
679
|
<dbx-formly></dbx-formly>
|
|
652
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i4.DbxFormlyFormComponent, selector: "dbx-formly", exportAs: ["formly"] }] });
|
|
680
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i4$1.DbxFormlyFormComponent, selector: "dbx-formly", exportAs: ["formly"] }] });
|
|
653
681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysFormComponent, decorators: [{
|
|
654
682
|
type: Component,
|
|
655
683
|
args: [{
|
|
@@ -681,7 +709,7 @@ DbxScheduleSelectionCalendarDateDaysComponent.ɵcmp = i0.ɵɵngDeclareComponent(
|
|
|
681
709
|
<div class="dbx-schedule-selection-calendar-date-days" dbxAction dbxActionAutoTrigger dbxActionEnforceModified [instantTrigger]="true" [dbxActionHandler]="updateScheduleDays">
|
|
682
710
|
<dbx-schedule-selection-calendar-date-days-form dbxActionForm [dbxFormSource]="template$" [dbxActionFormModified]="isFormModified"></dbx-schedule-selection-calendar-date-days-form>
|
|
683
711
|
</div>
|
|
684
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i3$
|
|
712
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3$1.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i3$1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i3$1.DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: i3$1.DbxActionAutoTriggerDirective, selector: "dbxActionAutoTrigger, [dbxActionAutoTrigger]", inputs: ["dbxActionAutoTrigger", "triggerDebounce", "triggerThrottle", "triggerErrorThrottle", "fastTrigger", "instantTrigger", "triggerLimit"] }, { kind: "directive", type: i4$1.DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormValidator", "dbxActionFormModified", "formDisabledOnWorking"] }, { kind: "directive", type: i4$1.DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDaysFormComponent, selector: "dbx-schedule-selection-calendar-date-days-form" }] });
|
|
685
713
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDaysComponent, decorators: [{
|
|
686
714
|
type: Component,
|
|
687
715
|
args: [{
|
|
@@ -695,7 +723,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
695
723
|
}], ctorParameters: function () { return [{ type: i1.DbxCalendarStore }, { type: DbxCalendarScheduleSelectionStore }]; } });
|
|
696
724
|
|
|
697
725
|
class DbxScheduleSelectionCalendarDatePopoverContentComponent {
|
|
698
|
-
ngOnDestroy() { }
|
|
699
726
|
}
|
|
700
727
|
DbxScheduleSelectionCalendarDatePopoverContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
701
728
|
DbxScheduleSelectionCalendarDatePopoverContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDatePopoverContentComponent, selector: "dbx-schedule-selection-calendar-date-popover-content", ngImport: i0, template: `
|
|
@@ -732,7 +759,7 @@ DbxScheduleSelectionCalendarDatePopoverComponent.ɵfac = i0.ɵɵngDeclareFactory
|
|
|
732
759
|
DbxScheduleSelectionCalendarDatePopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDatePopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
733
760
|
<dbx-popover-content>
|
|
734
761
|
<dbx-popover-scroll-content>
|
|
735
|
-
<dbx-schedule-selection-calendar-date-popover-content
|
|
762
|
+
<dbx-schedule-selection-calendar-date-popover-content></dbx-schedule-selection-calendar-date-popover-content>
|
|
736
763
|
</dbx-popover-scroll-content>
|
|
737
764
|
</dbx-popover-content>
|
|
738
765
|
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: i1$1.DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "component", type: DbxScheduleSelectionCalendarDatePopoverContentComponent, selector: "dbx-schedule-selection-calendar-date-popover-content" }] });
|
|
@@ -742,7 +769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
742
769
|
template: `
|
|
743
770
|
<dbx-popover-content>
|
|
744
771
|
<dbx-popover-scroll-content>
|
|
745
|
-
<dbx-schedule-selection-calendar-date-popover-content
|
|
772
|
+
<dbx-schedule-selection-calendar-date-popover-content></dbx-schedule-selection-calendar-date-popover-content>
|
|
746
773
|
</dbx-popover-scroll-content>
|
|
747
774
|
</dbx-popover-content>
|
|
748
775
|
`
|
|
@@ -770,7 +797,7 @@ class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
|
|
|
770
797
|
DbxScheduleSelectionCalendarDatePopoverButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, deps: [{ token: i1$1.DbxPopoverService }, { token: DbxCalendarScheduleSelectionStore }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
771
798
|
DbxScheduleSelectionCalendarDatePopoverButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, selector: "dbx-schedule-selection-calendar-date-popover-button", viewQueries: [{ propertyName: "buttonPopoverOrigin", first: true, predicate: ["buttonPopoverOrigin"], descendants: true, read: ElementRef }], ngImport: i0, template: `
|
|
772
799
|
<dbx-button #buttonPopoverOrigin icon="date_range" [raised]="true" color="accent" [text]="buttonText$ | async" (buttonClick)="openPopover()"></dbx-button>
|
|
773
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "pipe", type:
|
|
800
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
774
801
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, decorators: [{
|
|
775
802
|
type: Component,
|
|
776
803
|
args: [{
|
|
@@ -805,7 +832,7 @@ DbxScheduleSelectionCalendarCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minV
|
|
|
805
832
|
DbxScheduleSelectionCalendarCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarCellComponent, selector: "dbx-schedule-selection-calendar-cell", inputs: { day: "day" }, host: { classAttribute: "dbx-schedule-selection-calendar-cell" }, ngImport: i0, template: `
|
|
806
833
|
<mat-icon *ngIf="icon">{{ icon }}</mat-icon>
|
|
807
834
|
<span>{{ text }}</span>
|
|
808
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
835
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
809
836
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, decorators: [{
|
|
810
837
|
type: Component,
|
|
811
838
|
args: [{
|
|
@@ -859,7 +886,7 @@ class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
|
|
|
859
886
|
DbxScheduleSelectionCalendarSelectionToggleButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, deps: [{ token: i1$1.DbxPopoverService }, { token: DbxCalendarScheduleSelectionStore }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
860
887
|
DbxScheduleSelectionCalendarSelectionToggleButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, selector: "dbx-schedule-selection-calendar-selection-toggle-button", ngImport: i0, template: `
|
|
861
888
|
<dbx-button [disabled]="disableButton$ | async" [buttonDisplay]="buttonDisplay$ | async" [raised]="true" (buttonClick)="toggleSelection()"></dbx-button>
|
|
862
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "pipe", type:
|
|
889
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
863
890
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, decorators: [{
|
|
864
891
|
type: Component,
|
|
865
892
|
args: [{
|
|
@@ -874,6 +901,9 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
874
901
|
constructor(calendarStore, dbxCalendarScheduleSelectionStore) {
|
|
875
902
|
this.calendarStore = calendarStore;
|
|
876
903
|
this.dbxCalendarScheduleSelectionStore = dbxCalendarScheduleSelectionStore;
|
|
904
|
+
this._config = new BehaviorSubject({});
|
|
905
|
+
this.showClearSelectionButton$ = this._config.pipe(map((config) => { var _a; return (_a = config.showClearSelectionButton) !== null && _a !== void 0 ? _a : true; }), distinctUntilChanged());
|
|
906
|
+
this.datePopoverButtonInjectionConfig$ = this._config.pipe(map((x) => x.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), shareReplay(1));
|
|
877
907
|
this.clickEvent = new EventEmitter();
|
|
878
908
|
// refresh any time the selected day function updates
|
|
879
909
|
this.state$ = this.dbxCalendarScheduleSelectionStore.state$;
|
|
@@ -881,6 +911,20 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
881
911
|
this.events$ = this.calendarStore.visibleEvents$.pipe(map(prepareAndSortCalendarEvents), shareReplay(1));
|
|
882
912
|
this.viewDate$ = this.calendarStore.date$;
|
|
883
913
|
}
|
|
914
|
+
ngOnInit() {
|
|
915
|
+
this.calendarStore.setNavigationRangeLimit(this.dbxCalendarScheduleSelectionStore.minMaxDateRange$); // set navigation limit to the min/max allowed dates.
|
|
916
|
+
this.calendarStore.setShowPageButtons(true);
|
|
917
|
+
}
|
|
918
|
+
ngOnDestroy() {
|
|
919
|
+
this.clickEvent.complete();
|
|
920
|
+
this._config.complete();
|
|
921
|
+
}
|
|
922
|
+
get config() {
|
|
923
|
+
return this._config.value;
|
|
924
|
+
}
|
|
925
|
+
set config(config) {
|
|
926
|
+
this._config.next(config);
|
|
927
|
+
}
|
|
884
928
|
dayClicked({ date }) {
|
|
885
929
|
this.dbxCalendarScheduleSelectionStore.toggleSelectedDates(date);
|
|
886
930
|
}
|
|
@@ -918,17 +962,16 @@ class DbxScheduleSelectionCalendarComponent {
|
|
|
918
962
|
});
|
|
919
963
|
});
|
|
920
964
|
}
|
|
921
|
-
ngOnDestroy() {
|
|
922
|
-
this.clickEvent.complete();
|
|
923
|
-
}
|
|
924
965
|
}
|
|
925
966
|
DbxScheduleSelectionCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, deps: [{ token: i1.DbxCalendarStore }, { token: DbxCalendarScheduleSelectionStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
926
|
-
DbxScheduleSelectionCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", outputs: { clickEvent: "clickEvent" }, providers: [DbxCalendarStore], ngImport: i0, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\">\n <ng-container controls>\n <dbx-schedule-selection-calendar-selection-toggle-button></dbx-schedule-selection-calendar-selection-toggle-button>\n
|
|
967
|
+
DbxScheduleSelectionCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: { config: "config" }, outputs: { clickEvent: "clickEvent" }, providers: [DbxCalendarStore], ngImport: i0, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\">\n <ng-container controls>\n <ng-container *ngIf=\"showClearSelectionButton$ | async\">\n <dbx-schedule-selection-calendar-selection-toggle-button></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-injection [config]=\"datePopoverButtonInjectionConfig$ | async\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (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 <span class=\"cal-day-badge\" *ngIf=\"day.badgeTotal > 0\">{{ day.badgeTotal }}</span>\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: "component", type: i3$1.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i1.DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.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: DbxScheduleSelectionCalendarCellComponent, selector: "dbx-schedule-selection-calendar-cell", inputs: ["day"] }, { kind: "component", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, selector: "dbx-schedule-selection-calendar-selection-toggle-button" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.ɵCalendarDatePipe, name: "calendarDate" }] });
|
|
927
968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, decorators: [{
|
|
928
969
|
type: Component,
|
|
929
|
-
args: [{ selector: 'dbx-schedule-selection-calendar', providers: [DbxCalendarStore], template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\">\n <ng-container controls>\n <dbx-schedule-selection-calendar-selection-toggle-button></dbx-schedule-selection-calendar-selection-toggle-button>\n
|
|
970
|
+
args: [{ selector: 'dbx-schedule-selection-calendar', providers: [DbxCalendarStore], template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\">\n <ng-container controls>\n <ng-container *ngIf=\"showClearSelectionButton$ | async\">\n <dbx-schedule-selection-calendar-selection-toggle-button></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-injection [config]=\"datePopoverButtonInjectionConfig$ | async\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (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 <span class=\"cal-day-badge\" *ngIf=\"day.badgeTotal > 0\">{{ day.badgeTotal }}</span>\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" }]
|
|
930
971
|
}], ctorParameters: function () { return [{ type: i1.DbxCalendarStore }, { type: DbxCalendarScheduleSelectionStore }]; }, propDecorators: { clickEvent: [{
|
|
931
972
|
type: Output
|
|
973
|
+
}], config: [{
|
|
974
|
+
type: Input
|
|
932
975
|
}] } });
|
|
933
976
|
|
|
934
977
|
class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDirective {
|
|
@@ -949,7 +992,7 @@ DbxScheduleSelectionCalendarDateDialogComponent.ɵcmp = i0.ɵɵngDeclareComponen
|
|
|
949
992
|
<dbx-schedule-selection-calendar></dbx-schedule-selection-calendar>
|
|
950
993
|
<dbx-dialog-content-footer closeText="Close Calendar" (close)="close()"></dbx-dialog-content-footer>
|
|
951
994
|
</dbx-dialog-content>
|
|
952
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent].dbx-dialog-content", inputs: ["width"] }, { kind: "component", type: i1$1.DbxDialogContentFooterComponent, selector: "dbx-dialog-content-footer", inputs: ["closeText"], outputs: ["close"] }, { kind: "component", type: i1$1.DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", outputs: ["close"] }, { kind: "component", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", outputs: ["clickEvent"] }] });
|
|
995
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1$1.DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent].dbx-dialog-content", inputs: ["width"] }, { kind: "component", type: i1$1.DbxDialogContentFooterComponent, selector: "dbx-dialog-content-footer", inputs: ["closeText"], outputs: ["close"] }, { kind: "component", type: i1$1.DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", outputs: ["close"] }, { kind: "component", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: ["config"], outputs: ["clickEvent"] }] });
|
|
953
996
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogComponent, decorators: [{
|
|
954
997
|
type: Component,
|
|
955
998
|
args: [{
|
|
@@ -997,6 +1040,7 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
997
1040
|
this.ngZone = ngZone;
|
|
998
1041
|
this._syncSub = new SubscriptionObject();
|
|
999
1042
|
this._valueSub = new SubscriptionObject();
|
|
1043
|
+
this._minMaxDateRangeSub = new SubscriptionObject();
|
|
1000
1044
|
this._filterSub = new SubscriptionObject();
|
|
1001
1045
|
this._exclusionsSub = new SubscriptionObject();
|
|
1002
1046
|
this._formControlObs = new BehaviorSubject(undefined);
|
|
@@ -1022,6 +1066,9 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1022
1066
|
get showCustomize() {
|
|
1023
1067
|
return !this.props.hideCustomize;
|
|
1024
1068
|
}
|
|
1069
|
+
get minMaxDateRange() {
|
|
1070
|
+
return this.props.minMaxDateRange;
|
|
1071
|
+
}
|
|
1025
1072
|
get filter() {
|
|
1026
1073
|
return this.props.filter;
|
|
1027
1074
|
}
|
|
@@ -1042,10 +1089,13 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1042
1089
|
this._valueSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateScheduleRangeValue$.subscribe((x) => {
|
|
1043
1090
|
this.formControl.setValue(x);
|
|
1044
1091
|
});
|
|
1045
|
-
const { filter, exclusions } = this;
|
|
1092
|
+
const { minMaxDateRange, filter, exclusions } = this;
|
|
1046
1093
|
if (filter != null) {
|
|
1047
1094
|
this._filterSub.subscription = this.dbxCalendarScheduleSelectionStore.setFilter(asObservable(filter));
|
|
1048
1095
|
}
|
|
1096
|
+
if (minMaxDateRange != null) {
|
|
1097
|
+
this._minMaxDateRangeSub.subscription = this.dbxCalendarScheduleSelectionStore.setMinMaxDateRange(asObservable(minMaxDateRange));
|
|
1098
|
+
}
|
|
1049
1099
|
if (exclusions != null) {
|
|
1050
1100
|
this._exclusionsSub.subscription = this.dbxCalendarScheduleSelectionStore.setExclusions(asObservable(exclusions));
|
|
1051
1101
|
}
|
|
@@ -1055,13 +1105,13 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1055
1105
|
if (this.computeSelectionResultRelativeToFilter != null) {
|
|
1056
1106
|
this.dbxCalendarScheduleSelectionStore.setComputeSelectionResultRelativeToFilter(this.computeSelectionResultRelativeToFilter);
|
|
1057
1107
|
}
|
|
1058
|
-
// TODO: Also add ability to set min/max dates independent of the filter
|
|
1059
1108
|
}
|
|
1060
1109
|
ngOnDestroy() {
|
|
1061
1110
|
super.ngOnDestroy();
|
|
1062
1111
|
this._syncSub.destroy();
|
|
1063
1112
|
this._valueSub.destroy();
|
|
1064
1113
|
this._filterSub.destroy();
|
|
1114
|
+
this._minMaxDateRangeSub.destroy();
|
|
1065
1115
|
this._exclusionsSub.destroy();
|
|
1066
1116
|
this._formControlObs.complete();
|
|
1067
1117
|
}
|
|
@@ -1126,6 +1176,7 @@ DbxFormCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
|
|
|
1126
1176
|
DbxScheduleSelectionCalendarSelectionToggleButtonComponent
|
|
1127
1177
|
], imports: [
|
|
1128
1178
|
//
|
|
1179
|
+
DbxInjectionComponentModule,
|
|
1129
1180
|
DbxActionModule,
|
|
1130
1181
|
DbxFormModule,
|
|
1131
1182
|
DbxFormlyModule,
|
|
@@ -1162,6 +1213,7 @@ DbxFormCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
|
|
|
1162
1213
|
] });
|
|
1163
1214
|
DbxFormCalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormCalendarModule, imports: [
|
|
1164
1215
|
//
|
|
1216
|
+
DbxInjectionComponentModule,
|
|
1165
1217
|
DbxActionModule,
|
|
1166
1218
|
DbxFormModule,
|
|
1167
1219
|
DbxFormlyModule,
|
|
@@ -1187,6 +1239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1187
1239
|
args: [{
|
|
1188
1240
|
imports: [
|
|
1189
1241
|
//
|
|
1242
|
+
DbxInjectionComponentModule,
|
|
1190
1243
|
DbxActionModule,
|
|
1191
1244
|
DbxFormModule,
|
|
1192
1245
|
DbxFormlyModule,
|
|
@@ -1260,5 +1313,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1260
1313
|
* Generated bundle index. Do not edit.
|
|
1261
1314
|
*/
|
|
1262
1315
|
|
|
1263
|
-
export { CalendarScheduleSelectionDayState, 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,
|
|
1316
|
+
export { CalendarScheduleSelectionDayState, 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, computeCalendarScheduleSelectionDateBlockRange, computeCalendarScheduleSelectionRange, computeScheduleSelectionRangeAndExclusion, computeScheduleSelectionValue, dateScheduleRangeField, dbxScheduleSelectionCalendarDateDaysFormDayFields, dbxScheduleSelectionCalendarDateDaysFormFields, defaultCalendarScheduleSelectionCellContentFactory, finalizeNewCalendarScheduleSelectionState, initialCalendarScheduleSelectionState, isEnabledDayInCalendarScheduleSelectionState, noSelectionCalendarScheduleSelectionState, provideCalendarScheduleSelectionStoreIfParentIsUnavailable, updateStateWithChangedDates, updateStateWithChangedRange, updateStateWithChangedScheduleDays, updateStateWithComputeSelectionResultRelativeToFilter, updateStateWithDateScheduleRangeValue, updateStateWithExclusions, updateStateWithFilter, updateStateWithInitialSelectionState, updateStateWithMinMaxDateRange };
|
|
1264
1317
|
//# sourceMappingURL=dereekb-dbx-form-calendar.mjs.map
|