ngx-edu-sharing-ui 10.0.1 → 10.0.3

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.
@@ -6,6 +6,8 @@
6
6
  :root {
7
7
  --primary: var(--palette-primary-500);
8
8
  --warning: #cd2457;
9
+ --aiColor: #6d176e;
10
+ --aiColorText: #fff;
9
11
  --tableIconSize: 38px;
10
12
  --textLight: #585858;
11
13
  --textMediumLight: #888;
@@ -16,11 +16,11 @@ export class NodeEntriesGlobalOptionsComponent {
16
16
  return this.entriesService.globalOptionsSubject.pipe(map((options) => options.filter((e) => e.isEnabled)));
17
17
  }
18
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesGlobalOptionsComponent, deps: [{ token: i1.NodeEntriesService }], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: NodeEntriesGlobalOptionsComponent, selector: "es-node-entries-global-options", inputs: { displayType: "displayType" }, ngImport: i0, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: NodeEntriesGlobalOptionsComponent, selector: "es-node-entries-global-options", inputs: { displayType: "displayType" }, ngImport: i0, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--aiColor: #6d176e;--aiColorText: #fff;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesGlobalOptionsComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: 'es-node-entries-global-options', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"] }]
23
+ args: [{ selector: 'es-node-entries-global-options', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--aiColor: #6d176e;--aiColorText: #fff;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"] }]
24
24
  }], ctorParameters: () => [{ type: i1.NodeEntriesService }], propDecorators: { displayType: [{
25
25
  type: Input
26
26
  }] } });
@@ -26,6 +26,7 @@ export class NodeEntriesComponent {
26
26
  this.translate = translate;
27
27
  this.NodeEntriesDisplayType = NodeEntriesDisplayType;
28
28
  this.destroyed = new Subject();
29
+ this.updateKeyboardShortcuts = new Subject();
29
30
  }
