@dereekb/dbx-form 9.25.11 → 9.25.13

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.
@@ -1,5 +1,5 @@
1
1
  import { DateCellDayOfWeekFactory, DateCellIndex, DateCellRangeWithRange, DateRange, DateCellScheduleDateFilterConfig, DateCellScheduleDayCode, DateCellTimingRelativeIndexFactory, DateOrDateRangeOrDateCellIndexOrDateCellRange, DateTimezoneUtcNormalInstance, DateCell, DateCellDurationSpan, DateCellTimingRelativeIndexFactoryInput, DateCellScheduleDateRange, FullDateCellScheduleRangeInputDateRange } from '@dereekb/date';
2
- import { Maybe, TimezoneString, DecisionFunction, IterableOrValue, MaybeMap, DayOfWeek, AllOrNoneSelection, ArrayOrValue, ISO8601DayString } from '@dereekb/util';
2
+ import { Maybe, TimezoneString, DecisionFunction, IterableOrValue, MaybeMap, DayOfWeek, AllOrNoneSelection, ArrayOrValue, ISO8601DayString, Building } from '@dereekb/util';
3
3
  import { ComponentStore } from '@ngrx/component-store';
4
4
  import { Observable } from 'rxjs';
5
5
  import { CalendarScheduleSelectionCellContentFactory, CalendarScheduleSelectionValue } from './calendar.schedule.selection';
@@ -15,17 +15,27 @@ export interface CalendarScheduleSelectionInputDateRange {
15
15
  inputEnd: Date;
16
16
  }
17
17
  export declare type PartialCalendarScheduleSelectionInputDateRange = Partial<MaybeMap<CalendarScheduleSelectionInputDateRange>>;
