@dereekb/dbx-form 9.24.11 → 9.24.12

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.
@@ -9,6 +9,14 @@ import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
9
9
  import { ObservableOrValue, ObservableOrValueGetter } from '@dereekb/rxjs';
10
10
  import * as i0 from "@angular/core";
11
11
  export interface DbxScheduleSelectionCalendarComponentConfig {
12
+ /**
13
+ * Whether or not the selection calendar is readonly. Defaults to 'false'.
14
+ */
15
+ readonly readonly?: Maybe<ObservableOrValueGetter<Maybe<boolean>>>;
16
+ /**
17
+ * Whether or not to show the configured buttons when readonly is true. Defaults to false.
18
+ */
19
+ readonly showButtonsOnReadonly?: boolean;
12
20
  /**
13
21
  * Whether or not to show the clear selection button. Defaults to `true`.
14
22
  */
@@ -33,8 +41,12 @@ export declare function dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory
33
41
  export declare class DbxScheduleSelectionCalendarComponent<T> implements OnInit, OnDestroy {
34
42
  readonly calendarStore: DbxCalendarStore<T>;
35
43
  readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
44
+ private _inputReadonly;
36
45
  private _config;
37
46
  private _centerRangeSub;
47
+ readonly readonly$: Observable<boolean>;
48
+ readonly showButtonsOnReadonly$: Observable<boolean>;
49
+ readonly showButtons$: Observable<boolean>;
38
50
  readonly showClearSelectionButton$: Observable<boolean>;
39
51
  readonly datePopoverButtonInjectionConfig$: Observable<Maybe<DbxInjectionComponentConfig<any>>>;
40
52
  clickEvent: EventEmitter<DbxCalendarEvent<T>>;
@@ -48,11 +60,12 @@ export declare class DbxScheduleSelectionCalendarComponent<T> implements OnInit,
48
60
  ngOnDestroy(): void;
49
61
  get config(): Maybe<DbxScheduleSelectionCalendarComponentConfig>;
50
62
  set config(config: Maybe<DbxScheduleSelectionCalendarComponentConfig>);
63
+ set readonly(readonly: Maybe<boolean>);
51
64
  dayClicked({ date }: {
52
65
  date: Date;
53
66
  }): void;
54
67
  eventClicked(action: string, event: CalendarEvent<T>): void;
55
68
  beforeMonthViewRender(renderEvent: CalendarMonthViewBeforeRenderEvent): void;
56
69
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxScheduleSelectionCalendarComponent<any>, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarComponent<any>, "dbx-schedule-selection-calendar", never, { "config": "config"; }, { "clickEvent": "clickEvent"; }, never, never, false>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarComponent<any>, "dbx-schedule-selection-calendar", never, { "config": "config"; "readonly": "readonly"; }, { "clickEvent": "clickEvent"; }, never, never, false>;
58
71
  }
@@ -7,6 +7,7 @@ export declare class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
7
7
  readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
8
8
  readonly injector: Injector;
9
9
  buttonPopoverOrigin: ElementRef;
10
+ readonly disabled$: import("rxjs").Observable<import("../../../../../dist/packages/util/src").Maybe<boolean>>;
10
11
  readonly buttonText$: import("rxjs").Observable<string>;
11
12
  constructor(popoverService: DbxPopoverService, dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore, injector: Injector);
12
13
  openPopover(): void;
@@ -16,6 +16,12 @@ export interface CalendarScheduleSelectionInputDateRange {
16
16
  }
17
17
  export declare type PartialCalendarScheduleSelectionInputDateRange = Partial<MaybeMap<CalendarScheduleSelectionInputDateRange>>;
18
18
  export interface CalendarScheduleSelectionState extends PartialCalendarScheduleSelectionInputDateRange {
19
+ /**
20
+ * Readonly state of the view.
21
+ *
22
+ * Does not affect state changes directly, but instead acts as a flag for the parent view to set and the consuming views to update on.
23
+ */
24
+ isViewReadonly?: Maybe<boolean>;
19
25
  /**
20
26
  * Filters the days of the schedule to only allow selecting days in the schedule.
21
27
  *
@@ -148,6 +154,7 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
148
154
  readonly dateScheduleRangeValue$: Observable<DateScheduleRange>;
149
155
  readonly cellContentFactory$: Observable<CalendarScheduleSelectionCellContentFactory<import("./calendar.schedule.selection").CalendarScheduleSelectionMetadata>>;
150
156
  readonly isCustomized$: Observable<boolean>;
157
+ readonly isViewReadonly$: Observable<Maybe<boolean>>;
151
158
  readonly setMinMaxDateRange: (() => void) | ((observableOrValue: Maybe<Partial<DateRange>> | Observable<Maybe<Partial<DateRange>>>) => import("rxjs").Subscription);
152
159
  readonly setFilter: (() => void) | ((observableOrValue: Maybe<DateScheduleDateFilterConfig> | Observable<Maybe<DateScheduleDateFilterConfig>>) => import("rxjs").Subscription);
153
160
  readonly setExclusions: (() => void) | ((observableOrValue: Maybe<ArrayOrValue<DateOrDateRangeOrDateBlockIndexOrDateBlockRange>> | Observable<Maybe<ArrayOrValue<DateOrDateRangeOrDateBlockIndexOrDateBlockRange>>>) => import("rxjs").Subscription);
@@ -166,6 +173,12 @@ export declare class DbxCalendarScheduleSelectionStore extends ComponentStore<Ca
166
173
  readonly setAllowAllScheduleDays: () => void;
167
174
  readonly setDateScheduleRangeValue: (() => void) | ((observableOrValue: Maybe<DateScheduleRange> | Observable<Maybe<DateScheduleRange>>) => import("rxjs").Subscription);
168
175
  readonly setCellContentFactory: (observableOrValue: CalendarScheduleSelectionCellContentFactory<import("./calendar.schedule.selection").CalendarScheduleSelectionMetadata> | Observable<CalendarScheduleSelectionCellContentFactory<import("./calendar.schedule.selection").CalendarScheduleSelectionMetadata>>) => import("rxjs").Subscription;
176
+ /**
177
+ * Used by the parent view to propogate a readonly state.
178
+ *
179
+ * Should typically not be used by the user directly with the intention of the parent synchronizing to this state.
180
+ */
181
+ readonly setViewReadonlyState: (observableOrValue: boolean | Observable<boolean>) => import("rxjs").Subscription;
169
182
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarScheduleSelectionStore, never>;
170
183
  static ɵprov: i0.ɵɵInjectableDeclaration<DbxCalendarScheduleSelectionStore>;
171
184
  }
@@ -1,19 +1,23 @@
1
- import { Injector } from '@angular/core';
1
+ import { Injector, OnDestroy } from '@angular/core';
2
2
  import { DbxPopoverService } from '@dereekb/dbx-web';
3
3
  import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
4
4
  import { DbxButtonDisplayContent } from '@dereekb/dbx-core';
5
+ import { Maybe } from '@dereekb/util';
5
6
  import * as i0 from "@angular/core";
6
7
  /**
7
8
  * Toggle button for selecting and clearing the current selection.
8
9
  */
9
- export declare class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
10
+ export declare class DbxScheduleSelectionCalendarSelectionToggleButtonComponent implements OnDestroy {
10
11
  readonly popoverService: DbxPopoverService;
11
12
  readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
12
13
  readonly injector: Injector;
14
+ private _disabled;
13
15
  readonly disableButton$: import("rxjs").Observable<boolean>;
14
16
  readonly buttonDisplay$: import("rxjs").Observable<DbxButtonDisplayContent>;
15
17
  constructor(popoverService: DbxPopoverService, dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore, injector: Injector);
18
+ ngOnDestroy(): void;
16
19
  toggleSelection(): void;
20
+ set disabled(disabled: Maybe<boolean>);
17
21
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxScheduleSelectionCalendarSelectionToggleButtonComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarSelectionToggleButtonComponent, "dbx-schedule-selection-calendar-selection-toggle-button", never, {}, {}, never, never, false>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarSelectionToggleButtonComponent, "dbx-schedule-selection-calendar-selection-toggle-button", never, { "disabled": "disabled"; }, {}, never, never, false>;
19
23
  }
@@ -1,10 +1,11 @@
1
1
  import { Component, EventEmitter, Output, Input } from '@angular/core';
2
- import { map, shareReplay, first, throttleTime, BehaviorSubject, distinctUntilChanged, combineLatest, switchMap } from 'rxjs';
2
+ import { map, shareReplay, first, throttleTime, BehaviorSubject, distinctUntilChanged, combineLatest, switchMap, of, combineLatestWith } from 'rxjs';
3
3
  import { DbxCalendarStore, prepareAndSortCalendarEvents } from '@dereekb/dbx-web/calendar';
4
+ import { reduceBooleansWithAnd } from '@dereekb/util';
4
5
  import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
5
6
  import { CalendarScheduleSelectionDayState } from './calendar.schedule.selection';
6
7
  import { switchMapDbxInjectionComponentConfig } from '@dereekb/dbx-core';
7
- import { SubscriptionObject, asObservable } from '@dereekb/rxjs';
8
+ import { SubscriptionObject, asObservable, asObservableFromGetter } from '@dereekb/rxjs';
8
9
  import { DbxScheduleSelectionCalendarDatePopoverButtonComponent } from './calendar.schedule.selection.popover.button.component';
9
10
  import { DateRangeType, dateRange, isSameDate } from '@dereekb/date';
10
11
  import { endOfWeek } from 'date-fns';
@@ -15,8 +16,9 @@ import * as i3 from "@dereekb/dbx-core";
15
16
  import * as i4 from "@angular/common";
16
17
  import * as i5 from "@dereekb/dbx-web";
17
18
  import * as i6 from "angular-calendar";
18
- import * as i7 from "./calendar.schedule.selection.cell.component";
19
- import * as i8 from "./calendar.schedule.selection.toggle.button.component";
19
+ import * as i7 from "@angular/flex-layout/extended";
20
+ import * as i8 from "./calendar.schedule.selection.cell.component";
21
+ import * as i9 from "./calendar.schedule.selection.toggle.button.component";
20
22
  export function dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(inputModifyFn) {
21
23
  const modifyFn = inputModifyFn || (() => { });
22
24
  return (state$) => {
@@ -61,10 +63,23 @@ export class DbxScheduleSelectionCalendarComponent {
61
63
  constructor(calendarStore, dbxCalendarScheduleSelectionStore) {
62
64
  this.calendarStore = calendarStore;
63
65
  this.dbxCalendarScheduleSelectionStore = dbxCalendarScheduleSelectionStore;
66
+ this._inputReadonly = new BehaviorSubject(undefined);
64
67
  this._config = new BehaviorSubject({});
65
68
  this._centerRangeSub = new SubscriptionObject();
66
- this.showClearSelectionButton$ = this._config.pipe(map((config) => config.showClearSelectionButton ?? true), distinctUntilChanged());
67
- this.datePopoverButtonInjectionConfig$ = this._config.pipe(map((x) => x.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), shareReplay(1));
69
+ this.readonly$ = this._config.pipe(switchMap((x) => (x.readonly != null ? asObservableFromGetter(x.readonly) : of(undefined))), combineLatestWith(this._inputReadonly), map(([configReadonly, inputReadonly]) => {
70
+ return (configReadonly ?? false) || (inputReadonly ?? false);
71
+ }), shareReplay(1));
72
+ this.showButtonsOnReadonly$ = this._config.pipe(map((x) => x.showButtonsOnReadonly ?? false), distinctUntilChanged(), shareReplay(1));
73
+ this.showButtons$ = this.showButtonsOnReadonly$.pipe(switchMap((x) => {
74
+ if (x) {
75
+ return of(true);
76
+ }
77
+ else {
78
+ return this.readonly$.pipe(map((x) => !x));
79
+ }
80
+ }), distinctUntilChanged(), shareReplay(1));
81
+ this.showClearSelectionButton$ = this._config.pipe(map((config) => config.showClearSelectionButton ?? true), combineLatestWith(this.showButtons$), map((x) => reduceBooleansWithAnd(x)), distinctUntilChanged(), shareReplay(1));
82
+ this.datePopoverButtonInjectionConfig$ = this._config.pipe(map((x) => x.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), combineLatestWith(this.showButtons$), map(([config, showButton]) => (showButton ? config : undefined)), shareReplay(1));
68
83
  this.clickEvent = new EventEmitter();
69
84
  // refresh any time the selected day function updates
70
85
  this.state$ = this.dbxCalendarScheduleSelectionStore.state$;
@@ -78,11 +93,12 @@ export class DbxScheduleSelectionCalendarComponent {
78
93
  }
79
94
  return factory.pipe(map((x) => x(this.state$)));
80
95
  }), shareReplay(1));
81
- this.refresh$ = combineLatest([this.state$, this.beforeMonthViewRender$]).pipe(throttleTime(100), map(() => undefined));
96
+ this.refresh$ = combineLatest([this.state$, this.beforeMonthViewRender$]).pipe(throttleTime(20, undefined, { leading: true, trailing: true }), map(() => undefined));
82
97
  this.events$ = this.calendarStore.visibleEvents$.pipe(map(prepareAndSortCalendarEvents), shareReplay(1));
83
98
  this.viewDate$ = this.calendarStore.date$;
84
99
  }
85
100
  ngOnInit() {
101
+ this.dbxCalendarScheduleSelectionStore.setViewReadonlyState(this.readonly$); // sync the readonly state
86
102
  this.calendarStore.setNavigationRangeLimit(this.dbxCalendarScheduleSelectionStore.minMaxDateRange$); // set navigation limit to the min/max allowed dates.
87
103
  this.calendarStore.setShowPageButtons(true);
88
104
  // when a new filter is set, if the first two pages of selectable indexes fit within the calendar month, focus on that calendar month.
@@ -98,6 +114,7 @@ export class DbxScheduleSelectionCalendarComponent {
98
114
  });
99
115
  }
