@seniorsistemas/angular-components 17.7.1 → 17.7.2

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,17 +1,22 @@
1
- import { ElementRef, EventEmitter, OnInit } from "@angular/core";
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit, QueryList } from "@angular/core";
2
2
  import { Workspace } from "./models/workspace";
3
3
  export declare class WorkspaceSwitchComponent implements OnInit {
4
4
  private readonly eRef;
5
+ private readonly changeDetectorRef;
5
6
  workspaces: Workspace[];
6
7
  footerButtonLabel: string;
7
8
  showFooterButton: boolean;
8
9
  disabled: boolean;
9
10
  footerButtonClicked: EventEmitter<any>;
10
11
  selected: EventEmitter<Workspace>;
11
- open: boolean;
12
+ listItems: QueryList<ElementRef>;
13
+ get open(): boolean;
14
+ set open(open: boolean);
15
+ height: number;
12
16
  selectedItemIndex: number;
13
17
  currentItemIndex: number;
14
- constructor(eRef: ElementRef);
18
+ private _open;
19
+ constructor(eRef: ElementRef, changeDetectorRef: ChangeDetectorRef);
15
20
  tabindex: number;
16
21
  onClickout(event: MouseEvent): void;
17
22
  onKeydown(event: KeyboardEvent): void;
@@ -20,4 +25,6 @@ export declare class WorkspaceSwitchComponent implements OnInit {
20
25
  buttonOnBlur(): void;
21
26
  onSelectItem(workspace: Workspace): void;
22
27
  onFooterButtonClick(): void;
28
+ private _calculateListMaxHeight;
29
+ private _scrollToCurrentItem;
23
30
  }
@@ -1,18 +1,30 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, } from "@angular/core";
2
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, QueryList, ViewChildren, } from "@angular/core";
3
3
  let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
4
- constructor(eRef) {
4
+ constructor(eRef, changeDetectorRef) {
5
5
  this.eRef = eRef;
6
+ this.changeDetectorRef = changeDetectorRef;
6
7
  this.footerButtonLabel = "Adicionar";
7
8
  this.showFooterButton = true;
8
9
  this.disabled = false;
9
10
  this.footerButtonClicked = new EventEmitter();
10
11
  this.selected = new EventEmitter();
11
- this.open = false;
12
+ this.height = 0;
12
13
  this.selectedItemIndex = 0;
13
14
  this.currentItemIndex = 0;
15
+ this._open = false;
14
16
  this.tabindex = 0;
15
17
  }
18
+ get open() {
19
+ return this._open;
20
+ }
21
+ set open(open) {
22
+ this._open = open;
23
+ this.changeDetectorRef.detectChanges();
24
+ if (open) {
25
+ this._calculateListMaxHeight();
26
+ }
27
+ }
16
28
  onClickout(event) {
17
29
  if (!this.eRef.nativeElement.contains(event.target)) {
18
30
  this.open = false;
@@ -36,11 +48,13 @@ let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
36
48
  else if (event.key === "ArrowDown") {
37
49
  if (this.currentItemIndex < this.workspaces.length - 1) {
38
50
  this.currentItemIndex++;
51
+ this._scrollToCurrentItem();
39
52
  }
40
53
  }
41
54
  else if (event.key === "ArrowUp") {
42
55
  if (this.currentItemIndex > 0) {
43
56
  this.currentItemIndex--;
57
+ this._scrollToCurrentItem();
44
58
  }
45
59
  }
46
60
  }
@@ -71,9 +85,22 @@ let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
71
85
  this.open = false;
72
86
  this.footerButtonClicked.emit();
73
87
  }
88
+ _calculateListMaxHeight() {
89
+ const workspaceListRef = this.eRef.nativeElement.querySelector("#workspace-list");
90
+ const { top } = workspaceListRef.getBoundingClientRect();
91
+ this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);
92
+ this.changeDetectorRef.detectChanges();
93
+ }
94
+ _scrollToCurrentItem() {
95
+ const currentItem = this.listItems.toArray()[this.currentItemIndex];
96
+ if (currentItem) {
97
+ currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
98
+ }
99
+ }
74
100
  };
75
101
  WorkspaceSwitchComponent.ctorParameters = () => [
76
- { type: ElementRef }
102
+ { type: ElementRef },
103
+ { type: ChangeDetectorRef }
77
104
  ];