18
+ /**
19
+ * DbxCalendarScheduleSelectionStore selection mode.
20
+ *
21
+ * When in single mode the toggle function is treated as a set that clears all values and only selects the toggle'd value.
22
+ */
23
+ export declare type DbxCalendarScheduleSelectionStoreSelectionMode = 'multiple' | 'single';
18
24
  export interface CalendarScheduleSelectionState extends PartialCalendarScheduleSelectionInputDateRange {
25
+ /**
26
+ * Selection mode for this calendar. Defaults to "multiple"
27
+ */
28
+ readonly selectionMode: DbxCalendarScheduleSelectionStoreSelectionMode;
19
29
  /**
20
30
  * Readonly state of the view.
21
31
  *
22
32
  * Does not affect state changes directly, but instead acts as a flag for the parent view to set and the consuming views to update on.
23
33
  */
24
- isViewReadonly?: Maybe<boolean>;
34
+ readonly isViewReadonly?: Maybe<boolean>;
25
35
  /**
26
36
  * Set of the days of week that are allowed by default.
27
37
  */
28
- defaultScheduleDays: Set<DateCellScheduleDayCode>;
38
+ readonly defaultScheduleDays: Set<DateCellScheduleDayCode>;
29
39
  /**
30
40
  * Filters the days of the schedule to only allow selecting days in the schedule.
31
41
  *
@@ -33,41 +43,41 @@ export interface CalendarScheduleSelectionState extends PartialCalendarScheduleS
33
43
  *
34
44
  * This is a copy of any set/configured input filter and will have a start date set from start or startsAt.
35
45
  */
36
- filter?: Maybe<DateCellScheduleDateFilterConfig>;
46
+ readonly filter?: Maybe<DateCellScheduleDateFilterConfig>;
37
47
  /**
38
48
  * Additional exclusions that may not be defined within the filter.
39
49
  */
40
- inputExclusions?: Maybe<ArrayOrValue<DateOrDateRangeOrDateCellIndexOrDateCellRange>>;
50
+ readonly inputExclusions?: Maybe<ArrayOrValue<DateOrDateRangeOrDateCellIndexOrDateCellRange>>;
41
51
  /**
42
52
  * The computed exclusions given the input exclusions.
43
53
  */
44
- computedExclusions?: Maybe<DateCellIndex[]>;
54
+ readonly computedExclusions?: Maybe<DateCellIndex[]>;
45
55
  /**
46
56
  * The min/max date range. Used for restricting the min/max value. Works with the filter. The greater/lesser of the start/end dates are used if both are provided.
47
57
  */
48
- minMaxDateRange?: Maybe<Partial<DateRange>>;
58
+ readonly minMaxDateRange?: Maybe<Partial<DateRange>>;
49
59
  /**
50
60
  * Start date. Is updated as the inputStart is modified or filter is provided that provides the start date.
51
61
  *
52
62
  * Defaults to today and the current timezone.
53
63
  */
54
- start: DateCellScheduleDateRange['start'];
64
+ readonly start: DateCellScheduleDateRange['start'];
55
65
  /**
56
66
  * System Timezone. Does not change.
57
67
  */
58
- systemTimezone: TimezoneString;
68
+ readonly systemTimezone: TimezoneString;
59
69
  /**
60
70
  * Timezone to use when outputting the value. Only influences the output start date.
61
71
  */
62
- outputTimezone?: Maybe<TimezoneString>;
72
+ readonly outputTimezone?: Maybe<TimezoneString>;
63
73
  /**
64
74
  * Current timezone normal with the current timezone.
65
75
  */
66
- outputTimezoneNormal?: Maybe<DateTimezoneUtcNormalInstance>;
76
+ readonly outputTimezoneNormal?: Maybe<DateTimezoneUtcNormalInstance>;
67
77
  /**
68
78
  * DateCellTimingRelativeIndexFactory
69
79
  */
70
- indexFactory: DateCellTimingRelativeIndexFactory;
80
+ readonly indexFactory: DateCellTimingRelativeIndexFactory;
71
81
  /**
72
82
  * Array of manually selected dates within the picked range. This is NOT the set of all selected indexes in terms of output.
73
83
  *
@@ -79,51 +89,51 @@ export interface CalendarScheduleSelectionState extends PartialCalendarScheduleS
79
89
  *
80
90
  * These indexes are relative to the start date.
81
91
  */
82
- toggledIndexes: Set<DateCellIndex>;
92
+ readonly toggledIndexes: Set<DateCellIndex>;
83
93
  /**
84
94
  * Days of the schedule that are allowed to be picked. If not defined, defaults to defaultScheduleDays.
85
95
  */
86
- scheduleDays?: Maybe<Set<DateCellScheduleDayCode>>;
96
+ readonly scheduleDays?: Maybe<Set<DateCellScheduleDayCode>>;
87
97
  /**
88
98
  * The current DateCellScheduleDayCode value.
89
99
  */
90
- effectiveScheduleDays: Set<DateCellScheduleDayCode>;
100
+ readonly effectiveScheduleDays: Set<DateCellScheduleDayCode>;
91
101
  /**
92
102
  * Set of the days of week that are allowed. Derived from the current schedule days value.
93
103
  */
94
- allowedDaysOfWeek: Set<DayOfWeek>;
104
+ readonly allowedDaysOfWeek: Set<DayOfWeek>;
95
105
  /**
96
106
  *
97
107
  */
98
- indexDayOfWeek: DateCellDayOfWeekFactory;
108
+ readonly indexDayOfWeek: DateCellDayOfWeekFactory;
99
109
  /**
100
110
  * Decision function that returns true if a value is enabled given the current filter.
101
111
  */
102
- isEnabledFilterDay: DecisionFunction<DateCellTimingRelativeIndexFactoryInput>;
112
+ readonly isEnabledFilterDay: DecisionFunction<DateCellTimingRelativeIndexFactoryInput>;
103
113
  /**
104
114
  * Decision function that returns true if a value is enabled.
105
115
  *
106
116
  * This function does not take the current filter into account.
107
117
  */
108
- isEnabledDay: DecisionFunction<DateCellTimingRelativeIndexFactoryInput>;
118
+ readonly isEnabledDay: DecisionFunction<DateCellTimingRelativeIndexFactoryInput>;
109
119
  /**
110
120
  * CalendarScheduleSelectionCellContentFactory for the view.
111
121
  */
112
- cellContentFactory: CalendarScheduleSelectionCellContentFactory;
122
+ readonly cellContentFactory: CalendarScheduleSelectionCellContentFactory;
113
123
  /**
114
124
  * Current selection value.
115
125
  */
116
- currentSelectionValue?: Maybe<CalendarScheduleSelectionValue>;
126
+ readonly currentSelectionValue?: Maybe<CalendarScheduleSelectionValue>;
117
127
  /**
118
128
  * Whether or not to use the filter as the start and end range instead of optimizing for the current index.
119
129
  *
120
130
  * Defaults to true.
121
131
  */
122
- computeSelectionResultRelativeToFilter?: Maybe<boolean>;
132
+ readonly computeSelectionResultRelativeToFilter?: Maybe<boolean>;
123
133
  /**
124
134
  * The initial selection state when the calendar is reset.
125
135
  */
126
- initialSelectionState?: Maybe<AllOrNoneSelection>;
136
+ readonly initialSelectionState?: Maybe<AllOrNoneSelection>;
127
137
  }
