@sd-angular/core 1.3.104 → 1.3.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  var _subscription;
2
2
  import { __classPrivateFieldGet } from "tslib";
3
- import { Component, Input, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
4
- import { SdPopupFilter } from '../popup-filter/popup-filter.component';
5
- import { BehaviorSubject, Subscription } from 'rxjs';
6
- import { DeviceDetectorService } from 'ngx-device-detector';
3
+ import { Component, Input, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, } from "@angular/core";
4
+ import { SdPopupFilter } from "../popup-filter/popup-filter.component";
5
+ import { BehaviorSubject, Subscription } from "rxjs";
6
+ import { DeviceDetectorService } from "ngx-device-detector";
7
7
  export class SdGridFilter {
8
8
  constructor(ref, deviceService) {
9
9
  this.ref = ref;
@@ -23,7 +23,7 @@ export class SdGridFilter {
23
23
  this.filterRegister.value.set({
24
24
  columnFilter: this.columnFilter,
25
25
  externalFilter: this.externalFilter,
26
- filterDef: this.filterDef
26
+ filterDef: this.filterDef,
27
27
  });
28
28
  };
29
29
  this.open = () => {
@@ -42,18 +42,19 @@ export class SdGridFilter {
42
42
  this.filterRegister = value;
43
43
  this.filterRegisterChange.next(this.filterRegister);
44
44
  }
45
- ;
46
45
  ngAfterViewInit() {
47
- __classPrivateFieldGet(this, _subscription).add(this.filterRegister.configuration.observer.subscribe(configuration => {
48
- this.inlineColumn = configuration.inlineColumn;
49
- this.inlineExternal = configuration.inlineExternal;
50
- this.inlineFilterDef = configuration.inlineFilterDef;
46
+ __classPrivateFieldGet(this, _subscription).add(this.filterRegister.configuration.observer.subscribe((configuration) => {
47
+ const { inlineColumn, inlineExternal, inlineFilterDef } = configuration;
48
+ this.inlineColumn = inlineColumn;
49
+ this.inlineExternal = inlineExternal;
50
+ this.inlineFilterDef = inlineFilterDef;
51
51
  this.ref.markForCheck();
52
52
  }));
53
- __classPrivateFieldGet(this, _subscription).add(this.filterRegister.value.observer.subscribe(value => {
54
- this.columnFilter = value.columnFilter;
55
- this.externalFilter = value.externalFilter;
56
- this.filterDef = value.filterDef;
53
+ __classPrivateFieldGet(this, _subscription).add(this.filterRegister.value.observer.subscribe((value) => {
54
+ const { columnFilter, externalFilter, filterDef } = value;
55
+ this.columnFilter = columnFilter;
56
+ this.externalFilter = externalFilter;
57
+ this.filterDef = filterDef;
57
58
  this.ref.markForCheck();
58
59
  }));
59
60
  }
@@ -64,7 +65,7 @@ export class SdGridFilter {
64
65
  _subscription = new WeakMap();
65
66
  SdGridFilter.decorators = [
66
67
  { type: Component, args: [{
67
- selector: 'sd-grid-filter',
68
+ selector: "sd-grid-filter",
68
69
  template: "<ng-container *ngIf=\"!filter?.disabled\">\r\n <ng-container *ngIf=\"filter?.enableCollapse;else noCollapse\">\r\n <sd-group class=\"p-12\" [isExpanded]=\"false\" title=\"T\u00ECm ki\u1EBFm\" expandable>\r\n <div sdGroupBody>\r\n <ng-container *ngTemplateOutlet=\"noCollapse\"></ng-container>\r\n </div>\r\n </sd-group>\r\n </ng-container>\r\n <ng-template #noCollapse>\r\n <div\r\n *ngIf=\"!isMobileOrTablet && ((columns?.length && !filter?.inlineColumn) || externalFilters?.length || filterDefs?.length)\"\r\n class=\"row mx-0\">\r\n <ng-container *ngIf=\"filter?.sorts?.length\">\r\n <ng-container *ngFor=\"let field of filter?.sorts\">\r\n <ng-container *ngIf=\"columns?.length && !filter?.inlineColumn\">\r\n <ng-container *ngFor=\"let item of columns | sdFilterColumn:field\">\r\n <ng-container *ngTemplateOutlet=\"filterColumn; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal:field\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef] && item.sdMaterialFilterDef === field\"\r\n class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!filter?.sorts?.length\">\r\n <ng-container *ngIf=\"columns?.length && !filter?.inlineColumn\">\r\n <ng-container *ngFor=\"let item of columns | sdFilterColumn\">\r\n <ng-container *ngTemplateOutlet=\"filterColumn; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"externalFilters?.length\">\r\n <ng-container *ngFor=\"let item of externalFilters | sdFilterExternal\">\r\n <ng-container *ngTemplateOutlet=\"filterExternal; context: {item: item}\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngFor=\"let item of filterDefs\">\r\n <div *ngIf=\"inlineFilterDef[item.sdMaterialFilterDef]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <ng-container *ngTemplateOutlet=\"item.templateRef;context:{filterDef:filterDef, isInline: true}\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <ng-template #filterColumn let-item=\"item\">\r\n <div *ngIf=\"inlineColumn[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"columnFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"columnFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-select *ngIf=\"item.type === 'values' && item?.option?.selection !== 'AUTOCOMPLETE'\"\r\n [items]=\"item.option?.items\" [valueField]=\"item.option?.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" [disabled]=\"item.filter?.disabled\"\r\n [multiple]=\"item?.option?.selection === 'MULTIPLE' || item?.item?.selection === 'MULTIPLEAUTOCOMPLETE'\"\r\n [filtered]=\"item?.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" appearance=\"outline\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.type === 'values' && item?.option?.selection === 'AUTOCOMPLETE'\"\r\n [items]=\"item.option?.items\" [valueField]=\"item.option?.valueField\" [displayField]=\"item.option?.displayField\"\r\n [(model)]=\"columnFilter[item.field]\" (sdChange)=\"onFilter(item)\" [disabled]=\"item.filter?.disabled\"\r\n appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-date-time *ngIf=\"item.type === 'date' || item.type === 'datetime' || item.type === 'time'\"\r\n [label]=\"item.title\" [(model)]=\"columnFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\"\r\n appearance=\"outline\">\r\n </sd-date-time>\r\n </div>\r\n </ng-template>\r\n <ng-template #filterExternal let-item=\"item\">\r\n <div *ngIf=\"inlineExternal[item.field]\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input [label]=\"item.title\" *ngIf=\"item.type === 'string'\" type=\"text\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input>\r\n <sd-input-number [label]=\"item.title\" *ngIf=\"item.type === 'number'\" [(model)]=\"externalFilter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-input-number>\r\n <sd-select [label]=\"item.title\" *ngIf=\"item.type === 'bool'\" [items]=\"[{value:'1',display:item.option?.displayOnTrue || 'True' },\r\n {value:'0',display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values' && item.option\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\"\r\n appearance=\"outline\" multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item.option.items\" [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" filtered=\"true\" appearance=\"outline\"\r\n multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item.option.items\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"externalFilter[item.field]\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-select>\r\n </ng-container>\r\n <sd-date-time [label]=\"item.title\" *ngIf=\"item.type ==='date' || item.type ==='datetime'\"\r\n [(model)]=\"externalFilter[item.field]\" [type]=\"item.type\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-time>\r\n <sd-date-range [label]=\"item.title\" *ngIf=\"item.type ==='daterange' && externalFilter[item.field]\"\r\n [(from)]=\"externalFilter[item.field].from\" [(to)]=\"externalFilter[item.field].to\" [min]=\"item.minDate\"\r\n [max]=\"item.maxDate\" (sdChange)=\"onFilter(item)\" appearance=\"outline\">\r\n </sd-date-range>\r\n </div>\r\n </ng-template>\r\n <sd-popup-filter [filterRegister]=\"filterRegister\" [columns]=\"columns\"\r\n [externalFilters]=\"externalFilters\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter>\r\n </ng-template>\r\n</ng-container>",
69
70
  changeDetection: ChangeDetectionStrategy.OnPush,
70
71
  styles: [":host{display:block;padding-bottom:10px;padding-left:0;padding-right:0}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]
@@ -76,10 +77,10 @@ SdGridFilter.ctorParameters = () => [
76
77
  ];
77
78
  SdGridFilter.propDecorators = {
78
79
  popupFilter: [{ type: ViewChild, args: [SdPopupFilter,] }],
79
- _filter: [{ type: Input, args: ['filter',] }],
80
+ _filter: [{ type: Input, args: ["filter",] }],
80
81
  columns: [{ type: Input }],
81
- _externalFilters: [{ type: Input, args: ['externalFilters',] }],
82
+ _externalFilters: [{ type: Input, args: ["externalFilters",] }],
82
83
  filterDefs: [{ type: Input }],
83
- _filterRegister: [{ type: Input, args: ['filterRegister',] }]
84
+ _filterRegister: [{ type: Input, args: ["filterRegister",] }]
84
85
  };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtZmlsdGVyL2dyaWQtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQTRCLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hKLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFXLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVM1RCxNQUFNLE9BQU8sWUFBWTtJQTZCdkIsWUFDVSxHQUFzQixFQUN0QixhQUFvQztRQURwQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUF6QnJDLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBQzlDLG9CQUFlLEdBQW1DLEVBQUUsQ0FBQztRQUk1QyxlQUFVLEdBQW1DLEVBQUUsQ0FBQztRQU16RCx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsSUFBSSxDQUFDLENBQUM7UUFFL0UsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixvQkFBZSxHQUE0QixFQUFFLENBQUM7UUFDOUMsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBNEIsRUFBRSxDQUFDO1FBQzNDLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUc3Qyx3QkFBZ0IsSUFBSSxZQUFZLEVBQUUsRUFBQztRQTRCbkMsYUFBUSxHQUFHLENBQUMsSUFBMEQsRUFBRSxFQUFFO1lBQ3hFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDNUIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzthQUMxQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUE7UUFFRCxTQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUE7UUFqQ0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUEvQkQsSUFBcUIsT0FBTyxDQUFDLE1BQWtDO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxJQUE4QixnQkFBZ0IsQ0FBQyxLQUFxQztRQUNsRixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUdELElBQTZCLGVBQWUsQ0FBQyxLQUFtQztRQUM5RSxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQUEsQ0FBQztJQW9CRixlQUFlO1FBQ2IsNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzFGLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUM7WUFDbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDO1lBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLDRDQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULDRDQUFtQixXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7O1lBM0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixvbFJBQTJDO2dCQUUzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDaEQ7OztZQWI4RyxpQkFBaUI7WUFLdkgscUJBQXFCOzs7MEJBVTNCLFNBQVMsU0FBQyxhQUFhO3NCQUV2QixLQUFLLFNBQUMsUUFBUTtzQkFHZCxLQUFLOytCQUVMLEtBQUssU0FBQyxpQkFBaUI7eUJBR3ZCLEtBQUs7OEJBRUwsS0FBSyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNkR3JpZE1hdGVyaWFsRmlsdGVyT3B0aW9uLCBTZEdyaWRNYXRlcmlhbEV4dGVybmFsRmlsdGVyLCBTZEdyaWRNYXRlcmlhbEZpbHRlclJlZ2lzdGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JpZC1maWx0ZXIvZ3JpZC1maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEdyaWRNYXRlcmlhbENvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVscy9ncmlkLWNvbHVtbi5tb2RlbCc7XHJcbmltcG9ydCB7IFNkUG9wdXBGaWx0ZXIgfSBmcm9tICcuLi9wb3B1cC1maWx0ZXIvcG9wdXAtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5pbXBvcnQgeyBTZE1hdGVyaWFsRmlsdGVyRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZC1tYXRlcmlhbC1maWx0ZXItZGVmLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWdyaWQtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkR3JpZEZpbHRlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChTZFBvcHVwRmlsdGVyKSBwb3B1cEZpbHRlcjogU2RQb3B1cEZpbHRlcjtcclxuICBmaWx0ZXI6IFJlYWRvbmx5PFNkR3JpZE1hdGVyaWFsRmlsdGVyT3B0aW9uPjtcclxuICBASW5wdXQoJ2ZpbHRlcicpIHNldCBfZmlsdGVyKGZpbHRlcjogU2RHcmlkTWF0ZXJpYWxGaWx0ZXJPcHRpb24pIHtcclxuICAgIHRoaXMuZmlsdGVyID0gZmlsdGVyO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb2x1bW5zOiBTZEdyaWRNYXRlcmlhbENvbHVtbltdID0gW107XHJcbiAgZXh0ZXJuYWxGaWx0ZXJzOiBTZEdyaWRNYXRlcmlhbEV4dGVybmFsRmlsdGVyW10gPSBbXTtcclxuICBASW5wdXQoJ2V4dGVybmFsRmlsdGVycycpIHNldCBfZXh0ZXJuYWxGaWx0ZXJzKHZhbHVlOiBTZEdyaWRNYXRlcmlhbEV4dGVybmFsRmlsdGVyW10pIHtcclxuICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJzID0gdmFsdWUgfHwgW107XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXSA9IFtdO1xyXG4gIGZpbHRlclJlZ2lzdGVyOiBTZEdyaWRNYXRlcmlhbEZpbHRlclJlZ2lzdGVyO1xyXG4gIEBJbnB1dCgnZmlsdGVyUmVnaXN0ZXInKSBzZXQgX2ZpbHRlclJlZ2lzdGVyKHZhbHVlOiBTZEdyaWRNYXRlcmlhbEZpbHRlclJlZ2lzdGVyKSB7XHJcbiAgICB0aGlzLmZpbHRlclJlZ2lzdGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlclJlZ2lzdGVyQ2hhbmdlLm5leHQodGhpcy5maWx0ZXJSZWdpc3Rlcik7XHJcbiAgfTtcclxuICBmaWx0ZXJSZWdpc3RlckNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2RHcmlkTWF0ZXJpYWxGaWx0ZXJSZWdpc3Rlcj4obnVsbCk7XHJcblxyXG4gIGZpbHRlckRlZjogYW55ID0ge307XHJcbiAgaW5saW5lRmlsdGVyRGVmOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG4gIGNvbHVtbkZpbHRlcjogYW55ID0ge307XHJcbiAgaW5saW5lQ29sdW1uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG4gIGV4dGVybmFsRmlsdGVyOiBhbnkgPSB7fTtcclxuICBpbmxpbmVFeHRlcm5hbDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICBpc01vYmlsZU9yVGFibGV0OiBib29sZWFuO1xyXG5cclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzTW9iaWxlT3JUYWJsZXQgPSAhdGhpcy5kZXZpY2VTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZmlsdGVyUmVnaXN0ZXIuY29uZmlndXJhdGlvbi5vYnNlcnZlci5zdWJzY3JpYmUoY29uZmlndXJhdGlvbiA9PiB7XHJcbiAgICAgIHRoaXMuaW5saW5lQ29sdW1uID0gY29uZmlndXJhdGlvbi5pbmxpbmVDb2x1bW47XHJcbiAgICAgIHRoaXMuaW5saW5lRXh0ZXJuYWwgPSBjb25maWd1cmF0aW9uLmlubGluZUV4dGVybmFsO1xyXG4gICAgICB0aGlzLmlubGluZUZpbHRlckRlZiA9IGNvbmZpZ3VyYXRpb24uaW5saW5lRmlsdGVyRGVmO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5maWx0ZXJSZWdpc3Rlci52YWx1ZS5vYnNlcnZlci5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmNvbHVtbkZpbHRlciA9IHZhbHVlLmNvbHVtbkZpbHRlcjtcclxuICAgICAgdGhpcy5leHRlcm5hbEZpbHRlciA9IHZhbHVlLmV4dGVybmFsRmlsdGVyO1xyXG4gICAgICB0aGlzLmZpbHRlckRlZiA9IHZhbHVlLmZpbHRlckRlZjtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXIgPSAoaXRlbT86IFNkR3JpZE1hdGVyaWFsQ29sdW1uIHwgU2RHcmlkTWF0ZXJpYWxFeHRlcm5hbEZpbHRlcikgPT4ge1xyXG4gICAgdGhpcy5maWx0ZXJSZWdpc3Rlci52YWx1ZS5zZXQoe1xyXG4gICAgICBjb2x1bW5GaWx0ZXI6IHRoaXMuY29sdW1uRmlsdGVyLFxyXG4gICAgICBleHRlcm5hbEZpbHRlcjogdGhpcy5leHRlcm5hbEZpbHRlcixcclxuICAgICAgZmlsdGVyRGVmOiB0aGlzLmZpbHRlckRlZlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuID0gKCkgPT4ge1xyXG4gICAgdGhpcy5wb3B1cEZpbHRlci5vcGVuKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLW1hdGVyaWFsLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtZmlsdGVyL2dyaWQtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFNBQVMsRUFHVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFXLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVM1RCxNQUFNLE9BQU8sWUFBWTtJQW1DdkIsWUFDVSxHQUFzQixFQUN0QixhQUFvQztRQURwQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUEvQnJDLFlBQU8sR0FBMkIsRUFBRSxDQUFDO1FBQzlDLG9CQUFlLEdBQW1DLEVBQUUsQ0FBQztRQU01QyxlQUFVLEdBQW1DLEVBQUUsQ0FBQztRQVF6RCx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FDeEMsSUFBSSxDQUNMLENBQUM7UUFFRixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQTRCLEVBQUUsQ0FBQztRQUM5QyxpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUE0QixFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsbUJBQWMsR0FBNEIsRUFBRSxDQUFDO1FBRzdDLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBbUNuQyxhQUFRLEdBQUcsQ0FBQyxJQUEwRCxFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUM1QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQzFCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUVGLFNBQUksR0FBRyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQztRQXZDQSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQXRDRCxJQUFxQixPQUFPLENBQUMsTUFBa0M7UUFDN0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUdELElBQThCLGdCQUFnQixDQUM1QyxLQUFxQztRQUVyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUdELElBQTZCLGVBQWUsQ0FDMUMsS0FBbUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQXVCRCxlQUFlO1FBQ2IsNENBQW1CLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3JFLE1BQU0sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxHQUFHLGFBQWEsQ0FBQztZQUN4RSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRiw0Q0FBbUIsR0FBRyxDQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckQsTUFBTSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsNENBQW1CLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7Ozs7WUF4RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLG9sUkFBMkM7Z0JBRTNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBbEJDLGlCQUFpQjtZQVVWLHFCQUFxQjs7OzBCQVUzQixTQUFTLFNBQUMsYUFBYTtzQkFFdkIsS0FBSyxTQUFDLFFBQVE7c0JBR2QsS0FBSzsrQkFFTCxLQUFLLFNBQUMsaUJBQWlCO3lCQUt2QixLQUFLOzhCQUVMLEtBQUssU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIFNkR3JpZE1hdGVyaWFsRmlsdGVyT3B0aW9uLFxyXG4gIFNkR3JpZE1hdGVyaWFsRXh0ZXJuYWxGaWx0ZXIsXHJcbiAgU2RHcmlkTWF0ZXJpYWxGaWx0ZXJSZWdpc3RlcixcclxufSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZ3JpZC1maWx0ZXIvZ3JpZC1maWx0ZXIubW9kZWxcIjtcclxuaW1wb3J0IHsgU2RHcmlkTWF0ZXJpYWxDb2x1bW4gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2dyaWQtY29sdW1uLm1vZGVsXCI7XHJcbmltcG9ydCB7IFNkUG9wdXBGaWx0ZXIgfSBmcm9tIFwiLi4vcG9wdXAtZmlsdGVyL3BvcHVwLWZpbHRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tIFwibmd4LWRldmljZS1kZXRlY3RvclwiO1xyXG5pbXBvcnQgeyBTZE1hdGVyaWFsRmlsdGVyRGVmRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvc2QtbWF0ZXJpYWwtZmlsdGVyLWRlZi5kaXJlY3RpdmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInNkLWdyaWQtZmlsdGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9ncmlkLWZpbHRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9ncmlkLWZpbHRlci5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkR3JpZEZpbHRlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChTZFBvcHVwRmlsdGVyKSBwb3B1cEZpbHRlcjogU2RQb3B1cEZpbHRlcjtcclxuICBmaWx0ZXI6IFJlYWRvbmx5PFNkR3JpZE1hdGVyaWFsRmlsdGVyT3B0aW9uPjtcclxuICBASW5wdXQoXCJmaWx0ZXJcIikgc2V0IF9maWx0ZXIoZmlsdGVyOiBTZEdyaWRNYXRlcmlhbEZpbHRlck9wdGlvbikge1xyXG4gICAgdGhpcy5maWx0ZXIgPSBmaWx0ZXI7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFNkR3JpZE1hdGVyaWFsQ29sdW1uW10gPSBbXTtcclxuICBleHRlcm5hbEZpbHRlcnM6IFNkR3JpZE1hdGVyaWFsRXh0ZXJuYWxGaWx0ZXJbXSA9IFtdO1xyXG4gIEBJbnB1dChcImV4dGVybmFsRmlsdGVyc1wiKSBzZXQgX2V4dGVybmFsRmlsdGVycyhcclxuICAgIHZhbHVlOiBTZEdyaWRNYXRlcmlhbEV4dGVybmFsRmlsdGVyW11cclxuICApIHtcclxuICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXJzID0gdmFsdWUgfHwgW107XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXSA9IFtdO1xyXG4gIGZpbHRlclJlZ2lzdGVyOiBTZEdyaWRNYXRlcmlhbEZpbHRlclJlZ2lzdGVyO1xyXG4gIEBJbnB1dChcImZpbHRlclJlZ2lzdGVyXCIpIHNldCBfZmlsdGVyUmVnaXN0ZXIoXHJcbiAgICB2YWx1ZTogU2RHcmlkTWF0ZXJpYWxGaWx0ZXJSZWdpc3RlclxyXG4gICkge1xyXG4gICAgdGhpcy5maWx0ZXJSZWdpc3RlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5maWx0ZXJSZWdpc3RlckNoYW5nZS5uZXh0KHRoaXMuZmlsdGVyUmVnaXN0ZXIpO1xyXG4gIH1cclxuICBmaWx0ZXJSZWdpc3RlckNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2RHcmlkTWF0ZXJpYWxGaWx0ZXJSZWdpc3Rlcj4oXHJcbiAgICBudWxsXHJcbiAgKTtcclxuXHJcbiAgZmlsdGVyRGVmOiBhbnkgPSB7fTtcclxuICBpbmxpbmVGaWx0ZXJEZWY6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgY29sdW1uRmlsdGVyOiBhbnkgPSB7fTtcclxuICBpbmxpbmVDb2x1bW46IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgZXh0ZXJuYWxGaWx0ZXI6IGFueSA9IHt9O1xyXG4gIGlubGluZUV4dGVybmFsOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG4gIGlzTW9iaWxlT3JUYWJsZXQ6IGJvb2xlYW47XHJcblxyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuaXNNb2JpbGVPclRhYmxldCA9ICF0aGlzLmRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMuZmlsdGVyUmVnaXN0ZXIuY29uZmlndXJhdGlvbi5vYnNlcnZlci5zdWJzY3JpYmUoKGNvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICBjb25zdCB7IGlubGluZUNvbHVtbiwgaW5saW5lRXh0ZXJuYWwsIGlubGluZUZpbHRlckRlZiB9ID0gY29uZmlndXJhdGlvbjtcclxuICAgICAgICB0aGlzLmlubGluZUNvbHVtbiA9IGlubGluZUNvbHVtbjtcclxuICAgICAgICB0aGlzLmlubGluZUV4dGVybmFsID0gaW5saW5lRXh0ZXJuYWw7XHJcbiAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJEZWYgPSBpbmxpbmVGaWx0ZXJEZWY7XHJcbiAgICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5maWx0ZXJSZWdpc3Rlci52YWx1ZS5vYnNlcnZlci5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2x1bW5GaWx0ZXIsIGV4dGVybmFsRmlsdGVyLCBmaWx0ZXJEZWYgfSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sdW1uRmlsdGVyID0gY29sdW1uRmlsdGVyO1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxGaWx0ZXIgPSBleHRlcm5hbEZpbHRlcjtcclxuICAgICAgICB0aGlzLmZpbHRlckRlZiA9IGZpbHRlckRlZjtcclxuICAgICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXIgPSAoaXRlbT86IFNkR3JpZE1hdGVyaWFsQ29sdW1uIHwgU2RHcmlkTWF0ZXJpYWxFeHRlcm5hbEZpbHRlcikgPT4ge1xyXG4gICAgdGhpcy5maWx0ZXJSZWdpc3Rlci52YWx1ZS5zZXQoe1xyXG4gICAgICBjb2x1bW5GaWx0ZXI6IHRoaXMuY29sdW1uRmlsdGVyLFxyXG4gICAgICBleHRlcm5hbEZpbHRlcjogdGhpcy5leHRlcm5hbEZpbHRlcixcclxuICAgICAgZmlsdGVyRGVmOiB0aGlzLmZpbHRlckRlZixcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIG9wZW4gPSAoKSA9PiB7XHJcbiAgICB0aGlzLnBvcHVwRmlsdGVyLm9wZW4oKTtcclxuICB9O1xyXG59XHJcbiJdfQ==