@dereekb/dbx-form 9.24.46 → 9.25.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/calendar/lib/calendar.schedule.selection.d.ts +3 -3
- package/calendar/lib/calendar.schedule.selection.store.d.ts +86 -57
- package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +20 -18
- package/calendar/lib/field/schedule/calendar.schedule.field.d.ts +3 -3
- package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +4 -4
- package/esm2020/calendar/lib/calendar.module.mjs +1 -1
- package/esm2020/calendar/lib/calendar.schedule.selection.days.component.mjs +6 -6
- package/esm2020/calendar/lib/calendar.schedule.selection.mjs +1 -1
- package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +100 -66
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +10 -13
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +2 -3
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.module.mjs +10 -10
- package/fesm2015/dereekb-dbx-form-calendar.mjs +124 -90
- package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-calendar.mjs +121 -91
- package/fesm2020/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/lib/extension/calendar/_calendar.scss +29 -0
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
|
@@ -7,7 +7,7 @@ import { Injectable, SkipSelf, Directive, Injector, Optional, Component, Inject,
|
|
|
7
7
|
import { FieldType } from '@ngx-formly/material';
|
|
8
8
|
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, of, combineLatestWith, BehaviorSubject, filter, combineLatest, startWith, throttleTime } from 'rxjs';
|
|
9
9
|
import { filterMaybe, distinctUntilHasDifferentValues, SubscriptionObject, asObservableFromGetter, asObservable } from '@dereekb/rxjs';
|
|
10
|
-
import {
|
|
10
|
+
import { DateCellScheduleDayCode, expandDateCellScheduleDayCodesToDayOfWeekSet, dateCellTimingStartsAtForStartOfDay, dateCellTimingRelativeIndexFactory, dateCellDayOfWeekFactory, findMaxDate, findMinDate, isSameDateRange, isSameDateDay, isSameDate, dateCellTimingDateFactory, expandDateCellScheduleRange, formatToISO8601DayString, isSameDateCellScheduleDateRange, dateCellTimingRelativeIndexArrayFactory, isInfiniteDateRange, copyDateCellScheduleDateFilterConfig, dateCellScheduleDateFilter, dateTimezoneUtcNormal, fullDateCellScheduleRange, expandDateCellScheduleDayCodes, fullWeekDateCellScheduleDayCodes, dateCellScheduleDayCodesAreSetsEquivalent, simplifyDateCellScheduleDayCodes, isDateInDateRangeFunction, isDateWithinDateCellRangeFunction, copyHoursAndMinutesFromDate, dateCellScheduleEncodedWeek, dateCellTimingStartDateFactory, enabledDaysFromDateCellScheduleDayCodes, dateCellScheduleDayCodesFromEnabledDays, formatToMonthDayString, dateRange, DateRangeType } from '@dereekb/date';
|
|
11
11
|
import { isInAllowedDaysOfWeekSet, mapValuesToSet, unique, mergeArrays, iterableToArray, range, toggleInSet, removeFromSet, addToSet, isIndexNumberInIndexRangeFunction, minAndMaxNumber, getDaysOfWeekNames, reduceBooleansWithAnd, mergeObjects, KeyValueTypleValueFilter } from '@dereekb/util';
|
|
12
12
|
import { ComponentStore } from '@ngrx/component-store';
|
|
13
13
|
import { startOfDay, endOfDay, isBefore, endOfWeek } from 'date-fns';
|
|
@@ -37,7 +37,7 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
|
37
37
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
38
38
|
|
|
39
39
|
function dateScheduleRangeField(config = {}) {
|
|
40
|
-
const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig,
|
|
40
|
+
const { key = 'schedule', appearance, hideCustomize, allowTextInput, filter, timezone, initialSelectionState, computeSelectionResultRelativeToFilter, exclusions, defaultScheduleDays, minMaxDateRange, cellContentFactory, dialogContentConfig, customDetailsConfig } = config;
|
|
41
41
|
const fieldConfig = {
|
|
42
42
|
...formlyField({
|
|
43
43
|
key,
|
|
@@ -53,7 +53,6 @@ function dateScheduleRangeField(config = {}) {
|
|
|
53
53
|
filter,
|
|
54
54
|
exclusions,
|
|
55
55
|
dialogContentConfig,
|
|
56
|
-
closeDialogConfig,
|
|
57
56
|
computeSelectionResultRelativeToFilter,
|
|
58
57
|
initialSelectionState,
|
|
59
58
|
cellContentFactory,
|
|
@@ -95,13 +94,15 @@ const defaultCalendarScheduleSelectionCellContentFactory = (day) => {
|
|
|
95
94
|
};
|
|
96
95
|
|
|
97
96
|
function initialCalendarScheduleSelectionState() {
|
|
98
|
-
const defaultScheduleDays = new Set([
|
|
99
|
-
const allowedDaysOfWeek =
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
const
|
|
97
|
+
const defaultScheduleDays = new Set([DateCellScheduleDayCode.WEEKDAY, DateCellScheduleDayCode.WEEKEND]);
|
|
98
|
+
const allowedDaysOfWeek = expandDateCellScheduleDayCodesToDayOfWeekSet(defaultScheduleDays);
|
|
99
|
+
const defaultStartsAt = dateCellTimingStartsAtForStartOfDay(); // get midnight of the current timezone
|
|
100
|
+
const { startsAt, timezone: systemTimezone } = defaultStartsAt;
|
|
101
|
+
const indexFactory = dateCellTimingRelativeIndexFactory(defaultStartsAt);
|
|
102
|
+
const indexDayOfWeek = dateCellDayOfWeekFactory(startsAt);
|
|
103
103
|
return {
|
|
104
|
-
start,
|
|
104
|
+
start: startsAt,
|
|
105
|
+
systemTimezone,
|
|
105
106
|
indexFactory,
|
|
106
107
|
toggledIndexes: new Set(),
|
|
107
108
|
defaultScheduleDays,
|
|
@@ -170,19 +171,19 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
170
171
|
this.allowedDaysOfWeek$ = this.state$.pipe(map((x) => x.allowedDaysOfWeek), distinctUntilHasDifferentValues(), shareReplay(1));
|
|
171
172
|
this.isInAllowedDaysOfWeekFunction$ = this.allowedDaysOfWeek$.pipe(map((x) => isInAllowedDaysOfWeekSet(x)), shareReplay(1));
|
|
172
173
|
this.scheduleDays$ = this.state$.pipe(map((x) => x.effectiveScheduleDays), distinctUntilHasDifferentValues(), shareReplay(1));
|
|
173
|
-
this.
|
|
174
|
-
this.
|
|
175
|
-
this.
|
|
174
|
+
this.outputTimezone$ = this.state$.pipe(map((x) => x.outputTimezone), distinctUntilChanged(), shareReplay(1));
|
|
175
|
+
this.effectiveOutputTimezone$ = this.state$.pipe(map((x) => (!calendarScheduleStartBeingUsedFromFilter(x) && x.outputTimezone ? x.outputTimezone : undefined)), distinctUntilChanged(), shareReplay(1));
|
|
176
|
+
this.effectiveOutputTimezoneNormal$ = this.state$.pipe(map((x) => (!calendarScheduleStartBeingUsedFromFilter(x) && x.outputTimezoneNormal ? x.outputTimezoneNormal : undefined)), distinctUntilChanged(), shareReplay(1));
|
|
176
177
|
this.currentSelectionValue$ = this.state$.pipe(map((x) => x.currentSelectionValue), shareReplay(1));
|
|
177
178
|
this.currentSelectionValueStart$ = this.currentSelectionValue$.pipe(map((x) => x?.dateScheduleRange.start), distinctUntilChanged(isSameDate), shareReplay(1));
|
|
178
|
-
this.
|
|
179
|
-
this.
|
|
180
|
-
this.selectionValueSelectedIndexes$ = this.
|
|
181
|
-
this.selectionValueSelectedDates$ = this.
|
|
179
|
+
this.currentSelectionValueDateCellTimingDateFactory$ = this.currentSelectionValue$.pipe(map((x) => (x ? dateCellTimingDateFactory({ startsAt: x.dateScheduleRange.start, timezone: x.dateScheduleRange.timezone }) : undefined)), shareReplay(1));
|
|
180
|
+
this.currentSelectionValueDateCellDurationSpanExpansion$ = this.currentSelectionValue$.pipe(map((x) => (x ? expandDateCellScheduleRange({ dateCellScheduleRange: x.dateScheduleRange }) : [])), shareReplay(1));
|
|
181
|
+
this.selectionValueSelectedIndexes$ = this.currentSelectionValueDateCellDurationSpanExpansion$.pipe(map((x) => new Set(x.map((y) => y.i))), distinctUntilHasDifferentValues(), shareReplay(1));
|
|
182
|
+
this.selectionValueSelectedDates$ = this.currentSelectionValueDateCellTimingDateFactory$.pipe(switchMap((dateFactory) => {
|
|
182
183
|
return dateFactory ? this.selectionValueSelectedIndexes$.pipe(map((x) => mapValuesToSet(x, (y) => formatToISO8601DayString(dateFactory(y))))) : of(new Set());
|
|
183
184
|
}), shareReplay(1));
|
|
184
185
|
this.selectionValue$ = this.currentSelectionValue$.pipe(filterMaybe(), shareReplay(1));
|
|
185
|
-
this.currentSelectionValueWithTimezone$ = this.currentSelectionValue$.pipe(combineLatestWith(this.
|
|
186
|
+
this.currentSelectionValueWithTimezone$ = this.currentSelectionValue$.pipe(combineLatestWith(this.effectiveOutputTimezoneNormal$), map(([x, timezoneNormal]) => {
|
|
186
187
|
if (x && timezoneNormal) {
|
|
187
188
|
x = {
|
|
188
189
|
dateScheduleRange: {
|
|
@@ -195,7 +196,7 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
195
196
|
return x;
|
|
196
197
|
}), distinctUntilChanged(), shareReplay(1));
|
|
197
198
|
this.selectionValueWithTimezone$ = this.currentSelectionValueWithTimezone$.pipe(filterMaybe(), shareReplay(1));
|
|
198
|
-
this.
|
|
199
|
+
this.selectionValueWithTimezoneDateCellDurationSpanExpansion$ = this.selectionValueWithTimezone$.pipe(map((x) => expandDateCellScheduleRange({ dateCellScheduleRange: x.dateScheduleRange })), shareReplay(1));
|
|
199
200
|
this.nextToggleSelection$ = this.hasConfiguredMinMaxRange$.pipe(switchMap((hasConfiguredMinMaxRange) => {
|
|
200
201
|
let obs;
|
|
201
202
|
if (hasConfiguredMinMaxRange) {
|
|
@@ -206,8 +207,8 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
206
207
|
}
|
|
207
208
|
return obs;
|
|
208
209
|
}), shareReplay(1));
|
|
209
|
-
this.
|
|
210
|
-
this.
|
|
210
|
+
this.currentDateCellScheduleRangeValue$ = this.currentSelectionValueWithTimezone$.pipe(map((x) => x?.dateScheduleRange), distinctUntilChanged(isSameDateCellScheduleDateRange), shareReplay(1));
|
|
211
|
+
this.dateCellScheduleRangeValue$ = this.currentDateCellScheduleRangeValue$.pipe(filterMaybe(), shareReplay(1));
|
|
211
212
|
this.cellContentFactory$ = this.state$.pipe(map((x) => x.cellContentFactory), distinctUntilChanged(), shareReplay(1));
|
|
212
213
|
this.isCustomized$ = this.state$.pipe(map((x) => x.toggledIndexes.size > 0), distinctUntilChanged(), shareReplay(1));
|
|
213
214
|
this.isViewReadonly$ = this.state$.pipe(map((x) => x.isViewReadonly), distinctUntilChanged(), shareReplay(1));
|
|
@@ -218,7 +219,7 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
218
219
|
this.setExclusions = this.updater(updateStateWithExclusions);
|
|
219
220
|
this.setComputeSelectionResultRelativeToFilter = this.updater(updateStateWithComputeSelectionResultRelativeToFilter);
|
|
220
221
|
this.clearFilter = this.updater((state) => updateStateWithFilter(state, undefined));
|
|
221
|
-
this.
|
|
222
|
+
this.setOutputTimezone = this.updater(updateStateWithTimezoneValue);
|
|
222
223
|
this.setInputRange = this.updater(updateStateWithChangedRange);
|
|
223
224
|
// NOTE: Selected dates are NOT selected indexes. They are the internal selected dates that are excluded from the selection.
|
|
224
225
|
this.toggleSelectedDates = this.updater((state, toggle) => updateStateWithChangedDates(state, { toggle }));
|
|
@@ -231,8 +232,8 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
231
232
|
this.setInitialSelectionState = this.updater(updateStateWithInitialSelectionState);
|
|
232
233
|
this.setDefaultScheduleDays = this.updater(updateStateWithChangedDefaultScheduleDays);
|
|
233
234
|
this.setScheduleDays = this.updater(updateStateWithChangedScheduleDays);
|
|
234
|
-
this.setAllowAllScheduleDays = this.updater((state) => updateStateWithChangedScheduleDays(state, [
|
|
235
|
-
this.setDateScheduleRangeValue = this.updater((state, value) =>
|
|
235
|
+
this.setAllowAllScheduleDays = this.updater((state) => updateStateWithChangedScheduleDays(state, [DateCellScheduleDayCode.WEEKDAY, DateCellScheduleDayCode.WEEKEND]));
|
|
236
|
+
this.setDateScheduleRangeValue = this.updater((state, value) => updateStateWithDateCellScheduleRangeValue(state, value));
|
|
236
237
|
this.setCellContentFactory = this.updater((state, cellContentFactory) => ({ ...state, cellContentFactory }));
|
|
237
238
|
/**
|
|
238
239
|
* Used by the parent view to propogate a readonly state.
|
|
@@ -240,6 +241,31 @@ class DbxCalendarScheduleSelectionStore extends ComponentStore {
|
|
|
240
241
|
* Should typically not be used by the user directly with the intention of the parent synchronizing to this state.
|
|
241
242
|
*/
|
|
242
243
|
this.setViewReadonlyState = this.updater((state, isViewReadonly) => ({ ...state, isViewReadonly }));
|
|
244
|
+
// MARK: Compat
|
|
245
|
+
/**
|
|
246
|
+
* @deprecated use setOutputTimezone instead.
|
|
247
|
+
*/
|
|
248
|
+
this.setTimezone = this.setOutputTimezone;
|
|
249
|
+
/**
|
|
250
|
+
* @deprecated use ouputTimezone$
|
|
251
|
+
*/
|
|
252
|
+
this.currentTimezone$ = this.outputTimezone$;
|
|
253
|
+
/**
|
|
254
|
+
* @deprecated use effectiveOuputTimezone$
|
|
255
|
+
*/
|
|
256
|
+
this.effectiveTimezone$ = this.effectiveOutputTimezone$;
|
|
257
|
+
/**
|
|
258
|
+
* @deprecated use effectiveOuputTimezoneNormal$
|
|
259
|
+
*/
|
|
260
|
+
this.effectiveTimezoneNormal$ = this.effectiveOutputTimezoneNormal$;
|
|
261
|
+
/**
|
|
262
|
+
* @deprecated use currentSelectionValueDateCellDurationSpanExpansion$
|
|
263
|
+
*/
|
|
264
|
+
this.currentSelectionValueDateBlockDurationSpan$ = this.currentSelectionValueDateCellDurationSpanExpansion$;
|
|
265
|
+
/**
|
|
266
|
+
* @deprecated use selectionValueWithTimezoneDateCellDurationSpanExpansion$
|
|
267
|
+
*/
|
|
268
|
+
this.selectionValueWithTimezoneDateBlockDurationSpan$ = this.selectionValueWithTimezoneDateCellDurationSpanExpansion$;
|
|
243
269
|
}
|
|
244
270
|
}
|
|
245
271
|
DbxCalendarScheduleSelectionStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarScheduleSelectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -265,7 +291,7 @@ function updateStateWithExclusions(state, inputExclusions) {
|
|
|
265
291
|
let computedExclusions;
|
|
266
292
|
if (inputExclusions) {
|
|
267
293
|
const { indexFactory } = state;
|
|
268
|
-
const indexArrayFactory =
|
|
294
|
+
const indexArrayFactory = dateCellTimingRelativeIndexArrayFactory(indexFactory);
|
|
269
295
|
computedExclusions = indexArrayFactory(inputExclusions);
|
|
270
296
|
}
|
|
271
297
|
state = { ...state, inputExclusions, computedExclusions };
|
|
@@ -285,14 +311,14 @@ function updateStateWithMinMaxDateRange(state, minMaxDateRange) {
|
|
|
285
311
|
return updateStateWithFilter(state, state.filter);
|
|
286
312
|
}
|
|
287
313
|
function updateStateWithFilter(state, inputFilter) {
|
|
288
|
-
const { computedExclusions: exclusions, minMaxDateRange } = state;
|
|
314
|
+
const { computedExclusions: exclusions, minMaxDateRange, systemTimezone } = state;
|
|
289
315
|
let isEnabledFilterDay = () => true;
|
|
290
316
|
let filter = null;
|
|
291
317
|
// create the filter using inputFilter, exclusions, and minMaxDateRange
|
|
292
318
|
if (inputFilter || exclusions?.length || minMaxDateRange) {
|
|
293
319
|
let enabledFilter;
|
|
294
320
|
if (inputFilter) {
|
|
295
|
-
filter =
|
|
321
|
+
filter = copyDateCellScheduleDateFilterConfig(inputFilter); // copy filter
|
|
296
322
|
if (exclusions?.length) {
|
|
297
323
|
enabledFilter = {
|
|
298
324
|
...filter,
|
|
@@ -319,15 +345,15 @@ function updateStateWithFilter(state, inputFilter) {
|
|
|
319
345
|
*/
|
|
320
346
|
enabledFilter.start = inputFilter?.start ?? state.start;
|
|
321
347
|
// create the filter
|
|
322
|
-
isEnabledFilterDay =
|
|
348
|
+
isEnabledFilterDay = dateCellScheduleDateFilter(enabledFilter);
|
|
323
349
|
}
|
|
324
350
|
state = { ...state, filter, isEnabledFilterDay };
|
|
325
351
|
// For the same reason as above, use the filter's start date as the relative start if applicable.
|
|
326
352
|
if (filter && filter.start) {
|
|
327
353
|
const start = filter.start;
|
|
328
354
|
state.start = start;
|
|
329
|
-
state.indexFactory =
|
|
330
|
-
state.indexDayOfWeek =
|
|
355
|
+
state.indexFactory = dateCellTimingRelativeIndexFactory({ startsAt: start, timezone: filter.timezone ?? systemTimezone });
|
|
356
|
+
state.indexDayOfWeek = dateCellDayOfWeekFactory(start);
|
|
331
357
|
}
|
|
332
358
|
// attempt to re-apply the initial selection state once filter is applied
|
|
333
359
|
if (state.initialSelectionState) {
|
|
@@ -345,42 +371,48 @@ function updateStateWithTimezoneValue(state, timezone) {
|
|
|
345
371
|
const timezoneNormal = timezone ? dateTimezoneUtcNormal({ timezone }) : undefined;
|
|
346
372
|
if (timezoneNormal && currentSelectionValue) {
|
|
347
373
|
// update the selection value to reflect the timezone changes.
|
|
348
|
-
const { dateScheduleRange:
|
|
349
|
-
const start = timezoneNormal.targetDateToSystemDate(
|
|
350
|
-
const end = timezoneNormal.targetDateToSystemDate(
|
|
374
|
+
const { dateScheduleRange: currentDateCellScheduleRange } = currentSelectionValue;
|
|
375
|
+
const start = timezoneNormal.targetDateToSystemDate(currentDateCellScheduleRange.start);
|
|
376
|
+
const end = timezoneNormal.targetDateToSystemDate(currentDateCellScheduleRange.end);
|
|
351
377
|
const newRange = {
|
|
352
378
|
...currentSelectionValue.dateScheduleRange,
|
|
353
379
|
start,
|
|
354
380
|
end
|
|
355
381
|
};
|
|
356
|
-
return
|
|
382
|
+
return updateStateWithDateCellScheduleRangeValue({ ...state, outputTimezone: timezone, outputTimezoneNormal: timezoneNormal }, newRange);
|
|
357
383
|
}
|
|
358
384
|
else {
|
|
359
|
-
return { ...state, timezone, timezoneNormal }; // no change in value
|
|
385
|
+
return { ...state, outputTimezone: timezone, outputTimezoneNormal: timezoneNormal }; // no change in value
|
|
360
386
|
}
|
|
361
387
|
}
|
|
362
|
-
function
|
|
363
|
-
const { timezoneNormal, currentSelectionValue } = state;
|
|
364
|
-
const
|
|
388
|
+
function updateStateWithDateCellScheduleRangeValue(state, inputChange) {
|
|
389
|
+
const { outputTimezoneNormal: timezoneNormal, currentSelectionValue } = state;
|
|
390
|
+
const currentDateCellScheduleRange = currentSelectionValue?.dateScheduleRange; // current range is always in system time
|
|
391
|
+
let change;
|
|
365
392
|
if (!calendarScheduleStartBeingUsedFromFilter(state) && timezoneNormal) {
|
|
366
393
|
// When using timezones, always return from the start of the day. Inputs are converted to the system time and used as the start of the day.
|
|
367
394
|
// Outputs remain accurate.
|
|
368
|
-
if (
|
|
395
|
+
if (inputChange) {
|
|
396
|
+
// calculate the schedule range
|
|
397
|
+
const fullChange = fullDateCellScheduleRange({ dateCellScheduleRange: inputChange });
|
|
398
|
+
// convert the start/end to system time
|
|
369
399
|
change = {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
400
|
+
start: startOfDay(timezoneNormal.systemDateToTargetDate(fullChange.start)),
|
|
401
|
+
end: startOfDay(timezoneNormal.systemDateToTargetDate(fullChange.end)),
|
|
402
|
+
w: fullChange.w,
|
|
403
|
+
ex: fullChange.ex,
|
|
404
|
+
timezone: fullChange.timezone
|
|
373
405
|
};
|
|
374
406
|
}
|
|
375
407
|
}
|
|
376
|
-
const isSameValue =
|
|
408
|
+
const isSameValue = isSameDateCellScheduleDateRange(currentDateCellScheduleRange, change);
|
|
377
409
|
if (isSameValue) {
|
|
378
410
|
return state;
|
|
379
411
|
}
|
|
380
412
|
else {
|
|
381
413
|
if (change != null) {
|
|
382
414
|
const nextState = { ...state, inputStart: change.start, inputEnd: change.end, toggledIndexes: new Set(change.ex) };
|
|
383
|
-
return updateStateWithChangedScheduleDays(finalizeNewCalendarScheduleSelectionState(nextState),
|
|
415
|
+
return updateStateWithChangedScheduleDays(finalizeNewCalendarScheduleSelectionState(nextState), expandDateCellScheduleDayCodes(change.w || '89'));
|
|
384
416
|
}
|
|
385
417
|
else {
|
|
386
418
|
return noSelectionCalendarScheduleSelectionState(state); // clear selection, retain disabled days
|
|
@@ -389,8 +421,8 @@ function updateStateWithDateScheduleRangeValue(state, change) {
|
|
|
389
421
|
}
|
|
390
422
|
function updateStateWithChangedDefaultScheduleDays(state, change) {
|
|
391
423
|
const { defaultScheduleDays: currentDefaultScheduleDays } = state;
|
|
392
|
-
const defaultScheduleDays = new Set(change ??
|
|
393
|
-
if (
|
|
424
|
+
const defaultScheduleDays = new Set(change ?? fullWeekDateCellScheduleDayCodes());
|
|
425
|
+
if (dateCellScheduleDayCodesAreSetsEquivalent(defaultScheduleDays, currentDefaultScheduleDays)) {
|
|
394
426
|
return state; // no change
|
|
395
427
|
}
|
|
396
428
|
else {
|
|
@@ -402,7 +434,7 @@ function updateStateWithChangedScheduleDays(state, change) {
|
|
|
402
434
|
const scheduleDays = new Set(change ?? []);
|
|
403
435
|
let newScheduleDays;
|
|
404
436
|
if (currentScheduleDays != null && change != null) {
|
|
405
|
-
if (
|
|
437
|
+
if (dateCellScheduleDayCodesAreSetsEquivalent(scheduleDays, currentScheduleDays)) {
|
|
406
438
|
newScheduleDays = undefined; //no change
|
|
407
439
|
}
|
|
408
440
|
else {
|
|
@@ -422,12 +454,12 @@ function updateStateWithChangedScheduleDays(state, change) {
|
|
|
422
454
|
function finalizeUpdateStateWithChangedScheduleDays(previousState, nextState) {
|
|
423
455
|
const previousScheduleDays = previousState.effectiveScheduleDays;
|
|
424
456
|
const nextScheduleDays = nextState.scheduleDays ?? nextState.defaultScheduleDays;
|
|
425
|
-
if (
|
|
457
|
+
if (dateCellScheduleDayCodesAreSetsEquivalent(nextScheduleDays, previousScheduleDays)) {
|
|
426
458
|
return nextState; // the default or input schedule changed but the schedule is still the same, so no need for an update.
|
|
427
459
|
}
|
|
428
460
|
else {
|
|
429
|
-
const effectiveScheduleDays = new Set(
|
|
430
|
-
const allowedDaysOfWeek =
|
|
461
|
+
const effectiveScheduleDays = new Set(simplifyDateCellScheduleDayCodes(nextScheduleDays));
|
|
462
|
+
const allowedDaysOfWeek = expandDateCellScheduleDayCodesToDayOfWeekSet(nextScheduleDays);
|
|
431
463
|
return finalizeNewCalendarScheduleSelectionState({
|
|
432
464
|
...nextState,
|
|
433
465
|
// update the effective schedule days and allowed days of week
|
|
@@ -547,10 +579,10 @@ function finalizeNewCalendarScheduleSelectionState(nextState) {
|
|
|
547
579
|
return nextState;
|
|
548
580
|
}
|
|
549
581
|
function isEnabledDayInCalendarScheduleSelectionState(state) {
|
|
550
|
-
const { allowedDaysOfWeek, indexFactory, inputStart, inputEnd, indexDayOfWeek } = state;
|
|
582
|
+
const { allowedDaysOfWeek, indexFactory, inputStart, inputEnd, indexDayOfWeek, systemTimezone } = state;
|
|
551
583
|
let isInStartAndEndRange;
|
|
552
584
|
if (inputStart && inputEnd) {
|
|
553
|
-
isInStartAndEndRange =
|
|
585
|
+
isInStartAndEndRange = isDateWithinDateCellRangeFunction({ startsAt: { startsAt: state.start, timezone: systemTimezone }, range: { start: inputStart, end: inputEnd } });
|
|
554
586
|
}
|
|
555
587
|
else {
|
|
556
588
|
isInStartAndEndRange = () => false;
|
|
@@ -566,14 +598,14 @@ function isEnabledDayInCalendarScheduleSelectionState(state) {
|
|
|
566
598
|
};
|
|
567
599
|
}
|
|
568
600
|
function computeScheduleSelectionValue(state) {
|
|
569
|
-
const { indexFactory, allowedDaysOfWeek, effectiveScheduleDays, indexDayOfWeek, computeSelectionResultRelativeToFilter, filter } = state;
|
|
601
|
+
const { indexFactory, allowedDaysOfWeek, effectiveScheduleDays, indexDayOfWeek, computeSelectionResultRelativeToFilter, filter, systemTimezone } = state;
|
|
570
602
|
const rangeAndExclusion = computeScheduleSelectionRangeAndExclusion(state);
|
|
571
603
|
if (rangeAndExclusion == null) {
|
|
572
604
|
return null;
|
|
573
605
|
}
|
|
574
|
-
const { start: rangeStart, end: rangeEnd, excluded: allExcluded,
|
|
606
|
+
const { start: rangeStart, end: rangeEnd, excluded: allExcluded, dateCellRange } = rangeAndExclusion;
|
|
575
607
|
let filterOffsetExcludedRange = [];
|
|
576
|
-
let indexOffset =
|
|
608
|
+
let indexOffset = dateCellRange.i;
|
|
577
609
|
let start = rangeStart;
|
|
578
610
|
let end = rangeEnd;
|
|
579
611
|
// If computeSelectionResultRelativeToFilter is true, then we need to offset the values to be relative to that start.
|
|
@@ -594,13 +626,14 @@ function computeScheduleSelectionValue(state) {
|
|
|
594
626
|
: allExcluded;
|
|
595
627
|
const offsetExcluded = excluded.map((x) => x - indexOffset); // set to the proper offset
|
|
596
628
|
const ex = [...filterOffsetExcludedRange, ...offsetExcluded];
|
|
597
|
-
const w =
|
|
629
|
+
const w = dateCellScheduleEncodedWeek(effectiveScheduleDays);
|
|
598
630
|
const d = []; // "included" blocks are never used/calculated.
|
|
599
631
|
// Always ensure the end is after or equal to the start.
|
|
600
632
|
if (isBefore(end, start)) {
|
|
601
633
|
end = start; // end is start
|
|
602
634
|
}
|
|
603
635
|
const dateScheduleRange = {
|
|
636
|
+
timezone: systemTimezone,
|
|
604
637
|
start,
|
|
605
638
|
end,
|
|
606
639
|
w,
|
|
@@ -613,20 +646,20 @@ function computeScheduleSelectionValue(state) {
|
|
|
613
646
|
};
|
|
614
647
|
}
|
|
615
648
|
function computeScheduleSelectionRangeAndExclusion(state) {
|
|
616
|
-
const { start: currentStart, isEnabledDay, isEnabledFilterDay } = state;
|
|
617
|
-
const dateFactory =
|
|
618
|
-
const
|
|
619
|
-
if (
|
|
649
|
+
const { start: currentStart, isEnabledDay, isEnabledFilterDay, systemTimezone } = state;
|
|
650
|
+
const dateFactory = dateCellTimingStartDateFactory({ startsAt: currentStart, timezone: systemTimezone });
|
|
651
|
+
const dateCellRange = computeCalendarScheduleSelectionDateCellRange(state);
|
|
652
|
+
if (dateCellRange == null) {
|
|
620
653
|
return null; // returns null if no items are selected.
|
|
621
654
|
}
|
|
622
|
-
const start = dateFactory(
|
|
623
|
-
const end = dateFactory(
|
|
624
|
-
const excluded = range(
|
|
655
|
+
const start = dateFactory(dateCellRange.i);
|
|
656
|
+
const end = dateFactory(dateCellRange.to);
|
|
657
|
+
const excluded = range(dateCellRange.i, dateCellRange.to + 1).filter((x) => {
|
|
625
658
|
const isExcludedIndex = !isEnabledDay(x) || !isEnabledFilterDay(x);
|
|
626
659
|
return isExcludedIndex;
|
|
627
660
|
});
|
|
628
661
|
const result = {
|
|
629
|
-
|
|
662
|
+
dateCellRange,
|
|
630
663
|
start,
|
|
631
664
|
end,
|
|
632
665
|
excluded
|
|
@@ -634,12 +667,12 @@ function computeScheduleSelectionRangeAndExclusion(state) {
|
|
|
634
667
|
return result;
|
|
635
668
|
}
|
|
636
669
|
function computeCalendarScheduleSelectionRange(state) {
|
|
637
|
-
const dateFactory =
|
|
638
|
-
const
|
|
639
|
-
const dateRange =
|
|
670
|
+
const dateFactory = dateCellTimingDateFactory({ startsAt: state.start, timezone: state.systemTimezone });
|
|
671
|
+
const dateCellRange = computeCalendarScheduleSelectionDateCellRange(state);
|
|
672
|
+
const dateRange = dateCellRange != null ? { start: dateFactory(dateCellRange.i), end: dateFactory(dateCellRange.to) } : undefined;
|
|
640
673
|
return dateRange;
|
|
641
674
|
}
|
|
642
|
-
function
|
|
675
|
+
function computeCalendarScheduleSelectionDateCellRange(state) {
|
|
643
676
|
const { allowedDaysOfWeek, indexFactory, inputStart, inputEnd, indexDayOfWeek, isEnabledDay, isEnabledFilterDay } = state;
|
|
644
677
|
const enabledExclusionIndexes = Array.from(state.toggledIndexes).filter((i) => allowedDaysOfWeek.has(indexDayOfWeek(i)));
|
|
645
678
|
const minAndMaxSelectedValues = minAndMaxNumber(enabledExclusionIndexes);
|
|
@@ -940,16 +973,16 @@ class DbxScheduleSelectionCalendarDateDaysComponent {
|
|
|
940
973
|
constructor(dbxCalendarStore, dbxCalendarScheduleSelectionStore) {
|
|
941
974
|
this.dbxCalendarStore = dbxCalendarStore;
|
|
942
975
|
this.dbxCalendarScheduleSelectionStore = dbxCalendarScheduleSelectionStore;
|
|
943
|
-
this.template$ = this.dbxCalendarScheduleSelectionStore.scheduleDays$.pipe(map(
|
|
976
|
+
this.template$ = this.dbxCalendarScheduleSelectionStore.scheduleDays$.pipe(map(enabledDaysFromDateCellScheduleDayCodes), shareReplay(1));
|
|
944
977
|
this.isFormModified = (value) => {
|
|
945
|
-
const newSetValue = new Set(
|
|
978
|
+
const newSetValue = new Set(dateCellScheduleDayCodesFromEnabledDays(value));
|
|
946
979
|
return this.dbxCalendarScheduleSelectionStore.scheduleDays$.pipe(map((currentSet) => {
|
|
947
|
-
const result = !
|
|
980
|
+
const result = !dateCellScheduleDayCodesAreSetsEquivalent(newSetValue, currentSet);
|
|
948
981
|
return result;
|
|
949
982
|
}));
|
|
950
983
|
};
|
|
951
984
|
this.updateScheduleDays = (value) => {
|
|
952
|
-
this.dbxCalendarScheduleSelectionStore.setScheduleDays(new Set(
|
|
985
|
+
this.dbxCalendarScheduleSelectionStore.setScheduleDays(new Set(dateCellScheduleDayCodesFromEnabledDays(value)));
|
|
953
986
|
return of(true);
|
|
954
987
|
};
|
|
955
988
|
}
|
|
@@ -1413,7 +1446,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1413
1446
|
type: Input
|
|
1414
1447
|
}] } });
|
|
1415
1448
|
|
|
1416
|
-
class
|
|
1449
|
+
class DbxFormCalendarDateCellScheduleRangeFieldComponent extends FieldType {
|
|
1417
1450
|
constructor(compact, dbxCalendarScheduleSelectionStore, ngZone) {
|
|
1418
1451
|
super();
|
|
1419
1452
|
this.compact = compact;
|
|
@@ -1476,9 +1509,6 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1476
1509
|
get computeSelectionResultRelativeToFilter() {
|
|
1477
1510
|
return this.props.computeSelectionResultRelativeToFilter;
|
|
1478
1511
|
}
|
|
1479
|
-
get closeDialogConfig() {
|
|
1480
|
-
return this.props.closeDialogConfig;
|
|
1481
|
-
}
|
|
1482
1512
|
get dialogContentConfig() {
|
|
1483
1513
|
return this.props.dialogContentConfig;
|
|
1484
1514
|
}
|
|
@@ -1490,10 +1520,10 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1490
1520
|
}
|
|
1491
1521
|
ngOnInit() {
|
|
1492
1522
|
this._formControlObs.next(this.formControl);
|
|
1493
|
-
this._syncSub.subscription = this.value$.pipe(distinctUntilChanged(
|
|
1523
|
+
this._syncSub.subscription = this.value$.pipe(distinctUntilChanged(isSameDateCellScheduleDateRange)).subscribe((x) => {
|
|
1494
1524
|
this.dbxCalendarScheduleSelectionStore.setDateScheduleRangeValue(x);
|
|
1495
1525
|
});
|
|
1496
|
-
this._valueSub.subscription = this.dbxCalendarScheduleSelectionStore.
|
|
1526
|
+
this._valueSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateCellScheduleRangeValue$.subscribe((x) => {
|
|
1497
1527
|
this.formControl.setValue(x);
|
|
1498
1528
|
});
|
|
1499
1529
|
const { timezone, minMaxDateRange, filter, exclusions, defaultScheduleDays } = this;
|
|
@@ -1533,22 +1563,22 @@ class DbxFormCalendarDateScheduleRangeFieldComponent extends FieldType {
|
|
|
1533
1563
|
this._formControlObs.complete();
|
|
1534
1564
|
}
|
|
1535
1565
|
}
|
|
1536
|
-
|
|
1537
|
-
|
|
1566
|
+
DbxFormCalendarDateCellScheduleRangeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormCalendarDateCellScheduleRangeFieldComponent, deps: [{ token: i1$1.CompactContextStore, optional: true }, { token: DbxCalendarScheduleSelectionStore }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1567
|
+
DbxFormCalendarDateCellScheduleRangeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxFormCalendarDateCellScheduleRangeFieldComponent, selector: "ng-component", providers: [provideCalendarScheduleSelectionStoreIfParentIsUnavailable()], usesInheritance: true, ngImport: i0, template: `
|
|
1538
1568
|
<div class="dbx-schedule-selection-field">
|
|
1539
1569
|
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClick" [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1540
|
-
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomize$ | async" [contentConfig]="dialogContentConfig"
|
|
1570
|
+
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomize$ | async" [contentConfig]="dialogContentConfig"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
1541
1571
|
<dbx-injection [config]="customDetailsConfig"></dbx-injection>
|
|
1542
1572
|
</dbx-schedule-selection-calendar-date-range>
|
|
1543
1573
|
</div>
|
|
1544
1574
|
`, isInline: true, dependencies: [{ kind: "component", type: i3$1.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateRangeComponent, selector: "dbx-schedule-selection-calendar-date-range", inputs: ["openPickerOnTextClick", "label", "hint", "disabled", "showCustomize", "required"] }, { kind: "component", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: ["buttonText", "disabled", "contentConfig", "closeConfig"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
1545
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type:
|
|
1575
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormCalendarDateCellScheduleRangeFieldComponent, decorators: [{
|
|
1546
1576
|
type: Component,
|
|
1547
1577
|
args: [{
|
|
1548
1578
|
template: `
|
|
1549
1579
|
<div class="dbx-schedule-selection-field">
|
|
1550
1580
|
<dbx-schedule-selection-calendar-date-range [openPickerOnTextClick]="openPickerOnTextClick" [showCustomize]="showCustomize" [required]="required" [disabled]="isReadonlyOrDisabled" [label]="label" [hint]="description">
|
|
1551
|
-
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomize$ | async" [contentConfig]="dialogContentConfig"
|
|
1581
|
+
<dbx-schedule-selection-calendar-date-dialog-button customizeButton [disabled]="disableCustomize$ | async" [contentConfig]="dialogContentConfig"></dbx-schedule-selection-calendar-date-dialog-button>
|
|
1552
1582
|
<dbx-injection [config]="customDetailsConfig"></dbx-injection>
|
|
1553
1583
|
</dbx-schedule-selection-calendar-date-range>
|
|
1554
1584
|
</div>
|
|
@@ -1687,10 +1717,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1687
1717
|
}]
|
|
1688
1718
|
}] });
|
|
1689
1719
|
|
|
1690
|
-
class
|
|
1720
|
+
class DbxFormDateCellScheduleRangeFieldModule {
|
|
1691
1721
|
}
|
|
1692
|
-
|
|
1693
|
-
|
|
1722
|
+
DbxFormDateCellScheduleRangeFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateCellScheduleRangeFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1723
|
+
DbxFormDateCellScheduleRangeFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateCellScheduleRangeFieldModule, declarations: [DbxFormCalendarDateCellScheduleRangeFieldComponent], imports: [DbxInjectionComponentModule,
|
|
1694
1724
|
CommonModule,
|
|
1695
1725
|
MatIconModule,
|
|
1696
1726
|
DbxFormCalendarModule,
|
|
@@ -1699,7 +1729,7 @@ DbxFormDateScheduleRangeFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersio
|
|
|
1699
1729
|
FormsModule,
|
|
1700
1730
|
ReactiveFormsModule,
|
|
1701
1731
|
MatInputModule, i1$3.FormlyModule] });
|
|
1702
|
-
|
|
1732
|
+
DbxFormDateCellScheduleRangeFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateCellScheduleRangeFieldModule, imports: [DbxInjectionComponentModule,
|
|
1703
1733
|
CommonModule,
|
|
1704
1734
|
MatIconModule,
|
|
1705
1735
|
DbxFormCalendarModule,
|
|
@@ -1709,9 +1739,9 @@ DbxFormDateScheduleRangeFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersio
|
|
|
1709
1739
|
ReactiveFormsModule,
|
|
1710
1740
|
MatInputModule,
|
|
1711
1741
|
FormlyModule.forChild({
|
|
1712
|
-
types: [{ name: 'date-schedule-range', component:
|
|
1742
|
+
types: [{ name: 'date-schedule-range', component: DbxFormCalendarDateCellScheduleRangeFieldComponent }]
|
|
1713
1743
|
})] });
|
|
1714
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type:
|
|
1744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormDateCellScheduleRangeFieldModule, decorators: [{
|
|
1715
1745
|
type: NgModule,
|
|
1716
1746
|
args: [{
|
|
1717
1747
|
imports: [
|
|
@@ -1725,10 +1755,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1725
1755
|
ReactiveFormsModule,
|
|
1726
1756
|
MatInputModule,
|
|
1727
1757
|
FormlyModule.forChild({
|
|
1728
|
-
types: [{ name: 'date-schedule-range', component:
|
|
1758
|
+
types: [{ name: 'date-schedule-range', component: DbxFormCalendarDateCellScheduleRangeFieldComponent }]
|
|
1729
1759
|
})
|
|
1730
1760
|
],
|
|
1731
|
-
declarations: [
|
|
1761
|
+
declarations: [DbxFormCalendarDateCellScheduleRangeFieldComponent]
|
|
1732
1762
|
}]
|
|
1733
1763
|
}] });
|
|
1734
1764
|
|
|
@@ -1738,5 +1768,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1738
1768
|
* Generated bundle index. Do not edit.
|
|
1739
1769
|
*/
|
|
1740
1770
|
|
|
1741
|
-
export { CalendarScheduleSelectionDayState, DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CLOSE_CONFIG_TOKEN, DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN, DEFAULT_SCHEDULE_SELECTION_CALENDAR_DATE_POPOVER_KEY, DbxCalendarScheduleSelectionStore, DbxCalendarScheduleSelectionStoreInjectionBlockDirective, DbxCalendarScheduleSelectionStoreProviderBlock,
|
|
1771
|
+
export { CalendarScheduleSelectionDayState, DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CLOSE_CONFIG_TOKEN, DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN, DEFAULT_SCHEDULE_SELECTION_CALENDAR_DATE_POPOVER_KEY, DbxCalendarScheduleSelectionStore, DbxCalendarScheduleSelectionStoreInjectionBlockDirective, DbxCalendarScheduleSelectionStoreProviderBlock, DbxFormCalendarDateCellScheduleRangeFieldComponent, DbxFormCalendarModule, DbxFormDateCellScheduleRangeFieldModule, 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, updateStateWithTimezoneValue };
|
|
1742
1772
|
//# sourceMappingURL=dereekb-dbx-form-calendar.mjs.map
|