128
138
  export declare function initialCalendarScheduleSelectionState(): CalendarScheduleSelectionState;
129
139
  export declare function calendarScheduleMinAndMaxDateRange(x: Pick<CalendarScheduleSelectionState, 'filter' | 'minMaxDateRange'>): Partial<DateRange>;
@@ -133,6 +143,7 @@ export declare function calendarScheduleStartBeingUsedFromFilter(x: Pick<Calenda
133
143
  export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<CalendarScheduleSelectionState> {
134
144
  constructor();
135
145
  readonly toggleSelection: (observableOrValue?: void | Observable<void> | undefined) => import("rxjs").Subscription;
146
+ readonly selectionMode$: Observable<DbxCalendarScheduleSelectionStoreSelectionMode>;
136
147
  readonly filter$: Observable<Maybe<DateCellScheduleDateFilterConfig>>;
137
148
  readonly minMaxDateRange$: Observable<Maybe<Partial<DateRange>>>;
138
149
  readonly minDate$: Observable<Maybe<Date>>;
@@ -205,14 +216,18 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
205
216
  readonly addSelectedDates: (observableOrValue: IterableOrValue<DateCellTimingRelativeIndexFactoryInput> | Observable<IterableOrValue<DateCellTimingRelativeIndexFactoryInput>>) => import("rxjs").Subscription;
206
217
  readonly removeSelectedDates: (observableOrValue: IterableOrValue<DateCellTimingRelativeIndexFactoryInput> | Observable<IterableOrValue<DateCellTimingRelativeIndexFactoryInput>>) => import("rxjs").Subscription;
207
218
  readonly setSelectedDates: (observableOrValue: IterableOrValue<DateCellTimingRelativeIndexFactoryInput> | Observable<IterableOrValue<DateCellTimingRelativeIndexFactoryInput>>) => import("rxjs").Subscription;
208
- readonly setSelectedIndexes: (observableOrValue: IterableOrValue<DateCellTimingRelativeIndexFactoryInput> | Observable<IterableOrValue<DateCellTimingRelativeIndexFactoryInput>>) => import("rxjs").Subscription;
209
219
  readonly selectAllDates: (observableOrValue: AllOrNoneSelection | Observable<AllOrNoneSelection>) => import("rxjs").Subscription;
220
+ readonly setSelectedIndexes: (observableOrValue: IterableOrValue<DateCellTimingRelativeIndexFactoryInput> | Observable<IterableOrValue<DateCellTimingRelativeIndexFactoryInput>>) => import("rxjs").Subscription;
210
221
  readonly setInitialSelectionState: (() => void) | ((observableOrValue: Maybe<AllOrNoneSelection> | Observable<Maybe<AllOrNoneSelection>>) => import("rxjs").Subscription);
211
222
  readonly setDefaultScheduleDays: (() => void) | ((observableOrValue: Maybe<Iterable<DateCellScheduleDayCode>> | Observable<Maybe<Iterable<DateCellScheduleDayCode>>>) => import("rxjs").Subscription);
212
223
  readonly setScheduleDays: (() => void) | ((observableOrValue: Maybe<Iterable<DateCellScheduleDayCode>> | Observable<Maybe<Iterable<DateCellScheduleDayCode>>>) => import("rxjs").Subscription);
213
224
  readonly setAllowAllScheduleDays: () => void;
214
225
  readonly setDateScheduleRangeValue: (() => void) | ((observableOrValue: Maybe<FullDateCellScheduleRangeInputDateRange> | Observable<Maybe<FullDateCellScheduleRangeInputDateRange>>) => import("rxjs").Subscription);
215
226
  readonly setCellContentFactory: (observableOrValue: CalendarScheduleSelectionCellContentFactory<import("./calendar.schedule.selection").CalendarScheduleSelectionMetadata> | Observable<CalendarScheduleSelectionCellContentFactory<import("./calendar.schedule.selection").CalendarScheduleSelectionMetadata>>) => import("rxjs").Subscription;
227
+ /**
228
+ * Sets the selection mode.
229
+ */
230
+ readonly setSelectionMode: (observableOrValue: DbxCalendarScheduleSelectionStoreSelectionMode | Observable<DbxCalendarScheduleSelectionStoreSelectionMode>) => import("rxjs").Subscription;
216
231
  /**
217
232
  * Used by the parent view to propogate a readonly state.
218
233
  *
@@ -250,11 +265,12 @@ export declare function updateStateWithInitialSelectionState(state: CalendarSche
250
265
  export declare function updateStateWithComputeSelectionResultRelativeToFilter(currentState: CalendarScheduleSelectionState, computeSelectionResultRelativeToFilter: Maybe<boolean>): CalendarScheduleSelectionState;
251
266
  export declare function updateStateWithExclusions(state: CalendarScheduleSelectionState, inputExclusions: Maybe<ArrayOrValue<DateOrDateRangeOrDateCellIndexOrDateCellRange>>): CalendarScheduleSelectionState;
252
267
  export declare function updateStateWithMinMaxDateRange(state: CalendarScheduleSelectionState, minMaxDateRange: Maybe<Partial<DateRange>>): CalendarScheduleSelectionState;
253
- export declare function updateStateWithFilter(state: CalendarScheduleSelectionState, inputFilter: Maybe<DateCellScheduleDateFilterConfig>): CalendarScheduleSelectionState;
268
+ export declare function updateStateWithFilter(currentState: CalendarScheduleSelectionState, inputFilter: Maybe<DateCellScheduleDateFilterConfig>): CalendarScheduleSelectionState;
254
269
  export declare function updateStateWithTimezoneValue(state: CalendarScheduleSelectionState, timezone: Maybe<TimezoneString>): CalendarScheduleSelectionState;
255
270
  export declare function updateStateWithDateCellScheduleRangeValue(state: CalendarScheduleSelectionState, inputChange: Maybe<FullDateCellScheduleRangeInputDateRange>): CalendarScheduleSelectionState;
256
271
  export declare function updateStateWithChangedDefaultScheduleDays(state: CalendarScheduleSelectionState, change: Maybe<Iterable<DateCellScheduleDayCode>>): CalendarScheduleSelectionState;
257
272
  export declare function updateStateWithChangedScheduleDays(state: CalendarScheduleSelectionState, change: Maybe<Iterable<DateCellScheduleDayCode>>): CalendarScheduleSelectionState;
273
+ export declare function updateStateWithSelectionMode(state: CalendarScheduleSelectionState, selectionMode: DbxCalendarScheduleSelectionStoreSelectionMode): CalendarScheduleSelectionState;
258
274
  export declare function finalizeUpdateStateWithChangedScheduleDays(previousState: CalendarScheduleSelectionState, nextState: CalendarScheduleSelectionState): CalendarScheduleSelectionState;
259
275
  export interface CalendarScheduleSelectionStateDatesChange {
260
276
  reset?: true;
@@ -273,7 +289,7 @@ export interface CalendarScheduleSelectionStateDatesChange {
273
289
  export declare function updateStateWithChangedDates(state: CalendarScheduleSelectionState, change: CalendarScheduleSelectionStateDatesChange): CalendarScheduleSelectionState;
274
290
  export declare function noSelectionCalendarScheduleSelectionState(state: CalendarScheduleSelectionState): CalendarScheduleSelectionState;
275
291
  export declare function updateStateWithChangedRange(state: CalendarScheduleSelectionState, change: CalendarScheduleSelectionInputDateRange): CalendarScheduleSelectionState;
276
- export declare function finalizeNewCalendarScheduleSelectionState(nextState: CalendarScheduleSelectionState): CalendarScheduleSelectionState;
292
+ export declare function finalizeNewCalendarScheduleSelectionState(nextState: Building<CalendarScheduleSelectionState>): CalendarScheduleSelectionState;
277
293
  export declare function isEnabledDayInCalendarScheduleSelectionState(state: CalendarScheduleSelectionState): DecisionFunction<DateCellTimingRelativeIndexFactoryInput>;
278
294
  export declare function computeScheduleSelectionValue(state: CalendarScheduleSelectionState): Maybe<CalendarScheduleSelectionValue>;
279
295
  /**
@@ -16,7 +16,9 @@ export class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
16
16
  this.disabled$ = this.dbxCalendarScheduleSelectionStore.isViewReadonly$;
17
17
  this.buttonText$ = this.dbxCalendarScheduleSelectionStore.currentDateRange$.pipe(map((x) => {
18
18
  if (x?.start && x.end) {
19
- return `${formatToMonthDayString(x.start)} - ${formatToMonthDayString(x.end)}`;
19
+ const startString = formatToMonthDayString(x.start);
20
+ const endString = formatToMonthDayString(x.end);
21
+ return startString === endString ? startString : `${formatToMonthDayString(x.start)} - ${formatToMonthDayString(x.end)}`;
20
22
  }
21
23
  else {
22
24
  return 'Pick a Date Range';
@@ -43,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
43
45
  type: ViewChild,
44
46
  args: ['buttonPopoverOrigin', { read: ElementRef }]
45
47
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkQsTUFBTSxPQUFPLHNEQUFzRDtJQWlCakUsWUFBcUIsY0FBaUMsRUFBVyxpQ0FBb0UsRUFBVyxRQUFrQjtRQUE3SSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVyxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWJ6SixjQUFTLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2xGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDaEY7aUJBQU07Z0JBQ0wsT0FBTyxtQkFBbUIsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRW1LLENBQUM7SUFFdEssV0FBVztRQUNULGdEQUFnRCxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkosQ0FBQzs7b0pBckJVLHNEQUFzRDt3SUFBdEQsc0RBQXNELGtNQUN2QixVQUFVLDZCQUwxQzs7R0FFVDs0RkFFVSxzREFBc0Q7a0JBTmxFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsUUFBUSxFQUFFOztHQUVUO2lCQUNGOytLQUdDLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBmb3JtYXRUb01vbnRoRGF5U3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1idXR0b24gI2J1dHRvblBvcG92ZXJPcmlnaW4gaWNvbj1cImRhdGVfcmFuZ2VcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIiBbcmFpc2VkXT1cInRydWVcIiBjb2xvcj1cImFjY2VudFwiIFt0ZXh0XT1cImJ1dHRvblRleHQkIHwgYXN5bmNcIiAoYnV0dG9uQ2xpY2spPVwib3BlblBvcG92ZXIoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQge1xuICBAVmlld0NoaWxkKCdidXR0b25Qb3BvdmVyT3JpZ2luJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGJ1dHRvblBvcG92ZXJPcmlnaW4hOiBFbGVtZW50UmVmO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmlzVmlld1JlYWRvbmx5JDtcblxuICByZWFkb25seSBidXR0b25UZXh0JCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmN1cnJlbnREYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBpZiAoeD8uc3RhcnQgJiYgeC5lbmQpIHtcbiAgICAgICAgcmV0dXJuIGAke2Zvcm1hdFRvTW9udGhEYXlTdHJpbmcoeC5zdGFydCl9IC0gJHtmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguZW5kKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdQaWNrIGEgRGF0ZSBSYW5nZSc7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwb3BvdmVyU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIHJlYWRvbmx5IGRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZTogRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLCByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgb3BlblBvcG92ZXIoKSB7XG4gICAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQ29tcG9uZW50Lm9wZW5Qb3BvdmVyKHRoaXMucG9wb3ZlclNlcnZpY2UsIHsgb3JpZ2luOiB0aGlzLmJ1dHRvblBvcG92ZXJPcmlnaW4sIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuICB9XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkQsTUFBTSxPQUFPLHNEQUFzRDtJQW1CakUsWUFBcUIsY0FBaUMsRUFBVyxpQ0FBb0UsRUFBVyxRQUFrQjtRQUE3SSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVyxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWZ6SixjQUFTLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2xGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDMUg7aUJBQU07Z0JBQ0wsT0FBTyxtQkFBbUIsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRW1LLENBQUM7SUFFdEssV0FBVztRQUNULGdEQUFnRCxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkosQ0FBQzs7b0pBdkJVLHNEQUFzRDt3SUFBdEQsc0RBQXNELGtNQUN2QixVQUFVLDZCQUwxQzs7R0FFVDs0RkFFVSxzREFBc0Q7a0JBTmxFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsUUFBUSxFQUFFOztHQUVUO2lCQUNGOytLQUdDLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBmb3JtYXRUb01vbnRoRGF5U3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1idXR0b24gI2J1dHRvblBvcG92ZXJPcmlnaW4gaWNvbj1cImRhdGVfcmFuZ2VcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIiBbcmFpc2VkXT1cInRydWVcIiBjb2xvcj1cImFjY2VudFwiIFt0ZXh0XT1cImJ1dHRvblRleHQkIHwgYXN5bmNcIiAoYnV0dG9uQ2xpY2spPVwib3BlblBvcG92ZXIoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQge1xuICBAVmlld0NoaWxkKCdidXR0b25Qb3BvdmVyT3JpZ2luJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGJ1dHRvblBvcG92ZXJPcmlnaW4hOiBFbGVtZW50UmVmO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmlzVmlld1JlYWRvbmx5JDtcblxuICByZWFkb25seSBidXR0b25UZXh0JCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmN1cnJlbnREYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBpZiAoeD8uc3RhcnQgJiYgeC5lbmQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRTdHJpbmcgPSBmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguc3RhcnQpO1xuICAgICAgICBjb25zdCBlbmRTdHJpbmcgPSBmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguZW5kKTtcbiAgICAgICAgcmV0dXJuIHN0YXJ0U3RyaW5nID09PSBlbmRTdHJpbmcgPyBzdGFydFN0cmluZyA6IGAke2Zvcm1hdFRvTW9udGhEYXlTdHJpbmcoeC5zdGFydCl9IC0gJHtmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguZW5kKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdQaWNrIGEgRGF0ZSBSYW5nZSc7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwb3BvdmVyU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIHJlYWRvbmx5IGRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZTogRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLCByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgb3BlblBvcG92ZXIoKSB7XG4gICAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQ29tcG9uZW50Lm9wZW5Qb3BvdmVyKHRoaXMucG9wb3ZlclNlcnZpY2UsIHsgb3JpZ2luOiB0aGlzLmJ1dHRvblBvcG92ZXJPcmlnaW4sIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuICB9XG59XG4iXX0=