@indice/ng-components 0.2.161 → 0.2.162

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.
Files changed (39) hide show
  1. package/_styles.css +630 -3
  2. package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +112 -0
  3. package/esm2020/lib/controls/advanced-search/models.mjs +90 -0
  4. package/esm2020/lib/controls/combobox/combobox.component.mjs +4 -3
  5. package/esm2020/lib/controls/list-view/list-view.component.mjs +18 -4
  6. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +7 -3
  7. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +17 -13
  8. package/esm2020/lib/controls/stepper/lib-step.component.mjs +3 -3
  9. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +34 -11
  10. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +3 -2
  11. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +3 -3
  12. package/esm2020/lib/helpers/base-list.component.mjs +47 -3
  13. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +6 -7
  14. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +7 -9
  15. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +7 -7
  16. package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -0
  17. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +25 -0
  18. package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +21 -0
  19. package/esm2020/lib/ng-components.module.mjs +22 -6
  20. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +1 -2
  21. package/esm2020/public-api.mjs +3 -1
  22. package/fesm2015/indice-ng-components.mjs +744 -379
  23. package/fesm2015/indice-ng-components.mjs.map +1 -1
  24. package/fesm2020/indice-ng-components.mjs +735 -378
  25. package/fesm2020/indice-ng-components.mjs.map +1 -1
  26. package/lib/controls/advanced-search/advanced-search.component.d.ts +26 -0
  27. package/lib/controls/advanced-search/models.d.ts +83 -0
  28. package/lib/controls/list-view/list-view.component.d.ts +6 -1
  29. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +5 -2
  30. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +3 -3
  31. package/lib/controls/stepper/lib-stepper.component.d.ts +15 -4
  32. package/lib/helpers/base-list.component.d.ts +11 -0
  33. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +2 -3
  34. package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -0
  35. package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +12 -0
  36. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -0
  37. package/lib/ng-components.module.d.ts +9 -4
  38. package/package.json +2 -2
  39. package/public-api.d.ts +2 -0
@@ -9,8 +9,11 @@ import * as i1 from "@angular/common";
9
9
  import * as i2 from "../pager/pager.component";
10
10
  import * as i3 from "./list-view-empty-state.component";
11
11
  import * as i4 from "../skeleton-loader/skeleton-loader.component";
