@rivet-health/design-system 23.7.4 → 23.8.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.
@@ -1,20 +1,22 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { ANIMATION_CONSTANTS } from '../../overlay-outlet.component';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../../../input/button/button.component";
4
5
  import * as i2 from "../modal.component";
5
6
  export class DialogComponent {
6
7
  constructor() {
7
8
  this.close = new EventEmitter();
9
+ this.hook = ANIMATION_CONSTANTS.DIALOG.HOOK;
8
10
  }
9
11
  }
10
12
  DialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DialogComponent, selector: "riv-dialog", inputs: { title: "title" }, outputs: { close: "close" }, ngImport: i0, template: "<riv-modal (close)=\"close.emit()\" [obscure]=\"true\">\n <div class=\"dialog\">\n <header>\n <span class=\"title\">\n {{ title }}\n </span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n <div class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </div>\n </div>\n</riv-modal>\n", styles: [".dialog{background-color:var(--surface-light-0);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:var(--border-radius-medium);border:var(--border-width) solid var(--border-light);display:flex;flex-direction:column;max-width:100%}header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--size-medium);gap:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.title{font:var(--title-04);padding:var(--size-large) 0}.body{background-color:var(--surface-light-1)}.footer{border-top:var(--border-width) solid var(--border-light)}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i2.ModalComponent, selector: "riv-modal", inputs: ["obscure"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ DialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DialogComponent, selector: "riv-dialog", inputs: { title: "title" }, outputs: { close: "close" }, ngImport: i0, template: "<riv-modal (close)=\"close.emit()\" [obscure]=\"true\">\n <div [attr.data-animation-hook]=\"hook\" class=\"wrapper\">\n <div class=\"dialog\">\n <header>\n <span class=\"title\">\n {{ title }}\n </span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n <div class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </div>\n </div>\n </div>\n</riv-modal>\n", styles: [".wrapper{position:absolute;top:50%;left:50%}.dialog{transform:translate(-50%,-50%);background-color:var(--surface-light-0);border-radius:var(--border-radius-medium);border:var(--border-width) solid var(--border-light);display:flex;flex-direction:column;max-width:100%}header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--size-medium);gap:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.title{font:var(--title-04);padding:var(--size-large) 0}.body{background-color:var(--surface-light-1)}.footer{border-top:var(--border-width) solid var(--border-light)}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i2.ModalComponent, selector: "riv-modal", inputs: ["obscure"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogComponent, decorators: [{
13
15
  type: Component,
14
- args: [{ selector: 'riv-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-modal (close)=\"close.emit()\" [obscure]=\"true\">\n <div class=\"dialog\">\n <header>\n <span class=\"title\">\n {{ title }}\n </span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n <div class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </div>\n </div>\n</riv-modal>\n", styles: [".dialog{background-color:var(--surface-light-0);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:var(--border-radius-medium);border:var(--border-width) solid var(--border-light);display:flex;flex-direction:column;max-width:100%}header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--size-medium);gap:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.title{font:var(--title-04);padding:var(--size-large) 0}.body{background-color:var(--surface-light-1)}.footer{border-top:var(--border-width) solid var(--border-light)}\n"] }]
16
+ args: [{ selector: 'riv-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-modal (close)=\"close.emit()\" [obscure]=\"true\">\n <div [attr.data-animation-hook]=\"hook\" class=\"wrapper\">\n <div class=\"dialog\">\n <header>\n <span class=\"title\">\n {{ title }}\n </span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"close.emit()\"\n ></button>\n </header>\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n <div class=\"footer\">\n <ng-content select=\"footer\"></ng-content>\n </div>\n </div>\n </div>\n</riv-modal>\n", styles: [".wrapper{position:absolute;top:50%;left:50%}.dialog{transform:translate(-50%,-50%);background-color:var(--surface-light-0);border-radius:var(--border-radius-medium);border:var(--border-width) solid var(--border-light);display:flex;flex-direction:column;max-width:100%}header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--size-medium);gap:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.title{font:var(--title-04);padding:var(--size-large) 0}.body{background-color:var(--surface-light-1)}.footer{border-top:var(--border-width) solid var(--border-light)}\n"] }]
15
17
  }], propDecorators: { title: [{
16
18
  type: Input
17
19
  }], close: [{
18
20
  type: Output
19
21
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL292ZXJsYXkvbW9kYWwvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFXRSxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQUNsQzs7NEdBTlksZUFBZTtnR0FBZixlQUFlLDJHQ2Q1QiwyZkFxQkE7MkZEUGEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLEtBQUs7c0JBREosS0FBSztnQkFJTixLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQge1xuICBASW5wdXQoKVxuICB0aXRsZT86IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG59XG4iLCI8cml2LW1vZGFsIChjbG9zZSk9XCJjbG9zZS5lbWl0KClcIiBbb2JzY3VyZV09XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJkaWFsb2dcIj5cbiAgICA8aGVhZGVyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICByaXZCdXR0b25cbiAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgIFtpY29uXT1cIidYJ1wiXG4gICAgICAgIChjbGljayk9XCJjbG9zZS5lbWl0KClcIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvaGVhZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvcml2LW1vZGFsPlxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL292ZXJsYXkvbW9kYWwvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFRckUsTUFBTSxPQUFPLGVBQWU7SUFONUI7UUFXRSxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4QixTQUFJLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztLQUNqRDs7NEdBUlksZUFBZTtnR0FBZixlQUFlLDJHQ2Y1QiwwbUJBdUJBOzJGRFJhLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFOSU1BVElPTl9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi9vdmVybGF5LW91dGxldC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RpYWxvZy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dDb21wb25lbnQge1xuICBASW5wdXQoKVxuICB0aXRsZT86IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgaG9vayA9IEFOSU1BVElPTl9DT05TVEFOVFMuRElBTE9HLkhPT0s7XG59XG4iLCI8cml2LW1vZGFsIChjbG9zZSk9XCJjbG9zZS5lbWl0KClcIiBbb2JzY3VyZV09XCJ0cnVlXCI+XG4gIDxkaXYgW2F0dHIuZGF0YS1hbmltYXRpb24taG9va109XCJob29rXCIgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZ1wiPlxuICAgICAgPGhlYWRlcj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPlxuICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgIFtpY29uXT1cIidYJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlLmVtaXQoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvcml2LW1vZGFsPlxuIl19
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { ANIMATION_CONSTANTS } from '../overlay-outlet.component';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../callout/lock-scroll.directive";
4
5
  import * as i2 from "../overlay.directive";
@@ -7,6 +8,7 @@ export class ModalComponent {
7
8
  this.obscure = false;
8
9
  this.close = new EventEmitter();
9
10
  this.mouseDownStartedInScrim = false;
11
+ this.hook = ANIMATION_CONSTANTS.MODAL.HOOK;
10
12
  }
11
13
  onScrimMouseDown(evt) {
12
14
  this.mouseDownStartedInScrim = evt.target === evt.currentTarget;
@@ -19,13 +21,13 @@ export class ModalComponent {
19
21
  }
20
22
  }
21
23
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ModalComponent, selector: "riv-modal", inputs: { obscure: "obscure" }, outputs: { close: "close" }, ngImport: i0, template: "<div\n #scrim\n *riv-overlay\n [rivLockScroll]=\"true\"\n class=\"scrim\"\n [class.obscure]=\"obscure\"\n (mousedown)=\"onScrimMouseDown($event)\"\n (mouseup)=\"onScrimMouseUp($event)\"\n (touchstart)=\"onScrimMouseDown($event)\"\n (touchend)=\"onScrimMouseUp($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".scrim{position:fixed;z-index:var(--callout-z-index);cursor:default;inset:0}.scrim.obscure{background-color:var(--modal-scrim)}\n"], dependencies: [{ kind: "directive", type: i1.LockScrollDirective, selector: "[rivLockScroll]", inputs: ["rivLockScroll"] }, { kind: "directive", type: i2.OverlayDirective, selector: "[riv-overlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ModalComponent, selector: "riv-modal", inputs: { obscure: "obscure" }, outputs: { close: "close" }, ngImport: i0, template: "<div\n #scrim\n *riv-overlay\n [attr.data-animation-hook]=\"hook\"\n [rivLockScroll]=\"true\"\n class=\"scrim\"\n [class.obscure]=\"obscure\"\n (mousedown)=\"onScrimMouseDown($event)\"\n (mouseup)=\"onScrimMouseUp($event)\"\n (touchstart)=\"onScrimMouseDown($event)\"\n (touchend)=\"onScrimMouseUp($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".scrim{position:fixed;z-index:var(--callout-z-index);cursor:default;inset:0}.scrim.obscure{background-color:var(--modal-scrim)}\n"], dependencies: [{ kind: "directive", type: i1.LockScrollDirective, selector: "[rivLockScroll]", inputs: ["rivLockScroll"] }, { kind: "directive", type: i2.OverlayDirective, selector: "[riv-overlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalComponent, decorators: [{
24
26
  type: Component,
25
- args: [{ selector: 'riv-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #scrim\n *riv-overlay\n [rivLockScroll]=\"true\"\n class=\"scrim\"\n [class.obscure]=\"obscure\"\n (mousedown)=\"onScrimMouseDown($event)\"\n (mouseup)=\"onScrimMouseUp($event)\"\n (touchstart)=\"onScrimMouseDown($event)\"\n (touchend)=\"onScrimMouseUp($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".scrim{position:fixed;z-index:var(--callout-z-index);cursor:default;inset:0}.scrim.obscure{background-color:var(--modal-scrim)}\n"] }]
27
+ args: [{ selector: 'riv-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n #scrim\n *riv-overlay\n [attr.data-animation-hook]=\"hook\"\n [rivLockScroll]=\"true\"\n class=\"scrim\"\n [class.obscure]=\"obscure\"\n (mousedown)=\"onScrimMouseDown($event)\"\n (mouseup)=\"onScrimMouseUp($event)\"\n (touchstart)=\"onScrimMouseDown($event)\"\n (touchend)=\"onScrimMouseUp($event)\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".scrim{position:fixed;z-index:var(--callout-z-index);cursor:default;inset:0}.scrim.obscure{background-color:var(--modal-scrim)}\n"] }]
26
28
  }], propDecorators: { obscure: [{
27
29
  type: Input
28
30
  }], close: [{
29
31
  type: Output
30
32
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXZCLE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBUUUsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUdoQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1Qiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7S0FXekM7SUFWQyxnQkFBZ0IsQ0FBQyxHQUE0QjtRQUMzQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBNEI7UUFDekMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsYUFBYSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7OzJHQWpCVSxjQUFjOytGQUFkLGNBQWMsOEdDZDNCLGtVQWFBOzJGRENhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxPQUFPO3NCQUROLEtBQUs7Z0JBSUcsS0FBSztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBvYnNjdXJlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByaXZhdGUgbW91c2VEb3duU3RhcnRlZEluU2NyaW0gPSBmYWxzZTtcbiAgb25TY3JpbU1vdXNlRG93bihldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy5tb3VzZURvd25TdGFydGVkSW5TY3JpbSA9IGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0O1xuICB9XG5cbiAgb25TY3JpbU1vdXNlVXAoZXZ0OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xuICAgIGlmICh0aGlzLm1vdXNlRG93blN0YXJ0ZWRJblNjcmltICYmIGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICB9XG4gICAgdGhpcy5tb3VzZURvd25TdGFydGVkSW5TY3JpbSA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2XG4gICNzY3JpbVxuICAqcml2LW92ZXJsYXlcbiAgW3JpdkxvY2tTY3JvbGxdPVwidHJ1ZVwiXG4gIGNsYXNzPVwic2NyaW1cIlxuICBbY2xhc3Mub2JzY3VyZV09XCJvYnNjdXJlXCJcbiAgKG1vdXNlZG93bik9XCJvblNjcmltTW91c2VEb3duKCRldmVudClcIlxuICAobW91c2V1cCk9XCJvblNjcmltTW91c2VVcCgkZXZlbnQpXCJcbiAgKHRvdWNoc3RhcnQpPVwib25TY3JpbU1vdXNlRG93bigkZXZlbnQpXCJcbiAgKHRvdWNoZW5kKT1cIm9uU2NyaW1Nb3VzZVVwKCRldmVudClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBUWxFLE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBUUUsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUdoQixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1Qiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFZL0IsU0FBSSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7S0FDaEQ7SUFaQyxnQkFBZ0IsQ0FBQyxHQUE0QjtRQUMzQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBNEI7UUFDekMsSUFBSSxJQUFJLENBQUMsdUJBQXVCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsYUFBYSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7OzJHQWpCVSxjQUFjOytGQUFkLGNBQWMsOEdDZjNCLHlXQWNBOzJGRENhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxPQUFPO3NCQUROLEtBQUs7Z0JBSUcsS0FBSztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFOSU1BVElPTl9DT05TVEFOVFMgfSBmcm9tICcuLi9vdmVybGF5LW91dGxldC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIG9ic2N1cmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBtb3VzZURvd25TdGFydGVkSW5TY3JpbSA9IGZhbHNlO1xuICBvblNjcmltTW91c2VEb3duKGV2dDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcbiAgICB0aGlzLm1vdXNlRG93blN0YXJ0ZWRJblNjcmltID0gZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQ7XG4gIH1cblxuICBvblNjcmltTW91c2VVcChldnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XG4gICAgaWYgKHRoaXMubW91c2VEb3duU3RhcnRlZEluU2NyaW0gJiYgZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgICB0aGlzLm1vdXNlRG93blN0YXJ0ZWRJblNjcmltID0gZmFsc2U7XG4gIH1cblxuICByZWFkb25seSBob29rID0gQU5JTUFUSU9OX0NPTlNUQU5UUy5NT0RBTC5IT09LO1xufVxuIiwiPGRpdlxuICAjc2NyaW1cbiAgKnJpdi1vdmVybGF5XG4gIFthdHRyLmRhdGEtYW5pbWF0aW9uLWhvb2tdPVwiaG9va1wiXG4gIFtyaXZMb2NrU2Nyb2xsXT1cInRydWVcIlxuICBjbGFzcz1cInNjcmltXCJcbiAgW2NsYXNzLm9ic2N1cmVdPVwib2JzY3VyZVwiXG4gIChtb3VzZWRvd24pPVwib25TY3JpbU1vdXNlRG93bigkZXZlbnQpXCJcbiAgKG1vdXNldXApPVwib25TY3JpbU1vdXNlVXAoJGV2ZW50KVwiXG4gICh0b3VjaHN0YXJ0KT1cIm9uU2NyaW1Nb3VzZURvd24oJGV2ZW50KVwiXG4gICh0b3VjaGVuZCk9XCJvblNjcmltTW91c2VVcCgkZXZlbnQpXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -1,20 +1,22 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { ANIMATION_CONSTANTS } from '../../overlay-outlet.component';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../modal.component";
4
5
  export class SideSheetComponent {
5
6
  constructor() {
6
7
  this.topOffset = 0;
7
8
  this.close = new EventEmitter();
9
+ this.hook = ANIMATION_CONSTANTS.SIDE_SHEET.HOOK;
8
10
  }
9
11
  }
10
12
  SideSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- SideSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideSheetComponent, selector: "riv-side-sheet", inputs: { topOffset: "topOffset" }, outputs: { close: "close" }, ngImport: i0, template: "<riv-modal (close)=\"close.emit()\">\n <div class=\"side-sheet\" [style.top.px]=\"topOffset\">\n <ng-content></ng-content>\n </div>\n</riv-modal>\n", styles: [".side-sheet{position:absolute;right:0;bottom:0;width:calc(var(--base-grid-size) * 105);background-color:var(--surface-light-0);max-width:50vw;box-shadow:var(--depth-2)}\n"], dependencies: [{ kind: "component", type: i1.ModalComponent, selector: "riv-modal", inputs: ["obscure"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ SideSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SideSheetComponent, selector: "riv-side-sheet", inputs: { topOffset: "topOffset" }, outputs: { close: "close" }, ngImport: i0, template: "<riv-modal (close)=\"close.emit()\">\n <div\n [attr.data-animation-hook]=\"hook\"\n class=\"side-sheet\"\n [style.top.px]=\"topOffset\"\n >\n <ng-content></ng-content>\n </div>\n</riv-modal>\n", styles: [".side-sheet{position:absolute;right:0;bottom:0;width:calc(var(--base-grid-size) * 105);background-color:var(--surface-light-0);max-width:50vw;box-shadow:var(--depth-2)}\n"], dependencies: [{ kind: "component", type: i1.ModalComponent, selector: "riv-modal", inputs: ["obscure"], outputs: ["close"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SideSheetComponent, decorators: [{
13
15
  type: Component,
14
- args: [{ selector: 'riv-side-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-modal (close)=\"close.emit()\">\n <div class=\"side-sheet\" [style.top.px]=\"topOffset\">\n <ng-content></ng-content>\n </div>\n</riv-modal>\n", styles: [".side-sheet{position:absolute;right:0;bottom:0;width:calc(var(--base-grid-size) * 105);background-color:var(--surface-light-0);max-width:50vw;box-shadow:var(--depth-2)}\n"] }]
16
+ args: [{ selector: 'riv-side-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<riv-modal (close)=\"close.emit()\">\n <div\n [attr.data-animation-hook]=\"hook\"\n class=\"side-sheet\"\n [style.top.px]=\"topOffset\"\n >\n <ng-content></ng-content>\n </div>\n</riv-modal>\n", styles: [".side-sheet{position:absolute;right:0;bottom:0;width:calc(var(--base-grid-size) * 105);background-color:var(--surface-light-0);max-width:50vw;box-shadow:var(--depth-2)}\n"] }]
15
17
  }], propDecorators: { topOffset: [{
16
18
  type: Input
17
19
  }], close: [{
18
20
  type: Output
19
21
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL3NpZGUtc2hlZXQvc2lkZS1zaGVldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL3NpZGUtc2hlZXQvc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7O0FBU3ZCLE1BQU0sT0FBTyxrQkFBa0I7SUFQL0I7UUFTRSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBR3RCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBQzVCOzsrR0FOWSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1SENmL0IsMEpBS0E7MkZEVWEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLGdCQUFnQixtQkFJVCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNpZGUtc2hlZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGUtc2hlZXQuY29tcG9uZW50LmNzcyddLFxuXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlU2hlZXRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICB0b3BPZmZzZXQ6IG51bWJlciA9IDA7XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xufVxuIiwiPHJpdi1tb2RhbCAoY2xvc2UpPVwiY2xvc2UuZW1pdCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJzaWRlLXNoZWV0XCIgW3N0eWxlLnRvcC5weF09XCJ0b3BPZmZzZXRcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9yaXYtbW9kYWw+XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1zaGVldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL3NpZGUtc2hlZXQvc2lkZS1zaGVldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L21vZGFsL3NpZGUtc2hlZXQvc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBU3JFLE1BQU0sT0FBTyxrQkFBa0I7SUFQL0I7UUFTRSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBR3RCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxCLFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0tBQ3JEOzsrR0FSWSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1SENoQi9CLGlOQVNBOzJGRE9hLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBSVQsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsU0FBUztzQkFEUixLQUFLO2dCQUlOLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBTklNQVRJT05fQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vb3ZlcmxheS1vdXRsZXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNpZGUtc2hlZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGUtc2hlZXQuY29tcG9uZW50LmNzcyddLFxuXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlU2hlZXRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICB0b3BPZmZzZXQ6IG51bWJlciA9IDA7XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlYWRvbmx5IGhvb2sgPSBBTklNQVRJT05fQ09OU1RBTlRTLlNJREVfU0hFRVQuSE9PSztcbn1cbiIsIjxyaXYtbW9kYWwgKGNsb3NlKT1cImNsb3NlLmVtaXQoKVwiPlxuICA8ZGl2XG4gICAgW2F0dHIuZGF0YS1hbmltYXRpb24taG9va109XCJob29rXCJcbiAgICBjbGFzcz1cInNpZGUtc2hlZXRcIlxuICAgIFtzdHlsZS50b3AucHhdPVwidG9wT2Zmc2V0XCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L3Jpdi1tb2RhbD5cbiJdfQ==
@@ -1,7 +1,50 @@
1
+ import { animate, group, query, style, transition, trigger, } from '@angular/animations';
1
2
  import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "./overlay.service";
4
5
  import * as i2 from "@angular/common";
6
+ export const ANIMATION_CONSTANTS = {
7
+ SIDE_SHEET: {
8
+ HOOK: 'side-sheet',
9
+ HIDDEN: { transform: 'translateX(100%)' },
10
+ VISIBLE: { transform: 'translateX(0%)' },
11
+ },
12
+ TOAST: {
13
+ HOOK: 'toast',
14
+ HIDDEN: {
15
+ opacity: 0,
16
+ transform: 'translateY(calc(var(--size-xsmall) * -1))',
17
+ filter: 'blur(var(--size-xsmall))',
18
+ },
19
+ VISIBLE: { opacity: 1, transform: 'translateY(0px)', filter: 'none' },
20
+ },
21
+ MODAL: {
22
+ HOOK: 'modal',
23
+ HIDDEN: { opacity: 0 },
24
+ VISIBLE: { opacity: 1 },
25
+ },
26
+ DIALOG: {
27
+ HOOK: 'dialog',
28
+ HIDDEN: {
29
+ transform: 'translateY(var(--size-large))',
30
+ filter: 'blur(var(--size-xsmall))',
31
+ },
32
+ VISIBLE: { transform: 'translateY(0px)', filter: 'none' },
33
+ },
34
+ };
35
+ function createComponentAnimation(config) {
36
+ return {
37
+ enter: query(`[data-animation-hook="${config.HOOK}"]`, [
38
+ style(config.HIDDEN),
39
+ animate('200ms ease-in-out', style(config.VISIBLE)),
40
+ ], { optional: true }),
41
+ leave: query(`[data-animation-hook="${config.HOOK}"]`, [animate('150ms linear', style(config.HIDDEN))], { optional: true }),
42
+ };
43
+ }
44
+ const sideSheetAnimation = createComponentAnimation(ANIMATION_CONSTANTS.SIDE_SHEET);
45
+ const toastAnimation = createComponentAnimation(ANIMATION_CONSTANTS.TOAST);
46
+ const modalAnimation = createComponentAnimation(ANIMATION_CONSTANTS.MODAL);
47
+ const dialogAnimation = createComponentAnimation(ANIMATION_CONSTANTS.DIALOG);
5
48
  export class OverlayOutletComponent {
6
49
  constructor(overlayService) {
7
50
  this.overlayService = overlayService;
@@ -9,9 +52,47 @@ export class OverlayOutletComponent {
9
52
  }
10
53
  }
11
54
  OverlayOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OverlayOutletComponent, deps: [{ token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
12
- OverlayOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OverlayOutletComponent, selector: "riv-overlay-outlet", ngImport: i0, template: "<ng-container\n *ngFor=\"\n let overlay of overlayService.overlays | async | keyvalue;\n trackBy: trackOverlay\n \"\n>\n <ng-container *ngTemplateOutlet=\"overlay.value\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
+ OverlayOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OverlayOutletComponent, selector: "riv-overlay-outlet", ngImport: i0, template: "<ng-container\n *ngFor=\"\n let overlay of overlayService.overlays | async | keyvalue;\n trackBy: trackOverlay\n \"\n>\n <div class=\"overlay-container\" @animate>\n <ng-container *ngTemplateOutlet=\"overlay.value\"></ng-container>\n </div>\n</ng-container>\n", styles: [".overlay-container{display:contents;position:relative;z-index:var(--modal-z-index)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }], animations: [
56
+ trigger('animate', [
57
+ transition(':enter', [
58
+ group([
59
+ sideSheetAnimation.enter,
60
+ toastAnimation.enter,
61
+ modalAnimation.enter,
62
+ dialogAnimation.enter,
63
+ ]),
64
+ ]),
65
+ transition(':leave', [
66
+ group([
67
+ sideSheetAnimation.leave,
68
+ toastAnimation.leave,
69
+ modalAnimation.leave,
70
+ dialogAnimation.leave,
71
+ ]),
72
+ ]),
73
+ ]),
74
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OverlayOutletComponent, decorators: [{
14
76
  type: Component,
15
- args: [{ selector: 'riv-overlay-outlet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngFor=\"\n let overlay of overlayService.overlays | async | keyvalue;\n trackBy: trackOverlay\n \"\n>\n <ng-container *ngTemplateOutlet=\"overlay.value\"></ng-container>\n</ng-container>\n" }]
77
+ args: [{ animations: [
78
+ trigger('animate', [
79
+ transition(':enter', [
80
+ group([
81
+ sideSheetAnimation.enter,
82
+ toastAnimation.enter,
83
+ modalAnimation.enter,
84
+ dialogAnimation.enter,
85
+ ]),
86
+ ]),
87
+ transition(':leave', [
88
+ group([
89
+ sideSheetAnimation.leave,
90
+ toastAnimation.leave,
91
+ modalAnimation.leave,
92
+ dialogAnimation.leave,
93
+ ]),
94
+ ]),
95
+ ]),
96
+ ], selector: 'riv-overlay-outlet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container\n *ngFor=\"\n let overlay of overlayService.overlays | async | keyvalue;\n trackBy: trackOverlay\n \"\n>\n <div class=\"overlay-container\" @animate>\n <ng-container *ngTemplateOutlet=\"overlay.value\"></ng-container>\n </div>\n</ng-container>\n", styles: [".overlay-container{display:contents;position:relative;z-index:var(--modal-z-index)}\n"] }]
16
97
  }], ctorParameters: function () { return [{ type: i1.OverlayService }]; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS9vdmVybGF5LW91dGxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L292ZXJsYXktb3V0bGV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXZCLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBcUIsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRTFDLGlCQUFZLEdBRWpCLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFtQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFKYSxDQUFDOzttSEFENUMsc0JBQXNCO3VHQUF0QixzQkFBc0IsMERDZG5DLHdOQVFBOzJGRE1hLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBRWIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuL292ZXJsYXkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1vdmVybGF5LW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vdmVybGF5LW91dGxldC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5T3V0bGV0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgb3ZlcmxheVNlcnZpY2U6IE92ZXJsYXlTZXJ2aWNlKSB7fVxuXG4gIHJlYWRvbmx5IHRyYWNrT3ZlcmxheTogVHJhY2tCeUZ1bmN0aW9uPFxuICAgIEtleVZhbHVlPFN5bWJvbCwgVGVtcGxhdGVSZWY8dW5rbm93bj4+XG4gID4gPSAoXywgeyBrZXkgfTogeyBrZXk6IFN5bWJvbCB9KSA9PiBrZXk7XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ0Zvcj1cIlxuICAgIGxldCBvdmVybGF5IG9mIG92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzIHwgYXN5bmMgfCBrZXl2YWx1ZTtcbiAgICB0cmFja0J5OiB0cmFja092ZXJsYXlcbiAgXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm92ZXJsYXkudmFsdWVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1vdXRsZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS9vdmVybGF5LW91dGxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L292ZXJsYXktb3V0bGV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDOzs7O0FBU3ZCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUc1QjtJQUNGLFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtRQUN6QyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7S0FDekM7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxDQUFDO1lBQ1YsU0FBUyxFQUFFLDJDQUEyQztZQUN0RCxNQUFNLEVBQUUsMEJBQTBCO1NBQ25DO1FBQ0QsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtLQUN0RTtJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtRQUN0QixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO0tBQ3hCO0lBQ0QsTUFB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QU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBncm91cCxcbiAgcXVlcnksXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuL292ZXJsYXkuc2VydmljZSc7XG5cbnR5cGUgQW5pbWF0aW9uQ29uZmlnID0ge1xuICBIT09LOiBzdHJpbmc7XG4gIEhJRERFTjogUGFyYW1ldGVyczx0eXBlb2Ygc3R5bGU+WzBdO1xuICBWSVNJQkxFOiBQYXJhbWV0ZXJzPHR5cGVvZiBzdHlsZT5bMF07XG59O1xuXG5leHBvcnQgY29uc3QgQU5JTUFUSU9OX0NPTlNUQU5UUzogUmVjb3JkPFxuICAnU0lERV9TSEVFVCcgfCAnVE9BU1QnIHwgJ0RJQUxPRycgfCAnTU9EQUwnLFxuICBBbmltYXRpb25Db25maWdcbj4gPSB7XG4gIFNJREVfU0hFRVQ6IHtcbiAgICBIT09LOiAnc2lkZS1zaGVldCcsXG4gICAgSElEREVOOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0sXG4gICAgVklTSUJMRTogeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScgfSxcbiAgfSxcbiAgVE9BU1Q6IHtcbiAgICBIT09LOiAndG9hc3QnLFxuICAgIEhJRERFTjoge1xuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoY2FsYyh2YXIoLS1zaXplLXhzbWFsbCkgKiAtMSkpJyxcbiAgICAgIGZpbHRlcjogJ2JsdXIodmFyKC0tc2l6ZS14c21hbGwpKScsXG4gICAgfSxcbiAgICBWSVNJQkxFOiB7IG9wYWNpdHk6IDEsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMHB4KScsIGZpbHRlcjogJ25vbmUnIH0sXG4gIH0sXG4gIE1PREFMOiB7XG4gICAgSE9PSzogJ21vZGFsJyxcbiAgICBISURERU46IHsgb3BhY2l0eTogMCB9LFxuICAgIFZJU0lCTEU6IHsgb3BhY2l0eTogMSB9LFxuICB9LFxuICBESUFMT0c6IHtcbiAgICBIT09LOiAnZGlhbG9nJyxcbiAgICBISURERU46IHtcbiAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkodmFyKC0tc2l6ZS1sYXJnZSkpJyxcbiAgICAgIGZpbHRlcjogJ2JsdXIodmFyKC0tc2l6ZS14c21hbGwpKScsXG4gICAgfSxcbiAgICBWSVNJQkxFOiB7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMHB4KScsIGZpbHRlcjogJ25vbmUnIH0sXG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVDb21wb25lbnRBbmltYXRpb24oY29uZmlnOiBBbmltYXRpb25Db25maWcpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnRlcjogcXVlcnkoXG4gICAgICBgW2RhdGEtYW5pbWF0aW9uLWhvb2s9XCIke2NvbmZpZy5IT09LfVwiXWAsXG4gICAgICBbXG4gICAgICAgIHN0eWxlKGNvbmZpZy5ISURERU4pLFxuICAgICAgICBhbmltYXRlKCcyMDBtcyBlYXNlLWluLW91dCcsIHN0eWxlKGNvbmZpZy5WSVNJQkxFKSksXG4gICAgICBdLFxuICAgICAgeyBvcHRpb25hbDogdHJ1ZSB9LFxuICAgICksXG4gICAgbGVhdmU6IHF1ZXJ5KFxuICAgICAgYFtkYXRhLWFuaW1hdGlvbi1ob29rPVwiJHtjb25maWcuSE9PS31cIl1gLFxuICAgICAgW2FuaW1hdGUoJzE1MG1zIGxpbmVhcicsIHN0eWxlKGNvbmZpZy5ISURERU4pKV0sXG4gICAgICB7IG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgKSxcbiAgfTtcbn1cblxuY29uc3Qgc2lkZVNoZWV0QW5pbWF0aW9uID0gY3JlYXRlQ29tcG9uZW50QW5pbWF0aW9uKFxuICBBTklNQVRJT05fQ09OU1RBTlRTLlNJREVfU0hFRVQsXG4pO1xuY29uc3QgdG9hc3RBbmltYXRpb24gPSBjcmVhdGVDb21wb25lbnRBbmltYXRpb24oQU5JTUFUSU9OX0NPTlNUQU5UUy5UT0FTVCk7XG5jb25zdCBtb2RhbEFuaW1hdGlvbiA9IGNyZWF0ZUNvbXBvbmVudEFuaW1hdGlvbihBTklNQVRJT05fQ09OU1RBTlRTLk1PREFMKTtcbmNvbnN0IGRpYWxvZ0FuaW1hdGlvbiA9IGNyZWF0ZUNvbXBvbmVudEFuaW1hdGlvbihBTklNQVRJT05fQ09OU1RBTlRTLkRJQUxPRyk7XG5cbkBDb21wb25lbnQoe1xuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignYW5pbWF0ZScsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgZ3JvdXAoW1xuICAgICAgICAgIHNpZGVTaGVldEFuaW1hdGlvbi5lbnRlcixcbiAgICAgICAgICB0b2FzdEFuaW1hdGlvbi5lbnRlcixcbiAgICAgICAgICBtb2RhbEFuaW1hdGlvbi5lbnRlcixcbiAgICAgICAgICBkaWFsb2dBbmltYXRpb24uZW50ZXIsXG4gICAgICAgIF0pLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIGdyb3VwKFtcbiAgICAgICAgICBzaWRlU2hlZXRBbmltYXRpb24ubGVhdmUsXG4gICAgICAgICAgdG9hc3RBbmltYXRpb24ubGVhdmUsXG4gICAgICAgICAgbW9kYWxBbmltYXRpb24ubGVhdmUsXG4gICAgICAgICAgZGlhbG9nQW5pbWF0aW9uLmxlYXZlLFxuICAgICAgICBdKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxuICBzZWxlY3RvcjogJ3Jpdi1vdmVybGF5LW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vdmVybGF5LW91dGxldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL292ZXJsYXktb3V0bGV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlPdXRsZXRDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UpIHt9XG5cbiAgcmVhZG9ubHkgdHJhY2tPdmVybGF5OiBUcmFja0J5RnVuY3Rpb248XG4gICAgS2V5VmFsdWU8U3ltYm9sLCBUZW1wbGF0ZVJlZjx1bmtub3duPj5cbiAgPiA9IChfLCB7IGtleSB9OiB7IGtleTogU3ltYm9sIH0pID0+IGtleTtcbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nRm9yPVwiXG4gICAgbGV0IG92ZXJsYXkgb2Ygb3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMgfCBhc3luYyB8IGtleXZhbHVlO1xuICAgIHRyYWNrQnk6IHRyYWNrT3ZlcmxheVxuICBcIlxuPlxuICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1jb250YWluZXJcIiBAYW5pbWF0ZT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwib3ZlcmxheS52YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { ANIMATION_CONSTANTS } from '../overlay-outlet.component';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "@angular/common";
4
5
  import * as i2 from "../../icon/icon.component";
@@ -7,6 +8,7 @@ export class ToastComponent {
7
8
  constructor() {
8
9
  this.variant = 'basic';
9
10
  this.close = new EventEmitter();
11
+ this.hook = ANIMATION_CONSTANTS.TOAST.HOOK;
10
12
  }
11
13
  ngOnInit() {
12
14
  setTimeout(() => {
@@ -15,10 +17,10 @@ export class ToastComponent {
15
17
  }
16
18
  }
17
19
  ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ToastComponent, selector: "riv-toast", inputs: { variant: "variant", icon: "icon" }, outputs: { close: "close" }, ngImport: i0, template: "<div *riv-overlay class=\"toast\" [ngClass]=\"variant\">\n <riv-icon *ngIf=\"icon\" [name]=\"icon\" [size]=\"16\"></riv-icon>\n <div class=\"content\"><ng-content></ng-content></div>\n</div>\n", styles: [".toast{position:fixed;top:calc(var(--base-grid-size) * 20);left:50%;transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;gap:var(--size-small);padding:var(--size-xsmall) var(--size-large);border-radius:calc(var(--base-grid-size) * 8);box-shadow:var(--depth-1);font:var(--body-medium)}.toast.basic{background-color:var(--surface-dark-0);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--surface-dark-0)}.toast.danger{background-color:var(--danger-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--danger-main)}.toast.safety{background-color:var(--safety-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--safety-main)}.toast.safety-dark{background-color:var(--baja-blast-90);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--baja-blast-90)}.toast.safety-inverse{background-color:var(--surface-light-safety);color:var(--type-light-safety);border:var(--border-width) solid currentColor}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i3.OverlayDirective, selector: "[riv-overlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
+ ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ToastComponent, selector: "riv-toast", inputs: { variant: "variant", icon: "icon" }, outputs: { close: "close" }, ngImport: i0, template: "<div *riv-overlay class=\"wrapper\" [attr.data-animation-hook]=\"hook\">\n <div class=\"toast\" [ngClass]=\"variant\">\n <riv-icon *ngIf=\"icon\" [name]=\"icon\" [size]=\"16\"></riv-icon>\n <div class=\"content\"><ng-content></ng-content></div>\n </div>\n</div>\n", styles: [".wrapper{position:fixed;top:calc(var(--base-grid-size) * 20);left:50%}.toast{transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;gap:var(--size-small);padding:var(--size-xsmall) var(--size-large);border-radius:calc(var(--base-grid-size) * 8);box-shadow:var(--depth-1);font:var(--body-medium)}.toast.basic{background-color:var(--surface-dark-0);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--surface-dark-0)}.toast.danger{background-color:var(--danger-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--danger-main)}.toast.safety{background-color:var(--safety-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--safety-main)}.toast.safety-dark{background-color:var(--baja-blast-90);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--baja-blast-90)}.toast.safety-inverse{background-color:var(--surface-light-safety);color:var(--type-light-safety);border:var(--border-width) solid currentColor}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i3.OverlayDirective, selector: "[riv-overlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ToastComponent, decorators: [{
20
22
  type: Component,
21
- args: [{ selector: 'riv-toast', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *riv-overlay class=\"toast\" [ngClass]=\"variant\">\n <riv-icon *ngIf=\"icon\" [name]=\"icon\" [size]=\"16\"></riv-icon>\n <div class=\"content\"><ng-content></ng-content></div>\n</div>\n", styles: [".toast{position:fixed;top:calc(var(--base-grid-size) * 20);left:50%;transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;gap:var(--size-small);padding:var(--size-xsmall) var(--size-large);border-radius:calc(var(--base-grid-size) * 8);box-shadow:var(--depth-1);font:var(--body-medium)}.toast.basic{background-color:var(--surface-dark-0);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--surface-dark-0)}.toast.danger{background-color:var(--danger-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--danger-main)}.toast.safety{background-color:var(--safety-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--safety-main)}.toast.safety-dark{background-color:var(--baja-blast-90);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--baja-blast-90)}.toast.safety-inverse{background-color:var(--surface-light-safety);color:var(--type-light-safety);border:var(--border-width) solid currentColor}\n"] }]
23
+ args: [{ selector: 'riv-toast', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *riv-overlay class=\"wrapper\" [attr.data-animation-hook]=\"hook\">\n <div class=\"toast\" [ngClass]=\"variant\">\n <riv-icon *ngIf=\"icon\" [name]=\"icon\" [size]=\"16\"></riv-icon>\n <div class=\"content\"><ng-content></ng-content></div>\n </div>\n</div>\n", styles: [".wrapper{position:fixed;top:calc(var(--base-grid-size) * 20);left:50%}.toast{transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;gap:var(--size-small);padding:var(--size-xsmall) var(--size-large);border-radius:calc(var(--base-grid-size) * 8);box-shadow:var(--depth-1);font:var(--body-medium)}.toast.basic{background-color:var(--surface-dark-0);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--surface-dark-0)}.toast.danger{background-color:var(--danger-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--danger-main)}.toast.safety{background-color:var(--safety-main);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--safety-main)}.toast.safety-dark{background-color:var(--baja-blast-90);color:var(--type-dark-high-contrast);border:var(--border-width) solid var(--baja-blast-90)}.toast.safety-inverse{background-color:var(--surface-light-safety);color:var(--type-light-safety);border:var(--border-width) solid currentColor}\n"] }]
22
24
  }], propDecorators: { variant: [{
23
25
  type: Input
24
26
  }], icon: [{
@@ -35,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
35
37
  'safety-inverse',
36
38
  ];
37
39
  })(ToastComponent || (ToastComponent = {}));
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7OztBQVN2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQVFFLFlBQU8sR0FBMkIsT0FBTyxDQUFDO1FBWTFDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBQ2xDO0lBUkMsUUFBUTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7OzJHQVhVLGNBQWM7K0ZBQWQsY0FBYyw0SENoQjNCLG9NQUlBOzJGRFlhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQVVOLEtBQUs7c0JBREosTUFBTTs7QUFJVCxXQUFpQixjQUFjO0lBQ2hCLHVCQUFRLEdBQUc7UUFDdEIsT0FBTztRQUNQLFFBQVE7UUFDUixRQUFRO1FBQ1IsYUFBYTtRQUNiLGdCQUFnQjtLQUNSLENBQUM7QUFFYixDQUFDLEVBVGdCLGNBQWMsS0FBZCxjQUFjLFFBUzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtdG9hc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b2FzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHZhcmlhbnQ6IFRvYXN0Q29tcG9uZW50LlZhcmlhbnQgPSAnYmFzaWMnO1xuXG4gIEBJbnB1dCgpXG4gIGljb24/OiBJY29uQ29tcG9uZW50Lk5hbWU7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcbiAgICB9LCAzMDAwKTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBUb2FzdENvbXBvbmVudCB7XG4gIGV4cG9ydCBjb25zdCBWYXJpYW50cyA9IFtcbiAgICAnYmFzaWMnLFxuICAgICdkYW5nZXInLFxuICAgICdzYWZldHknLFxuICAgICdzYWZldHktZGFyaycsXG4gICAgJ3NhZmV0eS1pbnZlcnNlJyxcbiAgXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgVmFyaWFudCA9ICh0eXBlb2YgVmFyaWFudHMpW251bWJlcl07XG59XG4iLCI8ZGl2ICpyaXYtb3ZlcmxheSBjbGFzcz1cInRvYXN0XCIgW25nQ2xhc3NdPVwidmFyaWFudFwiPlxuICA8cml2LWljb24gKm5nSWY9XCJpY29uXCIgW25hbWVdPVwiaWNvblwiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQVFsRSxNQUFNLE9BQU8sY0FBYztJQU4zQjtRQVFFLFlBQU8sR0FBMkIsT0FBTyxDQUFDO1FBWTFDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhCLFNBQUksR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ2hEO0lBVkMsUUFBUTtRQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7OzJHQVhVLGNBQWM7K0ZBQWQsY0FBYyw0SENqQjNCLGlSQU1BOzJGRFdhLGNBQWM7a0JBTjFCLFNBQVM7K0JBQ0UsV0FBVyxtQkFHSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQVVOLEtBQUs7c0JBREosTUFBTTs7QUFNVCxXQUFpQixjQUFjO0lBQ2hCLHVCQUFRLEdBQUc7UUFDdEIsT0FBTztRQUNQLFFBQVE7UUFDUixRQUFRO1FBQ1IsYUFBYTtRQUNiLGdCQUFnQjtLQUNSLENBQUM7QUFFYixDQUFDLEVBVGdCLGNBQWMsS0FBZCxjQUFjLFFBUzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQU5JTUFUSU9OX0NPTlNUQU5UUyB9IGZyb20gJy4uL292ZXJsYXktb3V0bGV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi10b2FzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgdmFyaWFudDogVG9hc3RDb21wb25lbnQuVmFyaWFudCA9ICdiYXNpYyc7XG5cbiAgQElucHV0KClcbiAgaWNvbj86IEljb25Db21wb25lbnQuTmFtZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICAgIH0sIDMwMDApO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGhvb2sgPSBBTklNQVRJT05fQ09OU1RBTlRTLlRPQVNULkhPT0s7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgVG9hc3RDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgVmFyaWFudHMgPSBbXG4gICAgJ2Jhc2ljJyxcbiAgICAnZGFuZ2VyJyxcbiAgICAnc2FmZXR5JyxcbiAgICAnc2FmZXR5LWRhcmsnLFxuICAgICdzYWZldHktaW52ZXJzZScsXG4gIF0gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFZhcmlhbnQgPSAodHlwZW9mIFZhcmlhbnRzKVtudW1iZXJdO1xufVxuIiwiPGRpdiAqcml2LW92ZXJsYXkgY2xhc3M9XCJ3cmFwcGVyXCIgW2F0dHIuZGF0YS1hbmltYXRpb24taG9va109XCJob29rXCI+XG4gIDxkaXYgY2xhc3M9XCJ0b2FzdFwiIFtuZ0NsYXNzXT1cInZhcmlhbnRcIj5cbiAgICA8cml2LWljb24gKm5nSWY9XCJpY29uXCIgW25hbWVdPVwiaWNvblwiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -151,14 +151,14 @@ export class TableColumnSettingsSideSheetComponent {
151
151
  }
152
152
  }
153
153
  TableColumnSettingsSideSheetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableColumnSettingsSideSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
154
- TableColumnSettingsSideSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TableColumnSettingsSideSheetComponent, selector: "riv-table-column-settings-side-sheet", inputs: { manager: "manager" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["trigger"], descendants: true, read: ElementRef }], ngImport: i0, template: "<button #trigger rivButton (click)=\"open.next(true)\">Columns</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet (close)=\"open.next(false); filterQuery.next('')\">\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <div *ngIf=\"columns.enabledColumns.length > 0\">\n <div\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>Shown in table</span>\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n class=\"option\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i, column.stateIndex)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"columns.enabledColumns.length == 0 && !(searching | async)\"\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button rivButton [variant]=\"'ghost'\" (click)=\"resetToDefault()\">\n Reset to default\n </button>\n </div>\n <riv-menu-divider\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n (!(searching | async) ||\n ((searching | async) && columns.enabledColumns.length > 0))\n \"\n ></riv-menu-divider>\n <div\n *ngIf=\"columns.disabledColumns.length > 0\"\n (drop)=\"dropEnabledState(false)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span>Hidden from table</span>\n\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(i + columns.enabledColumns.length, column.stateIndex)\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\">\n <div class=\"column scroll-padding\">\n <div class=\"column\">\n <span class=\"reorder\" *ngIf=\"!(searching | async)\">\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu class=\"menu\">\n <button\n *ngIf=\"column.enabled && !column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(true, column.stateIndex)\"\n >\n Freeze up to column\n </button>\n <button\n *ngIf=\"column.enabled && column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnPinChange(column, false)\"\n >\n Unfreeze column\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'start')\">\n Move to start\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'end')\">\n Move to end\n </button>\n <button\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n <button\n rivButton\n [rivTooltip]=\"column.enabled ? 'Hide column' : 'Show column'\"\n [class.disabled]=\"!column.enabled\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n ></button>\n </div>\n </div>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .menu{opacity:1}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.disabled:hover{cursor:pointer}.menu{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}\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.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition"] }, { kind: "component", type: i6.MenuDividerComponent, selector: "riv-menu-divider" }, { kind: "component", type: i7.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }, { kind: "component", type: i8.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name"] }, { kind: "component", type: i9.SideSheetComponent, selector: "riv-side-sheet", inputs: ["topOffset"], outputs: ["close"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipCloseDelay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
154
+ TableColumnSettingsSideSheetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TableColumnSettingsSideSheetComponent, selector: "riv-table-column-settings-side-sheet", inputs: { manager: "manager" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["trigger"], descendants: true, read: ElementRef }], ngImport: i0, template: "<button #trigger rivButton (click)=\"open.next(true)\">Columns</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet (close)=\"open.next(false); filterQuery.next('')\">\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <div class=\"columns\">\n <div *ngIf=\"columns.enabledColumns.length > 0\">\n <div\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>Shown in table</span>\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n class=\"option\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i, column.stateIndex)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"columns.enabledColumns.length == 0 && !(searching | async)\"\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button rivButton [variant]=\"'ghost'\" (click)=\"resetToDefault()\">\n Reset to default\n </button>\n </div>\n <riv-menu-divider\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n (!(searching | async) ||\n ((searching | async) && columns.enabledColumns.length > 0))\n \"\n ></riv-menu-divider>\n <div\n *ngIf=\"columns.disabledColumns.length > 0\"\n (drop)=\"dropEnabledState(false)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span>Hidden from table</span>\n\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(i + columns.enabledColumns.length, column.stateIndex)\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\">\n <div class=\"column scroll-padding\">\n <div class=\"column\">\n <span class=\"reorder\" *ngIf=\"!(searching | async)\">\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu class=\"menu\">\n <button\n *ngIf=\"column.enabled && !column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(true, column.stateIndex)\"\n >\n Freeze up to column\n </button>\n <button\n *ngIf=\"column.enabled && column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnPinChange(column, false)\"\n >\n Unfreeze column\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'start')\">\n Move to start\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'end')\">\n Move to end\n </button>\n <button\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n <button\n rivButton\n [rivTooltip]=\"column.enabled ? 'Hide column' : 'Show column'\"\n [class.disabled]=\"!column.enabled\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n ></button>\n </div>\n </div>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .menu{opacity:1}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.disabled:hover{cursor:pointer}.menu{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}\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.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition"] }, { kind: "component", type: i6.MenuDividerComponent, selector: "riv-menu-divider" }, { kind: "component", type: i7.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }, { kind: "component", type: i8.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name"] }, { kind: "component", type: i9.SideSheetComponent, selector: "riv-side-sheet", inputs: ["topOffset"], outputs: ["close"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipCloseDelay"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TableColumnSettingsSideSheetComponent, decorators: [{
156
156
  type: Component,
157
- args: [{ selector: 'riv-table-column-settings-side-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button #trigger rivButton (click)=\"open.next(true)\">Columns</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet (close)=\"open.next(false); filterQuery.next('')\">\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <div *ngIf=\"columns.enabledColumns.length > 0\">\n <div\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>Shown in table</span>\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n class=\"option\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i, column.stateIndex)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"columns.enabledColumns.length == 0 && !(searching | async)\"\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button rivButton [variant]=\"'ghost'\" (click)=\"resetToDefault()\">\n Reset to default\n </button>\n </div>\n <riv-menu-divider\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n (!(searching | async) ||\n ((searching | async) && columns.enabledColumns.length > 0))\n \"\n ></riv-menu-divider>\n <div\n *ngIf=\"columns.disabledColumns.length > 0\"\n (drop)=\"dropEnabledState(false)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span>Hidden from table</span>\n\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(i + columns.enabledColumns.length, column.stateIndex)\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\">\n <div class=\"column scroll-padding\">\n <div class=\"column\">\n <span class=\"reorder\" *ngIf=\"!(searching | async)\">\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu class=\"menu\">\n <button\n *ngIf=\"column.enabled && !column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(true, column.stateIndex)\"\n >\n Freeze up to column\n </button>\n <button\n *ngIf=\"column.enabled && column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnPinChange(column, false)\"\n >\n Unfreeze column\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'start')\">\n Move to start\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'end')\">\n Move to end\n </button>\n <button\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n <button\n rivButton\n [rivTooltip]=\"column.enabled ? 'Hide column' : 'Show column'\"\n [class.disabled]=\"!column.enabled\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n ></button>\n </div>\n </div>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .menu{opacity:1}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.disabled:hover{cursor:pointer}.menu{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}\n"] }]
157
+ args: [{ selector: 'riv-table-column-settings-side-sheet', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button #trigger rivButton (click)=\"open.next(true)\">Columns</button>\n\n<ng-container *ngIf=\"columnList | async; let columns\">\n <ng-container *ngIf=\"open | async\">\n <riv-side-sheet (close)=\"open.next(false); filterQuery.next('')\">\n <div class=\"content\">\n <div class=\"title\">\n <span>Columns</span>\n <button\n rivButton\n [variant]=\"'ghost'\"\n [icon]=\"'X'\"\n (click)=\"open.next(false); filterQuery.next('')\"\n ></button>\n </div>\n <riv-search\n [name]=\"'column-search'\"\n [value]=\"(filterQuery | async) || ''\"\n (valueChange)=\"filterQuery.next($event)\"\n ></riv-search>\n <div class=\"columns\">\n <div *ngIf=\"columns.enabledColumns.length > 0\">\n <div\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>Shown in table</span>\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsEnabled(columns)\"\n (click)=\"enableAllColumns(false)\"\n >\n Hide all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.enabledColumns; let i = index\"\n class=\"option\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"$event.preventDefault(); dragOver(i)\"\n (drop)=\"drop(i, column.stateIndex)\"\n [class.dragged-over-top]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx > i\n \"\n [class.dragged-over-bottom]=\"\n draggedOverColumnIdx === i &&\n draggedColumnIdx !== null &&\n draggedColumnIdx < i\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"columns.enabledColumns.length == 0 && !(searching | async)\"\n class=\"column-header\"\n (drop)=\"dropEnabledState(true)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <span>No columns shown</span>\n <button rivButton [variant]=\"'ghost'\" (click)=\"resetToDefault()\">\n Reset to default\n </button>\n </div>\n <riv-menu-divider\n *ngIf=\"\n columns.disabledColumns.length > 0 &&\n (!(searching | async) ||\n ((searching | async) && columns.enabledColumns.length > 0))\n \"\n ></riv-menu-divider>\n <div\n *ngIf=\"columns.disabledColumns.length > 0\"\n (drop)=\"dropEnabledState(false)\"\n (dragover)=\"$event.preventDefault(); dragOver(-1)\"\n >\n <div class=\"column-header\">\n <span>Hidden from table</span>\n\n <button\n *ngIf=\"!(searching | async)\"\n rivButton\n [variant]=\"'ghost'\"\n [disabled]=\"allColumnsDisabled(columns)\"\n (click)=\"enableAllColumns(true)\"\n >\n Show all\n </button>\n </div>\n\n <div class=\"options\">\n <div\n *ngFor=\"let column of columns.disabledColumns; let i = index\"\n [attr.draggable]=\"!(searching | async)\"\n [attr.droppable]=\"!(searching | async)\"\n (dragstart)=\"dragStart(column.stateIndex, column.name)\"\n (dragenter)=\"$event.preventDefault()\"\n (dragover)=\"\n $event.preventDefault();\n dragOver(i + columns.enabledColumns.length)\n \"\n (drop)=\"\n drop(i + columns.enabledColumns.length, column.stateIndex)\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"columnTemplate; context: { column }\"\n ></ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </riv-side-sheet>\n </ng-container>\n</ng-container>\n\n<ng-template #columnTemplate let-column=\"column\">\n <div class=\"column scroll-padding\">\n <div class=\"column\">\n <span class=\"reorder\" *ngIf=\"!(searching | async)\">\n <riv-icon [name]=\"'Reorder'\" [size]=\"20\"></riv-icon>\n </span>\n <riv-highlight\n [text]=\"column.resolvedName\"\n [indices]=\"column.highlightIndices\"\n ></riv-highlight>\n </div>\n <div>\n <riv-menu class=\"menu\">\n <button\n *ngIf=\"column.enabled && !column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnFreezeUpTo(true, column.stateIndex)\"\n >\n Freeze up to column\n </button>\n <button\n *ngIf=\"column.enabled && column.isLastPinnedColumn\"\n riv-menu-item\n (click)=\"columnPinChange(column, false)\"\n >\n Unfreeze column\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'start')\">\n Move to start\n </button>\n <button riv-menu-item (click)=\"columnMoveTo(column, 'end')\">\n Move to end\n </button>\n <button\n riv-menu-item\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n >\n {{ column.enabled ? 'Hide column' : 'Show column' }}\n </button>\n </riv-menu>\n <button\n rivButton\n [rivTooltip]=\"column.enabled ? 'Hide column' : 'Show column'\"\n [class.disabled]=\"!column.enabled\"\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"column.enabled ? 'Eye' : 'EyeOff'\"\n (click)=\"columnEnabledChange(column, !column.enabled)\"\n ></button>\n </div>\n </div>\n</ng-template>\n", styles: [".content{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-medium);height:100%}.title{font:var(--title-02);display:flex;justify-content:space-between;align-items:center}.column-header{color:var(--type-light-low-contrast);display:flex;justify-content:space-between;align-items:center;font:var(--input-medium)}.column{display:flex;align-items:center;justify-content:space-between;position:relative;font:var(--input-medium)}.column:hover{background-color:var(--surface-light-1)}.column:hover .menu{opacity:1}.reorder{padding-right:var(--size-medium);display:flex;justify-content:center;align-items:center;align-self:stretch;color:var(--type-light-low-contrast);cursor:grab}.disabled:hover{cursor:pointer}.menu{opacity:0}.columns{flex-grow:1;overflow-y:auto}.options{display:flex;flex-direction:column}.option{position:relative}.option.dragged-over-top:before,.option.dragged-over-bottom:before{content:\"\";position:absolute;left:0;right:0;height:var(--size-xxsmall);background-color:var(--brand);box-shadow:0 0 var(--size-xxsmall) var(--brand)}.option.dragged-over-top:before{top:0}.option.dragged-over-bottom:before{bottom:0}.scroll-padding{padding-right:var(--base-grid-size)}\n"] }]
158
158
  }], propDecorators: { manager: [{
159
159
  type: Input
160
160
  }], anchor: [{
161
161
  type: ViewChild,
162
162
  args: ['trigger', { read: ElementRef }]
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3Mtc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFzQnZFLE1BQU0sT0FBTyxxQ0FBcUM7SUFObEQ7UUFrQlcsU0FBSSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEMsY0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBK0hsRSxxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFhLElBQUksQ0FBQztRQUNuQyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO0tBdUM1QztJQXBLQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFh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LElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDekIsSUFBSSxFQUFFLHFCQUFxQjtnQkFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQzlCLE9BQU8sRUFBRSxPQUFPO2FBQ2pCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFhO1FBQ3JDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7a0lBdkxVLHFDQUFxQztzSEFBckMscUNBQXFDLDBMQVNsQixVQUFVLDZCQ3hDMUMsaXhNQW9MQTsyRkRySmEscUNBQXFDO2tCQU5qRCxTQUFTOytCQUNFLHNDQUFzQyxtQkFHL0IsdUJBQXVCLENBQUMsTUFBTTs4QkFTL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLE1BQU07c0JBREwsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbnR5cGUgQ29sdW1uTGlzdDxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPiA9IChSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiAmIHtcbiAgcmVzb2x2ZWROYW1lOiBDIHwgc3RyaW5nO1xuICBoaWdobGlnaHRJbmRpY2VzOiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xuICBzdGF0ZUluZGV4OiBudW1iZXI7XG4gIGlzTGFzdFBpbm5lZENvbHVtbjogYm9vbGVhbjtcbn0pW107XG5cbnR5cGUgQ29sdW1uR3JvdXBzPEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4+ID0ge1xuICBlbmFibGVkQ29sdW1uczogQ29sdW1uTGlzdDxDPjtcbiAgZGlzYWJsZWRDb2x1bW5zOiBDb2x1bW5MaXN0PEM+O1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5TZXR0aW5nc1NpZGVTaGVldENvbXBvbmVudDxcbiAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4+IGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZUYWJsZS5NYW5hZ2VyPFIsIEMsIEY+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYW5jaG9yPzogRWxlbWVudFJlZjtcblxuICByZWFkb25seSBvcGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyUXVlcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcblxuICByZWFkb25seSBzZWFyY2hpbmcgPSB0aGlzLmZpbHRlclF1ZXJ5LnBpcGUobWFwKHF1ZXJ5ID0+ICEhcXVlcnkpKTtcblxuICBjb2x1bW5MaXN0PzogT2JzZXJ2YWJsZTxDb2x1bW5Hcm91cHM8Qz4+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5hZ2VyIS5zdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uc0xlbmd0aCA9IHMuZGlzcGxheS5hbGxDb2x1bW5zLmxlbmd0aDtcbiAgICAgICAgICBjb25zdCBhbGxDb2x1bW5zID0gcy5kaXNwbGF5LmFsbENvbHVtbnMubWFwKChjb2x1bW4sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDb2x1bW5QaW5uZWQgPVxuICAgICAgICAgICAgICBpICsgMiA8PSBjb2x1bW5zTGVuZ3RoXG4gICAgICAgICAgICAgICAgPyBzLmRpc3BsYXkuYWxsQ29sdW1uc1tpICsgMV0ucGlubmVkXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgICAgICByZXNvbHZlZE5hbWU6XG4gICAgICAgICAgICAgICAgcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5uYW1lKSA/PyBjb2x1bW4ubmFtZSxcbiAgICAgICAgICAgICAgc3RhdGVJbmRleDogaSxcbiAgICAgICAgICAgICAgaXNMYXN0UGlubmVkQ29sdW1uOiBjb2x1bW4ucGlubmVkICYmICFuZXh0Q29sdW1uUGlubmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBmdXNlID0gbmV3IEZ1c2UoYWxsQ29sdW1ucywge1xuICAgICAgICAgICAga2V5czogWydyZXNvbHZlZE5hbWUnXSxcbiAgICAgICAgICAgIGluY2x1ZGVNYXRjaGVzOiB0cnVlLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAwLjQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHsgZnVzZSwgYWxsQ29sdW1ucyB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0aGlzLmZpbHRlclF1ZXJ5LFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt7IGZ1c2UsIGFsbENvbHVtbnMgfSwgZmlsdGVyUXVlcnldKSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBmdXNlLnNlYXJjaChmaWx0ZXJRdWVyeSkubWFwKG1hdGNoID0+ICh7XG4gICAgICAgICAgICAuLi5tYXRjaC5pdGVtLFxuICAgICAgICAgICAgaGlnaGxpZ2h0SW5kaWNlczogW1xuICAgICAgICAgICAgICAuLi4obWF0Y2gubWF0Y2hlcz8uZmluZChyZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3Jlc29sdmVkTmFtZScpXG4gICAgICAgICAgICAgICAgPy5pbmRpY2VzIHx8IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGNvbnN0IGVuYWJsZWRDb2x1bW5zID0gbWF0Y2hlcy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5lbmFibGVkKTtcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZENvbHVtbnMgPSBtYXRjaGVzLmZpbHRlcihjb2x1bW4gPT4gIWNvbHVtbi5lbmFibGVkKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmFibGVkQ29sdW1ucyxcbiAgICAgICAgICAgIGRpc2FibGVkQ29sdW1ucyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWxsVmlzYWJsZUNvbHVtbnMgPSBhbGxDb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgaGlnaGxpZ2h0SW5kaWNlczogW10sXG4gICAgICAgIH0pKTtcblxuICAgICAgICBjb25zdCBlbmFibGVkQ29sdW1ucyA9IGFsbFZpc2FibGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICBjb2x1bW4gPT4gY29sdW1uLmVuYWJsZWQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRpc2FibGVkQ29sdW1ucyA9IGFsbFZpc2FibGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICBjb2x1bW4gPT4gIWNvbHVtbi5lbmFibGVkLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW5hYmxlZENvbHVtbnM6IGVuYWJsZWRDb2x1bW5zLFxuICAgICAgICAgIGRpc2FibGVkQ29sdW1uczogZGlzYWJsZWRDb2x1bW5zLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiwgZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgIGNvbHVtbjogY29sdW1uLm5hbWUsXG4gICAgICBlbmFibGVkLFxuICAgIH0pO1xuICB9XG5cbiAgY29sdW1uUGluQ2hhbmdlKGNvbHVtbjogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz4sIHBpbm5lZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5QaW5DaGFuZ2UnLFxuICAgICAgY29sdW1uOiBjb2x1bW4ubmFtZSxcbiAgICAgIHBpbm5lZCxcbiAgICB9KTtcbiAgfVxuICByZXNldFRvRGVmYXVsdCgpIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAncmVzZXRUb0RlZmF1bHRDb2x1bW5zJyxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtbk1vdmVUbyhjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LCBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtbk1vdmVUb0NoYW5nZScsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIGNvbHVtbjogY29sdW1uLm5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBjb2x1bW5GcmVlemVVcFRvKGZyZWV6ZTogYm9vbGVhbiwgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5zRnJlZXplVXBUb0NoYW5nZScsXG4gICAgICBmcmVlemUsXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgfVxuXG4gIGFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID09IDAgJiYgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIGFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA9PSAwICYmIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgZW5hYmxlQWxsQ29sdW1ucyhlbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2VuYWJsZUFsbENvbHVtbnNDaGFuZ2UnLFxuICAgICAgZW5hYmxlZCxcbiAgICB9KTtcbiAgfVxuXG4gIGRyYWdnZWRDb2x1bW5JZHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkQ29sdW1uTmFtZTogQyB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkT3ZlckNvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZHJhZ1N0YXJ0KGlkeDogbnVtYmVyLCBuYW1lOiBDKSB7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uSWR4ID0gaWR4O1xuICAgIHRoaXMuZHJhZ2dlZENvbHVtbk5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZHJhZ092ZXIob250b0lkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG9udG9JZHg7XG4gIH1cblxuICBkcm9wKG9udG9JZHg6IG51bWJlciwgc3RhdGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBzdGF0ZUluZGV4LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJhZ2dlZENvbHVtbk5hbWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGRyb3BFbmFibGVkU3RhdGUoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRyYWdnZWRDb2x1bW5OYW1lICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgICAgY29sdW1uOiB0aGlzLmRyYWdnZWRDb2x1bW5OYW1lLFxuICAgICAgICBlbmFibGVkOiBlbmFibGVkLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBudWxsO1xuICAgICAgdGhpcy5kcmFnZ2VkQ29sdW1uTmFtZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZWRDb2x1bW5zV2l0aE9mZnNldChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCI8YnV0dG9uICN0cmlnZ2VyIHJpdkJ1dHRvbiAoY2xpY2spPVwib3Blbi5uZXh0KHRydWUpXCI+Q29sdW1uczwvYnV0dG9uPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uTGlzdCB8IGFzeW5jOyBsZXQgY29sdW1uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwib3BlbiB8IGFzeW5jXCI+XG4gICAgPHJpdi1zaWRlLXNoZWV0IChjbG9zZSk9XCJvcGVuLm5leHQoZmFsc2UpOyBmaWx0ZXJRdWVyeS5uZXh0KCcnKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4+Q29sdW1uczwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgW2ljb25dPVwiJ1gnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuLm5leHQoZmFsc2UpOyBmaWx0ZXJRdWVyeS5uZXh0KCcnKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHJpdi1zZWFyY2hcbiAgICAgICAgICBbbmFtZV09XCInY29sdW1uLXNlYXJjaCdcIlxuICAgICAgICAgIFt2YWx1ZV09XCIoZmlsdGVyUXVlcnkgfCBhc3luYykgfHwgJydcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmaWx0ZXJRdWVyeS5uZXh0KCRldmVudClcIlxuICAgICAgICA+PC9yaXYtc2VhcmNoPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCJcbiAgICAgICAgICAgIChkcm9wKT1cImRyb3BFbmFibGVkU3RhdGUodHJ1ZSlcIlxuICAgICAgICAgICAgKGRyYWdvdmVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcigtMSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPlNob3duIGluIHRhYmxlPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiEoc2VhcmNoaW5nIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWxsQ29sdW1uc0VuYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlQWxsQ29sdW1ucyhmYWxzZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBIaWRlIGFsbFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMuZW5hYmxlZENvbHVtbnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvblwiXG4gICAgICAgICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRyb3BwYWJsZV09XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0KGNvbHVtbi5zdGF0ZUluZGV4LCBjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAoZHJhZ2VudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgKGRyYWdvdmVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcihpKVwiXG4gICAgICAgICAgICAgIChkcm9wKT1cImRyb3AoaSwgY29sdW1uLnN0YXRlSW5kZXgpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci10b3BdPVwiXG4gICAgICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA+IGlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci1ib3R0b21dPVwiXG4gICAgICAgICAgICAgICAgZHJhZ2dlZE92ZXJDb2x1bW5JZHggPT09IGkgJiZcbiAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA8IGlcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uVGVtcGxhdGU7IGNvbnRleHQ6IHsgY29sdW1uIH1cIlxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoID09IDAgJiYgIShzZWFyY2hpbmcgfCBhc3luYylcIlxuICAgICAgICAgIGNsYXNzPVwiY29sdW1uLWhlYWRlclwiXG4gICAgICAgICAgKGRyb3ApPVwiZHJvcEVuYWJsZWRTdGF0ZSh0cnVlKVwiXG4gICAgICAgICAgKGRyYWdvdmVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBkcmFnT3ZlcigtMSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+Tm8gY29sdW1ucyBzaG93bjwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIHJpdkJ1dHRvbiBbdmFyaWFudF09XCInZ2hvc3QnXCIgKGNsaWNrKT1cInJlc2V0VG9EZWZhdWx0KClcIj5cbiAgICAgICAgICAgIFJlc2V0IHRvIGRlZmF1bHRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxyaXYtbWVudS1kaXZpZGVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICghKHNlYXJjaGluZyB8IGFzeW5jKSB8fFxuICAgICAgICAgICAgICAoKHNlYXJjaGluZyB8IGFzeW5jKSAmJiBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDApKVxuICAgICAgICAgIFwiXG4gICAgICAgID48L3Jpdi1tZW51LWRpdmlkZXI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAqbmdJZj1cImNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDBcIlxuICAgICAgICAgIChkcm9wKT1cImRyb3BFbmFibGVkU3RhdGUoZmFsc2UpXCJcbiAgICAgICAgICAoZHJhZ292ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLWhlYWRlclwiPlxuICAgICAgICAgICAgPHNwYW4+SGlkZGVuIGZyb20gdGFibGU8L3NwYW4+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJlbmFibGVBbGxDb2x1bW5zKHRydWUpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgU2hvdyBhbGxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zLmRpc2FibGVkQ29sdW1uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRyb3BwYWJsZV09XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0KGNvbHVtbi5zdGF0ZUluZGV4LCBjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAoZHJhZ2VudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgKGRyYWdvdmVyKT1cIlxuICAgICAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGRyYWdPdmVyKGkgKyBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aClcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKGRyb3ApPVwiXG4gICAgICAgICAgICAgICAgZHJvcChpICsgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGgsIGNvbHVtbi5zdGF0ZUluZGV4KVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5UZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW4gfVwiXG4gICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcml2LXNpZGUtc2hlZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uIHNjcm9sbC1wYWRkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJyZW9yZGVyXCIgKm5nSWY9XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiPlxuICAgICAgICA8cml2LWljb24gW25hbWVdPVwiJ1Jlb3JkZXInXCIgW3NpemVdPVwiMjBcIj48L3Jpdi1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgW3RleHRdPVwiY29sdW1uLnJlc29sdmVkTmFtZVwiXG4gICAgICAgIFtpbmRpY2VzXT1cImNvbHVtbi5oaWdobGlnaHRJbmRpY2VzXCJcbiAgICAgID48L3Jpdi1oaWdobGlnaHQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxyaXYtbWVudSBjbGFzcz1cIm1lbnVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmVuYWJsZWQgJiYgIWNvbHVtbi5pc0xhc3RQaW5uZWRDb2x1bW5cIlxuICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAoY2xpY2spPVwiY29sdW1uRnJlZXplVXBUbyh0cnVlLCBjb2x1bW4uc3RhdGVJbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgRnJlZXplIHVwIHRvIGNvbHVtblxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmVuYWJsZWQgJiYgY29sdW1uLmlzTGFzdFBpbm5lZENvbHVtblwiXG4gICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgIChjbGljayk9XCJjb2x1bW5QaW5DaGFuZ2UoY29sdW1uLCBmYWxzZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgVW5mcmVlemUgY29sdW1uXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHJpdi1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbHVtbk1vdmVUbyhjb2x1bW4sICdzdGFydCcpXCI+XG4gICAgICAgICAgTW92ZSB0byBzdGFydFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiByaXYtbWVudS1pdGVtIChjbGljayk9XCJjb2x1bW5Nb3ZlVG8oY29sdW1uLCAnZW5kJylcIj5cbiAgICAgICAgICBNb3ZlIHRvIGVuZFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAoY2xpY2spPVwiY29sdW1uRW5hYmxlZENoYW5nZShjb2x1bW4sICFjb2x1bW4uZW5hYmxlZClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sdW1uLmVuYWJsZWQgPyAnSGlkZSBjb2x1bW4nIDogJ1Nob3cgY29sdW1uJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvcml2LW1lbnU+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHJpdkJ1dHRvblxuICAgICAgICBbcml2VG9vbHRpcF09XCJjb2x1bW4uZW5hYmxlZCA/ICdIaWRlIGNvbHVtbicgOiAnU2hvdyBjb2x1bW4nXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFjb2x1bW4uZW5hYmxlZFwiXG4gICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgW2ljb25dPVwiY29sdW1uLmVuYWJsZWQgPyAnRXllJyA6ICdFeWVPZmYnXCJcbiAgICAgICAgKGNsaWNrKT1cImNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uLCAhY29sdW1uLmVuYWJsZWQpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdGFibGUvdGFibGUtY29sdW1uLXNldHRpbmdzL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy90YWJsZS1jb2x1bW4tc2V0dGluZ3Mtc2lkZS1zaGVldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFzQnZFLE1BQU0sT0FBTyxxQ0FBcUM7SUFObEQ7UUFrQlcsU0FBSSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEMsY0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBK0hsRSxxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBQ3ZDLHNCQUFpQixHQUFhLElBQUksQ0FBQztRQUNuQyx5QkFBb0IsR0FBa0IsSUFBSSxDQUFDO0tBdUM1QztJQXBLQyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFh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LElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDekIsSUFBSSxFQUFFLHFCQUFxQjtnQkFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQzlCLE9BQU8sRUFBRSxPQUFPO2FBQ2pCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxLQUFhO1FBQ3JDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7a0lBdkxVLHFDQUFxQztzSEFBckMscUNBQXFDLDBMQVNsQixVQUFVLDZCQ3hDMUMsMGdOQXNMQTsyRkR2SmEscUNBQXFDO2tCQU5qRCxTQUFTOytCQUNFLHNDQUFzQyxtQkFHL0IsdUJBQXVCLENBQUMsTUFBTTs4QkFTL0MsT0FBTztzQkFETixLQUFLO2dCQUlOLE1BQU07c0JBREwsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbnR5cGUgQ29sdW1uTGlzdDxDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPiA9IChSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiAmIHtcbiAgcmVzb2x2ZWROYW1lOiBDIHwgc3RyaW5nO1xuICBoaWdobGlnaHRJbmRpY2VzOiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xuICBzdGF0ZUluZGV4OiBudW1iZXI7XG4gIGlzTGFzdFBpbm5lZENvbHVtbjogYm9vbGVhbjtcbn0pW107XG5cbnR5cGUgQ29sdW1uR3JvdXBzPEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4+ID0ge1xuICBlbmFibGVkQ29sdW1uczogQ29sdW1uTGlzdDxDPjtcbiAgZGlzYWJsZWRDb2x1bW5zOiBDb2x1bW5MaXN0PEM+O1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXRhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWNvbHVtbi1zZXR0aW5ncy1zaWRlLXNoZWV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtY29sdW1uLXNldHRpbmdzLXNpZGUtc2hlZXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5TZXR0aW5nc1NpZGVTaGVldENvbXBvbmVudDxcbiAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4+IGltcGxlbWVudHMgT25Jbml0XG57XG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZUYWJsZS5NYW5hZ2VyPFIsIEMsIEY+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgYW5jaG9yPzogRWxlbWVudFJlZjtcblxuICByZWFkb25seSBvcGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyUXVlcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcblxuICByZWFkb25seSBzZWFyY2hpbmcgPSB0aGlzLmZpbHRlclF1ZXJ5LnBpcGUobWFwKHF1ZXJ5ID0+ICEhcXVlcnkpKTtcblxuICBjb2x1bW5MaXN0PzogT2JzZXJ2YWJsZTxDb2x1bW5Hcm91cHM8Qz4+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uTGlzdCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5hZ2VyIS5zdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1uc0xlbmd0aCA9IHMuZGlzcGxheS5hbGxDb2x1bW5zLmxlbmd0aDtcbiAgICAgICAgICBjb25zdCBhbGxDb2x1bW5zID0gcy5kaXNwbGF5LmFsbENvbHVtbnMubWFwKChjb2x1bW4sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRDb2x1bW5QaW5uZWQgPVxuICAgICAgICAgICAgICBpICsgMiA8PSBjb2x1bW5zTGVuZ3RoXG4gICAgICAgICAgICAgICAgPyBzLmRpc3BsYXkuYWxsQ29sdW1uc1tpICsgMV0ucGlubmVkXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICAgICAgICByZXNvbHZlZE5hbWU6XG4gICAgICAgICAgICAgICAgcy5kaXNwbGF5LmNvbHVtbk5hbWVNYXAuZ2V0KGNvbHVtbi5uYW1lKSA/PyBjb2x1bW4ubmFtZSxcbiAgICAgICAgICAgICAgc3RhdGVJbmRleDogaSxcbiAgICAgICAgICAgICAgaXNMYXN0UGlubmVkQ29sdW1uOiBjb2x1bW4ucGlubmVkICYmICFuZXh0Q29sdW1uUGlubmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBmdXNlID0gbmV3IEZ1c2UoYWxsQ29sdW1ucywge1xuICAgICAgICAgICAga2V5czogWydyZXNvbHZlZE5hbWUnXSxcbiAgICAgICAgICAgIGluY2x1ZGVNYXRjaGVzOiB0cnVlLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAwLjQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHsgZnVzZSwgYWxsQ29sdW1ucyB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB0aGlzLmZpbHRlclF1ZXJ5LFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt7IGZ1c2UsIGFsbENvbHVtbnMgfSwgZmlsdGVyUXVlcnldKSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBmdXNlLnNlYXJjaChmaWx0ZXJRdWVyeSkubWFwKG1hdGNoID0+ICh7XG4gICAgICAgICAgICAuLi5tYXRjaC5pdGVtLFxuICAgICAgICAgICAgaGlnaGxpZ2h0SW5kaWNlczogW1xuICAgICAgICAgICAgICAuLi4obWF0Y2gubWF0Y2hlcz8uZmluZChyZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3Jlc29sdmVkTmFtZScpXG4gICAgICAgICAgICAgICAgPy5pbmRpY2VzIHx8IFtdKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGNvbnN0IGVuYWJsZWRDb2x1bW5zID0gbWF0Y2hlcy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbi5lbmFibGVkKTtcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZENvbHVtbnMgPSBtYXRjaGVzLmZpbHRlcihjb2x1bW4gPT4gIWNvbHVtbi5lbmFibGVkKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmFibGVkQ29sdW1ucyxcbiAgICAgICAgICAgIGRpc2FibGVkQ29sdW1ucyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWxsVmlzYWJsZUNvbHVtbnMgPSBhbGxDb2x1bW5zLm1hcChjb2x1bW4gPT4gKHtcbiAgICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgICAgaGlnaGxpZ2h0SW5kaWNlczogW10sXG4gICAgICAgIH0pKTtcblxuICAgICAgICBjb25zdCBlbmFibGVkQ29sdW1ucyA9IGFsbFZpc2FibGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICBjb2x1bW4gPT4gY29sdW1uLmVuYWJsZWQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGRpc2FibGVkQ29sdW1ucyA9IGFsbFZpc2FibGVDb2x1bW5zLmZpbHRlcihcbiAgICAgICAgICBjb2x1bW4gPT4gIWNvbHVtbi5lbmFibGVkLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW5hYmxlZENvbHVtbnM6IGVuYWJsZWRDb2x1bW5zLFxuICAgICAgICAgIGRpc2FibGVkQ29sdW1uczogZGlzYWJsZWRDb2x1bW5zLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uOiBSaXZUYWJsZS5Db2x1bW5TZXR0aW5nczxDPiwgZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgIGNvbHVtbjogY29sdW1uLm5hbWUsXG4gICAgICBlbmFibGVkLFxuICAgIH0pO1xuICB9XG5cbiAgY29sdW1uUGluQ2hhbmdlKGNvbHVtbjogUml2VGFibGUuQ29sdW1uU2V0dGluZ3M8Qz4sIHBpbm5lZDogYm9vbGVhbikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5QaW5DaGFuZ2UnLFxuICAgICAgY29sdW1uOiBjb2x1bW4ubmFtZSxcbiAgICAgIHBpbm5lZCxcbiAgICB9KTtcbiAgfVxuICByZXNldFRvRGVmYXVsdCgpIHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICB0eXBlOiAncmVzZXRUb0RlZmF1bHRDb2x1bW5zJyxcbiAgICB9KTtcbiAgfVxuXG4gIGNvbHVtbk1vdmVUbyhjb2x1bW46IFJpdlRhYmxlLkNvbHVtblNldHRpbmdzPEM+LCBwb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2NvbHVtbk1vdmVUb0NoYW5nZScsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIGNvbHVtbjogY29sdW1uLm5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBjb2x1bW5GcmVlemVVcFRvKGZyZWV6ZTogYm9vbGVhbiwgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgIHR5cGU6ICdjb2x1bW5zRnJlZXplVXBUb0NoYW5nZScsXG4gICAgICBmcmVlemUsXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgfVxuXG4gIGFsbENvbHVtbnNEaXNhYmxlZChjb2x1bW5zOiBDb2x1bW5Hcm91cHM8Qz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID09IDAgJiYgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIGFsbENvbHVtbnNFbmFibGVkKGNvbHVtbnM6IENvbHVtbkdyb3VwczxDPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA9PSAwICYmIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgZW5hYmxlQWxsQ29sdW1ucyhlbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgdHlwZTogJ2VuYWJsZUFsbENvbHVtbnNDaGFuZ2UnLFxuICAgICAgZW5hYmxlZCxcbiAgICB9KTtcbiAgfVxuXG4gIGRyYWdnZWRDb2x1bW5JZHg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkQ29sdW1uTmFtZTogQyB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkT3ZlckNvbHVtbklkeDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZHJhZ1N0YXJ0KGlkeDogbnVtYmVyLCBuYW1lOiBDKSB7XG4gICAgdGhpcy5kcmFnZ2VkQ29sdW1uSWR4ID0gaWR4O1xuICAgIHRoaXMuZHJhZ2dlZENvbHVtbk5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZHJhZ092ZXIob250b0lkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5kcmFnZ2VkT3ZlckNvbHVtbklkeCA9IG9udG9JZHg7XG4gIH1cblxuICBkcm9wKG9udG9JZHg6IG51bWJlciwgc3RhdGVJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnY29sdW1uT3JkZXJDaGFuZ2UnLFxuICAgICAgICBwcmV2aW91c0luZGV4OiB0aGlzLmRyYWdnZWRDb2x1bW5JZHgsXG4gICAgICAgIG5ld0luZGV4OiBzdGF0ZUluZGV4LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRyYWdnZWRPdmVyQ29sdW1uSWR4ID0gbnVsbDtcbiAgICAgIHRoaXMuZHJhZ2dlZENvbHVtbk5hbWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGRyb3BFbmFibGVkU3RhdGUoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmRyYWdnZWRDb2x1bW5OYW1lICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgIHR5cGU6ICdjb2x1bW5FbmFibGVkQ2hhbmdlJyxcbiAgICAgICAgY29sdW1uOiB0aGlzLmRyYWdnZWRDb2x1bW5OYW1lLFxuICAgICAgICBlbmFibGVkOiBlbmFibGVkLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZHJhZ2dlZE92ZXJDb2x1bW5JZHggPSBudWxsO1xuICAgICAgdGhpcy5kcmFnZ2VkQ29sdW1uTmFtZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgZGlzYWJsZWRDb2x1bW5zV2l0aE9mZnNldChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCI8YnV0dG9uICN0cmlnZ2VyIHJpdkJ1dHRvbiAoY2xpY2spPVwib3Blbi5uZXh0KHRydWUpXCI+Q29sdW1uczwvYnV0dG9uPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uTGlzdCB8IGFzeW5jOyBsZXQgY29sdW1uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwib3BlbiB8IGFzeW5jXCI+XG4gICAgPHJpdi1zaWRlLXNoZWV0IChjbG9zZSk9XCJvcGVuLm5leHQoZmFsc2UpOyBmaWx0ZXJRdWVyeS5uZXh0KCcnKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgPHNwYW4+Q29sdW1uczwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgW2ljb25dPVwiJ1gnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuLm5leHQoZmFsc2UpOyBmaWx0ZXJRdWVyeS5uZXh0KCcnKVwiXG4gICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHJpdi1zZWFyY2hcbiAgICAgICAgICBbbmFtZV09XCInY29sdW1uLXNlYXJjaCdcIlxuICAgICAgICAgIFt2YWx1ZV09XCIoZmlsdGVyUXVlcnkgfCBhc3luYykgfHwgJydcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmaWx0ZXJRdWVyeS5uZXh0KCRldmVudClcIlxuICAgICAgICA+PC9yaXYtc2VhcmNoPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uc1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4taGVhZGVyXCJcbiAgICAgICAgICAgICAgKGRyb3ApPVwiZHJvcEVuYWJsZWRTdGF0ZSh0cnVlKVwiXG4gICAgICAgICAgICAgIChkcmFnb3Zlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZHJhZ092ZXIoLTEpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4+U2hvd24gaW4gdGFibGU8L3NwYW4+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiEoc2VhcmNoaW5nIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWxsQ29sdW1uc0VuYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJlbmFibGVBbGxDb2x1bW5zKGZhbHNlKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBIaWRlIGFsbFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZHJhZ2dhYmxlXT1cIiEoc2VhcmNoaW5nIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kcm9wcGFibGVdPVwiIShzZWFyY2hpbmcgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0KGNvbHVtbi5zdGF0ZUluZGV4LCBjb2x1bW4ubmFtZSlcIlxuICAgICAgICAgICAgICAgIChkcmFnZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgIChkcmFnb3Zlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgZHJhZ092ZXIoaSlcIlxuICAgICAgICAgICAgICAgIChkcm9wKT1cImRyb3AoaSwgY29sdW1uLnN0YXRlSW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZHJhZ2dlZC1vdmVyLXRvcF09XCJcbiAgICAgICAgICAgICAgICAgIGRyYWdnZWRPdmVyQ29sdW1uSWR4ID09PSBpICYmXG4gICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgICBkcmFnZ2VkQ29sdW1uSWR4ID4gaVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRyYWdnZWQtb3Zlci1ib3R0b21dPVwiXG4gICAgICAgICAgICAgICAgICBkcmFnZ2VkT3ZlckNvbHVtbklkeCA9PT0gaSAmJlxuICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgICAgZHJhZ2dlZENvbHVtbklkeCA8IGlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5UZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW4gfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGggPT0gMCAmJiAhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNvbHVtbi1oZWFkZXJcIlxuICAgICAgICAgICAgKGRyb3ApPVwiZHJvcEVuYWJsZWRTdGF0ZSh0cnVlKVwiXG4gICAgICAgICAgICAoZHJhZ292ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+Tm8gY29sdW1ucyBzaG93bjwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b24gcml2QnV0dG9uIFt2YXJpYW50XT1cIidnaG9zdCdcIiAoY2xpY2spPVwicmVzZXRUb0RlZmF1bHQoKVwiPlxuICAgICAgICAgICAgICBSZXNldCB0byBkZWZhdWx0XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cml2LW1lbnUtZGl2aWRlclxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAoIShzZWFyY2hpbmcgfCBhc3luYykgfHxcbiAgICAgICAgICAgICAgICAoKHNlYXJjaGluZyB8IGFzeW5jKSAmJiBjb2x1bW5zLmVuYWJsZWRDb2x1bW5zLmxlbmd0aCA+IDApKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9yaXYtbWVudS1kaXZpZGVyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiY29sdW1ucy5kaXNhYmxlZENvbHVtbnMubGVuZ3RoID4gMFwiXG4gICAgICAgICAgICAoZHJvcCk9XCJkcm9wRW5hYmxlZFN0YXRlKGZhbHNlKVwiXG4gICAgICAgICAgICAoZHJhZ292ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGRyYWdPdmVyKC0xKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4+SGlkZGVuIGZyb20gdGFibGU8L3NwYW4+XG5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIShzZWFyY2hpbmcgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhbGxDb2x1bW5zRGlzYWJsZWQoY29sdW1ucylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJlbmFibGVBbGxDb2x1bW5zKHRydWUpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFNob3cgYWxsXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMuZGlzYWJsZWRDb2x1bW5zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiIShzZWFyY2hpbmcgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRyb3BwYWJsZV09XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoY29sdW1uLnN0YXRlSW5kZXgsIGNvbHVtbi5uYW1lKVwiXG4gICAgICAgICAgICAgICAgKGRyYWdlbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgKGRyYWdvdmVyKT1cIlxuICAgICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICBkcmFnT3ZlcihpICsgY29sdW1ucy5lbmFibGVkQ29sdW1ucy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoZHJvcCk9XCJcbiAgICAgICAgICAgICAgICAgIGRyb3AoaSArIGNvbHVtbnMuZW5hYmxlZENvbHVtbnMubGVuZ3RoLCBjb2x1bW4uc3RhdGVJbmRleClcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW5UZW1wbGF0ZTsgY29udGV4dDogeyBjb2x1bW4gfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcml2LXNpZGUtc2hlZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29sdW1uVGVtcGxhdGUgbGV0LWNvbHVtbj1cImNvbHVtblwiPlxuICA8ZGl2IGNsYXNzPVwiY29sdW1uIHNjcm9sbC1wYWRkaW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJyZW9yZGVyXCIgKm5nSWY9XCIhKHNlYXJjaGluZyB8IGFzeW5jKVwiPlxuICAgICAgICA8cml2LWljb24gW25hbWVdPVwiJ1Jlb3JkZXInXCIgW3NpemVdPVwiMjBcIj48L3Jpdi1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgW3RleHRdPVwiY29sdW1uLnJlc29sdmVkTmFtZVwiXG4gICAgICAgIFtpbmRpY2VzXT1cImNvbHVtbi5oaWdobGlnaHRJbmRpY2VzXCJcbiAgICAgID48L3Jpdi1oaWdobGlnaHQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxyaXYtbWVudSBjbGFzcz1cIm1lbnVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmVuYWJsZWQgJiYgIWNvbHVtbi5pc0xhc3RQaW5uZWRDb2x1bW5cIlxuICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAoY2xpY2spPVwiY29sdW1uRnJlZXplVXBUbyh0cnVlLCBjb2x1bW4uc3RhdGVJbmRleClcIlxuICAgICAgICA+XG4gICAgICAgICAgRnJlZXplIHVwIHRvIGNvbHVtblxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiY29sdW1uLmVuYWJsZWQgJiYgY29sdW1uLmlzTGFzdFBpbm5lZENvbHVtblwiXG4gICAgICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgICAgIChjbGljayk9XCJjb2x1bW5QaW5DaGFuZ2UoY29sdW1uLCBmYWxzZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgVW5mcmVlemUgY29sdW1uXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHJpdi1tZW51LWl0ZW0gKGNsaWNrKT1cImNvbHVtbk1vdmVUbyhjb2x1bW4sICdzdGFydCcpXCI+XG4gICAgICAgICAgTW92ZSB0byBzdGFydFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiByaXYtbWVudS1pdGVtIChjbGljayk9XCJjb2x1bW5Nb3ZlVG8oY29sdW1uLCAnZW5kJylcIj5cbiAgICAgICAgICBNb3ZlIHRvIGVuZFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgICAgICAoY2xpY2spPVwiY29sdW1uRW5hYmxlZENoYW5nZShjb2x1bW4sICFjb2x1bW4uZW5hYmxlZClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sdW1uLmVuYWJsZWQgPyAnSGlkZSBjb2x1bW4nIDogJ1Nob3cgY29sdW1uJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvcml2LW1lbnU+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHJpdkJ1dHRvblxuICAgICAgICBbcml2VG9vbHRpcF09XCJjb2x1bW4uZW5hYmxlZCA/ICdIaWRlIGNvbHVtbicgOiAnU2hvdyBjb2x1bW4nXCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFjb2x1bW4uZW5hYmxlZFwiXG4gICAgICAgIFt2YXJpYW50XT1cIidnaG9zdCdcIlxuICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgW2ljb25dPVwiY29sdW1uLmVuYWJsZWQgPyAnRXllJyA6ICdFeWVPZmYnXCJcbiAgICAgICAgKGNsaWNrKT1cImNvbHVtbkVuYWJsZWRDaGFuZ2UoY29sdW1uLCAhY29sdW1uLmVuYWJsZWQpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19