@dereekb/dbx-form 9.24.2 → 9.24.4
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.dialog.button.component.d.ts +6 -1
- package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +17 -2
- package/calendar/lib/calendar.schedule.selection.store.d.ts +7 -2
- package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +8 -0
- package/esm2020/calendar/lib/calendar.schedule.selection.component.mjs +57 -32
- package/esm2020/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +5 -3
- package/esm2020/calendar/lib/calendar.schedule.selection.dialog.component.mjs +20 -7
- package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +7 -2
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +7 -4
- package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +3 -2
- package/fesm2015/dereekb-dbx-form-calendar.mjs +93 -52
- package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-form-calendar.mjs +93 -45
- 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,5 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { DbxScheduleSelectionCalendarDatePopupContentConfig } from './calendar.schedule.selection.dialog.component';
|
|
3
4
|
import { DbxDialogContentFooterConfig } from '@dereekb/dbx-web';
|
|
4
5
|
import { Maybe } from '@dereekb/util';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -7,9 +8,13 @@ export declare class DbxScheduleSelectionCalendarDateDialogButtonComponent {
|
|
|
7
8
|
readonly matDialog: MatDialog;
|
|
8
9
|
readonly injector: Injector;
|
|
9
10
|
buttonText: string;
|
|
11
|
+
contentConfig?: Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated use contentConfig instead.
|
|
14
|
+
*/
|
|
10
15
|
closeConfig?: Maybe<DbxDialogContentFooterConfig>;
|
|
11
16
|
constructor(matDialog: MatDialog, injector: Injector);
|
|
12
17
|
clickCustomize(): void;
|
|
13
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<DbxScheduleSelectionCalendarDateDialogButtonComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarDateDialogButtonComponent, "dbx-schedule-selection-calendar-date-dialog-button", never, { "buttonText": "buttonText"; "closeConfig": "closeConfig"; }, {}, never, never, false>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarDateDialogButtonComponent, "dbx-schedule-selection-calendar-date-dialog-button", never, { "buttonText": "buttonText"; "contentConfig": "contentConfig"; "closeConfig": "closeConfig"; }, {}, never, never, false>;
|
|
15
20
|
}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import { InjectionToken, Injector } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
-
import { AbstractDialogDirective, DbxDialogContentFooterConfig } from '@dereekb/dbx-web';
|
|
3
|
+
import { AbstractDialogDirective, DbxDialogContentConfig, DbxDialogContentFooterConfig } from '@dereekb/dbx-web';
|
|
4
4
|
import { Maybe } from '@dereekb/util';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* Token used to configure the default DbxDialogContentFooterConfig for DbxScheduleSelectionCalendarDateDialogComponent.
|
|
8
|
+
*
|
|
9
|
+
* @deprecated use DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN instead.
|
|
8
10
|
*/
|
|
9
11
|
export declare const DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CLOSE_CONFIG_TOKEN: InjectionToken<unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* Token used to configure the default DbxScheduleSelectionCalendarDatePopupConfig for DbxScheduleSelectionCalendarDateDialogComponent.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN: InjectionToken<unknown>;
|
|
16
|
+
export interface DbxScheduleSelectionCalendarDatePopupContentConfig {
|
|
17
|
+
closeConfig?: DbxDialogContentFooterConfig;
|
|
18
|
+
dialogConfig?: DbxDialogContentConfig;
|
|
19
|
+
}
|
|
10
20
|
export interface DbxScheduleSelectionCalendarDatePopupConfig {
|
|
11
21
|
injector: Injector;
|
|
22
|
+
contentConfig?: Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated use contentConfig instead.
|
|
25
|
+
*/
|
|
12
26
|
closeConfig?: Maybe<DbxDialogContentFooterConfig>;
|
|
13
27
|
}
|
|
14
28
|
export declare class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDirective<void, DbxScheduleSelectionCalendarDatePopupConfig> {
|
|
15
|
-
get
|
|
29
|
+
get contentConfig(): Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
|
|
30
|
+
get closeConfig(): DbxDialogContentFooterConfig | undefined;
|
|
16
31
|
static openDialog(matDialog: MatDialog, config: DbxScheduleSelectionCalendarDatePopupConfig): import("@angular/material/dialog").MatDialogRef<DbxScheduleSelectionCalendarDateDialogComponent, any>;
|
|
17
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<DbxScheduleSelectionCalendarDateDialogComponent, never>;
|
|
18
33
|
static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarDateDialogComponent, "ng-component", never, {}, {}, never, never, false>;
|
|
@@ -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 enabled indexes.
|
|
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.
|
|
@@ -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>>;
|
|
@@ -137,6 +140,8 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
|
|
|
137
140
|
readonly currentSelectionValueWithTimezone$: Observable<Maybe<CalendarScheduleSelectionValue>>;
|
|
138
141
|
readonly nextToggleSelection$: Observable<Maybe<AllOrNoneSelection>>;
|
|
139
142
|
readonly selectionValue$: Observable<CalendarScheduleSelectionValue>;
|
|
143
|
+
readonly selectionValueDateBlockDurationSpan$: Observable<DateBlockDurationSpan<DateBlock>[]>;
|
|
144
|
+
readonly selectionValueSelectedIndexes$: Observable<Set<DateBlockIndex>>;
|
|
140
145
|
readonly currentDateScheduleRangeValue$: Observable<Maybe<DateScheduleRange>>;
|
|
141
146
|
readonly dateScheduleRangeValue$: Observable<DateScheduleRange>;
|
|
142
147
|
readonly cellContentFactory$: Observable<CalendarScheduleSelectionCellContentFactory>;
|
|
@@ -8,6 +8,7 @@ import { ObservableOrValue } from '@dereekb/rxjs';
|
|
|
8
8
|
import { DateOrDateRangeOrDateBlockIndexOrDateBlockRange, DateRange, DateScheduleDateFilterConfig, TimezoneString } from '@dereekb/date';
|
|
9
9
|
import { CalendarScheduleSelectionState, DbxCalendarScheduleSelectionStore } from '../../calendar.schedule.selection.store';
|
|
10
10
|
import { MatFormFieldAppearance } from '@angular/material/form-field';
|
|
11
|
+
import { DbxScheduleSelectionCalendarDatePopupContentConfig } from '../../calendar.schedule.selection.dialog.component';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export interface DbxFormCalendarDateScheduleRangeFieldProps extends Pick<FormlyFieldProps, 'label' | 'description' | 'readonly' | 'required'>, Pick<CalendarScheduleSelectionState, 'computeSelectionResultRelativeToFilter' | 'initialSelectionState'>, Partial<Pick<CalendarScheduleSelectionState, 'cellContentFactory'>> {
|
|
13
14
|
appearance?: MatFormFieldAppearance;
|
|
@@ -24,8 +25,14 @@ export interface DbxFormCalendarDateScheduleRangeFieldProps extends Pick<FormlyF
|
|
|
24
25
|
exclusions?: ObservableOrValue<Maybe<ArrayOrValue<DateOrDateRangeOrDateBlockIndexOrDateBlockRange>>>;
|
|
25
26
|
/**
|
|
26
27
|
* Custom close dialog config for the popup
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Use dialogContentConfig instead.
|
|
27
30
|
*/
|
|
28
31
|
closeDialogConfig?: Maybe<DbxDialogContentFooterConfig>;
|
|
32
|
+
/**
|
|
33
|
+
* Custom dialog content config for the popup
|
|
34
|
+
*/
|
|
35
|
+
dialogContentConfig?: Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
|
|
29
36
|
}
|
|
30
37
|
export declare class DbxFormCalendarDateScheduleRangeFieldComponent<T extends DbxFormCalendarDateScheduleRangeFieldProps = DbxFormCalendarDateScheduleRangeFieldProps> extends FieldType<FieldTypeConfig<T>> implements OnInit, OnDestroy {
|
|
31
38
|
readonly compact: CompactContextStore;
|
|
@@ -54,6 +61,7 @@ export declare class DbxFormCalendarDateScheduleRangeFieldComponent<T extends Db
|
|
|
54
61
|
get initialSelectionState(): Maybe<import("@dereekb/util").AllOrNoneSelection>;
|
|
55
62
|
get computeSelectionResultRelativeToFilter(): Maybe<boolean>;
|
|
56
63
|
get closeDialogConfig(): Maybe<DbxDialogContentFooterConfig>;
|
|
64
|
+
get dialogContentConfig(): Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
|
|
57
65
|
get cellContentFactory(): import("@dereekb/dbx-form/calendar").CalendarScheduleSelectionCellContentFactory | undefined;
|
|
58
66
|
ngOnInit(): void;
|
|
59
67
|
ngOnDestroy(): void;
|
|
@@ -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=
|
|
@@ -11,11 +11,11 @@ export class DbxScheduleSelectionCalendarDateDialogButtonComponent {
|
|
|
11
11
|
this.buttonText = 'Customize';
|
|
12
12
|
}
|
|
13
13
|
clickCustomize() {
|
|
14
|
-
DbxScheduleSelectionCalendarDateDialogComponent.openDialog(this.matDialog, { injector: this.injector, closeConfig: this.closeConfig });
|
|
14
|
+
DbxScheduleSelectionCalendarDateDialogComponent.openDialog(this.matDialog, { injector: this.injector, contentConfig: this.contentConfig, closeConfig: this.closeConfig });
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
DbxScheduleSelectionCalendarDateDialogButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, deps: [{ token: i1.MatDialog }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
-
DbxScheduleSelectionCalendarDateDialogButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: "buttonText", closeConfig: "closeConfig" }, ngImport: i0, template: `
|
|
18
|
+
DbxScheduleSelectionCalendarDateDialogButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDateDialogButtonComponent, selector: "dbx-schedule-selection-calendar-date-dialog-button", inputs: { buttonText: "buttonText", contentConfig: "contentConfig", closeConfig: "closeConfig" }, ngImport: i0, template: `
|
|
19
19
|
<button mat-raised-button color="accent" (click)="clickCustomize()">{{ buttonText }}</button>
|
|
20
20
|
`, isInline: true, dependencies: [{ kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogButtonComponent, decorators: [{
|
|
@@ -28,7 +28,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
28
28
|
}]
|
|
29
29
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i0.Injector }]; }, propDecorators: { buttonText: [{
|
|
30
30
|
type: Input
|
|
31
|
+
}], contentConfig: [{
|
|
32
|
+
type: Input
|
|
31
33
|
}], closeConfig: [{
|
|
32
34
|
type: Input
|
|
33
35
|
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmRpYWxvZy5idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uZGlhbG9nLmJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsK0NBQStDLEVBQXNELE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFVckssTUFBTSxPQUFPLHFEQUFxRDtJQWFoRSxZQUFxQixTQUFvQixFQUFXLFFBQWtCO1FBQWpELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBWHRFLGVBQVUsR0FBRyxXQUFXLENBQUM7SUFXZ0QsQ0FBQztJQUUxRSxjQUFjO1FBQ1osK0NBQStDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDNUssQ0FBQzs7bUpBakJVLHFEQUFxRDt1SUFBckQscURBQXFELDRMQUp0RDs7R0FFVDs0RkFFVSxxREFBcUQ7a0JBTmpFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9EQUFvRDtvQkFDOUQsUUFBUSxFQUFFOztHQUVUO2lCQUNGO3VIQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZURpYWxvZ0NvbXBvbmVudCwgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3B1cENvbnRlbnRDb25maWcgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERieERpYWxvZ0NvbnRlbnRGb290ZXJDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1kaWFsb2ctYnV0dG9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNsaWNrQ3VzdG9taXplKClcIj57eyBidXR0b25UZXh0IH19PC9idXR0b24+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVEaWFsb2dCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBidXR0b25UZXh0ID0gJ0N1c3RvbWl6ZSc7XG5cbiAgQElucHV0KClcbiAgY29udGVudENvbmZpZz86IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb250ZW50Q29uZmlnPjtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGNvbnRlbnRDb25maWcgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNsb3NlQ29uZmlnPzogTWF5YmU8RGJ4RGlhbG9nQ29udGVudEZvb3RlckNvbmZpZz47XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBjbGlja0N1c3RvbWl6ZSgpIHtcbiAgICBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZURpYWxvZ0NvbXBvbmVudC5vcGVuRGlhbG9nKHRoaXMubWF0RGlhbG9nLCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yLCBjb250ZW50Q29uZmlnOiB0aGlzLmNvbnRlbnRDb25maWcsIGNsb3NlQ29uZmlnOiB0aGlzLmNsb3NlQ29uZmlnIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -6,25 +6,38 @@ import * as i1 from "@dereekb/dbx-web";
|
|
|
6
6
|
import * as i2 from "./calendar.schedule.selection.component";
|
|
7
7
|
/**
|
|
8
8
|
* Token used to configure the default DbxDialogContentFooterConfig for DbxScheduleSelectionCalendarDateDialogComponent.
|
|
9
|
+
*
|
|
10
|
+
* @deprecated use DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN instead.
|
|
9
11
|
*/
|
|
10
12
|
export const DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CLOSE_CONFIG_TOKEN = new InjectionToken('DbxScheduleSelectionCalendarDatePopupCloseConfig');
|
|
13
|
+
/**
|
|
14
|
+
* Token used to configure the default DbxScheduleSelectionCalendarDatePopupConfig for DbxScheduleSelectionCalendarDateDialogComponent.
|
|
15
|
+
*/
|
|
16
|
+
export const DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN = new InjectionToken('DbxScheduleSelectionCalendarDatePopupContentConfig');
|
|
11
17
|
export class DbxScheduleSelectionCalendarDateDialogComponent extends AbstractDialogDirective {
|
|
18
|
+
get contentConfig() {
|
|
19
|
+
return this.data.contentConfig;
|
|
20
|
+
}
|
|
12
21
|
get closeConfig() {
|
|
13
|
-
return this.
|
|
22
|
+
return this.contentConfig?.closeConfig;
|
|
14
23
|
}
|
|
15
24
|
static openDialog(matDialog, config) {
|
|
16
|
-
const { injector, closeConfig: inputCloseConfig } = config;
|
|
25
|
+
const { injector, contentConfig: inputContentConfig, closeConfig: inputCloseConfig } = config;
|
|
17
26
|
const defaultCloseConfig = injector.get(DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CLOSE_CONFIG_TOKEN, null);
|
|
18
|
-
const
|
|
27
|
+
const defaultContentConfig = injector.get(DEFAULT_DBX_SCHEDULE_SELECTION_CALENDAR_DATE_POPUP_CONTENT_CONFIG_TOKEN, null);
|
|
28
|
+
const contentConfig = mergeObjects([defaultContentConfig, inputContentConfig], KeyValueTypleValueFilter.NULL);
|
|
29
|
+
const closeConfig = mergeObjects([defaultCloseConfig, contentConfig?.closeConfig, inputCloseConfig], KeyValueTypleValueFilter.NULL);
|
|
30
|
+
contentConfig.closeConfig = closeConfig;
|
|
19
31
|
return matDialog.open(DbxScheduleSelectionCalendarDateDialogComponent, {
|
|
20
|
-
injector,
|
|
21
32
|
height: 'calc(var(--vh100) * 0.9)',
|
|
22
|
-
minHeight: 400,
|
|
23
33
|
width: '80vw',
|
|
34
|
+
minHeight: 400,
|
|
24
35
|
minWidth: 360,
|
|
36
|
+
...contentConfig.dialogConfig,
|
|
37
|
+
injector,
|
|
25
38
|
data: {
|
|
26
39
|
config,
|
|
27
|
-
|
|
40
|
+
contentConfig
|
|
28
41
|
}
|
|
29
42
|
});
|
|
30
43
|
}
|
|
@@ -49,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
49
62
|
`
|
|
50
63
|
}]
|
|
51
64
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSx1QkFBdUIsRUFBd0QsTUFBTSxrQkFBa0IsQ0FBQztBQUNqSCxPQUFPLEVBQUUsd0JBQXdCLEVBQVMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRTlFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxxRUFBcUUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBRTVKOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUVBQXVFLEdBQUcsSUFBSSxjQUFjLENBQUMsb0RBQW9ELENBQUMsQ0FBQztBQXlCaEssTUFBTSxPQUFPLCtDQUFnRCxTQUFRLHVCQUEwRTtJQUM3SSxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQW9CLEVBQUUsTUFBbUQ7UUFDekYsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTlGLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBc0MscUVBQXFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUosTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUE0RCx1RUFBdUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVwTCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlHLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwSSxhQUFhLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUV4QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsK0NBQStDLEVBQUU7WUFDckUsTUFBTSxFQUFFLDBCQUEwQjtZQUNsQyxLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSxHQUFHO1lBQ2QsUUFBUSxFQUFFLEdBQUc7WUFDYixHQUFHLGFBQWEsQ0FBQyxZQUFZO1lBQzdCLFFBQVE7WUFDUixJQUFJLEVBQUU7Z0JBQ0osTUFBTTtnQkFDTixhQUFhO2FBQ2Q7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzs2SUEvQlUsK0NBQStDO2lJQUEvQywrQ0FBK0MsMkVBUmhEOzs7Ozs7R0FNVDs0RkFFVSwrQ0FBK0M7a0JBVDNELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7R0FNVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWJzdHJhY3REaWFsb2dEaXJlY3RpdmUsIERieERpYWxvZ0NvbnRlbnRDb25maWcsIERieERpYWxvZ0NvbnRlbnRGb290ZXJDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IEtleVZhbHVlVHlwbGVWYWx1ZUZpbHRlciwgTWF5YmUsIG1lcmdlT2JqZWN0cyB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIFRva2VuIHVzZWQgdG8gY29uZmlndXJlIHRoZSBkZWZhdWx0IERieERpYWxvZ0NvbnRlbnRGb290ZXJDb25maWcgZm9yIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGlhbG9nQ29tcG9uZW50LlxuICpcbiAqIEBkZXByZWNhdGVkIHVzZSBERUZBVUxUX0RCWF9TQ0hFRFVMRV9TRUxFQ1RJT05fQ0FMRU5EQVJfREFURV9QT1BVUF9DT05URU5UX0NPTkZJR19UT0tFTiBpbnN0ZWFkLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfU0NIRURVTEVfU0VMRUNUSU9OX0NBTEVOREFSX0RBVEVfUE9QVVBfQ0xPU0VfQ09ORklHX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuKCdEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ2xvc2VDb25maWcnKTtcblxuLyoqXG4gKiBUb2tlbiB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgZGVmYXVsdCBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29uZmlnIGZvciBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZURpYWxvZ0NvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfREJYX1NDSEVEVUxFX1NFTEVDVElPTl9DQUxFTkRBUl9EQVRFX1BPUFVQX0NPTlRFTlRfQ09ORklHX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuKCdEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29udGVudENvbmZpZycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb250ZW50Q29uZmlnIHtcbiAgY2xvc2VDb25maWc/OiBEYnhEaWFsb2dDb250ZW50Rm9vdGVyQ29uZmlnO1xuICBkaWFsb2dDb25maWc/OiBEYnhEaWFsb2dDb250ZW50Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb25maWcge1xuICBpbmplY3RvcjogSW5qZWN0b3I7XG4gIGNvbnRlbnRDb25maWc/OiBNYXliZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29udGVudENvbmZpZz47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgY29udGVudENvbmZpZyBpbnN0ZWFkLlxuICAgKi9cbiAgY2xvc2VDb25maWc/OiBNYXliZTxEYnhEaWFsb2dDb250ZW50Rm9vdGVyQ29uZmlnPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1kaWFsb2ctY29udGVudCBjbGFzcz1cImRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1kaWFsb2dcIj5cbiAgICAgIDxkYngtZGlhbG9nLWNvbnRlbnQtY2xvc2UgKGNsb3NlKT1cImNsb3NlKClcIj48L2RieC1kaWFsb2ctY29udGVudC1jbG9zZT5cbiAgICAgIDxkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyPjwvZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhcj5cbiAgICAgIDxkYngtZGlhbG9nLWNvbnRlbnQtZm9vdGVyIFtjb25maWddPVwiY2xvc2VDb25maWdcIiAoY2xvc2UpPVwiY2xvc2UoKVwiPjwvZGJ4LWRpYWxvZy1jb250ZW50LWZvb3Rlcj5cbiAgICA8L2RieC1kaWFsb2ctY29udGVudD5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZURpYWxvZ0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGlhbG9nRGlyZWN0aXZlPHZvaWQsIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wdXBDb25maWc+IHtcbiAgZ2V0IGNvbnRlbnRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5jb250ZW50Q29uZmlnO1xuICB9XG5cbiAgZ2V0IGNsb3NlQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRDb25maWc/LmNsb3NlQ29uZmlnO1xuICB9XG5cbiAgc3RhdGljIG9wZW5EaWFsb2cobWF0RGlhbG9nOiBNYXREaWFsb2csIGNvbmZpZzogRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3B1cENvbmZpZykge1xuICAgIGNvbnN0IHsgaW5qZWN0b3IsIGNvbnRlbnRDb25maWc6IGlucHV0Q29udGVudENvbmZpZywgY2xvc2VDb25maWc6IGlucHV0Q2xvc2VDb25maWcgfSA9IGNvbmZpZztcblxuICAgIGNvbnN0IGRlZmF1bHRDbG9zZUNvbmZpZyA9IGluamVjdG9yLmdldDxNYXliZTxEYnhEaWFsb2dDb250ZW50Rm9vdGVyQ29uZmlnPj4oREVGQVVMVF9EQlhfU0NIRURVTEVfU0VMRUNUSU9OX0NBTEVOREFSX0RBVEVfUE9QVVBfQ0xPU0VfQ09ORklHX1RPS0VOLCBudWxsKTtcbiAgICBjb25zdCBkZWZhdWx0Q29udGVudENvbmZpZyA9IGluamVjdG9yLmdldDxNYXliZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcHVwQ29udGVudENvbmZpZz4+KERFRkFVTFRfREJYX1NDSEVEVUxFX1NFTEVDVElPTl9DQUxFTkRBUl9EQVRFX1BPUFVQX0NPTlRFTlRfQ09ORklHX1RPS0VOLCBudWxsKTtcblxuICAgIGNvbnN0IGNvbnRlbnRDb25maWcgPSBtZXJnZU9iamVjdHMoW2RlZmF1bHRDb250ZW50Q29uZmlnLCBpbnB1dENvbnRlbnRDb25maWddLCBLZXlWYWx1ZVR5cGxlVmFsdWVGaWx0ZXIuTlVMTCk7XG4gICAgY29uc3QgY2xvc2VDb25maWcgPSBtZXJnZU9iamVjdHMoW2RlZmF1bHRDbG9zZUNvbmZpZywgY29udGVudENvbmZpZz8uY2xvc2VDb25maWcsIGlucHV0Q2xvc2VDb25maWddLCBLZXlWYWx1ZVR5cGxlVmFsdWVGaWx0ZXIuTlVMTCk7XG4gICAgY29udGVudENvbmZpZy5jbG9zZUNvbmZpZyA9IGNsb3NlQ29uZmlnO1xuXG4gICAgcmV0dXJuIG1hdERpYWxvZy5vcGVuKERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6ICdjYWxjKHZhcigtLXZoMTAwKSAqIDAuOSknLFxuICAgICAgd2lkdGg6ICc4MHZ3JyxcbiAgICAgIG1pbkhlaWdodDogNDAwLFxuICAgICAgbWluV2lkdGg6IDM2MCxcbiAgICAgIC4uLmNvbnRlbnRDb25maWcuZGlhbG9nQ29uZmlnLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgY29udGVudENvbmZpZ1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|