12
+ import * as i5 from "../advanced-search/advanced-search.component";
12
13
  export class ListViewComponent {
13
14
  constructor() {
15
+ this.searchOptions = [];
16
+ this.filters = [];
14
17
  // BUSY STATE
15
18
  this.busy = false;
16
19
  // PAGING - pass through for pager component
@@ -42,6 +45,7 @@ export class ListViewComponent {
42
45
  this.detailsOpened = new EventEmitter();
43
46
  this.sortChanged = new EventEmitter();
44
47
  this.sortdirChanged = new EventEmitter();
48
+ this.advancedSearchChanged = new EventEmitter();
45
49
  this.multipleFullWidth = false;
46
50
  this.expandIcon = Icons.Expand;
47
51
  this.collapseIcon = Icons.Collapse;
@@ -104,6 +108,9 @@ export class ListViewComponent {
104
108
  emitSortdirChanged($event) {
105
109
  this.sortdirChanged.emit($event);
106
110
  }
111
+ emitAdvancedSearchChanged($event) {
112
+ this.advancedSearchChanged.emit($event);
113
+ }
107
114
  toggleDetails(item) {
108
115
  item.detailsExpanded = !item.detailsExpanded;
109
116
  this.detailsOpened.emit({ item, open: item.detailsExpanded });
@@ -129,11 +136,16 @@ export class ListViewComponent {
129
136
  }
130
137
  }
131
138
  ListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
132
- ListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewComponent, selector: "lib-list-view", inputs: { busy: "busy", items: "items", count: "count", page: "page", view: "view", sort: "sort", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sortdir: ["sort-dir", "sortdir"], tilesCount: ["tiles-count", "tilesCount"], showPager: ["show-pager", "showPager"], pagerPosition: ["pager-position", "pagerPosition"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", detailsOpened: "detailsOpened", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged" }, queries: [{ propertyName: "tiles", first: true, predicate: ListTileComponent, descendants: true, read: ListTileComponent }, { propertyName: "details", first: true, predicate: ListDetailsSectionComponent, descendants: true, read: ListDetailsSectionComponent }, { propertyName: "cols", predicate: ListColumnComponent, read: ListColumnComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"px-2\">\n\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\" [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n\n<div class=\"pt-2 px-2\">\n\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.PagerComponent, selector: "lib-pager", inputs: ["busy", "count", "page", "page-size", "page-size-options", "sort-options", "sort", "sort-dir"], outputs: ["pageChanged", "pageSizeChanged", "sortChanged", "sortdirChanged"] }, { kind: "component", type: i3.ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }, { kind: "component", type: i4.SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type"] }] });
139
+ ListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewComponent, selector: "lib-list-view", inputs: { searchOptions: ["search-options", "searchOptions"], filters: "filters", busy: "busy", items: "items", count: "count", page: "page", view: "view", sort: "sort", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sortdir: ["sort-dir", "sortdir"], tilesCount: ["tiles-count", "tilesCount"], showPager: ["show-pager", "showPager"], pagerPosition: ["pager-position", "pagerPosition"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", detailsOpened: "detailsOpened", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged", advancedSearchChanged: "advancedSearchChanged" }, queries: [{ propertyName: "tiles", first: true, predicate: ListTileComponent, descendants: true, read: ListTileComponent }, { propertyName: "details", first: true, predicate: ListDetailsSectionComponent, descendants: true, read: ListDetailsSectionComponent }, { propertyName: "cols", predicate: ListColumnComponent, read: ListColumnComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"px-2\">\n\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\n [search-options]=\"searchOptions\"\n [filters]=\"filters\"\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\"></lib-advanced-search>\n\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\"\n [count]=\"5\"\n [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\"\n [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\"\n [count]=\"5\"\n [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\"\n *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\"\n *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n\n<div class=\"px-2\">\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\n class=\"pt-2\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.PagerComponent, selector: "lib-pager", inputs: ["busy", "count", "page", "page-size", "page-size-options", "sort-options", "sort", "sort-dir"], outputs: ["pageChanged", "pageSizeChanged", "sortChanged", "sortdirChanged"] }, { kind: "component", type: i3.ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }, { kind: "component", type: i4.SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type"] }, { kind: "component", type: i5.AdvancedSearchComponent, selector: "lib-advanced-search", inputs: ["search-options", "filters"], outputs: ["advancedSearchChanged"] }] });
133
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, decorators: [{
134
141
  type: Component,
135
- args: [{ selector: 'lib-list-view', template: "<div class=\"px-2\">\n\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\" [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n\n<div class=\"pt-2 px-2\">\n\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n" }]
136
- }], ctorParameters: function () { return []; }, propDecorators: { busy: [{
142
+ args: [{ selector: 'lib-list-view', template: "<div class=\"px-2\">\n\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\n [search-options]=\"searchOptions\"\n [filters]=\"filters\"\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\"></lib-advanced-search>\n\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\"\n [count]=\"5\"\n [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\"\n [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\"\n [count]=\"5\"\n [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\"\n *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\"\n *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n\n<div class=\"px-2\">\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\n class=\"pt-2\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>" }]
143
+ }], ctorParameters: function () { return []; }, propDecorators: { searchOptions: [{
144
+ type: Input,
145
+ args: ['search-options']
146
+ }], filters: [{
147
+ type: Input
148
+ }], busy: [{
137
149
  type: Input
138
150
  }], items: [{
139
151
  type: Input
@@ -188,5 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
188
200
  type: Output
189
201
  }], sortdirChanged: [{
190
202
  type: Output
203
+ }], advancedSearchChanged: [{
204
+ type: Output
191
205
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBTXBDLE1BQU0sT0FBTyxpQkFBaUI7SUE2RTVCO1FBNUVBLGFBQWE7UUFDSixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBR3RCLDRDQUE0QztRQUNuQyxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsU0FBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3ZCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEMsMkNBQTJDO1FBQ2Ysb0JBQWUsR0FBaUIsRUFBRSxDQUFDO1FBQy9ELDZDQUE2QztRQUM3Qywy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QUMsYUFBYTtnQkFFQyxTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFlBQVk7Z0JBRU0sYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSWtCLDJCQUEyQjtzQkFBbkUsS0FBSzt1QkFBQyxnQ0FBZ0M7Z0JBR25DLElBQUk7c0JBRFAsZUFBZTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRTtnQkFZL0QsS0FBSztzQkFEUixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO2dCQVN4RCxPQUFPO3NCQURWLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7Z0JBUXRFLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVPcHRpb24sIExpc3RWaWV3VHlwZSwgUGFnZXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExpc3RUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LXRpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtZGV0YWlscy1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uL2ljb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWxpc3QtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLy8gQlVTWSBTVEFURVxuICBASW5wdXQoKSBidXN5ID0gZmFsc2U7XG4gIC8vIERBVEEgU09VUkNFIVxuICBASW5wdXQoKSBpdGVtczogYW55W10gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAvLyBQQUdJTkcgLSBwYXNzIHRocm91Z2ggZm9yIHBhZ2VyIGNvbXBvbmVudFxuICBASW5wdXQoKSBjb3VudDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHBhZ2UgPSAxO1xuICBASW5wdXQoKSB2aWV3ID0gTGlzdFZpZXdUeXBlLlRhYmxlO1xuICBASW5wdXQoKSBzb3J0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3BhZ2Utc2l6ZScpIHBhZ2VTaXplID0gMjA7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwYWdlLXNpemUtb3B0aW9ucycpIHBhZ2VTaXplT3B0aW9uczogTWVudU9wdGlvbltdID0gW107XG4gIC8vIFNPUlRJTkcgLSBwYXNzIHRocm91Z2ggZm9yIHBhZ2VyIGNvbXBvbmVudFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc29ydC1vcHRpb25zJykgc29ydE9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc29ydC1kaXInKSBzb3J0ZGlyOiBzdHJpbmcgfCBudWxsID0gJy0nO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndGlsZXMtY291bnQnKSB0aWxlc0NvdW50ID0gNDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3Nob3ctcGFnZXInKSBzaG93UGFnZXIgPSB0cnVlO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncGFnZXItcG9zaXRpb24nKSBwYWdlclBvc2l0aW9uOiBhbnkgfCB1bmRlZmluZWQgPSBQYWdlclBvc2l0aW9uLlRvcDtcbiAgLy8gREVUQUlMUyBTRUNUSU9OXG4gIC8vIENoZWNrIGlmIGRldGFpbHMgc2VjdGlvbiBhbmQgYnV0dG9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgYWNjb3JkaW5nIHRvIHRoZSBjb3VudCBvZiB0aGUgdmFsdWUgZ2l2ZW5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2RldGFpbHMtc2VjdGlvbi1wcm9wZXJ0eS1jb3VudCcpIGRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8vIENPTFVNTlNcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0Q29sdW1uQ29tcG9uZW50LCB7IHJlYWQ6IExpc3RDb2x1bW5Db21wb25lbnQgfSlcbiAgc2V0IGNvbHMocmVmczogUXVlcnlMaXN0PExpc3RDb2x1bW5Db21wb25lbnQ+KSB7XG4gICAgdGhpcy5jb2x1bW5zID0gcmVmcz8udG9BcnJheSgpO1xuICAgIGlmICh0aGlzLmNvbHVtbnMgJiYgdGhpcy5jb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGFibGVWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5tdWx0aXBsZUZ1bGxXaWR0aCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiBjLmZ1bGxXaWR0aCkubGVuZ3RoID4gMTtcbiAgICB0aGlzLmZ1bGxXaWR0aFRIQ2xhc3MgPSB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID8gJ2xpc3Qtdmlldy10aC1oYWxmJyA6ICdsaXN0LXZpZXctdGgtZnVsbCc7XG4gICAgdGhpcy5mdWxsV2lkdGhURENsYXNzID0gdGhpcy5tdWx0aXBsZUZ1bGxXaWR0aCA/ICdsaXN0LXZpZXctdGQtaGFsZicgOiAnbGlzdC12aWV3LXRkLWZ1bGwnO1xuICB9XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQENvbnRlbnRDaGlsZChMaXN0VGlsZUNvbXBvbmVudCwgeyByZWFkOiBMaXN0VGlsZUNvbXBvbmVudCB9KVxuICBzZXQgdGlsZXMocmVmOiBMaXN0VGlsZUNvbXBvbmVudCkge1xuICAgIHRoaXMudGlsZVRlbXBsYXRlID0gcmVmO1xuICAgIGlmICh0aGlzLnRpbGVUZW1wbGF0ZSkge1xuICAgICAgdGhpcy50aWxlc1ZpZXdTdXBwb3J0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50LCB7IHJlYWQ6IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9KVxuICBzZXQgZGV0YWlscyhyZWY6IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCkge1xuICAgIHRoaXMuZGV0YWlsc1RlbXBsYXRlID0gcmVmO1xuICAgIGlmICh0aGlzLmRldGFpbHNUZW1wbGF0ZSkge1xuICAgICAgdGhpcy5kZXRhaWxzU2VjdGlvblN1cHBvcnRlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgZGV0YWlsc09wZW5lZDogRXZlbnRFbWl0dGVyPHsgaXRlbTogYW55LCBvcGVuOiBib29sZWFuIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGl0ZW06IGFueSwgb3BlbjogYm9vbGVhbiB9PigpO1xuICBAT3V0cHV0KCkgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzb3J0ZGlyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIG11bHRpcGxlRnVsbFdpZHRoID0gZmFsc2U7XG4gIHB1YmxpYyBleHBhbmRJY29uID0gSWNvbnMuRXhwYW5kO1xuICBwdWJsaWMgY29sbGFwc2VJY29uID0gSWNvbnMuQ29sbGFwc2U7XG4gIHB1YmxpYyB0YWJsZVZpZXdTdXBwb3J0ZWQgPSBmYWxzZTtcbiAgcHVibGljIGZ1bGxXaWR0aFRIQ2xhc3MgPSAnbGlzdC12aWV3LXRoLWZ1bGwnO1xuICBwdWJsaWMgZnVsbFdpZHRoVERDbGFzcyA9ICdsaXN0LXZpZXctdGQtZnVsbCc7XG4gIHB1YmxpYyB0aWxlc1ZpZXdTdXBwb3J0ZWQgPSBmYWxzZTtcbiAgcHVibGljIGRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkZXJJdGVtczogYW55W10gPSBbXTtcbiAgcHVibGljIGNvbHVtbnM6IGFueVtdID0gW107XG4gIHB1YmxpYyB0aWxlc0RlY2tDbGFzcyA9ICdjYXJkcy1kZWNrLTQnO1xuICBwdWJsaWMgdGlsZVRlbXBsYXRlOiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcbiAgcHVibGljIGRldGFpbHNUZW1wbGF0ZTogYW55IHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1OyBpKyspIHtcbiAgICAgIHRoaXMubG9hZGVySXRlbXMucHVzaCh7fSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnBhZ2VyUG9zaXRpb24pe1xuICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID0gdGhpcy5wYWdlclBvc2l0aW9uIGFzIFBhZ2VyUG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHRpbGVzQ291bnRDaGFuZ2UgPSBjaGFuZ2VzWyd0aWxlcy1jb3VudCddIHx8IGNoYW5nZXMudGlsZXNDb3VudDtcbiAgICBpZiAodGlsZXNDb3VudENoYW5nZSkge1xuICAgICAgdGhpcy5zZXRUaWxlc0RlY2tDbGFzcyh0aWxlc0NvdW50Q2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXZlbnRzXG4gIHB1YmxpYyBlbWl0UGFnZUNoYW5nZWQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRTb3J0Q2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG4gIHB1YmxpYyBlbWl0U29ydGRpckNoYW5nZWQoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRkaXJDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVEZXRhaWxzKGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGl0ZW0uZGV0YWlsc0V4cGFuZGVkID0gIWl0ZW0uZGV0YWlsc0V4cGFuZGVkO1xuICAgIHRoaXMuZGV0YWlsc09wZW5lZC5lbWl0KHsgaXRlbSwgb3BlbjogaXRlbS5kZXRhaWxzRXhwYW5kZWQgfSk7XG4gIH1cblxuICAvLyBoZWxwZXJzXG4gIHByaXZhdGUgc2V0VGlsZXNEZWNrQ2xhc3ModGlsZXM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aWxlcyA+PSAxICYmIHRpbGVzIDw9IDQpIHtcbiAgICAgIHRoaXMudGlsZXNEZWNrQ2xhc3MgPVxuICAgICAgICB0aGlzLnZpZXcgIT09IExpc3RWaWV3VHlwZS5HYWxsZXJ5XG4gICAgICAgICAgPyBgY2FyZHMtZGVjay0ke3RpbGVzfWBcbiAgICAgICAgICA6IHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/IGBnYWxsZXJ5LWRlY2stJHt0aWxlc31gXG4gICAgICAgICAgICA6ICdnYWxsZXJ5LWRlY2snO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRpbGVzRGVja0NsYXNzID1cbiAgICAgICAgdGhpcy52aWV3ICE9PSBMaXN0Vmlld1R5cGUuR2FsbGVyeVxuICAgICAgICAgID8gJ2NhcmRzLWRlY2stMydcbiAgICAgICAgICA6IHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwXG4gICAgICAgICAgICA/ICdnYWxsZXJ5LWRlY2stMydcbiAgICAgICAgICAgIDogJ2dhbGxlcnktZGVjayc7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJweC0yXCI+XG5cbiAgPGxpYi1wYWdlciAqbmdJZj1cInNob3dQYWdlciAmJiAocGFnZXJQb3NpdGlvbiA9PSAndG9wJyB8fCBwYWdlclBvc2l0aW9uID09ICdib3RoJylcIlxuICAgICAgICAgICAgIFtwYWdlXT1cInBhZ2VcIlxuICAgICAgICAgICAgIFtwYWdlLXNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgIFtjb3VudF09XCJjb3VudFwiXG4gICAgICAgICAgICAgW3NvcnQtb3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXG4gICAgICAgICAgICAgW3NvcnRdPVwic29ydFwiXG4gICAgICAgICAgICAgW3NvcnQtZGlyXT1cInNvcnRkaXJcIlxuICAgICAgICAgICAgIFtidXN5XT1cImJ1c3lcIlxuICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJlbWl0UGFnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9XCJlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgIChzb3J0Q2hhbmdlZCk9XCJlbWl0U29ydENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHNvcnRkaXJDaGFuZ2VkKT1cImVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvbGliLXBhZ2VyPlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZpZXdcIj5cblxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGlsZXMnXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cblxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCIgW2NvdW50XT1cIjVcIiBbdHlwZV09XCIndGlsZXMnXCI+PC9saWItc2tlbGV0b24tbG9hZGVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuXG4gIDwhLS0gKm5nU3dpdGNoQ2FzZT1cIidnYWxsZXJ5J1wiIC0tPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZ2FsbGVyeSdcIj5cbiAgICA8dWwgcm9sZT1cImxpc3RcIiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cblxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCIgW2NvdW50XT1cIjVcIiBbdHlwZV09XCIndGlsZXMnXCI+PC9saWItc2tlbGV0b24tbG9hZGVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ1c3kgJiYgaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tICpuZ1N3aXRjaENhc2U9XCIndGFibGUnXCIgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cblxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LXZpZXctY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJsaXN0LXZpZXctdGFibGVcIj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJsaXN0LXZpZXctdGhlYWRcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGlzdC12aWV3LXRoLWRldGFpbHNcIj48L3RoPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFRIQ2xhc3MgOiAnbGlzdC12aWV3LXRoJ1wiPlxuICAgICAgICAgICAgICAgICAge3tjb2wudGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImxpc3Qtdmlldy10Ym9keVwiICpuZ0lmPVwiYnVzeVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2FkZXJJdGVtcztsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJsaXN0LXZpZXctdHJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudCAhPT0gbnVsbCA/IGl0ZW1bZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50XSAhPT0gMCA6IHRydWU7IGVsc2UgaGlkZGVuRGV0YWlsc0J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sbGFwc2UtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmRldGFpbHNFeHBhbmRlZCA/IGNvbGxhcHNlSWNvbiA6IGV4cGFuZEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGlkZGVuRGV0YWlsc0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIj48L3RkPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhURENsYXNzIDogJ2xpc3Qtdmlldy10ZCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBhbmltYXRlLXB1bHNlIGgtOCBiZy1ncmF5LTIwMCByb3VuZGVkXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC12aWV3LXRkIGJnLWdyYXktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxzVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwibGlzdC12aWV3LXRib2R5XCIgKm5nSWY9XCIhYnVzeVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcztsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJsaXN0LXZpZXctdHJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudCAhPT0gbnVsbCA/IGl0ZW1bZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50XSAhPT0gMCA6IHRydWU7IGVsc2UgaGlkZGVuRGV0YWlsc0J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVEZXRhaWxzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1jb2xsYXBzZS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3BsdXMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkID8gY29sbGFwc2VJY29uIDogZXhwYW5kSWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoaWRkZW5EZXRhaWxzQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsaXN0LXZpZXctdGQtZGV0YWlsc1wiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFREQ2xhc3MgOiAnbGlzdC12aWV3LXRkJ1wiPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAxXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3Qtdmlldy10ZCBiZy1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsc1RlbXBsYXRlLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnVzeSAmJiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZHMtZGVjay0xXCI+XG4gICAgICA8bGliLWxpc3Qtdmlldy1lbXB0eS1zdGF0ZT48L2xpYi1saXN0LXZpZXctZW1wdHktc3RhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPGRpdiBjbGFzcz1cInB0LTIgcHgtMlwiPlxuXG4gIDxsaWItcGFnZXIgKm5nSWY9XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGggIT09IDAgJiYgc2hvd1BhZ2VyICYmIChwYWdlclBvc2l0aW9uID09ICdib3R0b20nIHx8IHBhZ2VyUG9zaXRpb24gPT0gJ2JvdGgnKVwiXG4gICAgICAgICAgICAgW3BhZ2VdPVwicGFnZVwiXG4gICAgICAgICAgICAgW3BhZ2Utc2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgW2NvdW50XT1cImNvdW50XCJcbiAgICAgICAgICAgICBbc29ydC1vcHRpb25zXT1cInNvcnRPcHRpb25zXCJcbiAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcbiAgICAgICAgICAgICBbc29ydC1kaXJdPVwic29ydGRpclwiXG4gICAgICAgICAgICAgW2J1c3ldPVwiYnVzeVwiXG4gICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cImVtaXRQYWdlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2VkKT1cImVtaXRQYWdlU2l6ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHNvcnRDaGFuZ2VkKT1cImVtaXRTb3J0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoc29ydGRpckNoYW5nZWQpPVwiZW1pdFNvcnRkaXJDaGFuZ2VkKCRldmVudClcIj5cbiAgPC9saWItcGFnZXI+XG48L2Rpdj5cbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFjLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8saUJBQWlCO0lBZ0Y1QjtRQS9FeUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25ELFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQ3RDLGFBQWE7UUFDSixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBR3RCLDRDQUE0QztRQUNuQyxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsU0FBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDMUIsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3ZCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFD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c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFYyxRQUFRO3NCQUEzQixLQUFLO3VCQUFDLFdBQVc7Z0JBRVUsZUFBZTtzQkFBMUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBR0gsV0FBVztzQkFBakMsS0FBSzt1QkFBQyxjQUFjO2dCQUVGLE9BQU87c0JBQXpCLEtBQUs7dUJBQUMsVUFBVTtnQkFFSyxVQUFVO3NCQUEvQixLQUFLO3VCQUFDLGFBQWE7Z0JBRUMsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUVNLGFBQWE7c0JBQXJDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUlrQiwyQkFBMkI7c0JBQW5FLEtBQUs7dUJBQUMsZ0NBQWdDO2dCQUduQyxJQUFJO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7Z0JBWS9ELEtBQUs7c0JBRFIsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtnQkFTeEQsT0FBTztzQkFEVixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLDJCQUEyQixFQUFFO2dCQVF0RSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVudU9wdGlvbiwgTGlzdFZpZXdUeXBlLCBQYWdlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgTGlzdFRpbGVDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtdGlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vLi4vaWNvbnMnO1xuaW1wb3J0IHsgRmlsdGVyQ2xhdXNlLCBTZWFyY2hPcHRpb24gfSBmcm9tICcuLi9hZHZhbmNlZC1zZWFyY2gvbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWxpc3QtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIExpc3RWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCdzZWFyY2gtb3B0aW9ucycpIHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIGZpbHRlcnM6IEZpbHRlckNsYXVzZVtdID0gW107XG4gIC8vIEJVU1kgU1RBVEVcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xuICAvLyBEQVRBIFNPVVJDRSFcbiAgQElucHV0KCkgaXRlbXM6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgLy8gUEFHSU5HIC0gcGFzcyB0aHJvdWdoIGZvciBwYWdlciBjb21wb25lbnRcbiAgQElucHV0KCkgY291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwYWdlID0gMTtcbiAgQElucHV0KCkgdmlldyA9IExpc3RWaWV3VHlwZS5UYWJsZTtcbiAgQElucHV0KCkgc29ydDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwYWdlLXNpemUnKSBwYWdlU2l6ZSA9IDIwO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncGFnZS1zaXplLW9wdGlvbnMnKSBwYWdlU2l6ZU9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xuICAvLyBTT1JUSU5HIC0gcGFzcyB0aHJvdWdoIGZvciBwYWdlciBjb21wb25lbnRcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NvcnQtb3B0aW9ucycpIHNvcnRPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NvcnQtZGlyJykgc29ydGRpcjogc3RyaW5nIHwgbnVsbCA9ICctJztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3RpbGVzLWNvdW50JykgdGlsZXNDb3VudCA9IDQ7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzaG93LXBhZ2VyJykgc2hvd1BhZ2VyID0gdHJ1ZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3BhZ2VyLXBvc2l0aW9uJykgcGFnZXJQb3NpdGlvbjogYW55IHwgdW5kZWZpbmVkID0gUGFnZXJQb3NpdGlvbi5Ub3A7XG4gIC8vIERFVEFJTFMgU0VDVElPTlxuICAvLyBDaGVjayBpZiBkZXRhaWxzIHNlY3Rpb24gYW5kIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGFjY29yZGluZyB0byB0aGUgY291bnQgb2YgdGhlIHZhbHVlIGdpdmVuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdkZXRhaWxzLXNlY3Rpb24tcHJvcGVydHktY291bnQnKSBkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvLyBDT0xVTU5TXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdENvbHVtbkNvbXBvbmVudCwgeyByZWFkOiBMaXN0Q29sdW1uQ29tcG9uZW50IH0pXG4gIHNldCBjb2xzKHJlZnM6IFF1ZXJ5TGlzdDxMaXN0Q29sdW1uQ29tcG9uZW50Pikge1xuICAgIHRoaXMuY29sdW1ucyA9IHJlZnM/LnRvQXJyYXkoKTtcbiAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRhYmxlVmlld1N1cHBvcnRlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gYy5mdWxsV2lkdGgpLmxlbmd0aCA+IDE7XG4gICAgdGhpcy5mdWxsV2lkdGhUSENsYXNzID0gdGhpcy5tdWx0aXBsZUZ1bGxXaWR0aCA/ICdsaXN0LXZpZXctdGgtaGFsZicgOiAnbGlzdC12aWV3LXRoLWZ1bGwnO1xuICAgIHRoaXMuZnVsbFdpZHRoVERDbGFzcyA9IHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPyAnbGlzdC12aWV3LXRkLWhhbGYnIDogJ2xpc3Qtdmlldy10ZC1mdWxsJztcbiAgfVxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBDb250ZW50Q2hpbGQoTGlzdFRpbGVDb21wb25lbnQsIHsgcmVhZDogTGlzdFRpbGVDb21wb25lbnQgfSlcbiAgc2V0IHRpbGVzKHJlZjogTGlzdFRpbGVDb21wb25lbnQpIHtcbiAgICB0aGlzLnRpbGVUZW1wbGF0ZSA9IHJlZjtcbiAgICBpZiAodGhpcy50aWxlVGVtcGxhdGUpIHtcbiAgICAgIHRoaXMudGlsZXNWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAQ29udGVudENoaWxkKExpc3REZXRhaWxzU2VjdGlvbkNvbXBvbmVudCwgeyByZWFkOiBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQgfSlcbiAgc2V0IGRldGFpbHMocmVmOiBMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQpIHtcbiAgICB0aGlzLmRldGFpbHNUZW1wbGF0ZSA9IHJlZjtcbiAgICBpZiAodGhpcy5kZXRhaWxzVGVtcGxhdGUpIHtcbiAgICAgIHRoaXMuZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGRldGFpbHNPcGVuZWQ6IEV2ZW50RW1pdHRlcjx7IGl0ZW06IGFueSwgb3BlbjogYm9vbGVhbiB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtOiBhbnksIG9wZW46IGJvb2xlYW4gfT4oKTtcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc29ydGRpckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBhZHZhbmNlZFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGF1c2VbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNsYXVzZVtdPigpO1xuXG4gIHByaXZhdGUgbXVsdGlwbGVGdWxsV2lkdGggPSBmYWxzZTtcbiAgcHVibGljIGV4cGFuZEljb24gPSBJY29ucy5FeHBhbmQ7XG4gIHB1YmxpYyBjb2xsYXBzZUljb24gPSBJY29ucy5Db2xsYXBzZTtcbiAgcHVibGljIHRhYmxlVmlld1N1cHBvcnRlZCA9IGZhbHNlO1xuICBwdWJsaWMgZnVsbFdpZHRoVEhDbGFzcyA9ICdsaXN0LXZpZXctdGgtZnVsbCc7XG4gIHB1YmxpYyBmdWxsV2lkdGhURENsYXNzID0gJ2xpc3Qtdmlldy10ZC1mdWxsJztcbiAgcHVibGljIHRpbGVzVmlld1N1cHBvcnRlZCA9IGZhbHNlO1xuICBwdWJsaWMgZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWQgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRlckl0ZW1zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcbiAgcHVibGljIHRpbGVzRGVja0NsYXNzID0gJ2NhcmRzLWRlY2stNCc7XG4gIHB1YmxpYyB0aWxlVGVtcGxhdGU6IGFueSB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuICBwdWJsaWMgZGV0YWlsc1RlbXBsYXRlOiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgdGhpcy5sb2FkZXJJdGVtcy5wdXNoKHt9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGFnZXJQb3NpdGlvbikge1xuICAgICAgdGhpcy5wYWdlclBvc2l0aW9uID0gdGhpcy5wYWdlclBvc2l0aW9uIGFzIFBhZ2VyUG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHRpbGVzQ291bnRDaGFuZ2UgPSBjaGFuZ2VzWyd0aWxlcy1jb3VudCddIHx8IGNoYW5nZXMudGlsZXNDb3VudDtcbiAgICBpZiAodGlsZXNDb3VudENoYW5nZSkge1xuICAgICAgdGhpcy5zZXRUaWxlc0RlY2tDbGFzcyh0aWxlc0NvdW50Q2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gZXZlbnRzXG4gIHB1YmxpYyBlbWl0UGFnZUNoYW5nZWQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRTb3J0Q2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG4gIHB1YmxpYyBlbWl0U29ydGRpckNoYW5nZWQoJGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRkaXJDaGFuZ2VkLmVtaXQoJGV2ZW50KTtcbiAgfVxuICBwdWJsaWMgZW1pdEFkdmFuY2VkU2VhcmNoQ2hhbmdlZCgkZXZlbnQ6IEZpbHRlckNsYXVzZVtdKTogdm9pZCB7XG4gICAgdGhpcy5hZHZhbmNlZFNlYXJjaENoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZURldGFpbHMoaXRlbTogYW55KTogdm9pZCB7XG4gICAgaXRlbS5kZXRhaWxzRXhwYW5kZWQgPSAhaXRlbS5kZXRhaWxzRXhwYW5kZWQ7XG4gICAgdGhpcy5kZXRhaWxzT3BlbmVkLmVtaXQoeyBpdGVtLCBvcGVuOiBpdGVtLmRldGFpbHNFeHBhbmRlZCB9KTtcbiAgfVxuXG4gIC8vIGhlbHBlcnNcbiAgcHJpdmF0ZSBzZXRUaWxlc0RlY2tDbGFzcyh0aWxlczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRpbGVzID49IDEgJiYgdGlsZXMgPD0gNCkge1xuICAgICAgdGhpcy50aWxlc0RlY2tDbGFzcyA9XG4gICAgICAgIHRoaXMudmlldyAhPT0gTGlzdFZpZXdUeXBlLkdhbGxlcnlcbiAgICAgICAgICA/IGBjYXJkcy1kZWNrLSR7dGlsZXN9YFxuICAgICAgICAgIDogdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gYGdhbGxlcnktZGVjay0ke3RpbGVzfWBcbiAgICAgICAgICAgIDogJ2dhbGxlcnktZGVjayc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGlsZXNEZWNrQ2xhc3MgPVxuICAgICAgICB0aGlzLnZpZXcgIT09IExpc3RWaWV3VHlwZS5HYWxsZXJ5XG4gICAgICAgICAgPyAnY2FyZHMtZGVjay0zJ1xuICAgICAgICAgIDogdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gJ2dhbGxlcnktZGVjay0zJ1xuICAgICAgICAgICAgOiAnZ2FsbGVyeS1kZWNrJztcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInB4LTJcIj5cblxuICA8bGliLWFkdmFuY2VkLXNlYXJjaCAqbmdJZj1cInNlYXJjaE9wdGlvbnMgJiYgc2VhcmNoT3B0aW9ucy5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NlYXJjaC1vcHRpb25zXT1cInNlYXJjaE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGFkdmFuY2VkU2VhcmNoQ2hhbmdlZCk9XCJlbWl0QWR2YW5jZWRTZWFyY2hDaGFuZ2VkKCRldmVudClcIj48L2xpYi1hZHZhbmNlZC1zZWFyY2g+XG5cbiAgPGxpYi1wYWdlciAqbmdJZj1cInNob3dQYWdlciAmJiAocGFnZXJQb3NpdGlvbiA9PSAndG9wJyB8fCBwYWdlclBvc2l0aW9uID09ICdib3RoJylcIlxuICAgICAgICAgICAgIFtwYWdlXT1cInBhZ2VcIlxuICAgICAgICAgICAgIFtwYWdlLXNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgIFtjb3VudF09XCJjb3VudFwiXG4gICAgICAgICAgICAgW3NvcnQtb3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXG4gICAgICAgICAgICAgW3NvcnRdPVwic29ydFwiXG4gICAgICAgICAgICAgW3NvcnQtZGlyXT1cInNvcnRkaXJcIlxuICAgICAgICAgICAgIFtidXN5XT1cImJ1c3lcIlxuICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJlbWl0UGFnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9XCJlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgIChzb3J0Q2hhbmdlZCk9XCJlbWl0U29ydENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHNvcnRkaXJDaGFuZ2VkKT1cImVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvbGliLXBhZ2VyPlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZpZXdcIj5cblxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGlsZXMnXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cblxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb3VudF09XCI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIid0aWxlcydcIj48L2xpYi1za2VsZXRvbi1sb2FkZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiF0aWxlVGVtcGxhdGUgfHwgIXRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiPnRlbXBsYXRlIG1pc3NpbmcuLjwvc3Bhbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGlsZVRlbXBsYXRlLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG5cbiAgPCEtLSAqbmdTd2l0Y2hDYXNlPVwiJ2dhbGxlcnknXCIgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidnYWxsZXJ5J1wiPlxuICAgIDx1bCByb2xlPVwibGlzdFwiXG4gICAgICAgIFtjbGFzc109XCJ0aWxlc0RlY2tDbGFzc1wiPlxuXG4gICAgICA8bGliLXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImJ1c3lcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvdW50XT1cIjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RpbGVzJ1wiPjwvbGliLXNrZWxldG9uLWxvYWRlcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXN5ICYmIGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXRpbGVUZW1wbGF0ZSB8fCAhdGlsZVRlbXBsYXRlLnRlbXBsYXRlXCI+dGVtcGxhdGUgbWlzc2luZy4uPC9zcGFuPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aWxlVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSAqbmdTd2l0Y2hDYXNlPVwiJ3RhYmxlJ1wiIC0tPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC12aWV3LWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3Qtdmlldy1jb250YWluZXItaW5uZXJcIj5cbiAgICAgICAgPHRhYmxlIGNsYXNzPVwibGlzdC12aWV3LXRhYmxlXCI+XG4gICAgICAgICAgPHRoZWFkIGNsYXNzPVwibGlzdC12aWV3LXRoZWFkXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImxpc3Qtdmlldy10aC1kZXRhaWxzXCI+PC90aD5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XG4gICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhUSENsYXNzIDogJ2xpc3Qtdmlldy10aCdcIj5cbiAgICAgICAgICAgICAgICAgIHt7Y29sLnRpdGxlfX1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJsaXN0LXZpZXctdGJvZHlcIlxuICAgICAgICAgICAgICAgICAqbmdJZj1cImJ1c3lcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbG9hZGVySXRlbXM7bGV0IGk9aW5kZXhcIj5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwibGlzdC12aWV3LXRyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsaXN0LXZpZXctdGQtZGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnQgIT09IG51bGwgPyBpdGVtW2RldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudF0gIT09IDAgOiB0cnVlOyBlbHNlIGhpZGRlbkRldGFpbHNCdXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbGxhcHNlLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogc29saWQvcGx1cyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWQgPyBjb2xsYXBzZUljb24gOiBleHBhbmRJY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hpZGRlbkRldGFpbHNCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2wuZnVsbFdpZHRoID8gZnVsbFdpZHRoVERDbGFzcyA6ICdsaXN0LXZpZXctdGQnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGFuaW1hdGUtcHVsc2UgaC04IGJnLWdyYXktMjAwIHJvdW5kZWRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJpdGVtLmRldGFpbHNFeHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LXZpZXctdGQgYmctZ3JheS0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRldGFpbHNUZW1wbGF0ZS50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8dGJvZHkgY2xhc3M9XCJsaXN0LXZpZXctdGJvZHlcIlxuICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidXN5XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zO2xldCBpPWluZGV4XCI+XG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cImxpc3Qtdmlldy10clwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50ICE9PSBudWxsID8gaXRlbVtkZXRhaWxzU2VjdGlvblByb3BlcnR5Q291bnRdICE9PSAwIDogdHJ1ZTsgZWxzZSBoaWRkZW5EZXRhaWxzQnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvZ2dsZURldGFpbHMoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbGxhcHNlLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogc29saWQvcGx1cyAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWQgPyBjb2xsYXBzZUljb24gOiBleHBhbmRJY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hpZGRlbkRldGFpbHNCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCI+PC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJjb2wuZnVsbFdpZHRoID8gZnVsbFdpZHRoVERDbGFzcyA6ICdsaXN0LXZpZXctdGQnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC12aWV3LXRkIGJnLWdyYXktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxzVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFidXN5ICYmIGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA9PT0gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkcy1kZWNrLTFcIj5cbiAgICAgIDxsaWItbGlzdC12aWV3LWVtcHR5LXN0YXRlPjwvbGliLWxpc3Qtdmlldy1lbXB0eS1zdGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwicHgtMlwiPlxuICA8bGliLXBhZ2VyICpuZ0lmPVwiaXRlbXMgJiYgaXRlbXMubGVuZ3RoICE9PSAwICYmIHNob3dQYWdlciAmJiAocGFnZXJQb3NpdGlvbiA9PSAnYm90dG9tJyB8fCBwYWdlclBvc2l0aW9uID09ICdib3RoJylcIlxuICAgICAgICAgICAgIGNsYXNzPVwicHQtMlwiXG4gICAgICAgICAgICAgW3BhZ2VdPVwicGFnZVwiXG4gICAgICAgICAgICAgW3BhZ2Utc2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICAgICAgICAgW2NvdW50XT1cImNvdW50XCJcbiAgICAgICAgICAgICBbc29ydC1vcHRpb25zXT1cInNvcnRPcHRpb25zXCJcbiAgICAgICAgICAgICBbc29ydF09XCJzb3J0XCJcbiAgICAgICAgICAgICBbc29ydC1kaXJdPVwic29ydGRpclwiXG4gICAgICAgICAgICAgW2J1c3ldPVwiYnVzeVwiXG4gICAgICAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cImVtaXRQYWdlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2VkKT1cImVtaXRQYWdlU2l6ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHNvcnRDaGFuZ2VkKT1cImVtaXRTb3J0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAoc29ydGRpckNoYW5nZWQpPVwiZW1pdFNvcnRkaXJDaGFuZ2VkKCRldmVudClcIj5cbiAgPC9saWItcGFnZXI+XG48L2Rpdj4iXX0=
@@ -13,14 +13,18 @@ export class NavLinksListComponent {
13
13
  // tslint:disable-next-line:no-input-rename
14
14
  this.showIcons = false;
15
15
  }
16
+ ngOnDestroy() {
17
+ this.fragmentSub$?.unsubscribe();
18
+ }
16
19
  ngOnInit() {
20
+ this.fragmentSub$ = this.activeFragment?.subscribe(fragment => this.fragmentValue = fragment);
17
21
  }
18
22
  }
19
23
  NavLinksListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavLinksListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
20
- NavLinksListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: { links: "links", activeFragment: ["active-fragment", "activeFragment"], navLinkClass: ["link-class", "navLinkClass"], navLinkActiveClass: ["link-active-class", "navLinkActiveClass"], containerClass: ["container-class", "containerClass"], showIcons: ["show-icons", "showIcons"] }, ngImport: i0, template: "\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class.active]=\"(activeFragment | async) === link.path\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
24
+ NavLinksListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: { links: "links", activeFragment: ["active-fragment", "activeFragment"], navLinkClass: ["link-class", "navLinkClass"], navLinkActiveClass: ["link-active-class", "navLinkActiveClass"], containerClass: ["container-class", "containerClass"], showIcons: ["show-icons", "showIcons"] }, ngImport: i0, template: "\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
21
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: NavLinksListComponent, decorators: [{
22
26
  type: Component,
23
- args: [{ selector: 'lib-nav-links-list', template: "\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class.active]=\"(activeFragment | async) === link.path\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n" }]
27
+ args: [{ selector: 'lib-nav-links-list', template: "\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n" }]
24
28
  }], ctorParameters: function () { return []; }, propDecorators: { links: [{
25
29
  type: Input
26
30
  }], activeFragment: [{
@@ -39,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
39
43
  type: Input,
40
44
  args: ['show-icons']
41
45
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWxpbmtzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25hdi1saW5rcy1saXN0L25hdi1saW5rcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9uYXYtbGlua3MtbGlzdC9uYXYtbGlua3MtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQU96RCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDO1FBUkEsMkNBQTJDO1FBQ3RCLGlCQUFZLEdBQW9CLFVBQVUsQ0FBQztRQUNoRSwyQ0FBMkM7UUFDZix1QkFBa0IsR0FBc0IsaUJBQWlCLENBQUM7UUFDdEYsMkNBQTJDO1FBQ2pCLG1CQUFjLEdBQWtDLFNBQVMsQ0FBQztRQUNwRiwyQ0FBMkM7UUFDdEIsY0FBUyxHQUF3QixLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7a0hBaEJVLHFCQUFxQjtzR0FBckIscUJBQXFCLDJWQ1JsQywreENBK0JBOzJGRHZCYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0Usb0JBQW9COzBFQUtyQixLQUFLO3NCQUFiLEtBQUs7Z0JBRW9CLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFlBQVk7c0JBQWhDLEtBQUs7dUJBQUMsWUFBWTtnQkFFUyxrQkFBa0I7c0JBQTdDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUVBLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUVILFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5hdi1saW5rcy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1saW5rcy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZMaW5rc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGxpbmtzOiBPYnNlcnZhYmxlPE5hdkxpbmtbXT4gfCB1bmRlZmluZWQ7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdhY3RpdmUtZnJhZ21lbnQnKSBhY3RpdmVGcmFnbWVudDogT2JzZXJ2YWJsZTxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbGluay1jbGFzcycpIG5hdkxpbmtDbGFzczogc3RyaW5nIHwgc3RyaW5nID0gJ25hdi1saW5rJztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2xpbmstYWN0aXZlLWNsYXNzJykgbmF2TGlua0FjdGl2ZUNsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICduYXYtbGluay1hY3RpdmUnO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY29udGFpbmVyLWNsYXNzJykgY29udGFpbmVyQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc2hvdy1pY29ucycpIHNob3dJY29uczogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiIsIlxuPGRpdiBbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3MgPz8gJ25hdi1saW5rLWxpc3QtY29udGFpbmVyJ1wiPlxuICA8ZGl2IGNsYXNzPVwibmF2LWxpbmstbGlzdC1jb250YWluZXItaW5uZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsaW5rIG9mIGxpbmtzIHwgYXN5bmNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImxpbmsudHlwZVwiPlxuICAgICAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ3JvdXRlcidcIlxuICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbbGluay5wYXRoXVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwibmF2TGlua0FjdGl2ZUNsYXNzXCJcbiAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwieyBleGFjdDogbGluay5leGFjdCB9XCJcbiAgICAgICAgICBbY2xhc3NdPVwibmF2TGlua0NsYXNzXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJzaG93SWNvbnMgJiYgbGluay5pY29uXCIgW2NsYXNzXT1cImxpbmsuaWNvbiArICcgbXItMydcIj48L2k+e3sgbGluay50ZXh0IH19XG4gICAgICAgIDwvYT5cbiAgICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbCdcIlxuICAgICAgICAgIFtocmVmXT1cImxpbmsucGF0aFwiXG4gICAgICAgICAgW2F0dHIudGFyZ2V0XT1cImxpbmsuZXh0ZXJuYWwgPyAnX2JsYW5rJyA6ICdfc2VsZidcIlxuICAgICAgICAgIFtjbGFzc109XCJuYXZMaW5rQ2xhc3NcIj5cbiAgICAgICAgICA8aSAqbmdJZj1cInNob3dJY29ucyAmJiBsaW5rLmljb25cIiBbY2xhc3NdPVwibGluay5pY29uKyAnIG1yLTMnXCI+PC9pPnt7IGxpbmsudGV4dCB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxhICpuZ1N3aXRjaENhc2U9XCInZnJhZ21lbnQnXCJcbiAgICAgICAgICByb3V0ZXJMaW5rPVwiLlwiXG4gICAgICAgICAgW2ZyYWdtZW50XT1cImxpbmsucGF0aFwiXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCIoYWN0aXZlRnJhZ21lbnQgfCBhc3luYykgPT09IGxpbmsucGF0aFwiXG4gICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwibmF2TGlua0FjdGl2ZUNsYXNzXCJcbiAgICAgICAgICBbY2xhc3NdPVwibmF2TGlua0NsYXNzXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJzaG93SWNvbnMgJiYgbGluay5pY29uXCIgW2NsYXNzXT1cImxpbmsuaWNvbisgJyBtci0zJ1wiPjwvaT57eyBsaW5rLnRleHQgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWxpbmtzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25hdi1saW5rcy1saXN0L25hdi1saW5rcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9uYXYtbGlua3MtbGlzdC9uYXYtbGlua3MtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7QUFPcEUsTUFBTSxPQUFPLHFCQUFxQjtJQWVoQztRQVZBLDJDQUEyQztRQUN0QixpQkFBWSxHQUFvQixVQUFVLENBQUM7UUFDaEUsMkNBQTJDO1FBQ2YsdUJBQWtCLEdBQXNCLGlCQUFpQixDQUFDO1FBQ3RGLDJDQUEyQztRQUNqQixtQkFBYyxHQUFrQyxTQUFTLENBQUM7UUFDcEYsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBd0IsS0FBSyxDQUFDO0lBRzVDLENBQUM7SUFFakIsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUNuRyxDQUFDOztrSEF2QlUscUJBQXFCO3NHQUFyQixxQkFBcUIsMlZDUmxDLDZ1Q0E2QkE7MkZEckJhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxvQkFBb0I7MEVBS3JCLEtBQUs7c0JBQWIsS0FBSztnQkFFb0IsY0FBYztzQkFBdkMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBRUgsWUFBWTtzQkFBaEMsS0FBSzt1QkFBQyxZQUFZO2dCQUVTLGtCQUFrQjtzQkFBN0MsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBRUEsY0FBYztzQkFBdkMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBRUgsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2TGluayB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5hdi1saW5rcy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdi1saW5rcy1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZMaW5rc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgbGlua3M6IE9ic2VydmFibGU8TmF2TGlua1tdPiB8IHVuZGVmaW5lZDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2FjdGl2ZS1mcmFnbWVudCcpIGFjdGl2ZUZyYWdtZW50OiBPYnNlcnZhYmxlPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdsaW5rLWNsYXNzJykgbmF2TGlua0NsYXNzOiBzdHJpbmcgfCBzdHJpbmcgPSAnbmF2LWxpbmsnO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbGluay1hY3RpdmUtY2xhc3MnKSBuYXZMaW5rQWN0aXZlQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdID0gJ25hdi1saW5rLWFjdGl2ZSc7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjb250YWluZXItY2xhc3MnKSBjb250YWluZXJDbGFzczogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdzaG93LWljb25zJykgc2hvd0ljb25zOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gIHB1YmxpYyBmcmFnbWVudFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgZnJhZ21lbnRTdWIkOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG4gIFxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZyYWdtZW50U3ViJD8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5mcmFnbWVudFN1YiQgPSB0aGlzLmFjdGl2ZUZyYWdtZW50Py5zdWJzY3JpYmUoIGZyYWdtZW50ID0+IHRoaXMuZnJhZ21lbnRWYWx1ZSA9IGZyYWdtZW50KTtcbiAgfVxuXG59XG4iLCJcbjxkaXYgW2NsYXNzXT1cImNvbnRhaW5lckNsYXNzID8/ICduYXYtbGluay1saXN0LWNvbnRhaW5lcidcIj5cbiAgPGRpdiBjbGFzcz1cIm5hdi1saW5rLWxpc3QtY29udGFpbmVyLWlubmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rcyB8IGFzeW5jXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJsaW5rLnR5cGVcIj5cbiAgICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cIidyb3V0ZXInXCJcbiAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiW2xpbmsucGF0aF1cIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIm5hdkxpbmtBY3RpdmVDbGFzc1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6IGxpbmsuZXhhY3QgfVwiXG4gICAgICAgICAgW2NsYXNzXT1cIm5hdkxpbmtDbGFzc1wiPlxuICAgICAgICAgIDxpICpuZ0lmPVwic2hvd0ljb25zICYmIGxpbmsuaWNvblwiIFtjbGFzc109XCJsaW5rLmljb24gKyAnIG1yLTMnXCI+PC9pPnt7IGxpbmsudGV4dCB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIDxhICpuZ1N3aXRjaENhc2U9XCInZXh0ZXJuYWwnXCJcbiAgICAgICAgICBbaHJlZl09XCJsaW5rLnBhdGhcIlxuICAgICAgICAgIFthdHRyLnRhcmdldF09XCJsaW5rLmV4dGVybmFsID8gJ19ibGFuaycgOiAnX3NlbGYnXCJcbiAgICAgICAgICBbY2xhc3NdPVwibmF2TGlua0NsYXNzXCI+XG4gICAgICAgICAgPGkgKm5nSWY9XCJzaG93SWNvbnMgJiYgbGluay5pY29uXCIgW2NsYXNzXT1cImxpbmsuaWNvbisgJyBtci0zJ1wiPjwvaT57eyBsaW5rLnRleHQgfX1cbiAgICAgICAgPC9hPlxuICAgICAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ2ZyYWdtZW50J1wiXG4gICAgICAgICAgcm91dGVyTGluaz1cIi5cIlxuICAgICAgICAgIFtmcmFnbWVudF09XCJsaW5rLnBhdGhcIlxuICAgICAgICAgIFtjbGFzc109XCJmcmFnbWVudFZhbHVlID09PSBsaW5rLnBhdGggPyBuYXZMaW5rQ2xhc3MgKyAnICcgKyBuYXZMaW5rQWN0aXZlQ2xhc3MgOiBuYXZMaW5rQ2xhc3NcIj5cbiAgICAgICAgICA8aSAqbmdJZj1cInNob3dJY29ucyAmJiBsaW5rLmljb25cIiBbY2xhc3NdPVwibGluay5pY29uKyAnIG1yLTMnXCI+PC9pPnt7IGxpbmsudGV4dCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -20,20 +20,24 @@ export class NotificationsIndicatorComponent {
20
20
  }
21
21
  }
22
22
  ngOnInit() {
23
- this.links['notifications'].subscribe(notificationsLink => {
24
- this.allNotificationsLink = notificationsLink;
25
- });
26
- this.notificationsSub$ = this.notifications.messages.subscribe(result => {
27
- if (result.items) {
28
- this.newArrival = true;
29
- this.unreadCount = result.count;
30
- this.items = result.items;
31
- setTimeout(() => { this.newArrival = false; }, 1000);
32
- }
33
- });
23
+ if (this.links && this.links['notifications']) {
24
+ this.links['notifications'].subscribe(notificationsLink => {
25
+ this.allNotificationsLink = notificationsLink;
26
+ });
27
+ }
28
+ if (this.notifications) {
29
+ this.notificationsSub$ = this.notifications?.messages.subscribe(result => {
30
+ if (result.items) {
31
+ this.newArrival = true;
32
+ this.unreadCount = result.count;
33
+ this.items = result.items;
34
+ setTimeout(() => { this.newArrival = false; }, 1000);
35
+ }
36
+ });
37
+ }
34
38
  }
35
39
  doInboxAction() {
36
- if (this.notifications.inboxAction) {
40
+ if (this.notifications?.inboxAction) {
37
41
  this.notifications.inboxAction();
38
42
  }
39
43
  else {
@@ -70,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
70
74
  type: Inject,
71
75
  args: [APP_LINKS]
72
76
  }] }]; } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9ub3RpZmljYXRpb25zLWluZGljYXRvci9ub3RpZmljYXRpb25zLWluZGljYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLCtCQUErQjtJQVMxQyxZQUE4QyxhQUFnQyxFQUE0QixLQUFVO1FBQXRFLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUE0QixVQUFLLEdBQUwsS0FBSyxDQUFLO1FBUDdHLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFHakIsZ0JBQVcsR0FBb0IsU0FBUyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFDOEYsQ0FBQztJQUV6SCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBeUIsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNqRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RFLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQztnQkFDZixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzFCLFVBQVUsQ0FBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUUsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBWTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVDLDBFQUEwRTtJQUMxRSxpREFBaUQ7SUFDakQsK0JBQStCO0lBQy9CLHFDQUFxQztJQUNyQyxPQUFPO0lBRVAsc0VBQXNFO0lBQ3RFLGdHQUFnRztJQUNoRywyR0FBMkc7SUFDM0csc0NBQXNDO0lBRXhDLG1DQUFtQztJQUM1QixjQUFjLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzs0SEExRFUsK0JBQStCLGtCQVN0QixpQkFBaUIsYUFBbUQsU0FBUztnSEFUdEYsK0JBQStCLG1FQ1Q1QyxpcUhBOEVBOzJGRHJFYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsNkJBQTZCOzswQkFZMUIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUE0QyxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQXBwTm90aWZpY2F0aW9ucywgTmF2TGluayB9IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUFBfTElOS1MsIEFQUF9OT1RJRklDQVRJT05TIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5vdGlmaWNhdGlvbnMtaW5kaWNhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zSW5kaWNhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBtZW51RXhwYW5kZWQgPSBmYWxzZTtcbiAgcHVibGljIHVucmVhZENvdW50ID0gMDtcbiAgcHVibGljIGl0ZW1zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgYWxsTm90aWZpY2F0aW9uc0xpbms/OiBOYXZMaW5rO1xuICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTdWIkOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW5ib3hBY3Rpb246IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHVibGljIG5ld0Fycml2YWwgPSBmYWxzZTtcbiAgY29uc3RydWN0b3IoQEluamVjdChBUFBfTk9USUZJQ0FUSU9OUykgcHVibGljIG5vdGlmaWNhdGlvbnM6IElBcHBOb3RpZmljYXRpb25zLCBASW5qZWN0KEFQUF9MSU5LUykgcHVibGljIGxpbmtzOiBhbnkpIHsgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnNTdWIkKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTdWIkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgKHRoaXMubGlua3NbJ25vdGlmaWNhdGlvbnMnXSBhcyBPYnNlcnZhYmxlPE5hdkxpbms+KS5zdWJzY3JpYmUobm90aWZpY2F0aW9uc0xpbmsgPT4ge1xuICAgICAgdGhpcy5hbGxOb3RpZmljYXRpb25zTGluayA9IG5vdGlmaWNhdGlvbnNMaW5rO1xuICAgIH0pO1xuICAgIHRoaXMubm90aWZpY2F0aW9uc1N1YiQgPSB0aGlzLm5vdGlmaWNhdGlvbnMubWVzc2FnZXMuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0Lml0ZW1zKXtcbiAgICAgICAgdGhpcy5uZXdBcnJpdmFsID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51bnJlYWRDb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHJlc3VsdC5pdGVtcztcbiAgICAgICAgc2V0VGltZW91dCggKCkgPT4geyB0aGlzLm5ld0Fycml2YWwgPSBmYWxzZTsgfSwgMTAwMCApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRvSW5ib3hBY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWZpY2F0aW9ucy5pbmJveEFjdGlvbikge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zLmluYm94QWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVudUV4cGFuZGVkID0gIXRoaXMubWVudUV4cGFuZGVkO1xuICAgIH1cbiAgICB0aGlzLnVucmVhZENvdW50ID0gMDtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVJdGVtKGluZGV4Om51bWJlcil7XG4gICAgdGhpcy5pdGVtcy5zcGxpY2UoaW5kZXgsMSk7XG4gIH1cblxuICAgIC8vIHRoaXMubm90aWZpY2F0aW9uc1N1YiQgPSB0aGlzLmxpbmtzLm5vdGlmaWNhdGlvbnM/LnBpcGUobWFwKHJlc3VsdCA9PiB7XG4gICAgLy8gICB0aGlzLmFsbEl0ZW1zTGluayA9IHJlc3VsdC5hbGxOb3RpZmljYXRpb25zO1xuICAgIC8vICAgdGhpcy5pdGVtcyA9IHJlc3VsdC5pdGVtcztcbiAgICAvLyAgIHRoaXMudW5yZWFkQ291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgLy8gfSkpO1xuXG4gICAgLy8gW3RoaXMubm90aWZpY2F0aW9uc0xpbmtzUGF0aF0gYXMgT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25OYXZMaW5rW10+O1xuICAgIC8vIHRoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmsgPSB0aGlzLmxpbmtzW3RoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmtQYXRoXSBhcyBPYnNlcnZhYmxlPE5hdkxpbms+O1xuICAgIC8vIHRoaXMudW5yZWFkTm90aWZpY2F0aW9uc0NvdW50T2JzID0gdGhpcy5saW5rc1t0aGlzLm5vdGlmaWNhdGlvbnNDb3VudGVyTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgLy8gdGhpcy5nZXRVbnJlYWROb3RpZmljYXRpb25zQ291bnQoKTtcblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dHlwZWRlZlxuICBwdWJsaWMgb25DbGlja091dHNpZGUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm1lbnVFeHBhbmRlZCA9IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiXG4oY2xpY2tPdXRzaWRlKT1cIm9uQ2xpY2tPdXRzaWRlKCRldmVudClcIj5cbiAgPCEtLSBOb3RpZmljYXRpb25zIEJ1dHRvbiAtLT5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwiZG9JbmJveEFjdGlvbigpXCJcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+VmlldyBub3RpZmljYXRpb25zPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItdGV4dFwiPlxuICAgICAgICA8aSBjbGFzcz1cIm1zLUljb24gaG92ZXI6dGV4dC1ibHVlLTQwMFwiXG4gICAgICAgICAgW2NsYXNzLm1zLUljb24tLU1lc3NhZ2VGaWxsXT1cInVucmVhZENvdW50ID4gMFwiXG4gICAgICAgICAgW2NsYXNzLnRleHQtc2t5LTQwMF09XCJ1bnJlYWRDb3VudCA+IDBcIlxuICAgICAgICAgIFtjbGFzcy5hbmltYXRlLW5vdGlmaWNhdGlvbl09XCJuZXdBcnJpdmFsXCJcbiAgICAgICAgICBbY2xhc3MubXMtSWNvbi0tTWVzc2FnZV09XCJ1bnJlYWRDb3VudCA9PT0gMFwiPlxuICAgICAgICA8L2k+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cInVucmVhZENvdW50ID4gMFwiXG4gICAgICAgIFtjbGFzcy5hbmltYXRlLXB1bHNlXT1cIm5ld0Fycml2YWxcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIHRvcC0wIHJpZ2h0LTAgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIC1tdC0xIG1sLTEgdGV4dC14cyBsZWFkaW5nLW5vbmUgdGV4dC1ncmF5LTEwMCBvcmRpbmFsXCI+XG4gICAgICAgIHt7IHVucmVhZENvdW50IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIE5vdGlmaWNhdGlvbnMgZHJvcGRvd24gLS0+XG4gIDxkaXYgKm5nSWY9XCJtZW51RXhwYW5kZWRcIiBjbGFzcz1cImhlYWRlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duLXdpdGgtdXNlcm5hbWVcIiByb2xlPVwibWVudVwiIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiIGFyaWEtbGFiZWxsZWRieT1cIm1lc3NhZ2VzLW1lbnVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWF4LWgtNjQgb3ZlcmZsb3cteS1hdXRvIG5vdGlmaWNhdGlvbi1tZXNzYWdlcyBtaW4taFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtczsgZWxzZSBtZXNzYWdlc0Ryb3BEb3duXCIgY2xhc3M9XCJweS01XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLW5hdi1saW5rIGhvdmVyOmJnLXRyYW5zcGFyZW50XCI+zpTOtc69IM6tz4fOtc+EzrUgzr3Orc61z4IgzrXOuc60zr/PgM6/zrnOrs+DzrXOuc+CPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbWVzc2FnZXNEcm9wRG93bj5cbiAgICAgICAgPHVsIGNsYXNzPVwicHItMS41XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zOyBlbHNlIGxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtcy5sZW5ndGggPD0gMFwiIGNsYXNzPVwicHktNVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9ucy1uYXYtbGluayBob3ZlcjpiZy10cmFuc3BhcmVudFwiPs6UzrXOvSDOrc+HzrXPhM61IM69zq3Otc+CIM61zrnOtM6/z4DOv865zq7Pg861zrnPgjwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm1iLTJcIiBbbmdDbGFzc109XCJ7ICdib3JkZXItbC0yIGJvcmRlci1ibHVlLTUwMCBiZy1ibHVlLTUwIGhvdmVyOmJnLWJsdWUtNTAnOiAhbWVzc2FnZS5kYXRhLmlzUmVhZCB9XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibWVzc2FnZS5wYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmljYXRpb25zLW5hdi1saW5rIGdyaWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIiFtZXNzYWdlLmRhdGEuaXNSZWFkID8gJyBob3ZlcjpiZy1ibHVlLTUwJyA6ICdib3JkZXItYiBib3JkZXItZ3JheS0xMDAnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC10aGluIHRyYWNraW5nLXRpZ2h0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kYXRhLmNyZWF0aW9uRGF0ZSB8IGRhdGU6IFwiRUVFLCBkIE1NTU1cIiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGF0YS50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTMyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIHRleHQtcyB0ZXh0LWdyYXktNjAwXCI+TG9hZGluZy4uLjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInAtMSByb3VuZGVkLXNtXCI+XG4gICAgICA8YSBbcm91dGVyTGlua109XCJhbGxOb3RpZmljYXRpb25zTGluayEucGF0aFwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImhlYWRlci1ub3RpZmljYXRpb25zLWRyb3Bkb3duLXZpZXctYWxsLWJ1dHRvblwiPnt7YWxsTm90aWZpY2F0aW9uc0xpbmshLnRleHR9fTwvYnV0dG9uPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9ub3RpZmljYXRpb25zLWluZGljYXRvci9ub3RpZmljYXRpb25zLWluZGljYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLCtCQUErQjtJQVMxQyxZQUE4QyxhQUFpQyxFQUE0QixLQUFXO1FBQXhFLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUE0QixVQUFLLEdBQUwsS0FBSyxDQUFNO1FBUC9HLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFHakIsZ0JBQVcsR0FBb0IsU0FBUyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFDZ0csQ0FBQztJQUUzSCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBeUIsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDakYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFHLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdkUsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFDO29CQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO29CQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztvQkFDMUIsVUFBVSxDQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBRSxDQUFDO2lCQUN4RDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbEM7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUMsMEVBQTBFO0lBQzFFLGlEQUFpRDtJQUNqRCwrQkFBK0I7SUFDL0IscUNBQXFDO0lBQ3JDLE9BQU87SUFFUCxzRUFBc0U7SUFDdEUsZ0dBQWdHO0lBQ2hHLDJHQUEyRztJQUMzRyxzQ0FBc0M7SUFFeEMsbUNBQW1DO0lBQzVCLGNBQWMsQ0FBQyxNQUFXO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7OzRIQTlEVSwrQkFBK0Isa0JBU3RCLGlCQUFpQixhQUFvRCxTQUFTO2dIQVR2RiwrQkFBK0IsbUVDVDVDLGlxSEE4RUE7MkZEckVhLCtCQUErQjtrQkFKM0MsU0FBUzsrQkFDRSw2QkFBNkI7OzBCQVkxQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQTZDLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBOb3RpZmljYXRpb25zLCBOYXZMaW5rIH0gZnJvbSAnLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFQUF9MSU5LUywgQVBQX05PVElGSUNBVElPTlMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbm90aWZpY2F0aW9ucy1pbmRpY2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNJbmRpY2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIG1lbnVFeHBhbmRlZCA9IGZhbHNlO1xuICBwdWJsaWMgdW5yZWFkQ291bnQgPSAwO1xuICBwdWJsaWMgaXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBhbGxOb3RpZmljYXRpb25zTGluaz86IE5hdkxpbms7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uc1N1YiQ6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpbmJveEFjdGlvbjogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgbmV3QXJyaXZhbCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQUF9OT1RJRklDQVRJT05TKSBwdWJsaWMgbm90aWZpY2F0aW9ucz86IElBcHBOb3RpZmljYXRpb25zLCBASW5qZWN0KEFQUF9MSU5LUykgcHVibGljIGxpbmtzPzogYW55KSB7IH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub3RpZmljYXRpb25zU3ViJCkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU3ViJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKHRoaXMubGlua3MgJiYgdGhpcy5saW5rc1snbm90aWZpY2F0aW9ucyddKSB7XG4gICAgICAodGhpcy5saW5rc1snbm90aWZpY2F0aW9ucyddIGFzIE9ic2VydmFibGU8TmF2TGluaz4pLnN1YnNjcmliZShub3RpZmljYXRpb25zTGluayA9PiB7XG4gICAgICAgIHRoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmsgPSBub3RpZmljYXRpb25zTGluaztcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZih0aGlzLm5vdGlmaWNhdGlvbnMpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1N1YiQgPSB0aGlzLm5vdGlmaWNhdGlvbnM/Lm1lc3NhZ2VzLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0Lml0ZW1zKXtcbiAgICAgICAgICB0aGlzLm5ld0Fycml2YWwgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudW5yZWFkQ291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHJlc3VsdC5pdGVtcztcbiAgICAgICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7IHRoaXMubmV3QXJyaXZhbCA9IGZhbHNlOyB9LCAxMDAwICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkb0luYm94QWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnM/LmluYm94QWN0aW9uKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuaW5ib3hBY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZW51RXhwYW5kZWQgPSAhdGhpcy5tZW51RXhwYW5kZWQ7XG4gICAgfVxuICAgIHRoaXMudW5yZWFkQ291bnQgPSAwO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oaW5kZXg6bnVtYmVyKXtcbiAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwxKTtcbiAgfVxuXG4gICAgLy8gdGhpcy5ub3RpZmljYXRpb25zU3ViJCA9IHRoaXMubGlua3Mubm90aWZpY2F0aW9ucz8ucGlwZShtYXAocmVzdWx0ID0+IHtcbiAgICAvLyAgIHRoaXMuYWxsSXRlbXNMaW5rID0gcmVzdWx0LmFsbE5vdGlmaWNhdGlvbnM7XG4gICAgLy8gICB0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xuICAgIC8vICAgdGhpcy51bnJlYWRDb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAvLyB9KSk7XG5cbiAgICAvLyBbdGhpcy5ub3RpZmljYXRpb25zTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk5hdkxpbmtbXT47XG4gICAgLy8gdGhpcy5hbGxOb3RpZmljYXRpb25zTGluayA9IHRoaXMubGlua3NbdGhpcy5hbGxOb3RpZmljYXRpb25zTGlua1BhdGhdIGFzIE9ic2VydmFibGU8TmF2TGluaz47XG4gICAgLy8gdGhpcy51bnJlYWROb3RpZmljYXRpb25zQ291bnRPYnMgPSB0aGlzLmxpbmtzW3RoaXMubm90aWZpY2F0aW9uc0NvdW50ZXJMaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICAvLyB0aGlzLmdldFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCgpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXG4gIHB1YmxpYyBvbkNsaWNrT3V0c2lkZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWVudUV4cGFuZGVkID0gZmFsc2U7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCJcbihjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoJGV2ZW50KVwiPlxuICA8IS0tIE5vdGlmaWNhdGlvbnMgQnV0dG9uIC0tPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJkb0luYm94QWN0aW9uKClcIlxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+XG4gICAgICAgIDxpIGNsYXNzPVwibXMtSWNvbiBob3Zlcjp0ZXh0LWJsdWUtNDAwXCJcbiAgICAgICAgICBbY2xhc3MubXMtSWNvbi0tTWVzc2FnZUZpbGxdPVwidW5yZWFkQ291bnQgPiAwXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1za3ktNDAwXT1cInVucmVhZENvdW50ID4gMFwiXG4gICAgICAgICAgW2NsYXNzLmFuaW1hdGUtbm90aWZpY2F0aW9uXT1cIm5ld0Fycml2YWxcIlxuICAgICAgICAgIFtjbGFzcy5tcy1JY29uLS1NZXNzYWdlXT1cInVucmVhZENvdW50ID09PSAwXCI+XG4gICAgICAgIDwvaT5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwidW5yZWFkQ291bnQgPiAwXCJcbiAgICAgICAgW2NsYXNzLmFuaW1hdGUtcHVsc2VdPVwibmV3QXJyaXZhbFwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgLW10LTEgbWwtMSB0ZXh0LXhzIGxlYWRpbmctbm9uZSB0ZXh0LWdyYXktMTAwIG9yZGluYWxcIj5cbiAgICAgICAge3sgdW5yZWFkQ291bnQgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gTm90aWZpY2F0aW9ucyBkcm9wZG93biAtLT5cbiAgPGRpdiAqbmdJZj1cIm1lbnVFeHBhbmRlZFwiIGNsYXNzPVwiaGVhZGVyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24td2l0aC11c2VybmFtZVwiIHJvbGU9XCJtZW51XCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgYXJpYS1sYWJlbGxlZGJ5PVwibWVzc2FnZXMtbWVudVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8gbm90aWZpY2F0aW9uLW1lc3NhZ2VzIG1pbi1oXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1zOyBlbHNlIG1lc3NhZ2VzRHJvcERvd25cIiBjbGFzcz1cInB5LTVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbmF2LWxpbmsgaG92ZXI6YmctdHJhbnNwYXJlbnRcIj7OlM61zr0gzq3Ph861z4TOtSDOvc6tzrXPgiDOtc65zrTOv8+Azr/Ouc6uz4POtc65z4I8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNtZXNzYWdlc0Ryb3BEb3duPlxuICAgICAgICA8dWwgY2xhc3M9XCJwci0xLjVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXM7IGVsc2UgbG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zLmxlbmd0aCA8PSAwXCIgY2xhc3M9XCJweS01XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLW5hdi1saW5rIGhvdmVyOmJnLXRyYW5zcGFyZW50XCI+zpTOtc69IM6tz4fOtc+EzrUgzr3Orc61z4IgzrXOuc60zr/PgM6/zrnOrs+DzrXOuc+CPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWItMlwiIFtuZ0NsYXNzXT1cInsgJ2JvcmRlci1sLTIgYm9yZGVyLWJsdWUtNTAwIGJnLWJsdWUtNTAgaG92ZXI6YmctYmx1ZS01MCc6ICFtZXNzYWdlLmRhdGEuaXNSZWFkIH1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJtZXNzYWdlLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbmF2LWxpbmsgZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiIW1lc3NhZ2UuZGF0YS5pc1JlYWQgPyAnIGhvdmVyOmJnLWJsdWUtNTAnIDogJ2JvcmRlci1iIGJvcmRlci1ncmF5LTEwMCdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXRoaW4gdHJhY2tpbmctdGlnaHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmRhdGEuY3JlYXRpb25EYXRlIHwgZGF0ZTogXCJFRUUsIGQgTU1NTVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kYXRhLnRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMzIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGUtcHVsc2UgdGV4dC1zIHRleHQtZ3JheS02MDBcIj5Mb2FkaW5nLi4uPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicC0xIHJvdW5kZWQtc21cIj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImFsbE5vdGlmaWNhdGlvbnNMaW5rIS5wYXRoXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaGVhZGVyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24tdmlldy1hbGwtYnV0dG9uXCI+e3thbGxOb3RpZmljYXRpb25zTGluayEudGV4dH19PC9idXR0b24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -16,11 +16,11 @@ export class LibStepComponent {
16
16
  }
17
17
  /** Indicates the index of the step. */
18
18
  get index() {
19
- return this._stepper?.steps.toArray().indexOf(this);
19
+ return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;
20
20
  }
21
21
  /** Indicates whether this step is the last step. */
22
22
  get isLast() {
23
- return this._stepper?.steps.length - 1 === this.index;
23
+ return this._stepper ? this._stepper.steps.length - 1 === this.index : false;
24
24
  }
25
25
  /** Indicates whether you can navigate to the step or not. */
26
26
  get isValid() {
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
78
78
  }], stepControl: [{
79
79
  type: Input
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3N0ZXBwZXIvbGliLXN0ZXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckosT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVuRSxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLG9DQUF1QixDQUFBO0lBQ3ZCLGtDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUFBLENBQUM7QUFZRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQzZELFFBQWM7UUFBZCxhQUFRLEdBQVIsUUFBUSxDQUFNO0lBQ3ZFLENBQUM7SUFhTCx1Q0FBdUM7SUFDdkMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQVcsT0FBTztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsSUFBVyxLQUFLO1FBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzdCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUMzQjtRQUNELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7OzZHQTVDUSxnQkFBZ0Isa0JBRUQsbUJBQW1CO2lHQUZsQyxnQkFBZ0IsK0lBUVgscUJBQXFCLDJFQUVyQixvQkFBb0IseUZBSnZCLFdBQVcsOERBZFo7Ozs7S0FJVDsyRkFJUSxnQkFBZ0I7a0JBVjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQUdRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzRDQUlNLE9BQU87c0JBQXZELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFSSxTQUFTO3NCQUFwRCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFFUSxRQUFRO3NCQUFsRCxZQUFZO3VCQUFDLG9CQUFvQjtnQkFFbEIsS0FBSztzQkFBcEIsS0FBSztnQkFFVSxXQUFXO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTElCU1RFUFBFUl9BQ0NFU1NPUiB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB9IGZyb20gJy4vbGliLXN0ZXAtaW5mby5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGliU3RlcExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9saWItc3RlcC1sYWJlbC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgZW51bSBTdGVwU3RhdGUge1xuICAgIEFjdGl2ZSA9ICdBY3RpdmUnLFxuICAgIENvbXBsZXRlZCA9ICdDb21wbGV0ZWQnLFxuICAgIFVwY29taW5nID0gJ1VwY29taW5nJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItc3RlcCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaWJTdGVwQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMSUJTVEVQUEVSX0FDQ0VTU09SKSBwdWJsaWMgcmVhZG9ubHkgX3N0ZXBwZXI/OiBhbnlcbiAgICApIHsgfVxuXG4gICAgLyoqIFRoZSBjb250ZW50IHByb3ZpZGVkIGZvciB0aGUgc3RlcC4gKi9cbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIFRoZSBsYWJlbCBvZiB0aGUgc3RlcCBkaXNwbGF5ZWQgaW4gaGVhZGVyLCBpZiBhcHBsaWNhYmxlLiAqL1xuICAgIEBDb250ZW50Q2hpbGQoTGliU3RlcExhYmVsRGlyZWN0aXZlKSBwdWJsaWMgc3RlcExhYmVsOiBMaWJTdGVwTGFiZWxEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBpbmZvIG9mIHRoZSBzdGVwIGRpc3BsYXllZCBpbiBoZWFkZXIsIGlmIGFwcGxpY2FibGUuICovXG4gICAgQENvbnRlbnRDaGlsZChMaWJTdGVwSW5mb0RpcmVjdGl2ZSkgcHVibGljIHN0ZXBJbmZvOiBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogQW4gb3B0aW9uYWwgQ1NTIGNsYXNzIGZvciB0aGUgc3RlcCBoZWFkZXIuICovXG4gICAgQElucHV0KCkgcHVibGljIGNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhYnN0cmFjdCBjb250cm9sIG9mIHRoZSBzdGVwLiAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdGVwQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEluZGljYXRlcyB0aGUgaW5kZXggb2YgdGhlIHN0ZXAuICovXG4gICAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcHBlcj8uc3RlcHMudG9BcnJheSgpLmluZGV4T2YodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoaXMgc3RlcCBpcyB0aGUgbGFzdCBzdGVwLiAqL1xuICAgIHB1YmxpYyBnZXQgaXNMYXN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcHBlcj8uc3RlcHMubGVuZ3RoIC0gMSA9PT0gdGhpcy5pbmRleDtcbiAgICB9XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgeW91IGNhbiBuYXZpZ2F0ZSB0byB0aGUgc3RlcCBvciBub3QuICovXG4gICAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RlcENvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBDb250cm9sLnZhbGlkO1xuICAgIH1cblxuICAgIC8qKiBTaG93cyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc3RlcC4gKi9cbiAgICBwdWJsaWMgZ2V0IHN0YXRlKCk6IFN0ZXBTdGF0ZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3N0ZXBwZXI/LmN1cnJlbnRTdGVwSW5kZXg7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IHRoaXMuaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBTdGVwU3RhdGUuQWN0aXZlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPiB0aGlzLmluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkNvbXBsZXRlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RlcFN0YXRlLlVwY29taW5nO1xuICAgIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3N0ZXBwZXIvbGliLXN0ZXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckosT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVuRSxNQUFNLENBQU4sSUFBWSxTQUlYO0FBSkQsV0FBWSxTQUFTO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLG9DQUF1QixDQUFBO0lBQ3ZCLGtDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUFBLENBQUM7QUFZRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLFlBQzZELFFBQWM7UUFBZCxhQUFRLEdBQVIsUUFBUSxDQUFNO0lBQ3ZFLENBQUM7SUFhTCx1Q0FBdUM7SUFDdkMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQVcsT0FBTztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsSUFBVyxLQUFLO1FBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzdCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUMzQjtRQUNELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDM0IsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7OzZHQTVDUSxnQkFBZ0Isa0JBRUQsbUJBQW1CO2lHQUZsQyxnQkFBZ0IsK0lBUVgscUJBQXFCLDJFQUVyQixvQkFBb0IseUZBSnZCLFdBQVcsOERBZFo7Ozs7S0FJVDsyRkFJUSxnQkFBZ0I7a0JBVjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQUdRLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzRDQUlNLE9BQU87c0JBQXZELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFSSxTQUFTO3NCQUFwRCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFFUSxRQUFRO3NCQUFsRCxZQUFZO3VCQUFDLG9CQUFvQjtnQkFFbEIsS0FBSztzQkFBcEIsS0FBSztnQkFFVSxXQUFXO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTElCU1RFUFBFUl9BQ0NFU1NPUiB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XG5pbXBvcnQgeyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB9IGZyb20gJy4vbGliLXN0ZXAtaW5mby5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGliU3RlcExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9saWItc3RlcC1sYWJlbC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgZW51bSBTdGVwU3RhdGUge1xuICAgIEFjdGl2ZSA9ICdBY3RpdmUnLFxuICAgIENvbXBsZXRlZCA9ICdDb21wbGV0ZWQnLFxuICAgIFVwY29taW5nID0gJ1VwY29taW5nJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItc3RlcCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaWJTdGVwQ29tcG9uZW50IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMSUJTVEVQUEVSX0FDQ0VTU09SKSBwdWJsaWMgcmVhZG9ubHkgX3N0ZXBwZXI/OiBhbnlcbiAgICApIHsgfVxuXG4gICAgLyoqIFRoZSBjb250ZW50IHByb3ZpZGVkIGZvciB0aGUgc3RlcC4gKi9cbiAgICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgY29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIFRoZSBsYWJlbCBvZiB0aGUgc3RlcCBkaXNwbGF5ZWQgaW4gaGVhZGVyLCBpZiBhcHBsaWNhYmxlLiAqL1xuICAgIEBDb250ZW50Q2hpbGQoTGliU3RlcExhYmVsRGlyZWN0aXZlKSBwdWJsaWMgc3RlcExhYmVsOiBMaWJTdGVwTGFiZWxEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBpbmZvIG9mIHRoZSBzdGVwIGRpc3BsYXllZCBpbiBoZWFkZXIsIGlmIGFwcGxpY2FibGUuICovXG4gICAgQENvbnRlbnRDaGlsZChMaWJTdGVwSW5mb0RpcmVjdGl2ZSkgcHVibGljIHN0ZXBJbmZvOiBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogQW4gb3B0aW9uYWwgQ1NTIGNsYXNzIGZvciB0aGUgc3RlcCBoZWFkZXIuICovXG4gICAgQElucHV0KCkgcHVibGljIGNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhYnN0cmFjdCBjb250cm9sIG9mIHRoZSBzdGVwLiAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdGVwQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEluZGljYXRlcyB0aGUgaW5kZXggb2YgdGhlIHN0ZXAuICovXG4gICAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RlcHBlciA/IHRoaXMuX3N0ZXBwZXIuc3RlcHMudG9BcnJheSgpLmluZGV4T2YodGhpcykgOiAtMTtcbiAgICB9XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBzdGVwIGlzIHRoZSBsYXN0IHN0ZXAuICovXG4gICAgcHVibGljIGdldCBpc0xhc3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwcGVyID8gdGhpcy5fc3RlcHBlci5zdGVwcy5sZW5ndGggLSAxID09PSB0aGlzLmluZGV4IDogZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHlvdSBjYW4gbmF2aWdhdGUgdG8gdGhlIHN0ZXAgb3Igbm90LiAqL1xuICAgIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnN0ZXBDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdGVwQ29udHJvbC52YWxpZDtcbiAgICB9XG5cbiAgICAvKiogU2hvd3MgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0ZXAuICovXG4gICAgcHVibGljIGdldCBzdGF0ZSgpOiBTdGVwU3RhdGUge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLl9zdGVwcGVyPy5jdXJyZW50U3RlcEluZGV4O1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSB0aGlzLmluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkFjdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gdGhpcy5pbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5Db21wbGV0ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5VcGNvbWluZztcbiAgICB9XG59XG4iXX0=