@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.
- package/calendar/lib/calendar.schedule.selection.store.d.ts +42 -26
- package/esm2020/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +4 -2
- package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +109 -34
- package/esm2020/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +21 -19
- package/fesm2015/dereekb-dbx-form-calendar.mjs +131 -55
- package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-calendar.mjs +133 -54
- package/fesm2020/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/lib/extension/calendar/_calendar.scss +4 -1
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
|
@@ -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(
|
|
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
|
-
|
|
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,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkQsTUFBTSxPQUFPLHNEQUFzRDtJQW1CakUsWUFBcUIsY0FBaUMsRUFBVyxpQ0FBb0UsRUFBVyxRQUFrQjtRQUE3SSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVyxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWZ6SixjQUFTLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2xGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDMUg7aUJBQU07Z0JBQ0wsT0FBTyxtQkFBbUIsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRW1LLENBQUM7SUFFdEssV0FBVztRQUNULGdEQUFnRCxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkosQ0FBQzs7b0pBdkJVLHNEQUFzRDt3SUFBdEQsc0RBQXNELGtNQUN2QixVQUFVLDZCQUwxQzs7R0FFVDs0RkFFVSxzREFBc0Q7a0JBTmxFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsUUFBUSxFQUFFOztHQUVUO2lCQUNGOytLQUdDLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBmb3JtYXRUb01vbnRoRGF5U3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1idXR0b24gI2J1dHRvblBvcG92ZXJPcmlnaW4gaWNvbj1cImRhdGVfcmFuZ2VcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIiBbcmFpc2VkXT1cInRydWVcIiBjb2xvcj1cImFjY2VudFwiIFt0ZXh0XT1cImJ1dHRvblRleHQkIHwgYXN5bmNcIiAoYnV0dG9uQ2xpY2spPVwib3BlblBvcG92ZXIoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQge1xuICBAVmlld0NoaWxkKCdidXR0b25Qb3BvdmVyT3JpZ2luJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGJ1dHRvblBvcG92ZXJPcmlnaW4hOiBFbGVtZW50UmVmO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmlzVmlld1JlYWRvbmx5JDtcblxuICByZWFkb25seSBidXR0b25UZXh0JCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmN1cnJlbnREYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBpZiAoeD8uc3RhcnQgJiYgeC5lbmQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRTdHJpbmcgPSBmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguc3RhcnQpO1xuICAgICAgICBjb25zdCBlbmRTdHJpbmcgPSBmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguZW5kKTtcbiAgICAgICAgcmV0dXJuIHN0YXJ0U3RyaW5nID09PSBlbmRTdHJpbmcgPyBzdGFydFN0cmluZyA6IGAke2Zvcm1hdFRvTW9udGhEYXlTdHJpbmcoeC5zdGFydCl9IC0gJHtmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguZW5kKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdQaWNrIGEgRGF0ZSBSYW5nZSc7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwb3BvdmVyU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIHJlYWRvbmx5IGRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZTogRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLCByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgb3BlblBvcG92ZXIoKSB7XG4gICAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQ29tcG9uZW50Lm9wZW5Qb3BvdmVyKHRoaXMucG9wb3ZlclNlcnZpY2UsIHsgb3JpZ2luOiB0aGlzLmJ1dHRvblBvcG92ZXJPcmlnaW4sIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuICB9XG59XG4iXX0=
|