30
31
  ngOnInit() {
31
32
  if (this.entriesService.primaryInstance) {
@@ -128,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
128
129
  type: ViewChild,
129
130
  args: [MatPaginator]
130
131
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbnRyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9ub2RlLWVudHJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFHVCxRQUFRLEVBQ1IsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSw2QkFBNkIsQ0FBQztBQUd0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUF1QixzQkFBc0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLG9CQUFvQjtJQVM3QixZQUNXLGlCQUFvQyxFQUNwQyxvQkFBOEMsRUFDOUMsY0FBcUMsRUFDckMsZ0JBQTZDLEVBQ2hDLHVCQUFpRCxFQUM3RCxLQUFxQixFQUNyQixTQUEyQjtRQU41QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkI7UUFDaEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUEwQjtRQUM3RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFr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QUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUN0QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDckIsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTFIUSxvQkFBb0I7bUdBQXBCLG9CQUFvQixrR0FLbEIsWUFBWSxnREMvQjNCLGszQ0FpQ0E7OzRGRFBhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSxpQkFBaUI7OzBCQWtCdEIsUUFBUTtxR0FUWSxTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOb2RlRW50cmllc0RhdGFUeXBlLCBOb2RlRW50cmllc0Rpc3BsYXlUeXBlIH0gZnJvbSAnLi9lbnRyaWVzLW1vZGVsJztcbmltcG9ydCB7IE5vZGVFbnRyaWVzR2xvYmFsU2VydmljZSB9IGZyb20gJy4vbm9kZS1lbnRyaWVzLWdsb2JhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVFbnRyaWVzVGVtcGxhdGVzU2VydmljZSB9IGZyb20gJy4vbm9kZS1lbnRyaWVzLXRlbXBsYXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVFbnRyaWVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25vZGUtZW50cmllcy5zZXJ2aWNlJztcbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Fic3RyYWN0L2tleWJvYXJkLXNob3J0Y3V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVEYXRhU291cmNlUmVtb3RlIH0gZnJvbSAnLi9ub2RlLWRhdGEtc291cmNlLXJlbW90ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXMtbm9kZS1lbnRyaWVzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ25vZGUtZW50cmllcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ25vZGUtZW50cmllcy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlRW50cmllc0NvbXBvbmVudDxUIGV4dGVuZHMgTm9kZUVudHJpZXNEYXRhVHlwZT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgcmVhZG9ubHkgTm9kZUVudHJpZXNEaXNwbGF5VHlwZSA9IE5vZGVFbnRyaWVzRGlzcGxheVR5cGU7XG5cbiAgICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGVudHJpZXNHbG9iYWxTZXJ2aWNlOiBOb2RlRW50cmllc0dsb2JhbFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBlbnRyaWVzU2VydmljZTogTm9kZUVudHJpZXNTZXJ2aWNlPFQ+LFxuICAgICAgICBwdWJsaWMgdGVtcGxhdGVzU2VydmljZTogTm9kZUVudHJpZXNUZW1wbGF0ZXNTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGdsb2JhbEtleWJvYXJkU2hvcnRjdXRzOiBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllc1NlcnZpY2UucHJpbWFyeUluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyR2xvYmFsS2V5Ym9hcmRTaG9ydGN1dHMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5lbnRyaWVzU2VydmljZS5kYXRhU291cmNlIGluc3RhbmNlb2YgTm9kZURhdGFTb3VyY2VSZW1vdGUpIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IHJlcXVpcmUgYHNvcnRgIHRvIGJlIGRlZmluZWQsIGJ1dCBpZiBpdCBpcyBzZXQgYnV0IG5vdCB5ZXQgcmVhZHkgKGBudWxsYCksXG4gICAgICAgICAgICAvLyB3ZSB3YWl0IGZvciBpdHMgdmFsdWUgYmVmb3JlIGluaXRpYWxpemluZyB0aGUgZGF0YSBzb3VyY2UsIHNvIHRoZSBmaXJzdCByZXF1ZXN0IGlzXG4gICAgICAgICAgICAvLyBzZW50IHdpdGggdGhlIGNvcnJlY3Qgc29ydCBjb25maWd1cmF0aW9uLiBUaGF0IGlzIHdoeSB3ZSBleHBsaWNpdGx5IGRvIG5vdCBkcm9wXG4gICAgICAgICAgICAvLyBgdW5kZWZpbmVkYCB3aXRoIHRoZSBgZmlyc3RgIG9wZXJhdG9yIGJlbG93LlxuICAgICAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5zb3J0U3ViamVjdFxuICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KChzb3J0KSA9PiBzb3J0ICE9PSBudWxsKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFJlbW90ZURhdGFTb3VyY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2UgYXMgTm9kZURhdGFTb3VyY2VSZW1vdGU8VD4sXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdG9yKSB7XG4gICAgICAgICAgICB2b2lkIHRoaXMuaW5pdFBhZ2luYXRvcih0aGlzLnBhZ2luYXRvcik7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3Rlckdsb2JhbEtleWJvYXJkU2hvcnRjdXRzKCkge1xuICAgICAgICB0aGlzLmdsb2JhbEtleWJvYXJkU2hvcnRjdXRzLnJlZ2lzdGVyKFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzOiBbJ0N0cmwvQ21kJ10sXG4gICAgICAgICAgICAgICAgICAgIGtleUNvZGU6ICdLZXlBJyxcbiAgICAgICAgICAgICAgICAgICAgaWdub3JlV2hlbjogKGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU21hbGxHcmlkIGRvZXNuJ3Qgc3VwcG9ydCBzZWxlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2UuZGlzcGxheVR5cGUgPT09IE5vZGVFbnRyaWVzRGlzcGxheVR5cGUuU21hbGxHcmlkLFxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5lbnRyaWVzU2VydmljZS50b2dnbGVTZWxlY3RBbGwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHsgdW50aWw6IHRoaXMuZGVzdHJveWVkIH0sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0UmVtb3RlRGF0YVNvdXJjZShkYXRhU291cmNlOiBOb2RlRGF0YVNvdXJjZVJlbW90ZTxUPik6IHZvaWQge1xuICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMuZW50cmllc0dsb2JhbFNlcnZpY2UuZ2V0UGFnaW5hdG9yU2l6ZU9wdGlvbnMoXG4gICAgICAgICAgICB0aGlzLmVudHJpZXNTZXJ2aWNlLnNjb3BlLFxuICAgICAgICApWzBdO1xuICAgICAgICBkYXRhU291cmNlLmluaXQoe1xuICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGRlZmF1bHRQYWdlU2l6ZTogcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgc3RyYXRlZ3k6IHRoaXMuZW50cmllc1NlcnZpY2UucGFnaW5hdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlZmF1bHRTb3J0OiB0aGlzLmVudHJpZXNTZXJ2aWNlLnNvcnQsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5lbnRyaWVzU2VydmljZS5wcmltYXJ5SW5zdGFuY2UpIHtcbiAgICAgICAgICAgIC8vIEF1dG9tYXRpYyBxdWVyeS1wYXJhbXMgaGFuZGxpbmcgaXMgb25seSBzdXBwb3J0ZWQgYnkgbm9kZS1kYXRhLXNvdXJjZS1yZW1vdGUuXG4gICAgICAgICAgICBkYXRhU291cmNlLnJlZ2lzdGVyUXVlcnlQYXJhbWV0ZXJzKHRoaXMucm91dGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0UGFnaW5hdG9yKHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yKSB7XG4gICAgICAgIHBhZ2luYXRvci5faW50bC5pdGVtc1BlclBhZ2VMYWJlbCA9IGF3YWl0IHRoaXMudHJhbnNsYXRlXG4gICAgICAgICAgICAuZ2V0KCdQQUdJTkFUT1IuaXRlbXNQZXJQYWdlTGFiZWwnKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBwYWdpbmF0b3IuX2ludGwubmV4dFBhZ2VMYWJlbCA9IGF3YWl0IHRoaXMudHJhbnNsYXRlXG4gICAgICAgICAgICAuZ2V0KCdQQUdJTkFUT1IubmV4dFBhZ2VMYWJlbCcpXG4gICAgICAgICAgICAudG9Qcm9taXNlKCk7XG4gICAgICAgIHBhZ2luYXRvci5faW50bC5wcmV2aW91c1BhZ2VMYWJlbCA9IGF3YWl0IHRoaXMudHJhbnNsYXRlXG4gICAgICAgICAgICAuZ2V0KCdQQUdJTkFUT1IucHJldmlvdXNQYWdlTGFiZWwnKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBwYWdpbmF0b3IuX2ludGwuZ2V0UmFuZ2VMYWJlbCA9IChwYWdlLCBwYWdlU2l6ZSwgbGVuZ3RoKSA9PlxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnUEFHSU5BVE9SLmdldFJhbmdlTGFiZWwnLCB7XG4gICAgICAgICAgICAgICAgcGFnZTogcGFnZSArIDEsXG4gICAgICAgICAgICAgICAgcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgbGVuZ3RoLFxuICAgICAgICAgICAgICAgIHBhZ2VDb3VudDogTWF0aC5jZWlsKGxlbmd0aCAvIHBhZ2VTaXplKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAvLyBDb25uZWN0IGRhdGEgc291cmNlLlxuICAgICAgICB0aGlzLmVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2UkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKChkYXRhU291cmNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YVNvdXJjZSBpbnN0YW5jZW9mIE5vZGVEYXRhU291cmNlUmVtb3RlKSB7XG4gICAgICAgICAgICAgICAgKGRhdGFTb3VyY2UgYXMgTm9kZURhdGFTb3VyY2VSZW1vdGUpLnBhZ2luYXRvciA9IHBhZ2luYXRvcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFnaW5hdG9yLmxlbmd0aCA9IGRhdGFTb3VyY2U/LmdldFRvdGFsKCk7XG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZVxuICAgICAgICAgICAgICAgICAgICA/LmNvbm5lY3RQYWdpbmF0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0b3IubGVuZ3RoID0gZGF0YVNvdXJjZS5nZXRUb3RhbCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlblBhZ2UocGFnZTogUGFnZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2UuZmV0Y2hEYXRhLmVtaXQoe1xuICAgICAgICAgICAgb2Zmc2V0OiBwYWdlLnBhZ2VJbmRleCAqIHBhZ2UucGFnZVNpemUsXG4gICAgICAgICAgICBhbW91bnQ6IHBhZ2UucGFnZVNpemUsXG4gICAgICAgICAgICByZXNldDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRvcC1tYXR0ZXJcIj5cbiAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlc1NlcnZpY2UudGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXNTZXJ2aWNlLmVudHJpZXNUb3BNYXR0ZXJcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2VcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVudHJpZXNTZXJ2aWNlLmRpc3BsYXlUeXBlID09PSBOb2RlRW50cmllc0Rpc3BsYXlUeXBlLlRhYmxlXCI+XG4gICAgPGVzLW5vZGUtZW50cmllcy10YWJsZT48L2VzLW5vZGUtZW50cmllcy10YWJsZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdJZj1cIlxuICAgICAgZW50cmllc1NlcnZpY2UuZGlzcGxheVR5cGUgPT09IE5vZGVFbnRyaWVzRGlzcGxheVR5cGUuU21hbGxHcmlkIHx8XG4gICAgICBlbnRyaWVzU2VydmljZS5kaXNwbGF5VHlwZSA9PT0gTm9kZUVudHJpZXNEaXNwbGF5VHlwZS5HcmlkXG4gICAgXCJcbiAgPlxuICAgIDxlcy1ub2RlLWVudHJpZXMtY2FyZC1ncmlkIFtkaXNwbGF5VHlwZV09XCJlbnRyaWVzU2VydmljZS5kaXNwbGF5VHlwZVwiPlxuICAgIDwvZXMtbm9kZS1lbnRyaWVzLWNhcmQtZ3JpZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyaWVzU2VydmljZS5kYXRhU291cmNlLmlzRW1wdHkoKSAmJiAhZW50cmllc1NlcnZpY2UuZGF0YVNvdXJjZS5pc0xvYWRpbmdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzU2VydmljZS5lbXB0eVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG1hdC1wYWdpbmF0b3JcbiAgI3BhZ2luYXRvclxuICBbcGFnZVNpemVPcHRpb25zXT1cImVudHJpZXNHbG9iYWxTZXJ2aWNlLmdldFBhZ2luYXRvclNpemVPcHRpb25zKGVudHJpZXNTZXJ2aWNlLnNjb3BlKVwiXG4gICpuZ0lmPVwiZW50cmllc1NlcnZpY2UucGFnaW5hdGlvblN0cmF0ZWd5ID09PSAncGFnaW5hdG9yJ1wiXG4gIFtjbGFzcy5kaXNwbGF5LW5vbmVdPVwiXG4gICAgKGVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2UuaXNMb2FkaW5nICYmIGVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2UuaXNMb2FkaW5nICE9PSAncGFnZScpIHx8XG4gICAgZW50cmllc1NlcnZpY2UuZGF0YVNvdXJjZS5pc0VtcHR5KClcbiAgXCJcbiAgKHBhZ2UpPVwib3BlblBhZ2UoJGV2ZW50KVwiXG4+PC9tYXQtcGFnaW5hdG9yPlxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1lbnRyaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvbm9kZS1lbnRyaWVzL25vZGUtZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL25vZGUtZW50cmllcy9ub2RlLWVudHJpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFHVCxRQUFRLEVBQ1IsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSw2QkFBNkIsQ0FBQztBQUd0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUF1QixzQkFBc0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLG9CQUFvQjtJQVU3QixZQUNXLGlCQUFvQyxFQUNwQyxvQkFBOEMsRUFDOUMsY0FBcUMsRUFDckMsZ0JBQTZDLEVBQ2hDLHVCQUFpRCxFQUM3RCxLQUFxQixFQUNyQixTQUEyQjtRQU41QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBMEI7UUFDOUMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNkI7UUFDaEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUEwQjtRQUM3RCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFr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UUFBUSxDQUFDLElBQWU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBM0hRLG9CQUFvQjttR0FBcEIsb0JBQW9CLGtHQUtsQixZQUFZLGdEQy9CM0IsazNDQWlDQTs7NEZEUGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNJLGlCQUFpQjs7MEJBbUJ0QixRQUFRO3FHQVZZLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTm9kZUVudHJpZXNEYXRhVHlwZSwgTm9kZUVudHJpZXNEaXNwbGF5VHlwZSB9IGZyb20gJy4vZW50cmllcy1tb2RlbCc7XG5pbXBvcnQgeyBOb2RlRW50cmllc0dsb2JhbFNlcnZpY2UgfSBmcm9tICcuL25vZGUtZW50cmllcy1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlRW50cmllc1RlbXBsYXRlc1NlcnZpY2UgfSBmcm9tICcuL25vZGUtZW50cmllcy10ZW1wbGF0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlRW50cmllc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLWVudHJpZXMuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hYnN0cmFjdC9rZXlib2FyZC1zaG9ydGN1dHMuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlRGF0YVNvdXJjZVJlbW90ZSB9IGZyb20gJy4vbm9kZS1kYXRhLXNvdXJjZS1yZW1vdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLW5vZGUtZW50cmllcycsXG4gICAgdGVtcGxhdGVVcmw6ICdub2RlLWVudHJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydub2RlLWVudHJpZXMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZUVudHJpZXNDb21wb25lbnQ8VCBleHRlbmRzIE5vZGVFbnRyaWVzRGF0YVR5cGU+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHJlYWRvbmx5IE5vZGVFbnRyaWVzRGlzcGxheVR5cGUgPSBOb2RlRW50cmllc0Rpc3BsYXlUeXBlO1xuXG4gICAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlS2V5Ym9hcmRTaG9ydGN1dHMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBlbnRyaWVzR2xvYmFsU2VydmljZTogTm9kZUVudHJpZXNHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZW50cmllc1NlcnZpY2U6IE5vZGVFbnRyaWVzU2VydmljZTxUPixcbiAgICAgICAgcHVibGljIHRlbXBsYXRlc1NlcnZpY2U6IE5vZGVFbnRyaWVzVGVtcGxhdGVzU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBnbG9iYWxLZXlib2FyZFNob3J0Y3V0czogS2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVudHJpZXNTZXJ2aWNlLnByaW1hcnlJbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3Rlckdsb2JhbEtleWJvYXJkU2hvcnRjdXRzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZW50cmllc1NlcnZpY2UuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIE5vZGVEYXRhU291cmNlUmVtb3RlKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCByZXF1aXJlIGBzb3J0YCB0byBiZSBkZWZpbmVkLCBidXQgaWYgaXQgaXMgc2V0IGJ1dCBub3QgeWV0IHJlYWR5IChgbnVsbGApLFxuICAgICAgICAgICAgLy8gd2Ugd2FpdCBmb3IgaXRzIHZhbHVlIGJlZm9yZSBpbml0aWFsaXppbmcgdGhlIGRhdGEgc291cmNlLCBzbyB0aGUgZmlyc3QgcmVxdWVzdCBpc1xuICAgICAgICAgICAgLy8gc2VudCB3aXRoIHRoZSBjb3JyZWN0IHNvcnQgY29uZmlndXJhdGlvbi4gVGhhdCBpcyB3aHkgd2UgZXhwbGljaXRseSBkbyBub3QgZHJvcFxuICAgICAgICAgICAgLy8gYHVuZGVmaW5lZGAgd2l0aCB0aGUgYGZpcnN0YCBvcGVyYXRvciBiZWxvdy5cbiAgICAgICAgICAgIHRoaXMuZW50cmllc1NlcnZpY2Uuc29ydFN1YmplY3RcbiAgICAgICAgICAgICAgICAucGlwZShmaXJzdCgoc29ydCkgPT4gc29ydCAhPT0gbnVsbCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRSZW1vdGVEYXRhU291cmNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5kYXRhU291cmNlIGFzIE5vZGVEYXRhU291cmNlUmVtb3RlPFQ+LFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhZ2luYXRvcikge1xuICAgICAgICAgICAgdm9pZCB0aGlzLmluaXRQYWdpbmF0b3IodGhpcy5wYWdpbmF0b3IpO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJHbG9iYWxLZXlib2FyZFNob3J0Y3V0cygpIHtcbiAgICAgICAgdGhpcy5nbG9iYWxLZXlib2FyZFNob3J0Y3V0cy5yZWdpc3RlcihcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczogWydDdHJsL0NtZCddLFxuICAgICAgICAgICAgICAgICAgICBrZXlDb2RlOiAnS2V5QScsXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZVdoZW46IChldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNtYWxsR3JpZCBkb2Vzbid0IHN1cHBvcnQgc2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVudHJpZXNTZXJ2aWNlLmRpc3BsYXlUeXBlID09PSBOb2RlRW50cmllc0Rpc3BsYXlUeXBlLlNtYWxsR3JpZCxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuZW50cmllc1NlcnZpY2UudG9nZ2xlU2VsZWN0QWxsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB7IHVudGlsOiB0aGlzLmRlc3Ryb3llZCB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFJlbW90ZURhdGFTb3VyY2UoZGF0YVNvdXJjZTogTm9kZURhdGFTb3VyY2VSZW1vdGU8VD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLmVudHJpZXNHbG9iYWxTZXJ2aWNlLmdldFBhZ2luYXRvclNpemVPcHRpb25zKFxuICAgICAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5zY29wZSxcbiAgICAgICAgKVswXTtcbiAgICAgICAgZGF0YVNvdXJjZS5pbml0KHtcbiAgICAgICAgICAgIHBhZ2luYXRpb25Db25maWc6IHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0UGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiB0aGlzLmVudHJpZXNTZXJ2aWNlLnBhZ2luYXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWZhdWx0U29ydDogdGhpcy5lbnRyaWVzU2VydmljZS5zb3J0LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuZW50cmllc1NlcnZpY2UucHJpbWFyeUluc3RhbmNlKSB7XG4gICAgICAgICAgICAvLyBBdXRvbWF0aWMgcXVlcnktcGFyYW1zIGhhbmRsaW5nIGlzIG9ubHkgc3VwcG9ydGVkIGJ5IG5vZGUtZGF0YS1zb3VyY2UtcmVtb3RlLlxuICAgICAgICAgICAgZGF0YVNvdXJjZS5yZWdpc3RlclF1ZXJ5UGFyYW1ldGVycyh0aGlzLnJvdXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdFBhZ2luYXRvcihwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcikge1xuICAgICAgICBwYWdpbmF0b3IuX2ludGwuaXRlbXNQZXJQYWdlTGFiZWwgPSBhd2FpdCB0aGlzLnRyYW5zbGF0ZVxuICAgICAgICAgICAgLmdldCgnUEFHSU5BVE9SLml0ZW1zUGVyUGFnZUxhYmVsJylcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICAgICAgcGFnaW5hdG9yLl9pbnRsLm5leHRQYWdlTGFiZWwgPSBhd2FpdCB0aGlzLnRyYW5zbGF0ZVxuICAgICAgICAgICAgLmdldCgnUEFHSU5BVE9SLm5leHRQYWdlTGFiZWwnKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgICBwYWdpbmF0b3IuX2ludGwucHJldmlvdXNQYWdlTGFiZWwgPSBhd2FpdCB0aGlzLnRyYW5zbGF0ZVxuICAgICAgICAgICAgLmdldCgnUEFHSU5BVE9SLnByZXZpb3VzUGFnZUxhYmVsJylcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICAgICAgcGFnaW5hdG9yLl9pbnRsLmdldFJhbmdlTGFiZWwgPSAocGFnZSwgcGFnZVNpemUsIGxlbmd0aCkgPT5cbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1BBR0lOQVRPUi5nZXRSYW5nZUxhYmVsJywge1xuICAgICAgICAgICAgICAgIHBhZ2U6IHBhZ2UgKyAxLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIGxlbmd0aCxcbiAgICAgICAgICAgICAgICBwYWdlQ291bnQ6IE1hdGguY2VpbChsZW5ndGggLyBwYWdlU2l6ZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgLy8gQ29ubmVjdCBkYXRhIHNvdXJjZS5cbiAgICAgICAgdGhpcy5lbnRyaWVzU2VydmljZS5kYXRhU291cmNlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZSgoZGF0YVNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGFTb3VyY2UgaW5zdGFuY2VvZiBOb2RlRGF0YVNvdXJjZVJlbW90ZSkge1xuICAgICAgICAgICAgICAgIChkYXRhU291cmNlIGFzIE5vZGVEYXRhU291cmNlUmVtb3RlKS5wYWdpbmF0b3IgPSBwYWdpbmF0b3I7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZ2luYXRvci5sZW5ndGggPSBkYXRhU291cmNlPy5nZXRUb3RhbCgpO1xuICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgPy5jb25uZWN0UGFnaW5hdGlvbigpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnaW5hdG9yLmxlbmd0aCA9IGRhdGFTb3VyY2UuZ2V0VG90YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9wZW5QYWdlKHBhZ2U6IFBhZ2VFdmVudCkge1xuICAgICAgICB0aGlzLmVudHJpZXNTZXJ2aWNlLmZldGNoRGF0YS5lbWl0KHtcbiAgICAgICAgICAgIG9mZnNldDogcGFnZS5wYWdlSW5kZXggKiBwYWdlLnBhZ2VTaXplLFxuICAgICAgICAgICAgYW1vdW50OiBwYWdlLnBhZ2VTaXplLFxuICAgICAgICAgICAgcmVzZXQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b3AtbWF0dGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXNTZXJ2aWNlLnRpdGxlXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzU2VydmljZS5lbnRyaWVzVG9wTWF0dGVyXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyaWVzU2VydmljZS5kYXRhU291cmNlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyaWVzU2VydmljZS5kaXNwbGF5VHlwZSA9PT0gTm9kZUVudHJpZXNEaXNwbGF5VHlwZS5UYWJsZVwiPlxuICAgIDxlcy1ub2RlLWVudHJpZXMtdGFibGU+PC9lcy1ub2RlLWVudHJpZXMtdGFibGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIGVudHJpZXNTZXJ2aWNlLmRpc3BsYXlUeXBlID09PSBOb2RlRW50cmllc0Rpc3BsYXlUeXBlLlNtYWxsR3JpZCB8fFxuICAgICAgZW50cmllc1NlcnZpY2UuZGlzcGxheVR5cGUgPT09IE5vZGVFbnRyaWVzRGlzcGxheVR5cGUuR3JpZFxuICAgIFwiXG4gID5cbiAgICA8ZXMtbm9kZS1lbnRyaWVzLWNhcmQtZ3JpZCBbZGlzcGxheVR5cGVdPVwiZW50cmllc1NlcnZpY2UuZGlzcGxheVR5cGVcIj5cbiAgICA8L2VzLW5vZGUtZW50cmllcy1jYXJkLWdyaWQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW50cmllc1NlcnZpY2UuZGF0YVNvdXJjZS5pc0VtcHR5KCkgJiYgIWVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2UuaXNMb2FkaW5nXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlc1NlcnZpY2UuZW1wdHlcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxtYXQtcGFnaW5hdG9yXG4gICNwYWdpbmF0b3JcbiAgW3BhZ2VTaXplT3B0aW9uc109XCJlbnRyaWVzR2xvYmFsU2VydmljZS5nZXRQYWdpbmF0b3JTaXplT3B0aW9ucyhlbnRyaWVzU2VydmljZS5zY29wZSlcIlxuICAqbmdJZj1cImVudHJpZXNTZXJ2aWNlLnBhZ2luYXRpb25TdHJhdGVneSA9PT0gJ3BhZ2luYXRvcidcIlxuICBbY2xhc3MuZGlzcGxheS1ub25lXT1cIlxuICAgIChlbnRyaWVzU2VydmljZS5kYXRhU291cmNlLmlzTG9hZGluZyAmJiBlbnRyaWVzU2VydmljZS5kYXRhU291cmNlLmlzTG9hZGluZyAhPT0gJ3BhZ2UnKSB8fFxuICAgIGVudHJpZXNTZXJ2aWNlLmRhdGFTb3VyY2UuaXNFbXB0eSgpXG4gIFwiXG4gIChwYWdlKT1cIm9wZW5QYWdlKCRldmVudClcIlxuPjwvbWF0LXBhZ2luYXRvcj5cbiJdfQ==
@@ -1,11 +1,12 @@
1
1
  import { Pipe } from '@angular/core';
2
2
  import { RestConstants } from 'ngx-edu-sharing-api';
3
3
  import { RestHelper } from '../util/rest-helper';
4
+ import { isString } from 'lodash';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@ngx-translate/core";
6
7
  export class NodeTitlePipe {
7
8
  transform(node, args) {
8
- if (!node?.name) {
9
+ if (!node?.name && isString(node)) {
9
10
  if (node === 'HOME') {
10
11
  return this.translate.instant('WORKSPACE.' + node);
11
12
  }
@@ -31,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
31
32
  type: Pipe,
32
33
  args: [{ name: 'nodeTitle' }]
33
34
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10aXRsZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9ub2RlLXRpdGxlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFRLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFNBQVMsQ0FBQyxJQUE4QixFQUFFLElBQWlDO1FBQ3ZFLElBQUksQ0FBRSxJQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQ1AsSUFBSSxFQUFFLElBQUksS0FBSyxNQUFNO1lBQ2pCLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQVksQ0FBQztZQUNsQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFZLENBQUMsQ0FBQztRQUM1QyxJQUFLLElBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ3pCLFVBQVUsR0FBSSxJQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVFO2dCQUNJLFFBQVEsRUFBRSxLQUFLO2FBQ2xCLENBQ0osQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDOytHQXRCMUMsYUFBYTs2R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5vZGUsIFJlc3RDb25zdGFudHMgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IFJlc3RIZWxwZXIgfSBmcm9tICcuLi91dGlsL3Jlc3QtaGVscGVyJztcbmltcG9ydCB7IE5vZGVSb290IH0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwnO1xuXG5AUGlwZSh7IG5hbWU6ICdub2RlVGl0bGUnIH0pXG5leHBvcnQgY2xhc3MgTm9kZVRpdGxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShub2RlOiBOb2RlIHwgTm9kZVJvb3QgfCAnSE9NRScsIGFyZ3M/OiB7IHR5cGU6ICduYW1lJyB8ICd0aXRsZScgfSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghKG5vZGUgYXMgTm9kZSk/Lm5hbWUpIHtcbiAgICAgICAgICAgIGlmIChub2RlID09PSAnSE9NRScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnV09SS1NQQUNFLicgKyBub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdXT1JLU1BBQ0UuJyArIG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICAgIGFyZ3M/LnR5cGUgPT09ICduYW1lJ1xuICAgICAgICAgICAgICAgID8gUmVzdEhlbHBlci5nZXROYW1lKG5vZGUgYXMgTm9kZSlcbiAgICAgICAgICAgICAgICA6IFJlc3RIZWxwZXIuZ2V0VGl0bGUobm9kZSBhcyBOb2RlKTtcbiAgICAgICAgaWYgKChub2RlIGFzIE5vZGUpPy5wcm9wZXJ0aWVzPy5bUmVzdENvbnN0YW50cy5DQ01fUFJPUF9NQVBUWVBFXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ01BUFRZUEUuJyArIChub2RlIGFzIE5vZGUpPy5wcm9wZXJ0aWVzPy5bUmVzdENvbnN0YW50cy5DQ01fUFJPUF9NQVBUWVBFXVswXSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10aXRsZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9waXBlcy9ub2RlLXRpdGxlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFRLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7QUFHbEMsTUFBTSxPQUFPLGFBQWE7SUFDdEIsU0FBUyxDQUFDLElBQThCLEVBQUUsSUFBaUM7UUFDdkUsSUFBSSxDQUFFLElBQWEsRUFBRSxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQ1AsSUFBSSxFQUFFLElBQUksS0FBSyxNQUFNO1lBQ2pCLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQVksQ0FBQztZQUNsQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFZLENBQUMsQ0FBQztRQUM1QyxJQUFLLElBQWEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ3pCLFVBQVUsR0FBSSxJQUFhLEVBQUUsVUFBVSxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVFO2dCQUNJLFFBQVEsRUFBRSxLQUFLO2FBQ2xCLENBQ0osQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsWUFBb0IsU0FBMkI7UUFBM0IsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDOytHQXRCMUMsYUFBYTs2R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5vZGUsIFJlc3RDb25zdGFudHMgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IFJlc3RIZWxwZXIgfSBmcm9tICcuLi91dGlsL3Jlc3QtaGVscGVyJztcbmltcG9ydCB7IE5vZGVSb290IH0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwnO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdsb2Rhc2gnO1xuXG5AUGlwZSh7IG5hbWU6ICdub2RlVGl0bGUnIH0pXG5leHBvcnQgY2xhc3MgTm9kZVRpdGxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShub2RlOiBOb2RlIHwgTm9kZVJvb3QgfCAnSE9NRScsIGFyZ3M/OiB7IHR5cGU6ICduYW1lJyB8ICd0aXRsZScgfSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghKG5vZGUgYXMgTm9kZSk/Lm5hbWUgJiYgaXNTdHJpbmcobm9kZSkpIHtcbiAgICAgICAgICAgIGlmIChub2RlID09PSAnSE9NRScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnV09SS1NQQUNFLicgKyBub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdXT1JLU1BBQ0UuJyArIG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgICAgIGFyZ3M/LnR5cGUgPT09ICduYW1lJ1xuICAgICAgICAgICAgICAgID8gUmVzdEhlbHBlci5nZXROYW1lKG5vZGUgYXMgTm9kZSlcbiAgICAgICAgICAgICAgICA6IFJlc3RIZWxwZXIuZ2V0VGl0bGUobm9kZSBhcyBOb2RlKTtcbiAgICAgICAgaWYgKChub2RlIGFzIE5vZGUpPy5wcm9wZXJ0aWVzPy5bUmVzdENvbnN0YW50cy5DQ01fUFJPUF9NQVBUWVBFXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ01BUFRZUEUuJyArIChub2RlIGFzIE5vZGUpPy5wcm9wZXJ0aWVzPy5bUmVzdENvbnN0YW50cy5DQ01fUFJPUF9NQVBUWVBFXVswXSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxufVxuIl19
@@ -8,14 +8,16 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/router";
9
9
  import * as i2 from "./local-events.service";
10
10
  import * as i3 from "ngx-edu-sharing-api";
11
- import * as i4 from "./abstract/keyboard-shortcuts.service";
12
- import * as i5 from "./abstract/options-helper.service";
11
+ import * as i4 from "./abstract/toast.service";
12
+ import * as i5 from "./abstract/keyboard-shortcuts.service";
13
+ import * as i6 from "./abstract/options-helper.service";
13
14
  export class OptionsHelperDataService {
14
- constructor(ngZone, route, localEvents, authenticationService, userService, networkService, keyboardShortcutsService, optionsHelperService) {
15
+ constructor(ngZone, route, localEvents, authenticationService, toast, userService, networkService, keyboardShortcutsService, optionsHelperService) {
15
16
  this.ngZone = ngZone;
16
17
  this.route = route;
17
18
  this.localEvents = localEvents;
18
19
  this.authenticationService = authenticationService;
20
+ this.toast = toast;
19
21
  this.userService = userService;
20
22
  this.networkService = networkService;
21
23
  this.keyboardShortcutsService = keyboardShortcutsService;
@@ -90,15 +92,21 @@ export class OptionsHelperDataService {
90
92
  }
91
93
  });
92
94
  }
93
- handleKeyboardEvent(event) {
95
+ async handleKeyboardEvent(event) {
94
96
  if (this.globalOptions && !this.keyboardShortcutsService?.shouldIgnoreShortcut(event)) {
95
- const matchedOption = this.globalOptions.find((option) => option.isEnabled &&
96
- option.keyboardShortcut &&
97
- matchesShortcutCondition(event, option.keyboardShortcut));
98
- if (matchedOption) {
99
- event.preventDefault();
100
- event.stopPropagation();
101
- this.ngZone.run(() => matchedOption.callback(null));
97
+ for (const option of this.globalOptions) {
98
+ if (option.keyboardShortcut &&
99
+ matchesShortcutCondition(event, option.keyboardShortcut)) {
100
+ event.preventDefault();
101
+ event.stopPropagation();
102
+ if (await option.enabledCallback()) {
103
+ this.ngZone.run(() => option.callback(null));
104
+ }
105
+ else {
106
+ this.toast.error(null, 'TOAST.OPTION_DISABLED_OR_UNAVAILABLE');
107
+ }
108
+ break;
109
+ }
102
110
  }
103
111
  }
104
112
  }
@@ -121,14 +129,14 @@ export class OptionsHelperDataService {
121
129
  pasteNode(nodes = []) {
122
130
  this.optionsHelperService.pasteNode(this.components, this.data, true, nodes);
123
131
  }
124
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, deps: [{ token: i0.NgZone }, { token: i1.ActivatedRoute }, { token: i2.LocalEventsService }, { token: i3.AuthenticationService }, { token: i3.UserService }, { token: i3.NetworkService }, { token: i4.KeyboardShortcutsService, optional: true }, { token: i5.OptionsHelperService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, deps: [{ token: i0.NgZone }, { token: i1.ActivatedRoute }, { token: i2.LocalEventsService }, { token: i3.AuthenticationService }, { token: i4.Toast }, { token: i3.UserService }, { token: i3.NetworkService }, { token: i5.KeyboardShortcutsService, optional: true }, { token: i6.OptionsHelperService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
125
133
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService }); }
126
134
  }
127
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, decorators: [{
128
136
  type: Injectable
129
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.ActivatedRoute }, { type: i2.LocalEventsService }, { type: i3.AuthenticationService }, { type: i3.UserService }, { type: i3.NetworkService }, { type: i4.KeyboardShortcutsService, decorators: [{
137
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.ActivatedRoute }, { type: i2.LocalEventsService }, { type: i3.AuthenticationService }, { type: i4.Toast }, { type: i3.UserService }, { type: i3.NetworkService }, { type: i5.KeyboardShortcutsService, decorators: [{
130
138
  type: Optional
131
- }] }, { type: i5.OptionsHelperService, decorators: [{
139
+ }] }, { type: i6.OptionsHelperService, decorators: [{
132
140
  type: Optional
133
141
  }] }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1oZWxwZXItZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcy9vcHRpb25zLWhlbHBlci1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQXlCLEVBQUUsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBb0MsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBNkJ2RSxNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQ1ksTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQStCLEVBQy9CLHFCQUE0QyxFQUM1QyxXQUF3QixFQUN4QixjQUE4QixFQUNsQix3QkFBa0QsRUFDbEQsb0JBQTBDO1FBUHRELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBZjFELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRS9CLHNC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QVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHsgQWN0aW9uYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uYmFyL2FjdGlvbmJhci5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUge1xuICAgIExpc3RFdmVudEludGVyZmFjZSxcbiAgICBOb2RlRW50cmllc0RhdGFUeXBlLFxuICAgIE5vZGVFbnRyaWVzRGlzcGxheVR5cGUsXG59IGZyb20gJy4uL25vZGUtZW50cmllcy9lbnRyaWVzLW1vZGVsJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UsIE1FLCBOZXR3b3JrU2VydmljZSwgTm9kZSwgVXNlclNlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEN1c3RvbU9wdGlvbnMsIE9wdGlvbkl0ZW0sIFNjb3BlLCBUYXJnZXQgfSBmcm9tICcuLi90eXBlcy9vcHRpb24taXRlbSc7XG5pbXBvcnQgeyBPcHRpb25zSGVscGVyU2VydmljZSB9IGZyb20gJy4vYWJzdHJhY3Qvb3B0aW9ucy1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWF0Y2hlc1Nob3J0Y3V0Q29uZGl0aW9uIH0gZnJvbSAnLi4vdHlwZXMva2V5Ym9hcmQtc2hvcnRjdXRzJztcbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRzU2VydmljZSB9IGZyb20gJy4vYWJzdHJhY3Qva2V5Ym9hcmQtc2hvcnRjdXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTG9jYWxFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1ldmVudHMuc2VydmljZSc7XG5cbnR5cGUgRGVsZXRlRXZlbnQgPSB7XG4gICAgb2JqZWN0czogTm9kZVtdIHwgYW55O1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgZXJyb3I6IGJvb2xlYW47XG59O1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zSGVscGVyQ29tcG9uZW50cyB7XG4gICAgYWN0aW9uYmFyPzogQWN0aW9uYmFyQ29tcG9uZW50O1xuICAgIGRyb3Bkb3duPzogRHJvcGRvd25Db21wb25lbnQ7XG4gICAgbGlzdD86IExpc3RFdmVudEludGVyZmFjZTxOb2RlRW50cmllc0RhdGFUeXBlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25EYXRhIHtcbiAgICBzY29wZTogU2NvcGU7XG4gICAgYWN0aXZlT2JqZWN0cz86IE5vZGVbXSB8IGFueVtdO1xuICAgIHNlbGVjdGVkT2JqZWN0cz86IE5vZGVbXSB8IGFueVtdO1xuICAgIGFsbE9iamVjdHM/OiBOb2RlW10gfCBhbnlbXTtcbiAgICBwYXJlbnQ/OiBOb2RlIHwgYW55O1xuICAgIGN1c3RvbU9wdGlvbnM/OiBDdXN0b21PcHRpb25zO1xuICAgIC8qKlxuICAgICAqIGN1c3RvbSBpbnRlcmNlcHRvciB0byBtb2RpZnkgdGhlIGRlZmF1bHQgb3B0aW9ucyBhcnJheVxuICAgICAqL1xuICAgIHBvc3RQcmVwYXJlT3B0aW9ucz86IChvcHRpb25zOiBPcHRpb25JdGVtW10sIG9iamVjdHM6IE5vZGVbXSkgPT4gdm9pZDtcbn1cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPcHRpb25zSGVscGVyRGF0YVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgY29tcG9uZW50czogT3B0aW9uc0hlbHBlckNvbXBvbmVudHM7XG4gICAgcHJpdmF0ZSBkYXRhOiBPcHRpb25EYXRhO1xuICAgIHByaXZhdGUga2V5Ym9hcmRTaG9ydGN1dHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGdsb2JhbE9wdGlvbnM6IE9wdGlvbkl0ZW1bXTtcbiAgICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICByZWFkb25seSB2aXJ0dWFsTm9kZXNBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZVtdPigpO1xuICAgIHJlYWRvbmx5IG5vZGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZVtdIHwgdm9pZD4oKTtcbiAgICByZWFkb25seSBub2Rlc0RlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERlbGV0ZUV2ZW50PigpO1xuICAgIHJlYWRvbmx5IGRpc3BsYXlUeXBlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZUVudHJpZXNEaXNwbGF5VHlwZT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBsb2NhbEV2ZW50czogTG9jYWxFdmVudHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUga2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlOiBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgb3B0aW9uc0hlbHBlclNlcnZpY2U6IE9wdGlvbnNIZWxwZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3RhdGljU3Vic2NyaXB0aW9ucygpO1xuICAgIH1cbiAgICAvKiogUGVyZm9ybXMgc3Vic2NyaXB0aW9ucyB0aGF0IGRvbid0IGhhdmUgdG8gYmUgcmVmcmVzaGVkLiAqL1xuICAgIHByaXZhdGUgcmVnaXN0ZXJTdGF0aWNTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsRXZlbnRzLm5vZGVzRGVsZXRlZFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5vZGVzKSA9PiB0aGlzLmNvbXBvbmVudHM/Lmxpc3Q/LmRlbGV0ZU5vZGVzKG5vZGVzKSk7XG4gICAgICAgIHRoaXMubG9jYWxFdmVudHMubm9kZXNDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobm9kZXMpID0+IHRoaXMuY29tcG9uZW50cz8ubGlzdD8udXBkYXRlTm9kZXMobm9kZXMpKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0Q29tcG9uZW50cyhcbiAgICAgICAgYWN0aW9uYmFyOiBBY3Rpb25iYXJDb21wb25lbnQgPSBudWxsLFxuICAgICAgICBsaXN0OiBMaXN0RXZlbnRJbnRlcmZhY2U8Tm9kZUVudHJpZXNEYXRhVHlwZT4gPSBudWxsLFxuICAgICAgICBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQgPSBudWxsLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgICAgICBhY3Rpb25iYXIsXG4gICAgICAgICAgICBsaXN0LFxuICAgICAgICAgICAgZHJvcGRvd24sXG4gICAgICAgIH07XG4gICAgICAgIGlmICgoYXdhaXQgdGhpcy51c2VyU2VydmljZS5nZXRVc2VyKE1FKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpKS5wZXJzb24uYXV0aG9yaXR5TmFtZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5uZXR3b3JrU2VydmljZS5nZXRSZXBvc2l0b3JpZXMoKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG5cbiAgICBzZXREYXRhKGRhdGE6IE9wdGlvbkRhdGEpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5vcHRpb25zSGVscGVyU2VydmljZS53cmFwT3B0aW9uQ2FsbGJhY2tzKGRhdGEpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignb3B0aW9ucyBoZWxwZXIgcmVmcmVzaCBjYWxsZWQgYnV0IG5vIGRhdGEgcHJldmlvdXNseSBib3VuZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignb3B0aW9uc0hlbHBlclNlcnZpY2Ugbm90IHByb3ZpZGVkLiBObyBkZWZhdWx0IGFjdGlvbnMgd2lsbCBiZSBnZW5lcmF0ZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdsb2JhbE9wdGlvbnMgPSBhd2FpdCB0aGlzLmdldEF2YWlsYWJsZU9wdGlvbnMoVGFyZ2V0LkFjdGlvbmJhcik7XG4gICAgICAgIGF3YWl0IHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2U/LnJlZnJlc2hDb21wb25lbnRzKHRoaXMuY29tcG9uZW50cywgdGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBnZXRBdmFpbGFibGVPcHRpb25zKHRhcmdldDogVGFyZ2V0LCBvYmplY3RzOiBOb2RlW10gPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlPy5nZXRBdmFpbGFibGVPcHRpb25zKFxuICAgICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgICAgb2JqZWN0cyxcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFZpcnR1YWxPYmplY3RzKG9iamVjdHM6IGFueVtdKSB7XG4gICAgICAgIG9iamVjdHMgPSBvYmplY3RzLm1hcCgobzogYW55KSA9PiB7XG4gICAgICAgICAgICBvLnZpcnR1YWwgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG87XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpcnR1YWxOb2Rlc0FkZGVkLmVtaXQob2JqZWN0cyk7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudHM/Lmxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cz8ubGlzdC5hZGRWaXJ0dWFsTm9kZXMob2JqZWN0cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlckdsb2JhbEtleWJvYXJkU2hvcnRjdXRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMua2V5Ym9hcmRTaG9ydGN1dHNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmtleWJvYXJkU2hvcnRjdXRzU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmdsb2JhbE9wdGlvbnMgJiYgIXRoaXMua2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlPy5zaG91bGRJZ25vcmVTaG9ydGN1dChldmVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRPcHRpb24gPSB0aGlzLmdsb2JhbE9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAob3B0aW9uOiBPcHRpb25JdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgICBvcHRpb24uaXNFbmFibGVkICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5rZXlib2FyZFNob3J0Y3V0ICYmXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoZXNTaG9ydGN1dENvbmRpdGlvbihldmVudCwgb3B0aW9uLmtleWJvYXJkU2hvcnRjdXQpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChtYXRjaGVkT3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gbWF0Y2hlZE9wdGlvbi5jYWxsYmFjayhudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmlsdGVyT3B0aW9ucyhvcHRpb25zOiBPcHRpb25JdGVtW10sIHRhcmdldDogVGFyZ2V0LCBvYmplY3RzOiBOb2RlW10gfCBhbnkgPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlLmZpbHRlck9wdGlvbnMob3B0aW9ucywgdGFyZ2V0LCB0aGlzLmRhdGEsIG9iamVjdHMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBzaG9ydGN1dCB0byBzaW1wbHkgZGlzYWJsZSBhbGwgb3B0aW9ucyBvbiB0aGUgZ2l2ZW4gY29tcG9lbm50c1xuICAgICAqIEBwYXJhbSBhY3Rpb25iYXJcbiAgICAgKiBAcGFyYW0gbGlzdFxuICAgICAqL1xuICAgIGNsZWFyQ29tcG9uZW50cyhhY3Rpb25iYXI6IEFjdGlvbmJhckNvbXBvbmVudCwgbGlzdDogTGlzdEV2ZW50SW50ZXJmYWNlPE5vZGU+ID0gbnVsbCkge1xuICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgbGlzdC5zZXRPcHRpb25zKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25iYXIpIHtcbiAgICAgICAgICAgIGFjdGlvbmJhci5vcHRpb25zID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwYXN0ZU5vZGUobm9kZXM6IE5vZGVbXSA9IFtdKSB7XG4gICAgICAgIHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2UucGFzdGVOb2RlKHRoaXMuY29tcG9uZW50cywgdGhpcy5kYXRhLCB0cnVlLCBub2Rlcyk7XG4gICAgfVxufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1oZWxwZXItZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9zZXJ2aWNlcy9vcHRpb25zLWhlbHBlci1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQXlCLEVBQUUsRUFBcUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBb0MsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7OztBQThCdkUsTUFBTSxPQUFPLHdCQUF3QjtJQVlqQyxZQUNZLE1BQWMsRUFDZCxLQUFxQixFQUNyQixXQUErQixFQUMvQixxQkFBNEMsRUFDNUMsS0FBWSxFQUNaLFdBQXdCLEVBQ3hCLGNBQThCLEVBQ2xCLHdCQUFrRCxFQUNsRCxvQkFBMEM7UUFSdEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBaEIxRCxj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LENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBL0lRLHdCQUF3QjttSEFBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVOzswQkFxQkYsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25iYXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7XG4gICAgTGlzdEV2ZW50SW50ZXJmYWNlLFxuICAgIE5vZGVFbnRyaWVzRGF0YVR5cGUsXG4gICAgTm9kZUVudHJpZXNEaXNwbGF5VHlwZSxcbn0gZnJvbSAnLi4vbm9kZS1lbnRyaWVzL2VudHJpZXMtbW9kZWwnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBOZ1pvbmUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSwgTUUsIE5ldHdvcmtTZXJ2aWNlLCBOb2RlLCBVc2VyU2VydmljZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ3VzdG9tT3B0aW9ucywgT3B0aW9uSXRlbSwgU2NvcGUsIFRhcmdldCB9IGZyb20gJy4uL3R5cGVzL29wdGlvbi1pdGVtJztcbmltcG9ydCB7IE9wdGlvbnNIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9hYnN0cmFjdC9vcHRpb25zLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXRjaGVzU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlIH0gZnJvbSAnLi9hYnN0cmFjdC9rZXlib2FyZC1zaG9ydGN1dHMuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhbEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuL2xvY2FsLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0IH0gZnJvbSAnLi9hYnN0cmFjdC90b2FzdC5zZXJ2aWNlJztcblxudHlwZSBEZWxldGVFdmVudCA9IHtcbiAgICBvYmplY3RzOiBOb2RlW10gfCBhbnk7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBlcnJvcjogYm9vbGVhbjtcbn07XG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnNIZWxwZXJDb21wb25lbnRzIHtcbiAgICBhY3Rpb25iYXI/OiBBY3Rpb25iYXJDb21wb25lbnQ7XG4gICAgZHJvcGRvd24/OiBEcm9wZG93bkNvbXBvbmVudDtcbiAgICBsaXN0PzogTGlzdEV2ZW50SW50ZXJmYWNlPE5vZGVFbnRyaWVzRGF0YVR5cGU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbkRhdGEge1xuICAgIHNjb3BlOiBTY29wZTtcbiAgICBhY3RpdmVPYmplY3RzPzogTm9kZVtdIHwgYW55W107XG4gICAgc2VsZWN0ZWRPYmplY3RzPzogTm9kZVtdIHwgYW55W107XG4gICAgYWxsT2JqZWN0cz86IE5vZGVbXSB8IGFueVtdO1xuICAgIHBhcmVudD86IE5vZGUgfCBhbnk7XG4gICAgY3VzdG9tT3B0aW9ucz86IEN1c3RvbU9wdGlvbnM7XG4gICAgLyoqXG4gICAgICogY3VzdG9tIGludGVyY2VwdG9yIHRvIG1vZGlmeSB0aGUgZGVmYXVsdCBvcHRpb25zIGFycmF5XG4gICAgICovXG4gICAgcG9zdFByZXBhcmVPcHRpb25zPzogKG9wdGlvbnM6IE9wdGlvbkl0ZW1bXSwgb2JqZWN0czogTm9kZVtdKSA9PiB2b2lkO1xufVxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9wdGlvbnNIZWxwZXJEYXRhU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBjb21wb25lbnRzOiBPcHRpb25zSGVscGVyQ29tcG9uZW50cztcbiAgICBwcml2YXRlIGRhdGE6IE9wdGlvbkRhdGE7XG4gICAgcHJpdmF0ZSBrZXlib2FyZFNob3J0Y3V0c1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZ2xvYmFsT3B0aW9uczogT3B0aW9uSXRlbVtdO1xuICAgIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHJlYWRvbmx5IHZpcnR1YWxOb2Rlc0FkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlW10+KCk7XG4gICAgcmVhZG9ubHkgbm9kZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlW10gfCB2b2lkPigpO1xuICAgIHJlYWRvbmx5IG5vZGVzRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGVsZXRlRXZlbnQ+KCk7XG4gICAgcmVhZG9ubHkgZGlzcGxheVR5cGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxOb2RlRW50cmllc0Rpc3BsYXlUeXBlPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGxvY2FsRXZlbnRzOiBMb2NhbEV2ZW50c1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdG9hc3Q6IFRvYXN0LFxuICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUga2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlOiBLZXlib2FyZFNob3J0Y3V0c1NlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgb3B0aW9uc0hlbHBlclNlcnZpY2U6IE9wdGlvbnNIZWxwZXJTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3RhdGljU3Vic2NyaXB0aW9ucygpO1xuICAgIH1cbiAgICAvKiogUGVyZm9ybXMgc3Vic2NyaXB0aW9ucyB0aGF0IGRvbid0IGhhdmUgdG8gYmUgcmVmcmVzaGVkLiAqL1xuICAgIHByaXZhdGUgcmVnaXN0ZXJTdGF0aWNTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsRXZlbnRzLm5vZGVzRGVsZXRlZFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5vZGVzKSA9PiB0aGlzLmNvbXBvbmVudHM/Lmxpc3Q/LmRlbGV0ZU5vZGVzKG5vZGVzKSk7XG4gICAgICAgIHRoaXMubG9jYWxFdmVudHMubm9kZXNDaGFuZ2VkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobm9kZXMpID0+IHRoaXMuY29tcG9uZW50cz8ubGlzdD8udXBkYXRlTm9kZXMobm9kZXMpKTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbml0Q29tcG9uZW50cyhcbiAgICAgICAgYWN0aW9uYmFyOiBBY3Rpb25iYXJDb21wb25lbnQgPSBudWxsLFxuICAgICAgICBsaXN0OiBMaXN0RXZlbnRJbnRlcmZhY2U8Tm9kZUVudHJpZXNEYXRhVHlwZT4gPSBudWxsLFxuICAgICAgICBkcm9wZG93bjogRHJvcGRvd25Db21wb25lbnQgPSBudWxsLFxuICAgICkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB7XG4gICAgICAgICAgICBhY3Rpb25iYXIsXG4gICAgICAgICAgICBsaXN0LFxuICAgICAgICAgICAgZHJvcGRvd24sXG4gICAgICAgIH07XG4gICAgICAgIGlmICgoYXdhaXQgdGhpcy51c2VyU2VydmljZS5nZXRVc2VyKE1FKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpKS5wZXJzb24uYXV0aG9yaXR5TmFtZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5uZXR3b3JrU2VydmljZS5nZXRSZXBvc2l0b3JpZXMoKS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YTtcbiAgICB9XG5cbiAgICBzZXREYXRhKGRhdGE6IE9wdGlvbkRhdGEpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5vcHRpb25zSGVscGVyU2VydmljZS53cmFwT3B0aW9uQ2FsbGJhY2tzKGRhdGEpO1xuICAgIH1cblxuICAgIGFzeW5jIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignb3B0aW9ucyBoZWxwZXIgcmVmcmVzaCBjYWxsZWQgYnV0IG5vIGRhdGEgcHJldmlvdXNseSBib3VuZCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlID09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignb3B0aW9uc0hlbHBlclNlcnZpY2Ugbm90IHByb3ZpZGVkLiBObyBkZWZhdWx0IGFjdGlvbnMgd2lsbCBiZSBnZW5lcmF0ZWQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdsb2JhbE9wdGlvbnMgPSBhd2FpdCB0aGlzLmdldEF2YWlsYWJsZU9wdGlvbnMoVGFyZ2V0LkFjdGlvbmJhcik7XG4gICAgICAgIGF3YWl0IHRoaXMub3B0aW9uc0hlbHBlclNlcnZpY2U/LnJlZnJlc2hDb21wb25lbnRzKHRoaXMuY29tcG9uZW50cywgdGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBnZXRBdmFpbGFibGVPcHRpb25zKHRhcmdldDogVGFyZ2V0LCBvYmplY3RzOiBOb2RlW10gPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlPy5nZXRBdmFpbGFibGVPcHRpb25zKFxuICAgICAgICAgICAgdGFyZ2V0LFxuICAgICAgICAgICAgb2JqZWN0cyxcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFZpcnR1YWxPYmplY3RzKG9iamVjdHM6IGFueVtdKSB7XG4gICAgICAgIG9iamVjdHMgPSBvYmplY3RzLm1hcCgobzogYW55KSA9PiB7XG4gICAgICAgICAgICBvLnZpcnR1YWwgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIG87XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnZpcnR1YWxOb2Rlc0FkZGVkLmVtaXQob2JqZWN0cyk7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudHM/Lmxpc3QpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50cz8ubGlzdC5hZGRWaXJ0dWFsTm9kZXMob2JqZWN0cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3Rlckdsb2JhbEtleWJvYXJkU2hvcnRjdXRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMua2V5Ym9hcmRTaG9ydGN1dHNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmtleWJvYXJkU2hvcnRjdXRzU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmdsb2JhbE9wdGlvbnMgJiYgIXRoaXMua2V5Ym9hcmRTaG9ydGN1dHNTZXJ2aWNlPy5zaG91bGRJZ25vcmVTaG9ydGN1dChldmVudCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMuZ2xvYmFsT3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmtleWJvYXJkU2hvcnRjdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgbWF0Y2hlc1Nob3J0Y3V0Q29uZGl0aW9uKGV2ZW50LCBvcHRpb24ua2V5Ym9hcmRTaG9ydGN1dClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhd2FpdCBvcHRpb24uZW5hYmxlZENhbGxiYWNrKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiBvcHRpb24uY2FsbGJhY2sobnVsbCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdC5lcnJvcihudWxsLCAnVE9BU1QuT1BUSU9OX0RJU0FCTEVEX09SX1VOQVZBSUxBQkxFJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGZpbHRlck9wdGlvbnMob3B0aW9uczogT3B0aW9uSXRlbVtdLCB0YXJnZXQ6IFRhcmdldCwgb2JqZWN0czogTm9kZVtdIHwgYW55ID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zSGVscGVyU2VydmljZS5maWx0ZXJPcHRpb25zKG9wdGlvbnMsIHRhcmdldCwgdGhpcy5kYXRhLCBvYmplY3RzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogc2hvcnRjdXQgdG8gc2ltcGx5IGRpc2FibGUgYWxsIG9wdGlvbnMgb24gdGhlIGdpdmVuIGNvbXBvZW5udHNcbiAgICAgKiBAcGFyYW0gYWN0aW9uYmFyXG4gICAgICogQHBhcmFtIGxpc3RcbiAgICAgKi9cbiAgICBjbGVhckNvbXBvbmVudHMoYWN0aW9uYmFyOiBBY3Rpb25iYXJDb21wb25lbnQsIGxpc3Q6IExpc3RFdmVudEludGVyZmFjZTxOb2RlPiA9IG51bGwpIHtcbiAgICAgICAgaWYgKGxpc3QpIHtcbiAgICAgICAgICAgIGxpc3Quc2V0T3B0aW9ucyhudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uYmFyKSB7XG4gICAgICAgICAgICBhY3Rpb25iYXIub3B0aW9ucyA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcGFzdGVOb2RlKG5vZGVzOiBOb2RlW10gPSBbXSkge1xuICAgICAgICB0aGlzLm9wdGlvbnNIZWxwZXJTZXJ2aWNlLnBhc3RlTm9kZSh0aGlzLmNvbXBvbmVudHMsIHRoaXMuZGF0YSwgdHJ1ZSwgbm9kZXMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -119,6 +119,7 @@ export var Scope;
119
119
  Scope["Sharing"] = "Sharing";
120
120
  Scope["Oer"] = "Oer";
121
121
  Scope["UserManagement"] = "UserManagement";
122
+ Scope["UserProfile"] = "UserProfile";
122
123
  Scope["Stream"] = "Stream";
123
124
  Scope["CreateMenu"] = "CreateMenu";
124
125
  Scope["MediacenterNodesList"] = "MediacenterNodesList";
@@ -188,4 +189,4 @@ export var Target;
188
189
  Target[Target["Actionbar"] = 2] = "Actionbar";
189
190
  Target[Target["CreateMenu"] = 3] = "CreateMenu";
190
191
  })(Target || (Target = {}));
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsdUVBQXVFO0lBQ3ZFLHFEQUFLLENBQUE7SUFDTCxxSEFBcUg7SUFDckgsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUNELE1BQU0sT0FBTyxVQUFVO0lBb0luQjs7Ozs7OztPQU9HO0lBQ0gsWUFDVyxJQUFZLEVBQ1osSUFBWTtJQUNuQiw2REFBNkQ7SUFDdEQsUUFBaUU7UUFIakUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixhQUFRLEdBQVIsUUFBUSxDQUF5RDtRQS9JNUU7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUI7OztXQUdHO1FBQ0ksbUJBQWMsR0FBdUIsT0FBTyxDQUFDO1FBQ3BEOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7Ozs7V0FLRztRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTNCOzs7V0FHRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQ3hCOztXQUVHO1FB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QUNqQix1RUFBbUIsQ0FBQTtJQUNuQiwyRUFBcUIsQ0FBQTtJQUNyQixtREFBUyxDQUFBO0lBQ1QsdURBQVcsQ0FBQTtJQUNYLDJDQUFLLENBQUE7SUFDTCx1RUFBbUIsQ0FBQTtJQUNuQiwyQ0FBSyxDQUFBO0lBQ0wseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7SUFDTix1REFBVyxDQUFBO0lBQ1gsa0VBQWdCLENBQUE7SUFDaEIsc0RBQVUsQ0FBQTtJQUNWLDhEQUFjLENBQUE7SUFDZCwwQ0FBSSxDQUFBO0lBQ0osZ0RBQU8sQ0FBQTtJQUNQLG9EQUFTLENBQUE7SUFDVCxnREFBTyxDQUFBO0FBQ1gsQ0FBQyxFQWxCVyxTQUFTLEtBQVQsU0FBUyxRQWtCcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2QsbUNBQUksQ0FBQTtJQUNKLG1EQUFZLENBQUE7SUFDWiw2Q0FBUyxDQUFBO0lBQ1QsK0NBQVUsQ0FBQTtBQUNkLENBQUMsRUFMVyxNQUFNLEtBQU4sTUFBTSxRQUtqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBvcHRpb24gZnJvbSB0aGUgYWN0aW9uYmFyK2Ryb3Bkb3duIG1lbnVcbiAqIEV4YW1wbGU6XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJSRVNUT1JFX1NJTkdMRVwiLFwidW5kb1wiLCAobm9kZSkgPT4gdGhpcy5yZXN0b3JlU2luZ2xlKG5vZGUpKSk7XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJERUxFVEVfU0lOR0xFXCIsXCJhcmNoaXZlRGVsZXRlXCIsIChub2RlKSA9PiB0aGlzLmRlbGV0ZVNpbmdsZShub2RlKSkpO1xuXG4gKi9cbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG5leHBvcnQgZW51bSBOb2Rlc1JpZ2h0TW9kZSB7XG4gICAgLy8gcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG5vIG1hdHRlciBpZiBpdHMgYSByZWZlcmVuY2Ugb3Igb3JpZ2lhbmxcbiAgICBMb2NhbCxcbiAgICAvLyBlZmZlY3RpdmUgcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG9ubHkgcmVsZXZhbnQgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlcyAoZm9yIG5vbi1yZWZzLCB0aGlzIGVxdWFscyB0byBsb2NhbClcbiAgICBFZmZlY3RpdmUsXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uSXRlbSB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhbGwgdGhlIHRpbWUgaW4gdGhlIG5vZGUgdGFibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0Fsd2F5cyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYXMgYW4gYWN0aW9uIChpZiByb29tKS4gSWYgbm9uZSBvZiB0aGUgaXRlbXMgaGFzIHNob3dBc0FjdGlvbiBzZXQsIHRoZSBmaXJzdCBpdGVtcyB3aWxsIGFsd2F5cyBiZSBzaG93biBhcyBhY3Rpb25cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0FzQWN0aW9uID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhcyBhIHRvZ2dsZSBvbiB0aGUgcmlnaHQgc2lkZSAocHJvdmlkZSBpY29uVG9nZ2xlIGFzIGEgdG9nZ2xlIGljb24pXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzVG9nZ2xlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogT25seSB3aGVuIEBpc1RvZ2dsZS4gaXMgdGhlIHRvZ2dsZSBjdXJyZW50bHkgdmlzaWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1RvZ2dsZVZpc2libGUgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIE9ubHkgd2hlbiBAaXNUb2dnbGUuIFdoZXJlIHRvIHBsYWNlIHRoZSB0b2dnbGUsIGJlZm9yZSBvciBhZnRlciBhbGwgb3RoZXIgYWN0aW9uc1xuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBzaG93cyBhIGxpbmUgYXQgdGhlIHRvcC5cbiAgICAgKlxuICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c3VhbGx5IGhhbmRsZWQgbm93IGJ5IGFzc29jaWF0aW5nIGFuIGVudHJ5IHRvIGEgYGdyb3VwYFxuICAgICAqIG5vdy4gSG93ZXZlciBgaXNTZXBhcmF0ZWAgaXMga2VwdCBhcyBmYWxsYmFjayBmb3Igbm93LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlcGFyYXRlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW0gd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhbiBhY2NlbnQgY29sb3IgaW4gdGhlIG1lbnUuXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IHRoZSBkcm9wZG93biB2YXJpYW50IG9mIHRoZSBtYWluIG1lbnUgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnRseVxuICAgICAqIGFjdGl2ZSBzY29wZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgbW9iaWxlIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seU1vYmlsZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIGN1c3RvbSBhcmlhLWxhYmVsXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgb25seSBkaXNwbGF5ZWQgb24gYSBkZXNrdG9wIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seURlc2t0b3AgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBZb3UgY2FuIHNldCBhIG1lZGlhLXF1ZXJ5IHNpbWlsYXIgdG8gQ1NTLCBzZWUgdGhlIE1FRElBX1FVRVJZIGNvbnN0YW50cyBpbiB1aS1jb25zdGFudHNcbiAgICAgKiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCBtZWRpYVF1ZXJ5VmFsdWVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWVkaWFRdWVyeVR5cGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBkZWZpbmVkIG1lZGlhIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlWYWx1ZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGZhbHNlIGlmIHRoZSBhY3Rpb24gc2hvdWxkIGJlIHNob3duLCBidXQgc2hvdWxkIG5vdCBiZSBjbGlja2FibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbmFibGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBzaG91bGQgYmUgbWFudWFsbHkgbWFya2VkIGFzIHByaW1hcnkgYWN0aW9uIHdoZW4gYWx3YXlzIHZpc2libGUgb24gYW5cbiAgICAgKiBgYWN0aW9uYmFyYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIElzIGhhbmRsZWQgYnkgb3B0aW9uc0hlbHBlciBhbmQgbWF5IG5vdCBiZSB1c2VkIG90aGVyd2lzZVxuICAgICAqIFBsZWFzZSB1c2UgQGN1c3RvbVNob3dDYWxsYmFjayBpbnN0ZWFkXG4gICAgICovXG4gICAgcHVibGljIHNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFybSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbVNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21FbmFibGVkQ2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVkQ2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcmFtIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSBpZiB0aGUgb3B0aW9uIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUVuYWJsZWRDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiAgIE9wdGlvbmFsOiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBvcHRpb24gd2hlbiBpdCdzIGN1cnJlbnRseSBkaXNhYmxlZCAoZ3JleWVkIG91dClcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWRDYWxsYmFjazogKG5vZGU/OiBOb2RlIHwgYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqICAgU2hvdyB0aGUgZ2l2ZW4gbmFtZSAoaWYgZmFsc2UsIG9ubHkgaWNvbiB3aWxsIHNob3cpXG4gICAgICovXG4gICAgcHVibGljIHNob3dOYW1lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGVsZW1lbnQgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5IGluIGl0J3MgZ3JvdXAsIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIHRoZSBncm91cCB0aGlzIG9wdGlvbiBiZWxvbmdzIHRvXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwOiBPcHRpb25Hcm91cDtcblxuICAgIHB1YmxpYyBrZXlib2FyZFNob3J0Y3V0OiBLZXlib2FyZFNob3J0Y3V0Q29uZGl0aW9uO1xuXG4gICAgLyoqXG4gICAgICogT3IgY29uY2F0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHR5cGVzIGZvciB0aGUgYWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGVsZW1lbnRUeXBlID0gW0VsZW1lbnRUeXBlLk5vZGVdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHVibGljIGNvbnN0cmFpbnM6IENvbnN0cmFpbltdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc01vZGUgPSBIaWRlTW9kZS5EaXNhYmxlO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc1JpZ2h0TW9kZSA9IE5vZGVzUmlnaHRNb2RlLkxvY2FsO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgc2NvcGVzOiBTY29wZVtdO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSB0aGUgb3B0aW9uIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgICAqIEBwYXJhbSBpY29uIEEgbWF0ZXJpYWwgaWNvbiBuYW1lXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gY2FsbGJhY2sgd2hlbiB0aGlzIG9wdGlvbiBpcyBjaG9zZW4uIFdpbGwgZ2V0IHRoZSBjdXJyZW50IG5vZGVcbiAgICAgKiBwYXNzZWQgYXMgYW4gYXJndW1lbnQuIElmIGF2YWlsYWJsZSwgdGhlIHJlbGV2YW50IG5vZGVzIGFyZSBwYXNzZWQgYXMgc2Vjb25kIGFyZ3VtZW50LFxuICAgICAqIGkuZS4sIHRoZSBzZWxlY3Rpb24sIGlmIGFueSwgb3IgdGhlIGN1cnJlbnQgbm9kZSBhcyBzaW5nbGUtaXRlbSBhcnJheSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBpY29uOiBzdHJpbmcsXG4gICAgICAgIC8vIFRPRE86IE1heWJlIHN3aXRjaCB0byBvbmx5IHByb3ZpZGluZyB0aGUgc2Vjb25kIHBhcmFtZXRlci5cbiAgICAgICAgcHVibGljIGNhbGxiYWNrOiAob2JqZWN0PzogTm9kZSB8IGFueSwgb2JqZWN0cz86IChOb2RlIHwgYW55KVtdKSA9PiB2b2lkLFxuICAgICkge31cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgZXhpc3Rpbmcgb3IgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBvYmplY3Qgc3RheVxuICAgICAqIElmIGZhbHNlLCBubyBvcHRpb25zIHdpbGwgYmUgc2V0LCBvbmx5IHRoZSBvcHRpb25zIGluIFwiYWRkT3B0aW9uc1wiIGFyZSB1c2VkXG4gICAgICovXG4gICAgcHVibGljIHVzZURlZmF1bHRPcHRpb25zPyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBpZHMgb2Ygb3B0aW9ucyB0byBleHBsaWNpdGx5IHN1cHBvcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VwcG9ydGVkT3B0aW9ucz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSByZW1vdmVcbiAgICAgKiBPbmx5IHN1cHBvcnRlZCBpZiBzdXBwb3J0ZWRPcHRpb25zIGlzIGVtcHR5XG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIGFkZC9pbnNlcnQgaW50byB0aGUgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRPcHRpb25zPzogT3B0aW9uSXRlbVtdO1xufVxuZXhwb3J0IGVudW0gSGlkZU1vZGUge1xuICAgIERpc2FibGUsXG4gICAgSGlkZSxcbn1cbmV4cG9ydCBlbnVtIFNjb3BlIHtcbiAgICBSZW5kZXIgPSAnUmVuZGVyJyxcbiAgICBTZWFyY2ggPSAnU2VhcmNoJyxcbiAgICBTZWFyY2hDb2xsZWN0aW9ucyA9ICdTZWFyY2hDb2xsZWN0aW9ucycsXG4gICAgU2F2ZWRTZWFyY2hlcyA9ICdTYXZlZFNlYXJjaGVzJyxcbiAgICBDb2xsZWN0aW9uc1JlZmVyZW5jZXMgPSAnQ29sbGVjdGlvbnNSZWZlcmVuY2VzJyxcbiAgICBDb2xsZWN0aW9uc1Byb3Bvc2FscyA9ICdDb2xsZWN0aW9uc1Byb3Bvc2FscycsXG4gICAgQ29sbGVjdGlvbnNDb2xsZWN0aW9uID0gJ0NvbGxlY3Rpb25zQ29sbGVjdGlvbicsXG4gICAgV29ya3NwYWNlTGlzdCA9ICdXb3Jrc3BhY2VMaXN0JyxcbiAgICBXb3Jrc3BhY2VUcmVlID0gJ1dvcmtzcGFjZVRyZWUnLFxuICAgIFNoYXJpbmcgPSAnU2hhcmluZycsXG4gICAgT2VyID0gJ09lcicsXG4gICAgVXNlck1hbmFnZW1lbnQgPSAnVXNlck1hbmFnZW1lbnQnLFxuICAgIFN0cmVhbSA9ICdTdHJlYW0nLFxuICAgIENyZWF0ZU1lbnUgPSAnQ3JlYXRlTWVudScsXG5cbiAgICBNZWRpYWNlbnRlck5vZGVzTGlzdCA9ICdNZWRpYWNlbnRlck5vZGVzTGlzdCcsXG4gICAgQWRtaW4gPSAnQWRtaW4nLCAvLyBBZG1pbiBUb29scyAvIERlYnVnZ2luZ1xuICAgIERlYnVnU2hvd0FsbCA9ICdEZWJ1Z1Nob3dBbGwnLCAvLyBGdWxsIGRlYnVnIG1vZGUgd2hpY2ggZW5hYmxlcyBhbGwgb3B0aW9uc1xufVxuZXhwb3J0IGVudW0gRWxlbWVudFR5cGUge1xuICAgIE5vZGUsXG4gICAgTm9kZUNoaWxkLCAvLyBDaGlsZCBvYmplY3RcbiAgICBNYXBSZWYsIC8vIE1hcCByZWYgKGxpbmsgdG8gYW5vdGhlciBtYXApXG4gICAgTm9kZVB1Ymxpc2hlZENvcHksXG4gICAgTm9kZVJldm9rZWQsIC8vIHJldm9rZWQgY29weSAvIHJldm9rZWQgcHVibGlzaGVkIG5vZGVcbiAgICBOb2RlQmxvY2tlZEltcG9ydCwgLy8gbm9kZSB3aXRoIHByb3BlcnR5IGNjbTppbXBvcnRibG9ja2VkID09IHRydWVcbiAgICBOb2RlUHJvcG9zYWwsIC8vIG5vZGUgcHJvcG9zYWwgZm9yIGEgY29sbGVjdGlvblxuICAgIFBlcnNvbixcbiAgICBHcm91cCxcbiAgICBTYXZlZFNlYXJjaCxcbiAgICBVbmtub3duLFxufVxuZXhwb3J0IGNsYXNzIE9wdGlvbkdyb3VwIHtcbiAgICAvKipcbiAgICAgKiBAcGFyYW0gaWQgVGhlIGdyb3VwIGlkZW50aWZpZXIuIFVzZWQgdG8gc2VwZXJhdGUgZWxlbWVudHMgYmFzZWQgb24gdGhlIGdyb3VwXG4gICAgICogQHBhcmFtIHByaW9yaXR5IEdyb3VwIHdpdGggMCBoYXMgaGlnaGVzdCBwcmlvcml0eSwgaGlnaGVyIHZhbHVlcyBtZWFuIGxvd2VyIHByaW9yaXR5XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyKSB7fVxufVxuZXhwb3J0IGNsYXNzIERlZmF1bHRHcm91cHMge1xuICAgIHN0YXRpYyBQcmltYXJ5ID0gbmV3IE9wdGlvbkdyb3VwKCdQcmltYXJ5JywgMTApO1xuICAgIHN0YXRpYyBDcmVhdGUgPSBuZXcgT3B0aW9uR3JvdXAoJ0NyZWF0ZScsIDE1KTtcbiAgICBzdGF0aWMgVmlldyA9IG5ldyBPcHRpb25Hcm91cCgnVmlldycsIDIwKTtcbiAgICBzdGF0aWMgQ3JlYXRlQ29ubmVjdG9yID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGVDb25uZWN0b3InLCAyNSk7XG4gICAgc3RhdGljIENyZWF0ZUx0aVRvb2xzID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGVMdGlUb29scycsIDI4KTtcbiAgICBzdGF0aWMgUmV1c2UgPSBuZXcgT3B0aW9uR3JvdXAoJ1JldXNlJywgMzApO1xuICAgIHN0YXRpYyBFZGl0ID0gbmV3IE9wdGlvbkdyb3VwKCdFZGl0JywgNDApO1xuICAgIHN0YXRpYyBGaWxlT3BlcmF0aW9ucyA9IG5ldyBPcHRpb25Hcm91cCgnRmlsZU9wZXJhdGlvbnMnLCA1MCk7XG4gICAgc3RhdGljIERlbGV0ZSA9IG5ldyBPcHRpb25Hcm91cCgnRGVsZXRlJywgNjApO1xuICAgIHN0YXRpYyBUb2dnbGVzID0gbmV3IE9wdGlvbkdyb3VwKCdUb2dnbGVzJywgNzApO1xufVxuZXhwb3J0IGVudW0gQ29uc3RyYWluIHtcbiAgICBDb2xsZWN0aW9uUmVmZXJlbmNlLCAvLyBvcHRpb24gaXMgb25seSB2aXNpYmxlIGZvciBjb2xsZWN0aW9uIHJlZmVyZW5jZXNcbiAgICBOb0NvbGxlY3Rpb25SZWZlcmVuY2UsIC8vIG9wdGlvbiBpcyBvbmx5IHZpc2libGUgZm9yIG5vbi1jb2xsZWN0aW9uIHJlZmVyZW5jZXNcbiAgICBEaXJlY3RvcnksIC8vIG9ubHkgdmlzaWJsZSBmb3IgZGlyZWN0b3JpZXMgKGNjbTptYXApXG4gICAgQ29sbGVjdGlvbnMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgY29sbGVjdGlvbnNcbiAgICBGaWxlcywgLy8gb25seSB2aXNpYmxlIGZvciBmaWxlcyAoY2NtOmlvKVxuICAgIEZpbGVzQW5kRGlyZWN0b3JpZXMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIChjY206aW8gLyBjY206bWFwKSAtIG5vIGNvbGxlY3Rpb25zIVxuICAgIEFkbWluLCAvLyBvbmx5IHZpc2libGUgaWYgdXNlciBpcyBhZG1pbiBvciBlc0RlYnVnIGlzIGVuYWJsZWQgb24gd2luZG93IGNvbXBvbmVudFxuICAgIEFkbWluT3JEZWJ1ZywgLy8gb25seSB2aXNpYmxlIGlmIHVzZXIgaXMgYWRtaW4gb3IgZXNEZWJ1ZyBpcyBlbmFibGVkIG9uIHdpbmRvdyBjb21wb25lbnRcbiAgICBOb0J1bGssIC8vIE5vIHN1cHBvcnQgZm9yIGJ1bGsgKG11bHRpcGxlIG9iamVjdHMpXG4gICAgTm9TZWxlY3Rpb24sIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGN1cnJlbnRseSBubyBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgQ2xpcGJvYXJkQ29udGVudCwgLy8gT25seSB2aXNpYmxlIHdoZW4gdGhlIGNsaXBib2FyZCBoYXMgY29udGVudFxuICAgIEFkZE9iamVjdHMsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGl0IGlzIHBvc3NpYmxlIHRvIGFkZCBvYmplY3RzIGludG8gdGhlIGN1cnJlbnQgbGlzdFxuICAgIEhvbWVSZXBvc2l0b3J5LCAvLyBPbmx5IHZpc2libGUgd2hlbiB0aGUgbm9kZXMgYXJlIGZyb20gdGhlIGxvY2FsIChob21lKSByZXBvc2l0b3J5XG4gICAgVXNlciwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSB1c2VyIGlzIHByZXNlbnQgYW5kIGxvZ2dlZCBpblxuICAgIE5vU2NvcGUsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIG5vIGN1cnJlbnQgc2NvcGUgKGkuZSBcInNhZmVcIiBzY29wZSkgaXMgc2V0XG4gICAgUmV1cmxNb2RlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBhIHJldXJsIGlzIHByZXNlbnQgKGNhbGxlZCB0byBwaWNrIG9iamVjdCBmcm9tIGxtcylcbiAgICBMVElNb2RlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBhIGx0aSBzZXNzaW9uIGlzIHByZXNlbnQgKGNhbGxlZCB0byBwaWNrIG9iamVjdCBmcm9tIGx0aSBwbGF0Zm9ybSlcbn1cblxuZXhwb3J0IGVudW0gVGFyZ2V0IHtcbiAgICBMaXN0LCAvLyBUYXJnZXQgaXMgdGhlIExpc3RUYWJsZUNvbXBvbmVudFxuICAgIExpc3REcm9wZG93bixcbiAgICBBY3Rpb25iYXIsXG4gICAgQ3JlYXRlTWVudSxcbn1cbiJdfQ==
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsdUVBQXVFO0lBQ3ZFLHFEQUFLLENBQUE7SUFDTCxxSEFBcUg7SUFDckgsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUNELE1BQU0sT0FBTyxVQUFVO0lBb0luQjs7Ozs7OztPQU9HO0lBQ0gsWUFDVyxJQUFZLEVBQ1osSUFBWTtJQUNuQiw2REFBNkQ7SUFDdEQsUUFBaUU7UUFIakUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixhQUFRLEdBQVIsUUFBUSxDQUF5RDtRQS9JNUU7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUI7OztXQUdHO1FBQ0ksbUJBQWMsR0FBdUIsT0FBTyxDQUFDO1FBQ3BEOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7Ozs7V0FLRztRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTNCOzs7V0FHRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQ3hCOztXQUVHO1FB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O0FBbEJELFdBQVksU0FBUztJQUNqQix1RUFBbUIsQ0FBQTtJQUNuQiwyRUFBcUIsQ0FBQTtJQUNyQixtREFBUyxDQUFBO0lBQ1QsdURBQVcsQ0FBQTtJQUNYLDJDQUFLLENBQUE7SUFDTCx1RUFBbUIsQ0FBQTtJQUNuQiwyQ0FBSyxDQUFBO0lBQ0wseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7SUFDTix1REFBVyxDQUFBO0lBQ1gsa0VBQWdCLENBQUE7SUFDaEIsc0RBQVUsQ0FBQTtJQUNWLDhEQUFjLENBQUE7SUFDZCwwQ0FBSSxDQUFBO0lBQ0osZ0RBQU8sQ0FBQTtJQUNQLG9EQUFTLENBQUE7SUFDVCxnREFBTyxDQUFBO0FBQ1gsQ0FBQyxFQWxCVyxTQUFTLEtBQVQsU0FBUyxRQWtCcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2QsbUNBQUksQ0FBQTtJQUNKLG1EQUFZLENBQUE7SUFDWiw2Q0FBUyxDQUFBO0lBQ1QsK0NBQVUsQ0FBQTtBQUNkLENBQUMsRUFMVyxNQUFNLEtBQU4sTUFBTSxRQUtqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBvcHRpb24gZnJvbSB0aGUgYWN0aW9uYmFyK2Ryb3Bkb3duIG1lbnVcbiAqIEV4YW1wbGU6XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJSRVNUT1JFX1NJTkdMRVwiLFwidW5kb1wiLCAobm9kZSkgPT4gdGhpcy5yZXN0b3JlU2luZ2xlKG5vZGUpKSk7XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJERUxFVEVfU0lOR0xFXCIsXCJhcmNoaXZlRGVsZXRlXCIsIChub2RlKSA9PiB0aGlzLmRlbGV0ZVNpbmdsZShub2RlKSkpO1xuXG4gKi9cbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuXG5leHBvcnQgZW51bSBOb2Rlc1JpZ2h0TW9kZSB7XG4gICAgLy8gcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG5vIG1hdHRlciBpZiBpdHMgYSByZWZlcmVuY2Ugb3Igb3JpZ2lhbmxcbiAgICBMb2NhbCxcbiAgICAvLyBlZmZlY3RpdmUgcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG9ubHkgcmVsZXZhbnQgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlcyAoZm9yIG5vbi1yZWZzLCB0aGlzIGVxdWFscyB0byBsb2NhbClcbiAgICBFZmZlY3RpdmUsXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uSXRlbSB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhbGwgdGhlIHRpbWUgaW4gdGhlIG5vZGUgdGFibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0Fsd2F5cyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYXMgYW4gYWN0aW9uIChpZiByb29tKS4gSWYgbm9uZSBvZiB0aGUgaXRlbXMgaGFzIHNob3dBc0FjdGlvbiBzZXQsIHRoZSBmaXJzdCBpdGVtcyB3aWxsIGFsd2F5cyBiZSBzaG93biBhcyBhY3Rpb25cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0FzQWN0aW9uID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhcyBhIHRvZ2dsZSBvbiB0aGUgcmlnaHQgc2lkZSAocHJvdmlkZSBpY29uVG9nZ2xlIGFzIGEgdG9nZ2xlIGljb24pXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzVG9nZ2xlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogT25seSB3aGVuIEBpc1RvZ2dsZS4gaXMgdGhlIHRvZ2dsZSBjdXJyZW50bHkgdmlzaWJsZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1RvZ2dsZVZpc2libGUgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIE9ubHkgd2hlbiBAaXNUb2dnbGUuIFdoZXJlIHRvIHBsYWNlIHRoZSB0b2dnbGUsIGJlZm9yZSBvciBhZnRlciBhbGwgb3RoZXIgYWN0aW9uc1xuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBzaG93cyBhIGxpbmUgYXQgdGhlIHRvcC5cbiAgICAgKlxuICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c3VhbGx5IGhhbmRsZWQgbm93IGJ5IGFzc29jaWF0aW5nIGFuIGVudHJ5IHRvIGEgYGdyb3VwYFxuICAgICAqIG5vdy4gSG93ZXZlciBgaXNTZXBhcmF0ZWAgaXMga2VwdCBhcyBmYWxsYmFjayBmb3Igbm93LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlcGFyYXRlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW0gd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhbiBhY2NlbnQgY29sb3IgaW4gdGhlIG1lbnUuXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IHRoZSBkcm9wZG93biB2YXJpYW50IG9mIHRoZSBtYWluIG1lbnUgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnRseVxuICAgICAqIGFjdGl2ZSBzY29wZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgbW9iaWxlIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seU1vYmlsZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIGN1c3RvbSBhcmlhLWxhYmVsXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgb25seSBkaXNwbGF5ZWQgb24gYSBkZXNrdG9wIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seURlc2t0b3AgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBZb3UgY2FuIHNldCBhIG1lZGlhLXF1ZXJ5IHNpbWlsYXIgdG8gQ1NTLCBzZWUgdGhlIE1FRElBX1FVRVJZIGNvbnN0YW50cyBpbiB1aS1jb25zdGFudHNcbiAgICAgKiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCBtZWRpYVF1ZXJ5VmFsdWVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgbWVkaWFRdWVyeVR5cGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgZm9yIHRoZSBkZWZpbmVkIG1lZGlhIHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlWYWx1ZTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHRvIGZhbHNlIGlmIHRoZSBhY3Rpb24gc2hvdWxkIGJlIHNob3duLCBidXQgc2hvdWxkIG5vdCBiZSBjbGlja2FibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNFbmFibGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBzaG91bGQgYmUgbWFudWFsbHkgbWFya2VkIGFzIHByaW1hcnkgYWN0aW9uIHdoZW4gYWx3YXlzIHZpc2libGUgb24gYW5cbiAgICAgKiBgYWN0aW9uYmFyYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNQcmltYXJ5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIElzIGhhbmRsZWQgYnkgb3B0aW9uc0hlbHBlciBhbmQgbWF5IG5vdCBiZSB1c2VkIG90aGVyd2lzZVxuICAgICAqIFBsZWFzZSB1c2UgQGN1c3RvbVNob3dDYWxsYmFjayBpbnN0ZWFkXG4gICAgICovXG4gICAgcHVibGljIHNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFybSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgc2hvd24gZm9yIHRoaXMgbm9kZVxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbVNob3dDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21FbmFibGVkQ2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVkQ2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcmFtIHdoaWNoIHNob3VsZCByZXR1cm4gdHJ1ZSBvciBmYWxzZSBpZiB0aGUgb3B0aW9uIHNob3VsZCBiZSBlbmFibGVkIG9yIG5vdFxuICAgICAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBvcHRpb25zSGVscGVyXG4gICAgICovXG4gICAgcHVibGljIGN1c3RvbUVuYWJsZWRDYWxsYmFjazogKG5vZGVzPzogTm9kZVtdIHwgYW55W10pID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICAvKipcbiAgICAgKiAgIE9wdGlvbmFsOiBBIGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBvcHRpb24gd2hlbiBpdCdzIGN1cnJlbnRseSBkaXNhYmxlZCAoZ3JleWVkIG91dClcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWRDYWxsYmFjazogKG5vZGU/OiBOb2RlIHwgYW55KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqICAgU2hvdyB0aGUgZ2l2ZW4gbmFtZSAoaWYgZmFsc2UsIG9ubHkgaWNvbiB3aWxsIHNob3cpXG4gICAgICovXG4gICAgcHVibGljIHNob3dOYW1lID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGVsZW1lbnQgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5IGluIGl0J3MgZ3JvdXAsIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHB1YmxpYyBwcmlvcml0eTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIHRoZSBncm91cCB0aGlzIG9wdGlvbiBiZWxvbmdzIHRvXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwOiBPcHRpb25Hcm91cDtcblxuICAgIHB1YmxpYyBrZXlib2FyZFNob3J0Y3V0OiBLZXlib2FyZFNob3J0Y3V0Q29uZGl0aW9uO1xuXG4gICAgLyoqXG4gICAgICogT3IgY29uY2F0IG9mIHN1cHBvcnRlZCBlbGVtZW50IHR5cGVzIGZvciB0aGUgYWN0aW9uXG4gICAgICovXG4gICAgcHVibGljIGVsZW1lbnRUeXBlID0gW0VsZW1lbnRUeXBlLk5vZGVdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogc3RyaW5nW107XG4gICAgcHVibGljIGNvbnN0cmFpbnM6IENvbnN0cmFpbltdO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc01vZGUgPSBIaWRlTW9kZS5EaXNhYmxlO1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uc1JpZ2h0TW9kZSA9IE5vZGVzUmlnaHRNb2RlLkxvY2FsO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyB0b29scGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgc2NvcGVzOiBTY29wZVtdO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSB0aGUgb3B0aW9uIG5hbWUsIHdoaWNoIGlzIHVzZWQgZm9yIHRoZSB0cmFuc2xhdGlvblxuICAgICAqIEBwYXJhbSBpY29uIEEgbWF0ZXJpYWwgaWNvbiBuYW1lXG4gICAgICogQHBhcmFtIGNhbGxiYWNrIEEgZnVuY3Rpb24gY2FsbGJhY2sgd2hlbiB0aGlzIG9wdGlvbiBpcyBjaG9zZW4uIFdpbGwgZ2V0IHRoZSBjdXJyZW50IG5vZGVcbiAgICAgKiBwYXNzZWQgYXMgYW4gYXJndW1lbnQuIElmIGF2YWlsYWJsZSwgdGhlIHJlbGV2YW50IG5vZGVzIGFyZSBwYXNzZWQgYXMgc2Vjb25kIGFyZ3VtZW50LFxuICAgICAqIGkuZS4sIHRoZSBzZWxlY3Rpb24sIGlmIGFueSwgb3IgdGhlIGN1cnJlbnQgbm9kZSBhcyBzaW5nbGUtaXRlbSBhcnJheSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBpY29uOiBzdHJpbmcsXG4gICAgICAgIC8vIFRPRE86IE1heWJlIHN3aXRjaCB0byBvbmx5IHByb3ZpZGluZyB0aGUgc2Vjb25kIHBhcmFtZXRlci5cbiAgICAgICAgcHVibGljIGNhbGxiYWNrOiAob2JqZWN0PzogTm9kZSB8IGFueSwgb2JqZWN0cz86IChOb2RlIHwgYW55KVtdKSA9PiB2b2lkLFxuICAgICkge31cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21PcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgZXhpc3Rpbmcgb3IgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHRoZSBvYmplY3Qgc3RheVxuICAgICAqIElmIGZhbHNlLCBubyBvcHRpb25zIHdpbGwgYmUgc2V0LCBvbmx5IHRoZSBvcHRpb25zIGluIFwiYWRkT3B0aW9uc1wiIGFyZSB1c2VkXG4gICAgICovXG4gICAgcHVibGljIHVzZURlZmF1bHRPcHRpb25zPyA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBpZHMgb2Ygb3B0aW9ucyB0byBleHBsaWNpdGx5IHN1cHBvcnRcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VwcG9ydGVkT3B0aW9ucz86IHN0cmluZ1tdO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSByZW1vdmVcbiAgICAgKiBPbmx5IHN1cHBvcnRlZCBpZiBzdXBwb3J0ZWRPcHRpb25zIGlzIGVtcHR5XG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25zIHRvIGFkZC9pbnNlcnQgaW50byB0aGUgbWVudVxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRPcHRpb25zPzogT3B0aW9uSXRlbVtdO1xufVxuZXhwb3J0IGVudW0gSGlkZU1vZGUge1xuICAgIERpc2FibGUsXG4gICAgSGlkZSxcbn1cbmV4cG9ydCBlbnVtIFNjb3BlIHtcbiAgICBSZW5kZXIgPSAnUmVuZGVyJyxcbiAgICBTZWFyY2ggPSAnU2VhcmNoJyxcbiAgICBTZWFyY2hDb2xsZWN0aW9ucyA9ICdTZWFyY2hDb2xsZWN0aW9ucycsXG4gICAgU2F2ZWRTZWFyY2hlcyA9ICdTYXZlZFNlYXJjaGVzJyxcbiAgICBDb2xsZWN0aW9uc1JlZmVyZW5jZXMgPSAnQ29sbGVjdGlvbnNSZWZlcmVuY2VzJyxcbiAgICBDb2xsZWN0aW9uc1Byb3Bvc2FscyA9ICdDb2xsZWN0aW9uc1Byb3Bvc2FscycsXG4gICAgQ29sbGVjdGlvbnNDb2xsZWN0aW9uID0gJ0NvbGxlY3Rpb25zQ29sbGVjdGlvbicsXG4gICAgV29ya3NwYWNlTGlzdCA9ICdXb3Jrc3BhY2VMaXN0JyxcbiAgICBXb3Jrc3BhY2VUcmVlID0gJ1dvcmtzcGFjZVRyZWUnLFxuICAgIFNoYXJpbmcgPSAnU2hhcmluZycsXG4gICAgT2VyID0gJ09lcicsXG4gICAgVXNlck1hbmFnZW1lbnQgPSAnVXNlck1hbmFnZW1lbnQnLFxuICAgIFVzZXJQcm9maWxlID0gJ1VzZXJQcm9maWxlJyxcbiAgICBTdHJlYW0gPSAnU3RyZWFtJyxcbiAgICBDcmVhdGVNZW51ID0gJ0NyZWF0ZU1lbnUnLFxuXG4gICAgTWVkaWFjZW50ZXJOb2Rlc0xpc3QgPSAnTWVkaWFjZW50ZXJOb2Rlc0xpc3QnLFxuICAgIEFkbWluID0gJ0FkbWluJywgLy8gQWRtaW4gVG9vbHMgLyBEZWJ1Z2dpbmdcbiAgICBEZWJ1Z1Nob3dBbGwgPSAnRGVidWdTaG93QWxsJywgLy8gRnVsbCBkZWJ1ZyBtb2RlIHdoaWNoIGVuYWJsZXMgYWxsIG9wdGlvbnNcbn1cbmV4cG9ydCBlbnVtIEVsZW1lbnRUeXBlIHtcbiAgICBOb2RlLFxuICAgIE5vZGVDaGlsZCwgLy8gQ2hpbGQgb2JqZWN0XG4gICAgTWFwUmVmLCAvLyBNYXAgcmVmIChsaW5rIHRvIGFub3RoZXIgbWFwKVxuICAgIE5vZGVQdWJsaXNoZWRDb3B5LFxuICAgIE5vZGVSZXZva2VkLCAvLyByZXZva2VkIGNvcHkgLyByZXZva2VkIHB1Ymxpc2hlZCBub2RlXG4gICAgTm9kZUJsb2NrZWRJbXBvcnQsIC8vIG5vZGUgd2l0aCBwcm9wZXJ0eSBjY206aW1wb3J0YmxvY2tlZCA9PSB0cnVlXG4gICAgTm9kZVByb3Bvc2FsLCAvLyBub2RlIHByb3Bvc2FsIGZvciBhIGNvbGxlY3Rpb25cbiAgICBQZXJzb24sXG4gICAgR3JvdXAsXG4gICAgU2F2ZWRTZWFyY2gsXG4gICAgVW5rbm93bixcbn1cbmV4cG9ydCBjbGFzcyBPcHRpb25Hcm91cCB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGlkIFRoZSBncm91cCBpZGVudGlmaWVyLiBVc2VkIHRvIHNlcGVyYXRlIGVsZW1lbnRzIGJhc2VkIG9uIHRoZSBncm91cFxuICAgICAqIEBwYXJhbSBwcmlvcml0eSBHcm91cCB3aXRoIDAgaGFzIGhpZ2hlc3QgcHJpb3JpdHksIGhpZ2hlciB2YWx1ZXMgbWVhbiBsb3dlciBwcmlvcml0eVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpZDogc3RyaW5nLCBwdWJsaWMgcHJpb3JpdHk6IG51bWJlcikge31cbn1cbmV4cG9ydCBjbGFzcyBEZWZhdWx0R3JvdXBzIHtcbiAgICBzdGF0aWMgUHJpbWFyeSA9IG5ldyBPcHRpb25Hcm91cCgnUHJpbWFyeScsIDEwKTtcbiAgICBzdGF0aWMgQ3JlYXRlID0gbmV3IE9wdGlvbkdyb3VwKCdDcmVhdGUnLCAxNSk7XG4gICAgc3RhdGljIFZpZXcgPSBuZXcgT3B0aW9uR3JvdXAoJ1ZpZXcnLCAyMCk7XG4gICAgc3RhdGljIENyZWF0ZUNvbm5lY3RvciA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlQ29ubmVjdG9yJywgMjUpO1xuICAgIHN0YXRpYyBDcmVhdGVMdGlUb29scyA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlTHRpVG9vbHMnLCAyOCk7XG4gICAgc3RhdGljIFJldXNlID0gbmV3IE9wdGlvbkdyb3VwKCdSZXVzZScsIDMwKTtcbiAgICBzdGF0aWMgRWRpdCA9IG5ldyBPcHRpb25Hcm91cCgnRWRpdCcsIDQwKTtcbiAgICBzdGF0aWMgRmlsZU9wZXJhdGlvbnMgPSBuZXcgT3B0aW9uR3JvdXAoJ0ZpbGVPcGVyYXRpb25zJywgNTApO1xuICAgIHN0YXRpYyBEZWxldGUgPSBuZXcgT3B0aW9uR3JvdXAoJ0RlbGV0ZScsIDYwKTtcbiAgICBzdGF0aWMgVG9nZ2xlcyA9IG5ldyBPcHRpb25Hcm91cCgnVG9nZ2xlcycsIDcwKTtcbn1cbmV4cG9ydCBlbnVtIENvbnN0cmFpbiB7XG4gICAgQ29sbGVjdGlvblJlZmVyZW5jZSwgLy8gb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBmb3IgY29sbGVjdGlvbiByZWZlcmVuY2VzXG4gICAgTm9Db2xsZWN0aW9uUmVmZXJlbmNlLCAvLyBvcHRpb24gaXMgb25seSB2aXNpYmxlIGZvciBub24tY29sbGVjdGlvbiByZWZlcmVuY2VzXG4gICAgRGlyZWN0b3J5LCAvLyBvbmx5IHZpc2libGUgZm9yIGRpcmVjdG9yaWVzIChjY206bWFwKVxuICAgIENvbGxlY3Rpb25zLCAvLyBvbmx5IHZpc2libGUgZm9yIGNvbGxlY3Rpb25zXG4gICAgRmlsZXMsIC8vIG9ubHkgdmlzaWJsZSBmb3IgZmlsZXMgKGNjbTppbylcbiAgICBGaWxlc0FuZERpcmVjdG9yaWVzLCAvLyBvbmx5IHZpc2libGUgZm9yIGZpbGVzIGFuZCBkaXJlY3RvcmllcyAoY2NtOmlvIC8gY2NtOm1hcCkgLSBubyBjb2xsZWN0aW9ucyFcbiAgICBBZG1pbiwgLy8gb25seSB2aXNpYmxlIGlmIHVzZXIgaXMgYWRtaW4gb3IgZXNEZWJ1ZyBpcyBlbmFibGVkIG9uIHdpbmRvdyBjb21wb25lbnRcbiAgICBBZG1pbk9yRGVidWcsIC8vIG9ubHkgdmlzaWJsZSBpZiB1c2VyIGlzIGFkbWluIG9yIGVzRGVidWcgaXMgZW5hYmxlZCBvbiB3aW5kb3cgY29tcG9uZW50XG4gICAgTm9CdWxrLCAvLyBObyBzdXBwb3J0IGZvciBidWxrIChtdWx0aXBsZSBvYmplY3RzKVxuICAgIE5vU2VsZWN0aW9uLCAvLyBPbmx5IHZpc2libGUgd2hlbiBjdXJyZW50bHkgbm8gZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgIENsaXBib2FyZENvbnRlbnQsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIHRoZSBjbGlwYm9hcmQgaGFzIGNvbnRlbnRcbiAgICBBZGRPYmplY3RzLCAvLyBPbmx5IHZpc2libGUgd2hlbiBpdCBpcyBwb3NzaWJsZSB0byBhZGQgb2JqZWN0cyBpbnRvIHRoZSBjdXJyZW50IGxpc3RcbiAgICBIb21lUmVwb3NpdG9yeSwgLy8gT25seSB2aXNpYmxlIHdoZW4gdGhlIG5vZGVzIGFyZSBmcm9tIHRoZSBsb2NhbCAoaG9tZSkgcmVwb3NpdG9yeVxuICAgIFVzZXIsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgdXNlciBpcyBwcmVzZW50IGFuZCBsb2dnZWQgaW5cbiAgICBOb1Njb3BlLCAvLyBPbmx5IHZpc2libGUgd2hlbiBubyBjdXJyZW50IHNjb3BlIChpLmUgXCJzYWZlXCIgc2NvcGUpIGlzIHNldFxuICAgIFJldXJsTW9kZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSByZXVybCBpcyBwcmVzZW50IChjYWxsZWQgdG8gcGljayBvYmplY3QgZnJvbSBsbXMpXG4gICAgTFRJTW9kZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gYSBsdGkgc2Vzc2lvbiBpcyBwcmVzZW50IChjYWxsZWQgdG8gcGljayBvYmplY3QgZnJvbSBsdGkgcGxhdGZvcm0pXG59XG5cbmV4cG9ydCBlbnVtIFRhcmdldCB7XG4gICAgTGlzdCwgLy8gVGFyZ2V0IGlzIHRoZSBMaXN0VGFibGVDb21wb25lbnRcbiAgICBMaXN0RHJvcGRvd24sXG4gICAgQWN0aW9uYmFyLFxuICAgIENyZWF0ZU1lbnUsXG59XG4iXX0=
@@ -7,6 +7,8 @@ export class RestHelper {
7
7
  static getName(node) {
8
8
  if (node.name)
9
9
  return node.name;
10
+ if (node.properties?.[RestConstants.CM_NAME])
11
+ return node.properties[RestConstants.CM_NAME].join();
10
12
  if (node.title)
11
13
  return node.title;
12
14
  if (node.ref)
@@ -26,8 +28,8 @@ export class RestHelper {
26
28
  }
27
29
  static getTitleFromProperties(properties) {
28
30
  return properties[RestConstants.LOM_PROP_TITLE]
29
- ? properties[RestConstants.LOM_PROP_TITLE]
30
- : properties[RestConstants.CM_NAME];
31
+ ? properties[RestConstants.LOM_PROP_TITLE]?.join()
32
+ : properties[RestConstants.CM_NAME]?.join();
31
33
  }
32
34
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3V0aWwvcmVzdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFRLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7YUFDRixxQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQztJQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVU7UUFDN0IsSUFBSSxJQUFJLEVBQUUsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxFQUFFLElBQUksQ0FBQztRQUN0QixDQUFDO1FBQ0QsSUFBSSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDbkIsT0FBTyxVQUFVLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDTSxNQUFNLENBQUMsc0JBQXNCLENBQUMsVUFBZTtRQUNoRCxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDO1lBQzNDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUMxQyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSwgUmVzdENvbnN0YW50cyB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuLyoqXG4gKiBEaWZmZXJlbnQgaGVscGVyIGZ1bmN0aW9ucywgbWF5IGJlIHVzZWQgZ2xvYmFsbHlcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3RIZWxwZXIge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgU1BBQ0VTX1NUT1JFX1JFRiA9ICd3b3Jrc3BhY2U6Ly9TcGFjZXNTdG9yZS8nO1xuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TmFtZShub2RlOiBOb2RlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKG5vZGUubmFtZSkgcmV0dXJuIG5vZGUubmFtZTtcbiAgICAgICAgaWYgKG5vZGUudGl0bGUpIHJldHVybiBub2RlLnRpdGxlO1xuICAgICAgICBpZiAobm9kZS5yZWYpIHJldHVybiBub2RlLnJlZi5pZDtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGl0bGUobm9kZTogTm9kZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChub2RlPy50aXRsZSkgcmV0dXJuIG5vZGUudGl0bGU7XG4gICAgICAgIGlmIChub2RlPy5uYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZT8ubmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZT8ucHJvcGVydGllcykge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3RIZWxwZXIuZ2V0VGl0bGVGcm9tUHJvcGVydGllcyhub2RlPy5wcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGl0bGVGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvcGVydGllc1tSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFXVxuICAgICAgICAgICAgPyBwcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuTE9NX1BST1BfVElUTEVdXG4gICAgICAgICAgICA6IHByb3BlcnRpZXNbUmVzdENvbnN0YW50cy5DTV9OQU1FXTtcbiAgICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3V0aWwvcmVzdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFRLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7YUFDRixxQkFBZ0IsR0FBRywwQkFBMEIsQ0FBQztJQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVU7UUFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ00sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFVO1FBQzdCLElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDYixPQUFPLElBQUksRUFBRSxJQUFJLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ25CLE9BQU8sVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ00sTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQWU7UUFDaEQsT0FBTyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDbEQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGUsIFJlc3RDb25zdGFudHMgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbi8qKlxuICogRGlmZmVyZW50IGhlbHBlciBmdW5jdGlvbnMsIG1heSBiZSB1c2VkIGdsb2JhbGx5XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0SGVscGVyIHtcbiAgICBwcm90ZWN0ZWQgc3RhdGljIFNQQUNFU19TVE9SRV9SRUYgPSAnd29ya3NwYWNlOi8vU3BhY2VzU3RvcmUvJztcbiAgICBwdWJsaWMgc3RhdGljIGdldE5hbWUobm9kZTogTm9kZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChub2RlLm5hbWUpIHJldHVybiBub2RlLm5hbWU7XG4gICAgICAgIGlmIChub2RlLnByb3BlcnRpZXM/LltSZXN0Q29uc3RhbnRzLkNNX05BTUVdKVxuICAgICAgICAgICAgcmV0dXJuIG5vZGUucHJvcGVydGllc1tSZXN0Q29uc3RhbnRzLkNNX05BTUVdLmpvaW4oKTtcbiAgICAgICAgaWYgKG5vZGUudGl0bGUpIHJldHVybiBub2RlLnRpdGxlO1xuICAgICAgICBpZiAobm9kZS5yZWYpIHJldHVybiBub2RlLnJlZi5pZDtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGl0bGUobm9kZTogTm9kZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChub2RlPy50aXRsZSkgcmV0dXJuIG5vZGUudGl0bGU7XG4gICAgICAgIGlmIChub2RlPy5uYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZT8ubmFtZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZT8ucHJvcGVydGllcykge1xuICAgICAgICAgICAgcmV0dXJuIFJlc3RIZWxwZXIuZ2V0VGl0bGVGcm9tUHJvcGVydGllcyhub2RlPy5wcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGl0bGVGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gcHJvcGVydGllc1tSZXN0Q29uc3RhbnRzLkxPTV9QUk9QX1RJVExFXVxuICAgICAgICAgICAgPyBwcm9wZXJ0aWVzW1Jlc3RDb25zdGFudHMuTE9NX1BST1BfVElUTEVdPy5qb2luKClcbiAgICAgICAgICAgIDogcHJvcGVydGllc1tSZXN0Q29uc3RhbnRzLkNNX05BTUVdPy5qb2luKCk7XG4gICAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import { transition, style, animate, state, trigger } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Injectable, Directive, Optional, Input, Pipe, Component, ViewChild, EventEmitter, Output, HostListener, InjectionToken, Inject, HostBinding, NgModule, ContentChild, signal, ChangeDetectionStrategy, effect, ElementRef, ViewChildren, SkipSelf } from '@angular/core';
4
- import { isArray as isArray$1 } from 'lodash';
4
+ import { isArray as isArray$1, isString } from 'lodash';
5
5
  import * as rxjs from 'rxjs';
6
6
  import { BehaviorSubject, combineLatest as combineLatest$1, Observable, ReplaySubject, Subject, merge, from, of, fromEvent, interval, firstValueFrom, forkJoin, concat } from 'rxjs';
7
7
  import { map, distinctUntilChanged, filter, take, switchMap, pairwise, takeUntil, first, tap, startWith, delay as delay$1, debounceTime, shareReplay, catchError, reduce } from 'rxjs/operators';
@@ -2206,6 +2206,8 @@ class RestHelper {
2206
2206
  static getName(node) {
2207
2207
  if (node.name)
2208
2208
  return node.name;
2209
+ if (node.properties?.[RestConstants.CM_NAME])
2210
+ return node.properties[RestConstants.CM_NAME].join();
2209
2211
  if (node.title)
2210
2212
  return node.title;
2211
2213
  if (node.ref)
@@ -2225,14 +2227,14 @@ class RestHelper {
2225
2227
  }
2226
2228
  static getTitleFromProperties(properties) {
2227
2229
  return properties[RestConstants.LOM_PROP_TITLE]
2228
- ? properties[RestConstants.LOM_PROP_TITLE]
2229
- : properties[RestConstants.CM_NAME];
2230
+ ? properties[RestConstants.LOM_PROP_TITLE]?.join()
2231
+ : properties[RestConstants.CM_NAME]?.join();
2230
2232
  }
2231
2233
  }
2232
2234
 
2233
2235
  class NodeTitlePipe {
2234
2236
  transform(node, args) {
2235
- if (!node?.name) {
2237
+ if (!node?.name && isString(node)) {
2236
2238
  if (node === 'HOME') {
2237
2239
  return this.translate.instant('WORKSPACE.' + node);
2238
2240
  }
@@ -4037,6 +4039,7 @@ var Scope;
4037
4039
  Scope["Sharing"] = "Sharing";
4038
4040
  Scope["Oer"] = "Oer";
4039
4041
  Scope["UserManagement"] = "UserManagement";
4042
+ Scope["UserProfile"] = "UserProfile";
4040
4043
  Scope["Stream"] = "Stream";
4041
4044
  Scope["CreateMenu"] = "CreateMenu";
4042
4045
  Scope["MediacenterNodesList"] = "MediacenterNodesList";
@@ -5506,11 +5509,11 @@ class NodeEntriesGlobalOptionsComponent {
5506
5509
  return this.entriesService.globalOptionsSubject.pipe(map((options) => options.filter((e) => e.isEnabled)));
5507
5510
  }
5508
5511
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesGlobalOptionsComponent, deps: [{ token: NodeEntriesService }], target: i0.ɵɵFactoryTarget.Component }); }
5509
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: NodeEntriesGlobalOptionsComponent, selector: "es-node-entries-global-options", inputs: { displayType: "displayType" }, ngImport: i0, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5512
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: NodeEntriesGlobalOptionsComponent, selector: "es-node-entries-global-options", inputs: { displayType: "displayType" }, ngImport: i0, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--aiColor: #6d176e;--aiColorText: #fff;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5510
5513
  }
5511
5514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodeEntriesGlobalOptionsComponent, decorators: [{
5512
5515
  type: Component,
5513
- args: [{ selector: 'es-node-entries-global-options', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"] }]
5516
+ args: [{ selector: 'es-node-entries-global-options', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"(getEnabledOptions() | async)?.length\"\n role=\"listitem\"\n class=\"global-options\"\n [class.global-options-small]=\"displayType === NodeEntriesDisplayType.SmallGrid\"\n [class.global-options-table]=\"displayType === NodeEntriesDisplayType.Table\"\n>\n <button\n mat-button\n *ngFor=\"let option of getEnabledOptions() | async\"\n (click)=\"option.callback()\"\n class=\"global-option-btn\"\n attr.data-test=\"card-button-{{ option.name }}\"\n >\n <ng-container *ngTemplateOutlet=\"globalOption; context: { option: this.option }\"></ng-container>\n </button>\n</div>\n<ng-template #globalOption let-option=\"option\">\n <span class=\"global-option\">\n <i [esIcon]=\"option.icon\"></i>\n <span class=\"label\">{{ option.name | translate }}</span>\n </span>\n</ng-template>\n", styles: [":root{--primary: var(--palette-primary-500);--warning: #cd2457;--aiColor: #6d176e;--aiColorText: #fff;--tableIconSize: 38px;--textLight: #585858;--textMediumLight: #888;--textMain: #383838;--cardWidth: 240px;--colorStatusPositive: #40bf8e;--colorStatusNegative: var(--warning);--colorStarActive: #ba7c00;--nodeVirtualColor: #42ca8d;--nodeVirtualColorLight: #b8fcdd;--transitionNormal: .2s;--focusWidth: 2px;--fontSizeXSmall: 85%;--itemSelectedTextColor: var(--palette-primary-700);--listItemSelectedBackground: var(--palette-primary-50);--listItemSelectedBackgroundEffect: linear-gradient( to right, var(--primary) 0, var(--primary) 5px, var(--palette-primary-50) 5px, var(--palette-primary-50) 5px ) no-repeat}.global-options{display:grid;grid-template-columns:auto;grid-template-rows:repeat(auto-fit,minmax(70px,1fr));grid-row-gap:20px;height:100%;min-height:250px}.global-options.global-options-small{min-height:130px}.global-options.global-options-table{min-height:100px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-column-gap:20px}.global-options .global-option-btn{display:flex;height:100%;padding:0}.global-options .global-option{cursor:pointer;display:flex;box-shadow:0 0 5px #0000004d;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;border:3px dashed var(--primary);color:var(--primary)}.global-options .global-option>i{font-size:32px;margin-bottom:5px}.global-options .global-option>.label{cursor:pointer;font-weight:700}.global-options .global-option:hover,.global-options .global-option:focus{background-color:rgb(var(--palette-primary-50))}:host ::ng-deep .global-options .global-option-btn .mdc-button__label{width:100%;height:100%}\n"] }]
5514
5517
  }], ctorParameters: () => [{ type: NodeEntriesService }], propDecorators: { displayType: [{
5515
5518
  type: Input
5516
5519
  }] } });
@@ -6164,11 +6167,12 @@ class OptionsHelperService {
6164
6167
  }
6165
6168
 
6166
6169
  class OptionsHelperDataService {
6167
- constructor(ngZone, route, localEvents, authenticationService, userService, networkService, keyboardShortcutsService, optionsHelperService) {
6170
+ constructor(ngZone, route, localEvents, authenticationService, toast, userService, networkService, keyboardShortcutsService, optionsHelperService) {
6168
6171
  this.ngZone = ngZone;
6169
6172
  this.route = route;
6170
6173
  this.localEvents = localEvents;
6171
6174
  this.authenticationService = authenticationService;
6175
+ this.toast = toast;
6172
6176
  this.userService = userService;
6173
6177
  this.networkService = networkService;
6174
6178
  this.keyboardShortcutsService = keyboardShortcutsService;
@@ -6243,15 +6247,21 @@ class OptionsHelperDataService {
6243
6247
  }
6244
6248
  });
6245
6249
  }
6246
- handleKeyboardEvent(event) {
6250
+ async handleKeyboardEvent(event) {
6247
6251
  if (this.globalOptions && !this.keyboardShortcutsService?.shouldIgnoreShortcut(event)) {
6248
- const matchedOption = this.globalOptions.find((option) => option.isEnabled &&
6249
- option.keyboardShortcut &&
6250
- matchesShortcutCondition(event, option.keyboardShortcut));
6251
- if (matchedOption) {
6252
- event.preventDefault();
6253
- event.stopPropagation();
6254
- this.ngZone.run(() => matchedOption.callback(null));
6252
+ for (const option of this.globalOptions) {
6253
+ if (option.keyboardShortcut &&
6254
+ matchesShortcutCondition(event, option.keyboardShortcut)) {
6255
+ event.preventDefault();
6256
+ event.stopPropagation();
6257
+ if (await option.enabledCallback()) {
6258
+ this.ngZone.run(() => option.callback(null));
6259
+ }
6260
+ else {
6261
+ this.toast.error(null, 'TOAST.OPTION_DISABLED_OR_UNAVAILABLE');
6262
+ }
6263
+ break;
6264
+ }
6255
6265
  }
6256
6266
  }
6257
6267
  }
@@ -6274,12 +6284,12 @@ class OptionsHelperDataService {
6274
6284
  pasteNode(nodes = []) {
6275
6285
  this.optionsHelperService.pasteNode(this.components, this.data, true, nodes);
6276
6286
  }
6277
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, deps: [{ token: i0.NgZone }, { token: i2$1.ActivatedRoute }, { token: LocalEventsService }, { token: i2.AuthenticationService }, { token: i2.UserService }, { token: i2.NetworkService }, { token: KeyboardShortcutsService, optional: true }, { token: OptionsHelperService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
6287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, deps: [{ token: i0.NgZone }, { token: i2$1.ActivatedRoute }, { token: LocalEventsService }, { token: i2.AuthenticationService }, { token: Toast }, { token: i2.UserService }, { token: i2.NetworkService }, { token: KeyboardShortcutsService, optional: true }, { token: OptionsHelperService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
6278
6288
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService }); }
6279
6289
  }
6280
6290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: OptionsHelperDataService, decorators: [{
6281
6291
  type: Injectable
6282
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i2$1.ActivatedRoute }, { type: LocalEventsService }, { type: i2.AuthenticationService }, { type: i2.UserService }, { type: i2.NetworkService }, { type: KeyboardShortcutsService, decorators: [{
6292
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i2$1.ActivatedRoute }, { type: LocalEventsService }, { type: i2.AuthenticationService }, { type: Toast }, { type: i2.UserService }, { type: i2.NetworkService }, { type: KeyboardShortcutsService, decorators: [{
6283
6293
  type: Optional
6284
6294
  }] }, { type: OptionsHelperService, decorators: [{
6285
6295
  type: Optional
@@ -6296,6 +6306,7 @@ class NodeEntriesComponent {
6296
6306
  this.translate = translate;
6297
6307
  this.NodeEntriesDisplayType = NodeEntriesDisplayType;
6298
6308
  this.destroyed = new Subject();
6309
+ this.updateKeyboardShortcuts = new Subject();
6299
6310
  }
6300
6311
  ngOnInit() {
6301
6312
  if (this.entriesService.primaryInstance) {