100
116
  ngOnDestroy() {
117
+ this._inputReadonly.complete();
101
118
  this.clickEvent.complete();
102
119
  this._config.complete();
103
120
  this._centerRangeSub.destroy();
@@ -108,8 +125,15 @@ export class DbxScheduleSelectionCalendarComponent {
108
125
  set config(config) {
109
126
  this._config.next(config ?? {});
110
127
  }
128
+ set readonly(readonly) {
129
+ this._inputReadonly.next(readonly);
130
+ }
111
131
  dayClicked({ date }) {
112
- this.dbxCalendarScheduleSelectionStore.toggleSelectedDates(date);
132
+ this.readonly$.pipe(first()).subscribe((readonly) => {
133
+ if (!readonly) {
134
+ this.dbxCalendarScheduleSelectionStore.toggleSelectedDates(date);
135
+ }
136
+ });
113
137
  }
114
138
  eventClicked(action, event) {
115
139
  this.clickEvent.emit({ action, event });
@@ -121,13 +145,15 @@ export class DbxScheduleSelectionCalendarComponent {
121
145
  }
122
146
  }
123
147
  DbxScheduleSelectionCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, deps: [{ token: i1.DbxCalendarStore }, { token: i2.DbxCalendarScheduleSelectionStore }], target: i0.ɵɵFactoryTarget.Component });