78
105
  __decorate([
79
106
  Input()
@@ -93,6 +120,9 @@ __decorate([
93
120
  __decorate([
94
121
  Output()
95
122
  ], WorkspaceSwitchComponent.prototype, "selected", void 0);
123
+ __decorate([
124
+ ViewChildren('listItem')
125
+ ], WorkspaceSwitchComponent.prototype, "listItems", void 0);
96
126
  __decorate([
97
127
  HostBinding("attr.tabindex")
98
128
  ], WorkspaceSwitchComponent.prototype, "tabindex", void 0);
@@ -105,9 +135,9 @@ __decorate([
105
135
  WorkspaceSwitchComponent = __decorate([
106
136
  Component({
107
137
  selector: "s-workspace-switch",
108
- template: "<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\">\n <div class=\"button\" (click)=\"open = !open\">\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div *ngIf=\"!disabled && open\" class=\"select\">\n <div\n *ngFor=\"let workspace of workspaces; let i = index\"\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i == currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled\n }\"\n (click)=\"onSelectItem(workspace)\">\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n <span *ngIf=\"i === selectedItemIndex\" class=\"active-icon fas fa-check\"></span>\n </div>\n <div *ngIf=\"showFooterButton\" class=\"footer\">\n <div class=\"footer__button\" (click)=\"onFooterButtonClick()\">\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>",
109
- styles: [".workspace-switch{border-radius:4px;border:1px solid transparent;width:324px}.workspace-switch .button{-ms-flex-align:center;align-items:center;background-color:#fff;border:none;border-radius:3px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.workspace-switch .button .icons{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;margin:0 12px}.workspace-switch .select{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;margin:20px 0;padding-top:4px;position:absolute;width:324px}.workspace-switch .select .workspace{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none}.workspace-switch .select .workspace .active-icon{color:#7892a1;font-size:12px;margin:0 12px}.workspace-switch .select .workspace--focused{background-color:#f1f7f8}.workspace-switch .select .workspace--disabled .item .subtitle,.workspace-switch .select .workspace--disabled .item .title{color:#c1c1cc}.workspace-switch .select .workspace:hover:not(.workspace--disabled){background-color:#f1f7f8}.workspace-switch .select .footer{border-top:1px solid #ccc;padding:12px}.workspace-switch .select .footer .footer__button{-ms-flex-align:center;align-items:center;border:1px solid #d8d8d8;border-radius:4px;padding:8px 12px;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.workspace-switch .select .footer .footer__button .footer__button__icon{color:#333;margin-right:8px}.workspace-switch .select .footer .footer__button:active{border:1px solid #428bca}.workspace-switch .item{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding:12px}.workspace-switch .item .title{color:#333;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:700;line-height:150%;text-transform:uppercase}.workspace-switch .item .subtitle{color:#999;font-family:\"Open Sans\",sans-serif;font-size:12px;font-weight:400;line-height:150%}.workspace-switch:focus{border:1px solid #428bca}.workspace-switch--disabled .button{cursor:default}.workspace-switch--disabled .button .icons,.workspace-switch--disabled .item .subtitle,.workspace-switch--disabled .item .title{color:#ccc}"]
138
+ template: "<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\">\n <div class=\"button\" (click)=\"open = !open\">\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div *ngIf=\"!disabled && open\" class=\"drop-panel\">\n <ul\n id=\"workspace-list\"\n class=\"workspace-list\"\n [ngStyle]=\"{ 'max-height': height + 'px' }\">\n <li\n #listItem\n *ngFor=\"let workspace of workspaces; let i = index\"\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i == currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled\n }\"\n (click)=\"onSelectItem(workspace)\">\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n <span *ngIf=\"i === selectedItemIndex\" class=\"active-icon fas fa-check\"></span>\n </li>\n </ul>\n <div *ngIf=\"showFooterButton\" class=\"footer\">\n <div class=\"footer__button\" (click)=\"onFooterButtonClick()\">\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>",
139
+ styles: [".workspace-switch{border-radius:4px;border:1px solid transparent;width:324px}.workspace-switch .button{-ms-flex-align:center;align-items:center;background-color:#fff;border:none;border-radius:3px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.workspace-switch .button .icons{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;margin:0 12px}.workspace-switch .drop-panel{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;margin:20px 0;padding-top:4px;position:absolute;width:324px}.workspace-switch .drop-panel .workspace-list{list-style:none;overflow:auto;padding:0}.workspace-switch .drop-panel .workspace-list .workspace{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none}.workspace-switch .drop-panel .workspace-list .workspace .active-icon{color:#7892a1;font-size:12px;margin:0 12px}.workspace-switch .drop-panel .workspace-list .workspace--focused{background-color:#f1f7f8}.workspace-switch .drop-panel .workspace-list .workspace--disabled .item .subtitle,.workspace-switch .drop-panel .workspace-list .workspace--disabled .item .title{color:#c1c1cc}.workspace-switch .drop-panel .workspace-list .workspace:hover:not(.workspace--disabled){background-color:#f1f7f8}.workspace-switch .drop-panel .footer{border-top:1px solid #ccc;padding:12px}.workspace-switch .drop-panel .footer .footer__button{-ms-flex-align:center;align-items:center;border:1px solid #d8d8d8;border-radius:4px;padding:8px 12px;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.workspace-switch .drop-panel .footer .footer__button .footer__button__icon{color:#333;margin-right:8px}.workspace-switch .drop-panel .footer .footer__button:active{border:1px solid #428bca}.workspace-switch .item{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding:12px}.workspace-switch .item .title{color:#333;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:700;line-height:150%;text-transform:uppercase}.workspace-switch .item .subtitle{color:#999;font-family:\"Open Sans\",sans-serif;font-size:12px;font-weight:400;line-height:150%}.workspace-switch:focus{border:1px solid #428bca}.workspace-switch--disabled .button{cursor:default}.workspace-switch--disabled .button .icons,.workspace-switch--disabled .item .subtitle,.workspace-switch--disabled .item .title{color:#ccc}"]
110
140
  })
111
141
  ], WorkspaceSwitchComponent);
112
142
  export { WorkspaceSwitchComponent };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy93b3Jrc3BhY2Utc3dpdGNoL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUixNQUFNLGVBQWUsQ0FBQztBQVN2QixJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQXdCbEMsWUFBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQW5CdEMsc0JBQWlCLEdBQUcsV0FBVyxDQUFDO1FBR2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUd4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHekMsYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELFNBQUksR0FBRyxLQUFLLENBQUM7UUFFYixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBS3JCLGFBQVEsR0FBRyxDQUFDLENBQUM7SUFINkIsQ0FBQztJQU0zQyxVQUFVLENBQUMsS0FBaUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDcEI7SUFDSixDQUFDO0lBR00sU0FBUyxDQUFDLEtBQW9CO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLEdB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QztBQTdEUyx3QkFBd0I7SUFMcEMsU0FBUyxDQUFDO1FBQ1IsUUFBUSxFQUFFLG9CQUFvQjtRQUM5Qiw4aERBQWdEOztLQUVsRCxDQUFDO0dBQ1csd0JBQXdCLENBK0ZwQztTQS9GWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgQ29tcG9uZW50LFxuICAgRWxlbWVudFJlZixcbiAgIEV2ZW50RW1pdHRlcixcbiAgIEhvc3RCaW5kaW5nLFxuICAgSG9zdExpc3RlbmVyLFxuICAgSW5wdXQsXG4gICBPbkluaXQsXG4gICBPdXRwdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFdvcmtzcGFjZSB9IGZyb20gXCIuL21vZGVscy93b3Jrc3BhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogXCJzLXdvcmtzcGFjZS1zd2l0Y2hcIixcbiAgIHRlbXBsYXRlVXJsOiBcIi4vd29ya3NwYWNlLXN3aXRjaC5jb21wb25lbnQuaHRtbFwiLFxuICAgc3R5bGVVcmxzOiBbXCIuL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICBASW5wdXQoKVxuICAgcHVibGljIHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGZvb3RlckJ1dHRvbkxhYmVsID0gXCJBZGljaW9uYXJcIjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzaG93Rm9vdGVyQnV0dG9uID0gdHJ1ZTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyBmb290ZXJCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPFdvcmtzcGFjZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgIHB1YmxpYyBvcGVuID0gZmFsc2U7XG5cbiAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1JbmRleCA9IDA7XG4gICBwdWJsaWMgY3VycmVudEl0ZW1JbmRleCA9IDA7XG5cbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZVJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgIEBIb3N0QmluZGluZyhcImF0dHIudGFiaW5kZXhcIilcbiAgIHB1YmxpYyB0YWJpbmRleCA9IDA7XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICBwdWJsaWMgb25DbGlja291dChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIGNvbnN0IHdvcmtzcGFjZSA9IHRoaXMud29ya3NwYWNlc1t0aGlzLnNlbGVjdGVkSXRlbUluZGV4XTtcblxuICAgICAgICAgICAgaWYgKHdvcmtzcGFjZS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbUluZGV4ID0gdGhpcy5jdXJyZW50SXRlbUluZGV4O1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHRoaXMud29ya3NwYWNlc1t0aGlzLnNlbGVjdGVkSXRlbUluZGV4XSk7XG4gICAgICAgICB9XG4gICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtSW5kZXggPCB0aGlzLndvcmtzcGFjZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4Kys7XG4gICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcbiAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtSW5kZXggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXgtLTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgIHRoaXMudGFiaW5kZXggPSAtMTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIHZhbGlkYXRpb25zKCkge1xuICAgICAgaWYgKCF0aGlzLndvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJXb3Jrc3BhY2VzIGxpc3QgaXMgZW1wdHkuXCIpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgYnV0dG9uT25CbHVyKCkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbUluZGV4O1xuICAgfVxuXG4gICBwdWJsaWMgb25TZWxlY3RJdGVtKHdvcmtzcGFjZTogV29ya3NwYWNlKSB7XG4gICAgICBpZiAod29ya3NwYWNlLmRpc2FibGVkKSB7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMud29ya3NwYWNlcy5pbmRleE9mKHdvcmtzcGFjZSk7XG4gICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXggPSB0aGlzLnNlbGVjdGVkSXRlbUluZGV4O1xuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHdvcmtzcGFjZSk7XG4gICB9XG5cbiAgIHB1YmxpYyBvbkZvb3RlckJ1dHRvbkNsaWNrKCkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLmZvb3RlckJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy93b3Jrc3BhY2Utc3dpdGNoL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQVN2QixJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQXlDakMsWUFDcUIsSUFBZ0IsRUFDaEIsaUJBQW9DO1FBRHBDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXRDbEQsc0JBQWlCLEdBQUcsV0FBVyxDQUFDO1FBR2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUd4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHekMsYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBa0J2RCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUVwQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWYsYUFBUSxHQUFHLENBQUMsQ0FBQztJQUhqQixDQUFDO0lBdEJKLElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxJQUFJLENBQUMsSUFBYTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJ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QUFHcEI7SUFEQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzswREFLMUM7QUFHRDtJQURDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzt5REEyQm5DO0FBbkZRLHdCQUF3QjtJQUxwQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLHF2REFBZ0Q7O0tBRW5ELENBQUM7R0FDVyx3QkFBd0IsQ0FvSXBDO1NBcElZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFdvcmtzcGFjZSB9IGZyb20gXCIuL21vZGVscy93b3Jrc3BhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy13b3Jrc3BhY2Utc3dpdGNoXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi93b3Jrc3BhY2Utc3dpdGNoLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd29ya3NwYWNlczogV29ya3NwYWNlW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb290ZXJCdXR0b25MYWJlbCA9IFwiQWRpY2lvbmFyXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Rm9vdGVyQnV0dG9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9vdGVyQnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPFdvcmtzcGFjZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdsaXN0SXRlbScpXG4gICAgcHVibGljIGxpc3RJdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgcHVibGljIGdldCBvcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9vcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZUxpc3RNYXhIZWlnaHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoZWlnaHQgPSAwO1xuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1JbmRleCA9IDA7XG4gICAgcHVibGljIGN1cnJlbnRJdGVtSW5kZXggPSAwO1xuXG4gICAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZVJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBASG9zdEJpbmRpbmcoXCJhdHRyLnRhYmluZGV4XCIpXG4gICAgcHVibGljIHRhYmluZGV4ID0gMDtcblxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICAgcHVibGljIG9uQ2xpY2tvdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy53b3Jrc3BhY2VzW3RoaXMuc2VsZWN0ZWRJdGVtSW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHdvcmtzcGFjZS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEl0ZW1JbmRleDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcy53b3Jrc3BhY2VzW3RoaXMuc2VsZWN0ZWRJdGVtSW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtSW5kZXggPCB0aGlzLndvcmtzcGFjZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCsrO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleC0tO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGFiaW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJXb3Jrc3BhY2VzIGxpc3QgaXMgZW1wdHkuXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGJ1dHRvbk9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0SXRlbSh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IHZvaWQge1xuICAgICAgICBpZiAod29ya3NwYWNlLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMud29ya3NwYWNlcy5pbmRleE9mKHdvcmtzcGFjZSk7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXg7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh3b3Jrc3BhY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZvb3RlckJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb290ZXJCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVMaXN0TWF4SGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB3b3Jrc3BhY2VMaXN0UmVmID0gdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIiN3b3Jrc3BhY2UtbGlzdFwiKTtcbiAgICAgICAgY29uc3QgeyB0b3AgfSA9IHdvcmtzcGFjZUxpc3RSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0b3AgLSAyMCAtICh0aGlzLnNob3dGb290ZXJCdXR0b24gPyA2NCA6IDApO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JvbGxUb0N1cnJlbnRJdGVtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMubGlzdEl0ZW1zLnRvQXJyYXkoKVt0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xuICAgICAgICBpZiAoY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIGN1cnJlbnRJdGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,18 +1,34 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, } from "@angular/core";
2
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, QueryList, ViewChildren, } from "@angular/core";
3
3
  var WorkspaceSwitchComponent = /** @class */ (function () {
4
- function WorkspaceSwitchComponent(eRef) {
4
+ function WorkspaceSwitchComponent(eRef, changeDetectorRef) {
5
5
  this.eRef = eRef;
6
+ this.changeDetectorRef = changeDetectorRef;
6
7
  this.footerButtonLabel = "Adicionar";
7
8
  this.showFooterButton = true;
8
9
  this.disabled = false;
9
10
  this.footerButtonClicked = new EventEmitter();
10
11
  this.selected = new EventEmitter();
11
- this.open = false;
12
+ this.height = 0;
12
13
  this.selectedItemIndex = 0;
13
14
  this.currentItemIndex = 0;
15
+ this._open = false;
14
16
  this.tabindex = 0;
15
17
  }
18
+ Object.defineProperty(WorkspaceSwitchComponent.prototype, "open", {
19
+ get: function () {
20
+ return this._open;
21
+ },
22
+ set: function (open) {
23
+ this._open = open;
24
+ this.changeDetectorRef.detectChanges();
25
+ if (open) {
26
+ this._calculateListMaxHeight();
27
+ }
28
+ },
29
+ enumerable: true,
30
+ configurable: true
31
+ });
16
32
  WorkspaceSwitchComponent.prototype.onClickout = function (event) {
17
33
  if (!this.eRef.nativeElement.contains(event.target)) {
18
34
  this.open = false;
@@ -36,11 +52,13 @@ var WorkspaceSwitchComponent = /** @class */ (function () {
36
52
  else if (event.key === "ArrowDown") {
37
53
  if (this.currentItemIndex < this.workspaces.length - 1) {
38
54
  this.currentItemIndex++;
55
+ this._scrollToCurrentItem();
39
56
  }
40
57
  }
41
58
  else if (event.key === "ArrowUp") {
42
59
  if (this.currentItemIndex > 0) {
43
60
  this.currentItemIndex--;
61
+ this._scrollToCurrentItem();
44
62
  }
45
63
  }
46
64
  };
@@ -71,8 +89,21 @@ var WorkspaceSwitchComponent = /** @class */ (function () {
71
89
  this.open = false;
72
90
  this.footerButtonClicked.emit();
73
91
  };
92
+ WorkspaceSwitchComponent.prototype._calculateListMaxHeight = function () {
93
+ var workspaceListRef = this.eRef.nativeElement.querySelector("#workspace-list");
94
+ var top = workspaceListRef.getBoundingClientRect().top;
95
+ this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);
96
+ this.changeDetectorRef.detectChanges();
97
+ };
98
+ WorkspaceSwitchComponent.prototype._scrollToCurrentItem = function () {
99
+ var currentItem = this.listItems.toArray()[this.currentItemIndex];
100
+ if (currentItem) {
101
+ currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
102
+ }
103
+ };
74
104
  WorkspaceSwitchComponent.ctorParameters = function () { return [
75
- { type: ElementRef }
105
+ { type: ElementRef },
106
+ { type: ChangeDetectorRef }
76
107
  ]; };
77
108
  __decorate([
78
109
  Input()
@@ -92,6 +123,9 @@ var WorkspaceSwitchComponent = /** @class */ (function () {
92
123
  __decorate([
93
124
  Output()
94
125
  ], WorkspaceSwitchComponent.prototype, "selected", void 0);
126
+ __decorate([
127
+ ViewChildren('listItem')
128
+ ], WorkspaceSwitchComponent.prototype, "listItems", void 0);
95
129
  __decorate([
96
130
  HostBinding("attr.tabindex")
97
131
  ], WorkspaceSwitchComponent.prototype, "tabindex", void 0);
@@ -104,11 +138,11 @@ var WorkspaceSwitchComponent = /** @class */ (function () {
104
138
  WorkspaceSwitchComponent = __decorate([
105
139
  Component({
106
140
  selector: "s-workspace-switch",
107
- template: "<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\">\n <div class=\"button\" (click)=\"open = !open\">\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div *ngIf=\"!disabled && open\" class=\"select\">\n <div\n *ngFor=\"let workspace of workspaces; let i = index\"\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i == currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled\n }\"\n (click)=\"onSelectItem(workspace)\">\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n <span *ngIf=\"i === selectedItemIndex\" class=\"active-icon fas fa-check\"></span>\n </div>\n <div *ngIf=\"showFooterButton\" class=\"footer\">\n <div class=\"footer__button\" (click)=\"onFooterButtonClick()\">\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>",
108
- styles: [".workspace-switch{border-radius:4px;border:1px solid transparent;width:324px}.workspace-switch .button{-ms-flex-align:center;align-items:center;background-color:#fff;border:none;border-radius:3px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.workspace-switch .button .icons{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;margin:0 12px}.workspace-switch .select{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;margin:20px 0;padding-top:4px;position:absolute;width:324px}.workspace-switch .select .workspace{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none}.workspace-switch .select .workspace .active-icon{color:#7892a1;font-size:12px;margin:0 12px}.workspace-switch .select .workspace--focused{background-color:#f1f7f8}.workspace-switch .select .workspace--disabled .item .subtitle,.workspace-switch .select .workspace--disabled .item .title{color:#c1c1cc}.workspace-switch .select .workspace:hover:not(.workspace--disabled){background-color:#f1f7f8}.workspace-switch .select .footer{border-top:1px solid #ccc;padding:12px}.workspace-switch .select .footer .footer__button{-ms-flex-align:center;align-items:center;border:1px solid #d8d8d8;border-radius:4px;padding:8px 12px;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.workspace-switch .select .footer .footer__button .footer__button__icon{color:#333;margin-right:8px}.workspace-switch .select .footer .footer__button:active{border:1px solid #428bca}.workspace-switch .item{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding:12px}.workspace-switch .item .title{color:#333;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:700;line-height:150%;text-transform:uppercase}.workspace-switch .item .subtitle{color:#999;font-family:\"Open Sans\",sans-serif;font-size:12px;font-weight:400;line-height:150%}.workspace-switch:focus{border:1px solid #428bca}.workspace-switch--disabled .button{cursor:default}.workspace-switch--disabled .button .icons,.workspace-switch--disabled .item .subtitle,.workspace-switch--disabled .item .title{color:#ccc}"]
141
+ template: "<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\">\n <div class=\"button\" (click)=\"open = !open\">\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div *ngIf=\"!disabled && open\" class=\"drop-panel\">\n <ul\n id=\"workspace-list\"\n class=\"workspace-list\"\n [ngStyle]=\"{ 'max-height': height + 'px' }\">\n <li\n #listItem\n *ngFor=\"let workspace of workspaces; let i = index\"\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i == currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled\n }\"\n (click)=\"onSelectItem(workspace)\">\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n <span *ngIf=\"i === selectedItemIndex\" class=\"active-icon fas fa-check\"></span>\n </li>\n </ul>\n <div *ngIf=\"showFooterButton\" class=\"footer\">\n <div class=\"footer__button\" (click)=\"onFooterButtonClick()\">\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>",
142
+ styles: [".workspace-switch{border-radius:4px;border:1px solid transparent;width:324px}.workspace-switch .button{-ms-flex-align:center;align-items:center;background-color:#fff;border:none;border-radius:3px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.workspace-switch .button .icons{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;margin:0 12px}.workspace-switch .drop-panel{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;margin:20px 0;padding-top:4px;position:absolute;width:324px}.workspace-switch .drop-panel .workspace-list{list-style:none;overflow:auto;padding:0}.workspace-switch .drop-panel .workspace-list .workspace{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none}.workspace-switch .drop-panel .workspace-list .workspace .active-icon{color:#7892a1;font-size:12px;margin:0 12px}.workspace-switch .drop-panel .workspace-list .workspace--focused{background-color:#f1f7f8}.workspace-switch .drop-panel .workspace-list .workspace--disabled .item .subtitle,.workspace-switch .drop-panel .workspace-list .workspace--disabled .item .title{color:#c1c1cc}.workspace-switch .drop-panel .workspace-list .workspace:hover:not(.workspace--disabled){background-color:#f1f7f8}.workspace-switch .drop-panel .footer{border-top:1px solid #ccc;padding:12px}.workspace-switch .drop-panel .footer .footer__button{-ms-flex-align:center;align-items:center;border:1px solid #d8d8d8;border-radius:4px;padding:8px 12px;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.workspace-switch .drop-panel .footer .footer__button .footer__button__icon{color:#333;margin-right:8px}.workspace-switch .drop-panel .footer .footer__button:active{border:1px solid #428bca}.workspace-switch .item{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding:12px}.workspace-switch .item .title{color:#333;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:700;line-height:150%;text-transform:uppercase}.workspace-switch .item .subtitle{color:#999;font-family:\"Open Sans\",sans-serif;font-size:12px;font-weight:400;line-height:150%}.workspace-switch:focus{border:1px solid #428bca}.workspace-switch--disabled .button{cursor:default}.workspace-switch--disabled .button .icons,.workspace-switch--disabled .item .subtitle,.workspace-switch--disabled .item .title{color:#ccc}"]
109
143
  })
110
144
  ], WorkspaceSwitchComponent);
111
145
  return WorkspaceSwitchComponent;
112
146
  }());
113
147
  export { WorkspaceSwitchComponent };
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy93b3Jrc3BhY2Utc3dpdGNoL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUixNQUFNLGVBQWUsQ0FBQztBQVN2QjtJQXdCRyxrQ0FBNkIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQW5CdEMsc0JBQWlCLEdBQUcsV0FBVyxDQUFDO1FBR2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUd4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHekMsYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZELFNBQUksR0FBRyxLQUFLLENBQUM7UUFFYixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBS3JCLGFBQVEsR0FBRyxDQUFDLENBQUM7SUFINkIsQ0FBQztJQU0zQyw2Q0FBVSxHQUFqQixVQUFrQixLQUFpQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNKLENBQUM7SUFHTSw0Q0FBUyxHQUFoQixVQUFpQixLQUFvQjtRQUNsQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxF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QUM7NkRBeUJuQztJQTdEUyx3QkFBd0I7UUFMcEMsU0FBUyxDQUFDO1lBQ1IsUUFBUSxFQUFFLG9CQUFvQjtZQUM5Qiw4aERBQWdEOztTQUVsRCxDQUFDO09BQ1csd0JBQXdCLENBK0ZwQztJQUFELCtCQUFDO0NBQUEsQUEvRkQsSUErRkM7U0EvRlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIENvbXBvbmVudCxcbiAgIEVsZW1lbnRSZWYsXG4gICBFdmVudEVtaXR0ZXIsXG4gICBIb3N0QmluZGluZyxcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIElucHV0LFxuICAgT25Jbml0LFxuICAgT3V0cHV0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tIFwiLi9tb2RlbHMvd29ya3NwYWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6IFwicy13b3Jrc3BhY2Utc3dpdGNoXCIsXG4gICB0ZW1wbGF0ZVVybDogXCIuL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wiLi93b3Jrc3BhY2Utc3dpdGNoLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VTd2l0Y2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgQElucHV0KClcbiAgIHB1YmxpYyB3b3Jrc3BhY2VzOiBXb3Jrc3BhY2VbXTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBmb290ZXJCdXR0b25MYWJlbCA9IFwiQWRpY2lvbmFyXCI7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc2hvd0Zvb3RlckJ1dHRvbiA9IHRydWU7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgZm9vdGVyQnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxXb3Jrc3BhY2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBwdWJsaWMgb3BlbiA9IGZhbHNlO1xuXG4gICBwdWJsaWMgc2VsZWN0ZWRJdGVtSW5kZXggPSAwO1xuICAgcHVibGljIGN1cnJlbnRJdGVtSW5kZXggPSAwO1xuXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVSZWY6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICBASG9zdEJpbmRpbmcoXCJhdHRyLnRhYmluZGV4XCIpXG4gICBwdWJsaWMgdGFiaW5kZXggPSAwO1xuXG4gICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uQ2xpY2tvdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgIGlmICghdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICBjb25zdCB3b3Jrc3BhY2UgPSB0aGlzLndvcmtzcGFjZXNbdGhpcy5zZWxlY3RlZEl0ZW1JbmRleF07XG5cbiAgICAgICAgICAgIGlmICh3b3Jrc3BhY2UuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEl0ZW1JbmRleDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLndvcmtzcGFjZXNbdGhpcy5zZWxlY3RlZEl0ZW1JbmRleF0pO1xuICAgICAgICAgfVxuICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93RG93blwiKSB7XG4gICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUluZGV4IDwgdGhpcy53b3Jrc3BhY2VzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCsrO1xuICAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4LS07XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICB0aGlzLnRhYmluZGV4ID0gLTE7XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyB2YWxpZGF0aW9ucygpIHtcbiAgICAgIGlmICghdGhpcy53b3Jrc3BhY2VzLmxlbmd0aCkge1xuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiV29ya3NwYWNlcyBsaXN0IGlzIGVtcHR5LlwiKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIGJ1dHRvbk9uQmx1cigpIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1JbmRleDtcbiAgIH1cblxuICAgcHVibGljIG9uU2VsZWN0SXRlbSh3b3Jrc3BhY2U6IFdvcmtzcGFjZSkge1xuICAgICAgaWYgKHdvcmtzcGFjZS5kaXNhYmxlZCkge1xuICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXggPSB0aGlzLndvcmtzcGFjZXMuaW5kZXhPZih3b3Jrc3BhY2UpO1xuICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1JbmRleDtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh3b3Jrc3BhY2UpO1xuICAgfVxuXG4gICBwdWJsaWMgb25Gb290ZXJCdXR0b25DbGljaygpIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5mb290ZXJCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLXN3aXRjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy93b3Jrc3BhY2Utc3dpdGNoL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQVN2QjtJQXlDSSxrQ0FDcUIsSUFBZ0IsRUFDaEIsaUJBQW9DO1FBRHBDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXRDbEQsc0JBQWlCLEdBQUcsV0FBVyxDQUFDO1FBR2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUd4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHekMsYUFBUSxHQUE0QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBa0J2RCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUVwQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBUWYsYUFBUSxHQUFHLENBQUMsQ0FBQztJQUhqQixDQUFDO0lBdEJKLHNCQUFXLDBDQUFJO2FBQWY7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzthQUVELFVBQWdCLElBQWE7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxD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LFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzhEQUsxQztJQUdEO1FBREMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzZEQTJCbkM7SUFuRlEsd0JBQXdCO1FBTHBDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIscXZEQUFnRDs7U0FFbkQsQ0FBQztPQUNXLHdCQUF3QixDQW9JcEM7SUFBRCwrQkFBQztDQUFBLEFBcElELElBb0lDO1NBcElZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFdvcmtzcGFjZSB9IGZyb20gXCIuL21vZGVscy93b3Jrc3BhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy13b3Jrc3BhY2Utc3dpdGNoXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi93b3Jrc3BhY2Utc3dpdGNoLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3dvcmtzcGFjZS1zd2l0Y2guY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVN3aXRjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd29ya3NwYWNlczogV29ya3NwYWNlW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb290ZXJCdXR0b25MYWJlbCA9IFwiQWRpY2lvbmFyXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93Rm9vdGVyQnV0dG9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZm9vdGVyQnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPFdvcmtzcGFjZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdsaXN0SXRlbScpXG4gICAgcHVibGljIGxpc3RJdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgcHVibGljIGdldCBvcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9vcGVuID0gb3BlbjtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZUxpc3RNYXhIZWlnaHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoZWlnaHQgPSAwO1xuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1JbmRleCA9IDA7XG4gICAgcHVibGljIGN1cnJlbnRJdGVtSW5kZXggPSAwO1xuXG4gICAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZVJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBASG9zdEJpbmRpbmcoXCJhdHRyLnRhYmluZGV4XCIpXG4gICAgcHVibGljIHRhYmluZGV4ID0gMDtcblxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICAgcHVibGljIG9uQ2xpY2tvdXQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy53b3Jrc3BhY2VzW3RoaXMuc2VsZWN0ZWRJdGVtSW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHdvcmtzcGFjZS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEl0ZW1JbmRleDtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcy53b3Jrc3BhY2VzW3RoaXMuc2VsZWN0ZWRJdGVtSW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtSW5kZXggPCB0aGlzLndvcmtzcGFjZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCsrO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleC0tO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvQ3VycmVudEl0ZW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGFiaW5kZXggPSAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndvcmtzcGFjZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJXb3Jrc3BhY2VzIGxpc3QgaXMgZW1wdHkuXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGJ1dHRvbk9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2VsZWN0SXRlbSh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IHZvaWQge1xuICAgICAgICBpZiAod29ya3NwYWNlLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMud29ya3NwYWNlcy5pbmRleE9mKHdvcmtzcGFjZSk7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXg7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh3b3Jrc3BhY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkZvb3RlckJ1dHRvbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb290ZXJCdXR0b25DbGlja2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVMaXN0TWF4SGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB3b3Jrc3BhY2VMaXN0UmVmID0gdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIiN3b3Jrc3BhY2UtbGlzdFwiKTtcbiAgICAgICAgY29uc3QgeyB0b3AgfSA9IHdvcmtzcGFjZUxpc3RSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgdGhpcy5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0b3AgLSAyMCAtICh0aGlzLnNob3dGb290ZXJCdXR0b24gPyA2NCA6IDApO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zY3JvbGxUb0N1cnJlbnRJdGVtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMubGlzdEl0ZW1zLnRvQXJyYXkoKVt0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xuICAgICAgICBpZiAoY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIGN1cnJlbnRJdGVtLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __awaiter, __param, __rest } from 'tslib';
2
- import { EventEmitter, Input, Output, Component, ContentChildren, ViewChild, HostListener, forwardRef, NgModule, ɵɵdefineInjectable, Injectable, ElementRef, ApplicationRef, ComponentFactoryResolver, Injector, Directive, KeyValueDiffers, HostBinding, Renderer2, TemplateRef, InjectionToken, Inject, ViewEncapsulation, ViewContainerRef, ChangeDetectorRef, Pipe, ɵɵinject, Optional, ContentChild } from '@angular/core';
2
+ import { EventEmitter, Input, Output, Component, ContentChildren, ViewChild, HostListener, forwardRef, NgModule, ɵɵdefineInjectable, Injectable, ElementRef, ApplicationRef, ComponentFactoryResolver, Injector, Directive, KeyValueDiffers, HostBinding, Renderer2, TemplateRef, InjectionToken, Inject, ViewEncapsulation, ViewContainerRef, ChangeDetectorRef, Pipe, ɵɵinject, Optional, ContentChild, ViewChildren } from '@angular/core';
3
3
  import { trigger, transition, style as style$7, animate, state, group, query, animateChild } from '@angular/animations';
4
4
  import { Subject, of, from, ReplaySubject, throwError, forkJoin } from 'rxjs';
5
5
  import { takeUntil, tap, map, switchMap, catchError, first, filter, take, delay, debounceTime, repeat, finalize } from 'rxjs/operators';
@@ -16074,18 +16074,30 @@ class TimelineItem {
16074
16074
  }
16075
16075
 
16076
16076
  let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
16077
- constructor(eRef) {
16077
+ constructor(eRef, changeDetectorRef) {
16078
16078
  this.eRef = eRef;
16079
+ this.changeDetectorRef = changeDetectorRef;
16079
16080
  this.footerButtonLabel = "Adicionar";
16080
16081
  this.showFooterButton = true;
16081
16082
  this.disabled = false;
16082
16083
  this.footerButtonClicked = new EventEmitter();
16083
16084
  this.selected = new EventEmitter();
16084
- this.open = false;
16085
+ this.height = 0;
16085
16086
  this.selectedItemIndex = 0;
16086
16087
  this.currentItemIndex = 0;
16088
+ this._open = false;
16087
16089
  this.tabindex = 0;
16088
16090
  }
16091
+ get open() {
16092
+ return this._open;
16093
+ }
16094
+ set open(open) {
16095
+ this._open = open;
16096
+ this.changeDetectorRef.detectChanges();
16097
+ if (open) {
16098
+ this._calculateListMaxHeight();
16099
+ }
16100
+ }
16089
16101
  onClickout(event) {
16090
16102
  if (!this.eRef.nativeElement.contains(event.target)) {
16091
16103
  this.open = false;
@@ -16109,11 +16121,13 @@ let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
16109
16121
  else if (event.key === "ArrowDown") {
16110
16122
  if (this.currentItemIndex < this.workspaces.length - 1) {
16111
16123
  this.currentItemIndex++;
16124
+ this._scrollToCurrentItem();
16112
16125
  }
16113
16126
  }
16114
16127
  else if (event.key === "ArrowUp") {
16115
16128
  if (this.currentItemIndex > 0) {
16116
16129
  this.currentItemIndex--;
16130
+ this._scrollToCurrentItem();
16117
16131
  }
16118
16132
  }
16119
16133
  }
@@ -16144,9 +16158,22 @@ let WorkspaceSwitchComponent = class WorkspaceSwitchComponent {
16144
16158
  this.open = false;
16145
16159
  this.footerButtonClicked.emit();
16146
16160
  }
16161
+ _calculateListMaxHeight() {
16162
+ const workspaceListRef = this.eRef.nativeElement.querySelector("#workspace-list");
16163
+ const { top } = workspaceListRef.getBoundingClientRect();
16164
+ this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);
16165
+ this.changeDetectorRef.detectChanges();
16166
+ }
16167
+ _scrollToCurrentItem() {
16168
+ const currentItem = this.listItems.toArray()[this.currentItemIndex];
16169
+ if (currentItem) {
16170
+ currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
16171
+ }
16172
+ }
16147
16173
  };
16148
16174
  WorkspaceSwitchComponent.ctorParameters = () => [
16149
- { type: ElementRef }
16175
+ { type: ElementRef },
16176
+ { type: ChangeDetectorRef }
16150
16177
  ];
16151
16178
  __decorate([
16152
16179
  Input()
@@ -16166,6 +16193,9 @@ __decorate([
16166
16193
  __decorate([
16167
16194
  Output()
16168
16195
  ], WorkspaceSwitchComponent.prototype, "selected", void 0);
16196
+ __decorate([
16197
+ ViewChildren('listItem')
16198
+ ], WorkspaceSwitchComponent.prototype, "listItems", void 0);
16169
16199
  __decorate([
16170
16200
  HostBinding("attr.tabindex")
16171
16201
  ], WorkspaceSwitchComponent.prototype, "tabindex", void 0);
@@ -16178,8 +16208,8 @@ __decorate([
16178
16208
  WorkspaceSwitchComponent = __decorate([
16179
16209
  Component({
16180
16210
  selector: "s-workspace-switch",
16181
- template: "<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\">\n <div class=\"button\" (click)=\"open = !open\">\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div *ngIf=\"!disabled && open\" class=\"select\">\n <div\n *ngFor=\"let workspace of workspaces; let i = index\"\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i == currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled\n }\"\n (click)=\"onSelectItem(workspace)\">\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n <span *ngIf=\"i === selectedItemIndex\" class=\"active-icon fas fa-check\"></span>\n </div>\n <div *ngIf=\"showFooterButton\" class=\"footer\">\n <div class=\"footer__button\" (click)=\"onFooterButtonClick()\">\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>",
16182
- styles: [".workspace-switch{border-radius:4px;border:1px solid transparent;width:324px}.workspace-switch .button{-ms-flex-align:center;align-items:center;background-color:#fff;border:none;border-radius:3px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.workspace-switch .button .icons{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;margin:0 12px}.workspace-switch .select{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;margin:20px 0;padding-top:4px;position:absolute;width:324px}.workspace-switch .select .workspace{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none}.workspace-switch .select .workspace .active-icon{color:#7892a1;font-size:12px;margin:0 12px}.workspace-switch .select .workspace--focused{background-color:#f1f7f8}.workspace-switch .select .workspace--disabled .item .subtitle,.workspace-switch .select .workspace--disabled .item .title{color:#c1c1cc}.workspace-switch .select .workspace:hover:not(.workspace--disabled){background-color:#f1f7f8}.workspace-switch .select .footer{border-top:1px solid #ccc;padding:12px}.workspace-switch .select .footer .footer__button{-ms-flex-align:center;align-items:center;border:1px solid #d8d8d8;border-radius:4px;padding:8px 12px;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.workspace-switch .select .footer .footer__button .footer__button__icon{color:#333;margin-right:8px}.workspace-switch .select .footer .footer__button:active{border:1px solid #428bca}.workspace-switch .item{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding:12px}.workspace-switch .item .title{color:#333;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:700;line-height:150%;text-transform:uppercase}.workspace-switch .item .subtitle{color:#999;font-family:\"Open Sans\",sans-serif;font-size:12px;font-weight:400;line-height:150%}.workspace-switch:focus{border:1px solid #428bca}.workspace-switch--disabled .button{cursor:default}.workspace-switch--disabled .button .icons,.workspace-switch--disabled .item .subtitle,.workspace-switch--disabled .item .title{color:#ccc}"]
16211
+ template: "<div\n class=\"workspace-switch\"\n [ngClass]=\"{ 'workspace-switch--disabled': disabled }\"\n (blur)=\"buttonOnBlur()\">\n <div class=\"button\" (click)=\"open = !open\">\n <div class=\"item\">\n <span class=\"title\">{{ workspaces[selectedItemIndex].title }}</span>\n <span class=\"subtitle\">{{ workspaces[selectedItemIndex].subtitle }}</span>\n </div>\n <div class=\"icons\">\n <span class=\"fas fa-chevron-up\"></span>\n <span class=\"fas fa-chevron-down\"></span>\n </div>\n </div>\n <div *ngIf=\"!disabled && open\" class=\"drop-panel\">\n <ul\n id=\"workspace-list\"\n class=\"workspace-list\"\n [ngStyle]=\"{ 'max-height': height + 'px' }\">\n <li\n #listItem\n *ngFor=\"let workspace of workspaces; let i = index\"\n class=\"workspace\"\n [ngClass]=\"{\n 'workspace--focused': i == currentItemIndex && !workspace.disabled,\n 'workspace--disabled': workspace.disabled\n }\"\n (click)=\"onSelectItem(workspace)\">\n <div class=\"item\">\n <span class=\"title\">{{ workspace.title }}</span>\n <span class=\"subtitle\">{{ workspace.subtitle }}</span>\n </div>\n <span *ngIf=\"i === selectedItemIndex\" class=\"active-icon fas fa-check\"></span>\n </li>\n </ul>\n <div *ngIf=\"showFooterButton\" class=\"footer\">\n <div class=\"footer__button\" (click)=\"onFooterButtonClick()\">\n <span class=\"footer__button__icon fas fa-plus\"></span>\n <span class=\"footer__button__title\">{{ footerButtonLabel }}</span>\n </div>\n </div>\n </div>\n</div>",
16212
+ styles: [".workspace-switch{border-radius:4px;border:1px solid transparent;width:324px}.workspace-switch .button{-ms-flex-align:center;align-items:center;background-color:#fff;border:none;border-radius:3px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}.workspace-switch .button .icons{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;margin:0 12px}.workspace-switch .drop-panel{background-color:#fff;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;margin:20px 0;padding-top:4px;position:absolute;width:324px}.workspace-switch .drop-panel .workspace-list{list-style:none;overflow:auto;padding:0}.workspace-switch .drop-panel .workspace-list .workspace{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-webkit-user-select:none;-ms-user-select:none;user-select:none}.workspace-switch .drop-panel .workspace-list .workspace .active-icon{color:#7892a1;font-size:12px;margin:0 12px}.workspace-switch .drop-panel .workspace-list .workspace--focused{background-color:#f1f7f8}.workspace-switch .drop-panel .workspace-list .workspace--disabled .item .subtitle,.workspace-switch .drop-panel .workspace-list .workspace--disabled .item .title{color:#c1c1cc}.workspace-switch .drop-panel .workspace-list .workspace:hover:not(.workspace--disabled){background-color:#f1f7f8}.workspace-switch .drop-panel .footer{border-top:1px solid #ccc;padding:12px}.workspace-switch .drop-panel .footer .footer__button{-ms-flex-align:center;align-items:center;border:1px solid #d8d8d8;border-radius:4px;padding:8px 12px;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.workspace-switch .drop-panel .footer .footer__button .footer__button__icon{color:#333;margin-right:8px}.workspace-switch .drop-panel .footer .footer__button:active{border:1px solid #428bca}.workspace-switch .item{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;padding:12px}.workspace-switch .item .title{color:#333;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:700;line-height:150%;text-transform:uppercase}.workspace-switch .item .subtitle{color:#999;font-family:\"Open Sans\",sans-serif;font-size:12px;font-weight:400;line-height:150%}.workspace-switch:focus{border:1px solid #428bca}.workspace-switch--disabled .button{cursor:default}.workspace-switch--disabled .button .icons,.workspace-switch--disabled .item .subtitle,.workspace-switch--disabled .item .title{color:#ccc}"]
16183
16213
  })
16184
16214
  ], WorkspaceSwitchComponent);
16185
16215