@rivet-health/design-system 23.1.0 → 23.2.0

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.
@@ -48,10 +48,10 @@ export class MenuItemComponent {
48
48
  }
49
49
  }
50
50
  MenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuItemComponent, deps: [{ token: i1.MenuComponent }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
51
- MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MenuItemComponent, selector: "[riv-menu-item]", inputs: { locked: "locked", disabled: "disabled", variant: "variant" }, host: { listeners: { "click": "click($event)" }, properties: { "class": "this.classes" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n<riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n", styles: [":host{color:var(--type-light-high-contrast);padding:var(--size-small);font:var(--input-medium);white-space:nowrap;transition:background-color var(--short-transition);text-decoration:none;border-radius:var(--border-radius-medium);text-align:left}:host:hover{background-color:var(--surface-light-2);cursor:pointer}:host:active{background-color:var(--surface-light-3);cursor:pointer}:host:disabled,:host.disabled,:host.locked{cursor:default;color:var(--type-light-disabled)}:host:disabled:hover,:host.disabled:hover,:host.locked:hover{background-color:transparent}:host.danger{color:var(--danger-main)}:host.danger:hover{background-color:var(--surface-light-danger)}riv-icon{vertical-align:top}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
+ MenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MenuItemComponent, selector: "[riv-menu-item]", inputs: { locked: "locked", disabled: "disabled", variant: "variant" }, host: { listeners: { "click": "click($event)" }, properties: { "class": "this.classes" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\n<riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n", styles: [":host{color:var(--type-light-high-contrast);padding:var(--size-small);font:var(--input-medium);white-space:nowrap;transition:background-color var(--short-transition);text-decoration:none;border-radius:var(--border-radius-medium);text-align:left}:host:hover{background-color:var(--surface-light-2);cursor:pointer}:host:active{background-color:var(--surface-light-3);cursor:pointer}:host:disabled,:host.disabled,:host.locked{cursor:default;color:var(--type-light-disabled)}:host:disabled:hover,:host.disabled:hover,:host.locked:hover{background-color:transparent}:host.danger:not(:disabled){color:var(--danger-main)}:host.danger:hover:not(:disabled){background-color:var(--surface-light-danger)}riv-icon{vertical-align:top}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuItemComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: '[riv-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n", styles: [":host{color:var(--type-light-high-contrast);padding:var(--size-small);font:var(--input-medium);white-space:nowrap;transition:background-color var(--short-transition);text-decoration:none;border-radius:var(--border-radius-medium);text-align:left}:host:hover{background-color:var(--surface-light-2);cursor:pointer}:host:active{background-color:var(--surface-light-3);cursor:pointer}:host:disabled,:host.disabled,:host.locked{cursor:default;color:var(--type-light-disabled)}:host:disabled:hover,:host.disabled:hover,:host.locked:hover{background-color:transparent}:host.danger{color:var(--danger-main)}:host.danger:hover{background-color:var(--surface-light-danger)}riv-icon{vertical-align:top}\n"] }]
54
+ args: [{ selector: '[riv-menu-item]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n<riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n", styles: [":host{color:var(--type-light-high-contrast);padding:var(--size-small);font:var(--input-medium);white-space:nowrap;transition:background-color var(--short-transition);text-decoration:none;border-radius:var(--border-radius-medium);text-align:left}:host:hover{background-color:var(--surface-light-2);cursor:pointer}:host:active{background-color:var(--surface-light-3);cursor:pointer}:host:disabled,:host.disabled,:host.locked{cursor:default;color:var(--type-light-disabled)}:host:disabled:hover,:host.disabled:hover,:host.locked:hover{background-color:transparent}:host.danger:not(:disabled){color:var(--danger-main)}:host.danger:hover:not(:disabled){background-color:var(--surface-light-danger)}riv-icon{vertical-align:top}\n"] }]
55
55
  }], ctorParameters: function () { return [{ type: i1.MenuComponent }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { locked: [{
56
56
  type: Input
57
57
  }], disabled: [{
@@ -8,8 +8,9 @@ import * as i4 from "../../../icon/icon.component";
8
8
  import * as i5 from "../../../input/search/search.component";
9
9
  import * as i6 from "../../../modal/side-sheet/side-sheet.component";
10
10
  import * as i7 from "../../../content-toggle/toggle/toggle.component";
11
- import * as i8 from "../view-menu/view-menu.component";
12
- import * as i9 from "../../../visualization/zero-state/zero-state.component";
11
+ import * as i8 from "../../../format/truncate/truncate.component";
12
+ import * as i9 from "../view-menu/view-menu.component";
13
+ import * as i10 from "../../../visualization/zero-state/zero-state.component";
13
14
  export class AllViewsModalComponent {
14
15
  constructor() {
15
16
  this.topOffset = 0;
@@ -29,10 +30,10 @@ export class AllViewsModalComponent {
29
30
  }
30
31
  }
31
32
  AllViewsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AllViewsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- AllViewsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AllViewsModalComponent, selector: "riv-all-views-modal", inputs: { manager: "manager", topOffset: "topOffset" }, outputs: { close: "close" }, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <riv-side-sheet [topOffset]=\"topOffset\" (close)=\"close.emit()\">\n <div class=\"content\">\n <header>\n <span class=\"title\">All views</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n\n <riv-search\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setAllViewsSearchQuery',\n query: $event\n })\n \"\n [value]=\"s.all.search\"\n placeholder=\"Search\"\n ></riv-search>\n\n <div class=\"views\">\n <!-- View sections by permission type -->\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'private',\n open: s.all.privateOpen,\n openChange: getOpenChange('private'),\n views: s.all.privateViews,\n title: getPermissionTitle('private'),\n description: getPermissionDescription('private'),\n emptyStateMessage: s.all.privateEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'shared',\n open: s.all.sharedOpen,\n openChange: getOpenChange('shared'),\n views: s.all.sharedViews,\n title: getPermissionTitle('shared'),\n description: getPermissionDescription('shared'),\n emptyStateMessage: s.all.sharedEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'public',\n open: s.all.publicOpen,\n openChange: getOpenChange('public'),\n views: s.all.publicViews,\n title: getPermissionTitle('public'),\n description: getPermissionDescription('public'),\n emptyStateMessage: s.all.publicEmptyStateMessage\n }\"\n ></ng-container>\n\n <!-- Permission section -->\n <ng-template\n #permissionSection\n let-permission=\"permission\"\n let-open=\"open\"\n let-openChange=\"openChange\"\n let-views=\"views\"\n let-title=\"title\"\n let-description=\"description\"\n let-emptyStateMessage=\"emptyStateMessage\"\n >\n <riv-toggle\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [disabled]=\"!!s.all.search\"\n >\n <ng-template #trigger>\n <div>\n <h3 class=\"permission-title\">{{ title }}</h3>\n <span class=\"permission-description\">{{ description }}</span>\n </div>\n </ng-template>\n\n <div class=\"views-list\" *ngIf=\"views.length > 0; else noViews\">\n <button\n *ngFor=\"let view of views; trackBy: trackById\"\n class=\"view-item\"\n (click)=\"\n manager?.actions?.next({\n type: 'setActiveView',\n id: view.id\n });\n close.emit()\n \"\n >\n <riv-highlight\n [text]=\"view.title\"\n [indices]=\"view.titleHighlightIndices ?? []\"\n >\n </riv-highlight>\n <riv-view-menu\n [manager]=\"manager\"\n [view]=\"view\"\n ></riv-view-menu>\n <button\n class=\"enable-view\"\n [class.enabled]=\"view.enabled\"\n (click)=\"\n $event.stopPropagation();\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n >\n <riv-icon\n [name]=\"view.enabled ? 'Eye' : 'EyeOff'\"\n [size]=\"20\"\n ></riv-icon>\n </button>\n </button>\n </div>\n <ng-template #noViews>\n <riv-zero-state [message]=\"emptyStateMessage\"></riv-zero-state>\n </ng-template>\n </riv-toggle>\n </ng-template>\n </div>\n </div>\n </riv-side-sheet>\n</ng-container>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}header{display:flex;justify-content:space-between;align-items:center}.title{font:var(--title-02)}.views{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--size-xlarge)}.permission-title{font:var(--title-02)}.permission-description{font:var(--body-medium);color:var(--type-light-low-contrast)}.views-list{display:flex;flex-direction:column;gap:var(--size-small)}.view-item{display:flex;align-items:center;padding-left:var(--size-small);border-radius:var(--border-radius-small);cursor:pointer;background-color:var(--surface-light-0);transition:background-color var(--short-transition)}.view-item:hover{background-color:var(--surface-light-1)}.view-item:active{background-color:var(--surface-light-2)}.view-item riv-highlight{text-align:left;flex-grow:1}.view-item riv-view-menu{align-self:flex-end;opacity:0;transition:opacity var(--short-transition)}.view-item:hover riv-view-menu{opacity:1}.enable-view{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;padding:0 var(--size-xsmall);transition:color var(--medium-transition);color:var(--type-light-low-contrast)}.enable-view.enabled{color:var(--type-light-link)}.enable-view.enabled:hover{color:var(--type-light-link-hover)}.enable-view.enabled:active{color:var(--type-light-link-active)}\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: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i3.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i4.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i5.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name"] }, { kind: "component", type: i6.SideSheetComponent, selector: "riv-side-sheet", inputs: ["topOffset"], outputs: ["close"] }, { kind: "component", type: i7.ToggleComponent, selector: "riv-toggle", inputs: ["open", "disabled"], outputs: ["openChange"] }, { kind: "component", type: i8.ViewMenuComponent, selector: "riv-view-menu", inputs: ["manager", "view"] }, { kind: "component", type: i9.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ AllViewsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AllViewsModalComponent, selector: "riv-all-views-modal", inputs: { manager: "manager", topOffset: "topOffset" }, outputs: { close: "close" }, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <riv-side-sheet [topOffset]=\"topOffset\" (close)=\"close.emit()\">\n <div class=\"content\">\n <header>\n <span class=\"title\">All views</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n\n <riv-search\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setAllViewsSearchQuery',\n query: $event\n })\n \"\n [value]=\"s.all.search\"\n placeholder=\"Search\"\n ></riv-search>\n\n <div class=\"views\">\n <!-- View sections by permission type -->\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'private',\n open: s.all.privateOpen,\n openChange: getOpenChange('private'),\n views: s.all.privateViews,\n title: getPermissionTitle('private'),\n description: getPermissionDescription('private'),\n emptyStateMessage: s.all.privateEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'shared',\n open: s.all.sharedOpen,\n openChange: getOpenChange('shared'),\n views: s.all.sharedViews,\n title: getPermissionTitle('shared'),\n description: getPermissionDescription('shared'),\n emptyStateMessage: s.all.sharedEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'public',\n open: s.all.publicOpen,\n openChange: getOpenChange('public'),\n views: s.all.publicViews,\n title: getPermissionTitle('public'),\n description: getPermissionDescription('public'),\n emptyStateMessage: s.all.publicEmptyStateMessage\n }\"\n ></ng-container>\n\n <!-- Permission section -->\n <ng-template\n #permissionSection\n let-permission=\"permission\"\n let-open=\"open\"\n let-openChange=\"openChange\"\n let-views=\"views\"\n let-title=\"title\"\n let-description=\"description\"\n let-emptyStateMessage=\"emptyStateMessage\"\n >\n <riv-toggle\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [disabled]=\"!!s.all.search\"\n >\n <ng-template #trigger>\n <div>\n <h3 class=\"permission-title\">{{ title }}</h3>\n <span class=\"permission-description\">{{ description }}</span>\n </div>\n </ng-template>\n\n <div class=\"views-list\" *ngIf=\"views.length > 0; else noViews\">\n <button\n *ngFor=\"let view of views; trackBy: trackById\"\n class=\"view-item\"\n (click)=\"\n manager?.actions?.next({\n type: 'setActiveView',\n id: view.id\n });\n close.emit()\n \"\n >\n <div class=\"view-title\" rivTruncate>\n <riv-highlight\n [text]=\"view.title\"\n [indices]=\"view.titleHighlightIndices ?? []\"\n >\n </riv-highlight>\n </div>\n <riv-view-menu\n [manager]=\"manager\"\n [view]=\"view\"\n ></riv-view-menu>\n <button\n class=\"enable-view\"\n [class.enabled]=\"view.enabled\"\n (click)=\"\n $event.stopPropagation();\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n <riv-icon\n [name]=\"\n view.system ? 'Lock' : view.enabled ? 'Eye' : 'EyeOff'\n \"\n [size]=\"20\"\n ></riv-icon>\n </button>\n </button>\n </div>\n <ng-template #noViews>\n <riv-zero-state [message]=\"emptyStateMessage\"></riv-zero-state>\n </ng-template>\n </riv-toggle>\n </ng-template>\n </div>\n </div>\n </riv-side-sheet>\n</ng-container>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}header{display:flex;justify-content:space-between;align-items:center}.title{font:var(--title-02)}.views{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--size-xlarge)}.permission-title{font:var(--title-02)}.permission-description{font:var(--body-medium);color:var(--type-light-low-contrast)}.views-list{display:flex;flex-direction:column;gap:var(--size-small)}.view-item{display:flex;align-items:center;padding-left:var(--size-small);border-radius:var(--border-radius-small);cursor:pointer;background-color:var(--surface-light-0);transition:background-color var(--short-transition)}.view-item:hover{background-color:var(--surface-light-1)}.view-item:active{background-color:var(--surface-light-2)}.view-title{text-align:left;flex-grow:1}.view-item riv-view-menu{align-self:flex-end;opacity:0;transition:opacity var(--short-transition)}.view-item:hover riv-view-menu{opacity:1}.enable-view{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;padding:0 var(--size-xsmall);transition:color var(--medium-transition);color:var(--type-light-low-contrast)}.enable-view.enabled{color:var(--type-light-link)}.enable-view.enabled:hover{color:var(--type-light-link-hover)}.enable-view.enabled:active{color:var(--type-light-link-active)}\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: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i3.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i4.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i5.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name"] }, { kind: "component", type: i6.SideSheetComponent, selector: "riv-side-sheet", inputs: ["topOffset"], outputs: ["close"] }, { kind: "component", type: i7.ToggleComponent, selector: "riv-toggle", inputs: ["open", "disabled"], outputs: ["openChange"] }, { kind: "component", type: i8.TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }, { kind: "component", type: i9.ViewMenuComponent, selector: "riv-view-menu", inputs: ["manager", "view"] }, { kind: "component", type: i10.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AllViewsModalComponent, decorators: [{
34
35
  type: Component,
35
- args: [{ selector: 'riv-all-views-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <riv-side-sheet [topOffset]=\"topOffset\" (close)=\"close.emit()\">\n <div class=\"content\">\n <header>\n <span class=\"title\">All views</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n\n <riv-search\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setAllViewsSearchQuery',\n query: $event\n })\n \"\n [value]=\"s.all.search\"\n placeholder=\"Search\"\n ></riv-search>\n\n <div class=\"views\">\n <!-- View sections by permission type -->\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'private',\n open: s.all.privateOpen,\n openChange: getOpenChange('private'),\n views: s.all.privateViews,\n title: getPermissionTitle('private'),\n description: getPermissionDescription('private'),\n emptyStateMessage: s.all.privateEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'shared',\n open: s.all.sharedOpen,\n openChange: getOpenChange('shared'),\n views: s.all.sharedViews,\n title: getPermissionTitle('shared'),\n description: getPermissionDescription('shared'),\n emptyStateMessage: s.all.sharedEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'public',\n open: s.all.publicOpen,\n openChange: getOpenChange('public'),\n views: s.all.publicViews,\n title: getPermissionTitle('public'),\n description: getPermissionDescription('public'),\n emptyStateMessage: s.all.publicEmptyStateMessage\n }\"\n ></ng-container>\n\n <!-- Permission section -->\n <ng-template\n #permissionSection\n let-permission=\"permission\"\n let-open=\"open\"\n let-openChange=\"openChange\"\n let-views=\"views\"\n let-title=\"title\"\n let-description=\"description\"\n let-emptyStateMessage=\"emptyStateMessage\"\n >\n <riv-toggle\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [disabled]=\"!!s.all.search\"\n >\n <ng-template #trigger>\n <div>\n <h3 class=\"permission-title\">{{ title }}</h3>\n <span class=\"permission-description\">{{ description }}</span>\n </div>\n </ng-template>\n\n <div class=\"views-list\" *ngIf=\"views.length > 0; else noViews\">\n <button\n *ngFor=\"let view of views; trackBy: trackById\"\n class=\"view-item\"\n (click)=\"\n manager?.actions?.next({\n type: 'setActiveView',\n id: view.id\n });\n close.emit()\n \"\n >\n <riv-highlight\n [text]=\"view.title\"\n [indices]=\"view.titleHighlightIndices ?? []\"\n >\n </riv-highlight>\n <riv-view-menu\n [manager]=\"manager\"\n [view]=\"view\"\n ></riv-view-menu>\n <button\n class=\"enable-view\"\n [class.enabled]=\"view.enabled\"\n (click)=\"\n $event.stopPropagation();\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n >\n <riv-icon\n [name]=\"view.enabled ? 'Eye' : 'EyeOff'\"\n [size]=\"20\"\n ></riv-icon>\n </button>\n </button>\n </div>\n <ng-template #noViews>\n <riv-zero-state [message]=\"emptyStateMessage\"></riv-zero-state>\n </ng-template>\n </riv-toggle>\n </ng-template>\n </div>\n </div>\n </riv-side-sheet>\n</ng-container>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}header{display:flex;justify-content:space-between;align-items:center}.title{font:var(--title-02)}.views{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--size-xlarge)}.permission-title{font:var(--title-02)}.permission-description{font:var(--body-medium);color:var(--type-light-low-contrast)}.views-list{display:flex;flex-direction:column;gap:var(--size-small)}.view-item{display:flex;align-items:center;padding-left:var(--size-small);border-radius:var(--border-radius-small);cursor:pointer;background-color:var(--surface-light-0);transition:background-color var(--short-transition)}.view-item:hover{background-color:var(--surface-light-1)}.view-item:active{background-color:var(--surface-light-2)}.view-item riv-highlight{text-align:left;flex-grow:1}.view-item riv-view-menu{align-self:flex-end;opacity:0;transition:opacity var(--short-transition)}.view-item:hover riv-view-menu{opacity:1}.enable-view{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;padding:0 var(--size-xsmall);transition:color var(--medium-transition);color:var(--type-light-low-contrast)}.enable-view.enabled{color:var(--type-light-link)}.enable-view.enabled:hover{color:var(--type-light-link-hover)}.enable-view.enabled:active{color:var(--type-light-link-active)}\n"] }]
36
+ args: [{ selector: 'riv-all-views-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <riv-side-sheet [topOffset]=\"topOffset\" (close)=\"close.emit()\">\n <div class=\"content\">\n <header>\n <span class=\"title\">All views</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n\n <riv-search\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setAllViewsSearchQuery',\n query: $event\n })\n \"\n [value]=\"s.all.search\"\n placeholder=\"Search\"\n ></riv-search>\n\n <div class=\"views\">\n <!-- View sections by permission type -->\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'private',\n open: s.all.privateOpen,\n openChange: getOpenChange('private'),\n views: s.all.privateViews,\n title: getPermissionTitle('private'),\n description: getPermissionDescription('private'),\n emptyStateMessage: s.all.privateEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'shared',\n open: s.all.sharedOpen,\n openChange: getOpenChange('shared'),\n views: s.all.sharedViews,\n title: getPermissionTitle('shared'),\n description: getPermissionDescription('shared'),\n emptyStateMessage: s.all.sharedEmptyStateMessage\n }\"\n ></ng-container>\n <ng-container\n [ngTemplateOutlet]=\"permissionSection\"\n [ngTemplateOutletContext]=\"{\n permission: 'public',\n open: s.all.publicOpen,\n openChange: getOpenChange('public'),\n views: s.all.publicViews,\n title: getPermissionTitle('public'),\n description: getPermissionDescription('public'),\n emptyStateMessage: s.all.publicEmptyStateMessage\n }\"\n ></ng-container>\n\n <!-- Permission section -->\n <ng-template\n #permissionSection\n let-permission=\"permission\"\n let-open=\"open\"\n let-openChange=\"openChange\"\n let-views=\"views\"\n let-title=\"title\"\n let-description=\"description\"\n let-emptyStateMessage=\"emptyStateMessage\"\n >\n <riv-toggle\n [open]=\"open\"\n (openChange)=\"openChange($event)\"\n [disabled]=\"!!s.all.search\"\n >\n <ng-template #trigger>\n <div>\n <h3 class=\"permission-title\">{{ title }}</h3>\n <span class=\"permission-description\">{{ description }}</span>\n </div>\n </ng-template>\n\n <div class=\"views-list\" *ngIf=\"views.length > 0; else noViews\">\n <button\n *ngFor=\"let view of views; trackBy: trackById\"\n class=\"view-item\"\n (click)=\"\n manager?.actions?.next({\n type: 'setActiveView',\n id: view.id\n });\n close.emit()\n \"\n >\n <div class=\"view-title\" rivTruncate>\n <riv-highlight\n [text]=\"view.title\"\n [indices]=\"view.titleHighlightIndices ?? []\"\n >\n </riv-highlight>\n </div>\n <riv-view-menu\n [manager]=\"manager\"\n [view]=\"view\"\n ></riv-view-menu>\n <button\n class=\"enable-view\"\n [class.enabled]=\"view.enabled\"\n (click)=\"\n $event.stopPropagation();\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n <riv-icon\n [name]=\"\n view.system ? 'Lock' : view.enabled ? 'Eye' : 'EyeOff'\n \"\n [size]=\"20\"\n ></riv-icon>\n </button>\n </button>\n </div>\n <ng-template #noViews>\n <riv-zero-state [message]=\"emptyStateMessage\"></riv-zero-state>\n </ng-template>\n </riv-toggle>\n </ng-template>\n </div>\n </div>\n </riv-side-sheet>\n</ng-container>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}header{display:flex;justify-content:space-between;align-items:center}.title{font:var(--title-02)}.views{flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--size-xlarge)}.permission-title{font:var(--title-02)}.permission-description{font:var(--body-medium);color:var(--type-light-low-contrast)}.views-list{display:flex;flex-direction:column;gap:var(--size-small)}.view-item{display:flex;align-items:center;padding-left:var(--size-small);border-radius:var(--border-radius-small);cursor:pointer;background-color:var(--surface-light-0);transition:background-color var(--short-transition)}.view-item:hover{background-color:var(--surface-light-1)}.view-item:active{background-color:var(--surface-light-2)}.view-title{text-align:left;flex-grow:1}.view-item riv-view-menu{align-self:flex-end;opacity:0;transition:opacity var(--short-transition)}.view-item:hover riv-view-menu{opacity:1}.enable-view{cursor:pointer;display:inline-flex;justify-content:center;align-items:center;padding:0 var(--size-xsmall);transition:color var(--medium-transition);color:var(--type-light-low-contrast)}.enable-view.enabled{color:var(--type-light-link)}.enable-view.enabled:hover{color:var(--type-light-link-hover)}.enable-view.enabled:active{color:var(--type-light-link-active)}\n"] }]
36
37
  }], propDecorators: { manager: [{
37
38
  type: Input
38
39
  }], topOffset: [{
@@ -40,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
40
41
  }], close: [{
41
42
  type: Output
42
43
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLXZpZXdzLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3MvYWxsLXZpZXdzLW1vZGFsL2FsbC12aWV3cy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL2FsbC12aWV3cy1tb2RhbC9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7QUFRcEMsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQVdFLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFHdEIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFXM0IsdUJBQWtCLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1FBQ2pELDZCQUF3QixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQztLQUs5RDtJQWZDLGFBQWEsQ0FBQyxVQUFtQztRQUMvQyxPQUFPLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FDdkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDO1lBQzFCLElBQUksRUFBRSxtQkFBbUI7WUFDekIsVUFBVTtZQUNWLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBS0QsU0FBUyxDQUFDLENBQVMsRUFBRSxJQUEwQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7bUhBeEJVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGdKQ2ZuQywybUpBdUlBOzJGRHhIYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLE9BQU87c0JBRE4sS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlZpZXdzIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtYWxsLXZpZXdzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsbC12aWV3cy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsbC12aWV3cy1tb2RhbC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBbGxWaWV3c01vZGFsQ29tcG9uZW50PFYgZXh0ZW5kcyBSaXZWaWV3cy5WaWV3PiB7XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZWaWV3cy5NYW5hZ2VyPFY+O1xuXG4gIEBJbnB1dCgpXG4gIHRvcE9mZnNldDogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KClcbiAgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0T3BlbkNoYW5nZShwZXJtaXNzaW9uOiBSaXZWaWV3cy5WaWV3UGVybWlzc2lvbik6IChvcGVuOiBib29sZWFuKSA9PiB2b2lkIHtcbiAgICByZXR1cm4gKG9wZW46IGJvb2xlYW4pID0+XG4gICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICB0eXBlOiAnc2V0QWxsVmlld3NUb2dnbGUnLFxuICAgICAgICBwZXJtaXNzaW9uLFxuICAgICAgICBvcGVuLFxuICAgICAgfSk7XG4gIH1cblxuICBnZXRQZXJtaXNzaW9uVGl0bGUgPSBSaXZWaWV3cy5nZXRQZXJtaXNzaW9uVGl0bGU7XG4gIGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbiA9IFJpdlZpZXdzLmdldFBlcm1pc3Npb25EZXNjcmlwdGlvbjtcblxuICB0cmFja0J5SWQoXzogbnVtYmVyLCB2aWV3OiBSaXZWaWV3cy5GdWxsVmlldzxWPik6IFZbJ2lkJ10ge1xuICAgIHJldHVybiB2aWV3LmlkO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibWFuYWdlcj8uc3RhdGUgfCBhc3luYzsgbGV0IHNcIj5cbiAgPHJpdi1zaWRlLXNoZWV0IFt0b3BPZmZzZXRdPVwidG9wT2Zmc2V0XCIgKGNsb3NlKT1cImNsb3NlLmVtaXQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8aGVhZGVyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+QWxsIHZpZXdzPC9zcGFuPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ1gnXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UuZW1pdCgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxyaXYtc2VhcmNoXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJcbiAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRBbGxWaWV3c1NlYXJjaFF1ZXJ5JyxcbiAgICAgICAgICAgIHF1ZXJ5OiAkZXZlbnRcbiAgICAgICAgICB9KVxuICAgICAgICBcIlxuICAgICAgICBbdmFsdWVdPVwicy5hbGwuc2VhcmNoXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxuICAgICAgPjwvcml2LXNlYXJjaD5cblxuICAgICAgPGRpdiBjbGFzcz1cInZpZXdzXCI+XG4gICAgICAgIDwhLS0gVmlldyBzZWN0aW9ucyBieSBwZXJtaXNzaW9uIHR5cGUgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwZXJtaXNzaW9uU2VjdGlvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdwcml2YXRlJyxcbiAgICAgICAgICAgIG9wZW46IHMuYWxsLnByaXZhdGVPcGVuLFxuICAgICAgICAgICAgb3BlbkNoYW5nZTogZ2V0T3BlbkNoYW5nZSgncHJpdmF0ZScpLFxuICAgICAgICAgICAgdmlld3M6IHMuYWxsLnByaXZhdGVWaWV3cyxcbiAgICAgICAgICAgIHRpdGxlOiBnZXRQZXJtaXNzaW9uVGl0bGUoJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXRQZXJtaXNzaW9uRGVzY3JpcHRpb24oJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgIGVtcHR5U3RhdGVNZXNzYWdlOiBzLmFsbC5wcml2YXRlRW1wdHlTdGF0ZU1lc3NhZ2VcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicGVybWlzc2lvblNlY3Rpb25cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnc2hhcmVkJyxcbiAgICAgICAgICAgIG9wZW46IHMuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICBvcGVuQ2hhbmdlOiBnZXRPcGVuQ2hhbmdlKCdzaGFyZWQnKSxcbiAgICAgICAgICAgIHZpZXdzOiBzLmFsbC5zaGFyZWRWaWV3cyxcbiAgICAgICAgICAgIHRpdGxlOiBnZXRQZXJtaXNzaW9uVGl0bGUoJ3NoYXJlZCcpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbignc2hhcmVkJyksXG4gICAgICAgICAgICBlbXB0eVN0YXRlTWVzc2FnZTogcy5hbGwuc2hhcmVkRW1wdHlTdGF0ZU1lc3NhZ2VcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicGVybWlzc2lvblNlY3Rpb25cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAncHVibGljJyxcbiAgICAgICAgICAgIG9wZW46IHMuYWxsLnB1YmxpY09wZW4sXG4gICAgICAgICAgICBvcGVuQ2hhbmdlOiBnZXRPcGVuQ2hhbmdlKCdwdWJsaWMnKSxcbiAgICAgICAgICAgIHZpZXdzOiBzLmFsbC5wdWJsaWNWaWV3cyxcbiAgICAgICAgICAgIHRpdGxlOiBnZXRQZXJtaXNzaW9uVGl0bGUoJ3B1YmxpYycpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbigncHVibGljJyksXG4gICAgICAgICAgICBlbXB0eVN0YXRlTWVzc2FnZTogcy5hbGwucHVibGljRW1wdHlTdGF0ZU1lc3NhZ2VcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUGVybWlzc2lvbiBzZWN0aW9uIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAjcGVybWlzc2lvblNlY3Rpb25cbiAgICAgICAgICBsZXQtcGVybWlzc2lvbj1cInBlcm1pc3Npb25cIlxuICAgICAgICAgIGxldC1vcGVuPVwib3BlblwiXG4gICAgICAgICAgbGV0LW9wZW5DaGFuZ2U9XCJvcGVuQ2hhbmdlXCJcbiAgICAgICAgICBsZXQtdmlld3M9XCJ2aWV3c1wiXG4gICAgICAgICAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICAgICAgICAgIGxldC1kZXNjcmlwdGlvbj1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICBsZXQtZW1wdHlTdGF0ZU1lc3NhZ2U9XCJlbXB0eVN0YXRlTWVzc2FnZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cml2LXRvZ2dsZVxuICAgICAgICAgICAgW29wZW5dPVwib3BlblwiXG4gICAgICAgICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhcy5hbGwuc2VhcmNoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RyaWdnZXI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicGVybWlzc2lvbi10aXRsZVwiPnt7IHRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm1pc3Npb24tZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlld3MtbGlzdFwiICpuZ0lmPVwidmlld3MubGVuZ3RoID4gMDsgZWxzZSBub1ZpZXdzXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlldyBvZiB2aWV3czsgdHJhY2tCeTogdHJhY2tCeUlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctaXRlbVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRBY3RpdmVWaWV3JyxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHZpZXcuaWRcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgY2xvc2UuZW1pdCgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBbdGV4dF09XCJ2aWV3LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgIFtpbmRpY2VzXT1cInZpZXcudGl0bGVIaWdobGlnaHRJbmRpY2VzID8/IFtdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9yaXYtaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICAgIDxyaXYtdmlldy1tZW51XG4gICAgICAgICAgICAgICAgICBbbWFuYWdlcl09XCJtYW5hZ2VyXCJcbiAgICAgICAgICAgICAgICAgIFt2aWV3XT1cInZpZXdcIlxuICAgICAgICAgICAgICAgID48L3Jpdi12aWV3LW1lbnU+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbmFibGUtdmlld1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZW5hYmxlZF09XCJ2aWV3LmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRFbmFibGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICBpZDogdmlldy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiAhdmlldy5lbmFibGVkXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxyaXYtaWNvblxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJ2aWV3LmVuYWJsZWQgPyAnRXllJyA6ICdFeWVPZmYnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgPjwvcml2LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVmlld3M+XG4gICAgICAgICAgICAgIDxyaXYtemVyby1zdGF0ZSBbbWVzc2FnZV09XCJlbXB0eVN0YXRlTWVzc2FnZVwiPjwvcml2LXplcm8tc3RhdGU+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvcml2LXRvZ2dsZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3Jpdi1zaWRlLXNoZWV0PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLXZpZXdzLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3MvYWxsLXZpZXdzLW1vZGFsL2FsbC12aWV3cy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL2FsbC12aWV3cy1tb2RhbC9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXBDLE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFXRSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBR3RCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBVzNCLHVCQUFrQixHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRCw2QkFBd0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUM7S0FLOUQ7SUFmQyxhQUFhLENBQUMsVUFBbUM7UUFDL0MsT0FBTyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztZQUMxQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVU7WUFDVixJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUtELFNBQVMsQ0FBQyxDQUFTLEVBQUUsSUFBMEI7UUFDN0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O21IQXhCVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixnSkNmbkMsd3pKQTRJQTsyRkQ3SGEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXZWaWV3cyB9IGZyb20gJy4uL3N0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LWFsbC12aWV3cy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWxsVmlld3NNb2RhbENvbXBvbmVudDxWIGV4dGVuZHMgUml2Vmlld3MuVmlldz4ge1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2Vmlld3MuTWFuYWdlcjxWPjtcblxuICBASW5wdXQoKVxuICB0b3BPZmZzZXQ6IG51bWJlciA9IDA7XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldE9wZW5DaGFuZ2UocGVybWlzc2lvbjogUml2Vmlld3MuVmlld1Blcm1pc3Npb24pOiAob3BlbjogYm9vbGVhbikgPT4gdm9pZCB7XG4gICAgcmV0dXJuIChvcGVuOiBib29sZWFuKSA9PlxuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ3NldEFsbFZpZXdzVG9nZ2xlJyxcbiAgICAgICAgcGVybWlzc2lvbixcbiAgICAgICAgb3BlbixcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0UGVybWlzc2lvblRpdGxlID0gUml2Vmlld3MuZ2V0UGVybWlzc2lvblRpdGxlO1xuICBnZXRQZXJtaXNzaW9uRGVzY3JpcHRpb24gPSBSaXZWaWV3cy5nZXRQZXJtaXNzaW9uRGVzY3JpcHRpb247XG5cbiAgdHJhY2tCeUlkKF86IG51bWJlciwgdmlldzogUml2Vmlld3MuRnVsbFZpZXc8Vj4pOiBWWydpZCddIHtcbiAgICByZXR1cm4gdmlldy5pZDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hbmFnZXI/LnN0YXRlIHwgYXN5bmM7IGxldCBzXCI+XG4gIDxyaXYtc2lkZS1zaGVldCBbdG9wT2Zmc2V0XT1cInRvcE9mZnNldFwiIChjbG9zZSk9XCJjbG9zZS5lbWl0KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgPGhlYWRlcj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPkFsbCB2aWV3czwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgIFtpY29uXT1cIidYJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlLmVtaXQoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8cml2LXNlYXJjaFxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiXG4gICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICB0eXBlOiAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeScsXG4gICAgICAgICAgICBxdWVyeTogJGV2ZW50XG4gICAgICAgICAgfSlcbiAgICAgICAgXCJcbiAgICAgICAgW3ZhbHVlXT1cInMuYWxsLnNlYXJjaFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcbiAgICAgID48L3Jpdi1zZWFyY2g+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3c1wiPlxuICAgICAgICA8IS0tIFZpZXcgc2VjdGlvbnMgYnkgcGVybWlzc2lvbiB0eXBlIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicGVybWlzc2lvblNlY3Rpb25cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAncHJpdmF0ZScsXG4gICAgICAgICAgICBvcGVuOiBzLmFsbC5wcml2YXRlT3BlbixcbiAgICAgICAgICAgIG9wZW5DaGFuZ2U6IGdldE9wZW5DaGFuZ2UoJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgIHZpZXdzOiBzLmFsbC5wcml2YXRlVmlld3MsXG4gICAgICAgICAgICB0aXRsZTogZ2V0UGVybWlzc2lvblRpdGxlKCdwcml2YXRlJyksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogZ2V0UGVybWlzc2lvbkRlc2NyaXB0aW9uKCdwcml2YXRlJyksXG4gICAgICAgICAgICBlbXB0eVN0YXRlTWVzc2FnZTogcy5hbGwucHJpdmF0ZUVtcHR5U3RhdGVNZXNzYWdlXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBlcm1pc3Npb25TZWN0aW9uXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgcGVybWlzc2lvbjogJ3NoYXJlZCcsXG4gICAgICAgICAgICBvcGVuOiBzLmFsbC5zaGFyZWRPcGVuLFxuICAgICAgICAgICAgb3BlbkNoYW5nZTogZ2V0T3BlbkNoYW5nZSgnc2hhcmVkJyksXG4gICAgICAgICAgICB2aWV3czogcy5hbGwuc2hhcmVkVmlld3MsXG4gICAgICAgICAgICB0aXRsZTogZ2V0UGVybWlzc2lvblRpdGxlKCdzaGFyZWQnKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXRQZXJtaXNzaW9uRGVzY3JpcHRpb24oJ3NoYXJlZCcpLFxuICAgICAgICAgICAgZW1wdHlTdGF0ZU1lc3NhZ2U6IHMuYWxsLnNoYXJlZEVtcHR5U3RhdGVNZXNzYWdlXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInBlcm1pc3Npb25TZWN0aW9uXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgcGVybWlzc2lvbjogJ3B1YmxpYycsXG4gICAgICAgICAgICBvcGVuOiBzLmFsbC5wdWJsaWNPcGVuLFxuICAgICAgICAgICAgb3BlbkNoYW5nZTogZ2V0T3BlbkNoYW5nZSgncHVibGljJyksXG4gICAgICAgICAgICB2aWV3czogcy5hbGwucHVibGljVmlld3MsXG4gICAgICAgICAgICB0aXRsZTogZ2V0UGVybWlzc2lvblRpdGxlKCdwdWJsaWMnKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXRQZXJtaXNzaW9uRGVzY3JpcHRpb24oJ3B1YmxpYycpLFxuICAgICAgICAgICAgZW1wdHlTdGF0ZU1lc3NhZ2U6IHMuYWxsLnB1YmxpY0VtcHR5U3RhdGVNZXNzYWdlXG4gICAgICAgICAgfVwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFBlcm1pc3Npb24gc2VjdGlvbiAtLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgI3Blcm1pc3Npb25TZWN0aW9uXG4gICAgICAgICAgbGV0LXBlcm1pc3Npb249XCJwZXJtaXNzaW9uXCJcbiAgICAgICAgICBsZXQtb3Blbj1cIm9wZW5cIlxuICAgICAgICAgIGxldC1vcGVuQ2hhbmdlPVwib3BlbkNoYW5nZVwiXG4gICAgICAgICAgbGV0LXZpZXdzPVwidmlld3NcIlxuICAgICAgICAgIGxldC10aXRsZT1cInRpdGxlXCJcbiAgICAgICAgICBsZXQtZGVzY3JpcHRpb249XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgbGV0LWVtcHR5U3RhdGVNZXNzYWdlPVwiZW1wdHlTdGF0ZU1lc3NhZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPHJpdi10b2dnbGVcbiAgICAgICAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgKG9wZW5DaGFuZ2UpPVwib3BlbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIXMuYWxsLnNlYXJjaFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0cmlnZ2VyPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInBlcm1pc3Npb24tdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtaXNzaW9uLWRlc2NyaXB0aW9uXCI+e3sgZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXdzLWxpc3RcIiAqbmdJZj1cInZpZXdzLmxlbmd0aCA+IDA7IGVsc2Ugbm9WaWV3c1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZpZXcgb2Ygdmlld3M7IHRyYWNrQnk6IHRyYWNrQnlJZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2aWV3LWl0ZW1cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2V0QWN0aXZlVmlldycsXG4gICAgICAgICAgICAgICAgICAgIGlkOiB2aWV3LmlkXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIGNsb3NlLmVtaXQoKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy10aXRsZVwiIHJpdlRydW5jYXRlPlxuICAgICAgICAgICAgICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwidmlldy50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbmRpY2VzXT1cInZpZXcudGl0bGVIaWdobGlnaHRJbmRpY2VzID8/IFtdXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8cml2LXZpZXctbWVudVxuICAgICAgICAgICAgICAgICAgW21hbmFnZXJdPVwibWFuYWdlclwiXG4gICAgICAgICAgICAgICAgICBbdmlld109XCJ2aWV3XCJcbiAgICAgICAgICAgICAgICA+PC9yaXYtdmlldy1tZW51PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZW5hYmxlLXZpZXdcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmVuYWJsZWRdPVwidmlldy5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2V0RW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IHZpZXcuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogIXZpZXcuZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ2aWV3LnN5c3RlbVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHZpZXcuc3lzdGVtID8gJ0xvY2snIDogdmlldy5lbmFibGVkID8gJ0V5ZScgOiAnRXllT2ZmJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMFwiXG4gICAgICAgICAgICAgICAgICA+PC9yaXYtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9WaWV3cz5cbiAgICAgICAgICAgICAgPHJpdi16ZXJvLXN0YXRlIFttZXNzYWdlXT1cImVtcHR5U3RhdGVNZXNzYWdlXCI+PC9yaXYtemVyby1zdGF0ZT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9yaXYtdG9nZ2xlPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvcml2LXNpZGUtc2hlZXQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -32,6 +32,7 @@ export var RivViews;
32
32
  ...view,
33
33
  active: activeView ? activeView.id === view.id : i === 0,
34
34
  default: view.id === s.defaultViewId,
35
+ system: i === 0,
35
36
  }));
36
37
  const allEnabledViews = allViews.filter(view => view.enabled);
37
38
  const displayedViews = calculateDisplayedViews(allEnabledViews, calculateOverflowViewIndex(s), s.activeViewId);
@@ -98,7 +99,7 @@ export var RivViews;
98
99
  return displayedViews;
99
100
  }
100
101
  function viewsByPermission(views, permission) {
101
- return sortBy(views.filter(view => view.permission === permission), 'title');
102
+ return sortBy(views.filter(view => view.permission === permission), [v => !v.system, 'title']);
102
103
  }
103
104
  function searchViews(views, query, options) {
104
105
  const fuse = new Fuse(views, {
@@ -281,4 +282,4 @@ export var RivViews;
281
282
  }
282
283
  RivViews.getPermissionDescription = getPermissionDescription;
283
284
  })(RivViews || (RivViews = {}));
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBa0MsTUFBTSxTQUFTLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLFdBQVcsRUFFWCxJQUFJLEVBQ0osR0FBRyxFQUNILFNBQVMsRUFFVCxhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLE1BQU0sQ0FBQztBQUlkLE1BQU0sS0FBVyxRQUFRLENBbWZ4QjtBQW5mRCxXQUFpQixRQUFRO0lBQ1Ysd0JBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFVLENBQUM7SUE4RnhFLFNBQWdCLGFBQWEsQ0FDM0IsTUFBaUIsRUFDakIsU0FBdUIsRUFDdkIsUUFBcUIsRUFDckIsT0FBMkI7UUFFM0IsTUFBTSxZQUFZLEdBQWlCO1lBQ2pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsWUFBWSxFQUFFLElBQUk7WUFDbEIsYUFBYSxFQUFFLElBQUk7WUFDbkIsY0FBYyxFQUFFLENBQUM7WUFDakIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxLQUFLO2FBQ2xCO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVSxFQUFFLElBQUk7YUFDakI7U0FDRixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBaUIsWUFBWSxDQUN0RCxFQUFFLEVBQ0YsT0FBTyxFQUFFLFlBQVksRUFDckIsWUFBWSxDQUNiLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBdUIsSUFBSSxPQUFPLEVBQUUs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QUFTLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFUZSwyQkFBa0IscUJBU2pDLENBQUE7SUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxVQUEwQjtRQUNqRSxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxxQkFBcUIsQ0FBQztZQUMvQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxtQ0FBbUMsQ0FBQztZQUM3QyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxxQkFBcUIsQ0FBQztTQUNoQztJQUNILENBQUM7SUFUZSxpQ0FBd0IsMkJBU3ZDLENBQUE7QUFDSCxDQUFDLEVBbmZnQixRQUFRLEtBQVIsUUFBUSxRQW1meEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRnVzZSwgeyBGdXNlUmVzdWx0LCBJRnVzZU9wdGlvbnMgfSBmcm9tICdmdXNlLmpzJztcbmltcG9ydCB7IGRlZmF1bHRzRGVlcCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIGNvbm5lY3RhYmxlLFxuICBDb25uZWN0YWJsZSxcbiAgZnJvbSxcbiAgbWFwLFxuICBtZXJnZVNjYW4sXG4gIE9ic2VydmFibGUsXG4gIFJlcGxheVN1YmplY3QsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gJ3V0aWxpdHktdHlwZXMnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdmlzdWFsaXphdGlvbi9oaWdobGlnaHQvaGlnaGxpZ2h0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgUml2Vmlld3Mge1xuICBleHBvcnQgY29uc3QgVmlld1Blcm1pc3Npb25zID0gWydwcml2YXRlJywgJ3B1YmxpYycsICdzaGFyZWQnXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgVmlld1Blcm1pc3Npb24gPSAodHlwZW9mIFZpZXdQZXJtaXNzaW9ucylbbnVtYmVyXTtcblxuICBleHBvcnQgdHlwZSBWaWV3ID0ge1xuICAgIGlkOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uO1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIEZ1bGxWaWV3PFYgZXh0ZW5kcyBWaWV3ID0gVmlldz4gPSBWICYge1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBkZWZhdWx0OiBib29sZWFuO1xuICAgIHRpdGxlSGlnaGxpZ2h0SW5kaWNlcz86IEhpZ2hsaWdodENvbXBvbmVudC5IaWdobGlnaHRJbmRpY2VzW107XG4gIH07XG5cbiAgLy8vLy8vLy8vLy9cbiAgLy8gU3RhdGUgLy9cbiAgLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBDb3JlU3RhdGU8ViBleHRlbmRzIFZpZXc+ID0ge1xuICAgIHZpZXdzOiBWW107XG4gICAgYWN0aXZlVmlld0lkOiBWWydpZCddIHwgbnVsbDtcbiAgICBkZWZhdWx0Vmlld0lkOiBWWydpZCddIHwgbnVsbDtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIG92ZXJmbG93OiB7XG4gICAgICBzZWFyY2g6IHN0cmluZztcbiAgICAgIHBpY2tlck9wZW46IGJvb2xlYW47XG4gICAgfTtcbiAgICBhbGw6IHtcbiAgICAgIHNlYXJjaDogc3RyaW5nO1xuICAgICAgcHJpdmF0ZU9wZW46IGJvb2xlYW47XG4gICAgICBzaGFyZWRPcGVuOiBib29sZWFuO1xuICAgICAgcHVibGljT3BlbjogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIEZ1bGxTdGF0ZTxWIGV4dGVuZHMgVmlldz4gPSBDb3JlU3RhdGU8Vj4gJiB7XG4gICAgYWxsVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgZGlzcGxheWVkVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgZW5hYmxlZFZpZXdzOiBGdWxsVmlldzxWPltdO1xuICAgIGFsbDoge1xuICAgICAgcHJpdmF0ZVZpZXdzOiBGdWxsVmlldzxWPltdO1xuICAgICAgcHJpdmF0ZUVtcHR5U3RhdGVNZXNzYWdlOiBzdHJpbmc7XG4gICAgICBzaGFyZWRWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICAgIHNoYXJlZEVtcHR5U3RhdGVNZXNzYWdlOiBzdHJpbmc7XG4gICAgICBwdWJsaWNWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICAgIHB1YmxpY0VtcHR5U3RhdGVNZXNzYWdlOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcblxuICAvLy8vLy8vLy8vLy8vXG4gIC8vIEFjdGlvbnMgLy9cbiAgLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIEFjdGlvbjxWIGV4dGVuZHMgVmlldz4gPVxuICAgIHwgeyB0eXBlOiAnbG9hZCcgfVxuICAgIHwgeyB0eXBlOiAnc2V0QWN0aXZlVmlldyc7IGlkOiBWWydpZCddIH1cbiAgICB8IHsgdHlwZTogJ3NldERlZmF1bHRWaWV3JzsgaWQ6IFZbJ2lkJ10gfVxuICAgIHwgeyB0eXBlOiAnc2V0RW5hYmxlZCc7IGlkOiBWWydpZCddOyBlbmFibGVkOiBib29sZWFuIH1cbiAgICB8IHsgdHlwZTogJ3NldENvbnRhaW5lcldpZHRoJzsgd2lkdGg6IG51bWJlciB9XG4gICAgfCB7IHR5cGU6ICdzZXRPdmVyZmxvd1BpY2tlck9wZW4nOyBvcGVuOiBib29sZWFuIH1cbiAgICB8IHsgdHlwZTogJ3NldE92ZXJmbG93U2VhcmNoUXVlcnknOyBxdWVyeTogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogJ3NldEFsbFZpZXdzU2VhcmNoUXVlcnknOyBxdWVyeTogc3RyaW5nIH1cbiAgICB8IHsgdHlwZTogJ3VwZGF0ZVZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ2RlbGV0ZVZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ2R1cGxpY2F0ZVZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ2NvcHlMaW5rVG9WaWV3JzsgdmlldzogViB9XG4gICAgfCB7IHR5cGU6ICdzZXRBbGxWaWV3c1RvZ2dsZSc7IHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uOyBvcGVuOiBib29sZWFuIH07XG5cbiAgLy8vLy8vLy8vLy8vXG4gIC8vIFNvdXJjZSAvL1xuICAvLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBTb3VyY2U8ViBleHRlbmRzIFZpZXc+ID0gKCkgPT4gVltdIHwgUHJvbWlzZTxWW10+O1xuICBleHBvcnQgdHlwZSBEdXBsaWNhdGU8ViBleHRlbmRzIFZpZXc+ID0gKFxuICAgIHZpZXdUb0R1cGxpY2F0ZTogVixcbiAgKSA9PiBWIHwgUHJvbWlzZTxWPjtcbiAgZXhwb3J0IHR5cGUgQ29weUxpbms8ViBleHRlbmRzIFZpZXc+ID0gKHZpZXc6IFYpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gIC8vLy8vLy8vLy8vLy9cbiAgLy8gTWFuYWdlciAvL1xuICAvLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgTWFuYWdlcjxWIGV4dGVuZHMgVmlldz4gPSB7XG4gICAgYWN0aW9uczogU3ViamVjdDxBY3Rpb248Vj4+O1xuICAgIHN0YXRlOiBDb25uZWN0YWJsZTxGdWxsU3RhdGU8Vj4+O1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIE1hbmFnZXJPcHRpb25zPFYgZXh0ZW5kcyBWaWV3PiA9IHtcbiAgICBpbml0aWFsU3RhdGU/OiBEZWVwUGFydGlhbDxDb3JlU3RhdGU8Vj4+O1xuICAgIGZ1c2VPcHRpb25zPzogSUZ1c2VPcHRpb25zPFY+O1xuICB9O1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYW5hZ2VyPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzb3VyY2U6IFNvdXJjZTxWPixcbiAgICBkdXBsaWNhdGU6IER1cGxpY2F0ZTxWPixcbiAgICBjb3B5TGluazogQ29weUxpbms8Vj4sXG4gICAgb3B0aW9ucz86IE1hbmFnZXJPcHRpb25zPFY+LFxuICApOiBNYW5hZ2VyPFY+IHtcbiAgICBjb25zdCBkZWZhdWx0U3RhdGU6IENvcmVTdGF0ZTxWPiA9IHtcbiAgICAgIHZpZXdzOiBbXSxcbiAgICAgIGFjdGl2ZVZpZXdJZDogbnVsbCxcbiAgICAgIGRlZmF1bHRWaWV3SWQ6IG51bGwsXG4gICAgICBjb250YWluZXJXaWR0aDogMCxcbiAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgIHBpY2tlck9wZW46IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGFsbDoge1xuICAgICAgICBzZWFyY2g6ICcnLFxuICAgICAgICBwcml2YXRlT3BlbjogdHJ1ZSxcbiAgICAgICAgc2hhcmVkT3BlbjogdHJ1ZSxcbiAgICAgICAgcHVibGljT3BlbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRlZEluaXRpYWxTdGF0ZTogQ29yZVN0YXRlPFY+ID0gZGVmYXVsdHNEZWVwKFxuICAgICAge30sXG4gICAgICBvcHRpb25zPy5pbml0aWFsU3RhdGUsXG4gICAgICBkZWZhdWx0U3RhdGUsXG4gICAgKTtcblxuICAgIGNvbnN0IGFjdGlvbnM6IFN1YmplY3Q8QWN0aW9uPFY+PiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgY29uc3QgY29yZVN0YXRlOiBPYnNlcnZhYmxlPENvcmVTdGF0ZTxWPj4gPSBhY3Rpb25zLnBpcGUoXG4gICAgICBtZXJnZVNjYW4oXG4gICAgICAgIChzdGF0ZSwgYWN0aW9uKSA9PlxuICAgICAgICAgIGZyb20ocmVkdWNlKHN0YXRlLCBhY3Rpb24sIHNvdXJjZSwgZHVwbGljYXRlLCBjb3B5TGluaykpLFxuICAgICAgICBkZWZhdWx0ZWRJbml0aWFsU3RhdGUsXG4gICAgICAgIDEsXG4gICAgICApLFxuICAgICAgc3RhcnRXaXRoKGRlZmF1bHRlZEluaXRpYWxTdGF0ZSksXG4gICAgKTtcblxuICAgIGNvbnN0IHN0YXRlOiBDb25uZWN0YWJsZTxGdWxsU3RhdGU8Vj4+ID0gY29ubmVjdGFibGUoXG4gICAgICBjb3JlU3RhdGUucGlwZShcbiAgICAgICAgbWFwKHMgPT4ge1xuICAgICAgICAgIC8vIElmIGZvciBzb21lIHJlYXNvbiB0aGUgYWN0aXZlIHZpZXcgaXMgbm90IGN1cnJlbnRseSBlbmFibGVkLCB3ZSdsbFxuICAgICAgICAgIC8vIGRlZmF1bHQgdG8gbWFraW5nIHRoZSBmaXJzdCB2aWV3IGFjdGl2ZSBpbnN0ZWFkLlxuICAgICAgICAgIGNvbnN0IGFjdGl2ZVZpZXc6IFYgfCB1bmRlZmluZWQgPSBzLnZpZXdzLmZpbmQoXG4gICAgICAgICAgICB2aWV3ID0+IHZpZXcuZW5hYmxlZCAmJiB2aWV3LmlkID09PSBzLmFjdGl2ZVZpZXdJZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgYWxsVmlld3M6IEZ1bGxWaWV3PFY+W10gPSBzLnZpZXdzLm1hcCgodmlldywgaSkgPT4gKHtcbiAgICAgICAgICAgIC4uLnZpZXcsXG4gICAgICAgICAgICBhY3RpdmU6IGFjdGl2ZVZpZXcgPyBhY3RpdmVWaWV3LmlkID09PSB2aWV3LmlkIDogaSA9PT0gMCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZpZXcuaWQgPT09IHMuZGVmYXVsdFZpZXdJZCxcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBjb25zdCBhbGxFbmFibGVkVmlld3M6IEZ1bGxWaWV3PFY+W10gPSBhbGxWaWV3cy5maWx0ZXIoXG4gICAgICAgICAgICB2aWV3ID0+IHZpZXcuZW5hYmxlZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgZGlzcGxheWVkVmlld3MgPSBjYWxjdWxhdGVEaXNwbGF5ZWRWaWV3cyhcbiAgICAgICAgICAgIGFsbEVuYWJsZWRWaWV3cyxcbiAgICAgICAgICAgIGNhbGN1bGF0ZU92ZXJmbG93Vmlld0luZGV4KHMpLFxuICAgICAgICAgICAgcy5hY3RpdmVWaWV3SWQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IHMub3ZlcmZsb3cuc2VhcmNoXG4gICAgICAgICAgICA/IHNlYXJjaFZpZXdzKFxuICAgICAgICAgICAgICAgIGFsbEVuYWJsZWRWaWV3cyxcbiAgICAgICAgICAgICAgICBzLm92ZXJmbG93LnNlYXJjaCxcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5mdXNlT3B0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBhbGxFbmFibGVkVmlld3M7XG5cbiAgICAgICAgICBjb25zdCBhbGxWaWV3c0ZpbHRlcmVkID0gcy5hbGwuc2VhcmNoXG4gICAgICAgICAgICA/IHNlYXJjaFZpZXdzKGFsbFZpZXdzLCBzLmFsbC5zZWFyY2gsIG9wdGlvbnM/LmZ1c2VPcHRpb25zKVxuICAgICAgICAgICAgOiBhbGxWaWV3cztcblxuICAgICAgICAgIGNvbnN0IHNlYXJjaGluZ0FsbFZpZXdzID0gISFzLmFsbC5zZWFyY2g7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucyxcbiAgICAgICAgICAgIGFsbFZpZXdzLFxuICAgICAgICAgICAgZGlzcGxheWVkVmlld3MsXG4gICAgICAgICAgICBlbmFibGVkVmlld3MsXG4gICAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgICAgLi4ucy5hbGwsXG4gICAgICAgICAgICAgIHByaXZhdGVPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5wcml2YXRlT3BlbixcbiAgICAgICAgICAgICAgcHJpdmF0ZVZpZXdzOiB2aWV3c0J5UGVybWlzc2lvbihhbGxWaWV3c0ZpbHRlcmVkLCAncHJpdmF0ZScpLFxuICAgICAgICAgICAgICBwcml2YXRlRW1wdHlTdGF0ZU1lc3NhZ2U6IGdldEVtcHR5U3RhdGVNZXNzYWdlKHMsICdwcml2YXRlJyksXG4gICAgICAgICAgICAgIHNoYXJlZE9wZW46IHNlYXJjaGluZ0FsbFZpZXdzIHx8IHMuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICAgIHNoYXJlZFZpZXdzOiB2aWV3c0J5UGVybWlzc2lvbihhbGxWaWV3c0ZpbHRlcmVkLCAnc2hhcmVkJyksXG4gICAgICAgICAgICAgIHNoYXJlZEVtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAnc2hhcmVkJyksXG4gICAgICAgICAgICAgIHB1YmxpY09wZW46IHNlYXJjaGluZ0FsbFZpZXdzIHx8IHMuYWxsLnB1YmxpY09wZW4sXG4gICAgICAgICAgICAgIHB1YmxpY1ZpZXdzOiB2aWV3c0J5UGVybWlzc2lvbihhbGxWaWV3c0ZpbHRlcmVkLCAncHVibGljJyksXG4gICAgICAgICAgICAgIHB1YmxpY0VtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAncHVibGljJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdG9yOiAoKSA9PiBuZXcgUmVwbGF5U3ViamVjdCgxKSxcbiAgICAgICAgcmVzZXRPbkRpc2Nvbm5lY3Q6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuICAgIHN0YXRlLmNvbm5lY3QoKTtcblxuICAgIC8vIExvYWQgdGhlIHZpZXdzIGltbWVkaWF0ZWx5XG4gICAgYWN0aW9ucy5uZXh0KHsgdHlwZTogJ2xvYWQnIH0pO1xuXG4gICAgcmV0dXJuIHsgYWN0aW9ucywgc3RhdGUgfTtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gU3RhdGUgcmVkdWNlciAod2l0aCBoZWxwZXJzKSAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgZnVuY3Rpb24gY2FsY3VsYXRlT3ZlcmZsb3dWaWV3SW5kZXg8ViBleHRlbmRzIFZpZXc+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8Vj4sXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gc3RhdGUudmlld3MuZmlsdGVyKHZpZXcgPT4gdmlldy5lbmFibGVkKTtcblxuICAgIC8vIFRhYnMgaGF2ZSBhIG1pbmltdW0gd2lkdGggb2YgOTJweC5cbiAgICBjb25zdCBwb3NzaWJsZVNsb3RDb3VudCA9IE1hdGguZmxvb3Ioc3RhdGUuY29udGFpbmVyV2lkdGggLyA5Mik7XG5cbiAgICAvLyBUaGUgXCJhbGwgdmlld3NcIiBzaWRlYmFyIHRyaWdnZXIgdGFrZXMgdXAgb25lIHNsb3QuXG4gICAgY29uc3QgYXZhaWxhYmxlU2xvdENvdW50ID0gcG9zc2libGVTbG90Q291bnQgLSAxO1xuXG4gICAgLy8gSWYgdGhlcmUgYXJlIHRvbyBtYW55IHRhYnMsIHRoZSBcIk4gbW9yZVwiIHRyaWdnZXIgdGFrZXMgdXAgb25lIHNsb3QgYXMgd2VsbC5cbiAgICAvLyBCdXQgd2Ugd2FudCB0byBhdm9pZCB0aGUgXCIxIG1vcmVcIiBjYXNlLCBzbyB3ZSBvbmx5IHVzZSBhIHNsb3QgZm9yIFwiTiBtb3JlXCIgaWYgTiAhPSAxLlxuICAgIGlmIChhdmFpbGFibGVTbG90Q291bnQgPj0gZW5hYmxlZFZpZXdzLmxlbmd0aCkgcmV0dXJuIGVuYWJsZWRWaWV3cy5sZW5ndGg7XG4gICAgZWxzZSByZXR1cm4gYXZhaWxhYmxlU2xvdENvdW50IC0gMTsgLy8gdGhlIFwiTiBtb3JlXCIgdXNlcyB1cCBhIHNsb3QuXG4gIH1cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVEaXNwbGF5ZWRWaWV3czxWIGV4dGVuZHMgVmlldz4oXG4gICAgZnVsbFZpZXdzOiBGdWxsVmlldzxWPltdLFxuICAgIG92ZXJmbG93Vmlld0luZGV4OiBudW1iZXIsXG4gICAgYWN0aXZlVmlld0lkOiBDb3JlU3RhdGU8Vj5bJ2FjdGl2ZVZpZXdJZCddLFxuICApOiBGdWxsVmlldzxWPltdIHtcbiAgICBjb25zdCBkaXNwbGF5ZWRWaWV3cyA9IGZ1bGxWaWV3cy5zbGljZSgwLCBvdmVyZmxvd1ZpZXdJbmRleCk7XG5cbiAgICBjb25zdCBhY3RpdmVWaWV3SW5EaXNwbGF5ID0gZGlzcGxheWVkVmlld3Muc29tZShcbiAgICAgIHZpZXcgPT4gdmlldy5pZCA9PT0gYWN0aXZlVmlld0lkLFxuICAgICk7XG5cbiAgICBpZiAoIWFjdGl2ZVZpZXdJbkRpc3BsYXkgJiYgYWN0aXZlVmlld0lkICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBhY3RpdmVWaWV3ID0gZnVsbFZpZXdzLmZpbmQodmlldyA9PiB2aWV3LmlkID09PSBhY3RpdmVWaWV3SWQpO1xuICAgICAgaWYgKGFjdGl2ZVZpZXcgJiYgZGlzcGxheWVkVmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gWy4uLmRpc3BsYXllZFZpZXdzLnNsaWNlKDAsIC0xKSwgYWN0aXZlVmlld107XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpc3BsYXllZFZpZXdzO1xuICB9XG5cbiAgZnVuY3Rpb24gdmlld3NCeVBlcm1pc3Npb248ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBGdWxsVmlldzxWPltdLFxuICAgIHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uLFxuICApOiBGdWxsVmlldzxWPltdIHtcbiAgICByZXR1cm4gc29ydEJ5KFxuICAgICAgdmlld3MuZmlsdGVyKHZpZXcgPT4gdmlldy5wZXJtaXNzaW9uID09PSBwZXJtaXNzaW9uKSxcbiAgICAgICd0aXRsZScsXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlYXJjaFZpZXdzPFYgZXh0ZW5kcyBWaWV3PihcbiAgICB2aWV3czogRnVsbFZpZXc8Vj5bXSxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBJRnVzZU9wdGlvbnM8Vj4sXG4gICk6IEZ1bGxWaWV3PFY+W10ge1xuICAgIGNvbnN0IGZ1c2UgPSBuZXcgRnVzZSh2aWV3cywge1xuICAgICAgdGhyZXNob2xkOiAwLjIsXG4gICAgICBrZXlzOiBbJ3RpdGxlJ10sXG4gICAgICBpbmNsdWRlTWF0Y2hlczogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtYXRjaGVkT3B0aW9uczogRnVzZVJlc3VsdDxGdWxsVmlldzxWPj5bXSA9IGZ1c2Uuc2VhcmNoKHF1ZXJ5KTtcblxuICAgIHJldHVybiBtYXRjaGVkT3B0aW9ucy5tYXAocmVzdWx0ID0+ICh7XG4gICAgICAuLi5yZXN1bHQuaXRlbSxcbiAgICAgIHRpdGxlSGlnaGxpZ2h0SW5kaWNlczogW1xuICAgICAgICAuLi4ocmVzdWx0Lm1hdGNoZXM/LmZpbmQobWF0Y2ggPT4gbWF0Y2gua2V5ID09PSAndGl0bGUnKT8uaW5kaWNlcyA/P1xuICAgICAgICAgIFtdKSxcbiAgICAgIF0sXG4gICAgfSkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3PFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICApOiBWWydpZCddIHwgbnVsbCB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gc3RhdGUudmlld3MuZmlsdGVyKHZpZXcgPT4gdmlldy5lbmFibGVkKTtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlVmlld0luZGV4ID0gZW5hYmxlZFZpZXdzLmZpbmRJbmRleChcbiAgICAgIHZpZXcgPT4gdmlldy5pZCA9PT0gc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgICk7XG5cbiAgICBpZiAoY3VycmVudEFjdGl2ZVZpZXdJbmRleCA9PT0gLTEpIHJldHVybiBlbmFibGVkVmlld3NbMF0/LmlkID8/IG51bGw7XG4gICAgcmV0dXJuIChcbiAgICAgIGVuYWJsZWRWaWV3c1tjdXJyZW50QWN0aXZlVmlld0luZGV4ICsgMV0/LmlkID8/XG4gICAgICBlbmFibGVkVmlld3NbY3VycmVudEFjdGl2ZVZpZXdJbmRleCAtIDFdPy5pZCA/P1xuICAgICAgbnVsbFxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBkZWxldGVWaWV3PFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIGlkOiBWWydpZCddLFxuICApOiBDb3JlU3RhdGU8Vj4ge1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9XG4gICAgICBzdGF0ZS5hY3RpdmVWaWV3SWQgPT09IGlkXG4gICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZDtcbiAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3cyxcbiAgICAgIGFjdGl2ZVZpZXdJZCxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0RW5hYmxlZDxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgICBpZDogVlsnaWQnXSxcbiAgICBlbmFibGVkOiBib29sZWFuLFxuICApOiBDb3JlU3RhdGU8Vj4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHZpZXdzOiBzdGF0ZS52aWV3cy5tYXAodmlldyA9PlxuICAgICAgICB2aWV3LmlkID09PSBpZCA/IHsgLi4udmlldywgZW5hYmxlZCB9IDogdmlldyxcbiAgICAgICksXG4gICAgICBhY3RpdmVWaWV3SWQ6XG4gICAgICAgICFlbmFibGVkICYmIHN0YXRlLmFjdGl2ZVZpZXdJZCA9PT0gaWRcbiAgICAgICAgICA/IGdldE5leHRCZXN0QWN0aXZlVmlldyhzdGF0ZSlcbiAgICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gd2l0aER1cGxpY2F0ZVZpZXc8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBWW10sXG4gICAgdmlld1RvRHVwbGljYXRlOiBWLFxuICAgIGR1cGxpY2F0ZTogRHVwbGljYXRlPFY+LFxuICApOiBQcm9taXNlPFZbXT4ge1xuICAgIGNvbnN0IG5ld1ZpZXcgPSBhd2FpdCBkdXBsaWNhdGUodmlld1RvRHVwbGljYXRlKTtcbiAgICBjb25zdCBzb3VyY2VJbmRleCA9IHZpZXdzLmZpbmRJbmRleCh2aWV3ID0+IHZpZXcuaWQgPT09IHZpZXdUb0R1cGxpY2F0ZS5pZCk7XG4gICAgaWYgKHNvdXJjZUluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIFtuZXdWaWV3LCAuLi52aWV3c107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnZpZXdzLnNsaWNlKDAsIHNvdXJjZUluZGV4ICsgMSksXG4gICAgICAgIG5ld1ZpZXcsXG4gICAgICAgIC4uLnZpZXdzLnNsaWNlKHNvdXJjZUluZGV4ICsgMSksXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVtcHR5U3RhdGVNZXNzYWdlPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uLFxuICApOiBzdHJpbmcge1xuICAgIGlmIChzdGF0ZS5hbGwuc2VhcmNoKVxuICAgICAgcmV0dXJuIGBObyAke3Blcm1pc3Npb259IHZpZXdzIG1hdGNoaW5nIFwiJHtzdGF0ZS5hbGwuc2VhcmNofVwiYDtcbiAgICBlbHNlIHJldHVybiBgTm8gJHtwZXJtaXNzaW9ufSB2aWV3c2A7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiByZWR1Y2U8ViBleHRlbmRzIFZpZXc+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8Vj4sXG4gICAgYWN0aW9uOiBBY3Rpb248Vj4sXG4gICAgc291cmNlOiBTb3VyY2U8Vj4sXG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8Vj4sXG4gICAgY29weUxpbms6IENvcHlMaW5rPFY+LFxuICApOiBQcm9taXNlPENvcmVTdGF0ZTxWPj4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2xvYWQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHZpZXdzOiBhd2FpdCBzb3VyY2UoKSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0QWN0aXZlVmlldyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgYWN0aXZlVmlld0lkOiBhY3Rpb24uaWQsXG4gICAgICAgICAgdmlld3M6IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgICAgICB2aWV3LmlkID09PSBhY3Rpb24uaWQgPyB7IC4uLnZpZXcsIGVuYWJsZWQ6IHRydWUgfSA6IHZpZXcsXG4gICAgICAgICAgKSxcbiAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmFsbCxcbiAgICAgICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvdmVyZmxvdzoge1xuICAgICAgICAgICAgLi4uc3RhdGUub3ZlcmZsb3csXG4gICAgICAgICAgICBzZWFyY2g6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldERlZmF1bHRWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBkZWZhdWx0Vmlld0lkOiBhY3Rpb24uaWQsXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldEVuYWJsZWQnOlxuICAgICAgICByZXR1cm4gc2V0RW5hYmxlZChzdGF0ZSwgYWN0aW9uLmlkLCBhY3Rpb24uZW5hYmxlZCk7XG5cbiAgICAgIGNhc2UgJ3NldENvbnRhaW5lcldpZHRoJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBjb250YWluZXJXaWR0aDogYWN0aW9uLndpZHRoLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRPdmVyZmxvd1BpY2tlck9wZW4nOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5vdmVyZmxvdyxcbiAgICAgICAgICAgIHBpY2tlck9wZW46IGFjdGlvbi5vcGVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldE92ZXJmbG93U2VhcmNoUXVlcnknOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5vdmVyZmxvdyxcbiAgICAgICAgICAgIHNlYXJjaDogYWN0aW9uLnF1ZXJ5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldEFsbFZpZXdzU2VhcmNoUXVlcnknOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgc2VhcmNoOiBhY3Rpb24ucXVlcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAndXBkYXRlVmlldyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdmlld3M6IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgICAgICB2aWV3LmlkID09PSBhY3Rpb24udmlldy5pZCA/IGFjdGlvbi52aWV3IDogdmlldyxcbiAgICAgICAgICApLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdkZWxldGVWaWV3JzpcbiAgICAgICAgcmV0dXJuIGRlbGV0ZVZpZXcoc3RhdGUsIGFjdGlvbi52aWV3LmlkKTtcblxuICAgICAgY2FzZSAnZHVwbGljYXRlVmlldyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdmlld3M6IGF3YWl0IHdpdGhEdXBsaWNhdGVWaWV3KHN0YXRlLnZpZXdzLCBhY3Rpb24udmlldywgZHVwbGljYXRlKSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnY29weUxpbmtUb1ZpZXcnOlxuICAgICAgICBhd2FpdCBjb3B5TGluayhhY3Rpb24udmlldyk7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcblxuICAgICAgY2FzZSAnc2V0QWxsVmlld3NUb2dnbGUnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgcHJpdmF0ZU9wZW46XG4gICAgICAgICAgICAgIGFjdGlvbi5wZXJtaXNzaW9uID09PSAncHJpdmF0ZSdcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwucHJpdmF0ZU9wZW4sXG4gICAgICAgICAgICBzaGFyZWRPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3NoYXJlZCdcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwuc2hhcmVkT3BlbixcbiAgICAgICAgICAgIHB1YmxpY09wZW46XG4gICAgICAgICAgICAgIGFjdGlvbi5wZXJtaXNzaW9uID09PSAncHVibGljJ1xuICAgICAgICAgICAgICAgID8gYWN0aW9uLm9wZW5cbiAgICAgICAgICAgICAgICA6IHN0YXRlLmFsbC5wdWJsaWNPcGVuLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFV0aWxpdGllcyAvL1xuICAvLy8vLy8vLy8vLy8vLy9cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UGVybWlzc2lvblRpdGxlKHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHBlcm1pc3Npb24pIHtcbiAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICByZXR1cm4gJ1ByaXZhdGUnO1xuICAgICAgY2FzZSAnc2hhcmVkJzpcbiAgICAgICAgcmV0dXJuICdTaGFyZWQnO1xuICAgICAgY2FzZSAncHVibGljJzpcbiAgICAgICAgcmV0dXJuICdQdWJsaWMnO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQZXJtaXNzaW9uRGVzY3JpcHRpb24ocGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocGVybWlzc2lvbikge1xuICAgICAgY2FzZSAncHJpdmF0ZSc6XG4gICAgICAgIHJldHVybiAnT25seSB2aXNpYmxlIHRvIHlvdSc7XG4gICAgICBjYXNlICdzaGFyZWQnOlxuICAgICAgICByZXR1cm4gJ09ubHkgdmlzaWJsZSB0byB0aG9zZSB3aXRoIGFjY2Vzcyc7XG4gICAgICBjYXNlICdwdWJsaWMnOlxuICAgICAgICByZXR1cm4gJ1Zpc2libGUgdG8gZXZlcnlvbmUnO1xuICAgIH1cbiAgfVxufVxuIl19
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBa0MsTUFBTSxTQUFTLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLFdBQVcsRUFFWCxJQUFJLEVBQ0osR0FBRyxFQUNILFNBQVMsRUFFVCxhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLE1BQU0sQ0FBQztBQUlkLE1BQU0sS0FBVyxRQUFRLENBcWZ4QjtBQXJmRCxXQUFpQixRQUFRO0lBQ1Ysd0JBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFVLENBQUM7SUErRnhFLFNBQWdCLGFBQWEsQ0FDM0IsTUFBaUIsRUFDakIsU0FBdUIsRUFDdkIsUUFBcUIsRUFDckIsT0FBMkI7UUFFM0IsTUFBTSxZQUFZLEdBQWlCO1lBQ2pDLEtBQUssRUFBRSxFQUFFO1lBQ1QsWUFBWSxFQUFFLElBQUk7WUFDbEIsYUFBYSxFQUFFLElBQUk7WUFDbkIsY0FBYyxFQUFFLENBQUM7WUFDakIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxLQUFLO2FBQ2xCO1lBQ0QsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsVUFBVSxFQUFFLElBQUk7YUFDakI7U0FDRixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBaUIsWUFBWSxDQUN0RCxFQUFFLEVBQ0YsT0FBTyxFQUFFLFlBQVksRUFDckIsWUFBWSxDQUNiLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBdUIsSUFBSSxPQUFPLEVBQUUs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SUFDZixlQUFlO0lBRWYsU0FBZ0Isa0JBQWtCLENBQUMsVUFBMEI7UUFDM0QsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztZQUNsQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBVGUsMkJBQWtCLHFCQVNqQyxDQUFBO0lBRUQsU0FBZ0Isd0JBQXdCLENBQUMsVUFBMEI7UUFDakUsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8scUJBQXFCLENBQUM7WUFDL0IsS0FBSyxRQUFRO2dCQUNYLE9BQU8sbUNBQW1DLENBQUM7WUFDN0MsS0FBSyxRQUFRO2dCQUNYLE9BQU8scUJBQXFCLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBVGUsaUNBQXdCLDJCQVN2QyxDQUFBO0FBQ0gsQ0FBQyxFQXJmZ0IsUUFBUSxLQUFSLFFBQVEsUUFxZnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZ1c2UsIHsgRnVzZVJlc3VsdCwgSUZ1c2VPcHRpb25zIH0gZnJvbSAnZnVzZS5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0c0RlZXAsIHNvcnRCeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBjb25uZWN0YWJsZSxcbiAgQ29ubmVjdGFibGUsXG4gIGZyb20sXG4gIG1hcCxcbiAgbWVyZ2VTY2FuLFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICd1dGlsaXR5LXR5cGVzJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFJpdlZpZXdzIHtcbiAgZXhwb3J0IGNvbnN0IFZpZXdQZXJtaXNzaW9ucyA9IFsncHJpdmF0ZScsICdwdWJsaWMnLCAnc2hhcmVkJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFZpZXdQZXJtaXNzaW9uID0gKHR5cGVvZiBWaWV3UGVybWlzc2lvbnMpW251bWJlcl07XG5cbiAgZXhwb3J0IHR5cGUgVmlldyA9IHtcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbjtcbiAgfTtcblxuICBleHBvcnQgdHlwZSBGdWxsVmlldzxWIGV4dGVuZHMgVmlldyA9IFZpZXc+ID0gViAmIHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgZGVmYXVsdDogYm9vbGVhbjtcbiAgICBzeXN0ZW06IGJvb2xlYW47XG4gICAgdGl0bGVIaWdobGlnaHRJbmRpY2VzPzogSGlnaGxpZ2h0Q29tcG9uZW50LkhpZ2hsaWdodEluZGljZXNbXTtcbiAgfTtcblxuICAvLy8vLy8vLy8vL1xuICAvLyBTdGF0ZSAvL1xuICAvLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIENvcmVTdGF0ZTxWIGV4dGVuZHMgVmlldz4gPSB7XG4gICAgdmlld3M6IFZbXTtcbiAgICBhY3RpdmVWaWV3SWQ6IFZbJ2lkJ10gfCBudWxsO1xuICAgIGRlZmF1bHRWaWV3SWQ6IFZbJ2lkJ10gfCBudWxsO1xuICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gICAgb3ZlcmZsb3c6IHtcbiAgICAgIHNlYXJjaDogc3RyaW5nO1xuICAgICAgcGlja2VyT3BlbjogYm9vbGVhbjtcbiAgICB9O1xuICAgIGFsbDoge1xuICAgICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgICBwcml2YXRlT3BlbjogYm9vbGVhbjtcbiAgICAgIHNoYXJlZE9wZW46IGJvb2xlYW47XG4gICAgICBwdWJsaWNPcGVuOiBib29sZWFuO1xuICAgIH07XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRnVsbFN0YXRlPFYgZXh0ZW5kcyBWaWV3PiA9IENvcmVTdGF0ZTxWPiAmIHtcbiAgICBhbGxWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICBkaXNwbGF5ZWRWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICBlbmFibGVkVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgYWxsOiB7XG4gICAgICBwcml2YXRlVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgICBwcml2YXRlRW1wdHlTdGF0ZU1lc3NhZ2U6IHN0cmluZztcbiAgICAgIHNoYXJlZFZpZXdzOiBGdWxsVmlldzxWPltdO1xuICAgICAgc2hhcmVkRW1wdHlTdGF0ZU1lc3NhZ2U6IHN0cmluZztcbiAgICAgIHB1YmxpY1ZpZXdzOiBGdWxsVmlldzxWPltdO1xuICAgICAgcHVibGljRW1wdHlTdGF0ZU1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy9cbiAgLy8gQWN0aW9ucyAvL1xuICAvLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgQWN0aW9uPFYgZXh0ZW5kcyBWaWV3PiA9XG4gICAgfCB7IHR5cGU6ICdsb2FkJyB9XG4gICAgfCB7IHR5cGU6ICdzZXRBY3RpdmVWaWV3JzsgaWQ6IFZbJ2lkJ10gfVxuICAgIHwgeyB0eXBlOiAnc2V0RGVmYXVsdFZpZXcnOyBpZDogVlsnaWQnXSB9XG4gICAgfCB7IHR5cGU6ICdzZXRFbmFibGVkJzsgaWQ6IFZbJ2lkJ107IGVuYWJsZWQ6IGJvb2xlYW4gfVxuICAgIHwgeyB0eXBlOiAnc2V0Q29udGFpbmVyV2lkdGgnOyB3aWR0aDogbnVtYmVyIH1cbiAgICB8IHsgdHlwZTogJ3NldE92ZXJmbG93UGlja2VyT3Blbic7IG9wZW46IGJvb2xlYW4gfVxuICAgIHwgeyB0eXBlOiAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc7IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc7IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiAndXBkYXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnZGVsZXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnZHVwbGljYXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnY29weUxpbmtUb1ZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHsgdHlwZTogJ3NldEFsbFZpZXdzVG9nZ2xlJzsgcGVybWlzc2lvbjogVmlld1Blcm1pc3Npb247IG9wZW46IGJvb2xlYW4gfTtcblxuICAvLy8vLy8vLy8vLy9cbiAgLy8gU291cmNlIC8vXG4gIC8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIFNvdXJjZTxWIGV4dGVuZHMgVmlldz4gPSAoKSA9PiBWW10gfCBQcm9taXNlPFZbXT47XG4gIGV4cG9ydCB0eXBlIER1cGxpY2F0ZTxWIGV4dGVuZHMgVmlldz4gPSAoXG4gICAgdmlld1RvRHVwbGljYXRlOiBWLFxuICApID0+IFYgfCBQcm9taXNlPFY+O1xuICBleHBvcnQgdHlwZSBDb3B5TGluazxWIGV4dGVuZHMgVmlldz4gPSAodmlldzogVikgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbiAgLy8vLy8vLy8vLy8vL1xuICAvLyBNYW5hZ2VyIC8vXG4gIC8vLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBNYW5hZ2VyPFYgZXh0ZW5kcyBWaWV3PiA9IHtcbiAgICBhY3Rpb25zOiBTdWJqZWN0PEFjdGlvbjxWPj47XG4gICAgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxWPj47XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgTWFuYWdlck9wdGlvbnM8ViBleHRlbmRzIFZpZXc+ID0ge1xuICAgIGluaXRpYWxTdGF0ZT86IERlZXBQYXJ0aWFsPENvcmVTdGF0ZTxWPj47XG4gICAgZnVzZU9wdGlvbnM/OiBJRnVzZU9wdGlvbnM8Vj47XG4gIH07XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1hbmFnZXI8ViBleHRlbmRzIFZpZXc+KFxuICAgIHNvdXJjZTogU291cmNlPFY+LFxuICAgIGR1cGxpY2F0ZTogRHVwbGljYXRlPFY+LFxuICAgIGNvcHlMaW5rOiBDb3B5TGluazxWPixcbiAgICBvcHRpb25zPzogTWFuYWdlck9wdGlvbnM8Vj4sXG4gICk6IE1hbmFnZXI8Vj4ge1xuICAgIGNvbnN0IGRlZmF1bHRTdGF0ZTogQ29yZVN0YXRlPFY+ID0ge1xuICAgICAgdmlld3M6IFtdLFxuICAgICAgYWN0aXZlVmlld0lkOiBudWxsLFxuICAgICAgZGVmYXVsdFZpZXdJZDogbnVsbCxcbiAgICAgIGNvbnRhaW5lcldpZHRoOiAwLFxuICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgcGlja2VyT3BlbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAgYWxsOiB7XG4gICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgIHByaXZhdGVPcGVuOiB0cnVlLFxuICAgICAgICBzaGFyZWRPcGVuOiB0cnVlLFxuICAgICAgICBwdWJsaWNPcGVuOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdGVkSW5pdGlhbFN0YXRlOiBDb3JlU3RhdGU8Vj4gPSBkZWZhdWx0c0RlZXAoXG4gICAgICB7fSxcbiAgICAgIG9wdGlvbnM/LmluaXRpYWxTdGF0ZSxcbiAgICAgIGRlZmF1bHRTdGF0ZSxcbiAgICApO1xuXG4gICAgY29uc3QgYWN0aW9uczogU3ViamVjdDxBY3Rpb248Vj4+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBjb25zdCBjb3JlU3RhdGU6IE9ic2VydmFibGU8Q29yZVN0YXRlPFY+PiA9IGFjdGlvbnMucGlwZShcbiAgICAgIG1lcmdlU2NhbihcbiAgICAgICAgKHN0YXRlLCBhY3Rpb24pID0+XG4gICAgICAgICAgZnJvbShyZWR1Y2Uoc3RhdGUsIGFjdGlvbiwgc291cmNlLCBkdXBsaWNhdGUsIGNvcHlMaW5rKSksXG4gICAgICAgIGRlZmF1bHRlZEluaXRpYWxTdGF0ZSxcbiAgICAgICAgMSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoZGVmYXVsdGVkSW5pdGlhbFN0YXRlKSxcbiAgICApO1xuXG4gICAgY29uc3Qgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxWPj4gPSBjb25uZWN0YWJsZShcbiAgICAgIGNvcmVTdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgLy8gSWYgZm9yIHNvbWUgcmVhc29uIHRoZSBhY3RpdmUgdmlldyBpcyBub3QgY3VycmVudGx5IGVuYWJsZWQsIHdlJ2xsXG4gICAgICAgICAgLy8gZGVmYXVsdCB0byBtYWtpbmcgdGhlIGZpcnN0IHZpZXcgYWN0aXZlIGluc3RlYWQuXG4gICAgICAgICAgY29uc3QgYWN0aXZlVmlldzogViB8IHVuZGVmaW5lZCA9IHMudmlld3MuZmluZChcbiAgICAgICAgICAgIHZpZXcgPT4gdmlldy5lbmFibGVkICYmIHZpZXcuaWQgPT09IHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBhbGxWaWV3czogRnVsbFZpZXc8Vj5bXSA9IHMudmlld3MubWFwKCh2aWV3LCBpKSA9PiAoe1xuICAgICAgICAgICAgLi4udmlldyxcbiAgICAgICAgICAgIGFjdGl2ZTogYWN0aXZlVmlldyA/IGFjdGl2ZVZpZXcuaWQgPT09IHZpZXcuaWQgOiBpID09PSAwLFxuICAgICAgICAgICAgZGVmYXVsdDogdmlldy5pZCA9PT0gcy5kZWZhdWx0Vmlld0lkLFxuICAgICAgICAgICAgc3lzdGVtOiBpID09PSAwLFxuICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIGNvbnN0IGFsbEVuYWJsZWRWaWV3czogRnVsbFZpZXc8Vj5bXSA9IGFsbFZpZXdzLmZpbHRlcihcbiAgICAgICAgICAgIHZpZXcgPT4gdmlldy5lbmFibGVkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5ZWRWaWV3cyA9IGNhbGN1bGF0ZURpc3BsYXllZFZpZXdzKFxuICAgICAgICAgICAgYWxsRW5hYmxlZFZpZXdzLFxuICAgICAgICAgICAgY2FsY3VsYXRlT3ZlcmZsb3dWaWV3SW5kZXgocyksXG4gICAgICAgICAgICBzLmFjdGl2ZVZpZXdJZCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgZW5hYmxlZFZpZXdzID0gcy5vdmVyZmxvdy5zZWFyY2hcbiAgICAgICAgICAgID8gc2VhcmNoVmlld3MoXG4gICAgICAgICAgICAgICAgYWxsRW5hYmxlZFZpZXdzLFxuICAgICAgICAgICAgICAgIHMub3ZlcmZsb3cuc2VhcmNoLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LmZ1c2VPcHRpb25zLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGFsbEVuYWJsZWRWaWV3cztcblxuICAgICAgICAgIGNvbnN0IGFsbFZpZXdzRmlsdGVyZWQgPSBzLmFsbC5zZWFyY2hcbiAgICAgICAgICAgID8gc2VhcmNoVmlld3MoYWxsVmlld3MsIHMuYWxsLnNlYXJjaCwgb3B0aW9ucz8uZnVzZU9wdGlvbnMpXG4gICAgICAgICAgICA6IGFsbFZpZXdzO1xuXG4gICAgICAgICAgY29uc3Qgc2VhcmNoaW5nQWxsVmlld3MgPSAhIXMuYWxsLnNlYXJjaDtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zLFxuICAgICAgICAgICAgYWxsVmlld3MsXG4gICAgICAgICAgICBkaXNwbGF5ZWRWaWV3cyxcbiAgICAgICAgICAgIGVuYWJsZWRWaWV3cyxcbiAgICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgICAuLi5zLmFsbCxcbiAgICAgICAgICAgICAgcHJpdmF0ZU9wZW46IHNlYXJjaGluZ0FsbFZpZXdzIHx8IHMuYWxsLnByaXZhdGVPcGVuLFxuICAgICAgICAgICAgICBwcml2YXRlVmlld3M6IHZpZXdzQnlQZXJtaXNzaW9uKGFsbFZpZXdzRmlsdGVyZWQsICdwcml2YXRlJyksXG4gICAgICAgICAgICAgIHByaXZhdGVFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgICAgc2hhcmVkT3Blbjogc2VhcmNoaW5nQWxsVmlld3MgfHwgcy5hbGwuc2hhcmVkT3BlbixcbiAgICAgICAgICAgICAgc2hhcmVkVmlld3M6IHZpZXdzQnlQZXJtaXNzaW9uKGFsbFZpZXdzRmlsdGVyZWQsICdzaGFyZWQnKSxcbiAgICAgICAgICAgICAgc2hhcmVkRW1wdHlTdGF0ZU1lc3NhZ2U6IGdldEVtcHR5U3RhdGVNZXNzYWdlKHMsICdzaGFyZWQnKSxcbiAgICAgICAgICAgICAgcHVibGljT3Blbjogc2VhcmNoaW5nQWxsVmlld3MgfHwgcy5hbGwucHVibGljT3BlbixcbiAgICAgICAgICAgICAgcHVibGljVmlld3M6IHZpZXdzQnlQZXJtaXNzaW9uKGFsbFZpZXdzRmlsdGVyZWQsICdwdWJsaWMnKSxcbiAgICAgICAgICAgICAgcHVibGljRW1wdHlTdGF0ZU1lc3NhZ2U6IGdldEVtcHR5U3RhdGVNZXNzYWdlKHMsICdwdWJsaWMnKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgICAge1xuICAgICAgICBjb25uZWN0b3I6ICgpID0+IG5ldyBSZXBsYXlTdWJqZWN0KDEpLFxuICAgICAgICByZXNldE9uRGlzY29ubmVjdDogZmFsc2UsXG4gICAgICB9LFxuICAgICk7XG4gICAgc3RhdGUuY29ubmVjdCgpO1xuXG4gICAgLy8gTG9hZCB0aGUgdmlld3MgaW1tZWRpYXRlbHlcbiAgICBhY3Rpb25zLm5leHQoeyB0eXBlOiAnbG9hZCcgfSk7XG5cbiAgICByZXR1cm4geyBhY3Rpb25zLCBzdGF0ZSB9O1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBTdGF0ZSByZWR1Y2VyICh3aXRoIGhlbHBlcnMpIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICBmdW5jdGlvbiBjYWxjdWxhdGVPdmVyZmxvd1ZpZXdJbmRleDxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgKTogbnVtYmVyIHtcbiAgICBjb25zdCBlbmFibGVkVmlld3MgPSBzdGF0ZS52aWV3cy5maWx0ZXIodmlldyA9PiB2aWV3LmVuYWJsZWQpO1xuXG4gICAgLy8gVGFicyBoYXZlIGEgbWluaW11bSB3aWR0aCBvZiA5MnB4LlxuICAgIGNvbnN0IHBvc3NpYmxlU2xvdENvdW50ID0gTWF0aC5mbG9vcihzdGF0ZS5jb250YWluZXJXaWR0aCAvIDkyKTtcblxuICAgIC8vIFRoZSBcImFsbCB2aWV3c1wiIHNpZGViYXIgdHJpZ2dlciB0YWtlcyB1cCBvbmUgc2xvdC5cbiAgICBjb25zdCBhdmFpbGFibGVTbG90Q291bnQgPSBwb3NzaWJsZVNsb3RDb3VudCAtIDE7XG5cbiAgICAvLyBJZiB0aGVyZSBhcmUgdG9vIG1hbnkgdGFicywgdGhlIFwiTiBtb3JlXCIgdHJpZ2dlciB0YWtlcyB1cCBvbmUgc2xvdCBhcyB3ZWxsLlxuICAgIC8vIEJ1dCB3ZSB3YW50IHRvIGF2b2lkIHRoZSBcIjEgbW9yZVwiIGNhc2UsIHNvIHdlIG9ubHkgdXNlIGEgc2xvdCBmb3IgXCJOIG1vcmVcIiBpZiBOICE9IDEuXG4gICAgaWYgKGF2YWlsYWJsZVNsb3RDb3VudCA+PSBlbmFibGVkVmlld3MubGVuZ3RoKSByZXR1cm4gZW5hYmxlZFZpZXdzLmxlbmd0aDtcbiAgICBlbHNlIHJldHVybiBhdmFpbGFibGVTbG90Q291bnQgLSAxOyAvLyB0aGUgXCJOIG1vcmVcIiB1c2VzIHVwIGEgc2xvdC5cbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZURpc3BsYXllZFZpZXdzPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBmdWxsVmlld3M6IEZ1bGxWaWV3PFY+W10sXG4gICAgb3ZlcmZsb3dWaWV3SW5kZXg6IG51bWJlcixcbiAgICBhY3RpdmVWaWV3SWQ6IENvcmVTdGF0ZTxWPlsnYWN0aXZlVmlld0lkJ10sXG4gICk6IEZ1bGxWaWV3PFY+W10ge1xuICAgIGNvbnN0IGRpc3BsYXllZFZpZXdzID0gZnVsbFZpZXdzLnNsaWNlKDAsIG92ZXJmbG93Vmlld0luZGV4KTtcblxuICAgIGNvbnN0IGFjdGl2ZVZpZXdJbkRpc3BsYXkgPSBkaXNwbGF5ZWRWaWV3cy5zb21lKFxuICAgICAgdmlldyA9PiB2aWV3LmlkID09PSBhY3RpdmVWaWV3SWQsXG4gICAgKTtcblxuICAgIGlmICghYWN0aXZlVmlld0luRGlzcGxheSAmJiBhY3RpdmVWaWV3SWQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFjdGl2ZVZpZXcgPSBmdWxsVmlld3MuZmluZCh2aWV3ID0+IHZpZXcuaWQgPT09IGFjdGl2ZVZpZXdJZCk7XG4gICAgICBpZiAoYWN0aXZlVmlldyAmJiBkaXNwbGF5ZWRWaWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJldHVybiBbLi4uZGlzcGxheWVkVmlld3Muc2xpY2UoMCwgLTEpLCBhY3RpdmVWaWV3XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGlzcGxheWVkVmlld3M7XG4gIH1cblxuICBmdW5jdGlvbiB2aWV3c0J5UGVybWlzc2lvbjxWIGV4dGVuZHMgVmlldz4oXG4gICAgdmlld3M6IEZ1bGxWaWV3PFY+W10sXG4gICAgcGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24sXG4gICk6IEZ1bGxWaWV3PFY+W10ge1xuICAgIHJldHVybiBzb3J0QnkoXG4gICAgICB2aWV3cy5maWx0ZXIodmlldyA9PiB2aWV3LnBlcm1pc3Npb24gPT09IHBlcm1pc3Npb24pLFxuICAgICAgW3YgPT4gIXYuc3lzdGVtLCAndGl0bGUnXSxcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gc2VhcmNoVmlld3M8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBGdWxsVmlldzxWPltdLFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IElGdXNlT3B0aW9uczxWPixcbiAgKTogRnVsbFZpZXc8Vj5bXSB7XG4gICAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKHZpZXdzLCB7XG4gICAgICB0aHJlc2hvbGQ6IDAuMixcbiAgICAgIGtleXM6IFsndGl0bGUnXSxcbiAgICAgIGluY2x1ZGVNYXRjaGVzOiB0cnVlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1hdGNoZWRPcHRpb25zOiBGdXNlUmVzdWx0PEZ1bGxWaWV3PFY+PltdID0gZnVzZS5zZWFyY2gocXVlcnkpO1xuXG4gICAgcmV0dXJuIG1hdGNoZWRPcHRpb25zLm1hcChyZXN1bHQgPT4gKHtcbiAgICAgIC4uLnJlc3VsdC5pdGVtLFxuICAgICAgdGl0bGVIaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgIC4uLihyZXN1bHQubWF0Y2hlcz8uZmluZChtYXRjaCA9PiBtYXRjaC5rZXkgPT09ICd0aXRsZScpPy5pbmRpY2VzID8/XG4gICAgICAgICAgW10pLFxuICAgICAgXSxcbiAgICB9KSk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXROZXh0QmVzdEFjdGl2ZVZpZXc8ViBleHRlbmRzIFZpZXc+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8Vj4sXG4gICk6IFZbJ2lkJ10gfCBudWxsIHtcbiAgICBjb25zdCBlbmFibGVkVmlld3MgPSBzdGF0ZS52aWV3cy5maWx0ZXIodmlldyA9PiB2aWV3LmVuYWJsZWQpO1xuICAgIGNvbnN0IGN1cnJlbnRBY3RpdmVWaWV3SW5kZXggPSBlbmFibGVkVmlld3MuZmluZEluZGV4KFxuICAgICAgdmlldyA9PiB2aWV3LmlkID09PSBzdGF0ZS5hY3RpdmVWaWV3SWQsXG4gICAgKTtcblxuICAgIGlmIChjdXJyZW50QWN0aXZlVmlld0luZGV4ID09PSAtMSkgcmV0dXJuIGVuYWJsZWRWaWV3c1swXT8uaWQgPz8gbnVsbDtcbiAgICByZXR1cm4gKFxuICAgICAgZW5hYmxlZFZpZXdzW2N1cnJlbnRBY3RpdmVWaWV3SW5kZXggKyAxXT8uaWQgPz9cbiAgICAgIGVuYWJsZWRWaWV3c1tjdXJyZW50QWN0aXZlVmlld0luZGV4IC0gMV0/LmlkID8/XG4gICAgICBudWxsXG4gICAgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlbGV0ZVZpZXc8ViBleHRlbmRzIFZpZXc+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8Vj4sXG4gICAgaWQ6IFZbJ2lkJ10sXG4gICk6IENvcmVTdGF0ZTxWPiB7XG4gICAgY29uc3QgYWN0aXZlVmlld0lkID1cbiAgICAgIHN0YXRlLmFjdGl2ZVZpZXdJZCA9PT0gaWRcbiAgICAgICAgPyBnZXROZXh0QmVzdEFjdGl2ZVZpZXcoc3RhdGUpXG4gICAgICAgIDogc3RhdGUuYWN0aXZlVmlld0lkO1xuICAgIGNvbnN0IHZpZXdzID0gc3RhdGUudmlld3MuZmlsdGVyKHZpZXcgPT4gdmlldy5pZCAhPT0gaWQpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHZpZXdzLFxuICAgICAgYWN0aXZlVmlld0lkLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBzZXRFbmFibGVkPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIGlkOiBWWydpZCddLFxuICAgIGVuYWJsZWQ6IGJvb2xlYW4sXG4gICk6IENvcmVTdGF0ZTxWPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgdmlld3M6IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgIHZpZXcuaWQgPT09IGlkID8geyAuLi52aWV3LCBlbmFibGVkIH0gOiB2aWV3LFxuICAgICAgKSxcbiAgICAgIGFjdGl2ZVZpZXdJZDpcbiAgICAgICAgIWVuYWJsZWQgJiYgc3RhdGUuYWN0aXZlVmlld0lkID09PSBpZFxuICAgICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICAgIDogc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiB3aXRoRHVwbGljYXRlVmlldzxWIGV4dGVuZHMgVmlldz4oXG4gICAgdmlld3M6IFZbXSxcbiAgICB2aWV3VG9EdXBsaWNhdGU6IFYsXG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8Vj4sXG4gICk6IFByb21pc2U8VltdPiB7XG4gICAgY29uc3QgbmV3VmlldyA9IGF3YWl0IGR1cGxpY2F0ZSh2aWV3VG9EdXBsaWNhdGUpO1xuICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gdmlld3MuZmluZEluZGV4KHZpZXcgPT4gdmlldy5pZCA9PT0gdmlld1RvRHVwbGljYXRlLmlkKTtcbiAgICBpZiAoc291cmNlSW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gW25ld1ZpZXcsIC4uLnZpZXdzXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4udmlld3Muc2xpY2UoMCwgc291cmNlSW5kZXggKyAxKSxcbiAgICAgICAgbmV3VmlldyxcbiAgICAgICAgLi4udmlld3Muc2xpY2Uoc291cmNlSW5kZXggKyAxKSxcbiAgICAgIF07XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW1wdHlTdGF0ZU1lc3NhZ2U8ViBleHRlbmRzIFZpZXc+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8Vj4sXG4gICAgcGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24sXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKHN0YXRlLmFsbC5zZWFyY2gpXG4gICAgICByZXR1cm4gYE5vICR7cGVybWlzc2lvbn0gdmlld3MgbWF0Y2hpbmcgXCIke3N0YXRlLmFsbC5zZWFyY2h9XCJgO1xuICAgIGVsc2UgcmV0dXJuIGBObyAke3Blcm1pc3Npb259IHZpZXdzYDtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlZHVjZTxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgICBhY3Rpb246IEFjdGlvbjxWPixcbiAgICBzb3VyY2U6IFNvdXJjZTxWPixcbiAgICBkdXBsaWNhdGU6IER1cGxpY2F0ZTxWPixcbiAgICBjb3B5TGluazogQ29weUxpbms8Vj4sXG4gICk6IFByb21pc2U8Q29yZVN0YXRlPFY+PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSAnbG9hZCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdmlld3M6IGF3YWl0IHNvdXJjZSgpLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRBY3RpdmVWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhY3RpdmVWaWV3SWQ6IGFjdGlvbi5pZCxcbiAgICAgICAgICB2aWV3czogc3RhdGUudmlld3MubWFwKHZpZXcgPT5cbiAgICAgICAgICAgIHZpZXcuaWQgPT09IGFjdGlvbi5pZCA/IHsgLi4udmlldywgZW5hYmxlZDogdHJ1ZSB9IDogdmlldyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5vdmVyZmxvdyxcbiAgICAgICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RGVmYXVsdFZpZXcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGRlZmF1bHRWaWV3SWQ6IGFjdGlvbi5pZCxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RW5hYmxlZCc6XG4gICAgICAgIHJldHVybiBzZXRFbmFibGVkKHN0YXRlLCBhY3Rpb24uaWQsIGFjdGlvbi5lbmFibGVkKTtcblxuICAgICAgY2FzZSAnc2V0Q29udGFpbmVyV2lkdGgnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBhY3Rpb24ud2lkdGgsXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldE92ZXJmbG93UGlja2VyT3Blbic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgcGlja2VyT3BlbjogYWN0aW9uLm9wZW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgc2VhcmNoOiBhY3Rpb24ucXVlcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hbGwsXG4gICAgICAgICAgICBzZWFyY2g6IGFjdGlvbi5xdWVyeSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd1cGRhdGVWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogc3RhdGUudmlld3MubWFwKHZpZXcgPT5cbiAgICAgICAgICAgIHZpZXcuaWQgPT09IGFjdGlvbi52aWV3LmlkID8gYWN0aW9uLnZpZXcgOiB2aWV3LFxuICAgICAgICAgICksXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ2RlbGV0ZVZpZXcnOlxuICAgICAgICByZXR1cm4gZGVsZXRlVmlldyhzdGF0ZSwgYWN0aW9uLnZpZXcuaWQpO1xuXG4gICAgICBjYXNlICdkdXBsaWNhdGVWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogYXdhaXQgd2l0aER1cGxpY2F0ZVZpZXcoc3RhdGUudmlld3MsIGFjdGlvbi52aWV3LCBkdXBsaWNhdGUpLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdjb3B5TGlua1RvVmlldyc6XG4gICAgICAgIGF3YWl0IGNvcHlMaW5rKGFjdGlvbi52aWV3KTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuXG4gICAgICBjYXNlICdzZXRBbGxWaWV3c1RvZ2dsZSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hbGwsXG4gICAgICAgICAgICBwcml2YXRlT3BlbjpcbiAgICAgICAgICAgICAgYWN0aW9uLnBlcm1pc3Npb24gPT09ICdwcml2YXRlJ1xuICAgICAgICAgICAgICAgID8gYWN0aW9uLm9wZW5cbiAgICAgICAgICAgICAgICA6IHN0YXRlLmFsbC5wcml2YXRlT3BlbixcbiAgICAgICAgICAgIHNoYXJlZE9wZW46XG4gICAgICAgICAgICAgIGFjdGlvbi5wZXJtaXNzaW9uID09PSAnc2hhcmVkJ1xuICAgICAgICAgICAgICAgID8gYWN0aW9uLm9wZW5cbiAgICAgICAgICAgICAgICA6IHN0YXRlLmFsbC5zaGFyZWRPcGVuLFxuICAgICAgICAgICAgcHVibGljT3BlbjpcbiAgICAgICAgICAgICAgYWN0aW9uLnBlcm1pc3Npb24gPT09ICdwdWJsaWMnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnB1YmxpY09wZW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy9cbiAgLy8gVXRpbGl0aWVzIC8vXG4gIC8vLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRQZXJtaXNzaW9uVGl0bGUocGVybWlzc2lvbjogVmlld1Blcm1pc3Npb24pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocGVybWlzc2lvbikge1xuICAgICAgY2FzZSAncHJpdmF0ZSc6XG4gICAgICAgIHJldHVybiAnUHJpdmF0ZSc7XG4gICAgICBjYXNlICdzaGFyZWQnOlxuICAgICAgICByZXR1cm4gJ1NoYXJlZCc7XG4gICAgICBjYXNlICdwdWJsaWMnOlxuICAgICAgICByZXR1cm4gJ1B1YmxpYyc7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbihwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7XG4gICAgICBjYXNlICdwcml2YXRlJzpcbiAgICAgICAgcmV0dXJuICdPbmx5IHZpc2libGUgdG8geW91JztcbiAgICAgIGNhc2UgJ3NoYXJlZCc6XG4gICAgICAgIHJldHVybiAnT25seSB2aXNpYmxlIHRvIHRob3NlIHdpdGggYWNjZXNzJztcbiAgICAgIGNhc2UgJ3B1YmxpYyc6XG4gICAgICAgIHJldHVybiAnVmlzaWJsZSB0byBldmVyeW9uZSc7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -12,10 +12,10 @@ export class ViewMenuComponent {
12
12
  }
13
13
  }
14
14
  ViewMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- ViewMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ViewMenuComponent, selector: "riv-view-menu", inputs: { manager: "manager", view: "view" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["menuTrigger"], descendants: true }], viewQueries: [{ propertyName: "menuElement", first: true, predicate: ["menu"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button riv-menu-item (click)=\"editingView = view\">Edit view</button>\n <button riv-menu-item (click)=\"editingView = view; renamingView = true\">\n Rename view\n </button>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'duplicateView', view })\"\n >\n Duplicate view\n </button>\n <button\n riv-menu-item\n [variant]=\"'danger'\"\n (click)=\"manager?.actions?.next({ type: 'deleteView', view })\"\n >\n Delete view\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'copyLinkToView', view })\"\n >\n Copy link to view\n </button>\n </riv-menu>\n\n <riv-edit-view\n *ngIf=\"editingView\"\n [view]=\"editingView\"\n [autoSelectName]=\"renamingView\"\n [anchor]=\"menuElement?.nativeElement\"\n (save)=\"manager?.actions?.next({ type: 'updateView', view: $event })\"\n (delete)=\"manager?.actions?.next({ type: 'deleteView', view: $event })\"\n (close)=\"editingView = null; renamingView = false\"\n ></riv-edit-view>\n</ng-container>\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}riv-menu{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EditViewComponent, selector: "riv-edit-view", inputs: ["anchor", "autoSelectName", "view"], outputs: ["save", "delete", "close"] }, { kind: "component", type: i3.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition"] }, { kind: "component", type: i4.MenuDividerComponent, selector: "riv-menu-divider" }, { kind: "component", type: i5.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ ViewMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ViewMenuComponent, selector: "riv-view-menu", inputs: { manager: "manager", view: "view" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["menuTrigger"], descendants: true }], viewQueries: [{ propertyName: "menuElement", first: true, predicate: ["menu"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button riv-menu-item (click)=\"editingView = view\" [disabled]=\"view.system\">\n Edit view\n </button>\n <button\n riv-menu-item\n (click)=\"editingView = view; renamingView = true\"\n [disabled]=\"view.system\"\n >\n Rename view\n </button>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'duplicateView', view })\"\n >\n Duplicate view\n </button>\n <button\n riv-menu-item\n [variant]=\"'danger'\"\n (click)=\"manager?.actions?.next({ type: 'deleteView', view })\"\n [disabled]=\"view.system\"\n >\n Delete view\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'copyLinkToView', view })\"\n >\n Copy link to view\n </button>\n </riv-menu>\n\n <riv-edit-view\n *ngIf=\"editingView\"\n [view]=\"editingView\"\n [autoSelectName]=\"renamingView\"\n [anchor]=\"menuElement?.nativeElement\"\n (save)=\"manager?.actions?.next({ type: 'updateView', view: $event })\"\n (delete)=\"manager?.actions?.next({ type: 'deleteView', view: $event })\"\n (close)=\"editingView = null; renamingView = false\"\n ></riv-edit-view>\n</ng-container>\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}riv-menu{max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EditViewComponent, selector: "riv-edit-view", inputs: ["anchor", "autoSelectName", "view"], outputs: ["save", "delete", "close"] }, { kind: "component", type: i3.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition"] }, { kind: "component", type: i4.MenuDividerComponent, selector: "riv-menu-divider" }, { kind: "component", type: i5.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewMenuComponent, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'riv-view-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button riv-menu-item (click)=\"editingView = view\">Edit view</button>\n <button riv-menu-item (click)=\"editingView = view; renamingView = true\">\n Rename view\n </button>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'duplicateView', view })\"\n >\n Duplicate view\n </button>\n <button\n riv-menu-item\n [variant]=\"'danger'\"\n (click)=\"manager?.actions?.next({ type: 'deleteView', view })\"\n >\n Delete view\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'copyLinkToView', view })\"\n >\n Copy link to view\n </button>\n </riv-menu>\n\n <riv-edit-view\n *ngIf=\"editingView\"\n [view]=\"editingView\"\n [autoSelectName]=\"renamingView\"\n [anchor]=\"menuElement?.nativeElement\"\n (save)=\"manager?.actions?.next({ type: 'updateView', view: $event })\"\n (delete)=\"manager?.actions?.next({ type: 'deleteView', view: $event })\"\n (close)=\"editingView = null; renamingView = false\"\n ></riv-edit-view>\n</ng-container>\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}riv-menu{max-width:100%}\n"] }]
18
+ args: [{ selector: 'riv-view-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button riv-menu-item (click)=\"editingView = view\" [disabled]=\"view.system\">\n Edit view\n </button>\n <button\n riv-menu-item\n (click)=\"editingView = view; renamingView = true\"\n [disabled]=\"view.system\"\n >\n Rename view\n </button>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'duplicateView', view })\"\n >\n Duplicate view\n </button>\n <button\n riv-menu-item\n [variant]=\"'danger'\"\n (click)=\"manager?.actions?.next({ type: 'deleteView', view })\"\n [disabled]=\"view.system\"\n >\n Delete view\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'copyLinkToView', view })\"\n >\n Copy link to view\n </button>\n </riv-menu>\n\n <riv-edit-view\n *ngIf=\"editingView\"\n [view]=\"editingView\"\n [autoSelectName]=\"renamingView\"\n [anchor]=\"menuElement?.nativeElement\"\n (save)=\"manager?.actions?.next({ type: 'updateView', view: $event })\"\n (delete)=\"manager?.actions?.next({ type: 'deleteView', view: $event })\"\n (close)=\"editingView = null; renamingView = false\"\n ></riv-edit-view>\n</ng-container>\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}riv-menu{max-width:100%}\n"] }]
19
19
  }], propDecorators: { manager: [{
20
20
  type: Input
21
21
  }], view: [{
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
27
27
  type: ContentChild,
28
28
  args: ['menuTrigger']
29
29
  }] } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3Mvdmlldy1tZW51L3ZpZXctbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFtQlMsZ0JBQVcsR0FBZ0MsSUFBSSxDQUFDO1FBQ2hELGlCQUFZLEdBQVksS0FBSyxDQUFDO0tBQ3RDOzs4R0FmWSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrUkFPRCxVQUFVLDZCQ3hCdkMsOHdEQTREQTsyRkQzQ2EsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJdkMsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlZpZXdzIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdmlldy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXctbWVudS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3TWVudUNvbXBvbmVudDxWIGV4dGVuZHMgUml2Vmlld3MuVmlldz4ge1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2Vmlld3MuTWFuYWdlcjxWPjtcblxuICBASW5wdXQoKVxuICB2aWV3PzogUml2Vmlld3MuRnVsbFZpZXc8Vj47XG5cbiAgQFZpZXdDaGlsZCgnbWVudScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBtZW51RWxlbWVudD86IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZCgnbWVudVRyaWdnZXInKVxuICB0cmlnZ2VyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBwdWJsaWMgZWRpdGluZ1ZpZXc6IFJpdlZpZXdzLkZ1bGxWaWV3PFY+IHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyByZW5hbWluZ1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3XCI+XG4gIDxyaXYtbWVudVxuICAgICNtZW51XG4gICAgW3ByZWZlcnJlZFBvc2l0aW9uXT1cIidib3R0b20tcmlnaHQnXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmlnZ2VyVGVtcGxhdGVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvblxuICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgKGNsaWNrKT1cIlxuICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICB0eXBlOiAnc2V0RW5hYmxlZCcsXG4gICAgICAgICAgaWQ6IHZpZXcuaWQsXG4gICAgICAgICAgZW5hYmxlZDogIXZpZXcuZW5hYmxlZFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICA+XG4gICAgICB7eyB2aWV3LmVuYWJsZWQgPyAnSGlkZSB0YWInIDogJ1Nob3cgdGFiJyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxyaXYtbWVudS1kaXZpZGVyPjwvcml2LW1lbnUtZGl2aWRlcj5cbiAgICA8YnV0dG9uIHJpdi1tZW51LWl0ZW0gKGNsaWNrKT1cImVkaXRpbmdWaWV3ID0gdmlld1wiPkVkaXQgdmlldzwvYnV0dG9uPlxuICAgIDxidXR0b24gcml2LW1lbnUtaXRlbSAoY2xpY2spPVwiZWRpdGluZ1ZpZXcgPSB2aWV3OyByZW5hbWluZ1ZpZXcgPSB0cnVlXCI+XG4gICAgICBSZW5hbWUgdmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgIChjbGljayk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2R1cGxpY2F0ZVZpZXcnLCB2aWV3IH0pXCJcbiAgICA+XG4gICAgICBEdXBsaWNhdGUgdmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgIFt2YXJpYW50XT1cIidkYW5nZXInXCJcbiAgICAgIChjbGljayk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2RlbGV0ZVZpZXcnLCB2aWV3IH0pXCJcbiAgICA+XG4gICAgICBEZWxldGUgdmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxyaXYtbWVudS1kaXZpZGVyPjwvcml2LW1lbnUtZGl2aWRlcj5cbiAgICA8YnV0dG9uXG4gICAgICByaXYtbWVudS1pdGVtXG4gICAgICAoY2xpY2spPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdjb3B5TGlua1RvVmlldycsIHZpZXcgfSlcIlxuICAgID5cbiAgICAgIENvcHkgbGluayB0byB2aWV3XG4gICAgPC9idXR0b24+XG4gIDwvcml2LW1lbnU+XG5cbiAgPHJpdi1lZGl0LXZpZXdcbiAgICAqbmdJZj1cImVkaXRpbmdWaWV3XCJcbiAgICBbdmlld109XCJlZGl0aW5nVmlld1wiXG4gICAgW2F1dG9TZWxlY3ROYW1lXT1cInJlbmFtaW5nVmlld1wiXG4gICAgW2FuY2hvcl09XCJtZW51RWxlbWVudD8ubmF0aXZlRWxlbWVudFwiXG4gICAgKHNhdmUpPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICd1cGRhdGVWaWV3JywgdmlldzogJGV2ZW50IH0pXCJcbiAgICAoZGVsZXRlKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnZGVsZXRlVmlldycsIHZpZXc6ICRldmVudCB9KVwiXG4gICAgKGNsb3NlKT1cImVkaXRpbmdWaWV3ID0gbnVsbDsgcmVuYW1pbmdWaWV3ID0gZmFsc2VcIlxuICA+PC9yaXYtZWRpdC12aWV3PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3Mvdmlldy1tZW51L3ZpZXctbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFtQlMsZ0JBQVcsR0FBZ0MsSUFBSSxDQUFDO1FBQ2hELGlCQUFZLEdBQVksS0FBSyxDQUFDO0tBQ3RDOzs4R0FmWSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrUkFPRCxVQUFVLDZCQ3hCdkMsaTdEQW9FQTsyRkRuRGEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixXQUFXO3NCQURWLFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJdkMsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlZpZXdzIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdmlldy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXctbWVudS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3TWVudUNvbXBvbmVudDxWIGV4dGVuZHMgUml2Vmlld3MuVmlldz4ge1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2Vmlld3MuTWFuYWdlcjxWPjtcblxuICBASW5wdXQoKVxuICB2aWV3PzogUml2Vmlld3MuRnVsbFZpZXc8Vj47XG5cbiAgQFZpZXdDaGlsZCgnbWVudScsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBtZW51RWxlbWVudD86IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZCgnbWVudVRyaWdnZXInKVxuICB0cmlnZ2VyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBwdWJsaWMgZWRpdGluZ1ZpZXc6IFJpdlZpZXdzLkZ1bGxWaWV3PFY+IHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyByZW5hbWluZ1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3XCI+XG4gIDxyaXYtbWVudVxuICAgICNtZW51XG4gICAgW3ByZWZlcnJlZFBvc2l0aW9uXT1cIidib3R0b20tcmlnaHQnXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmlnZ2VyVGVtcGxhdGVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjdHJpZ2dlcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvblxuICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgKGNsaWNrKT1cIlxuICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICB0eXBlOiAnc2V0RW5hYmxlZCcsXG4gICAgICAgICAgaWQ6IHZpZXcuaWQsXG4gICAgICAgICAgZW5hYmxlZDogIXZpZXcuZW5hYmxlZFxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2aWV3LnN5c3RlbVwiXG4gICAgPlxuICAgICAge3sgdmlldy5lbmFibGVkID8gJ0hpZGUgdGFiJyA6ICdTaG93IHRhYicgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8cml2LW1lbnUtZGl2aWRlcj48L3Jpdi1tZW51LWRpdmlkZXI+XG4gICAgPGJ1dHRvbiByaXYtbWVudS1pdGVtIChjbGljayk9XCJlZGl0aW5nVmlldyA9IHZpZXdcIiBbZGlzYWJsZWRdPVwidmlldy5zeXN0ZW1cIj5cbiAgICAgIEVkaXQgdmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgIChjbGljayk9XCJlZGl0aW5nVmlldyA9IHZpZXc7IHJlbmFtaW5nVmlldyA9IHRydWVcIlxuICAgICAgW2Rpc2FibGVkXT1cInZpZXcuc3lzdGVtXCJcbiAgICA+XG4gICAgICBSZW5hbWUgdmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgIChjbGljayk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2R1cGxpY2F0ZVZpZXcnLCB2aWV3IH0pXCJcbiAgICA+XG4gICAgICBEdXBsaWNhdGUgdmlld1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgIFt2YXJpYW50XT1cIidkYW5nZXInXCJcbiAgICAgIChjbGljayk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2RlbGV0ZVZpZXcnLCB2aWV3IH0pXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2aWV3LnN5c3RlbVwiXG4gICAgPlxuICAgICAgRGVsZXRlIHZpZXdcbiAgICA8L2J1dHRvbj5cbiAgICA8cml2LW1lbnUtZGl2aWRlcj48L3Jpdi1tZW51LWRpdmlkZXI+XG4gICAgPGJ1dHRvblxuICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgKGNsaWNrKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnY29weUxpbmtUb1ZpZXcnLCB2aWV3IH0pXCJcbiAgICA+XG4gICAgICBDb3B5IGxpbmsgdG8gdmlld1xuICAgIDwvYnV0dG9uPlxuICA8L3Jpdi1tZW51PlxuXG4gIDxyaXYtZWRpdC12aWV3XG4gICAgKm5nSWY9XCJlZGl0aW5nVmlld1wiXG4gICAgW3ZpZXddPVwiZWRpdGluZ1ZpZXdcIlxuICAgIFthdXRvU2VsZWN0TmFtZV09XCJyZW5hbWluZ1ZpZXdcIlxuICAgIFthbmNob3JdPVwibWVudUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnRcIlxuICAgIChzYXZlKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAndXBkYXRlVmlldycsIHZpZXc6ICRldmVudCB9KVwiXG4gICAgKGRlbGV0ZSk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2RlbGV0ZVZpZXcnLCB2aWV3OiAkZXZlbnQgfSlcIlxuICAgIChjbG9zZSk9XCJlZGl0aW5nVmlldyA9IG51bGw7IHJlbmFtaW5nVmlldyA9IGZhbHNlXCJcbiAgPjwvcml2LWVkaXQtdmlldz5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -19,10 +19,10 @@ export class ViewsComponent {
19
19
  }
20
20
  }
21
21
  ViewsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- ViewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ViewsComponent, selector: "riv-views", inputs: { manager: "manager", sideSheetTopOffset: "sideSheetTopOffset" }, viewQueries: [{ propertyName: "overflowTrigger", first: true, predicate: ["overflowTrigger"], descendants: true, read: ElementRef }, { propertyName: "activeTab", first: true, predicate: ["activeTab"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n (rivClientSize)=\"\n manager?.actions?.next({ type: 'setContainerWidth', width: $event.width })\n \"\n class=\"container\"\n>\n <ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-container *ngFor=\"let view of s.displayedViews\">\n <ng-container *ngIf=\"view.active; else inactiveTab\">\n <div #activeTab class=\"tab active\">\n <riv-view-menu [manager]=\"manager\" [view]=\"view\" class=\"active-menu\">\n <ng-template #menuTrigger>\n <button class=\"menu-trigger\" rivTruncate>\n {{ view.title }}\n </button>\n </ng-template>\n </riv-view-menu>\n </div>\n </ng-container>\n <ng-template #inactiveTab>\n <button\n class=\"tab\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id })\n \"\n >\n <span rivTruncate>\n {{ view.title }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <button\n *ngIf=\"s.enabledViews.length - s.displayedViews.length; let count\"\n class=\"tab\"\n rivTruncate\n #overflowTrigger\n (click)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: true })\n \"\n >\n {{ count | rivNumber }} more\n </button>\n <ng-container *ngIf=\"s.overflow.pickerOpen\">\n <riv-callout\n *riv-overlay\n [anchor]=\"overflowTrigger?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-left'\"\n (close)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: false })\n \"\n >\n <div class=\"overflow-callout\">\n <riv-search\n [value]=\"s.overflow.search\"\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setOverflowSearchQuery',\n query: $event\n })\n \"\n ></riv-search>\n <div class=\"overflow-view-list\">\n <button\n *ngFor=\"let view of s.enabledViews\"\n class=\"overflow-view\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id });\n manager?.actions?.next({\n type: 'setOverflowPickerOpen',\n open: false\n })\n \"\n >\n <riv-highlight\n [indices]=\"view.titleHighlightIndices ?? []\"\n [text]=\"view.title\"\n ></riv-highlight>\n <riv-view-menu [manager]=\"manager\" [view]=\"view\"></riv-view-menu>\n </button>\n <riv-zero-state\n *ngIf=\"!s.enabledViews.length\"\n [message]=\"'No matching views.'\"\n ></riv-zero-state>\n </div>\n </div>\n </riv-callout>\n </ng-container>\n <div class=\"all-views-button-container\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'medium'\"\n (click)=\"showAllViews = true\"\n >\n All views\n </button>\n </div>\n </ng-container>\n</div>\n\n<riv-all-views-modal\n *ngIf=\"showAllViews\"\n [manager]=\"manager\"\n [topOffset]=\"sideSheetTopOffset\"\n (close)=\"showAllViews = false\"\n></riv-all-views-modal>\n", styles: [".container{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,calc(var(--base-grid-size) * 81));justify-content:start;border-bottom:var(--border-width) solid var(--border-light)}.tab{background-color:var(--surface-light-1);border:var(--border-width) solid var(--border-light);border-bottom:none;border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-large);cursor:pointer;transition:background-color var(--long-transition);display:flex;justify-content:flex-start;align-items:center}.tab:not(:first-child){margin-left:calc(var(--border-width) * -1)}.tab.active{background-color:var(--surface-light-0);border-bottom:var(--border-width) solid var(--surface-light-0);margin-bottom:calc(var(--border-width) * -1);z-index:1}.active-menu,.menu-trigger{max-width:100%;cursor:pointer}.all-views-button-container{padding:var(--size-xxsmall)}.overflow-callout{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:calc(var(--base-grid-size) * 120);max-height:50vh;width:calc(var(--base-grid-size) * 75);max-width:50vw}.overflow-view-list{display:flex;flex-direction:column;gap:var(--size-small);flex-grow:1;overflow-y:auto}.overflow-view{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding-left:var(--size-small);border-radius:var(--border-radius-medium);transition:background-color var(--short-transition)}.overflow-view:hover{background-color:var(--surface-light-2)}\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: "component", type: i2.AllViewsModalComponent, selector: "riv-all-views-modal", inputs: ["manager", "topOffset"], outputs: ["close"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i4.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i5.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "directive", type: i6.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i7.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name"] }, { kind: "directive", type: i8.SizeDirective, selector: "[rivClientSize]", outputs: ["rivClientSize"] }, { kind: "component", type: i9.TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }, { kind: "component", type: i10.ViewMenuComponent, selector: "riv-view-menu", inputs: ["manager", "view"] }, { kind: "component", type: i11.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.NumberPipe, name: "rivNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
+ ViewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ViewsComponent, selector: "riv-views", inputs: { manager: "manager", sideSheetTopOffset: "sideSheetTopOffset" }, viewQueries: [{ propertyName: "overflowTrigger", first: true, predicate: ["overflowTrigger"], descendants: true, read: ElementRef }, { propertyName: "activeTab", first: true, predicate: ["activeTab"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n (rivClientSize)=\"\n manager?.actions?.next({ type: 'setContainerWidth', width: $event.width })\n \"\n class=\"container\"\n>\n <ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-container *ngFor=\"let view of s.displayedViews\">\n <ng-container *ngIf=\"view.active; else inactiveTab\">\n <div #activeTab class=\"tab active\">\n <riv-view-menu [manager]=\"manager\" [view]=\"view\" class=\"active-menu\">\n <ng-template #menuTrigger>\n <button class=\"menu-trigger\" rivTruncate>\n {{ view.title }}\n </button>\n </ng-template>\n </riv-view-menu>\n </div>\n </ng-container>\n <ng-template #inactiveTab>\n <button\n class=\"tab\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id })\n \"\n >\n <span rivTruncate>\n {{ view.title }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <button\n *ngIf=\"s.enabledViews.length - s.displayedViews.length; let count\"\n class=\"tab\"\n rivTruncate\n #overflowTrigger\n (click)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: true })\n \"\n >\n {{ count | rivNumber }} more\n </button>\n <ng-container *ngIf=\"s.overflow.pickerOpen\">\n <riv-callout\n *riv-overlay\n [anchor]=\"overflowTrigger?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-left'\"\n (close)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: false })\n \"\n >\n <div class=\"overflow-callout\">\n <riv-search\n [value]=\"s.overflow.search\"\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setOverflowSearchQuery',\n query: $event\n })\n \"\n ></riv-search>\n <div class=\"overflow-view-list\">\n <button\n *ngFor=\"let view of s.enabledViews\"\n class=\"overflow-view\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id });\n manager?.actions?.next({\n type: 'setOverflowPickerOpen',\n open: false\n })\n \"\n >\n <div rivTruncate>\n <riv-highlight\n [indices]=\"view.titleHighlightIndices ?? []\"\n [text]=\"view.title\"\n ></riv-highlight>\n </div>\n <riv-view-menu [manager]=\"manager\" [view]=\"view\"></riv-view-menu>\n </button>\n <riv-zero-state\n *ngIf=\"!s.enabledViews.length\"\n [message]=\"'No matching views.'\"\n ></riv-zero-state>\n </div>\n </div>\n </riv-callout>\n </ng-container>\n <div class=\"all-views-button-container\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'medium'\"\n (click)=\"showAllViews = true\"\n >\n All views\n </button>\n </div>\n </ng-container>\n</div>\n\n<riv-all-views-modal\n *ngIf=\"showAllViews\"\n [manager]=\"manager\"\n [topOffset]=\"sideSheetTopOffset\"\n (close)=\"showAllViews = false\"\n></riv-all-views-modal>\n", styles: [".container{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,calc(var(--base-grid-size) * 81));justify-content:start;border-bottom:var(--border-width) solid var(--border-light)}.tab{background-color:var(--surface-light-1);border:var(--border-width) solid var(--border-light);border-bottom:none;border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-large);cursor:pointer;transition:background-color var(--long-transition);display:flex;justify-content:flex-start;align-items:center}.tab:not(:first-child){margin-left:calc(var(--border-width) * -1)}.tab.active{background-color:var(--surface-light-0);border-bottom:var(--border-width) solid var(--surface-light-0);margin-bottom:calc(var(--border-width) * -1);z-index:1}.active-menu,.menu-trigger{max-width:100%;cursor:pointer}.all-views-button-container{padding:var(--size-xxsmall)}.overflow-callout{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:calc(var(--base-grid-size) * 120);max-height:50vh;width:calc(var(--base-grid-size) * 75);max-width:50vw}.overflow-view-list{display:flex;flex-direction:column;gap:var(--size-small);flex-grow:1;overflow-y:auto}.overflow-view{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding-left:var(--size-small);border-radius:var(--border-radius-medium);transition:background-color var(--short-transition)}.overflow-view:hover{background-color:var(--surface-light-2)}\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: "component", type: i2.AllViewsModalComponent, selector: "riv-all-views-modal", inputs: ["manager", "topOffset"], outputs: ["close"] }, { kind: "component", type: i3.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i4.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i5.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "directive", type: i6.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i7.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name"] }, { kind: "directive", type: i8.SizeDirective, selector: "[rivClientSize]", outputs: ["rivClientSize"] }, { kind: "component", type: i9.TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }, { kind: "component", type: i10.ViewMenuComponent, selector: "riv-view-menu", inputs: ["manager", "view"] }, { kind: "component", type: i11.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.NumberPipe, name: "rivNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewsComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'riv-views', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n (rivClientSize)=\"\n manager?.actions?.next({ type: 'setContainerWidth', width: $event.width })\n \"\n class=\"container\"\n>\n <ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-container *ngFor=\"let view of s.displayedViews\">\n <ng-container *ngIf=\"view.active; else inactiveTab\">\n <div #activeTab class=\"tab active\">\n <riv-view-menu [manager]=\"manager\" [view]=\"view\" class=\"active-menu\">\n <ng-template #menuTrigger>\n <button class=\"menu-trigger\" rivTruncate>\n {{ view.title }}\n </button>\n </ng-template>\n </riv-view-menu>\n </div>\n </ng-container>\n <ng-template #inactiveTab>\n <button\n class=\"tab\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id })\n \"\n >\n <span rivTruncate>\n {{ view.title }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <button\n *ngIf=\"s.enabledViews.length - s.displayedViews.length; let count\"\n class=\"tab\"\n rivTruncate\n #overflowTrigger\n (click)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: true })\n \"\n >\n {{ count | rivNumber }} more\n </button>\n <ng-container *ngIf=\"s.overflow.pickerOpen\">\n <riv-callout\n *riv-overlay\n [anchor]=\"overflowTrigger?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-left'\"\n (close)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: false })\n \"\n >\n <div class=\"overflow-callout\">\n <riv-search\n [value]=\"s.overflow.search\"\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setOverflowSearchQuery',\n query: $event\n })\n \"\n ></riv-search>\n <div class=\"overflow-view-list\">\n <button\n *ngFor=\"let view of s.enabledViews\"\n class=\"overflow-view\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id });\n manager?.actions?.next({\n type: 'setOverflowPickerOpen',\n open: false\n })\n \"\n >\n <riv-highlight\n [indices]=\"view.titleHighlightIndices ?? []\"\n [text]=\"view.title\"\n ></riv-highlight>\n <riv-view-menu [manager]=\"manager\" [view]=\"view\"></riv-view-menu>\n </button>\n <riv-zero-state\n *ngIf=\"!s.enabledViews.length\"\n [message]=\"'No matching views.'\"\n ></riv-zero-state>\n </div>\n </div>\n </riv-callout>\n </ng-container>\n <div class=\"all-views-button-container\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'medium'\"\n (click)=\"showAllViews = true\"\n >\n All views\n </button>\n </div>\n </ng-container>\n</div>\n\n<riv-all-views-modal\n *ngIf=\"showAllViews\"\n [manager]=\"manager\"\n [topOffset]=\"sideSheetTopOffset\"\n (close)=\"showAllViews = false\"\n></riv-all-views-modal>\n", styles: [".container{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,calc(var(--base-grid-size) * 81));justify-content:start;border-bottom:var(--border-width) solid var(--border-light)}.tab{background-color:var(--surface-light-1);border:var(--border-width) solid var(--border-light);border-bottom:none;border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-large);cursor:pointer;transition:background-color var(--long-transition);display:flex;justify-content:flex-start;align-items:center}.tab:not(:first-child){margin-left:calc(var(--border-width) * -1)}.tab.active{background-color:var(--surface-light-0);border-bottom:var(--border-width) solid var(--surface-light-0);margin-bottom:calc(var(--border-width) * -1);z-index:1}.active-menu,.menu-trigger{max-width:100%;cursor:pointer}.all-views-button-container{padding:var(--size-xxsmall)}.overflow-callout{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:calc(var(--base-grid-size) * 120);max-height:50vh;width:calc(var(--base-grid-size) * 75);max-width:50vw}.overflow-view-list{display:flex;flex-direction:column;gap:var(--size-small);flex-grow:1;overflow-y:auto}.overflow-view{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding-left:var(--size-small);border-radius:var(--border-radius-medium);transition:background-color var(--short-transition)}.overflow-view:hover{background-color:var(--surface-light-2)}\n"] }]
25
+ args: [{ selector: 'riv-views', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n (rivClientSize)=\"\n manager?.actions?.next({ type: 'setContainerWidth', width: $event.width })\n \"\n class=\"container\"\n>\n <ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-container *ngFor=\"let view of s.displayedViews\">\n <ng-container *ngIf=\"view.active; else inactiveTab\">\n <div #activeTab class=\"tab active\">\n <riv-view-menu [manager]=\"manager\" [view]=\"view\" class=\"active-menu\">\n <ng-template #menuTrigger>\n <button class=\"menu-trigger\" rivTruncate>\n {{ view.title }}\n </button>\n </ng-template>\n </riv-view-menu>\n </div>\n </ng-container>\n <ng-template #inactiveTab>\n <button\n class=\"tab\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id })\n \"\n >\n <span rivTruncate>\n {{ view.title }}\n </span>\n </button>\n </ng-template>\n </ng-container>\n <button\n *ngIf=\"s.enabledViews.length - s.displayedViews.length; let count\"\n class=\"tab\"\n rivTruncate\n #overflowTrigger\n (click)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: true })\n \"\n >\n {{ count | rivNumber }} more\n </button>\n <ng-container *ngIf=\"s.overflow.pickerOpen\">\n <riv-callout\n *riv-overlay\n [anchor]=\"overflowTrigger?.nativeElement\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-left'\"\n (close)=\"\n manager?.actions?.next({ type: 'setOverflowPickerOpen', open: false })\n \"\n >\n <div class=\"overflow-callout\">\n <riv-search\n [value]=\"s.overflow.search\"\n (valueChange)=\"\n manager?.actions?.next({\n type: 'setOverflowSearchQuery',\n query: $event\n })\n \"\n ></riv-search>\n <div class=\"overflow-view-list\">\n <button\n *ngFor=\"let view of s.enabledViews\"\n class=\"overflow-view\"\n (click)=\"\n manager?.actions?.next({ type: 'setActiveView', id: view.id });\n manager?.actions?.next({\n type: 'setOverflowPickerOpen',\n open: false\n })\n \"\n >\n <div rivTruncate>\n <riv-highlight\n [indices]=\"view.titleHighlightIndices ?? []\"\n [text]=\"view.title\"\n ></riv-highlight>\n </div>\n <riv-view-menu [manager]=\"manager\" [view]=\"view\"></riv-view-menu>\n </button>\n <riv-zero-state\n *ngIf=\"!s.enabledViews.length\"\n [message]=\"'No matching views.'\"\n ></riv-zero-state>\n </div>\n </div>\n </riv-callout>\n </ng-container>\n <div class=\"all-views-button-container\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'medium'\"\n (click)=\"showAllViews = true\"\n >\n All views\n </button>\n </div>\n </ng-container>\n</div>\n\n<riv-all-views-modal\n *ngIf=\"showAllViews\"\n [manager]=\"manager\"\n [topOffset]=\"sideSheetTopOffset\"\n (close)=\"showAllViews = false\"\n></riv-all-views-modal>\n", styles: [".container{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,calc(var(--base-grid-size) * 81));justify-content:start;border-bottom:var(--border-width) solid var(--border-light)}.tab{background-color:var(--surface-light-1);border:var(--border-width) solid var(--border-light);border-bottom:none;border-top-left-radius:var(--border-radius-medium);border-top-right-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-large);cursor:pointer;transition:background-color var(--long-transition);display:flex;justify-content:flex-start;align-items:center}.tab:not(:first-child){margin-left:calc(var(--border-width) * -1)}.tab.active{background-color:var(--surface-light-0);border-bottom:var(--border-width) solid var(--surface-light-0);margin-bottom:calc(var(--border-width) * -1);z-index:1}.active-menu,.menu-trigger{max-width:100%;cursor:pointer}.all-views-button-container{padding:var(--size-xxsmall)}.overflow-callout{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:calc(var(--base-grid-size) * 120);max-height:50vh;width:calc(var(--base-grid-size) * 75);max-width:50vw}.overflow-view-list{display:flex;flex-direction:column;gap:var(--size-small);flex-grow:1;overflow-y:auto}.overflow-view{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding-left:var(--size-small);border-radius:var(--border-radius-medium);transition:background-color var(--short-transition)}.overflow-view:hover{background-color:var(--surface-light-2)}\n"] }]
26
26
  }], propDecorators: { manager: [{
27
27
  type: Input
28
28
  }], sideSheetTopOffset: [{
@@ -34,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
34
34
  type: ViewChild,
35
35
  args: ['activeTab', { read: ElementRef }]
36
36
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvbmF2aWdhdGlvbi92aWV3cy92aWV3cy92aWV3cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXdzL3ZpZXdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQVdFLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQVF4QixpQkFBWSxHQUFZLEtBQUssQ0FBQztLQUN0Qzs7MkdBZFksY0FBYzsrRkFBZCxjQUFjLDBOQU9hLFVBQVUsaUdBR2hCLFVBQVUsNkJDekI1QywyNUdBOEdBOzJGRC9GYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlsRCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUml2Vmlld3MgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi12aWV3cycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXdzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdzQ29tcG9uZW50PFYgZXh0ZW5kcyBSaXZWaWV3cy5WaWV3PiB7XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZWaWV3cy5NYW5hZ2VyPFY+O1xuXG4gIEBJbnB1dCgpXG4gIHNpZGVTaGVldFRvcE9mZnNldDogbnVtYmVyID0gMDtcblxuICBAVmlld0NoaWxkKCdvdmVyZmxvd1RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgb3ZlcmZsb3dUcmlnZ2VyPzogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdhY3RpdmVUYWInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYWN0aXZlVGFiPzogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2hvd0FsbFZpZXdzOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8ZGl2XG4gIChyaXZDbGllbnRTaXplKT1cIlxuICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnc2V0Q29udGFpbmVyV2lkdGgnLCB3aWR0aDogJGV2ZW50LndpZHRoIH0pXG4gIFwiXG4gIGNsYXNzPVwiY29udGFpbmVyXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hbmFnZXI/LnN0YXRlIHwgYXN5bmM7IGxldCBzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmlldyBvZiBzLmRpc3BsYXllZFZpZXdzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlldy5hY3RpdmU7IGVsc2UgaW5hY3RpdmVUYWJcIj5cbiAgICAgICAgPGRpdiAjYWN0aXZlVGFiIGNsYXNzPVwidGFiIGFjdGl2ZVwiPlxuICAgICAgICAgIDxyaXYtdmlldy1tZW51IFttYW5hZ2VyXT1cIm1hbmFnZXJcIiBbdmlld109XCJ2aWV3XCIgY2xhc3M9XCJhY3RpdmUtbWVudVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1lbnUtdHJpZ2dlclwiIHJpdlRydW5jYXRlPlxuICAgICAgICAgICAgICAgIHt7IHZpZXcudGl0bGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvcml2LXZpZXctbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5hY3RpdmVUYWI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInRhYlwiXG4gICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdzZXRBY3RpdmVWaWV3JywgaWQ6IHZpZXcuaWQgfSlcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gcml2VHJ1bmNhdGU+XG4gICAgICAgICAgICB7eyB2aWV3LnRpdGxlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzLmVuYWJsZWRWaWV3cy5sZW5ndGggLSBzLmRpc3BsYXllZFZpZXdzLmxlbmd0aDsgbGV0IGNvdW50XCJcbiAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgIHJpdlRydW5jYXRlXG4gICAgICAjb3ZlcmZsb3dUcmlnZ2VyXG4gICAgICAoY2xpY2spPVwiXG4gICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnc2V0T3ZlcmZsb3dQaWNrZXJPcGVuJywgb3BlbjogdHJ1ZSB9KVxuICAgICAgXCJcbiAgICA+XG4gICAgICB7eyBjb3VudCB8IHJpdk51bWJlciB9fSBtb3JlXG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInMub3ZlcmZsb3cucGlja2VyT3BlblwiPlxuICAgICAgPHJpdi1jYWxsb3V0XG4gICAgICAgICpyaXYtb3ZlcmxheVxuICAgICAgICBbYW5jaG9yXT1cIm92ZXJmbG93VHJpZ2dlcj8ubmF0aXZlRWxlbWVudFwiXG4gICAgICAgIFtpc01vZGFsXT1cInRydWVcIlxuICAgICAgICBbc2hvd0NhcmV0XT1cImZhbHNlXCJcbiAgICAgICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgICAgICBbcHJlZmVycmVkUG9zaXRpb25dPVwiJ2JvdHRvbS1sZWZ0J1wiXG4gICAgICAgIChjbG9zZSk9XCJcbiAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NldE92ZXJmbG93UGlja2VyT3BlbicsIG9wZW46IGZhbHNlIH0pXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1jYWxsb3V0XCI+XG4gICAgICAgICAgPHJpdi1zZWFyY2hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzLm92ZXJmbG93LnNlYXJjaFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRPdmVyZmxvd1NlYXJjaFF1ZXJ5JyxcbiAgICAgICAgICAgICAgICBxdWVyeTogJGV2ZW50XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L3Jpdi1zZWFyY2g+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LXZpZXctbGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlldyBvZiBzLmVuYWJsZWRWaWV3c1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwib3ZlcmZsb3ctdmlld1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NldEFjdGl2ZVZpZXcnLCBpZDogdmlldy5pZCB9KTtcbiAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRPdmVyZmxvd1BpY2tlck9wZW4nLFxuICAgICAgICAgICAgICAgICAgb3BlbjogZmFsc2VcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cml2LWhpZ2hsaWdodFxuICAgICAgICAgICAgICAgIFtpbmRpY2VzXT1cInZpZXcudGl0bGVIaWdobGlnaHRJbmRpY2VzID8/IFtdXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCJ2aWV3LnRpdGxlXCJcbiAgICAgICAgICAgICAgPjwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgPHJpdi12aWV3LW1lbnUgW21hbmFnZXJdPVwibWFuYWdlclwiIFt2aWV3XT1cInZpZXdcIj48L3Jpdi12aWV3LW1lbnU+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxyaXYtemVyby1zdGF0ZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFzLmVuYWJsZWRWaWV3cy5sZW5ndGhcIlxuICAgICAgICAgICAgICBbbWVzc2FnZV09XCInTm8gbWF0Y2hpbmcgdmlld3MuJ1wiXG4gICAgICAgICAgICA+PC9yaXYtemVyby1zdGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3Jpdi1jYWxsb3V0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJhbGwtdmlld3MtYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICByaXZCdXR0b25cbiAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dBbGxWaWV3cyA9IHRydWVcIlxuICAgICAgPlxuICAgICAgICBBbGwgdmlld3NcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48cml2LWFsbC12aWV3cy1tb2RhbFxuICAqbmdJZj1cInNob3dBbGxWaWV3c1wiXG4gIFttYW5hZ2VyXT1cIm1hbmFnZXJcIlxuICBbdG9wT2Zmc2V0XT1cInNpZGVTaGVldFRvcE9mZnNldFwiXG4gIChjbG9zZSk9XCJzaG93QWxsVmlld3MgPSBmYWxzZVwiXG4+PC9yaXYtYWxsLXZpZXdzLW1vZGFsPlxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvbmF2aWdhdGlvbi92aWV3cy92aWV3cy92aWV3cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXdzL3ZpZXdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVN2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQVdFLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQVF4QixpQkFBWSxHQUFZLEtBQUssQ0FBQztLQUN0Qzs7MkdBZFksY0FBYzsrRkFBZCxjQUFjLDBOQU9hLFVBQVUsaUdBR2hCLFVBQVUsNkJDekI1QywwOUdBZ0hBOzJGRGpHYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlsRCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUml2Vmlld3MgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi12aWV3cycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXdzLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdzQ29tcG9uZW50PFYgZXh0ZW5kcyBSaXZWaWV3cy5WaWV3PiB7XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZWaWV3cy5NYW5hZ2VyPFY+O1xuXG4gIEBJbnB1dCgpXG4gIHNpZGVTaGVldFRvcE9mZnNldDogbnVtYmVyID0gMDtcblxuICBAVmlld0NoaWxkKCdvdmVyZmxvd1RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgb3ZlcmZsb3dUcmlnZ2VyPzogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdhY3RpdmVUYWInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYWN0aXZlVGFiPzogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgc2hvd0FsbFZpZXdzOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCI8ZGl2XG4gIChyaXZDbGllbnRTaXplKT1cIlxuICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnc2V0Q29udGFpbmVyV2lkdGgnLCB3aWR0aDogJGV2ZW50LndpZHRoIH0pXG4gIFwiXG4gIGNsYXNzPVwiY29udGFpbmVyXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hbmFnZXI/LnN0YXRlIHwgYXN5bmM7IGxldCBzXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmlldyBvZiBzLmRpc3BsYXllZFZpZXdzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlldy5hY3RpdmU7IGVsc2UgaW5hY3RpdmVUYWJcIj5cbiAgICAgICAgPGRpdiAjYWN0aXZlVGFiIGNsYXNzPVwidGFiIGFjdGl2ZVwiPlxuICAgICAgICAgIDxyaXYtdmlldy1tZW51IFttYW5hZ2VyXT1cIm1hbmFnZXJcIiBbdmlld109XCJ2aWV3XCIgY2xhc3M9XCJhY3RpdmUtbWVudVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1lbnUtdHJpZ2dlclwiIHJpdlRydW5jYXRlPlxuICAgICAgICAgICAgICAgIHt7IHZpZXcudGl0bGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvcml2LXZpZXctbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5hY3RpdmVUYWI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInRhYlwiXG4gICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdzZXRBY3RpdmVWaWV3JywgaWQ6IHZpZXcuaWQgfSlcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gcml2VHJ1bmNhdGU+XG4gICAgICAgICAgICB7eyB2aWV3LnRpdGxlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCJzLmVuYWJsZWRWaWV3cy5sZW5ndGggLSBzLmRpc3BsYXllZFZpZXdzLmxlbmd0aDsgbGV0IGNvdW50XCJcbiAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgIHJpdlRydW5jYXRlXG4gICAgICAjb3ZlcmZsb3dUcmlnZ2VyXG4gICAgICAoY2xpY2spPVwiXG4gICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnc2V0T3ZlcmZsb3dQaWNrZXJPcGVuJywgb3BlbjogdHJ1ZSB9KVxuICAgICAgXCJcbiAgICA+XG4gICAgICB7eyBjb3VudCB8IHJpdk51bWJlciB9fSBtb3JlXG4gICAgPC9idXR0b24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInMub3ZlcmZsb3cucGlja2VyT3BlblwiPlxuICAgICAgPHJpdi1jYWxsb3V0XG4gICAgICAgICpyaXYtb3ZlcmxheVxuICAgICAgICBbYW5jaG9yXT1cIm92ZXJmbG93VHJpZ2dlcj8ubmF0aXZlRWxlbWVudFwiXG4gICAgICAgIFtpc01vZGFsXT1cInRydWVcIlxuICAgICAgICBbc2hvd0NhcmV0XT1cImZhbHNlXCJcbiAgICAgICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgICAgICBbcHJlZmVycmVkUG9zaXRpb25dPVwiJ2JvdHRvbS1sZWZ0J1wiXG4gICAgICAgIChjbG9zZSk9XCJcbiAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NldE92ZXJmbG93UGlja2VyT3BlbicsIG9wZW46IGZhbHNlIH0pXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1jYWxsb3V0XCI+XG4gICAgICAgICAgPHJpdi1zZWFyY2hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzLm92ZXJmbG93LnNlYXJjaFwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRPdmVyZmxvd1NlYXJjaFF1ZXJ5JyxcbiAgICAgICAgICAgICAgICBxdWVyeTogJGV2ZW50XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L3Jpdi1zZWFyY2g+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LXZpZXctbGlzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlldyBvZiBzLmVuYWJsZWRWaWV3c1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwib3ZlcmZsb3ctdmlld1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NldEFjdGl2ZVZpZXcnLCBpZDogdmlldy5pZCB9KTtcbiAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRPdmVyZmxvd1BpY2tlck9wZW4nLFxuICAgICAgICAgICAgICAgICAgb3BlbjogZmFsc2VcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IHJpdlRydW5jYXRlPlxuICAgICAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICBbaW5kaWNlc109XCJ2aWV3LnRpdGxlSGlnaGxpZ2h0SW5kaWNlcyA/PyBbXVwiXG4gICAgICAgICAgICAgICAgICBbdGV4dF09XCJ2aWV3LnRpdGxlXCJcbiAgICAgICAgICAgICAgICA+PC9yaXYtaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHJpdi12aWV3LW1lbnUgW21hbmFnZXJdPVwibWFuYWdlclwiIFt2aWV3XT1cInZpZXdcIj48L3Jpdi12aWV3LW1lbnU+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxyaXYtemVyby1zdGF0ZVxuICAgICAgICAgICAgICAqbmdJZj1cIiFzLmVuYWJsZWRWaWV3cy5sZW5ndGhcIlxuICAgICAgICAgICAgICBbbWVzc2FnZV09XCInTm8gbWF0Y2hpbmcgdmlld3MuJ1wiXG4gICAgICAgICAgICA+PC9yaXYtemVyby1zdGF0ZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3Jpdi1jYWxsb3V0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgY2xhc3M9XCJhbGwtdmlld3MtYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICByaXZCdXR0b25cbiAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dBbGxWaWV3cyA9IHRydWVcIlxuICAgICAgPlxuICAgICAgICBBbGwgdmlld3NcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48cml2LWFsbC12aWV3cy1tb2RhbFxuICAqbmdJZj1cInNob3dBbGxWaWV3c1wiXG4gIFttYW5hZ2VyXT1cIm1hbmFnZXJcIlxuICBbdG9wT2Zmc2V0XT1cInNpZGVTaGVldFRvcE9mZnNldFwiXG4gIChjbG9zZSk9XCJzaG93QWxsVmlld3MgPSBmYWxzZVwiXG4+PC9yaXYtYWxsLXZpZXdzLW1vZGFsPlxuIl19