@dereekb/dbx-form 9.24.3 → 9.24.5
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/LICENSE +1 -1
- package/calendar/lib/calendar.schedule.selection.component.d.ts +20 -6
- package/calendar/lib/calendar.schedule.selection.store.d.ts +18 -4
- package/esm2020/calendar/lib/calendar.schedule.selection.component.mjs +57 -32
- package/esm2020/calendar/lib/calendar.schedule.selection.dialog.component.mjs +3 -3
- package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +72 -31
- package/fesm2015/dereekb-dbx-form-calendar.mjs +129 -64
- package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-calendar.mjs +129 -64
- package/fesm2020/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/mapbox/package.json +4 -4
- package/package.json +4 -4
package/LICENSE
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { CalendarEvent, CalendarMonthViewBeforeRenderEvent } from 'angular-calendar';
|
|
2
|
+
import { CalendarEvent, CalendarMonthViewBeforeRenderEvent, CalendarMonthViewDay } from 'angular-calendar';
|
|
3
3
|
import { Subject, Observable } from 'rxjs';
|
|
4
4
|
import { DbxCalendarEvent, DbxCalendarStore } from '@dereekb/dbx-web/calendar';
|
|
5
5
|
import { Maybe } from '@dereekb/util';
|
|
6
|
-
import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
|
|
6
|
+
import { CalendarScheduleSelectionState, DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
|
|
7
|
+
import { CalendarScheduleSelectionMetadata } from './calendar.schedule.selection';
|
|
7
8
|
import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
|
|
8
|
-
import { ObservableOrValueGetter } from '@dereekb/rxjs';
|
|
9
|
+
import { ObservableOrValue, ObservableOrValueGetter } from '@dereekb/rxjs';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
export interface DbxScheduleSelectionCalendarComponentConfig {
|
|
11
12
|
/**
|
|
@@ -16,7 +17,19 @@ export interface DbxScheduleSelectionCalendarComponentConfig {
|
|
|
16
17
|
* Configuration for displaying a custom selection button. When null/undefined/true is passed, will show the default DbxScheduleSelectionCalendarDatePopoverButtonComponent.
|
|
17
18
|
*/
|
|
18
19
|
readonly buttonInjectionConfig?: Maybe<ObservableOrValueGetter<Maybe<DbxInjectionComponentConfig<any> | boolean>>>;
|
|
20
|
+
/**
|
|
21
|
+
* Customize day function. When a new function is piped through the calendar is refreshed.
|
|
22
|
+
*/
|
|
23
|
+
readonly customizeDay?: Maybe<ObservableOrValue<Maybe<DbxScheduleSelectionCalendarBeforeMonthViewRenderModifyDayFunction>>>;
|
|
24
|
+
/**
|
|
25
|
+
* Optional full control over the beforeMonthViewRender
|
|
26
|
+
*/
|
|
27
|
+
readonly beforeMonthViewRenderFunctionFactory?: Maybe<ObservableOrValue<DbxScheduleSelectionCalendarBeforeMonthViewRenderFunctionFactory>>;
|
|
19
28
|
}
|
|
29
|
+
export declare type DbxScheduleSelectionCalendarBeforeMonthViewRenderModifyDayFunction = (viewDay: CalendarMonthViewDay<CalendarScheduleSelectionMetadata>, state: CalendarScheduleSelectionState) => void;
|
|
30
|
+
export declare type DbxScheduleSelectionCalendarBeforeMonthViewRenderFunction = (renderEvent: CalendarMonthViewBeforeRenderEvent) => void;
|
|
31
|
+
export declare type DbxScheduleSelectionCalendarBeforeMonthViewRenderFunctionFactory = (state: Observable<CalendarScheduleSelectionState>) => DbxScheduleSelectionCalendarBeforeMonthViewRenderFunction;
|
|
32
|
+
export declare function dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(inputModifyFn?: Maybe<DbxScheduleSelectionCalendarBeforeMonthViewRenderModifyDayFunction>): DbxScheduleSelectionCalendarBeforeMonthViewRenderFunctionFactory;
|
|
20
33
|
export declare class DbxScheduleSelectionCalendarComponent<T> implements OnInit, OnDestroy {
|
|
21
34
|
readonly calendarStore: DbxCalendarStore<T>;
|
|
22
35
|
readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
|
|
@@ -24,15 +37,16 @@ export declare class DbxScheduleSelectionCalendarComponent<T> implements OnInit,
|
|
|
24
37
|
readonly showClearSelectionButton$: Observable<boolean>;
|
|
25
38
|
readonly datePopoverButtonInjectionConfig$: Observable<Maybe<DbxInjectionComponentConfig<any>>>;
|
|
26
39
|
clickEvent: EventEmitter<DbxCalendarEvent<T>>;
|
|
27
|
-
readonly state$: Observable<
|
|
40
|
+
readonly state$: Observable<CalendarScheduleSelectionState>;
|
|
41
|
+
readonly beforeMonthViewRender$: Observable<DbxScheduleSelectionCalendarBeforeMonthViewRenderFunction>;
|
|
28
42
|
readonly refresh$: Subject<undefined>;
|
|
29
43
|
readonly events$: Observable<CalendarEvent<any>[]>;
|
|
30
44
|
readonly viewDate$: Observable<Date>;
|
|
31
45
|
constructor(calendarStore: DbxCalendarStore<T>, dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore);
|
|
32
46
|
ngOnInit(): void;
|
|
33
47
|
ngOnDestroy(): void;
|
|
34
|
-
get config(): DbxScheduleSelectionCalendarComponentConfig
|
|
35
|
-
set config(config: DbxScheduleSelectionCalendarComponentConfig);
|
|
48
|
+
get config(): Maybe<DbxScheduleSelectionCalendarComponentConfig>;
|
|
49
|
+
set config(config: Maybe<DbxScheduleSelectionCalendarComponentConfig>);
|
|
36
50
|
dayClicked({ date }: {
|
|
37
51
|
date: Date;
|
|
38
52
|
}): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DateBlockDayOfWeekFactory, DateBlockIndex, DateBlockRangeWithRange, DateOrDateBlockIndex, DateRange, DateScheduleDateFilterConfig, DateScheduleDayCode, DateScheduleRange, DateTimingRelativeIndexFactory, DateOrDateRangeOrDateBlockIndexOrDateBlockRange, DateTimezoneUtcNormalInstance } from '@dereekb/date';
|
|
1
|
+
import { DateBlockDayOfWeekFactory, DateBlockIndex, DateBlockRangeWithRange, DateOrDateBlockIndex, DateRange, DateScheduleDateFilterConfig, DateScheduleDayCode, DateScheduleRange, DateTimingRelativeIndexFactory, DateOrDateRangeOrDateBlockIndexOrDateBlockRange, DateTimezoneUtcNormalInstance, DateBlock, DateBlockDurationSpan } from '@dereekb/date';
|
|
2
2
|
import { Maybe, TimezoneString, DecisionFunction, IterableOrValue, MaybeMap, DayOfWeek, AllOrNoneSelection, ArrayOrValue } from '@dereekb/util';
|
|
3
3
|
import { ComponentStore } from '@ngrx/component-store';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
@@ -53,7 +53,7 @@ export interface CalendarScheduleSelectionState extends PartialCalendarScheduleS
|
|
|
53
53
|
*/
|
|
54
54
|
indexFactory: DateTimingRelativeIndexFactory;
|
|
55
55
|
/**
|
|
56
|
-
* Array of manually selected dates.
|
|
56
|
+
* Array of manually selected dates within the picked range. This is NOT the set of all selected indexes in terms of output.
|
|
57
57
|
*
|
|
58
58
|
* Values that exist outside of the "input" range are considered toggled on, while those
|
|
59
59
|
* that are selected within the range are considered toggled off.
|
|
@@ -63,7 +63,7 @@ export interface CalendarScheduleSelectionState extends PartialCalendarScheduleS
|
|
|
63
63
|
*
|
|
64
64
|
* These indexes are relative to the start date.
|
|
65
65
|
*/
|
|
66
|
-
|
|
66
|
+
toggledIndexes: Set<DateBlockIndex>;
|
|
67
67
|
/**
|
|
68
68
|
* Days of the schedule that are allowed to be picked.
|
|
69
69
|
*/
|
|
@@ -122,6 +122,9 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
|
|
|
122
122
|
readonly inputEnd$: Observable<Maybe<Date>>;
|
|
123
123
|
readonly currentInputRange$: Observable<Maybe<CalendarScheduleSelectionInputDateRange>>;
|
|
124
124
|
readonly inputRange$: Observable<CalendarScheduleSelectionInputDateRange>;
|
|
125
|
+
/**
|
|
126
|
+
* @deprecated This is not the same as the current selection value. This is the set of manually togged off dates. It will be removed in a future update.
|
|
127
|
+
*/
|
|
125
128
|
readonly selectedDates$: Observable<Set<DateBlockIndex>>;
|
|
126
129
|
readonly isEnabledFilterDayFunction$: Observable<DecisionFunction<DateOrDateBlockIndex>>;
|
|
127
130
|
readonly isEnabledDayFunction$: Observable<DecisionFunction<DateOrDateBlockIndex>>;
|
|
@@ -134,9 +137,13 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
|
|
|
134
137
|
readonly effectiveTimezone$: Observable<Maybe<TimezoneString>>;
|
|
135
138
|
readonly effectiveTimezoneNormal$: Observable<DateTimezoneUtcNormalInstance | undefined>;
|
|
136
139
|
readonly currentSelectionValue$: Observable<Maybe<CalendarScheduleSelectionValue>>;
|
|
140
|
+
readonly currentSelectionValueDateBlockDurationSpan$: Observable<DateBlockDurationSpan<DateBlock>[]>;
|
|
141
|
+
readonly selectionValueSelectedIndexes$: Observable<Set<DateBlockIndex>>;
|
|
142
|
+
readonly selectionValue$: Observable<CalendarScheduleSelectionValue>;
|
|
137
143
|
readonly currentSelectionValueWithTimezone$: Observable<Maybe<CalendarScheduleSelectionValue>>;
|
|
144
|
+
readonly selectionValueWithTimezone$: Observable<CalendarScheduleSelectionValue>;
|
|
145
|
+
readonly selectionValueWithTimezoneDateBlockDurationSpan$: Observable<DateBlockDurationSpan<DateBlock>[]>;
|
|
138
146
|
readonly nextToggleSelection$: Observable<Maybe<AllOrNoneSelection>>;
|
|
139
|
-
readonly selectionValue$: Observable<CalendarScheduleSelectionValue>;
|
|
140
147
|
readonly currentDateScheduleRangeValue$: Observable<Maybe<DateScheduleRange>>;
|
|
141
148
|
readonly dateScheduleRangeValue$: Observable<DateScheduleRange>;
|
|
142
149
|
readonly cellContentFactory$: Observable<CalendarScheduleSelectionCellContentFactory>;
|
|
@@ -152,6 +159,7 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
|
|
|
152
159
|
readonly addSelectedDates: (observableOrValue: IterableOrValue<DateOrDateBlockIndex> | Observable<IterableOrValue<DateOrDateBlockIndex>>) => import("rxjs").Subscription;
|
|
153
160
|
readonly removeSelectedDates: (observableOrValue: IterableOrValue<DateOrDateBlockIndex> | Observable<IterableOrValue<DateOrDateBlockIndex>>) => import("rxjs").Subscription;
|
|
154
161
|
readonly setSelectedDates: (observableOrValue: IterableOrValue<DateOrDateBlockIndex> | Observable<IterableOrValue<DateOrDateBlockIndex>>) => import("rxjs").Subscription;
|
|
162
|
+
readonly setSelectedIndexes: (observableOrValue: IterableOrValue<DateOrDateBlockIndex> | Observable<IterableOrValue<DateOrDateBlockIndex>>) => import("rxjs").Subscription;
|
|
155
163
|
readonly selectAllDates: (observableOrValue: AllOrNoneSelection | Observable<AllOrNoneSelection>) => import("rxjs").Subscription;
|
|
156
164
|
readonly setInitialSelectionState: (() => void) | ((observableOrValue: Maybe<AllOrNoneSelection> | Observable<Maybe<AllOrNoneSelection>>) => import("rxjs").Subscription);
|
|
157
165
|
readonly setScheduleDays: (() => void) | ((observableOrValue: Maybe<Iterable<DateScheduleDayCode>> | Observable<Maybe<Iterable<DateScheduleDayCode>>>) => import("rxjs").Subscription);
|
|
@@ -176,6 +184,12 @@ export interface CalendarScheduleSelectionStateDatesChange {
|
|
|
176
184
|
remove?: IterableOrValue<DateOrDateBlockIndex>;
|
|
177
185
|
set?: IterableOrValue<DateOrDateBlockIndex>;
|
|
178
186
|
selectAll?: AllOrNoneSelection;
|
|
187
|
+
/**
|
|
188
|
+
* Inverts the set date changing behavior so that the set input is treated as items that should be retained instead of excluded.
|
|
189
|
+
*
|
|
190
|
+
* Ignored when set is not used. Ignored for selectAll.
|
|
191
|
+
*/
|
|
192
|
+
invertSetBehavior?: boolean;
|
|
179
193
|
}
|
|
180
194
|
export declare function updateStateWithChangedDates(state: CalendarScheduleSelectionState, change: CalendarScheduleSelectionStateDatesChange): CalendarScheduleSelectionState;
|
|
181
195
|
export declare function noSelectionCalendarScheduleSelectionState(state: CalendarScheduleSelectionState): CalendarScheduleSelectionState;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Component, EventEmitter, Output, Input } from '@angular/core';
|
|
2
|
-
import { map, shareReplay, first, throttleTime, BehaviorSubject, distinctUntilChanged } from 'rxjs';
|
|
2
|
+
import { map, shareReplay, first, throttleTime, BehaviorSubject, distinctUntilChanged, combineLatest, switchMap } from 'rxjs';
|
|
3
3
|
import { DbxCalendarStore, prepareAndSortCalendarEvents } from '@dereekb/dbx-web/calendar';
|
|
4
4
|
import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
|
|
5
5
|
import { CalendarScheduleSelectionDayState } from './calendar.schedule.selection';
|
|
6
6
|
import { switchMapDbxInjectionComponentConfig } from '@dereekb/dbx-core';
|
|
7
|
+
import { asObservable } from '@dereekb/rxjs';
|
|
7
8
|
import { DbxScheduleSelectionCalendarDatePopoverButtonComponent } from './calendar.schedule.selection.popover.button.component';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@dereekb/dbx-web/calendar";
|
|
@@ -14,6 +15,46 @@ import * as i5 from "@dereekb/dbx-web";
|
|
|
14
15
|
import * as i6 from "angular-calendar";
|
|
15
16
|
import * as i7 from "./calendar.schedule.selection.cell.component";
|
|
16
17
|
import * as i8 from "./calendar.schedule.selection.toggle.button.component";
|
|
18
|
+
export function dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(inputModifyFn) {
|
|
19
|
+
const modifyFn = inputModifyFn || (() => { });
|
|
20
|
+
return (state$) => {
|
|
21
|
+
return (renderEvent) => {
|
|
22
|
+
const { body } = renderEvent;
|
|
23
|
+
// use latest/current state
|
|
24
|
+
state$.pipe(first()).subscribe((calendarScheduleState) => {
|
|
25
|
+
const { isEnabledDay, indexFactory, isEnabledFilterDay, allowedDaysOfWeek } = calendarScheduleState;
|
|
26
|
+
body.forEach((viewDay) => {
|
|
27
|
+
const { date } = viewDay;
|
|
28
|
+
const i = indexFactory(date);
|
|
29
|
+
const day = date.getDay();
|
|
30
|
+
let state;
|
|
31
|
+
if (!isEnabledFilterDay(i)) {
|
|
32
|
+
viewDay.cssClass = 'cal-day-not-applicable';
|
|
33
|
+
state = CalendarScheduleSelectionDayState.NOT_APPLICABLE;
|
|
34
|
+
}
|
|
35
|
+
else if (!allowedDaysOfWeek.has(day)) {
|
|
36
|
+
viewDay.cssClass = 'cal-day-disabled';
|
|
37
|
+
state = CalendarScheduleSelectionDayState.DISABLED;
|
|
38
|
+
}
|
|
39
|
+
else if (isEnabledDay(i)) {
|
|
40
|
+
viewDay.cssClass = 'cal-day-selected';
|
|
41
|
+
state = CalendarScheduleSelectionDayState.SELECTED;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
viewDay.cssClass = 'cal-day-not-selected';
|
|
45
|
+
state = CalendarScheduleSelectionDayState.NOT_SELECTED;
|
|
46
|
+
}
|
|
47
|
+
const meta = {
|
|
48
|
+
state,
|
|
49
|
+
i
|
|
50
|
+
};
|
|
51
|
+
viewDay.meta = meta;
|
|
52
|
+
modifyFn(viewDay, calendarScheduleState);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
}
|
|
17
58
|
export class DbxScheduleSelectionCalendarComponent {
|
|
18
59
|
constructor(calendarStore, dbxCalendarScheduleSelectionStore) {
|
|
19
60
|
this.calendarStore = calendarStore;
|
|
@@ -24,7 +65,17 @@ export class DbxScheduleSelectionCalendarComponent {
|
|
|
24
65
|
this.clickEvent = new EventEmitter();
|
|
25
66
|
// refresh any time the selected day function updates
|
|
26
67
|
this.state$ = this.dbxCalendarScheduleSelectionStore.state$;
|
|
27
|
-
this.
|
|
68
|
+
this.beforeMonthViewRender$ = this._config.pipe(switchMap((x) => {
|
|
69
|
+
let factory;
|
|
70
|
+
if (x.beforeMonthViewRenderFunctionFactory) {
|
|
71
|
+
factory = asObservable(x.beforeMonthViewRenderFunctionFactory);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
factory = asObservable(x.customizeDay).pipe(map((x) => dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(x)));
|
|
75
|
+
}
|
|
76
|
+
return factory.pipe(map((x) => x(this.state$)));
|
|
77
|
+
}), shareReplay(1));
|
|
78
|
+
this.refresh$ = combineLatest([this.state$, this.beforeMonthViewRender$]).pipe(throttleTime(100), map(() => undefined));
|
|
28
79
|
this.events$ = this.calendarStore.visibleEvents$.pipe(map(prepareAndSortCalendarEvents), shareReplay(1));
|
|
29
80
|
this.viewDate$ = this.calendarStore.date$;
|
|
30
81
|
}
|
|
@@ -40,7 +91,7 @@ export class DbxScheduleSelectionCalendarComponent {
|
|
|
40
91
|
return this._config.value;
|
|
41
92
|
}
|
|
42
93
|
set config(config) {
|
|
43
|
-
this._config.next(config);
|
|
94
|
+
this._config.next(config ?? {});
|
|
44
95
|
}
|
|
45
96
|
dayClicked({ date }) {
|
|
46
97
|
this.dbxCalendarScheduleSelectionStore.toggleSelectedDates(date);
|
|
@@ -49,34 +100,8 @@ export class DbxScheduleSelectionCalendarComponent {
|
|
|
49
100
|
this.clickEvent.emit({ action, event });
|
|
50
101
|
}
|
|
51
102
|
beforeMonthViewRender(renderEvent) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
body.forEach((viewDay) => {
|
|
55
|
-
const { date } = viewDay;
|
|
56
|
-
const i = indexFactory(date);
|
|
57
|
-
const day = date.getDay();
|
|
58
|
-
let state;
|
|
59
|
-
if (!isEnabledFilterDay(i)) {
|
|
60
|
-
viewDay.cssClass = 'cal-day-not-applicable';
|
|
61
|
-
state = CalendarScheduleSelectionDayState.NOT_APPLICABLE;
|
|
62
|
-
}
|
|
63
|
-
else if (!allowedDaysOfWeek.has(day)) {
|
|
64
|
-
viewDay.cssClass = 'cal-day-disabled';
|
|
65
|
-
state = CalendarScheduleSelectionDayState.DISABLED;
|
|
66
|
-
}
|
|
67
|
-
else if (isEnabledDay(i)) {
|
|
68
|
-
viewDay.cssClass = 'cal-day-selected';
|
|
69
|
-
state = CalendarScheduleSelectionDayState.SELECTED;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
viewDay.cssClass = 'cal-day-not-selected';
|
|
73
|
-
state = CalendarScheduleSelectionDayState.NOT_SELECTED;
|
|
74
|
-
}
|
|
75
|
-
viewDay.meta = {
|
|
76
|
-
state,
|
|
77
|
-
i
|
|
78
|
-
};
|
|
79
|
-
});
|
|
103
|
+
this.beforeMonthViewRender$.pipe(first()).subscribe((x) => {
|
|
104
|
+
x(renderEvent);
|
|
80
105
|
});
|
|
81
106
|
}
|
|
82
107
|
}
|
|
@@ -90,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
90
115
|
}], config: [{
|
|
91
116
|
type: Input
|
|
92
117
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQVcsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekgsT0FBTyxFQUFvQixnQkFBZ0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBcUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNySCxPQUFPLEVBQStCLG9DQUFvQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEcsT0FBTyxFQUFFLHNEQUFzRCxFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7Ozs7QUFrQmhJLE1BQU0sT0FBTyxxQ0FBcUM7SUEyQmhELFlBQXFCLGFBQWtDLEVBQVcsaUNBQW9FO1FBQWpILGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUFXLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUExQjlILFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBOEMsRUFBRSxDQUFDLENBQUM7UUFFOUUsOEJBQXlCLEdBQUcs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QyxLQUFLLEdBQUcsaUNBQWlDLENBQUMsY0FBYyxDQUFDO2lCQUMxRDtxQkFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQWdCLENBQUMsRUFBRTtvQkFDbkQsT0FBTyxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztvQkFDdEMsS0FBSyxHQUFHLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQztpQkFDcEQ7cUJBQU0sSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7b0JBQ3RDLEtBQUssR0FBRyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUM7aUJBQ3BEO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxRQUFRLEdBQUcsc0JBQXNCLENBQUM7b0JBQzFDLEtBQUssR0FBRyxpQ0FBaUMsQ0FBQyxZQUFZLENBQUM7aUJBQ3hEO2dCQUVELE9BQU8sQ0FBQyxJQUFJLEdBQUc7b0JBQ2IsS0FBSztvQkFDTCxDQUFDO2lCQUNGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7bUlBdEZVLHFDQUFxQzt1SEFBckMscUNBQXFDLCtIQUZyQyxDQUFDLGdCQUFnQixDQUFDLDBCQ3pCL0Isc3pDQXFCQTs0RkRNYSxxQ0FBcUM7a0JBTGpELFNBQVM7K0JBQ0UsaUNBQWlDLGFBRWhDLENBQUMsZ0JBQWdCLENBQUM7dUpBaUI3QixVQUFVO3NCQURULE1BQU07Z0JBMEJILE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdEYXkgfSBmcm9tICdhbmd1bGFyLWNhbGVuZGFyJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIFN1YmplY3QsIGZpcnN0LCB0aHJvdHRsZVRpbWUsIEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieENhbGVuZGFyRXZlbnQsIERieENhbGVuZGFyU3RvcmUsIHByZXBhcmVBbmRTb3J0Q2FsZW5kYXJFdmVudHMgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViL2NhbGVuZGFyJztcbmltcG9ydCB7IERheU9mV2VlaywgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnN0b3JlJztcbmltcG9ydCB7IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZSwgQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24nO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnLCBzd2l0Y2hNYXBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24ucG9wb3Zlci5idXR0b24uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGNsZWFyIHNlbGVjdGlvbiBidXR0b24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBkaXNwbGF5aW5nIGEgY3VzdG9tIHNlbGVjdGlvbiBidXR0b24uIFdoZW4gbnVsbC91bmRlZmluZWQvdHJ1ZSBpcyBwYXNzZWQsIHdpbGwgc2hvdyB0aGUgZGVmYXVsdCBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBidXR0b25JbmplY3Rpb25Db25maWc/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55PiB8IGJvb2xlYW4+Pj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbRGJ4Q2FsZW5kYXJTdG9yZV1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnPih7fSk7XG5cbiAgcmVhZG9ubHkgc2hvd0NsZWFyU2VsZWN0aW9uQnV0dG9uJCA9IHRoaXMuX2NvbmZpZy5waXBlKFxuICAgIG1hcCgoY29uZmlnKSA9PiBjb25maWcuc2hvd0NsZWFyU2VsZWN0aW9uQnV0dG9uID8/IHRydWUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcblxuICByZWFkb25seSBkYXRlUG9wb3ZlckJ1dHRvbkluamVjdGlvbkNvbmZpZyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPGFueT4+PiA9IHRoaXMuX2NvbmZpZy5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5idXR0b25JbmplY3Rpb25Db25maWcpLFxuICAgIHN3aXRjaE1hcERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyhEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgQE91dHB1dCgpXG4gIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPERieENhbGVuZGFyRXZlbnQ8VD4+KCk7XG5cbiAgLy8gcmVmcmVzaCBhbnkgdGltZSB0aGUgc2VsZWN0ZWQgZGF5IGZ1bmN0aW9uIHVwZGF0ZXNcbiAgcmVhZG9ubHkgc3RhdGUkID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc3RhdGUkO1xuICByZWFkb25seSByZWZyZXNoJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgdGhyb3R0bGVUaW1lKDEwMCksXG4gICAgbWFwKCgpID0+IHVuZGVmaW5lZClcbiAgKSBhcyBTdWJqZWN0PHVuZGVmaW5lZD47XG5cbiAgcmVhZG9ubHkgZXZlbnRzJCA9IHRoaXMuY2FsZW5kYXJTdG9yZS52aXNpYmxlRXZlbnRzJC5waXBlKG1hcChwcmVwYXJlQW5kU29ydENhbGVuZGFyRXZlbnRzKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSB2aWV3RGF0ZSQgPSB0aGlzLmNhbGVuZGFyU3RvcmUuZGF0ZSQ7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY2FsZW5kYXJTdG9yZTogRGJ4Q2FsZW5kYXJTdG9yZTxUPiwgcmVhZG9ubHkgZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlOiBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclN0b3JlLnNldE5hdmlnYXRpb25SYW5nZUxpbWl0KHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLm1pbk1heERhdGVSYW5nZSQpOyAvLyBzZXQgbmF2aWdhdGlvbiBsaW1pdCB0byB0aGUgbWluL21heCBhbGxvd2VkIGRhdGVzLlxuICAgIHRoaXMuY2FsZW5kYXJTdG9yZS5zZXRTaG93UGFnZUJ1dHRvbnModHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25maWcoY29uZmlnOiBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnKTtcbiAgfVxuXG4gIGRheUNsaWNrZWQoeyBkYXRlIH06IHsgZGF0ZTogRGF0ZSB9KTogdm9pZCB7XG4gICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUudG9nZ2xlU2VsZWN0ZWREYXRlcyhkYXRlKTtcbiAgfVxuXG4gIGV2ZW50Q2xpY2tlZChhY3Rpb246IHN0cmluZywgZXZlbnQ6IENhbGVuZGFyRXZlbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7IGFjdGlvbiwgZXZlbnQgfSk7XG4gIH1cblxuICBiZWZvcmVNb250aFZpZXdSZW5kZXIocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJvZHkgfTogeyBib2R5OiBDYWxlbmRhck1vbnRoVmlld0RheTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uTWV0YWRhdGE+W10gfSA9IHJlbmRlckV2ZW50O1xuICAgIHRoaXMuc3RhdGUkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCh7IGlzRW5hYmxlZERheSwgaW5kZXhGYWN0b3J5LCBpc0VuYWJsZWRGaWx0ZXJEYXksIGFsbG93ZWREYXlzT2ZXZWVrIH0pID0+IHtcbiAgICAgIGJvZHkuZm9yRWFjaCgodmlld0RheSkgPT4ge1xuICAgICAgICBjb25zdCB7IGRhdGUgfSA9IHZpZXdEYXk7XG4gICAgICAgIGNvbnN0IGkgPSBpbmRleEZhY3RvcnkoZGF0ZSk7XG4gICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF5KCk7XG5cbiAgICAgICAgbGV0IHN0YXRlOiBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGU7XG5cbiAgICAgICAgaWYgKCFpc0VuYWJsZWRGaWx0ZXJEYXkoaSkpIHtcbiAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktbm90LWFwcGxpY2FibGUnO1xuICAgICAgICAgIHN0YXRlID0gQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLk5PVF9BUFBMSUNBQkxFO1xuICAgICAgICB9IGVsc2UgaWYgKCFhbGxvd2VkRGF5c09mV2Vlay5oYXMoZGF5IGFzIERheU9mV2VlaykpIHtcbiAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktZGlzYWJsZWQnO1xuICAgICAgICAgIHN0YXRlID0gQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLkRJU0FCTEVEO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRW5hYmxlZERheShpKSkge1xuICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1zZWxlY3RlZCc7XG4gICAgICAgICAgc3RhdGUgPSBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUuU0VMRUNURUQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmlld0RheS5jc3NDbGFzcyA9ICdjYWwtZGF5LW5vdC1zZWxlY3RlZCc7XG4gICAgICAgICAgc3RhdGUgPSBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUuTk9UX1NFTEVDVEVEO1xuICAgICAgICB9XG5cbiAgICAgICAgdmlld0RheS5tZXRhID0ge1xuICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgIGlcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGJ4LWNhbGVuZGFyLWJhc2UgY2xhc3M9XCJkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyXCI+XG4gIDxuZy1jb250YWluZXIgY29udHJvbHM+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiQgfCBhc3luY1wiPlxuICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItc2VsZWN0aW9uLXRvZ2dsZS1idXR0b24+PC9kYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLXNlbGVjdGlvbi10b2dnbGUtYnV0dG9uPlxuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJkYXRlUG9wb3ZlckJ1dHRvbkluamVjdGlvbkNvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJkYngtY2FsZW5kYXItY29udGVudCBkYngtY2FsZW5kYXItY29udGVudC1tb250aFwiPlxuICAgIDxtd2wtY2FsZW5kYXItbW9udGgtdmlldyBbcmVmcmVzaF09XCJyZWZyZXNoJFwiIFt2aWV3RGF0ZV09XCIodmlld0RhdGUkIHwgYXN5bmMpIVwiIFtldmVudHNdPVwiKGV2ZW50cyQgfCBhc3luYykhXCIgKGRheUNsaWNrZWQpPVwiZGF5Q2xpY2tlZCgkZXZlbnQuZGF5KVwiIChldmVudENsaWNrZWQpPVwiZXZlbnRDbGlja2VkKCdDbGlja2VkJywgJGV2ZW50LmV2ZW50KVwiIChiZWZvcmVWaWV3UmVuZGVyKT1cImJlZm9yZU1vbnRoVmlld1JlbmRlcigkZXZlbnQpXCIgW2NlbGxUZW1wbGF0ZV09XCJtb250aERheUNlbGxUZW1wbGF0ZVwiPjwvbXdsLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gIDwvZGl2PlxuPC9kYngtY2FsZW5kYXItYmFzZT5cblxuPCEtLSBDZWxsIC0tPlxuPG5nLXRlbXBsYXRlICNtb250aERheUNlbGxUZW1wbGF0ZSBsZXQtZGF5PVwiZGF5XCIgbGV0LWxvY2FsZT1cImxvY2FsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FsLWNlbGwtdG9wXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjYWwtZGF5LWJhZGdlXCIgKm5nSWY9XCJkYXkuYmFkZ2VUb3RhbCA+IDBcIj57eyBkYXkuYmFkZ2VUb3RhbCB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImNhbC1kYXktbnVtYmVyXCI+e3sgZGF5LmRhdGUgfCBjYWxlbmRhckRhdGU6ICdtb250aFZpZXdEYXlOdW1iZXInOmxvY2FsZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLWNlbGwgW2RheV09XCJkYXlcIj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQVcsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQWMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSixPQUFPLEVBQW9CLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0csT0FBTyxFQUFrQyxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxpQ0FBaUMsRUFBcUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNySCxPQUFPLEVBQStCLG9DQUFvQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEcsT0FBTyxFQUE4QyxZQUFZLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxzREFBc0QsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7Ozs7O0FBMkJoSSxNQUFNLFVBQVUsd0RBQXdELENBQUMsYUFBeUY7SUFDaEssTUFBTSxRQUFRLEdBQUcsYUFBYSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFD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bnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdEYXkgfSBmcm9tICdhbmd1bGFyLWNhbGVuZGFyJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIFN1YmplY3QsIGZpcnN0LCB0aHJvdHRsZVRpbWUsIEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4Q2FsZW5kYXJFdmVudCwgRGJ4Q2FsZW5kYXJTdG9yZSwgcHJlcGFyZUFuZFNvcnRDYWxlbmRhckV2ZW50cyB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWIvY2FsZW5kYXInO1xuaW1wb3J0IHsgRGF5T2ZXZWVrLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlLCBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUsIENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25NZXRhZGF0YSB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZywgc3dpdGNoTWFwRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWUsIE9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBhc09ic2VydmFibGUsIGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNvbXBvbmVudENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBjbGVhciBzZWxlY3Rpb24gYnV0dG9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG93Q2xlYXJTZWxlY3Rpb25CdXR0b24/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgZGlzcGxheWluZyBhIGN1c3RvbSBzZWxlY3Rpb24gYnV0dG9uLiBXaGVuIG51bGwvdW5kZWZpbmVkL3RydWUgaXMgcGFzc2VkLCB3aWxsIHNob3cgdGhlIGRlZmF1bHQgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uSW5qZWN0aW9uQ29uZmlnPzogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8TWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPGFueT4gfCBib29sZWFuPj4+O1xuICAvKipcbiAgICogQ3VzdG9taXplIGRheSBmdW5jdGlvbi4gV2hlbiBhIG5ldyBmdW5jdGlvbiBpcyBwaXBlZCB0aHJvdWdoIHRoZSBjYWxlbmRhciBpcyByZWZyZXNoZWQuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21pemVEYXk/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyTW9kaWZ5RGF5RnVuY3Rpb24+Pj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgYmVmb3JlTW9udGhWaWV3UmVuZGVyXG4gICAqL1xuICByZWFkb25seSBiZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnk/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5Pj47XG59XG5cbmV4cG9ydCB0eXBlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJNb2RpZnlEYXlGdW5jdGlvbiA9ICh2aWV3RGF5OiBDYWxlbmRhck1vbnRoVmlld0RheTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uTWV0YWRhdGE+LCBzdGF0ZTogQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb24gPSAocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3RvcnkgPSAoc3RhdGU6IE9ic2VydmFibGU8Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlPikgPT4gRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlckZ1bmN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gZGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlckZhY3RvcnkoaW5wdXRNb2RpZnlGbj86IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJNb2RpZnlEYXlGdW5jdGlvbj4pOiBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5IHtcbiAgY29uc3QgbW9kaWZ5Rm4gPSBpbnB1dE1vZGlmeUZuIHx8ICgoKSA9PiB7fSk7XG5cbiAgcmV0dXJuIChzdGF0ZSQ6IE9ic2VydmFibGU8Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlPikgPT4ge1xuICAgIHJldHVybiAocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYm9keSB9OiB7IGJvZHk6IENhbGVuZGFyTW9udGhWaWV3RGF5PENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25NZXRhZGF0YT5bXSB9ID0gcmVuZGVyRXZlbnQ7XG5cbiAgICAgIC8vIHVzZSBsYXRlc3QvY3VycmVudCBzdGF0ZVxuICAgICAgc3RhdGUkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChjYWxlbmRhclNjaGVkdWxlU3RhdGU6IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCB7IGlzRW5hYmxlZERheSwgaW5kZXhGYWN0b3J5LCBpc0VuYWJsZWRGaWx0ZXJEYXksIGFsbG93ZWREYXlzT2ZXZWVrIH0gPSBjYWxlbmRhclNjaGVkdWxlU3RhdGU7XG4gICAgICAgIGJvZHkuZm9yRWFjaCgodmlld0RheSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgZGF0ZSB9ID0gdmlld0RheTtcbiAgICAgICAgICBjb25zdCBpID0gaW5kZXhGYWN0b3J5KGRhdGUpO1xuICAgICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF5KCk7XG5cbiAgICAgICAgICBsZXQgc3RhdGU6IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZTtcblxuICAgICAgICAgIGlmICghaXNFbmFibGVkRmlsdGVyRGF5KGkpKSB7XG4gICAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktbm90LWFwcGxpY2FibGUnO1xuICAgICAgICAgICAgc3RhdGUgPSBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUuTk9UX0FQUExJQ0FCTEU7XG4gICAgICAgICAgfSBlbHNlIGlmICghYWxsb3dlZERheXNPZldlZWsuaGFzKGRheSBhcyBEYXlPZldlZWspKSB7XG4gICAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktZGlzYWJsZWQnO1xuICAgICAgICAgICAgc3RhdGUgPSBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUuRElTQUJMRUQ7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0VuYWJsZWREYXkoaSkpIHtcbiAgICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1zZWxlY3RlZCc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5TRUxFQ1RFRDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlld0RheS5jc3NDbGFzcyA9ICdjYWwtZGF5LW5vdC1zZWxlY3RlZCc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5OT1RfU0VMRUNURUQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWV0YSA9IHtcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgaVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB2aWV3RGF5Lm1ldGEgPSBtZXRhO1xuXG4gICAgICAgICAgbW9kaWZ5Rm4odmlld0RheSwgY2FsZW5kYXJTY2hlZHVsZVN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW0RieENhbGVuZGFyU3RvcmVdXG59KVxuZXhwb3J0IGNsYXNzIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2NvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNvbXBvbmVudENvbmZpZz4oe30pO1xuXG4gIHJlYWRvbmx5IHNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiQgPSB0aGlzLl9jb25maWcucGlwZShcbiAgICBtYXAoKGNvbmZpZykgPT4gY29uZmlnLnNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiA/PyB0cnVlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0ZVBvcG92ZXJCdXR0b25JbmplY3Rpb25Db25maWckOiBPYnNlcnZhYmxlPE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+Pj4gPSB0aGlzLl9jb25maWcucGlwZShcbiAgICBtYXAoKHgpID0+IHguYnV0dG9uSW5qZWN0aW9uQ29uZmlnKSxcbiAgICBzd2l0Y2hNYXBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcoRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIEBPdXRwdXQoKVxuICBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEYnhDYWxlbmRhckV2ZW50PFQ+PigpO1xuXG4gIC8vIHJlZnJlc2ggYW55IHRpbWUgdGhlIHNlbGVjdGVkIGRheSBmdW5jdGlvbiB1cGRhdGVzXG4gIHJlYWRvbmx5IHN0YXRlJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnN0YXRlJDtcblxuICByZWFkb25seSBiZWZvcmVNb250aFZpZXdSZW5kZXIkID0gdGhpcy5fY29uZmlnLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB7XG4gICAgICBsZXQgZmFjdG9yeTogT2JzZXJ2YWJsZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5PjtcblxuICAgICAgaWYgKHguYmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5KSB7XG4gICAgICAgIGZhY3RvcnkgPSBhc09ic2VydmFibGUoeC5iZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3RvcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmFjdG9yeSA9IGFzT2JzZXJ2YWJsZSh4LmN1c3RvbWl6ZURheSkucGlwZShtYXAoKHgpID0+IGRieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGYWN0b3J5KHgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWN0b3J5LnBpcGUobWFwKCh4KSA9PiB4KHRoaXMuc3RhdGUkKSkpO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcmVmcmVzaCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRlJCwgdGhpcy5iZWZvcmVNb250aFZpZXdSZW5kZXIkXSkucGlwZShcbiAgICB0aHJvdHRsZVRpbWUoMTAwKSxcbiAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKVxuICApIGFzIFN1YmplY3Q8dW5kZWZpbmVkPjtcblxuICByZWFkb25seSBldmVudHMkID0gdGhpcy5jYWxlbmRhclN0b3JlLnZpc2libGVFdmVudHMkLnBpcGUobWFwKHByZXBhcmVBbmRTb3J0Q2FsZW5kYXJFdmVudHMpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IHZpZXdEYXRlJCA9IHRoaXMuY2FsZW5kYXJTdG9yZS5kYXRlJDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjYWxlbmRhclN0b3JlOiBEYnhDYWxlbmRhclN0b3JlPFQ+LCByZWFkb25seSBkYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmU6IERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyU3RvcmUuc2V0TmF2aWdhdGlvblJhbmdlTGltaXQodGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUubWluTWF4RGF0ZVJhbmdlJCk7IC8vIHNldCBuYXZpZ2F0aW9uIGxpbWl0IHRvIHRoZSBtaW4vbWF4IGFsbG93ZWQgZGF0ZXMuXG4gICAgdGhpcy5jYWxlbmRhclN0b3JlLnNldFNob3dQYWdlQnV0dG9ucyh0cnVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xpY2tFdmVudC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbmZpZy5jb21wbGV0ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbmZpZyhjb25maWc6IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDb21wb25lbnRDb25maWc+KSB7XG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnID8/IHt9KTtcbiAgfVxuXG4gIGRheUNsaWNrZWQoeyBkYXRlIH06IHsgZGF0ZTogRGF0ZSB9KTogdm9pZCB7XG4gICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUudG9nZ2xlU2VsZWN0ZWREYXRlcyhkYXRlKTtcbiAgfVxuXG4gIGV2ZW50Q2xpY2tlZChhY3Rpb246IHN0cmluZywgZXZlbnQ6IENhbGVuZGFyRXZlbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7IGFjdGlvbiwgZXZlbnQgfSk7XG4gIH1cblxuICBiZWZvcmVNb250aFZpZXdSZW5kZXIocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJlZm9yZU1vbnRoVmlld1JlbmRlciQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHgocmVuZGVyRXZlbnQpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGJ4LWNhbGVuZGFyLWJhc2UgY2xhc3M9XCJkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyXCI+XG4gIDxuZy1jb250YWluZXIgY29udHJvbHM+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiQgfCBhc3luY1wiPlxuICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItc2VsZWN0aW9uLXRvZ2dsZS1idXR0b24+PC9kYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLXNlbGVjdGlvbi10b2dnbGUtYnV0dG9uPlxuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJkYXRlUG9wb3ZlckJ1dHRvbkluamVjdGlvbkNvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJkYngtY2FsZW5kYXItY29udGVudCBkYngtY2FsZW5kYXItY29udGVudC1tb250aFwiPlxuICAgIDxtd2wtY2FsZW5kYXItbW9udGgtdmlldyBbcmVmcmVzaF09XCJyZWZyZXNoJFwiIFt2aWV3RGF0ZV09XCIodmlld0RhdGUkIHwgYXN5bmMpIVwiIFtldmVudHNdPVwiKGV2ZW50cyQgfCBhc3luYykhXCIgKGRheUNsaWNrZWQpPVwiZGF5Q2xpY2tlZCgkZXZlbnQuZGF5KVwiIChldmVudENsaWNrZWQpPVwiZXZlbnRDbGlja2VkKCdDbGlja2VkJywgJGV2ZW50LmV2ZW50KVwiIChiZWZvcmVWaWV3UmVuZGVyKT1cImJlZm9yZU1vbnRoVmlld1JlbmRlcigkZXZlbnQpXCIgW2NlbGxUZW1wbGF0ZV09XCJtb250aERheUNlbGxUZW1wbGF0ZVwiPjwvbXdsLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gIDwvZGl2PlxuPC9kYngtY2FsZW5kYXItYmFzZT5cblxuPCEtLSBDZWxsIC0tPlxuPG5nLXRlbXBsYXRlICNtb250aERheUNlbGxUZW1wbGF0ZSBsZXQtZGF5PVwiZGF5XCIgbGV0LWxvY2FsZT1cImxvY2FsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FsLWNlbGwtdG9wXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjYWwtZGF5LWJhZGdlXCIgKm5nSWY9XCJkYXkuYmFkZ2VUb3RhbCA+IDBcIj57eyBkYXkuYmFkZ2VUb3RhbCB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImNhbC1kYXktbnVtYmVyXCI+e3sgZGF5LmRhdGUgfCBjYWxlbmRhckRhdGU6ICdtb250aFZpZXdEYXlOdW1iZXInOmxvY2FsZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLWNlbGwgW2RheV09XCJkYXlcIj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, InjectionToken } from '@angular/core';
|
|
2
|
-
import { AbstractDialogDirective } from '@dereekb/dbx-web';
|
|
2
|
+
import { AbstractDialogDirective, sanitizeDbxDialogContentConfig } from '@dereekb/dbx-web';
|
|
3
3
|
import { KeyValueTypleValueFilter, mergeObjects } from '@dereekb/util';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@dereekb/dbx-web";
|
|
@@ -33,7 +33,7 @@ export class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDia
|
|
|
33
33
|
width: '80vw',
|
|
34
34
|
minHeight: 400,
|
|
35
35
|
minWidth: 360,
|
|
36
|
-
...contentConfig.dialogConfig,
|
|
36
|
+
...sanitizeDbxDialogContentConfig(contentConfig.dialogConfig),
|
|
37
37
|
injector,
|
|
38
38
|
data: {
|
|
39
39
|
config,
|
|
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
62
62
|
`
|
|
63
63
|
}]
|
|
64
64
|
}] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSx1QkFBdUIsRUFBd0QsOEJBQThCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqSixPQUFPLEVBQUUsd0JBQXdCLEVBQXdCLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFFdkg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFFQUFxRSxHQUFHLElBQUksY0FBYyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFFNUo7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1RUFBdUUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0FBeUJoSyxNQUFNLE9BQU8sK0NBQWdELFNBQVEsdUJBQTBFO0lBQzdJLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUM7SUFDekMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBb0IsRUFBRSxNQUFtRDtRQUN6RixNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFOUYsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFzQyxxRUFBcUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxSixNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQTRELHVFQUF1RSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBMLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxDQUFDLG9CQUFvQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUcsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BJLGFBQWEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRXhDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQywrQ0FBK0MsRUFBRTtZQUNyRSxNQUFNLEVBQUUsMEJBQTBCO1lBQ2xDLEtBQUssRUFBRSxNQUFNO1lBQ2IsU0FBUyxFQUFFLEdBQUc7WUFDZCxRQUFRLEVBQUUsR0FBRztZQUNiLEdBQUcsOEJBQThCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUM3RCxRQUFRO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sYUFBYTthQUNkO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NklBL0JVLCtDQUErQztpSUFBL0MsK0NBQStDLDJFQVJoRDs7Ozs7O0dBTVQ7NEZBRVUsK0NBQStDO2tCQVQzRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7O0dBTVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEFic3RyYWN0RGlhbG9nRGlyZWN0aXZlLCBEYnhEaWFsb2dDb250ZW50Q29uZmlnLCBEYnhEaWFsb2dDb250ZW50Rm9vdGVyQ29uZmlnLCBzYW5pdGl6ZURieERpYWxvZ0NvbnRlbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IEtleVZhbHVlVHlwbGVWYWx1ZUZpbHRlciwgTWF5YmUsIGNzc0NsYXNzZXNTZXQsIG1lcmdlT2JqZWN0cywgc3BhY2VTZXBhcmF0ZWRDc3NDbGFzc2VzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogVG9rZW4gdXNlZCB0byBjb25maWd1cmUgdGhlIGRlZmF1bHQgRGJ4RGlhbG9nQ29udGVudEZvb3RlckNvbmZpZyBmb3IgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVEaWFsb2dDb21wb25lbnQuXG4gKlxuICogQGRlcHJlY2F0ZWQgdXNlIERFRkFVTFRfREJYX1NDSEVEVUxFX1NFTEVDVElPTl9DQUxFTkRBUl9EQVRFX1BPUFVQX0NPTlRFTlRfQ09ORklHX1RPS0VOIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RCWF9TQ0hFRFVMRV9TRUxFQ1RJT05fQ0FMRU5EQVJfREFURV9QT1BVUF9DTE9TRV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDbG9zZUNvbmZpZycpO1xuXG4vKipcbiAqIFRva2VuIHVzZWQgdG8gY29uZmlndXJlIHRoZSBkZWZhdWx0IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb25maWcgZm9yIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGlhbG9nQ29tcG9uZW50LlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfU0NIRURVTEVfU0VMRUNUSU9OX0NBTEVOREFSX0RBVEVfUE9QVVBfQ09OVEVOVF9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb250ZW50Q29uZmlnJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3B1cENvbnRlbnRDb25maWcge1xuICBjbG9zZUNvbmZpZz86IERieERpYWxvZ0NvbnRlbnRGb290ZXJDb25maWc7XG4gIGRpYWxvZ0NvbmZpZz86IERieERpYWxvZ0NvbnRlbnRDb25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3B1cENvbmZpZyB7XG4gIGluamVjdG9yOiBJbmplY3RvcjtcbiAgY29udGVudENvbmZpZz86IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb250ZW50Q29uZmlnPjtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBjb250ZW50Q29uZmlnIGluc3RlYWQuXG4gICAqL1xuICBjbG9zZUNvbmZpZz86IE1heWJlPERieERpYWxvZ0NvbnRlbnRGb290ZXJDb25maWc+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1kYXRlLWRpYWxvZ1wiPlxuICAgICAgPGRieC1kaWFsb2ctY29udGVudC1jbG9zZSAoY2xvc2UpPVwiY2xvc2UoKVwiPjwvZGJ4LWRpYWxvZy1jb250ZW50LWNsb3NlPlxuICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXI+PC9kYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyPlxuICAgICAgPGRieC1kaWFsb2ctY29udGVudC1mb290ZXIgW2NvbmZpZ109XCJjbG9zZUNvbmZpZ1wiIChjbG9zZSk9XCJjbG9zZSgpXCI+PC9kYngtZGlhbG9nLWNvbnRlbnQtZm9vdGVyPlxuICAgIDwvZGJ4LWRpYWxvZy1jb250ZW50PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REaWFsb2dEaXJlY3RpdmU8dm9pZCwgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3B1cENvbmZpZz4ge1xuICBnZXQgY29udGVudENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmNvbnRlbnRDb25maWc7XG4gIH1cblxuICBnZXQgY2xvc2VDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudENvbmZpZz8uY2xvc2VDb25maWc7XG4gIH1cblxuICBzdGF0aWMgb3BlbkRpYWxvZyhtYXREaWFsb2c6IE1hdERpYWxvZywgY29uZmlnOiBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29uZmlnKSB7XG4gICAgY29uc3QgeyBpbmplY3RvciwgY29udGVudENvbmZpZzogaW5wdXRDb250ZW50Q29uZmlnLCBjbG9zZUNvbmZpZzogaW5wdXRDbG9zZUNvbmZpZyB9ID0gY29uZmlnO1xuXG4gICAgY29uc3QgZGVmYXVsdENsb3NlQ29uZmlnID0gaW5qZWN0b3IuZ2V0PE1heWJlPERieERpYWxvZ0NvbnRlbnRGb290ZXJDb25maWc+PihERUZBVUxUX0RCWF9TQ0hFRFVMRV9TRUxFQ1RJT05fQ0FMRU5EQVJfREFURV9QT1BVUF9DTE9TRV9DT05GSUdfVE9LRU4sIG51bGwpO1xuICAgIGNvbnN0IGRlZmF1bHRDb250ZW50Q29uZmlnID0gaW5qZWN0b3IuZ2V0PE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb250ZW50Q29uZmlnPj4oREVGQVVMVF9EQlhfU0NIRURVTEVfU0VMRUNUSU9OX0NBTEVOREFSX0RBVEVfUE9QVVBfQ09OVEVOVF9DT05GSUdfVE9LRU4sIG51bGwpO1xuXG4gICAgY29uc3QgY29udGVudENvbmZpZyA9IG1lcmdlT2JqZWN0cyhbZGVmYXVsdENvbnRlbnRDb25maWcsIGlucHV0Q29udGVudENvbmZpZ10sIEtleVZhbHVlVHlwbGVWYWx1ZUZpbHRlci5OVUxMKTtcbiAgICBjb25zdCBjbG9zZUNvbmZpZyA9IG1lcmdlT2JqZWN0cyhbZGVmYXVsdENsb3NlQ29uZmlnLCBjb250ZW50Q29uZmlnPy5jbG9zZUNvbmZpZywgaW5wdXRDbG9zZUNvbmZpZ10sIEtleVZhbHVlVHlwbGVWYWx1ZUZpbHRlci5OVUxMKTtcbiAgICBjb250ZW50Q29uZmlnLmNsb3NlQ29uZmlnID0gY2xvc2VDb25maWc7XG5cbiAgICByZXR1cm4gbWF0RGlhbG9nLm9wZW4oRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGhlaWdodDogJ2NhbGModmFyKC0tdmgxMDApICogMC45KScsXG4gICAgICB3aWR0aDogJzgwdncnLFxuICAgICAgbWluSGVpZ2h0OiA0MDAsXG4gICAgICBtaW5XaWR0aDogMzYwLFxuICAgICAgLi4uc2FuaXRpemVEYnhEaWFsb2dDb250ZW50Q29uZmlnKGNvbnRlbnRDb25maWcuZGlhbG9nQ29uZmlnKSxcbiAgICAgIGluamVjdG9yLFxuICAgICAgZGF0YToge1xuICAgICAgICBjb25maWcsXG4gICAgICAgIGNvbnRlbnRDb25maWdcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|