124
- DbxScheduleSelectionCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: { config: "config" }, outputs: { clickEvent: "clickEvent" }, providers: [DbxCalendarStore], ngImport: i0, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\">\n <ng-container controls>\n <ng-container *ngIf=\"showClearSelectionButton$ | async\">\n <dbx-schedule-selection-calendar-selection-toggle-button></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-injection [config]=\"datePopoverButtonInjectionConfig$ | async\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n <span class=\"cal-day-badge\" *ngIf=\"day.badgeTotal > 0\">{{ day.badgeTotal }}</span>\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber':locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i1.DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: i7.DbxScheduleSelectionCalendarCellComponent, selector: "dbx-schedule-selection-calendar-cell", inputs: ["day"] }, { kind: "component", type: i8.DbxScheduleSelectionCalendarSelectionToggleButtonComponent, selector: "dbx-schedule-selection-calendar-selection-toggle-button" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.ɵCalendarDatePipe, name: "calendarDate" }] });
148
+ DbxScheduleSelectionCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: { config: "config", readonly: "readonly" }, outputs: { clickEvent: "clickEvent" }, providers: [DbxCalendarStore], ngImport: i0, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\" [ngClass]=\"(readonly$ | async) ? 'dbx-schedule-selection-calendar-readonly' : ''\">\n <ng-container controls>\n <ng-container *ngIf=\"showClearSelectionButton$ | async\">\n <dbx-schedule-selection-calendar-selection-toggle-button [disabled]=\"readonly$ | async\"></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-injection [config]=\"datePopoverButtonInjectionConfig$ | async\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n <span class=\"cal-day-badge\" *ngIf=\"day.badgeTotal > 0\">{{ day.badgeTotal }}</span>\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber':locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i1.DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i6.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "directive", type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i8.DbxScheduleSelectionCalendarCellComponent, selector: "dbx-schedule-selection-calendar-cell", inputs: ["day"] }, { kind: "component", type: i9.DbxScheduleSelectionCalendarSelectionToggleButtonComponent, selector: "dbx-schedule-selection-calendar-selection-toggle-button", inputs: ["disabled"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.ɵCalendarDatePipe, name: "calendarDate" }] });
125
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, decorators: [{
126
150
  type: Component,
127
- args: [{ selector: 'dbx-schedule-selection-calendar', providers: [DbxCalendarStore], template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\">\n <ng-container controls>\n <ng-container *ngIf=\"showClearSelectionButton$ | async\">\n <dbx-schedule-selection-calendar-selection-toggle-button></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-injection [config]=\"datePopoverButtonInjectionConfig$ | async\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n <span class=\"cal-day-badge\" *ngIf=\"day.badgeTotal > 0\">{{ day.badgeTotal }}</span>\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber':locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n" }]
151
+ args: [{ selector: 'dbx-schedule-selection-calendar', providers: [DbxCalendarStore], template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\" [ngClass]=\"(readonly$ | async) ? 'dbx-schedule-selection-calendar-readonly' : ''\">\n <ng-container controls>\n <ng-container *ngIf=\"showClearSelectionButton$ | async\">\n <dbx-schedule-selection-calendar-selection-toggle-button [disabled]=\"readonly$ | async\"></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-injection [config]=\"datePopoverButtonInjectionConfig$ | async\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n <span class=\"cal-day-badge\" *ngIf=\"day.badgeTotal > 0\">{{ day.badgeTotal }}</span>\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber':locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n" }]
128
152
  }], ctorParameters: function () { return [{ type: i1.DbxCalendarStore }, { type: i2.DbxCalendarScheduleSelectionStore }]; }, propDecorators: { clickEvent: [{
129
153
  type: Output
130
154
  }], config: [{
131
155
  type: Input
156
+ }], readonly: [{
157
+ type: Input
132
158
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQVcsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQWMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSixPQUFPLEVBQW9CLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0csT0FBTyxFQUFrQyxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxpQ0FBaUMsRUFBcUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNySCxPQUFPLEVBQStCLG9DQUFvQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEcsT0FBTyxFQUE4QyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLHNEQUFzRCxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEksT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7QUEyQnJDLE1BQU0sVUFBVSx3REFBd0QsQ0FBQyxhQUF5RjtJQUNoSyxNQUFNLFFBQVEsR0FBRyxhQUFhLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUU3QyxPQUFPLENBQUMsTUFBa0QsRUFBRSxFQUFFO1FBQzVELE9BQU8sQ0FBQyxXQUErQyxFQUFFLEVBQUU7WUFDekQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUF3RSxXQUFXLENBQUM7WUFFbEcsMkJBQTJCO1lBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxxQkFBcUQsRUFBRSxFQUFFO2dCQUN2RixNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLHFCQUFxQixDQUFDO2dCQUNwRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ3pCLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUUxQixJQUFJLEtBQXdDLENBQUM7b0JBRTdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDMUIsT0FBTyxDQUFDLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQzt3QkFDNUMsS0FBSyxHQUFHLGlDQUFpQyxDQUFDLGNBQWMsQ0FBQztxQkFDMUQ7eUJBQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFnQixDQUFDLEVBQUU7d0JBQ25ELE9BQU8sQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7d0JBQ3RDLEtBQUssR0FBRyxpQ0FBaUMsQ0FBQyxRQUFRLENBQUM7cUJBQ3BEO3lCQUFNLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUMxQixPQUFPLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDO3dCQUN0QyxLQUFLLEdBQUcsaUNBQWlDLENBQUMsUUFBUSxDQUFDO3FCQUNwRDt5QkFBTTt3QkFDTCxPQUFPLENBQUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDO3dCQUMxQyxLQUFLLEdBQUcsaUNBQWlDLENBQUMsWUFBWSxDQUFDO3FCQUN4RDtvQkFFRCxNQUFNLElBQUksR0FBRzt3QkFDWCxLQUFLO3dCQUNMLENBQUM7cUJBQ0YsQ0FBQztvQkFFRixPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztvQkFFcEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU9ELE1BQU0sT0FBTyxxQ0FBcUM7SUE0Q2hELFlBQXFCLGFBQWtDLEVBQVcsaUNBQW9FO1FBQWpILGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUFXLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUEzQzlILFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBOEMsRUFBRSxDQUFDLENBQUM7UUFDL0Usb0JBQWUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFMUMsOEJBQXlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3BELEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxFQUN4RCxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1FBRU8sc0NBQWlDLEdBQXdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNqSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUNuQyxvQ0FBb0MsQ0FBQyxzREFBc0QsQ0FBQyxFQUM1RixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUdGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUVyRCxxREFBcUQ7UUFDNUMsV0FBTSxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUM7UUFFdkQsMkJBQXNCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2pELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2QsSUFBSSxPQUFxRixDQUFDO1lBRTFGLElBQUksQ0FBQyxDQUFDLG9DQUFvQyxFQUFFO2dCQUMxQyxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ2hFO2lCQUFNO2dCQUNMLE9BQU8sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHdEQUF3RCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0SDtZQUVELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sYUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUNDLENBQUM7UUFFZixZQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BHLGNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUUyRixDQUFDO0lBRTFJLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMscURBQXFEO1FBQzFKLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsc0lBQXNJO1FBQ3RJLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxRyxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDckIsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBRWhGLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNoRCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDekM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBMEQ7UUFDbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQWtCO1FBQ2pDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWMsRUFBRSxLQUF1QjtRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxXQUErQztRQUNuRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7bUlBM0ZVLHFDQUFxQzt1SEFBckMscUNBQXFDLCtIQUZyQyxDQUFDLGdCQUFnQixDQUFDLDBCQ3RGL0Isc3pDQXFCQTs0RkRtRWEscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNFLGlDQUFpQyxhQUVoQyxDQUFDLGdCQUFnQixDQUFDO3VKQWtCN0IsVUFBVTtzQkFEVCxNQUFNO2dCQXdESCxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkRlc3Ryb3ksIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyRXZlbnQsIENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQsIENhbGVuZGFyTW9udGhWaWV3RGF5IH0gZnJvbSAnYW5ndWxhci1jYWxlbmRhcic7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBTdWJqZWN0LCBmaXJzdCwgdGhyb3R0bGVUaW1lLCBCZWhhdmlvclN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieENhbGVuZGFyRXZlbnQsIERieENhbGVuZGFyU3RvcmUsIHByZXBhcmVBbmRTb3J0Q2FsZW5kYXJFdmVudHMgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViL2NhbGVuZGFyJztcbmltcG9ydCB7IERheU9mV2VlaywgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdGF0ZSwgRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uc3RvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLCBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbic7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcsIHN3aXRjaE1hcERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCBPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3Vic2NyaXB0aW9uT2JqZWN0LCBhc09ic2VydmFibGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VUeXBlLCBkYXRlUmFuZ2UsIGlzU2FtZURhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IGVuZE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGNsZWFyIHNlbGVjdGlvbiBidXR0b24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBkaXNwbGF5aW5nIGEgY3VzdG9tIHNlbGVjdGlvbiBidXR0b24uIFdoZW4gbnVsbC91bmRlZmluZWQvdHJ1ZSBpcyBwYXNzZWQsIHdpbGwgc2hvdyB0aGUgZGVmYXVsdCBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBidXR0b25JbmplY3Rpb25Db25maWc/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55PiB8IGJvb2xlYW4+Pj47XG4gIC8qKlxuICAgKiBDdXN0b21pemUgZGF5IGZ1bmN0aW9uLiBXaGVuIGEgbmV3IGZ1bmN0aW9uIGlzIHBpcGVkIHRocm91Z2ggdGhlIGNhbGVuZGFyIGlzIHJlZnJlc2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbWl6ZURheT86IE1heWJlPE9ic2VydmFibGVPclZhbHVlPE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJNb2RpZnlEYXlGdW5jdGlvbj4+PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bGwgY29udHJvbCBvdmVyIHRoZSBiZWZvcmVNb250aFZpZXdSZW5kZXJcbiAgICovXG4gIHJlYWRvbmx5IGJlZm9yZU1vbnRoVmlld1JlbmRlckZ1bmN0aW9uRmFjdG9yeT86IE1heWJlPE9ic2VydmFibGVPclZhbHVlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnk+Pjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlck1vZGlmeURheUZ1bmN0aW9uID0gKHZpZXdEYXk6IENhbGVuZGFyTW9udGhWaWV3RGF5PENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25NZXRhZGF0YT4sIHN0YXRlOiBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbiA9IChyZW5kZXJFdmVudDogQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCkgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlckZ1bmN0aW9uRmFjdG9yeSA9IChzdGF0ZTogT2JzZXJ2YWJsZTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGU+KSA9PiBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb247XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRmFjdG9yeShpbnB1dE1vZGlmeUZuPzogTWF5YmU8RGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlck1vZGlmeURheUZ1bmN0aW9uPik6IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnkge1xuICBjb25zdCBtb2RpZnlGbiA9IGlucHV0TW9kaWZ5Rm4gfHwgKCgpID0+IHt9KTtcblxuICByZXR1cm4gKHN0YXRlJDogT2JzZXJ2YWJsZTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGU+KSA9PiB7XG4gICAgcmV0dXJuIChyZW5kZXJFdmVudDogQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBib2R5IH06IHsgYm9keTogQ2FsZW5kYXJNb250aFZpZXdEYXk8Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbk1ldGFkYXRhPltdIH0gPSByZW5kZXJFdmVudDtcblxuICAgICAgLy8gdXNlIGxhdGVzdC9jdXJyZW50IHN0YXRlXG4gICAgICBzdGF0ZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKGNhbGVuZGFyU2NoZWR1bGVTdGF0ZTogQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNFbmFibGVkRGF5LCBpbmRleEZhY3RvcnksIGlzRW5hYmxlZEZpbHRlckRheSwgYWxsb3dlZERheXNPZldlZWsgfSA9IGNhbGVuZGFyU2NoZWR1bGVTdGF0ZTtcbiAgICAgICAgYm9keS5mb3JFYWNoKCh2aWV3RGF5KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBkYXRlIH0gPSB2aWV3RGF5O1xuICAgICAgICAgIGNvbnN0IGkgPSBpbmRleEZhY3RvcnkoZGF0ZSk7XG4gICAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXkoKTtcblxuICAgICAgICAgIGxldCBzdGF0ZTogQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlO1xuXG4gICAgICAgICAgaWYgKCFpc0VuYWJsZWRGaWx0ZXJEYXkoaSkpIHtcbiAgICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1ub3QtYXBwbGljYWJsZSc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5OT1RfQVBQTElDQUJMRTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFhbGxvd2VkRGF5c09mV2Vlay5oYXMoZGF5IGFzIERheU9mV2VlaykpIHtcbiAgICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1kaXNhYmxlZCc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5ESVNBQkxFRDtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRW5hYmxlZERheShpKSkge1xuICAgICAgICAgICAgdmlld0RheS5jc3NDbGFzcyA9ICdjYWwtZGF5LXNlbGVjdGVkJztcbiAgICAgICAgICAgIHN0YXRlID0gQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLlNFTEVDVEVEO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktbm90LXNlbGVjdGVkJztcbiAgICAgICAgICAgIHN0YXRlID0gQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLk5PVF9TRUxFQ1RFRDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBtZXRhID0ge1xuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBpXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHZpZXdEYXkubWV0YSA9IG1ldGE7XG5cbiAgICAgICAgICBtb2RpZnlGbih2aWV3RGF5LCBjYWxlbmRhclNjaGVkdWxlU3RhdGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gIH07XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbRGJ4Q2FsZW5kYXJTdG9yZV1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnPih7fSk7XG4gIHByaXZhdGUgX2NlbnRlclJhbmdlU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiQgPSB0aGlzLl9jb25maWcucGlwZShcbiAgICBtYXAoKGNvbmZpZykgPT4gY29uZmlnLnNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiA/PyB0cnVlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0ZVBvcG92ZXJCdXR0b25JbmplY3Rpb25Db25maWckOiBPYnNlcnZhYmxlPE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+Pj4gPSB0aGlzLl9jb25maWcucGlwZShcbiAgICBtYXAoKHgpID0+IHguYnV0dG9uSW5qZWN0aW9uQ29uZmlnKSxcbiAgICBzd2l0Y2hNYXBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcoRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIEBPdXRwdXQoKVxuICBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEYnhDYWxlbmRhckV2ZW50PFQ+PigpO1xuXG4gIC8vIHJlZnJlc2ggYW55IHRpbWUgdGhlIHNlbGVjdGVkIGRheSBmdW5jdGlvbiB1cGRhdGVzXG4gIHJlYWRvbmx5IHN0YXRlJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnN0YXRlJDtcblxuICByZWFkb25seSBiZWZvcmVNb250aFZpZXdSZW5kZXIkID0gdGhpcy5fY29uZmlnLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB7XG4gICAgICBsZXQgZmFjdG9yeTogT2JzZXJ2YWJsZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5PjtcblxuICAgICAgaWYgKHguYmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5KSB7XG4gICAgICAgIGZhY3RvcnkgPSBhc09ic2VydmFibGUoeC5iZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3RvcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmFjdG9yeSA9IGFzT2JzZXJ2YWJsZSh4LmN1c3RvbWl6ZURheSkucGlwZShtYXAoKHgpID0+IGRieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGYWN0b3J5KHgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWN0b3J5LnBpcGUobWFwKCh4KSA9PiB4KHRoaXMuc3RhdGUkKSkpO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcmVmcmVzaCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRlJCwgdGhpcy5iZWZvcmVNb250aFZpZXdSZW5kZXIkXSkucGlwZShcbiAgICB0aHJvdHRsZVRpbWUoMTAwKSxcbiAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKVxuICApIGFzIFN1YmplY3Q8dW5kZWZpbmVkPjtcblxuICByZWFkb25seSBldmVudHMkID0gdGhpcy5jYWxlbmRhclN0b3JlLnZpc2libGVFdmVudHMkLnBpcGUobWFwKHByZXBhcmVBbmRTb3J0Q2FsZW5kYXJFdmVudHMpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IHZpZXdEYXRlJCA9IHRoaXMuY2FsZW5kYXJTdG9yZS5kYXRlJDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjYWxlbmRhclN0b3JlOiBEYnhDYWxlbmRhclN0b3JlPFQ+LCByZWFkb25seSBkYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmU6IERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyU3RvcmUuc2V0TmF2aWdhdGlvblJhbmdlTGltaXQodGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUubWluTWF4RGF0ZVJhbmdlJCk7IC8vIHNldCBuYXZpZ2F0aW9uIGxpbWl0IHRvIHRoZSBtaW4vbWF4IGFsbG93ZWQgZGF0ZXMuXG4gICAgdGhpcy5jYWxlbmRhclN0b3JlLnNldFNob3dQYWdlQnV0dG9ucyh0cnVlKTtcblxuICAgIC8vIHdoZW4gYSBuZXcgZmlsdGVyIGlzIHNldCwgaWYgdGhlIGZpcnN0IHR3byBwYWdlcyBvZiBzZWxlY3RhYmxlIGluZGV4ZXMgZml0IHdpdGhpbiB0aGUgY2FsZW5kYXIgbW9udGgsIGZvY3VzIG9uIHRoYXQgY2FsZW5kYXIgbW9udGguXG4gICAgdGhpcy5fY2VudGVyUmFuZ2VTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUubWluTWF4RGF0ZVJhbmdlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGlmICh4Py5zdGFydCAmJiB4LmVuZCkge1xuICAgICAgICBjb25zdCBzdGFydE1vbnRoID0gZGF0ZVJhbmdlKHsgZGF0ZTogeC5zdGFydCwgdHlwZTogRGF0ZVJhbmdlVHlwZS5DQUxFTkRBUl9NT05USCB9KTtcbiAgICAgICAgY29uc3QgZW5kTW9udGggPSBkYXRlUmFuZ2UoeyBkYXRlOiB4LmVuZCwgdHlwZTogRGF0ZVJhbmdlVHlwZS5DQUxFTkRBUl9NT05USCB9KTtcblxuICAgICAgICBpZiAoaXNTYW1lRGF0ZShzdGFydE1vbnRoLnN0YXJ0LCBlbmRNb250aC5zdGFydCkpIHtcbiAgICAgICAgICBjb25zdCBtb250aFRvRm9jdXMgPSBlbmRPZldlZWsoc3RhcnRNb250aC5zdGFydCk7XG4gICAgICAgICAgdGhpcy5jYWxlbmRhclN0b3JlLnRhcERheShtb250aFRvRm9jdXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb25maWcuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jZW50ZXJSYW5nZVN1Yi5kZXN0cm95KCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcudmFsdWU7XG4gIH1cblxuICBzZXQgY29uZmlnKGNvbmZpZzogTWF5YmU8RGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNvbXBvbmVudENvbmZpZz4pIHtcbiAgICB0aGlzLl9jb25maWcubmV4dChjb25maWcgPz8ge30pO1xuICB9XG5cbiAgZGF5Q2xpY2tlZCh7IGRhdGUgfTogeyBkYXRlOiBEYXRlIH0pOiB2b2lkIHtcbiAgICB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS50b2dnbGVTZWxlY3RlZERhdGVzKGRhdGUpO1xuICB9XG5cbiAgZXZlbnRDbGlja2VkKGFjdGlvbjogc3RyaW5nLCBldmVudDogQ2FsZW5kYXJFdmVudDxUPik6IHZvaWQge1xuICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KHsgYWN0aW9uLCBldmVudCB9KTtcbiAgfVxuXG4gIGJlZm9yZU1vbnRoVmlld1JlbmRlcihyZW5kZXJFdmVudDogQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYmVmb3JlTW9udGhWaWV3UmVuZGVyJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgeChyZW5kZXJFdmVudCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkYngtY2FsZW5kYXItYmFzZSBjbGFzcz1cImRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXJcIj5cbiAgPG5nLWNvbnRhaW5lciBjb250cm9scz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0NsZWFyU2VsZWN0aW9uQnV0dG9uJCB8IGFzeW5jXCI+XG4gICAgICA8ZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1zZWxlY3Rpb24tdG9nZ2xlLWJ1dHRvbj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItc2VsZWN0aW9uLXRvZ2dsZS1idXR0b24+XG4gICAgICA8ZGJ4LWJ1dHRvbi1zcGFjZXI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImRhdGVQb3BvdmVyQnV0dG9uSW5qZWN0aW9uQ29uZmlnJCB8IGFzeW5jXCI+PC9kYngtaW5qZWN0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImRieC1jYWxlbmRhci1jb250ZW50IGRieC1jYWxlbmRhci1jb250ZW50LW1vbnRoXCI+XG4gICAgPG13bC1jYWxlbmRhci1tb250aC12aWV3IFtyZWZyZXNoXT1cInJlZnJlc2gkXCIgW3ZpZXdEYXRlXT1cIih2aWV3RGF0ZSQgfCBhc3luYykhXCIgW2V2ZW50c109XCIoZXZlbnRzJCB8IGFzeW5jKSFcIiAoZGF5Q2xpY2tlZCk9XCJkYXlDbGlja2VkKCRldmVudC5kYXkpXCIgKGV2ZW50Q2xpY2tlZCk9XCJldmVudENsaWNrZWQoJ0NsaWNrZWQnLCAkZXZlbnQuZXZlbnQpXCIgKGJlZm9yZVZpZXdSZW5kZXIpPVwiYmVmb3JlTW9udGhWaWV3UmVuZGVyKCRldmVudClcIiBbY2VsbFRlbXBsYXRlXT1cIm1vbnRoRGF5Q2VsbFRlbXBsYXRlXCI+PC9td2wtY2FsZW5kYXItbW9udGgtdmlldz5cbiAgPC9kaXY+XG48L2RieC1jYWxlbmRhci1iYXNlPlxuXG48IS0tIENlbGwgLS0+XG48bmctdGVtcGxhdGUgI21vbnRoRGF5Q2VsbFRlbXBsYXRlIGxldC1kYXk9XCJkYXlcIiBsZXQtbG9jYWxlPVwibG9jYWxlXCI+XG4gIDxkaXYgY2xhc3M9XCJjYWwtY2VsbC10b3BcIj5cbiAgICA8c3BhbiBjbGFzcz1cImNhbC1kYXktYmFkZ2VcIiAqbmdJZj1cImRheS5iYWRnZVRvdGFsID4gMFwiPnt7IGRheS5iYWRnZVRvdGFsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiY2FsLWRheS1udW1iZXJcIj57eyBkYXkuZGF0ZSB8IGNhbGVuZGFyRGF0ZTogJ21vbnRoVmlld0RheU51bWJlcic6bG9jYWxlIH19PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbCBbZGF5XT1cImRheVwiPjwvZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1jZWxsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQVcsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQWMsYUFBYSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUssT0FBTyxFQUFvQixnQkFBZ0IsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdHLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFrQyxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxpQ0FBaUMsRUFBcUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNySCxPQUFPLEVBQStCLG9DQUFvQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEcsT0FBTyxFQUE4QyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckksT0FBTyxFQUFFLHNEQUFzRCxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDaEksT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUs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UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNiLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsS0FBdUI7UUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsV0FBK0M7UUFDbkUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hELENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O21JQXhJVSxxQ0FBcUM7dUhBQXJDLHFDQUFxQyxxSkFGckMsQ0FBQyxnQkFBZ0IsQ0FBQywwQkM3Ri9CLDI2Q0FxQkE7NEZEMEVhLHFDQUFxQztrQkFMakQsU0FBUzsrQkFDRSxpQ0FBaUMsYUFFaEMsQ0FBQyxnQkFBZ0IsQ0FBQzt1SkFtRDdCLFVBQVU7c0JBRFQsTUFBTTtnQkEyREgsTUFBTTtzQkFEVCxLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uRGVzdHJveSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdEYXkgfSBmcm9tICdhbmd1bGFyLWNhbGVuZGFyJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIFN1YmplY3QsIGZpcnN0LCB0aHJvdHRsZVRpbWUsIEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIHN3aXRjaE1hcCwgb2YsIGNvbWJpbmVMYXRlc3RXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhDYWxlbmRhckV2ZW50LCBEYnhDYWxlbmRhclN0b3JlLCBwcmVwYXJlQW5kU29ydENhbGVuZGFyRXZlbnRzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYi9jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXlPZldlZWssIE1heWJlLCByZWR1Y2VCb29sZWFuc1dpdGhBbmQgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdGF0ZSwgRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uc3RvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLCBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbic7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcsIHN3aXRjaE1hcERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCBPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3Vic2NyaXB0aW9uT2JqZWN0LCBhc09ic2VydmFibGUsIGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VUeXBlLCBkYXRlUmFuZ2UsIGlzU2FtZURhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IGVuZE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBzZWxlY3Rpb24gY2FsZW5kYXIgaXMgcmVhZG9ubHkuIERlZmF1bHRzIHRvICdmYWxzZScuXG4gICAqL1xuICByZWFkb25seSByZWFkb25seT86IE1heWJlPE9ic2VydmFibGVPclZhbHVlR2V0dGVyPE1heWJlPGJvb2xlYW4+Pj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBjb25maWd1cmVkIGJ1dHRvbnMgd2hlbiByZWFkb25seSBpcyB0cnVlLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dCdXR0b25zT25SZWFkb25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBjbGVhciBzZWxlY3Rpb24gYnV0dG9uLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG93Q2xlYXJTZWxlY3Rpb25CdXR0b24/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgZGlzcGxheWluZyBhIGN1c3RvbSBzZWxlY3Rpb24gYnV0dG9uLiBXaGVuIG51bGwvdW5kZWZpbmVkL3RydWUgaXMgcGFzc2VkLCB3aWxsIHNob3cgdGhlIGRlZmF1bHQgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uSW5qZWN0aW9uQ29uZmlnPzogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8TWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPGFueT4gfCBib29sZWFuPj4+O1xuICAvKipcbiAgICogQ3VzdG9taXplIGRheSBmdW5jdGlvbi4gV2hlbiBhIG5ldyBmdW5jdGlvbiBpcyBwaXBlZCB0aHJvdWdoIHRoZSBjYWxlbmRhciBpcyByZWZyZXNoZWQuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21pemVEYXk/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyTW9kaWZ5RGF5RnVuY3Rpb24+Pj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgYmVmb3JlTW9udGhWaWV3UmVuZGVyXG4gICAqL1xuICByZWFkb25seSBiZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnk/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5Pj47XG59XG5cbmV4cG9ydCB0eXBlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJNb2RpZnlEYXlGdW5jdGlvbiA9ICh2aWV3RGF5OiBDYWxlbmRhck1vbnRoVmlld0RheTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uTWV0YWRhdGE+LCBzdGF0ZTogQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb24gPSAocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3RvcnkgPSAoc3RhdGU6IE9ic2VydmFibGU8Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlPikgPT4gRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlckZ1bmN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gZGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlckZhY3RvcnkoaW5wdXRNb2RpZnlGbj86IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJNb2RpZnlEYXlGdW5jdGlvbj4pOiBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5IHtcbiAgY29uc3QgbW9kaWZ5Rm4gPSBpbnB1dE1vZGlmeUZuIHx8ICgoKSA9PiB7fSk7XG5cbiAgcmV0dXJuIChzdGF0ZSQ6IE9ic2VydmFibGU8Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlPikgPT4ge1xuICAgIHJldHVybiAocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHsgYm9keSB9OiB7IGJvZHk6IENhbGVuZGFyTW9udGhWaWV3RGF5PENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25NZXRhZGF0YT5bXSB9ID0gcmVuZGVyRXZlbnQ7XG5cbiAgICAgIC8vIHVzZSBsYXRlc3QvY3VycmVudCBzdGF0ZVxuICAgICAgc3RhdGUkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChjYWxlbmRhclNjaGVkdWxlU3RhdGU6IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdGF0ZSkgPT4ge1xuICAgICAgICBjb25zdCB7IGlzRW5hYmxlZERheSwgaW5kZXhGYWN0b3J5LCBpc0VuYWJsZWRGaWx0ZXJEYXksIGFsbG93ZWREYXlzT2ZXZWVrIH0gPSBjYWxlbmRhclNjaGVkdWxlU3RhdGU7XG4gICAgICAgIGJvZHkuZm9yRWFjaCgodmlld0RheSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgZGF0ZSB9ID0gdmlld0RheTtcbiAgICAgICAgICBjb25zdCBpID0gaW5kZXhGYWN0b3J5KGRhdGUpO1xuICAgICAgICAgIGNvbnN0IGRheSA9IGRhdGUuZ2V0RGF5KCk7XG5cbiAgICAgICAgICBsZXQgc3RhdGU6IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZTtcblxuICAgICAgICAgIGlmICghaXNFbmFibGVkRmlsdGVyRGF5KGkpKSB7XG4gICAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktbm90LWFwcGxpY2FibGUnO1xuICAgICAgICAgICAgc3RhdGUgPSBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUuTk9UX0FQUExJQ0FCTEU7XG4gICAgICAgICAgfSBlbHNlIGlmICghYWxsb3dlZERheXNPZldlZWsuaGFzKGRheSBhcyBEYXlPZldlZWspKSB7XG4gICAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktZGlzYWJsZWQnO1xuICAgICAgICAgICAgc3RhdGUgPSBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uRGF5U3RhdGUuRElTQUJMRUQ7XG4gICAgICAgICAgfSBlbHNlIGlmIChpc0VuYWJsZWREYXkoaSkpIHtcbiAgICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1zZWxlY3RlZCc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5TRUxFQ1RFRDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmlld0RheS5jc3NDbGFzcyA9ICdjYWwtZGF5LW5vdC1zZWxlY3RlZCc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5OT1RfU0VMRUNURUQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWV0YSA9IHtcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgaVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB2aWV3RGF5Lm1ldGEgPSBtZXRhO1xuICAgICAgICAgIG1vZGlmeUZuKHZpZXdEYXksIGNhbGVuZGFyU2NoZWR1bGVTdGF0ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtEYnhDYWxlbmRhclN0b3JlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9pbnB1dFJlYWRvbmx5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxib29sZWFuPj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfY29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnPih7fSk7XG4gIHByaXZhdGUgX2NlbnRlclJhbmdlU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHJlYWRvbmx5JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2NvbmZpZy5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4gKHgucmVhZG9ubHkgIT0gbnVsbCA/IGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIoeC5yZWFkb25seSkgOiBvZih1bmRlZmluZWQpKSksXG4gICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5faW5wdXRSZWFkb25seSksXG4gICAgbWFwKChbY29uZmlnUmVhZG9ubHksIGlucHV0UmVhZG9ubHldKSA9PiB7XG4gICAgICByZXR1cm4gKGNvbmZpZ1JlYWRvbmx5ID8/IGZhbHNlKSB8fCAoaW5wdXRSZWFkb25seSA/PyBmYWxzZSk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzaG93QnV0dG9uc09uUmVhZG9ubHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fY29uZmlnLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dCdXR0b25zT25SZWFkb25seSA/PyBmYWxzZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dCdXR0b25zJCA9IHRoaXMuc2hvd0J1dHRvbnNPblJlYWRvbmx5JC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgaWYgKHgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZG9ubHkkLnBpcGUobWFwKCh4KSA9PiAheCkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzaG93Q2xlYXJTZWxlY3Rpb25CdXR0b24kID0gdGhpcy5fY29uZmlnLnBpcGUoXG4gICAgbWFwKChjb25maWcpID0+IGNvbmZpZy5zaG93Q2xlYXJTZWxlY3Rpb25CdXR0b24gPz8gdHJ1ZSksXG4gICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5zaG93QnV0dG9ucyQpLFxuICAgIG1hcCgoeCkgPT4gcmVkdWNlQm9vbGVhbnNXaXRoQW5kKHgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0ZVBvcG92ZXJCdXR0b25JbmplY3Rpb25Db25maWckOiBPYnNlcnZhYmxlPE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+Pj4gPSB0aGlzLl9jb25maWcucGlwZShcbiAgICBtYXAoKHgpID0+IHguYnV0dG9uSW5qZWN0aW9uQ29uZmlnKSxcbiAgICBzd2l0Y2hNYXBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcoRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50KSxcbiAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLnNob3dCdXR0b25zJCksXG4gICAgbWFwKChbY29uZmlnLCBzaG93QnV0dG9uXSkgPT4gKHNob3dCdXR0b24gPyBjb25maWcgOiB1bmRlZmluZWQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIEBPdXRwdXQoKVxuICBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxEYnhDYWxlbmRhckV2ZW50PFQ+PigpO1xuXG4gIC8vIHJlZnJlc2ggYW55IHRpbWUgdGhlIHNlbGVjdGVkIGRheSBmdW5jdGlvbiB1cGRhdGVzXG4gIHJlYWRvbmx5IHN0YXRlJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLnN0YXRlJDtcblxuICByZWFkb25seSBiZWZvcmVNb250aFZpZXdSZW5kZXIkID0gdGhpcy5fY29uZmlnLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB7XG4gICAgICBsZXQgZmFjdG9yeTogT2JzZXJ2YWJsZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5PjtcblxuICAgICAgaWYgKHguYmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5KSB7XG4gICAgICAgIGZhY3RvcnkgPSBhc09ic2VydmFibGUoeC5iZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3RvcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmFjdG9yeSA9IGFzT2JzZXJ2YWJsZSh4LmN1c3RvbWl6ZURheSkucGlwZShtYXAoKHgpID0+IGRieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGYWN0b3J5KHgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWN0b3J5LnBpcGUobWFwKCh4KSA9PiB4KHRoaXMuc3RhdGUkKSkpO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcmVmcmVzaCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRlJCwgdGhpcy5iZWZvcmVNb250aFZpZXdSZW5kZXIkXSkucGlwZShcbiAgICB0aHJvdHRsZVRpbWUoMjAsIHVuZGVmaW5lZCwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKVxuICApIGFzIFN1YmplY3Q8dW5kZWZpbmVkPjtcblxuICByZWFkb25seSBldmVudHMkID0gdGhpcy5jYWxlbmRhclN0b3JlLnZpc2libGVFdmVudHMkLnBpcGUobWFwKHByZXBhcmVBbmRTb3J0Q2FsZW5kYXJFdmVudHMpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IHZpZXdEYXRlJCA9IHRoaXMuY2FsZW5kYXJTdG9yZS5kYXRlJDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjYWxlbmRhclN0b3JlOiBEYnhDYWxlbmRhclN0b3JlPFQ+LCByZWFkb25seSBkYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmU6IERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5zZXRWaWV3UmVhZG9ubHlTdGF0ZSh0aGlzLnJlYWRvbmx5JCk7IC8vIHN5bmMgdGhlIHJlYWRvbmx5IHN0YXRlXG5cbiAgICB0aGlzLmNhbGVuZGFyU3RvcmUuc2V0TmF2aWdhdGlvblJhbmdlTGltaXQodGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUubWluTWF4RGF0ZVJhbmdlJCk7IC8vIHNldCBuYXZpZ2F0aW9uIGxpbWl0IHRvIHRoZSBtaW4vbWF4IGFsbG93ZWQgZGF0ZXMuXG4gICAgdGhpcy5jYWxlbmRhclN0b3JlLnNldFNob3dQYWdlQnV0dG9ucyh0cnVlKTtcblxuICAgIC8vIHdoZW4gYSBuZXcgZmlsdGVyIGlzIHNldCwgaWYgdGhlIGZpcnN0IHR3byBwYWdlcyBvZiBzZWxlY3RhYmxlIGluZGV4ZXMgZml0IHdpdGhpbiB0aGUgY2FsZW5kYXIgbW9udGgsIGZvY3VzIG9uIHRoYXQgY2FsZW5kYXIgbW9udGguXG4gICAgdGhpcy5fY2VudGVyUmFuZ2VTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUubWluTWF4RGF0ZVJhbmdlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGlmICh4Py5zdGFydCAmJiB4LmVuZCkge1xuICAgICAgICBjb25zdCBzdGFydE1vbnRoID0gZGF0ZVJhbmdlKHsgZGF0ZTogeC5zdGFydCwgdHlwZTogRGF0ZVJhbmdlVHlwZS5DQUxFTkRBUl9NT05USCB9KTtcbiAgICAgICAgY29uc3QgZW5kTW9udGggPSBkYXRlUmFuZ2UoeyBkYXRlOiB4LmVuZCwgdHlwZTogRGF0ZVJhbmdlVHlwZS5DQUxFTkRBUl9NT05USCB9KTtcblxuICAgICAgICBpZiAoaXNTYW1lRGF0ZShzdGFydE1vbnRoLnN0YXJ0LCBlbmRNb250aC5zdGFydCkpIHtcbiAgICAgICAgICBjb25zdCBtb250aFRvRm9jdXMgPSBlbmRPZldlZWsoc3RhcnRNb250aC5zdGFydCk7XG4gICAgICAgICAgdGhpcy5jYWxlbmRhclN0b3JlLnRhcERheShtb250aFRvRm9jdXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dFJlYWRvbmx5LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbGlja0V2ZW50LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY2VudGVyUmFuZ2VTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbmZpZyhjb25maWc6IE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDb21wb25lbnRDb25maWc+KSB7XG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnID8/IHt9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCByZWFkb25seShyZWFkb25seTogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICB0aGlzLl9pbnB1dFJlYWRvbmx5Lm5leHQocmVhZG9ubHkpO1xuICB9XG5cbiAgZGF5Q2xpY2tlZCh7IGRhdGUgfTogeyBkYXRlOiBEYXRlIH0pOiB2b2lkIHtcbiAgICB0aGlzLnJlYWRvbmx5JC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgocmVhZG9ubHkpID0+IHtcbiAgICAgIGlmICghcmVhZG9ubHkpIHtcbiAgICAgICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUudG9nZ2xlU2VsZWN0ZWREYXRlcyhkYXRlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGV2ZW50Q2xpY2tlZChhY3Rpb246IHN0cmluZywgZXZlbnQ6IENhbGVuZGFyRXZlbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7IGFjdGlvbiwgZXZlbnQgfSk7XG4gIH1cblxuICBiZWZvcmVNb250aFZpZXdSZW5kZXIocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJlZm9yZU1vbnRoVmlld1JlbmRlciQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHgocmVuZGVyRXZlbnQpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGJ4LWNhbGVuZGFyLWJhc2UgY2xhc3M9XCJkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyXCIgW25nQ2xhc3NdPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA/ICdkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLXJlYWRvbmx5JyA6ICcnXCI+XG4gIDxuZy1jb250YWluZXIgY29udHJvbHM+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiQgfCBhc3luY1wiPlxuICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItc2VsZWN0aW9uLXRvZ2dsZS1idXR0b24gW2Rpc2FibGVkXT1cInJlYWRvbmx5JCB8IGFzeW5jXCI+PC9kYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLXNlbGVjdGlvbi10b2dnbGUtYnV0dG9uPlxuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJkYXRlUG9wb3ZlckJ1dHRvbkluamVjdGlvbkNvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJkYngtY2FsZW5kYXItY29udGVudCBkYngtY2FsZW5kYXItY29udGVudC1tb250aFwiPlxuICAgIDxtd2wtY2FsZW5kYXItbW9udGgtdmlldyBbcmVmcmVzaF09XCJyZWZyZXNoJFwiIFt2aWV3RGF0ZV09XCIodmlld0RhdGUkIHwgYXN5bmMpIVwiIFtldmVudHNdPVwiKGV2ZW50cyQgfCBhc3luYykhXCIgKGRheUNsaWNrZWQpPVwiZGF5Q2xpY2tlZCgkZXZlbnQuZGF5KVwiIChldmVudENsaWNrZWQpPVwiZXZlbnRDbGlja2VkKCdDbGlja2VkJywgJGV2ZW50LmV2ZW50KVwiIChiZWZvcmVWaWV3UmVuZGVyKT1cImJlZm9yZU1vbnRoVmlld1JlbmRlcigkZXZlbnQpXCIgW2NlbGxUZW1wbGF0ZV09XCJtb250aERheUNlbGxUZW1wbGF0ZVwiPjwvbXdsLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gIDwvZGl2PlxuPC9kYngtY2FsZW5kYXItYmFzZT5cblxuPCEtLSBDZWxsIC0tPlxuPG5nLXRlbXBsYXRlICNtb250aERheUNlbGxUZW1wbGF0ZSBsZXQtZGF5PVwiZGF5XCIgbGV0LWxvY2FsZT1cImxvY2FsZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FsLWNlbGwtdG9wXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjYWwtZGF5LWJhZGdlXCIgKm5nSWY9XCJkYXkuYmFkZ2VUb3RhbCA+IDBcIj57eyBkYXkuYmFkZ2VUb3RhbCB9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImNhbC1kYXktbnVtYmVyXCI+e3sgZGF5LmRhdGUgfCBjYWxlbmRhckRhdGU6ICdtb250aFZpZXdEYXlOdW1iZXInOmxvY2FsZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLWNlbGwgW2RheV09XCJkYXlcIj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -49,7 +49,7 @@ DbxScheduleSelectionCalendarDateDialogComponent.ɵcmp = i0.ɵɵngDeclareComponen
49
49
  <dbx-schedule-selection-calendar></dbx-schedule-selection-calendar>
50
50
  <dbx-dialog-content-footer [config]="closeConfig" (close)="close()"></dbx-dialog-content-footer>
51
51
  </dbx-dialog-content>
52
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent].dbx-dialog-content", inputs: ["width"] }, { kind: "component", type: i1.DbxDialogContentFooterComponent, selector: "dbx-dialog-content-footer", inputs: ["closeText", "buttonColor", "config"], outputs: ["close"] }, { kind: "component", type: i1.DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", outputs: ["close"] }, { kind: "component", type: i2.DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: ["config"], outputs: ["clickEvent"] }] });
52
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent].dbx-dialog-content", inputs: ["width"] }, { kind: "component", type: i1.DbxDialogContentFooterComponent, selector: "dbx-dialog-content-footer", inputs: ["closeText", "buttonColor", "config"], outputs: ["close"] }, { kind: "component", type: i1.DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", outputs: ["close"] }, { kind: "component", type: i2.DbxScheduleSelectionCalendarComponent, selector: "dbx-schedule-selection-calendar", inputs: ["config", "readonly"], outputs: ["clickEvent"] }] });
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDateDialogComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{
@@ -13,6 +13,7 @@ export class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
13
13
  this.popoverService = popoverService;
14
14
  this.dbxCalendarScheduleSelectionStore = dbxCalendarScheduleSelectionStore;
15
15
  this.injector = injector;
16
+ this.disabled$ = this.dbxCalendarScheduleSelectionStore.isViewReadonly$;
16
17
  this.buttonText$ = this.dbxCalendarScheduleSelectionStore.currentDateRange$.pipe(map((x) => {
17
18
  if (x?.start && x.end) {
18
19
  return `${formatToMonthDayString(x.start)} - ${formatToMonthDayString(x.end)}`;
@@ -28,18 +29,18 @@ export class DbxScheduleSelectionCalendarDatePopoverButtonComponent {
28
29
  }
29
30
  DbxScheduleSelectionCalendarDatePopoverButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, deps: [{ token: i1.DbxPopoverService }, { token: i2.DbxCalendarScheduleSelectionStore }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
30
31
  DbxScheduleSelectionCalendarDatePopoverButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, selector: "dbx-schedule-selection-calendar-date-popover-button", viewQueries: [{ propertyName: "buttonPopoverOrigin", first: true, predicate: ["buttonPopoverOrigin"], descendants: true, read: ElementRef }], ngImport: i0, template: `
31
- <dbx-button #buttonPopoverOrigin icon="date_range" [raised]="true" color="accent" [text]="buttonText$ | async" (buttonClick)="openPopover()"></dbx-button>
32
+ <dbx-button #buttonPopoverOrigin icon="date_range" [disabled]="disabled$ | async" [raised]="true" color="accent" [text]="buttonText$ | async" (buttonClick)="openPopover()"></dbx-button>
32
33
  `, isInline: true, dependencies: [{ kind: "component", type: i1.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "raised", "stroked", "flat", "iconOnly", "color", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
33
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxScheduleSelectionCalendarDatePopoverButtonComponent, decorators: [{
34
35
  type: Component,
35
36
  args: [{
36
37
  selector: 'dbx-schedule-selection-calendar-date-popover-button',
37
38
  template: `
38
- <dbx-button #buttonPopoverOrigin icon="date_range" [raised]="true" color="accent" [text]="buttonText$ | async" (buttonClick)="openPopover()"></dbx-button>
39
+ <dbx-button #buttonPopoverOrigin icon="date_range" [disabled]="disabled$ | async" [raised]="true" color="accent" [text]="buttonText$ | async" (buttonClick)="openPopover()"></dbx-button>
39
40
  `
40
41
  }]
41
42
  }], ctorParameters: function () { return [{ type: i1.DbxPopoverService }, { type: i2.DbxCalendarScheduleSelectionStore }, { type: i0.Injector }]; }, propDecorators: { buttonPopoverOrigin: [{
42
43
  type: ViewChild,
43
44
  args: ['buttonPopoverOrigin', { read: ElementRef }]
44
45
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkQsTUFBTSxPQUFPLHNEQUFzRDtJQWVqRSxZQUFxQixjQUFpQyxFQUFXLGlDQUFvRSxFQUFXLFFBQWtCO1FBQTdJLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUFXLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFBVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBWHpKLGdCQUFXLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDbEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDckIsT0FBTyxHQUFHLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUNoRjtpQkFBTTtnQkFDTCxPQUFPLG1CQUFtQixDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFbUssQ0FBQztJQUV0SyxXQUFXO1FBQ1QsZ0RBQWdELENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuSixDQUFDOztvSkFuQlUsc0RBQXNEO3dJQUF0RCxzREFBc0Qsa01BQ3ZCLFVBQVUsNkJBTDFDOztHQUVUOzRGQUVVLHNEQUFzRDtrQkFObEUsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscURBQXFEO29CQUMvRCxRQUFRLEVBQUU7O0dBRVQ7aUJBQ0Y7K0tBR0MsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlclNlcnZpY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnN0b3JlJztcbmltcG9ydCB7IGZvcm1hdFRvTW9udGhEYXlTdHJpbmcgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LXNjaGVkdWxlLXNlbGVjdGlvbi1jYWxlbmRhci1kYXRlLXBvcG92ZXItYnV0dG9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LWJ1dHRvbiAjYnV0dG9uUG9wb3Zlck9yaWdpbiBpY29uPVwiZGF0ZV9yYW5nZVwiIFtyYWlzZWRdPVwidHJ1ZVwiIGNvbG9yPVwiYWNjZW50XCIgW3RleHRdPVwiYnV0dG9uVGV4dCQgfCBhc3luY1wiIChidXR0b25DbGljayk9XCJvcGVuUG9wb3ZlcigpXCI+PC9kYngtYnV0dG9uPlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2J1dHRvblBvcG92ZXJPcmlnaW4nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYnV0dG9uUG9wb3Zlck9yaWdpbiE6IEVsZW1lbnRSZWY7XG5cbiAgcmVhZG9ubHkgYnV0dG9uVGV4dCQgPSB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS5jdXJyZW50RGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgaWYgKHg/LnN0YXJ0ICYmIHguZW5kKSB7XG4gICAgICAgIHJldHVybiBgJHtmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguc3RhcnQpfSAtICR7Zm9ybWF0VG9Nb250aERheVN0cmluZyh4LmVuZCl9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnUGljayBhIERhdGUgUmFuZ2UnO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgcG9wb3ZlclNlcnZpY2U6IERieFBvcG92ZXJTZXJ2aWNlLCByZWFkb25seSBkYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmU6IERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSwgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG9wZW5Qb3BvdmVyKCkge1xuICAgIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckNvbXBvbmVudC5vcGVuUG9wb3Zlcih0aGlzLnBvcG92ZXJTZXJ2aWNlLCB7IG9yaWdpbjogdGhpcy5idXR0b25Qb3BvdmVyT3JpZ2luLCBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KTtcbiAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkQsTUFBTSxPQUFPLHNEQUFzRDtJQWlCakUsWUFBcUIsY0FBaUMsRUFBVyxpQ0FBb0UsRUFBVyxRQUFrQjtRQUE3SSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVyxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWJ6SixjQUFTLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGVBQWUsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2xGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JCLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDaEY7aUJBQU07Z0JBQ0wsT0FBTyxtQkFBbUIsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRW1LLENBQUM7SUFFdEssV0FBVztRQUNULGdEQUFnRCxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkosQ0FBQzs7b0pBckJVLHNEQUFzRDt3SUFBdEQsc0RBQXNELGtNQUN2QixVQUFVLDZCQUwxQzs7R0FFVDs0RkFFVSxzREFBc0Q7a0JBTmxFLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFEQUFxRDtvQkFDL0QsUUFBUSxFQUFFOztHQUVUO2lCQUNGOytLQUdDLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5zdG9yZSc7XG5pbXBvcnQgeyBmb3JtYXRUb01vbnRoRGF5U3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItZGF0ZS1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1idXR0b24gI2J1dHRvblBvcG92ZXJPcmlnaW4gaWNvbj1cImRhdGVfcmFuZ2VcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIiBbcmFpc2VkXT1cInRydWVcIiBjb2xvcj1cImFjY2VudFwiIFt0ZXh0XT1cImJ1dHRvblRleHQkIHwgYXN5bmNcIiAoYnV0dG9uQ2xpY2spPVwib3BlblBvcG92ZXIoKVwiPjwvZGJ4LWJ1dHRvbj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQge1xuICBAVmlld0NoaWxkKCdidXR0b25Qb3BvdmVyT3JpZ2luJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIGJ1dHRvblBvcG92ZXJPcmlnaW4hOiBFbGVtZW50UmVmO1xuXG4gIHJlYWRvbmx5IGRpc2FibGVkJCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmlzVmlld1JlYWRvbmx5JDtcblxuICByZWFkb25seSBidXR0b25UZXh0JCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmN1cnJlbnREYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBpZiAoeD8uc3RhcnQgJiYgeC5lbmQpIHtcbiAgICAgICAgcmV0dXJuIGAke2Zvcm1hdFRvTW9udGhEYXlTdHJpbmcoeC5zdGFydCl9IC0gJHtmb3JtYXRUb01vbnRoRGF5U3RyaW5nKHguZW5kKX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdQaWNrIGEgRGF0ZSBSYW5nZSc7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBwb3BvdmVyU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIHJlYWRvbmx5IGRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZTogRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLCByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XG5cbiAgb3BlblBvcG92ZXIoKSB7XG4gICAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQ29tcG9uZW50Lm9wZW5Qb3BvdmVyKHRoaXMucG9wb3ZlclNlcnZpY2UsIHsgb3JpZ2luOiB0aGlzLmJ1dHRvblBvcG92ZXJPcmlnaW4sIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuICB9XG59XG4iXX0=