@cuby-ui/core 0.0.106 → 0.0.108

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,8 +1,8 @@
1
- import type { OnInit, AfterViewInit, TemplateRef } from '@angular/core';
1
+ import type { OnInit, AfterViewInit, TemplateRef, OnDestroy } from '@angular/core';
2
2
  import type { CuiContextMenuItem } from '../../interfaces';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@cuby-ui/cdk";
5
- export declare class CuiContextMenuComponent implements OnInit, AfterViewInit {
5
+ export declare class CuiContextMenuComponent implements OnInit, AfterViewInit, OnDestroy {
6
6
  private readonly changeDetectorRef;
7
7
  private readonly viewContainerRef;
8
8
  private readonly document;
@@ -20,6 +20,7 @@ export declare class CuiContextMenuComponent implements OnInit, AfterViewInit {
20
20
  target: HTMLElement;
21
21
  protected readonly list: TemplateRef<any>;
22
22
  ngOnInit(): void;
23
+ ngOnDestroy(): void;
23
24
  ngAfterViewInit(): void;
24
25
  protected onSelect(item: CuiContextMenuItem): void;
25
26
  protected onClose(): void;
@@ -32,6 +33,7 @@ export declare class CuiContextMenuComponent implements OnInit, AfterViewInit {
32
33
  private close;
33
34
  private renderList;
34
35
  private changePosition;
36
+ private clearViewContainerRef;
35
37
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiContextMenuComponent, never>;
36
38
  static ɵcmp: i0.ɵɵComponentDeclaration<CuiContextMenuComponent, "cui-context-menu[items][target]", never, { "items": "items"; "target": "target"; }, {}, never, never, false, [{ directive: typeof i1.CuiClickOutsideDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.CuiTargetDirective; inputs: { "ccTarget": "target"; }; outputs: {}; }]>;
37
39
  }
@@ -1,4 +1,4 @@
1
- import type { OnInit, TemplateRef } from '@angular/core';
1
+ import type { OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
2
  import { ElementRef } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import type { CuiOnChange, CuiOnTouched, CuiNullable } from '@cuby-ui/cdk';
@@ -6,7 +6,7 @@ import type { CuiOption } from '../../interfaces';
6
6
  import type { CuiSizeMd, CuiSizeSm } from '../../types';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@cuby-ui/cdk";
9
- export declare class CuiSelectComponent implements ControlValueAccessor, OnInit {
9
+ export declare class CuiSelectComponent implements ControlValueAccessor, OnInit, OnDestroy {
10
10
  private readonly element;
11
11
  private readonly document;
12
12
  private readonly changeDetectorRef;
@@ -37,6 +37,7 @@ export declare class CuiSelectComponent implements ControlValueAccessor, OnInit
37
37
  registerOnChange(fn: CuiOnChange<unknown>): void;
38
38
  registerOnTouched(fn: CuiOnTouched): void;
39
39
  ngOnInit(): void;
40
+ ngOnDestroy(): void;
40
41
  setDisabledState(isDisabled: boolean): void;
41
42
  protected onSelect(option: CuiOption): void;
42
43
  protected onSwitch(): void;
@@ -45,6 +46,7 @@ export declare class CuiSelectComponent implements ControlValueAccessor, OnInit
45
46
  private initClickOutsideSubscription;
46
47
  private open;
47
48
  private close;
49
+ private clearViewContainerRef;
48
50
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiSelectComponent, never>;
49
51
  static ɵcmp: i0.ɵɵComponentDeclaration<CuiSelectComponent, "cui-select[options]", never, { "options": "options"; "defaultOptionText": "defaultOptionText"; }, {}, never, never, false, [{ directive: typeof i1.CuiClickOutsideDirective; inputs: {}; outputs: {}; }]>;
50
52
  }
@@ -24,6 +24,9 @@ export class CuiContextMenuComponent {
24
24
  ngOnInit() {
25
25
  this.initClickOutsideSubscription();
26
26
  }
27
+ ngOnDestroy() {
28
+ this.clearViewContainerRef();
29
+ }
27
30
  ngAfterViewInit() {
28
31
  this.initTargetElementListener();
29
32
  }
@@ -55,7 +58,7 @@ export class CuiContextMenuComponent {
55
58
  event.stopPropagation();
56
59
  this.document.body.click();
57
60
  this.isVisible = !this.isVisible;
58
- this.viewContainerRef.clear();
61
+ this.clearViewContainerRef();
59
62
  if (this.isVisible) {
60
63
  this.renderList();
61
64
  this.changePosition(event.clientX, event.clientY);
@@ -81,7 +84,7 @@ export class CuiContextMenuComponent {
81
84
  }
82
85
  close() {
83
86
  this.isVisible = false;
84
- this.viewContainerRef.clear();
87
+ this.clearViewContainerRef();
85
88
  }
86
89
  renderList() {
87
90
  const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.list);
@@ -90,6 +93,7 @@ export class CuiContextMenuComponent {
90
93
  this.document.querySelector(CUI_ROOT_SELECTOR).appendChild(this.node);
91
94
  }
92
95
  changePosition(x, y) {
96
+ this.node.style.visibility = 'hidden';
93
97
  setTimeout(() => {
94
98
  const { clientWidth, clientHeight } = this.documentElement;
95
99
  const width = this.node.offsetWidth;
@@ -106,12 +110,16 @@ export class CuiContextMenuComponent {
106
110
  top = Math.max(top, this.EXTRA_OFFSET_TOP);
107
111
  this.node.style.left = left + 'px';
108
112
  this.node.style.top = top + 'px';
113
+ this.node.style.visibility = '';
109
114
  this.changeDetectorRef.markForCheck();
110
115
  });
111
116
  }
117
+ clearViewContainerRef() {
118
+ this.viewContainerRef.clear();
119
+ }
112
120
  }
113
121
  CuiContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "window:resize": "onClose()", "click": "onStopClickPropagation($event)" } }, providers: [CuiDestroyService], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true }], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }, { directive: i1.CuiTargetDirective, inputs: ["ccTarget", "target"] }], ngImport: i0, template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
122
+ CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "window:resize": "onClose()", "click": "onStopClickPropagation($event)" } }, providers: [CuiDestroyService], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true }], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }, { directive: i1.CuiTargetDirective, inputs: ["ccTarget", "target"] }], ngImport: i0, template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
115
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, decorators: [{
116
124
  type: Component,
117
125
  args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiDestroyService], hostDirectives: [
@@ -120,7 +128,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
120
128
  directive: CuiTargetDirective,
121
129
  inputs: ['ccTarget: target']
122
130
  }
123
- ], template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
131
+ ], template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
124
132
  }], propDecorators: { items: [{
125
133
  type: Input
126
134
  }], target: [{
@@ -135,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
135
143
  type: HostListener,
136
144
  args: ['click', ['$event']]
137
145
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUczRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7O0FBZ0I1QyxNQUFNLE9BQU8sdUJBQXVCO0lBZHBDO1FBZW1CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNoRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFB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LElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzlDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztZQUVsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEE3SVUsdUJBQXVCO3lHQUF2Qix1QkFBdUIsME1BVHZCLENBQUMsaUJBQWlCLENBQUMsNFBDeEJoQyxzbUJBMEJBOzRGRE9hLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxpQ0FBaUMsbUJBRzFCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFDZDt3QkFDZCx3QkFBd0I7d0JBQ3hCOzRCQUNFLFNBQVMsRUFBRSxrQkFBa0I7NEJBQzdCLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDO3lCQUM3QjtxQkFDRjs4QkFvQk0sS0FBSztzQkFEWCxLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJYSxJQUFJO3NCQUR0QixTQUFTO3VCQUFDLE1BQU07Z0JBa0JQLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsZUFBZTtnQkFNbkIsc0JBQXNCO3NCQUQvQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25Jbml0LCBBZnRlclZpZXdJbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZyb21FdmVudCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEN1aURlc3Ryb3lTZXJ2aWNlLCBDdWlDbGlja091dHNpZGVEaXJlY3RpdmUsIEN1aVRhcmdldERpcmVjdGl2ZSwgQ1VJX1dJTkRPVyB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5cbmltcG9ydCB0eXBlIHsgQ3VpQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDVUlfUk9PVF9TRUxFQ1RPUiB9IGZyb20gJy4uL3Jvb3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjdWktY29udGV4dC1tZW51W2l0ZW1zXVt0YXJnZXRdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHQtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbQ3VpRGVzdHJveVNlcnZpY2VdLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IEN1aVRhcmdldERpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogWydjY1RhcmdldDogdGFyZ2V0J11cbiAgICB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEN1aUNvbnRleHRNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gaW5qZWN0KEN1aURlc3Ryb3lTZXJ2aWNlLCB7IHNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlID0gaW5qZWN0KEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGN1aVRhcmdldERpcmVjdGl2ZSA9IGluamVjdChDdWlUYXJnZXREaXJlY3RpdmUsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRVhUUkFfT0ZGU0VUX0xFRlQgPSAwO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRVhUUkFfT0ZGU0VUX1RPUCA9IDA7XG5cbiAgcHJvdGVjdGVkIGlzVmlzaWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdGFyZ2V0RXZlbnRMaXN0ZW5lciE6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIG5vZGU/OiBIVE1MRGl2RWxlbWVudDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbXMhOiBDdWlDb250ZXh0TWVudUl0ZW1bXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGFyZ2V0ITogSFRNTEVsZW1lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnbGlzdCcpXG4gIHByb3RlY3RlZCByZWFkb25seSBsaXN0ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q2xpY2tPdXRzaWRlU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU2VsZWN0KGl0ZW06IEN1aUNvbnRleHRNZW51SXRlbSk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoKTtcblxuICAgIGl0ZW0uY29tbWFuZD8uKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgcHJvdGVjdGVkIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb25TdG9wQ2xpY2tQcm9wYWdhdGlvbihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbihfOiBudW1iZXIsIGl0ZW06IEN1aUNvbnRleHRNZW51SXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gIH1cblxuICBwcml2YXRlIGluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jdWlDbGlja091dHNpZGVEaXJlY3RpdmUuY3VpQ2xpY2tPdXRzaWRlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCh0YXJnZXQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMudGFyZ2V0RXZlbnRMaXN0ZW5lciA9IChldmVudCkgPT4ge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xpY2soKTtcblxuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGU7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyTGlzdCgpO1xuICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgICB0aGlzLmluaXRIaWRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgdGhpcy5jdWlUYXJnZXREaXJlY3RpdmUuY2xpY2tlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnRhcmdldEV2ZW50TGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SGlkaW5nU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudCgnc2Nyb2xsJyk7XG4gICAgdGhpcy5pbml0SGlkaW5nRnJvbVdpbmRvd0V2ZW50KCdyZXNpemUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudChldmVudE5hbWU6IGtleW9mIFdpbmRvd0V2ZW50TWFwKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHRoaXMud2luZG93LCBldmVudE5hbWUpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJMaXN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVtYmVkZGVkVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5saXN0KTtcblxuICAgIHRoaXMubm9kZSA9IGVtYmVkZGVkVmlld1JlZi5yb290Tm9kZXNbMF07XG5cbiAgICBlbWJlZGRlZFZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKENVSV9ST09UX1NFTEVDVE9SKSEuYXBwZW5kQ2hpbGQodGhpcy5ub2RlISk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZVBvc2l0aW9uKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHRoaXMuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLm5vZGUhLm9mZnNldFdpZHRoO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5ub2RlIS5vZmZzZXRIZWlnaHQ7XG4gICAgICBsZXQgbGVmdCA9IHg7XG4gICAgICBsZXQgdG9wID0geTtcblxuICAgICAgaWYgKGxlZnQgKyB3aWR0aCA+IGNsaWVudFdpZHRoKSB7XG4gICAgICAgIGxlZnQgLT0gd2lkdGg7XG4gICAgICB9XG5cbiAgICAgIGlmICh0b3AgKyBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcbiAgICAgICAgdG9wIC09IGhlaWdodDtcbiAgICAgIH1cblxuICAgICAgbGVmdCA9IE1hdGgubWF4KGxlZnQsIHRoaXMuRVhUUkFfT0ZGU0VUX0xFRlQpO1xuICAgICAgdG9wID0gTWF0aC5tYXgodG9wLCB0aGlzLkVYVFJBX09GRlNFVF9UT1ApO1xuXG4gICAgICB0aGlzLm5vZGUhLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgIHRoaXMubm9kZSEuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNsaXN0PlxuICA8ZGl2IGNsYXNzPVwiYy1jb250YWluZXJcIj5cbiAgICA8dWxcbiAgICAgICpuZ0lmPVwiaXNWaXNpYmxlXCJcbiAgICAgIGNsYXNzPVwiYy11bFwiXG4gICAgPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImMtYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gICAgICAgICAgPjwvY3VpLXN2Zz5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUczRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7O0FBZ0I1QyxNQUFNLE9BQU8sdUJBQXVCO0lBZHBDO1FBZW1CLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNoRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFB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WTt1QkFBQyxlQUFlO2dCQU1uQixzQkFBc0I7c0JBRC9CLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkluaXQsIEFmdGVyVmlld0luaXQsIFRlbXBsYXRlUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDdWlEZXN0cm95U2VydmljZSwgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBDdWlUYXJnZXREaXJlY3RpdmUsIENVSV9XSU5ET1cgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aUNvbnRleHRNZW51SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ1VJX1JPT1RfU0VMRUNUT1IgfSBmcm9tICcuLi9yb290JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3VpLWNvbnRleHQtbWVudVtpdGVtc11bdGFyZ2V0XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW0N1aURlc3Ryb3lTZXJ2aWNlXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICBDdWlDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBDdWlUYXJnZXREaXJlY3RpdmUsXG4gICAgICBpbnB1dHM6IFsnY2NUYXJnZXQ6IHRhcmdldCddXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDdWlDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gaW5qZWN0KEN1aURlc3Ryb3lTZXJ2aWNlLCB7IHNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlID0gaW5qZWN0KEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGN1aVRhcmdldERpcmVjdGl2ZSA9IGluamVjdChDdWlUYXJnZXREaXJlY3RpdmUsIHsgc2VsZjogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRVhUUkFfT0ZGU0VUX0xFRlQgPSAwO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRVhUUkFfT0ZGU0VUX1RPUCA9IDA7XG5cbiAgcHJvdGVjdGVkIGlzVmlzaWJsZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdGFyZ2V0RXZlbnRMaXN0ZW5lciE6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgcHJvdGVjdGVkIG5vZGU/OiBIVE1MRGl2RWxlbWVudDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbXMhOiBDdWlDb250ZXh0TWVudUl0ZW1bXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGFyZ2V0ITogSFRNTEVsZW1lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnbGlzdCcpXG4gIHByb3RlY3RlZCByZWFkb25seSBsaXN0ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0Q2xpY2tPdXRzaWRlU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclZpZXdDb250YWluZXJSZWYoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TZWxlY3QoaXRlbTogQ3VpQ29udGV4dE1lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSgpO1xuXG4gICAgaXRlbS5jb21tYW5kPy4oKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBwcm90ZWN0ZWQgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvblN0b3BDbGlja1Byb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuKF86IG51bWJlciwgaXRlbTogQ3VpQ29udGV4dE1lbnVJdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS5sYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZS5jdWlDbGlja091dHNpZGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRhcmdldCkgPT4ge1xuICAgICAgICBpZiAodGhpcy50YXJnZXQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGluaXRUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy50YXJnZXRFdmVudExpc3RlbmVyID0gKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGljaygpO1xuXG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZTtcblxuICAgICAgdGhpcy5jbGVhclZpZXdDb250YWluZXJSZWYoKTtcblxuICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyTGlzdCgpO1xuICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgICB0aGlzLmluaXRIaWRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuXG4gICAgdGhpcy5jdWlUYXJnZXREaXJlY3RpdmUuY2xpY2tlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnRhcmdldEV2ZW50TGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0SGlkaW5nU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudCgnc2Nyb2xsJyk7XG4gICAgdGhpcy5pbml0SGlkaW5nRnJvbVdpbmRvd0V2ZW50KCdyZXNpemUnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudChldmVudE5hbWU6IGtleW9mIFdpbmRvd0V2ZW50TWFwKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHRoaXMud2luZG93LCBldmVudE5hbWUpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5jbGVhclZpZXdDb250YWluZXJSZWYoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyTGlzdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubGlzdCk7XG5cbiAgICB0aGlzLm5vZGUgPSBlbWJlZGRlZFZpZXdSZWYucm9vdE5vZGVzWzBdO1xuXG4gICAgZW1iZWRkZWRWaWV3UmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihDVUlfUk9PVF9TRUxFQ1RPUikhLmFwcGVuZENoaWxkKHRoaXMubm9kZSEpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VQb3NpdGlvbih4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubm9kZSEuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHRoaXMuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLm5vZGUhLm9mZnNldFdpZHRoO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5ub2RlIS5vZmZzZXRIZWlnaHQ7XG4gICAgICBsZXQgbGVmdCA9IHg7XG4gICAgICBsZXQgdG9wID0geTtcblxuICAgICAgaWYgKGxlZnQgKyB3aWR0aCA+IGNsaWVudFdpZHRoKSB7XG4gICAgICAgIGxlZnQgLT0gd2lkdGg7XG4gICAgICB9XG5cbiAgICAgIGlmICh0b3AgKyBoZWlnaHQgPiBjbGllbnRIZWlnaHQpIHtcbiAgICAgICAgdG9wIC09IGhlaWdodDtcbiAgICAgIH1cblxuICAgICAgbGVmdCA9IE1hdGgubWF4KGxlZnQsIHRoaXMuRVhUUkFfT0ZGU0VUX0xFRlQpO1xuICAgICAgdG9wID0gTWF0aC5tYXgodG9wLCB0aGlzLkVYVFJBX09GRlNFVF9UT1ApO1xuXG4gICAgICB0aGlzLm5vZGUhLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgIHRoaXMubm9kZSEuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcbiAgICAgIHRoaXMubm9kZSEuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclZpZXdDb250YWluZXJSZWYoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbGlzdD5cbiAgPGRpdiBjbGFzcz1cImMtY29udGFpbmVyXCI+XG4gICAgPHVsXG4gICAgICAqbmdJZj1cImlzVmlzaWJsZVwiXG4gICAgICBjbGFzcz1cImMtdWxcIlxuICAgID5cbiAgICAgIDxsaVxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cIml0ZW0uY29sb3JcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjdWktc3ZnXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICBbaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgW2NvbG9yXT1cIml0ZW0uY29sb3JcIlxuICAgICAgICAgID48L2N1aS1zdmc+XG4gICAgICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -53,6 +53,9 @@ export class CuiSelectComponent {
53
53
  ngOnInit() {
54
54
  this.initClickOutsideSubscription();
55
55
  }
56
+ ngOnDestroy() {
57
+ this.clearViewContainerRef();
58
+ }
56
59
  setDisabledState(isDisabled) {
57
60
  this.isDisabled = isDisabled;
58
61
  this.changeDetectorRef.markForCheck();
@@ -116,6 +119,9 @@ export class CuiSelectComponent {
116
119
  }
117
120
  close() {
118
121
  this.isOpened = false;
122
+ this.clearViewContainerRef();
123
+ }
124
+ clearViewContainerRef() {
119
125
  this.viewContainerRef.clear();
120
126
  }
121
127
  }
@@ -124,14 +130,14 @@ CuiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
124
130
  CUI_TEXT_FILED_CONTROLLER_PROVIDER,
125
131
  cuiProvide(NG_VALUE_ACCESSOR, CuiSelectComponent, true),
126
132
  CuiDestroyService
127
- ], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }, { propertyName: "getOptionsListHeightContainer", first: true, predicate: ["getOptionsListHeightContainer"], descendants: true }, { propertyName: "optionsWrapper", first: true, predicate: ["optionsWrapper"], descendants: true }], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }], ngImport: i0, template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
133
+ ], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }, { propertyName: "getOptionsListHeightContainer", first: true, predicate: ["getOptionsListHeightContainer"], descendants: true }, { propertyName: "optionsWrapper", first: true, predicate: ["optionsWrapper"], descendants: true }], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }], ngImport: i0, template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative;z-index:1}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
128
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSelectComponent, decorators: [{
129
135
  type: Component,
130
136
  args: [{ selector: 'cui-select[options]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
131
137
  CUI_TEXT_FILED_CONTROLLER_PROVIDER,
132
138
  cuiProvide(NG_VALUE_ACCESSOR, CuiSelectComponent, true),
133
139
  CuiDestroyService
134
- ], hostDirectives: [CuiClickOutsideDirective], template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\n"] }]
140
+ ], hostDirectives: [CuiClickOutsideDirective], template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative;z-index:1}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\n"] }]
135
141
  }], propDecorators: { options: [{
136
142
  type: Input
137
143
  }], defaultOptionText: [{
@@ -152,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
152
158
  type: HostListener,
153
159
  args: ['window:resize']
154
160
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7OztBQWM1QyxNQUFNLE9BQU8sa0JBQWtCO0lBWi9CO1FBYW1CLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFn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dkIsY0FBYztzQkFEaEMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSWpCLEdBQUc7c0JBRFosV0FBVzt1QkFBQyxlQUFlO2dCQTRFbEIsY0FBYztzQkFEdkIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBIb3N0QmluZGluZyxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgSG9zdExpc3RlbmVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHR5cGUgeyBDdWlPbkNoYW5nZSwgQ3VpT25Ub3VjaGVkLCBDdWlOdWxsYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBDdWlEZXN0cm95U2VydmljZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBjdWlQcm92aWRlLCBDdWlDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHsgQ3VpT3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgdHlwZSB7IEN1aVNpemVNZCwgQ3VpU2l6ZVNtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ1VJX1RFWFRfRklFTERfQ09OVFJPTExFUiwgQ1VJX1RFWFRfRklMRURfQ09OVFJPTExFUl9QUk9WSURFUiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ1VJX1JPT1RfU0VMRUNUT1IgfSBmcm9tICcuLi9yb290JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3VpLXNlbGVjdFtvcHRpb25zXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QudGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5zdHlsZS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBDVUlfVEVYVF9GSUxFRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIGN1aVByb3ZpZGUoTkdfVkFMVUVfQUNDRVNTT1IsIEN1aVNlbGVjdENvbXBvbmVudCwgdHJ1ZSksXG4gICAgQ3VpRGVzdHJveVNlcnZpY2VcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDdWlDbGlja091dHNpZGVEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEN1aVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBpbmplY3QoQ3VpRGVzdHJveVNlcnZpY2UsIHtzZWxmOiB0cnVlfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpVGV4dEZpZWxkQ29udHJvbGxlciA9IGluamVjdChDVUlfVEVYVF9GSUVMRF9DT05UUk9MTEVSKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdWlDbGlja091dHNpZGVEaXJlY3RpdmUgPSBpbmplY3QoQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCB7c2VsZjogdHJ1ZX0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBTUEFDRV9CRVRXRUVOX0JVVFRPTl9BTkRfT1BUSU9OUyA9IDM7XG5cbiAgcHJvdGVjdGVkIGlzT3BlbmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBpc09wdGlvbnNMaXN0QWJvdmUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHZhbHVlITogQ3VpTnVsbGFibGU8dW5rbm93bj47XG4gIHByb3RlY3RlZCBvbkNoYW5nZSE6IEN1aU9uQ2hhbmdlPHVua25vd24+O1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkITogQ3VpT25Ub3VjaGVkO1xuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZCE6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbj86IEN1aU9wdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9ucyE6IEN1aU9wdGlvbltdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0T3B0aW9uVGV4dD86IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdidXR0b24nKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnV0dG9uITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXInKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbnNXcmFwcGVyJylcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnNXcmFwcGVyITogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWMtZ2FwJylcbiAgcHJvdGVjdGVkIGdhcCA9IGAke3RoaXMuU1BBQ0VfQkVUV0VFTl9CVVRUT05fQU5EX09QVElPTlN9cHhgO1xuXG4gIHByb3RlY3RlZCBnZXQgaWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdWlUZXh0RmllbGRDb250cm9sbGVyLmlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzaXplKCk6IEN1aVNpemVTbSB8IEN1aVNpemVNZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VpVGV4dEZpZWxkQ29udHJvbGxlci5zaXplO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIucGxhY2Vob2xkZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VpVGV4dEZpZWxkQ29udHJvbGxlci5pc0Vycm9yO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbihfOiBudW1iZXIsIGl0ZW06IEN1aU9wdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdmFsdWUgYXMgQ3VpT3B0aW9uO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBDdWlPbkNoYW5nZTx1bmtub3duPik6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogQ3VpT25Ub3VjaGVkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblNlbGVjdChvcHRpb246IEN1aU9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBvcHRpb24udmFsdWU7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblN3aXRjaCgpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Td2l0Y2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMubGVuZ3RoICYmICF0aGlzLmRlZmF1bHRPcHRpb25UZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBwcm90ZWN0ZWQgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5idXR0b24ubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q2xpY2tPdXRzaWRlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLmN1aUNsaWNrT3V0c2lkZVxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogZWxlbWVudFJlY3RUb3AsXG4gICAgICBsZWZ0OiBlbGVtZW50UmVjdExlZnQsXG4gICAgICBib3R0b206IGVsZW1lbnRSZWN0Qm90dG9tXG4gICAgfSA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBkaXN0YW5jZVRvQm90dG9tID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgICAtIChlbGVtZW50UmVjdEJvdHRvbSArIHRoaXMuU1BBQ0VfQkVUV0VFTl9CVVRUT05fQU5EX09QVElPTlMpO1xuICAgIGNvbnN0IGVtYmVkZGVkVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5vcHRpb25zV3JhcHBlcik7XG4gICAgY29uc3Qgbm9kZSA9IGVtYmVkZGVkVmlld1JlZi5yb290Tm9kZXNbMF07XG4gICAgY29uc3Qgbm9kZVN0eWxlcyA9IG5vZGUuc3R5bGU7XG5cbiAgICB0aGlzLmlzT3B0aW9uc0xpc3RBYm92ZSA9IGRpc3RhbmNlVG9Cb3R0b20gPCB0aGlzLmdldE9wdGlvbnNMaXN0SGVpZ2h0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgZW1iZWRkZWRWaWV3UmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIG5vZGVTdHlsZXMud2lkdGggPSB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnO1xuICAgIG5vZGVTdHlsZXMubGVmdCA9IHdpbmRvdy5zY3JvbGxYICsgZWxlbWVudFJlY3RMZWZ0ICsgJ3B4JztcblxuICAgIGlmICh0aGlzLmlzT3B0aW9uc0xpc3RBYm92ZSkge1xuICAgICAgbm9kZVN0eWxlcy50b3AgPSB3aW5kb3cuc2Nyb2xsWSArIGVsZW1lbnRSZWN0VG9wXG4gICAgICAgIC0gdGhpcy5nZXRPcHRpb25zTGlzdEhlaWdodENvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodFxuICAgICAgICAtIHRoaXMuU1BBQ0VfQkVUV0VFTl9CVVRUT05fQU5EX09QVElPTlNcbiAgICAgICAgKyAncHgnO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlU3R5bGVzLnRvcCA9IHdpbmRvdy5zY3JvbGxZICsgZWxlbWVudFJlY3RCb3R0b20gKyB0aGlzLlNQQUNFX0JFVFdFRU5fQlVUVE9OX0FORF9PUFRJT05TICsgJ3B4JztcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoQ1VJX1JPT1RfU0VMRUNUT1IpIS5hcHBlbmRDaGlsZChlbWJlZGRlZFZpZXdSZWYucm9vdE5vZGVzWzBdKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xuXG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgI2J1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbYXR0ci5kYXRhLXNpemVdPVwic2l6ZVwiXG4gIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgY2xhc3M9XCJjLWJ1dHRvblwiXG4gIFtjbGFzcy5jLWJ1dHRvbl9hY3RpdmVdPVwiaXNPcGVuZWRcIlxuICBbY2xhc3MuYy1idXR0b25fd2l0aC1lcnJvcl09XCJpc0Vycm9yXCJcbiAgKGNsaWNrKT1cIm9uU3dpdGNoKClcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb247IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgIHt7IHNlbGVjdGVkT3B0aW9uLmxhYmVsIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyVGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJjLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxjdWktc3ZnXG4gICAgaWNvbj1cImN1aUljb25DaGV2cm9uRG93blwiXG4gICAgY29sb3I9XCJ2YXIoLS1jdWktYmFzZS01MDApXCJcbiAgLz5cbjwvYnV0dG9uPlxuPG5nLXRlbXBsYXRlICNvcHRpb25zV3JhcHBlcj5cbiAgPGRpdlxuICAgICAgY2xhc3M9XCJjLW9wdGlvbnNfX3dyYXBwZXJcIlxuICAgICAgW2NsYXNzLmMtb3B0aW9uc19fd3JhcHBlcl90b3BdPVwiaXNPcHRpb25zTGlzdEFib3ZlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zTGlzdFwiLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPGRpdlxuICAjZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXJcbiAgY2xhc3M9XCJjLWdldC1vcHRpb25zLWxpc3QtaGVpZ2h0LWNvbnRhaW5lclwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zTGlzdFwiLz5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNvcHRpb25zTGlzdD5cbiAgPHVsXG4gICAgY2xhc3M9XCJjLW9wdGlvbnNcIlxuICAgIFtjbGFzcy5jLW9wdGlvbnNfdG9wXT1cImlzT3B0aW9uc0xpc3RBYm92ZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucy5sZW5ndGg7IGVsc2UgZW1wdHlcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjLW9wdGlvbi1idXR0b25cIlxuICAgICAgICAgIFtjbGFzcy5jLW9wdGlvbi1idXR0b25fc2VsZWN0ZWRdPVwic2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG9wdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxjdWktc3ZnXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3B0aW9uID09PSBvcHRpb25cIlxuICAgICAgICAgICAgaWNvbj1cImN1aUljb25DaGVja1NtXCJcbiAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLWluZm8pXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYy1vcHRpb24tYnV0dG9uX19pY29uXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgIDxsaSAqbmdJZj1cImRlZmF1bHRPcHRpb25UZXh0XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImMtb3B0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBkZWZhdWx0T3B0aW9uVGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDOzs7OztBQWM1QyxNQUFNLE9BQU8sa0JBQWtCO0lBWi9CO1FBYW1CLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFn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QURiLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlhLE1BQU07c0JBRHhCLFNBQVM7dUJBQUMsUUFBUTtnQkFJQSw2QkFBNkI7c0JBRC9DLFNBQVM7dUJBQUMsK0JBQStCO2dCQUl2QixjQUFjO3NCQURoQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFJakIsR0FBRztzQkFEWixXQUFXO3VCQUFDLGVBQWU7Z0JBZ0ZsQixjQUFjO3NCQUR2QixZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdDaGlsZCxcbiAgSG9zdEJpbmRpbmcsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIEhvc3RMaXN0ZW5lclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB0eXBlIHsgQ3VpT25DaGFuZ2UsIEN1aU9uVG91Y2hlZCwgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpRGVzdHJveVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgY3VpUHJvdmlkZSwgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aU9wdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHR5cGUgeyBDdWlTaXplTWQsIEN1aVNpemVTbSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IENVSV9URVhUX0ZJRUxEX0NPTlRST0xMRVIsIENVSV9URVhUX0ZJTEVEX0NPTlRST0xMRVJfUFJPVklERVIgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENVSV9ST09UX1NFTEVDVE9SIH0gZnJvbSAnLi4vcm9vdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1aS1zZWxlY3Rbb3B0aW9uc10nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LnRlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3Quc3R5bGUuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ1VJX1RFWFRfRklMRURfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBjdWlQcm92aWRlKE5HX1ZBTFVFX0FDQ0VTU09SLCBDdWlTZWxlY3RDb21wb25lbnQsIHRydWUpLFxuICAgIEN1aURlc3Ryb3lTZXJ2aWNlXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBpbmplY3QoQ3VpRGVzdHJveVNlcnZpY2UsIHtzZWxmOiB0cnVlfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpVGV4dEZpZWxkQ29udHJvbGxlciA9IGluamVjdChDVUlfVEVYVF9GSUVMRF9DT05UUk9MTEVSKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdWlDbGlja091dHNpZGVEaXJlY3RpdmUgPSBpbmplY3QoQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCB7c2VsZjogdHJ1ZX0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBTUEFDRV9CRVRXRUVOX0JVVFRPTl9BTkRfT1BUSU9OUyA9IDM7XG5cbiAgcHJvdGVjdGVkIGlzT3BlbmVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBpc09wdGlvbnNMaXN0QWJvdmUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHZhbHVlITogQ3VpTnVsbGFibGU8dW5rbm93bj47XG4gIHByb3RlY3RlZCBvbkNoYW5nZSE6IEN1aU9uQ2hhbmdlPHVua25vd24+O1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkITogQ3VpT25Ub3VjaGVkO1xuICBwcm90ZWN0ZWQgaXNEaXNhYmxlZCE6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbj86IEN1aU9wdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3B0aW9ucyE6IEN1aU9wdGlvbltdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0T3B0aW9uVGV4dD86IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdidXR0b24nKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYnV0dG9uITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXInKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbnNXcmFwcGVyJylcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGlvbnNXcmFwcGVyITogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWMtZ2FwJylcbiAgcHJvdGVjdGVkIGdhcCA9IGAke3RoaXMuU1BBQ0VfQkVUV0VFTl9CVVRUT05fQU5EX09QVElPTlN9cHhgO1xuXG4gIHByb3RlY3RlZCBnZXQgaWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jdWlUZXh0RmllbGRDb250cm9sbGVyLmlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzaXplKCk6IEN1aVNpemVTbSB8IEN1aVNpemVNZCB7XG4gICAgcmV0dXJuIHRoaXMuY3VpVGV4dEZpZWxkQ29udHJvbGxlci5zaXplO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1aVRleHRGaWVsZENvbnRyb2xsZXIucGxhY2Vob2xkZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VpVGV4dEZpZWxkQ29udHJvbGxlci5pc0Vycm9yO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbihfOiBudW1iZXIsIGl0ZW06IEN1aU9wdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdmFsdWUgYXMgQ3VpT3B0aW9uO1xuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBDdWlPbkNoYW5nZTx1bmtub3duPik6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogQ3VpT25Ub3VjaGVkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVmlld0NvbnRhaW5lclJlZigpO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU2VsZWN0KG9wdGlvbjogQ3VpT3B0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbi52YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9uO1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLm9uU3dpdGNoKCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblN3aXRjaCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5sZW5ndGggJiYgIXRoaXMuZGVmYXVsdE9wdGlvblRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHByb3RlY3RlZCBvbldpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvbi5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jdWlDbGlja091dHNpZGVEaXJlY3RpdmUuY3VpQ2xpY2tPdXRzaWRlXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuZWQgPSB0cnVlO1xuXG4gICAgY29uc3Qge1xuICAgICAgdG9wOiBlbGVtZW50UmVjdFRvcCxcbiAgICAgIGxlZnQ6IGVsZW1lbnRSZWN0TGVmdCxcbiAgICAgIGJvdHRvbTogZWxlbWVudFJlY3RCb3R0b21cbiAgICB9ID0gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGRpc3RhbmNlVG9Cb3R0b20gPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICAgIC0gKGVsZW1lbnRSZWN0Qm90dG9tICsgdGhpcy5TUEFDRV9CRVRXRUVOX0JVVFRPTl9BTkRfT1BUSU9OUyk7XG4gICAgY29uc3QgZW1iZWRkZWRWaWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLm9wdGlvbnNXcmFwcGVyKTtcbiAgICBjb25zdCBub2RlID0gZW1iZWRkZWRWaWV3UmVmLnJvb3ROb2Rlc1swXTtcbiAgICBjb25zdCBub2RlU3R5bGVzID0gbm9kZS5zdHlsZTtcblxuICAgIHRoaXMuaXNPcHRpb25zTGlzdEFib3ZlID0gZGlzdGFuY2VUb0JvdHRvbSA8IHRoaXMuZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICBlbWJlZGRlZFZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgbm9kZVN0eWxlcy53aWR0aCA9IHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgbm9kZVN0eWxlcy5sZWZ0ID0gd2luZG93LnNjcm9sbFggKyBlbGVtZW50UmVjdExlZnQgKyAncHgnO1xuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zTGlzdEFib3ZlKSB7XG4gICAgICBub2RlU3R5bGVzLnRvcCA9IHdpbmRvdy5zY3JvbGxZICsgZWxlbWVudFJlY3RUb3BcbiAgICAgICAgLSB0aGlzLmdldE9wdGlvbnNMaXN0SGVpZ2h0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgIC0gdGhpcy5TUEFDRV9CRVRXRUVOX0JVVFRPTl9BTkRfT1BUSU9OU1xuICAgICAgICArICdweCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGVTdHlsZXMudG9wID0gd2luZG93LnNjcm9sbFkgKyBlbGVtZW50UmVjdEJvdHRvbSArIHRoaXMuU1BBQ0VfQkVUV0VFTl9CVVRUT05fQU5EX09QVElPTlMgKyAncHgnO1xuICAgIH1cblxuICAgIHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihDVUlfUk9PVF9TRUxFQ1RPUikhLmFwcGVuZENoaWxkKGVtYmVkZGVkVmlld1JlZi5yb290Tm9kZXNbMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmNsZWFyVmlld0NvbnRhaW5lclJlZigpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclZpZXdDb250YWluZXJSZWYoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgI2J1dHRvblxuICB0eXBlPVwiYnV0dG9uXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbYXR0ci5kYXRhLXNpemVdPVwic2l6ZVwiXG4gIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgY2xhc3M9XCJjLWJ1dHRvblwiXG4gIFtjbGFzcy5jLWJ1dHRvbl9hY3RpdmVdPVwiaXNPcGVuZWRcIlxuICBbY2xhc3MuYy1idXR0b25fd2l0aC1lcnJvcl09XCJpc0Vycm9yXCJcbiAgKGNsaWNrKT1cIm9uU3dpdGNoKClcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb247IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgIHt7IHNlbGVjdGVkT3B0aW9uLmxhYmVsIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyVGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJjLXBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxjdWktc3ZnXG4gICAgaWNvbj1cImN1aUljb25DaGV2cm9uRG93blwiXG4gICAgY29sb3I9XCJ2YXIoLS1jdWktYmFzZS01MDApXCJcbiAgLz5cbjwvYnV0dG9uPlxuPG5nLXRlbXBsYXRlICNvcHRpb25zV3JhcHBlcj5cbiAgPGRpdlxuICAgICAgY2xhc3M9XCJjLW9wdGlvbnNfX3dyYXBwZXJcIlxuICAgICAgW2NsYXNzLmMtb3B0aW9uc19fd3JhcHBlcl90b3BdPVwiaXNPcHRpb25zTGlzdEFib3ZlXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zTGlzdFwiLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPGRpdlxuICAjZ2V0T3B0aW9uc0xpc3RIZWlnaHRDb250YWluZXJcbiAgY2xhc3M9XCJjLWdldC1vcHRpb25zLWxpc3QtaGVpZ2h0LWNvbnRhaW5lclwiXG4+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25zTGlzdFwiLz5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNvcHRpb25zTGlzdD5cbiAgPHVsXG4gICAgY2xhc3M9XCJjLW9wdGlvbnNcIlxuICAgIFtjbGFzcy5jLW9wdGlvbnNfdG9wXT1cImlzT3B0aW9uc0xpc3RBYm92ZVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucy5sZW5ndGg7IGVsc2UgZW1wdHlcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjLW9wdGlvbi1idXR0b25cIlxuICAgICAgICAgIFtjbGFzcy5jLW9wdGlvbi1idXR0b25fc2VsZWN0ZWRdPVwic2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KG9wdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxjdWktc3ZnXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3B0aW9uID09PSBvcHRpb25cIlxuICAgICAgICAgICAgaWNvbj1cImN1aUljb25DaGVja1NtXCJcbiAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLWluZm8pXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYy1vcHRpb24tYnV0dG9uX19pY29uXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eT5cbiAgICAgIDxsaSAqbmdJZj1cImRlZmF1bHRPcHRpb25UZXh0XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImMtb3B0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBkZWZhdWx0T3B0aW9uVGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -954,6 +954,9 @@ class CuiContextMenuComponent {
954
954
  ngOnInit() {
955
955
  this.initClickOutsideSubscription();
956
956
  }
957
+ ngOnDestroy() {
958
+ this.clearViewContainerRef();
959
+ }
957
960
  ngAfterViewInit() {
958
961
  this.initTargetElementListener();
959
962
  }
@@ -986,7 +989,7 @@ class CuiContextMenuComponent {
986
989
  event.stopPropagation();
987
990
  this.document.body.click();
988
991
  this.isVisible = !this.isVisible;
989
- this.viewContainerRef.clear();
992
+ this.clearViewContainerRef();
990
993
  if (this.isVisible) {
991
994
  this.renderList();
992
995
  this.changePosition(event.clientX, event.clientY);
@@ -1012,7 +1015,7 @@ class CuiContextMenuComponent {
1012
1015
  }
1013
1016
  close() {
1014
1017
  this.isVisible = false;
1015
- this.viewContainerRef.clear();
1018
+ this.clearViewContainerRef();
1016
1019
  }
1017
1020
  renderList() {
1018
1021
  const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.list);
@@ -1021,6 +1024,7 @@ class CuiContextMenuComponent {
1021
1024
  this.document.querySelector(CUI_ROOT_SELECTOR).appendChild(this.node);
1022
1025
  }
1023
1026
  changePosition(x, y) {
1027
+ this.node.style.visibility = 'hidden';
1024
1028
  setTimeout(() => {
1025
1029
  const { clientWidth, clientHeight } = this.documentElement;
1026
1030
  const width = this.node.offsetWidth;
@@ -1037,12 +1041,16 @@ class CuiContextMenuComponent {
1037
1041
  top = Math.max(top, this.EXTRA_OFFSET_TOP);
1038
1042
  this.node.style.left = left + 'px';
1039
1043
  this.node.style.top = top + 'px';
1044
+ this.node.style.visibility = '';
1040
1045
  this.changeDetectorRef.markForCheck();
1041
1046
  });
1042
1047
  }
1048
+ clearViewContainerRef() {
1049
+ this.viewContainerRef.clear();
1050
+ }
1043
1051
  }
1044
1052
  CuiContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1045
- CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "window:resize": "onClose()", "click": "onStopClickPropagation($event)" } }, providers: [CuiDestroyService], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true }], hostDirectives: [{ directive: i2.CuiClickOutsideDirective }, { directive: i2.CuiTargetDirective, inputs: ["ccTarget", "target"] }], ngImport: i0, template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1053
+ CuiContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "window:resize": "onClose()", "click": "onStopClickPropagation($event)" } }, providers: [CuiDestroyService], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true }], hostDirectives: [{ directive: i2.CuiClickOutsideDirective }, { directive: i2.CuiTargetDirective, inputs: ["ccTarget", "target"] }], ngImport: i0, template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1046
1054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiContextMenuComponent, decorators: [{
1047
1055
  type: Component,
1048
1056
  args: [{ selector: 'cui-context-menu[items][target]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiDestroyService], hostDirectives: [
@@ -1051,7 +1059,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1051
1059
  directive: CuiTargetDirective,
1052
1060
  inputs: ['ccTarget: target']
1053
1061
  }
1054
- ], template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
1062
+ ], template: "<ng-template #list>\n <div class=\"c-container\">\n <ul\n *ngIf=\"isVisible\"\n class=\"c-ul\"\n >\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
1055
1063
  }], propDecorators: { items: [{
1056
1064
  type: Input
1057
1065
  }], target: [{
@@ -1903,6 +1911,9 @@ class CuiSelectComponent {
1903
1911
  ngOnInit() {
1904
1912
  this.initClickOutsideSubscription();
1905
1913
  }
1914
+ ngOnDestroy() {
1915
+ this.clearViewContainerRef();
1916
+ }
1906
1917
  setDisabledState(isDisabled) {
1907
1918
  this.isDisabled = isDisabled;
1908
1919
  this.changeDetectorRef.markForCheck();
@@ -1966,6 +1977,9 @@ class CuiSelectComponent {
1966
1977
  }
1967
1978
  close() {
1968
1979
  this.isOpened = false;
1980
+ this.clearViewContainerRef();
1981
+ }
1982
+ clearViewContainerRef() {
1969
1983
  this.viewContainerRef.clear();
1970
1984
  }
1971
1985
  }
@@ -1974,14 +1988,14 @@ CuiSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
1974
1988
  CUI_TEXT_FILED_CONTROLLER_PROVIDER,
1975
1989
  cuiProvide(NG_VALUE_ACCESSOR, CuiSelectComponent, true),
1976
1990
  CuiDestroyService
1977
- ], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }, { propertyName: "getOptionsListHeightContainer", first: true, predicate: ["getOptionsListHeightContainer"], descendants: true }, { propertyName: "optionsWrapper", first: true, predicate: ["optionsWrapper"], descendants: true }], hostDirectives: [{ directive: i2.CuiClickOutsideDirective }], ngImport: i0, template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\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: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1991
+ ], viewQueries: [{ propertyName: "button", first: true, predicate: ["button"], descendants: true }, { propertyName: "getOptionsListHeightContainer", first: true, predicate: ["getOptionsListHeightContainer"], descendants: true }, { propertyName: "optionsWrapper", first: true, predicate: ["optionsWrapper"], descendants: true }], hostDirectives: [{ directive: i2.CuiClickOutsideDirective }], ngImport: i0, template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative;z-index:1}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\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: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1978
1992
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CuiSelectComponent, decorators: [{
1979
1993
  type: Component,
1980
1994
  args: [{ selector: 'cui-select[options]', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1981
1995
  CUI_TEXT_FILED_CONTROLLER_PROVIDER,
1982
1996
  cuiProvide(NG_VALUE_ACCESSOR, CuiSelectComponent, true),
1983
1997
  CuiDestroyService
1984
- ], hostDirectives: [CuiClickOutsideDirective], template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\n"] }]
1998
+ ], hostDirectives: [CuiClickOutsideDirective], template: "<button\n #button\n type=\"button\"\n [attr.id]=\"id\"\n [attr.data-size]=\"size\"\n [disabled]=\"isDisabled\"\n class=\"c-button\"\n [class.c-button_active]=\"isOpened\"\n [class.c-button_with-error]=\"isError\"\n (click)=\"onSwitch()\"\n>\n <ng-container *ngIf=\"selectedOption; else placeholderTemplate\">\n {{ selectedOption.label }}\n </ng-container>\n <ng-template #placeholderTemplate>\n <span class=\"c-placeholder\">{{ placeholder }}</span>\n </ng-template>\n <cui-svg\n icon=\"cuiIconChevronDown\"\n color=\"var(--cui-base-500)\"\n />\n</button>\n<ng-template #optionsWrapper>\n <div\n class=\"c-options__wrapper\"\n [class.c-options__wrapper_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n </div>\n</ng-template>\n<div\n #getOptionsListHeightContainer\n class=\"c-get-options-list-height-container\"\n>\n <ng-container *ngTemplateOutlet=\"optionsList\"/>\n</div>\n<ng-template #optionsList>\n <ul\n class=\"c-options\"\n [class.c-options_top]=\"isOptionsListAbove\"\n >\n <ng-container *ngIf=\"options.length; else empty\">\n <li *ngFor=\"let option of options; trackBy: trackByFn\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n [class.c-option-button_selected]=\"selectedOption === option\"\n (click)=\"onSelect(option)\"\n >\n <span>{{ option.label }}</span>\n <cui-svg\n *ngIf=\"selectedOption === option\"\n icon=\"cuiIconCheckSm\"\n color=\"var(--cui-info)\"\n class=\"c-option-button__icon\"\n />\n </button>\n </li>\n </ng-container>\n <ng-template #empty>\n <li *ngIf=\"defaultOptionText\">\n <button\n type=\"button\"\n class=\"c-option-button\"\n (click)=\"onClose()\"\n >\n {{ defaultOptionText }}\n </button>\n </li>\n </ng-template>\n </ul>\n</ng-template>\n", styles: [":host{display:block;font-family:var(--cui-main-font);position:relative;z-index:1}.c-button{border:0;flex-shrink:0;outline:none;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:0 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:1px solid var(--cui-base-200);border-radius:8px;cursor:pointer;background:var(--cui-input);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button:hover{border-color:var(--cui-base-300)}.c-button_active.c-button_active,.c-button:focus{box-shadow:0 0 0 2px var(--cui-focus);border-color:var(--cui-info)}.c-button:disabled{cursor:not-allowed;opacity:.5;background:var(--cui-base-50);border-color:var(--cui-base-200)}.c-button[data-size=sm]{padding-top:7px;padding-bottom:7px}.c-button[data-size=md]{padding-top:8px;padding-bottom:8px}.c-button_with-error{border-color:var(--cui-danger)}.c-button_with-error:focus{box-shadow:0 0 0 2px #d92d2040;border-color:var(--cui-danger)}.c-placeholder{color:var(--cui-base-400)}.c-options__wrapper{position:absolute;font-family:var(--cui-main-font)}.c-get-options-list-height-container{position:fixed;visibility:hidden}.c-options{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;overflow:auto;max-height:180px;border:1px solid var(--cui-base-200);border-radius:8px;background:var(--cui-base-0);color:var(--cui-base-900)}.c-option-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-option-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-option-button:hover{background:var(--cui-base-50)}}.c-option-button_selected{background:var(--cui-base-50)}.c-option-button__icon{margin-left:auto}\n"] }]
1985
1999
  }], propDecorators: { options: [{
1986
2000
  type: Input
1987
2001
  }], defaultOptionText: [{