@rivet-health/design-system 23.11.0 → 24.0.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.
@@ -6,6 +6,7 @@ export class ToggleComponent {
6
6
  constructor() {
7
7
  this.open = false;
8
8
  this.disabled = false;
9
+ this.size = 'medium';
9
10
  this.openChange = new EventEmitter();
10
11
  }
11
12
  toggleOpen() {
@@ -13,20 +14,36 @@ export class ToggleComponent {
13
14
  this.open = newOpenState;
14
15
  this.openChange.emit(newOpenState);
15
16
  }
17
+ getIconSize() {
18
+ switch (this.size) {
19
+ case 'medium':
20
+ return 20;
21
+ case 'small':
22
+ return 16;
23
+ }
24
+ }
16
25
  }
17
26
  ToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ToggleComponent, selector: "riv-toggle", inputs: { open: "open", disabled: "disabled" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["trigger"], descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n class=\"toggle-button\"\n [attr.disabled]=\"disabled ? true : null\"\n (click)=\"toggleOpen()\"\n>\n <div *ngIf=\"triggerTemplate; let tpl\" class=\"content\">\n <ng-container\n *ngTemplateOutlet=\"tpl; context: { open: open }\"\n ></ng-container>\n </div>\n <riv-icon [class.open]=\"open\" [name]=\"'ChevronDown'\" [size]=\"20\"></riv-icon>\n</button>\n\n<ng-container *ngIf=\"open\">\n <ng-content></ng-content>\n</ng-container>\n", styles: [".toggle-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;background:none;padding:var(--size-xsmall);font:var(--input-medium);text-align:left;border-radius:var(--border-radius-medium);color:inherit;gap:var(--size-small);cursor:pointer;transition:background-color var(--short-transition)}.toggle-button:hover:not(:disabled){background-color:var(--surface-light-1)}.toggle-button:active:not(:disabled){background-color:var(--surface-light-2)}.toggle-button:disabled{cursor:default;color:var(--type-light-disabled)}.toggle-button .content{flex-grow:1}riv-icon{transition:transform var(--medium-transition);margin:var(--size-xxsmall)}riv-icon.open{transform:rotate(-180deg)}\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.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
+ ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ToggleComponent, selector: "riv-toggle", inputs: { open: "open", disabled: "disabled", size: "size" }, outputs: { openChange: "openChange" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "dataTemplate", first: true, predicate: ["data"], descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n class=\"toggle-button\"\n [attr.disabled]=\"disabled ? true : null\"\n (click)=\"toggleOpen()\"\n>\n <div *ngIf=\"triggerTemplate; let tpl\" [class.grow]=\"!dataTemplate\">\n <ng-container\n *ngTemplateOutlet=\"tpl; context: { open: open }\"\n ></ng-container>\n </div>\n <riv-icon\n [class.open]=\"open\"\n [name]=\"'ChevronDown'\"\n [size]=\"getIconSize()\"\n ></riv-icon>\n <div *ngIf=\"dataTemplate; let tpl\" class=\"grow data\">\n <ng-container\n *ngTemplateOutlet=\"tpl; context: { open: open }\"\n ></ng-container>\n </div>\n</button>\n\n<ng-container *ngIf=\"open\">\n <ng-content></ng-content>\n</ng-container>\n", styles: [".toggle-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;background:none;padding:var(--size-xsmall);font:var(--input-medium);text-align:left;border-radius:var(--border-radius-medium);color:inherit;gap:var(--size-small);cursor:pointer;transition:background-color var(--short-transition)}.toggle-button:hover:not(:disabled){background-color:var(--surface-light-1)}.toggle-button:active:not(:disabled){background-color:var(--surface-light-2)}.toggle-button:disabled{cursor:default;color:var(--type-light-disabled)}.toggle-button .grow{flex-grow:1}.toggle-button .data{text-align:right}riv-icon{transition:transform var(--medium-transition)}riv-icon.open{transform:rotate(-180deg)}\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.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToggleComponent, decorators: [{
20
29
  type: Component,
21
- args: [{ selector: 'riv-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"toggle-button\"\n [attr.disabled]=\"disabled ? true : null\"\n (click)=\"toggleOpen()\"\n>\n <div *ngIf=\"triggerTemplate; let tpl\" class=\"content\">\n <ng-container\n *ngTemplateOutlet=\"tpl; context: { open: open }\"\n ></ng-container>\n </div>\n <riv-icon [class.open]=\"open\" [name]=\"'ChevronDown'\" [size]=\"20\"></riv-icon>\n</button>\n\n<ng-container *ngIf=\"open\">\n <ng-content></ng-content>\n</ng-container>\n", styles: [".toggle-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;background:none;padding:var(--size-xsmall);font:var(--input-medium);text-align:left;border-radius:var(--border-radius-medium);color:inherit;gap:var(--size-small);cursor:pointer;transition:background-color var(--short-transition)}.toggle-button:hover:not(:disabled){background-color:var(--surface-light-1)}.toggle-button:active:not(:disabled){background-color:var(--surface-light-2)}.toggle-button:disabled{cursor:default;color:var(--type-light-disabled)}.toggle-button .content{flex-grow:1}riv-icon{transition:transform var(--medium-transition);margin:var(--size-xxsmall)}riv-icon.open{transform:rotate(-180deg)}\n"] }]
30
+ args: [{ selector: 'riv-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"toggle-button\"\n [attr.disabled]=\"disabled ? true : null\"\n (click)=\"toggleOpen()\"\n>\n <div *ngIf=\"triggerTemplate; let tpl\" [class.grow]=\"!dataTemplate\">\n <ng-container\n *ngTemplateOutlet=\"tpl; context: { open: open }\"\n ></ng-container>\n </div>\n <riv-icon\n [class.open]=\"open\"\n [name]=\"'ChevronDown'\"\n [size]=\"getIconSize()\"\n ></riv-icon>\n <div *ngIf=\"dataTemplate; let tpl\" class=\"grow data\">\n <ng-container\n *ngTemplateOutlet=\"tpl; context: { open: open }\"\n ></ng-container>\n </div>\n</button>\n\n<ng-container *ngIf=\"open\">\n <ng-content></ng-content>\n</ng-container>\n", styles: [".toggle-button{display:flex;align-items:center;justify-content:space-between;width:100%;border:none;background:none;padding:var(--size-xsmall);font:var(--input-medium);text-align:left;border-radius:var(--border-radius-medium);color:inherit;gap:var(--size-small);cursor:pointer;transition:background-color var(--short-transition)}.toggle-button:hover:not(:disabled){background-color:var(--surface-light-1)}.toggle-button:active:not(:disabled){background-color:var(--surface-light-2)}.toggle-button:disabled{cursor:default;color:var(--type-light-disabled)}.toggle-button .grow{flex-grow:1}.toggle-button .data{text-align:right}riv-icon{transition:transform var(--medium-transition)}riv-icon.open{transform:rotate(-180deg)}\n"] }]
22
31
  }], propDecorators: { open: [{
23
32
  type: Input
24
33
  }], disabled: [{
25
34
  type: Input
35
+ }], size: [{
36
+ type: Input
26
37
  }], openChange: [{
27
38
  type: Output
28
39
  }], triggerTemplate: [{
29
40
  type: ContentChild,
30
41
  args: ['trigger']
42
+ }], dataTemplate: [{
43
+ type: ContentChild,
44
+ args: ['data']
31
45
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2NvbnRlbnQtdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvY29udGVudC10b2dnbGUvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFRRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBR3RCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0tBVWpFO0lBTEMsVUFBVTtRQUNSLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs0R0FqQlUsZUFBZTtnR0FBZixlQUFlLGlQQ2hCNUIsaWVBaUJBOzJGRERhLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxJQUFJO3NCQURILEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9nZ2xlLmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBvcGVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCgndHJpZ2dlcicpXG4gIHRyaWdnZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgb3BlbjogYm9vbGVhbiB9PjtcblxuICB0b2dnbGVPcGVuKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld09wZW5TdGF0ZSA9ICF0aGlzLm9wZW47XG4gICAgdGhpcy5vcGVuID0gbmV3T3BlblN0YXRlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KG5ld09wZW5TdGF0ZSk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiXG4gIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gdHJ1ZSA6IG51bGxcIlxuICAoY2xpY2spPVwidG9nZ2xlT3BlbigpXCJcbj5cbiAgPGRpdiAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZTsgbGV0IHRwbFwiIGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsOyBjb250ZXh0OiB7IG9wZW46IG9wZW4gfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPHJpdi1pY29uIFtjbGFzcy5vcGVuXT1cIm9wZW5cIiBbbmFtZV09XCInQ2hldnJvbkRvd24nXCIgW3NpemVdPVwiMjBcIj48L3Jpdi1pY29uPlxuPC9idXR0b24+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJvcGVuXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
46
+ (function (ToggleComponent) {
47
+ ToggleComponent.Sizes = ['medium', 'small'];
48
+ })(ToggleComponent || (ToggleComponent = {}));
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2NvbnRlbnQtdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvY29udGVudC10b2dnbGUvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7Ozs7QUFTdkIsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFRRSxTQUFJLEdBQVksS0FBSyxDQUFDO1FBR3RCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsU0FBSSxHQUF5QixRQUFRLENBQUM7UUFHdEMsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0tBc0JqRTtJQWRDLFVBQVU7UUFDUixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVc7UUFDVCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDakIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sRUFBRSxDQUFDO1lBQ1osS0FBSyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzs0R0FoQ1UsZUFBZTtnR0FBZixlQUFlLHNWQ2pCNUIsc3JCQTBCQTsyRkRUYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsSUFBSTtzQkFESCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxNQUFNO2dCQUlQLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxTQUFTO2dCQUl2QixZQUFZO3NCQURYLFlBQVk7dUJBQUMsTUFBTTs7QUFtQnRCLFdBQWlCLGVBQWU7SUFDakIscUJBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQVUsQ0FBQztBQUVwRCxDQUFDLEVBSGdCLGVBQWUsS0FBZixlQUFlLFFBRy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b2dnbGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogVG9nZ2xlQ29tcG9uZW50LlNpemUgPSAnbWVkaXVtJztcblxuICBAT3V0cHV0KClcbiAgb3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ3RyaWdnZXInKVxuICB0cmlnZ2VyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7IG9wZW46IGJvb2xlYW4gfT47XG5cbiAgQENvbnRlbnRDaGlsZCgnZGF0YScpXG4gIGRhdGFUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgb3BlbjogYm9vbGVhbiB9PjtcblxuICB0b2dnbGVPcGVuKCk6IHZvaWQge1xuICAgIGNvbnN0IG5ld09wZW5TdGF0ZSA9ICF0aGlzLm9wZW47XG4gICAgdGhpcy5vcGVuID0gbmV3T3BlblN0YXRlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KG5ld09wZW5TdGF0ZSk7XG4gIH1cblxuICBnZXRJY29uU2l6ZSgpOiBJY29uQ29tcG9uZW50LlNpemUge1xuICAgIHN3aXRjaCAodGhpcy5zaXplKSB7XG4gICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICByZXR1cm4gMjA7XG4gICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgIHJldHVybiAxNjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUb2dnbGVDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgU2l6ZXMgPSBbJ21lZGl1bScsICdzbWFsbCddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBTaXplcylbbnVtYmVyXTtcbn1cbiIsIjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiXG4gIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gdHJ1ZSA6IG51bGxcIlxuICAoY2xpY2spPVwidG9nZ2xlT3BlbigpXCJcbj5cbiAgPGRpdiAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZTsgbGV0IHRwbFwiIFtjbGFzcy5ncm93XT1cIiFkYXRhVGVtcGxhdGVcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRwbDsgY29udGV4dDogeyBvcGVuOiBvcGVuIH1cIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxyaXYtaWNvblxuICAgIFtjbGFzcy5vcGVuXT1cIm9wZW5cIlxuICAgIFtuYW1lXT1cIidDaGV2cm9uRG93bidcIlxuICAgIFtzaXplXT1cImdldEljb25TaXplKClcIlxuICA+PC9yaXYtaWNvbj5cbiAgPGRpdiAqbmdJZj1cImRhdGFUZW1wbGF0ZTsgbGV0IHRwbFwiIGNsYXNzPVwiZ3JvdyBkYXRhXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGw7IGNvbnRleHQ6IHsgb3Blbjogb3BlbiB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9idXR0b24+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJvcGVuXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -30,10 +30,10 @@ export class AllViewsModalComponent {
30
30
  }
31
31
  }
32
32
  AllViewsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AllViewsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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
+ 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 [menuContext]=\"'all-views'\"\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", "size"], outputs: ["openChange"] }, { kind: "component", type: i8.TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }, { kind: "component", type: i9.ViewMenuComponent, selector: "riv-view-menu", inputs: ["manager", "view", "menuContext"] }, { kind: "component", type: i10.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AllViewsModalComponent, decorators: [{
35
35
  type: Component,
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
+ 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 [menuContext]=\"'all-views'\"\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"] }]
37
37
  }], propDecorators: { manager: [{
38
38
  type: Input
39
39
  }], topOffset: [{
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
41
41
  }], close: [{
42
42
  type: Output
43
43
  }] } });
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==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLXZpZXdzLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3MvYWxsLXZpZXdzLW1vZGFsL2FsbC12aWV3cy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL2FsbC12aWV3cy1tb2RhbC9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUXBDLE1BQU0sT0FBTyxzQkFBc0I7SUFObkM7UUFjRSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBR3RCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBVzNCLHVCQUFrQixHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUNqRCw2QkFBd0IsR0FBRyxRQUFRLENBQUMsd0JBQXdCLENBQUM7S0FLOUQ7SUFmQyxhQUFhLENBQUMsVUFBbUM7UUFDL0MsT0FBTyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztZQUMxQixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFVBQVU7WUFDVixJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUtELFNBQVMsQ0FBQyxDQUFTLEVBQUUsSUFBNkI7UUFDaEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O21IQTNCVSxzQkFBc0I7dUdBQXRCLHNCQUFzQixnSkNmbkMseTJKQTZJQTsyRkQ5SGEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNOzhCQU8vQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSaXZWaWV3cyB9IGZyb20gJy4uL3N0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LWFsbC12aWV3cy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbGwtdmlld3MtbW9kYWwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWxsVmlld3NNb2RhbENvbXBvbmVudDxcbiAgVSBleHRlbmRzIFJpdlZpZXdzLlVzZXIsXG4gIFYgZXh0ZW5kcyBSaXZWaWV3cy5WaWV3PFU+LFxuPiB7XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZWaWV3cy5NYW5hZ2VyPFUsIFY+O1xuXG4gIEBJbnB1dCgpXG4gIHRvcE9mZnNldDogbnVtYmVyID0gMDtcblxuICBAT3V0cHV0KClcbiAgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0T3BlbkNoYW5nZShwZXJtaXNzaW9uOiBSaXZWaWV3cy5WaWV3UGVybWlzc2lvbik6IChvcGVuOiBib29sZWFuKSA9PiB2b2lkIHtcbiAgICByZXR1cm4gKG9wZW46IGJvb2xlYW4pID0+XG4gICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICB0eXBlOiAnc2V0QWxsVmlld3NUb2dnbGUnLFxuICAgICAgICBwZXJtaXNzaW9uLFxuICAgICAgICBvcGVuLFxuICAgICAgfSk7XG4gIH1cblxuICBnZXRQZXJtaXNzaW9uVGl0bGUgPSBSaXZWaWV3cy5nZXRQZXJtaXNzaW9uVGl0bGU7XG4gIGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbiA9IFJpdlZpZXdzLmdldFBlcm1pc3Npb25EZXNjcmlwdGlvbjtcblxuICB0cmFja0J5SWQoXzogbnVtYmVyLCB2aWV3OiBSaXZWaWV3cy5GdWxsVmlldzxVLCBWPik6IFZbJ2lkJ10ge1xuICAgIHJldHVybiB2aWV3LmlkO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibWFuYWdlcj8uc3RhdGUgfCBhc3luYzsgbGV0IHNcIj5cbiAgPHJpdi1zaWRlLXNoZWV0IFt0b3BPZmZzZXRdPVwidG9wT2Zmc2V0XCIgKGNsb3NlKT1cImNsb3NlLmVtaXQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICA8aGVhZGVyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+QWxsIHZpZXdzPC9zcGFuPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ1gnXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2UuZW1pdCgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxyaXYtc2VhcmNoXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJcbiAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgIHR5cGU6ICdzZXRBbGxWaWV3c1NlYXJjaFF1ZXJ5JyxcbiAgICAgICAgICAgIHF1ZXJ5OiAkZXZlbnRcbiAgICAgICAgICB9KVxuICAgICAgICBcIlxuICAgICAgICBbdmFsdWVdPVwicy5hbGwuc2VhcmNoXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxuICAgICAgPjwvcml2LXNlYXJjaD5cblxuICAgICAgPGRpdiBjbGFzcz1cInZpZXdzXCI+XG4gICAgICAgIDwhLS0gVmlldyBzZWN0aW9ucyBieSBwZXJtaXNzaW9uIHR5cGUgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwZXJtaXNzaW9uU2VjdGlvblwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdwcml2YXRlJyxcbiAgICAgICAgICAgIG9wZW46IHMuYWxsLnByaXZhdGVPcGVuLFxuICAgICAgICAgICAgb3BlbkNoYW5nZTogZ2V0T3BlbkNoYW5nZSgncHJpdmF0ZScpLFxuICAgICAgICAgICAgdmlld3M6IHMuYWxsLnByaXZhdGVWaWV3cyxcbiAgICAgICAgICAgIHRpdGxlOiBnZXRQZXJtaXNzaW9uVGl0bGUoJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBnZXRQZXJtaXNzaW9uRGVzY3JpcHRpb24oJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgIGVtcHR5U3RhdGVNZXNzYWdlOiBzLmFsbC5wcml2YXRlRW1wdHlTdGF0ZU1lc3NhZ2VcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicGVybWlzc2lvblNlY3Rpb25cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnc2hhcmVkJyxcbiAgICAgICAgICAgIG9wZW46IHMuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICBvcGVuQ2hhbmdlOiBnZXRPcGVuQ2hhbmdlKCdzaGFyZWQnKSxcbiAgICAgICAgICAgIHZpZXdzOiBzLmFsbC5zaGFyZWRWaWV3cyxcbiAgICAgICAgICAgIHRpdGxlOiBnZXRQZXJtaXNzaW9uVGl0bGUoJ3NoYXJlZCcpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbignc2hhcmVkJyksXG4gICAgICAgICAgICBlbXB0eVN0YXRlTWVzc2FnZTogcy5hbGwuc2hhcmVkRW1wdHlTdGF0ZU1lc3NhZ2VcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicGVybWlzc2lvblNlY3Rpb25cIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAncHVibGljJyxcbiAgICAgICAgICAgIG9wZW46IHMuYWxsLnB1YmxpY09wZW4sXG4gICAgICAgICAgICBvcGVuQ2hhbmdlOiBnZXRPcGVuQ2hhbmdlKCdwdWJsaWMnKSxcbiAgICAgICAgICAgIHZpZXdzOiBzLmFsbC5wdWJsaWNWaWV3cyxcbiAgICAgICAgICAgIHRpdGxlOiBnZXRQZXJtaXNzaW9uVGl0bGUoJ3B1YmxpYycpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGdldFBlcm1pc3Npb25EZXNjcmlwdGlvbigncHVibGljJyksXG4gICAgICAgICAgICBlbXB0eVN0YXRlTWVzc2FnZTogcy5hbGwucHVibGljRW1wdHlTdGF0ZU1lc3NhZ2VcbiAgICAgICAgICB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUGVybWlzc2lvbiBzZWN0aW9uIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAjcGVybWlzc2lvblNlY3Rpb25cbiAgICAgICAgICBsZXQtcGVybWlzc2lvbj1cInBlcm1pc3Npb25cIlxuICAgICAgICAgIGxldC1vcGVuPVwib3BlblwiXG4gICAgICAgICAgbGV0LW9wZW5DaGFuZ2U9XCJvcGVuQ2hhbmdlXCJcbiAgICAgICAgICBsZXQtdmlld3M9XCJ2aWV3c1wiXG4gICAgICAgICAgbGV0LXRpdGxlPVwidGl0bGVcIlxuICAgICAgICAgIGxldC1kZXNjcmlwdGlvbj1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICBsZXQtZW1wdHlTdGF0ZU1lc3NhZ2U9XCJlbXB0eVN0YXRlTWVzc2FnZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cml2LXRvZ2dsZVxuICAgICAgICAgICAgW29wZW5dPVwib3BlblwiXG4gICAgICAgICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhcy5hbGwuc2VhcmNoXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RyaWdnZXI+XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicGVybWlzc2lvbi10aXRsZVwiPnt7IHRpdGxlIH19PC9oMz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm1pc3Npb24tZGVzY3JpcHRpb25cIj57eyBkZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlld3MtbGlzdFwiICpuZ0lmPVwidmlld3MubGVuZ3RoID4gMDsgZWxzZSBub1ZpZXdzXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmlldyBvZiB2aWV3czsgdHJhY2tCeTogdHJhY2tCeUlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZpZXctaXRlbVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxuICAgICAgICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZXRBY3RpdmVWaWV3JyxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHZpZXcuaWRcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgY2xvc2UuZW1pdCgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3LXRpdGxlXCIgcml2VHJ1bmNhdGU+XG4gICAgICAgICAgICAgICAgICA8cml2LWhpZ2hsaWdodFxuICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJ2aWV3LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2luZGljZXNdPVwidmlldy50aXRsZUhpZ2hsaWdodEluZGljZXMgPz8gW11cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPC9yaXYtaGlnaGxpZ2h0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxyaXYtdmlldy1tZW51XG4gICAgICAgICAgICAgICAgICBbbWFuYWdlcl09XCJtYW5hZ2VyXCJcbiAgICAgICAgICAgICAgICAgIFt2aWV3XT1cInZpZXdcIlxuICAgICAgICAgICAgICAgICAgW21lbnVDb250ZXh0XT1cIidhbGwtdmlld3MnXCJcbiAgICAgICAgICAgICAgICA+PC9yaXYtdmlldy1tZW51PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZW5hYmxlLXZpZXdcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmVuYWJsZWRdPVwidmlldy5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc2V0RW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IHZpZXcuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogIXZpZXcuZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ2aWV3LnN5c3RlbVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHZpZXcuc3lzdGVtID8gJ0xvY2snIDogdmlldy5lbmFibGVkID8gJ0V5ZScgOiAnRXllT2ZmJ1xuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMFwiXG4gICAgICAgICAgICAgICAgICA+PC9yaXYtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9WaWV3cz5cbiAgICAgICAgICAgICAgPHJpdi16ZXJvLXN0YXRlIFttZXNzYWdlXT1cImVtcHR5U3RhdGVNZXNzYWdlXCI+PC9yaXYtemVyby1zdGF0ZT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9yaXYtdG9nZ2xlPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvcml2LXNpZGUtc2hlZXQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
2
  import { cloneDeep, isEqual } from 'lodash';
3
+ import { RivSelect } from '../../../input/select/state';
3
4
  import { RivViews } from '../state';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/common";
@@ -8,7 +9,8 @@ import * as i3 from "../../../overlay/callout/callout.component";
8
9
  import * as i4 from "../../../input/checkbox/checkbox.component";
9
10
  import * as i5 from "../../../icon/icon.component";
10
11
  import * as i6 from "../../../overlay/overlay.directive";
11
- import * as i7 from "../../../input/text-field/text-field.component";
12
+ import * as i7 from "../../../input/select/select/select.component";
13
+ import * as i8 from "../../../input/text-field/text-field.component";
12
14
  const titles = {
13
15
  private: 'Private',
14
16
  public: 'Public',
@@ -33,6 +35,7 @@ export class EditViewComponent {
33
35
  }
34
36
  resetView() {
35
37
  this.editedView = cloneDeep(this.view);
38
+ this.setUpUserSelectManager();
36
39
  }
37
40
  ngOnInit() {
38
41
  this.resetView();
@@ -42,6 +45,9 @@ export class EditViewComponent {
42
45
  this.resetView();
43
46
  }
44
47
  }
48
+ ngOnDestroy() {
49
+ this.tearDownUserSelectManager();
50
+ }
45
51
  isClean() {
46
52
  return isEqual(this.editedView, this.view);
47
53
  }
@@ -57,18 +63,49 @@ export class EditViewComponent {
57
63
  if (this.editedView)
58
64
  this.editedView.default = value;
59
65
  }
66
+ getSharedUsers(view) {
67
+ if (RivViews.isSharedView(view)) {
68
+ return view.sharedUsers;
69
+ }
70
+ return [];
71
+ }
72
+ tearDownUserSelectManager() {
73
+ this.userSelectSubscription?.unsubscribe();
74
+ }
75
+ setUpUserSelectManager() {
76
+ this.tearDownUserSelectManager();
77
+ this.userSelectManager = RivSelect.createInMemoryManager(async () => [{ options: await (this.userSource || (() => []))() }], {
78
+ allowSearch: true,
79
+ allowSelectAll: true,
80
+ allowMultiSelect: true,
81
+ displayLimit: 500,
82
+ initialState: {
83
+ selection: {
84
+ selected: new RivSelect.OptionSet(this.getSharedUsers(this.editedView)),
85
+ },
86
+ },
87
+ });
88
+ this.userSelectSubscription = this.userSelectManager.state.subscribe(state => {
89
+ if (RivViews.isSharedView(this.editedView)) {
90
+ this.editedView.sharedUsers = [...state.selection.selected];
91
+ }
92
+ });
93
+ this.userSelectManager.actions.next({ type: 'load' });
94
+ }
60
95
  }
61
96
  EditViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EditViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- EditViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EditViewComponent, selector: "riv-edit-view", inputs: { anchor: "anchor", autoSelectName: "autoSelectName", view: "view" }, outputs: { save: "save", delete: "delete", close: "close" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"editedView; let ev\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor ?? null\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n (close)=\"close.emit()\"\n >\n <div class=\"edit-view\">\n <riv-text-field\n [label]=\"'Name'\"\n [required]=\"true\"\n [autoFocus]=\"autoSelectName ? 'select' : false\"\n [value]=\"ev.title ?? ''\"\n (valueChange)=\"titleChange($event)\"\n ></riv-text-field>\n\n <hr class=\"divider\" />\n\n <div class=\"permissions\">\n <div class=\"permission-label\">View permissions</div>\n\n <div class=\"permission-options\">\n <button\n *ngFor=\"let option of permissionOptions\"\n class=\"permission-option\"\n type=\"button\"\n [attr.aria-checked]=\"ev.permission === option.value\"\n [attr.aria-label]=\"option.title + ' permission'\"\n (click)=\"permissionChange(option.value)\"\n >\n <div class=\"option-content\">\n <span>{{ option.title }}</span>\n <span class=\"option-description\">{{ option.subtitle }}</span>\n </div>\n <riv-icon\n *ngIf=\"ev.permission === option.value\"\n class=\"permission-indicator\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n </button>\n </div>\n </div>\n\n <hr class=\"divider\" />\n\n <riv-checkbox\n [value]=\"ev.default ?? false\"\n (valueChange)=\"defaultChange($event)\"\n >\n Set as my default view\n </riv-checkbox>\n\n <hr class=\"divider\" />\n\n <div class=\"actions\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'Trash2'\"\n (click)=\"delete.emit(ev); close.emit()\"\n >\n Delete\n </button>\n\n <div class=\"primary-actions\">\n <button rivButton [variant]=\"'ghost'\" (click)=\"close.emit()\">\n Cancel\n </button>\n <button\n rivButton\n [variant]=\"'primary'\"\n [disabled]=\"isClean()\"\n (click)=\"save.emit(ev); close.emit()\"\n >\n Save\n </button>\n </div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n", styles: [".edit-view{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large);width:calc(var(--base-grid-size) * 104);max-width:50vw}.divider{height:var(--border-width);background-color:var(--border-light);border:0;width:100%}.permissions{display:flex;flex-direction:column;gap:var(--size-medium)}.permission-options{display:flex;flex-direction:column}.permission-label{font:var(--title-02)}.permission-option{display:flex;justify-content:space-between;align-items:center;padding:var(--size-small) var(--size-medium);border-radius:var(--border-radius-large);cursor:pointer}.permission-option:hover{background-color:var(--surface-light-1)}.permission-option:active{background-color:var(--surface-light-2)}.option-content{font:var(--body-medium);display:flex;flex-direction:column;align-items:flex-start}.option-description{color:var(--type-light-low-contrast)}.permission-indicator{color:var(--type-light-link)}.actions{display:flex;justify-content:space-between;align-items:center}.primary-actions{display:flex;align-items:center;gap:var(--size-small)}\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.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i3.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i4.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required"], outputs: ["valueChange"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i6.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i7.TextFieldComponent, selector: "riv-text-field", inputs: ["disabled", "readonly", "placeholder", "state", "casing", "type", "size", "autoFocus", "name", "minLength", "maxLength", "value"], outputs: ["valueChange", "blur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
97
+ EditViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: EditViewComponent, selector: "riv-edit-view", inputs: { anchor: "anchor", autoSelectName: "autoSelectName", view: "view", userSource: "userSource" }, outputs: { save: "save", delete: "delete", close: "close" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"editedView; let ev\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor ?? null\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n (close)=\"close.emit()\"\n >\n <div class=\"edit-view\">\n <riv-text-field\n [label]=\"'Name'\"\n [required]=\"true\"\n [autoFocus]=\"autoSelectName ? 'select' : false\"\n [value]=\"ev.title ?? ''\"\n (valueChange)=\"titleChange($event)\"\n ></riv-text-field>\n\n <hr class=\"divider\" />\n\n <div class=\"permissions\">\n <div class=\"permission-label\">View permissions</div>\n\n <div class=\"permission-options\">\n <button\n *ngFor=\"let option of permissionOptions\"\n class=\"permission-option\"\n [class.current]=\"ev.permission === option.value\"\n type=\"button\"\n [attr.aria-checked]=\"ev.permission === option.value\"\n [attr.aria-label]=\"option.title + ' permission'\"\n (click)=\"permissionChange(option.value)\"\n >\n <div class=\"option-content\">\n <div class=\"option-title\">\n <span>{{ option.title }}</span>\n <span class=\"option-description\">{{ option.subtitle }}</span>\n </div>\n <riv-icon\n *ngIf=\"ev.permission === option.value\"\n class=\"permission-indicator\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n </div>\n <riv-select\n *ngIf=\"\n ev.permission === 'shared' &&\n option.value === 'shared' &&\n userSelectManager\n \"\n [label]=\"'Users with access'\"\n [manager]=\"userSelectManager\"\n ></riv-select>\n </button>\n </div>\n </div>\n\n <hr class=\"divider\" />\n\n <riv-checkbox\n [value]=\"ev.default ?? false\"\n (valueChange)=\"defaultChange($event)\"\n >\n Set as my default view\n </riv-checkbox>\n\n <hr class=\"divider\" />\n\n <div class=\"actions\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'Trash2'\"\n (click)=\"delete.emit(ev); close.emit()\"\n >\n Delete\n </button>\n\n <div class=\"primary-actions\">\n <button rivButton [variant]=\"'ghost'\" (click)=\"close.emit()\">\n Cancel\n </button>\n <button\n rivButton\n [variant]=\"'primary'\"\n [disabled]=\"isClean()\"\n (click)=\"save.emit(ev); close.emit()\"\n >\n Save\n </button>\n </div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n", styles: [".edit-view{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large);width:calc(var(--base-grid-size) * 104);max-width:50vw}.divider{height:var(--border-width);background-color:var(--border-light);border:0;width:100%}.permissions{display:flex;flex-direction:column;gap:var(--size-medium)}.permission-options{display:flex;flex-direction:column}.permission-label{font:var(--title-02)}.permission-option{display:flex;flex-direction:column;gap:var(--size-small);padding:var(--size-small) var(--size-medium);border-radius:var(--border-radius-large);cursor:pointer;text-align:left}.permission-option:hover{background-color:var(--surface-light-1)}.permission-option:active,.permission-option.current{background-color:var(--surface-light-2)}.option-content{display:flex;justify-content:space-between;align-items:center}.option-title{font:var(--body-medium);display:flex;flex-direction:column;align-items:flex-start}.option-description{color:var(--type-light-low-contrast)}.permission-indicator{color:var(--type-light-link)}.actions{display:flex;justify-content:space-between;align-items:center}.primary-actions{display:flex;align-items:center;gap:var(--size-small)}\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.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i3.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i4.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required"], outputs: ["valueChange"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i6.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i7.SelectComponent, selector: "riv-select", inputs: ["manager", "disabled", "locked"] }, { kind: "component", type: i8.TextFieldComponent, selector: "riv-text-field", inputs: ["disabled", "readonly", "placeholder", "state", "casing", "type", "size", "autoFocus", "name", "minLength", "maxLength", "value"], outputs: ["valueChange", "blur"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
63
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EditViewComponent, decorators: [{
64
99
  type: Component,
65
- args: [{ selector: 'riv-edit-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"editedView; let ev\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor ?? null\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n (close)=\"close.emit()\"\n >\n <div class=\"edit-view\">\n <riv-text-field\n [label]=\"'Name'\"\n [required]=\"true\"\n [autoFocus]=\"autoSelectName ? 'select' : false\"\n [value]=\"ev.title ?? ''\"\n (valueChange)=\"titleChange($event)\"\n ></riv-text-field>\n\n <hr class=\"divider\" />\n\n <div class=\"permissions\">\n <div class=\"permission-label\">View permissions</div>\n\n <div class=\"permission-options\">\n <button\n *ngFor=\"let option of permissionOptions\"\n class=\"permission-option\"\n type=\"button\"\n [attr.aria-checked]=\"ev.permission === option.value\"\n [attr.aria-label]=\"option.title + ' permission'\"\n (click)=\"permissionChange(option.value)\"\n >\n <div class=\"option-content\">\n <span>{{ option.title }}</span>\n <span class=\"option-description\">{{ option.subtitle }}</span>\n </div>\n <riv-icon\n *ngIf=\"ev.permission === option.value\"\n class=\"permission-indicator\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n </button>\n </div>\n </div>\n\n <hr class=\"divider\" />\n\n <riv-checkbox\n [value]=\"ev.default ?? false\"\n (valueChange)=\"defaultChange($event)\"\n >\n Set as my default view\n </riv-checkbox>\n\n <hr class=\"divider\" />\n\n <div class=\"actions\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'Trash2'\"\n (click)=\"delete.emit(ev); close.emit()\"\n >\n Delete\n </button>\n\n <div class=\"primary-actions\">\n <button rivButton [variant]=\"'ghost'\" (click)=\"close.emit()\">\n Cancel\n </button>\n <button\n rivButton\n [variant]=\"'primary'\"\n [disabled]=\"isClean()\"\n (click)=\"save.emit(ev); close.emit()\"\n >\n Save\n </button>\n </div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n", styles: [".edit-view{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large);width:calc(var(--base-grid-size) * 104);max-width:50vw}.divider{height:var(--border-width);background-color:var(--border-light);border:0;width:100%}.permissions{display:flex;flex-direction:column;gap:var(--size-medium)}.permission-options{display:flex;flex-direction:column}.permission-label{font:var(--title-02)}.permission-option{display:flex;justify-content:space-between;align-items:center;padding:var(--size-small) var(--size-medium);border-radius:var(--border-radius-large);cursor:pointer}.permission-option:hover{background-color:var(--surface-light-1)}.permission-option:active{background-color:var(--surface-light-2)}.option-content{font:var(--body-medium);display:flex;flex-direction:column;align-items:flex-start}.option-description{color:var(--type-light-low-contrast)}.permission-indicator{color:var(--type-light-link)}.actions{display:flex;justify-content:space-between;align-items:center}.primary-actions{display:flex;align-items:center;gap:var(--size-small)}\n"] }]
100
+ args: [{ selector: 'riv-edit-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"editedView; let ev\">\n <riv-callout\n *riv-overlay\n [anchor]=\"anchor ?? null\"\n [isModal]=\"true\"\n [showCaret]=\"false\"\n [theme]=\"'light'\"\n [preferredPosition]=\"'bottom-right'\"\n (close)=\"close.emit()\"\n >\n <div class=\"edit-view\">\n <riv-text-field\n [label]=\"'Name'\"\n [required]=\"true\"\n [autoFocus]=\"autoSelectName ? 'select' : false\"\n [value]=\"ev.title ?? ''\"\n (valueChange)=\"titleChange($event)\"\n ></riv-text-field>\n\n <hr class=\"divider\" />\n\n <div class=\"permissions\">\n <div class=\"permission-label\">View permissions</div>\n\n <div class=\"permission-options\">\n <button\n *ngFor=\"let option of permissionOptions\"\n class=\"permission-option\"\n [class.current]=\"ev.permission === option.value\"\n type=\"button\"\n [attr.aria-checked]=\"ev.permission === option.value\"\n [attr.aria-label]=\"option.title + ' permission'\"\n (click)=\"permissionChange(option.value)\"\n >\n <div class=\"option-content\">\n <div class=\"option-title\">\n <span>{{ option.title }}</span>\n <span class=\"option-description\">{{ option.subtitle }}</span>\n </div>\n <riv-icon\n *ngIf=\"ev.permission === option.value\"\n class=\"permission-indicator\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n </div>\n <riv-select\n *ngIf=\"\n ev.permission === 'shared' &&\n option.value === 'shared' &&\n userSelectManager\n \"\n [label]=\"'Users with access'\"\n [manager]=\"userSelectManager\"\n ></riv-select>\n </button>\n </div>\n </div>\n\n <hr class=\"divider\" />\n\n <riv-checkbox\n [value]=\"ev.default ?? false\"\n (valueChange)=\"defaultChange($event)\"\n >\n Set as my default view\n </riv-checkbox>\n\n <hr class=\"divider\" />\n\n <div class=\"actions\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'Trash2'\"\n (click)=\"delete.emit(ev); close.emit()\"\n >\n Delete\n </button>\n\n <div class=\"primary-actions\">\n <button rivButton [variant]=\"'ghost'\" (click)=\"close.emit()\">\n Cancel\n </button>\n <button\n rivButton\n [variant]=\"'primary'\"\n [disabled]=\"isClean()\"\n (click)=\"save.emit(ev); close.emit()\"\n >\n Save\n </button>\n </div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n", styles: [".edit-view{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large);width:calc(var(--base-grid-size) * 104);max-width:50vw}.divider{height:var(--border-width);background-color:var(--border-light);border:0;width:100%}.permissions{display:flex;flex-direction:column;gap:var(--size-medium)}.permission-options{display:flex;flex-direction:column}.permission-label{font:var(--title-02)}.permission-option{display:flex;flex-direction:column;gap:var(--size-small);padding:var(--size-small) var(--size-medium);border-radius:var(--border-radius-large);cursor:pointer;text-align:left}.permission-option:hover{background-color:var(--surface-light-1)}.permission-option:active,.permission-option.current{background-color:var(--surface-light-2)}.option-content{display:flex;justify-content:space-between;align-items:center}.option-title{font:var(--body-medium);display:flex;flex-direction:column;align-items:flex-start}.option-description{color:var(--type-light-low-contrast)}.permission-indicator{color:var(--type-light-link)}.actions{display:flex;justify-content:space-between;align-items:center}.primary-actions{display:flex;align-items:center;gap:var(--size-small)}\n"] }]
66
101
  }], propDecorators: { anchor: [{
67
102
  type: Input
68
103
  }], autoSelectName: [{
69
104
  type: Input
70
105
  }], view: [{
71
106
  type: Input
107
+ }], userSource: [{
108
+ type: Input
72
109
  }], save: [{
73
110
  type: Output
74
111
  }], delete: [{
@@ -76,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
76
113
  }], close: [{
77
114
  type: Output
78
115
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3MvZWRpdC12aWV3L2VkaXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL2VkaXQtdmlldy9lZGl0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7O0FBRXBDLE1BQU0sTUFBTSxHQUE0QztJQUN0RCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQTRDO0lBQ3pELE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixNQUFNLEVBQUUsbUNBQW1DO0NBQzVDLENBQUM7QUFRRixNQUFNLE9BQU8saUJBQWlCO0lBTjlCO1FBYUUsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFRaEMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUF3QixDQUFDO1FBR2hELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUdsRCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkUsS0FBSyxFQUFFLFVBQVU7WUFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDekIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUM7U0FDaEMsQ0FBQyxDQUFDLENBQUM7S0ErQkw7SUE3QlMsU0FBUztRQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQThCO1FBQzdDLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFjO1FBQzFCLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkQsQ0FBQzs7OEdBekRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQy9COUIsdTZFQXFGQTsyRkR0RGEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs4QkFNL0MsTUFBTTtzQkFETCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxNQUFNO2dCQUlQLE1BQU07c0JBREwsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSaXZWaWV3cyB9IGZyb20gJy4uL3N0YXRlJztcblxuY29uc3QgdGl0bGVzOiBSZWNvcmQ8Uml2Vmlld3MuVmlld1Blcm1pc3Npb24sIHN0cmluZz4gPSB7XG4gIHByaXZhdGU6ICdQcml2YXRlJyxcbiAgcHVibGljOiAnUHVibGljJyxcbiAgc2hhcmVkOiAnU2hhcmVkJyxcbn07XG5cbmNvbnN0IHN1YnRpdGxlczogUmVjb3JkPFJpdlZpZXdzLlZpZXdQZXJtaXNzaW9uLCBzdHJpbmc+ID0ge1xuICBwcml2YXRlOiAnT25seSB2aXNpYmxlIHRvIHlvdScsXG4gIHB1YmxpYzogJ1Zpc2libGUgdG8gZXZlcnlvbmUnLFxuICBzaGFyZWQ6ICdPbmx5IHZpc2libGUgdG8gdGhvc2Ugd2l0aCBhY2Nlc3MnLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LWVkaXQtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0LXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdFZpZXdDb21wb25lbnQ8ViBleHRlbmRzIFJpdlZpZXdzLlZpZXc+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgYW5jaG9yPzogRWxlbWVudCB8IERPTVJlY3QgfCBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9TZWxlY3ROYW1lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmlldz86IFJpdlZpZXdzLkZ1bGxWaWV3PFY+O1xuXG4gIGVkaXRlZFZpZXc/OiBSaXZWaWV3cy5GdWxsVmlldzxWPjtcblxuICBAT3V0cHV0KClcbiAgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Uml2Vmlld3MuRnVsbFZpZXc8Vj4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Uml2Vmlld3MuRnVsbFZpZXc8Vj4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25PcHRpb25zID0gUml2Vmlld3MuVmlld1Blcm1pc3Npb25zLm1hcChwZXJtaXNzaW9uID0+ICh7XG4gICAgdmFsdWU6IHBlcm1pc3Npb24sXG4gICAgdGl0bGU6IHRpdGxlc1twZXJtaXNzaW9uXSxcbiAgICBzdWJ0aXRsZTogc3VidGl0bGVzW3Blcm1pc3Npb25dLFxuICB9KSk7XG5cbiAgcHJpdmF0ZSByZXNldFZpZXcoKSB7XG4gICAgdGhpcy5lZGl0ZWRWaWV3ID0gY2xvbmVEZWVwKHRoaXMudmlldyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VmlldygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd2aWV3J10pIHtcbiAgICAgIHRoaXMucmVzZXRWaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgaXNDbGVhbigpIHtcbiAgICByZXR1cm4gaXNFcXVhbCh0aGlzLmVkaXRlZFZpZXcsIHRoaXMudmlldyk7XG4gIH1cblxuICB0aXRsZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRpdGVkVmlldykgdGhpcy5lZGl0ZWRWaWV3LnRpdGxlID0gdmFsdWU7XG4gIH1cblxuICBwZXJtaXNzaW9uQ2hhbmdlKHZhbHVlOiBSaXZWaWV3cy5WaWV3UGVybWlzc2lvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRlZFZpZXcpIHRoaXMuZWRpdGVkVmlldy5wZXJtaXNzaW9uID0gdmFsdWU7XG4gIH1cblxuICBkZWZhdWx0Q2hhbmdlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRpdGVkVmlldykgdGhpcy5lZGl0ZWRWaWV3LmRlZmF1bHQgPSB2YWx1ZTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRlZFZpZXc7IGxldCBldlwiPlxuICA8cml2LWNhbGxvdXRcbiAgICAqcml2LW92ZXJsYXlcbiAgICBbYW5jaG9yXT1cImFuY2hvciA/PyBudWxsXCJcbiAgICBbaXNNb2RhbF09XCJ0cnVlXCJcbiAgICBbc2hvd0NhcmV0XT1cImZhbHNlXCJcbiAgICBbdGhlbWVdPVwiJ2xpZ2h0J1wiXG4gICAgW3ByZWZlcnJlZFBvc2l0aW9uXT1cIidib3R0b20tcmlnaHQnXCJcbiAgICAoY2xvc2UpPVwiY2xvc2UuZW1pdCgpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJlZGl0LXZpZXdcIj5cbiAgICAgIDxyaXYtdGV4dC1maWVsZFxuICAgICAgICBbbGFiZWxdPVwiJ05hbWUnXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICBbYXV0b0ZvY3VzXT1cImF1dG9TZWxlY3ROYW1lID8gJ3NlbGVjdCcgOiBmYWxzZVwiXG4gICAgICAgIFt2YWx1ZV09XCJldi50aXRsZSA/PyAnJ1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ0aXRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L3Jpdi10ZXh0LWZpZWxkPlxuXG4gICAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cInBlcm1pc3Npb25zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtaXNzaW9uLWxhYmVsXCI+VmlldyBwZXJtaXNzaW9uczwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtaXNzaW9uLW9wdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHBlcm1pc3Npb25PcHRpb25zXCJcbiAgICAgICAgICAgIGNsYXNzPVwicGVybWlzc2lvbi1vcHRpb25cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiZXYucGVybWlzc2lvbiA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uLnRpdGxlICsgJyBwZXJtaXNzaW9uJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwicGVybWlzc2lvbkNoYW5nZShvcHRpb24udmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgb3B0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9wdGlvbi1kZXNjcmlwdGlvblwiPnt7IG9wdGlvbi5zdWJ0aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiZXYucGVybWlzc2lvbiA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwZXJtaXNzaW9uLWluZGljYXRvclwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidDaGVjaydcIlxuICAgICAgICAgICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICAgICAgICA+PC9yaXYtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiIC8+XG5cbiAgICAgIDxyaXYtY2hlY2tib3hcbiAgICAgICAgW3ZhbHVlXT1cImV2LmRlZmF1bHQgPz8gZmFsc2VcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZGVmYXVsdENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgU2V0IGFzIG15IGRlZmF1bHQgdmlld1xuICAgICAgPC9yaXYtY2hlY2tib3g+XG5cbiAgICAgIDxociBjbGFzcz1cImRpdmlkZXJcIiAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgW2ljb25dPVwiJ1RyYXNoMidcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGUuZW1pdChldik7IGNsb3NlLmVtaXQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBEZWxldGVcbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByaW1hcnktYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b24gcml2QnV0dG9uIFt2YXJpYW50XT1cIidnaG9zdCdcIiAoY2xpY2spPVwiY2xvc2UuZW1pdCgpXCI+XG4gICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgIFt2YXJpYW50XT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNDbGVhbigpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzYXZlLmVtaXQoZXYpOyBjbG9zZS5lbWl0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9yaXYtY2FsbG91dD5cbjwvbmctY29udGFpbmVyPlxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3MvZWRpdC12aWV3L2VkaXQtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL2VkaXQtdmlldy9lZGl0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7QUFFcEMsTUFBTSxNQUFNLEdBQTRDO0lBQ3RELE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE1BQU0sRUFBRSxRQUFRO0NBQ2pCLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBNEM7SUFDekQsT0FBTyxFQUFFLHFCQUFxQjtJQUM5QixNQUFNLEVBQUUscUJBQXFCO0lBQzdCLE1BQU0sRUFBRSxtQ0FBbUM7Q0FDNUMsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFlRSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQVdoQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFHbkQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBR3JELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhCLHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RSxLQUFLLEVBQUUsVUFBVTtZQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN6QixRQUFRLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQztTQUNoQyxDQUFDLENBQUMsQ0FBQztLQThFTDtJQTVFUyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUE4QjtRQUM3QyxJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYztRQUMxQixJQUFJLElBQUksQ0FBQyxVQUFVO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxjQUFjLENBQUMsSUFBOEI7UUFDbkQsSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUN6QjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUtPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixDQUN0RCxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUNsRTtZQUNFLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsWUFBWSxFQUFFLEdBQUc7WUFDakIsWUFBWSxFQUFFO2dCQUNaLFNBQVMsRUFBRTtvQkFDVCxRQUFRLEVBQUUsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDckM7aUJBQ0Y7YUFDRjtTQUNGLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDbEUsS0FBSyxDQUFDLEVBQUU7WUFDTixJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQVEsQ0FBQzthQUNwRTtRQUNILENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs4R0E3R1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsK09DbEM5QixzM0ZBaUdBOzJGRC9EYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzhCQVEvQyxNQUFNO3NCQURMLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFNTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxNQUFNO2dCQUlQLE1BQU07c0JBREwsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUml2U2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvc2VsZWN0L3N0YXRlJztcbmltcG9ydCB7IFJpdlZpZXdzIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5jb25zdCB0aXRsZXM6IFJlY29yZDxSaXZWaWV3cy5WaWV3UGVybWlzc2lvbiwgc3RyaW5nPiA9IHtcbiAgcHJpdmF0ZTogJ1ByaXZhdGUnLFxuICBwdWJsaWM6ICdQdWJsaWMnLFxuICBzaGFyZWQ6ICdTaGFyZWQnLFxufTtcblxuY29uc3Qgc3VidGl0bGVzOiBSZWNvcmQ8Uml2Vmlld3MuVmlld1Blcm1pc3Npb24sIHN0cmluZz4gPSB7XG4gIHByaXZhdGU6ICdPbmx5IHZpc2libGUgdG8geW91JyxcbiAgcHVibGljOiAnVmlzaWJsZSB0byBldmVyeW9uZScsXG4gIHNoYXJlZDogJ09ubHkgdmlzaWJsZSB0byB0aG9zZSB3aXRoIGFjY2VzcycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtZWRpdC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXQtdmlldy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBFZGl0Vmlld0NvbXBvbmVudDxcbiAgVSBleHRlbmRzIFJpdlZpZXdzLlVzZXIsXG4gIFYgZXh0ZW5kcyBSaXZWaWV3cy5WaWV3PFU+LFxuPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgYW5jaG9yPzogRWxlbWVudCB8IERPTVJlY3QgfCBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGF1dG9TZWxlY3ROYW1lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmlldz86IFJpdlZpZXdzLkZ1bGxWaWV3PFUsIFY+O1xuXG4gIGVkaXRlZFZpZXc/OiBSaXZWaWV3cy5GdWxsVmlldzxVLCBWPjtcblxuICBASW5wdXQoKVxuICB1c2VyU291cmNlPzogUml2Vmlld3MuVXNlclNvdXJjZTxVPjtcblxuICBAT3V0cHV0KClcbiAgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Uml2Vmlld3MuRnVsbFZpZXc8VSwgVj4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Uml2Vmlld3MuRnVsbFZpZXc8VSwgVj4+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IHBlcm1pc3Npb25PcHRpb25zID0gUml2Vmlld3MuVmlld1Blcm1pc3Npb25zLm1hcChwZXJtaXNzaW9uID0+ICh7XG4gICAgdmFsdWU6IHBlcm1pc3Npb24sXG4gICAgdGl0bGU6IHRpdGxlc1twZXJtaXNzaW9uXSxcbiAgICBzdWJ0aXRsZTogc3VidGl0bGVzW3Blcm1pc3Npb25dLFxuICB9KSk7XG5cbiAgcHJpdmF0ZSByZXNldFZpZXcoKSB7XG4gICAgdGhpcy5lZGl0ZWRWaWV3ID0gY2xvbmVEZWVwKHRoaXMudmlldyk7XG4gICAgdGhpcy5zZXRVcFVzZXJTZWxlY3RNYW5hZ2VyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VmlldygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd2aWV3J10pIHtcbiAgICAgIHRoaXMucmVzZXRWaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50ZWFyRG93blVzZXJTZWxlY3RNYW5hZ2VyKCk7XG4gIH1cblxuICBpc0NsZWFuKCkge1xuICAgIHJldHVybiBpc0VxdWFsKHRoaXMuZWRpdGVkVmlldywgdGhpcy52aWV3KTtcbiAgfVxuXG4gIHRpdGxlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lZGl0ZWRWaWV3KSB0aGlzLmVkaXRlZFZpZXcudGl0bGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHBlcm1pc3Npb25DaGFuZ2UodmFsdWU6IFJpdlZpZXdzLlZpZXdQZXJtaXNzaW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWRpdGVkVmlldykgdGhpcy5lZGl0ZWRWaWV3LnBlcm1pc3Npb24gPSB2YWx1ZTtcbiAgfVxuXG4gIGRlZmF1bHRDaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lZGl0ZWRWaWV3KSB0aGlzLmVkaXRlZFZpZXcuZGVmYXVsdCA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTaGFyZWRVc2Vycyh2aWV3PzogUml2Vmlld3MuRnVsbFZpZXc8VSwgVj4pOiBVW10ge1xuICAgIGlmIChSaXZWaWV3cy5pc1NoYXJlZFZpZXcodmlldykpIHtcbiAgICAgIHJldHVybiB2aWV3LnNoYXJlZFVzZXJzO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICB1c2VyU2VsZWN0TWFuYWdlcj86IFJpdlNlbGVjdC5NYW5hZ2VyPFU+O1xuICBwcml2YXRlIHVzZXJTZWxlY3RTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSB0ZWFyRG93blVzZXJTZWxlY3RNYW5hZ2VyKCk6IHZvaWQge1xuICAgIHRoaXMudXNlclNlbGVjdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VXBVc2VyU2VsZWN0TWFuYWdlcigpOiB2b2lkIHtcbiAgICB0aGlzLnRlYXJEb3duVXNlclNlbGVjdE1hbmFnZXIoKTtcbiAgICB0aGlzLnVzZXJTZWxlY3RNYW5hZ2VyID0gUml2U2VsZWN0LmNyZWF0ZUluTWVtb3J5TWFuYWdlcihcbiAgICAgIGFzeW5jICgpID0+IFt7IG9wdGlvbnM6IGF3YWl0ICh0aGlzLnVzZXJTb3VyY2UgfHwgKCgpID0+IFtdKSkoKSB9XSxcbiAgICAgIHtcbiAgICAgICAgYWxsb3dTZWFyY2g6IHRydWUsXG4gICAgICAgIGFsbG93U2VsZWN0QWxsOiB0cnVlLFxuICAgICAgICBhbGxvd011bHRpU2VsZWN0OiB0cnVlLFxuICAgICAgICBkaXNwbGF5TGltaXQ6IDUwMCxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgc2VsZWN0aW9uOiB7XG4gICAgICAgICAgICBzZWxlY3RlZDogbmV3IFJpdlNlbGVjdC5PcHRpb25TZXQoXG4gICAgICAgICAgICAgIHRoaXMuZ2V0U2hhcmVkVXNlcnModGhpcy5lZGl0ZWRWaWV3KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLnVzZXJTZWxlY3RTdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJTZWxlY3RNYW5hZ2VyLnN0YXRlLnN1YnNjcmliZShcbiAgICAgIHN0YXRlID0+IHtcbiAgICAgICAgaWYgKFJpdlZpZXdzLmlzU2hhcmVkVmlldyh0aGlzLmVkaXRlZFZpZXcpKSB7XG4gICAgICAgICAgdGhpcy5lZGl0ZWRWaWV3LnNoYXJlZFVzZXJzID0gWy4uLnN0YXRlLnNlbGVjdGlvbi5zZWxlY3RlZF0gYXMgVVtdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy51c2VyU2VsZWN0TWFuYWdlci5hY3Rpb25zLm5leHQoeyB0eXBlOiAnbG9hZCcgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0ZWRWaWV3OyBsZXQgZXZcIj5cbiAgPHJpdi1jYWxsb3V0XG4gICAgKnJpdi1vdmVybGF5XG4gICAgW2FuY2hvcl09XCJhbmNob3IgPz8gbnVsbFwiXG4gICAgW2lzTW9kYWxdPVwidHJ1ZVwiXG4gICAgW3Nob3dDYXJldF09XCJmYWxzZVwiXG4gICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgIFtwcmVmZXJyZWRQb3NpdGlvbl09XCInYm90dG9tLXJpZ2h0J1wiXG4gICAgKGNsb3NlKT1cImNsb3NlLmVtaXQoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZWRpdC12aWV3XCI+XG4gICAgICA8cml2LXRleHQtZmllbGRcbiAgICAgICAgW2xhYmVsXT1cIidOYW1lJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJhdXRvU2VsZWN0TmFtZSA/ICdzZWxlY3QnIDogZmFsc2VcIlxuICAgICAgICBbdmFsdWVdPVwiZXYudGl0bGUgPz8gJydcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwidGl0bGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9yaXYtdGV4dC1maWVsZD5cblxuICAgICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiIC8+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJwZXJtaXNzaW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVybWlzc2lvbi1sYWJlbFwiPlZpZXcgcGVybWlzc2lvbnM8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVybWlzc2lvbi1vcHRpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwZXJtaXNzaW9uT3B0aW9uc1wiXG4gICAgICAgICAgICBjbGFzcz1cInBlcm1pc3Npb24tb3B0aW9uXCJcbiAgICAgICAgICAgIFtjbGFzcy5jdXJyZW50XT1cImV2LnBlcm1pc3Npb24gPT09IG9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY2hlY2tlZF09XCJldi5wZXJtaXNzaW9uID09PSBvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRpb24udGl0bGUgKyAnIHBlcm1pc3Npb24nXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwZXJtaXNzaW9uQ2hhbmdlKG9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgb3B0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3B0aW9uLWRlc2NyaXB0aW9uXCI+e3sgb3B0aW9uLnN1YnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJldi5wZXJtaXNzaW9uID09PSBvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGVybWlzc2lvbi1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidDaGVjaydcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIjE2XCJcbiAgICAgICAgICAgICAgPjwvcml2LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxyaXYtc2VsZWN0XG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgZXYucGVybWlzc2lvbiA9PT0gJ3NoYXJlZCcgJiZcbiAgICAgICAgICAgICAgICBvcHRpb24udmFsdWUgPT09ICdzaGFyZWQnICYmXG4gICAgICAgICAgICAgICAgdXNlclNlbGVjdE1hbmFnZXJcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidVc2VycyB3aXRoIGFjY2VzcydcIlxuICAgICAgICAgICAgICBbbWFuYWdlcl09XCJ1c2VyU2VsZWN0TWFuYWdlclwiXG4gICAgICAgICAgICA+PC9yaXYtc2VsZWN0PlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIgLz5cblxuICAgICAgPHJpdi1jaGVja2JveFxuICAgICAgICBbdmFsdWVdPVwiZXYuZGVmYXVsdCA/PyBmYWxzZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJkZWZhdWx0Q2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICBTZXQgYXMgbXkgZGVmYXVsdCB2aWV3XG4gICAgICA8L3Jpdi1jaGVja2JveD5cblxuICAgICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiIC8+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICBbaWNvbl09XCInVHJhc2gyJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZS5lbWl0KGV2KTsgY2xvc2UuZW1pdCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIERlbGV0ZVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbWFyeS1hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiByaXZCdXR0b24gW3ZhcmlhbnRdPVwiJ2dob3N0J1wiIChjbGljayk9XCJjbG9zZS5lbWl0KClcIj5cbiAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ3ByaW1hcnknXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0NsZWFuKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmUuZW1pdChldik7IGNsb3NlLmVtaXQoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgU2F2ZVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3Jpdi1jYWxsb3V0PlxuPC9uZy1jb250YWluZXI+XG4iXX0=