@cuby-ui/core 0.0.368 → 0.0.370

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,21 +1,41 @@
1
- import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, input } from '@angular/core';
2
+ import { CUI_WINDOW } from "@cuby-ui/cdk";
3
+ import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
2
4
  import { CuiLetterBoxComponent } from '../../../components/letter-box/letter-box.component';
3
5
  import { CuiSvgModule } from "../../../components/svg/svg.module";
6
+ import { CuiAuthService } from "../../../providers";
7
+ import { CUI_ACTIVITY_SERVICE_TOKEN } from "../user-action-context.option";
4
8
  import * as i0 from "@angular/core";
5
9
  import * as i1 from "../../../components/svg/svg.component";
6
10
  export class CuiActivityItemComponent {
7
11
  constructor() {
8
- this.isSelected = computed(() => this.activity().activityId === this.currentActivityId());
9
- this.currentActivityId = input.required();
12
+ this.cuiWindow = inject(CUI_WINDOW);
13
+ this.destroy = inject(DestroyRef);
14
+ this.cuiAuthService = inject(CuiAuthService);
15
+ this.cuiActivityService = inject(CUI_ACTIVITY_SERVICE_TOKEN);
16
+ this.isSelected = computed(() => this.cuiActivityService.checkIsCurrentActivity(this.activity().activityId));
10
17
  this.activity = input.required();
18
+ this.companyId = input.required();
19
+ }
20
+ onGoToActivity() {
21
+ if (this.isSelected()) {
22
+ return;
23
+ }
24
+ this.cuiAuthService.exchangeToken({
25
+ type: "EXCHANGE_CONTEXT_ACTIVITY" /* CuiTokenExchangeType.Activity */,
26
+ activityId: this.activity().activityId,
27
+ companyId: this.companyId()
28
+ }).pipe(takeUntilDestroyed(this.destroy)).subscribe(() => {
29
+ this.cuiWindow.location.reload();
30
+ });
11
31
  }
12
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiActivityItemComponent, isStandalone: true, selector: "cui-activity-item", inputs: { currentActivityId: { classPropertyName: "currentActivityId", publicName: "currentActivityId", isSignal: true, isRequired: true, transformFunction: null }, activity: { classPropertyName: "activity", publicName: "activity", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.selected": "isSelected()" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <button type=\"button\" class=\"activity-button title-text\">\n\n <div>\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n {{activity().description}}\n </div>\n\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiActivityItemComponent, isStandalone: true, selector: "cui-activity-item", inputs: { activity: { classPropertyName: "activity", publicName: "activity", isSignal: true, isRequired: true, transformFunction: null }, companyId: { classPropertyName: "companyId", publicName: "companyId", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.selected": "isSelected()" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <button\n type=\"button\"\n class=\"activity-button\"\n (click)=\"onGoToActivity()\">\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n <span>{{activity().description}}</span>\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
34
  }
15
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityItemComponent, decorators: [{
16
36
  type: Component,
17
37
  args: [{ selector: 'cui-activity-item', standalone: true, imports: [CuiLetterBoxComponent, CuiSvgModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
18
38
  '[class.selected]': 'isSelected()'
19
- }, template: "<div class=\"wrapper\">\n <button type=\"button\" class=\"activity-button title-text\">\n\n <div>\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n {{activity().description}}\n </div>\n\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"] }]
39
+ }, template: "<div class=\"wrapper\">\n <button\n type=\"button\"\n class=\"activity-button\"\n (click)=\"onGoToActivity()\">\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n <span>{{activity().description}}</span>\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"] }]
20
40
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXNlci1hY3Rpb24tY29udGV4dC1tZW51L2FjdGl2aXR5LWl0ZW0vYWN0aXZpdHktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXNlci1hY3Rpb24tY29udGV4dC1tZW51L2FjdGl2aXR5LWl0ZW0vYWN0aXZpdHktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFhbEUsTUFBTSxPQUFPLHdCQUF3QjtJQVhyQztRQVlvQixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUVyRixzQkFBaUIsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDN0MsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7S0FDdkU7K0dBTFksd0JBQXdCO21HQUF4Qix3QkFBd0IsZ2JDakJyQyxrZ0JBbUJBLCtURFZjLHFCQUFxQixrSEFBRSxZQUFZOzs0RkFRcEMsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0Ysa0JBQWtCLEVBQUUsY0FBYztxQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEN1aVVzZXJDb21wYW55QWN0aXZpdHkgfSBmcm9tIFwiQGN1YnktdWkvYXBpXCI7XG5cbmltcG9ydCB7IEN1aUxldHRlckJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvbGV0dGVyLWJveC9sZXR0ZXItYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdWlTdmdNb2R1bGUgfSBmcm9tIFwiLi4vLi4vLi4vY29tcG9uZW50cy9zdmcvc3ZnLm1vZHVsZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1hY3Rpdml0eS1pdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDdWlMZXR0ZXJCb3hDb21wb25lbnQsIEN1aVN2Z01vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9hY3Rpdml0eS1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Muc2VsZWN0ZWRdJzogJ2lzU2VsZWN0ZWQoKSdcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDdWlBY3Rpdml0eUl0ZW1Db21wb25lbnQge1xuICAgIHB1YmxpYyByZWFkb25seSBpc1NlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY3Rpdml0eSgpLmFjdGl2aXR5SWQgPT09IHRoaXMuY3VycmVudEFjdGl2aXR5SWQoKSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudEFjdGl2aXR5SWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5ID0gaW5wdXQucmVxdWlyZWQ8Q3VpVXNlckNvbXBhbnlBY3Rpdml0eT4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhY3Rpdml0eS1idXR0b24gdGl0bGUtdGV4dFwiPlxuXG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxjdWktbGV0dGVyLWJveFxuICAgICAgICAgICAgICAgICAgICBbbGV0dGVyXT1cImFjdGl2aXR5KCkuZGVzY3JpcHRpb25bMF1cIlxuICAgICAgICAgICAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCIgLz5cbiAgICAgICAgICAgICAgICB7e2FjdGl2aXR5KCkuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICA8L2J1dHRvbj5cblxuICAgIEBpZihpc1NlbGVjdGVkKCkpe1xuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICA8Y3VpLXN2ZyBbaWNvbl09XCInY3VpSWNvbkNoZWNrJ1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXNlci1hY3Rpb24tY29udGV4dC1tZW51L2FjdGl2aXR5LWl0ZW0vYWN0aXZpdHktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXNlci1hY3Rpb24tY29udGV4dC1tZW51L2FjdGl2aXR5LWl0ZW0vYWN0aXZpdHktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFdEgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7QUFhekUsTUFBTSxPQUFPLHdCQUF3QjtJQVhyQztRQVlxQixjQUFTLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLFlBQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFdEQsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFFMUcsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7UUFDcEQsY0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztLQWdCeEQ7SUFkYSxjQUFjO1FBQ3BCLElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFDLENBQUM7WUFFbEIsT0FBTTtRQUNWLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztZQUM5QixJQUFJLGlFQUErQjtZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVU7WUFDdEMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7U0FDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzsrR0F4QlEsd0JBQXdCO21HQUF4Qix3QkFBd0Isd1pDckJyQyxpaEJBa0JBLCtURExjLHFCQUFxQixrSEFBRSxZQUFZOzs0RkFRcEMsd0JBQXdCO2tCQVhwQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0Ysa0JBQWtCLEVBQUUsY0FBYztxQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBEZXN0cm95UmVmLCBpbmplY3QsIGlucHV0LCBPbkluaXQsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0N1aVRva2VuRXhjaGFuZ2VUeXBlLCBDdWlVc2VyQ29tcGFueUFjdGl2aXR5fSBmcm9tIFwiQGN1YnktdWkvYXBpXCI7XG5pbXBvcnQge0NVSV9XSU5ET1d9IGZyb20gXCJAY3VieS11aS9jZGtcIjtcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcblxuaW1wb3J0IHtDdWlMZXR0ZXJCb3hDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvbGV0dGVyLWJveC9sZXR0ZXItYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0N1aVN2Z01vZHVsZX0gZnJvbSBcIi4uLy4uLy4uL2NvbXBvbmVudHMvc3ZnL3N2Zy5tb2R1bGVcIjtcbmltcG9ydCB7Q3VpQXV0aFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9wcm92aWRlcnNcIjtcbmltcG9ydCB7Q1VJX0FDVElWSVRZX1NFUlZJQ0VfVE9LRU59IGZyb20gXCIuLi91c2VyLWFjdGlvbi1jb250ZXh0Lm9wdGlvblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1hY3Rpdml0eS1pdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDdWlMZXR0ZXJCb3hDb21wb25lbnQsIEN1aVN2Z01vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9hY3Rpdml0eS1pdGVtLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Muc2VsZWN0ZWRdJzogJ2lzU2VsZWN0ZWQoKSdcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDdWlBY3Rpdml0eUl0ZW1Db21wb25lbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpV2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUF1dGhTZXJ2aWNlID0gaW5qZWN0KEN1aUF1dGhTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFjdGl2aXR5U2VydmljZSA9IGluamVjdChDVUlfQUNUSVZJVFlfU0VSVklDRV9UT0tFTik7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VpQWN0aXZpdHlTZXJ2aWNlLmNoZWNrSXNDdXJyZW50QWN0aXZpdHkodGhpcy5hY3Rpdml0eSgpLmFjdGl2aXR5SWQpKVxuXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2aXR5ID0gaW5wdXQucmVxdWlyZWQ8Q3VpVXNlckNvbXBhbnlBY3Rpdml0eT4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcGFueUlkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gICAgcHJvdGVjdGVkIG9uR29Ub0FjdGl2aXR5KCk6IHZvaWQge1xuICAgICAgICBpZih0aGlzLmlzU2VsZWN0ZWQoKSl7XG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdWlBdXRoU2VydmljZS5leGNoYW5nZVRva2VuKHtcbiAgICAgICAgICAgIHR5cGU6IEN1aVRva2VuRXhjaGFuZ2VUeXBlLkFjdGl2aXR5LFxuICAgICAgICAgICAgYWN0aXZpdHlJZDogdGhpcy5hY3Rpdml0eSgpLmFjdGl2aXR5SWQsXG4gICAgICAgICAgICBjb21wYW55SWQ6IHRoaXMuY29tcGFueUlkKClcbiAgICAgICAgfSkucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VpV2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9KVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhY3Rpdml0eS1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib25Hb1RvQWN0aXZpdHkoKVwiPlxuICAgICAgICAgICAgICAgIDxjdWktbGV0dGVyLWJveFxuICAgICAgICAgICAgICAgICAgICBbbGV0dGVyXT1cImFjdGl2aXR5KCkuZGVzY3JpcHRpb25bMF1cIlxuICAgICAgICAgICAgICAgICAgICBbc2hhcGVdPVwiJ3JvdW5kZWQnXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCIgLz5cbiAgICAgICAgICAgICAgICA8c3Bhbj57e2FjdGl2aXR5KCkuZGVzY3JpcHRpb259fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIEBpZihpc1NlbGVjdGVkKCkpe1xuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICA8Y3VpLXN2ZyBbaWNvbl09XCInY3VpSWNvbkNoZWNrJ1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
@@ -1,11 +1,15 @@
1
1
  import { inject, Injectable, signal } from '@angular/core';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { UserCompanyApiService } from '@cuby-ui/api';
4
+ import { CuiAuthService } from "../../../providers";
4
5
  import * as i0 from "@angular/core";
5
6
  export class CuiActivityImplService {
6
7
  constructor() {
8
+ this.cuiAuthService = inject(CuiAuthService);
7
9
  this.userCompanyApiService = inject(UserCompanyApiService);
8
10
  this.companiesSignal = signal([]);
11
+ this.authData = this.cuiAuthService.getAccessTokenData();
12
+ this.currentActivityId = this.authData.employee_session.activityId;
9
13
  this.companies = this.companiesSignal.asReadonly();
10
14
  }
11
15
  initActivityData() {
@@ -13,8 +17,8 @@ export class CuiActivityImplService {
13
17
  .pipe(takeUntilDestroyed())
14
18
  .subscribe((response) => this.companiesSignal.set(response));
15
19
  }
16
- checkIsCurrentActivity() {
17
- // TODO: Implement check current activity (for administration and other projects are different)
20
+ checkIsCurrentActivity(activityId) {
21
+ return this.currentActivityId === activityId;
18
22
  }
19
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
24
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityImplService, providedIn: 'any' }); }
@@ -25,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
25
29
  providedIn: 'any'
26
30
  }]
27
31
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91c2VyLWFjdGlvbi1jb250ZXh0LW1lbnUvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU9yRCxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBSXFCLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELG9CQUFlLEdBQUcsTUFBTSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQUVoRCxjQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQVdqRTtJQVRVLGdCQUFnQjtRQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFO2FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sc0JBQXNCO1FBQ3pCLCtGQUErRjtJQUNuRyxDQUFDOytHQWZRLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRm5CLEtBQUs7OzRGQUVSLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsS0FBSztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aVVzZXJDb21wYW55IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IFVzZXJDb21wYW55QXBpU2VydmljZSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5cbmltcG9ydCB0eXBlIHsgQ3VpQWN0aXZpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1hY3Rpb24tY29udGV4dC5vcHRpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ2FueSdcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQWN0aXZpdHlJbXBsU2VydmljZSBpbXBsZW1lbnRzIEN1aUFjdGl2aXR5U2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQ29tcGFueUFwaVNlcnZpY2UgPSBpbmplY3QoVXNlckNvbXBhbnlBcGlTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcGFuaWVzU2lnbmFsID0gc2lnbmFsPEN1aVVzZXJDb21wYW55W10+KFtdKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBjb21wYW5pZXMgPSB0aGlzLmNvbXBhbmllc1NpZ25hbC5hc1JlYWRvbmx5KCk7XG5cbiAgICBwdWJsaWMgaW5pdEFjdGl2aXR5RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyQ29tcGFueUFwaVNlcnZpY2UuZ2V0TXlDb21wYW5pZXMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4gdGhpcy5jb21wYW5pZXNTaWduYWwuc2V0KHJlc3BvbnNlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrSXNDdXJyZW50QWN0aXZpdHkoKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjaGVjayBjdXJyZW50IGFjdGl2aXR5IChmb3IgYWRtaW5pc3RyYXRpb24gYW5kIG90aGVyIHByb2plY3RzIGFyZSBkaWZmZXJlbnQpXG4gICAgfVxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91c2VyLWFjdGlvbi1jb250ZXh0LW1lbnUvc2VydmljZXMvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3JELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7QUFNbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlxQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QywwQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUV0RCxvQkFBZSxHQUFHLE1BQU0sQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFFL0MsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQTJCLENBQUM7UUFDN0Usc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7UUFFL0QsY0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7S0FXakU7SUFUVSxnQkFBZ0I7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRTthQUN0QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVNLHNCQUFzQixDQUFDLFVBQWtCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLFVBQVUsQ0FBQTtJQUNoRCxDQUFDOytHQW5CUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixLQUFLOzs0RkFFUixzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuaW1wb3J0IHR5cGUgeyBDdWlVc2VyQ29tcGFueSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5pbXBvcnQgeyBVc2VyQ29tcGFueUFwaVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgdHlwZSB7IEN1aUFjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uL3VzZXItYWN0aW9uLWNvbnRleHQub3B0aW9uJztcbmltcG9ydCB7Q3VpQXV0aFNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9wcm92aWRlcnNcIjtcbmltcG9ydCB0eXBlIHtDdWlFeGNoYW5nZVRva2VuU2Vzc2lvbn0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAnYW55J1xufSlcbmV4cG9ydCBjbGFzcyBDdWlBY3Rpdml0eUltcGxTZXJ2aWNlIGltcGxlbWVudHMgQ3VpQWN0aXZpdHlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUF1dGhTZXJ2aWNlID0gaW5qZWN0KEN1aUF1dGhTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJDb21wYW55QXBpU2VydmljZSA9IGluamVjdChVc2VyQ29tcGFueUFwaVNlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wYW5pZXNTaWduYWwgPSBzaWduYWw8Q3VpVXNlckNvbXBhbnlbXT4oW10pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoRGF0YSA9IHRoaXMuY3VpQXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW5EYXRhPEN1aUV4Y2hhbmdlVG9rZW5TZXNzaW9uPigpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudEFjdGl2aXR5SWQgPSB0aGlzLmF1dGhEYXRhLmVtcGxveWVlX3Nlc3Npb24uYWN0aXZpdHlJZDtcblxuICAgIHB1YmxpYyByZWFkb25seSBjb21wYW5pZXMgPSB0aGlzLmNvbXBhbmllc1NpZ25hbC5hc1JlYWRvbmx5KCk7XG5cbiAgICBwdWJsaWMgaW5pdEFjdGl2aXR5RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyQ29tcGFueUFwaVNlcnZpY2UuZ2V0TXlDb21wYW5pZXMoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4gdGhpcy5jb21wYW5pZXNTaWduYWwuc2V0KHJlc3BvbnNlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrSXNDdXJyZW50QWN0aXZpdHkoYWN0aXZpdHlJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRBY3Rpdml0eUlkID09PSBhY3Rpdml0eUlkXG4gICAgfVxufVxuIl19
@@ -17,8 +17,8 @@ export class CuiUserActionContextMenuComponent {
17
17
  this.authData = this.cuiAuthService.getAccessTokenData();
18
18
  this.langs = this.translocoService.getAvailableLangs();
19
19
  this.email = this.authData.email;
20
- this.fullName = `${this.authData.name} ${this.authData.name}`;
21
- this.activityId = this.authData.employee_session.activityId;
20
+ this.fullName = this.authData.name;
21
+ this.companyId = this.authData.employee_session.companyId;
22
22
  this.theme$ = this.cuiThemeService.asObservable();
23
23
  this.lang$ = this.translocoService.langChanges$;
24
24
  this.isOpen = signal(false);
@@ -26,7 +26,7 @@ export class CuiUserActionContextMenuComponent {
26
26
  this.cuiActivityService.initActivityData();
27
27
  }
28
28
  onLogout() {
29
- // TODO: logout logic from administration
29
+ this.cuiAuthService.logOut();
30
30
  }
31
31
  onToggleOpenState(open) {
32
32
  this.isOpen.set(open);
@@ -42,7 +42,7 @@ export class CuiUserActionContextMenuComponent {
42
42
  this.translocoService.setActiveLang(lang.label);
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUserActionContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiUserActionContextMenuComponent, isStandalone: true, selector: "cui-user-action-context-menu", ngImport: i0, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <!-- TODO: invalid button -->\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n test\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [currentActivityId]=\"activityId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: CuiActivityItemComponent, selector: "cui-activity-item", inputs: ["currentActivityId", "activity"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiUserActionContextMenuComponent, isStandalone: true, selector: "cui-user-action-context-menu", ngImport: i0, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n <ng-content/>\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [companyId]=\"companyId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: CuiActivityItemComponent, selector: "cui-activity-item", inputs: ["activity", "companyId"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUserActionContextMenuComponent, decorators: [{
48
48
  type: Component,
@@ -56,6 +56,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
56
56
  CuiContextMenuModule,
57
57
  CuiActivityItemComponent,
58
58
  AsyncPipe
59
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <!-- TODO: invalid button -->\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n test\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [currentActivityId]=\"activityId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"] }]
59
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n <ng-content/>\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [companyId]=\"companyId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"] }]
60
60
  }], ctorParameters: () => [] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91c2VyLWFjdGlvbi1jb250ZXh0LW1lbnUvdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91c2VyLWFjdGlvbi1jb250ZXh0LW1lbnUvdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFGLE9BQU8sRUFDSCxlQUFlLEVBQUUsb0JBQW9CLEVBQ3JDLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLFlBQVksRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQW9CakQsTUFBTSxPQUFPLGlDQUFpQztJQW1CMUM7UUFsQmlCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXhELGFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUEyQixDQUFDO1FBRTNFLFVBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsRCxVQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6RCxlQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7UUFFdkQsV0FBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0MsVUFBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFFM0MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztRQUc3RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRVMsUUFBUTtRQUNkLHlDQUF5QztJQUM3QyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsSUFBYTtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRVMsYUFBYSxDQUFDLEtBQWU7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUE2QjtRQUNoRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFMUMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQTNDUSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyx3RkNuQzlDLHd4S0FpSEEsc3ZDRDVGUSxrQkFBa0IsK0xBQ2xCLFlBQVksd0tBQ1osb0JBQW9CLG9KQUNwQiwyQkFBMkIsNkZBQzNCLHFCQUFxQixrSEFDckIsZUFBZSw4QkFDZixvQkFBb0IsK0JBQ3BCLHdCQUF3QixvR0FDeEIsU0FBUzs7NEZBTUosaUNBQWlDO2tCQWxCN0MsU0FBUzsrQkFDSSw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQO3dCQUNMLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixTQUFTO3FCQUNaLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5nRGVmaW5pdGlvbiwgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHtcbiAgICBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgIEN1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIEN1aURyb3Bkb3duV3JhcHBlckNvbXBvbmVudCxcbiAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgQ3VpU3ZnTW9kdWxlXG59IGZyb20gXCIuLi8uLi9jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEN1aUV4Y2hhbmdlVG9rZW5TZXNzaW9uLCBDdWlUaGVtZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEN1aVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEN1aUFjdGl2aXR5SXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2FjdGl2aXR5LWl0ZW1cIjtcbmltcG9ydCB7IENVSV9BQ1RJVklUWV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi91c2VyLWFjdGlvbi1jb250ZXh0Lm9wdGlvbic7XG5pbXBvcnQgeyBDdWlBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLXVzZXItYWN0aW9uLWNvbnRleHQtbWVudScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQ3VpRHJvcGRvd25XcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ3VpQ29udGV4dE1lbnVNb2R1bGUsXG4gICAgICAgIEN1aUFjdGl2aXR5SXRlbUNvbXBvbmVudCxcbiAgICAgICAgQXN5bmNQaXBlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ3VpVXNlckFjdGlvbkNvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlUaGVtZVNlcnZpY2UgPSBpbmplY3QoQ3VpVGhlbWVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUF1dGhTZXJ2aWNlID0gaW5qZWN0KEN1aUF1dGhTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFjdGl2aXR5U2VydmljZSA9IGluamVjdChDVUlfQUNUSVZJVFlfU0VSVklDRV9UT0tFTik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhEYXRhID0gdGhpcy5jdWlBdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbkRhdGE8Q3VpRXhjaGFuZ2VUb2tlblNlc3Npb24+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFuZ3MgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QXZhaWxhYmxlTGFuZ3MoKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1haWwgPSB0aGlzLmF1dGhEYXRhLmVtYWlsO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmdWxsTmFtZSA9IGAke3RoaXMuYXV0aERhdGEubmFtZX0gJHt0aGlzLmF1dGhEYXRhLm5hbWV9YDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZpdHlJZCA9IHRoaXMuYXV0aERhdGEuZW1wbG95ZWVfc2Vzc2lvbi5hY3Rpdml0eUlkO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY3VpVGhlbWVTZXJ2aWNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsYW5nJCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5sYW5nQ2hhbmdlcyQ7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcGFuaWVzID0gdGhpcy5jdWlBY3Rpdml0eVNlcnZpY2UuY29tcGFuaWVzO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY3VpQWN0aXZpdHlTZXJ2aWNlLmluaXRBY3Rpdml0eURhdGEoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Mb2dvdXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE86IGxvZ291dCBsb2dpYyBmcm9tIGFkbWluaXN0cmF0aW9uXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVG9nZ2xlT3BlblN0YXRlKG9wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc09wZW4uc2V0KG9wZW4pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZVRoZW1lKHRoZW1lOiBDdWlUaGVtZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1aVRoZW1lU2VydmljZS5uZXh0KHRoZW1lKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2VMYW5nKGxhbmc6IHN0cmluZyB8IExhbmdEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgbGFuZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNsb2NvU2VydmljZS5zZXRBY3RpdmVMYW5nKGxhbmcpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRyYW5zbG9jb1NlcnZpY2Uuc2V0QWN0aXZlTGFuZyhsYW5nLmxhYmVsKTtcbiAgICB9XG59XG4iLCJAbGV0IGN1cnJlbnRUaGVtZSA9IHRoZW1lJCB8IGFzeW5jO1xuQGxldCBjdXJyZW50TGFuZyA9IGxhbmckIHwgYXN5bmM7XG5cbjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgPCEtLSBUT0RPOiBpbnZhbGlkIGJ1dHRvbiAtLT5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbY3VpRHJvcGRvd25dPVwiY29udGVudFwiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0XCJcbiAgICAgICAgKGlzT3BlbmVkKT1cIm9uVG9nZ2xlT3BlblN0YXRlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgdGVzdFxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICBAaWYgKGlzT3BlbigpKSB7XG4gICAgICAgICAgICA8Y3VpLWRyb3Bkb3duLXdyYXBwZXIgd2lkdGg9XCIzMDBweFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2Ryb3Bkb3duQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid3JhcHBlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLWxldHRlci1ib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xldHRlcl09XCJmdWxsTmFtZVswXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidGl0bGUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmdWxsTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic3VidGl0bGUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbWFpbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWNvbXBhbnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbXBhbnkgb2YgY29tcGFuaWVzKCk7IHRyYWNrIGNvbXBhbnkuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ0aXRsZS1jb21wYW55XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbXBhbnkubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtYWN0aXZpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aXZpdHkgb2YgY29tcGFueS5jb250ZXh0czsgdHJhY2sgYWN0aXZpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjdWktYWN0aXZpdHktaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpdml0eV09XCJhY3Rpdml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRBY3Rpdml0eUlkXT1cImFjdGl2aXR5SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjdWktc3ZnIGljb249XCJjdWlJY29uUGFsZXR0ZVNtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYW5kLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCB0aGVtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb250YWluZXItc3ViLWJ1dHRvbl9fc2VsZWN0XT1cImN1cnJlbnRUaGVtZSA9PT0gJ2RhcmsnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250YWluZXItc3ViLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25Nb29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoYW5nZVRoZW1lKCdkYXJrJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNvbnRhaW5lci1zdWItYnV0dG9uX19zZWxlY3RdPVwiY3VycmVudFRoZW1lID09PSAnbGlnaHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250YWluZXItc3ViLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25TdW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlVGhlbWUoJ2xpZ2h0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN1aS1zdmcgaWNvbj1cImN1aUljb25HbG9iZVNtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYW5kLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCB0aGVtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsYW5nIG9mIGxhbmdzOyB0cmFjayBsYW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb250YWluZXItc3ViLWJ1dHRvbl9fc2VsZWN0XT1cImN1cnJlbnRMYW5nID09PSBsYW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGFpbmVyLXN1Yi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlTGFuZyhsYW5nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25Mb2dvdXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkxvZ091dFNtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYW5kLXN1Yi1idXR0b25cIj5Mb2cgb3V0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2N1aS1kcm9wZG93bi13cmFwcGVyPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91c2VyLWFjdGlvbi1jb250ZXh0LW1lbnUvdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91c2VyLWFjdGlvbi1jb250ZXh0LW1lbnUvdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFGLE9BQU8sRUFDSCxlQUFlLEVBQUUsb0JBQW9CLEVBQ3JDLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLFlBQVksRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQW9CakQsTUFBTSxPQUFPLGlDQUFpQztJQW1CMUM7UUFsQmlCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXhELGFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUEyQixDQUFDO1FBRTNFLFVBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNsRCxVQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQTtRQUVwRCxXQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QyxVQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQztRQUUzQyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1FBRzdELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFUyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsSUFBYTtRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRVMsYUFBYSxDQUFDLEtBQWU7UUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUE2QjtRQUNoRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFMUMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQTNDUSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyx3RkNuQzlDLHF2S0FnSEEsc3ZDRDNGUSxrQkFBa0IsK0xBQ2xCLFlBQVksd0tBQ1osb0JBQW9CLG9KQUNwQiwyQkFBMkIsNkZBQzNCLHFCQUFxQixrSEFDckIsZUFBZSw4QkFDZixvQkFBb0IsK0JBQ3BCLHdCQUF3Qiw0RkFDeEIsU0FBUzs7NEZBTUosaUNBQWlDO2tCQWxCN0MsU0FBUzsrQkFDSSw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQO3dCQUNMLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixTQUFTO3FCQUNaLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5nRGVmaW5pdGlvbiwgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHtcbiAgICBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgIEN1aURyb3Bkb3duRGlyZWN0aXZlLFxuICAgIEN1aURyb3Bkb3duV3JhcHBlckNvbXBvbmVudCxcbiAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgQ3VpU3ZnTW9kdWxlXG59IGZyb20gXCIuLi8uLi9jb21wb25lbnRzXCI7XG5pbXBvcnQgdHlwZSB7IEN1aUV4Y2hhbmdlVG9rZW5TZXNzaW9uLCBDdWlUaGVtZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEN1aVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEN1aUFjdGl2aXR5SXRlbUNvbXBvbmVudCB9IGZyb20gXCIuL2FjdGl2aXR5LWl0ZW1cIjtcbmltcG9ydCB7IENVSV9BQ1RJVklUWV9TRVJWSUNFX1RPS0VOIH0gZnJvbSAnLi91c2VyLWFjdGlvbi1jb250ZXh0Lm9wdGlvbic7XG5pbXBvcnQgeyBDdWlBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLXVzZXItYWN0aW9uLWNvbnRleHQtbWVudScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcbiAgICAgICAgQ3VpU3ZnTW9kdWxlLFxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQ3VpRHJvcGRvd25XcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlMZXR0ZXJCb3hDb21wb25lbnQsXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ3VpQ29udGV4dE1lbnVNb2R1bGUsXG4gICAgICAgIEN1aUFjdGl2aXR5SXRlbUNvbXBvbmVudCxcbiAgICAgICAgQXN5bmNQaXBlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vdXNlci1hY3Rpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ3VpVXNlckFjdGlvbkNvbnRleHRNZW51Q29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlUaGVtZVNlcnZpY2UgPSBpbmplY3QoQ3VpVGhlbWVTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUF1dGhTZXJ2aWNlID0gaW5qZWN0KEN1aUF1dGhTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFjdGl2aXR5U2VydmljZSA9IGluamVjdChDVUlfQUNUSVZJVFlfU0VSVklDRV9UT0tFTik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dGhEYXRhID0gdGhpcy5jdWlBdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbkRhdGE8Q3VpRXhjaGFuZ2VUb2tlblNlc3Npb24+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFuZ3MgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QXZhaWxhYmxlTGFuZ3MoKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW1haWwgPSB0aGlzLmF1dGhEYXRhLmVtYWlsO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmdWxsTmFtZSA9IHRoaXMuYXV0aERhdGEubmFtZTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcGFueUlkID0gdGhpcy5hdXRoRGF0YS5lbXBsb3llZV9zZXNzaW9uLmNvbXBhbnlJZFxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRoZW1lJCA9IHRoaXMuY3VpVGhlbWVTZXJ2aWNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBsYW5nJCA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5sYW5nQ2hhbmdlcyQ7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcGFuaWVzID0gdGhpcy5jdWlBY3Rpdml0eVNlcnZpY2UuY29tcGFuaWVzO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY3VpQWN0aXZpdHlTZXJ2aWNlLmluaXRBY3Rpdml0eURhdGEoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Mb2dvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VpQXV0aFNlcnZpY2UubG9nT3V0KClcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVPcGVuU3RhdGUob3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQob3Blbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2hhbmdlVGhlbWUodGhlbWU6IEN1aVRoZW1lKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VpVGhlbWVTZXJ2aWNlLm5leHQodGhlbWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoYW5nZUxhbmcobGFuZzogc3RyaW5nIHwgTGFuZ0RlZmluaXRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsYW5nID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy50cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcobGFuZyk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJhbnNsb2NvU2VydmljZS5zZXRBY3RpdmVMYW5nKGxhbmcubGFiZWwpO1xuICAgIH1cbn1cbiIsIkBsZXQgY3VycmVudFRoZW1lID0gdGhlbWUkIHwgYXN5bmM7XG5AbGV0IGN1cnJlbnRMYW5nID0gbGFuZyQgfCBhc3luYztcblxuPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbY3VpRHJvcGRvd25dPVwiY29udGVudFwiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0XCJcbiAgICAgICAgKGlzT3BlbmVkKT1cIm9uVG9nZ2xlT3BlblN0YXRlKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQvPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICBAaWYgKGlzT3BlbigpKSB7XG4gICAgICAgICAgICA8Y3VpLWRyb3Bkb3duLXdyYXBwZXIgd2lkdGg9XCIzMDBweFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgI2Ryb3Bkb3duQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid3JhcHBlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2stbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLWxldHRlci1ib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xldHRlcl09XCJmdWxsTmFtZVswXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCIncm91bmRlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwidGl0bGUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmdWxsTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwic3VidGl0bGUtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbWFpbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWNvbXBhbnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbXBhbnkgb2YgY29tcGFuaWVzKCk7IHRyYWNrIGNvbXBhbnkuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJ0aXRsZS1jb21wYW55XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbXBhbnkubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtYWN0aXZpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aXZpdHkgb2YgY29tcGFueS5jb250ZXh0czsgdHJhY2sgYWN0aXZpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjdWktYWN0aXZpdHktaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpdml0eV09XCJhY3Rpdml0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbXBhbnlJZF09XCJjb21wYW55SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrLWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjdWktc3ZnIGljb249XCJjdWlJY29uUGFsZXR0ZVNtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYW5kLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCB0aGVtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb250YWluZXItc3ViLWJ1dHRvbl9fc2VsZWN0XT1cImN1cnJlbnRUaGVtZSA9PT0gJ2RhcmsnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250YWluZXItc3ViLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25Nb29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoYW5nZVRoZW1lKCdkYXJrJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNvbnRhaW5lci1zdWItYnV0dG9uX19zZWxlY3RdPVwiY3VycmVudFRoZW1lID09PSAnbGlnaHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250YWluZXItc3ViLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25TdW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlVGhlbWUoJ2xpZ2h0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN1aS1zdmcgaWNvbj1cImN1aUljb25HbG9iZVNtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYW5kLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3aXRjaCB0aGVtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXN1Yi1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChsYW5nIG9mIGxhbmdzOyB0cmFjayBsYW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb250YWluZXItc3ViLWJ1dHRvbl9fc2VsZWN0XT1cImN1cnJlbnRMYW5nID09PSBsYW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udGFpbmVyLXN1Yi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hhbmdlTGFuZyhsYW5nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhbmcgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25Mb2dvdXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkxvZ091dFNtXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYW5kLXN1Yi1idXR0b25cIj5Mb2cgb3V0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2N1aS1kcm9wZG93bi13cmFwcGVyPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const CUI_ACTIVITY_SERVICE_TOKEN = new InjectionToken('ACTIVITY_SERVICE_TOKEN');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tY29udGV4dC5vcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXNlci1hY3Rpb24tY29udGV4dC1tZW51L3VzZXItYWN0aW9uLWNvbnRleHQub3B0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHdkQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdWlVc2VyQ29tcGFueSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5cbmV4cG9ydCBjb25zdCBDVUlfQUNUSVZJVFlfU0VSVklDRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDdWlBY3Rpdml0eVNlcnZpY2U+KCdBQ1RJVklUWV9TRVJWSUNFX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQWN0aXZpdHlEYXRhIHtcbiAgICByZWFkb25seSBjb21wYW5pZXM6IFNpZ25hbDxDdWlVc2VyQ29tcGFueVtdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWlBY3Rpdml0eVNlcnZpY2UgZXh0ZW5kcyBDdWlBY3Rpdml0eURhdGEge1xuICAgIGluaXRBY3Rpdml0eURhdGEoKTogdm9pZDtcbiAgICBjaGVja0lzQ3VycmVudEFjdGl2aXR5KCk6IHZvaWQ7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tY29udGV4dC5vcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXNlci1hY3Rpb24tY29udGV4dC1tZW51L3VzZXItYWN0aW9uLWNvbnRleHQub3B0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHdkQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdWlVc2VyQ29tcGFueSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XG5cbmV4cG9ydCBjb25zdCBDVUlfQUNUSVZJVFlfU0VSVklDRV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDdWlBY3Rpdml0eVNlcnZpY2U+KCdBQ1RJVklUWV9TRVJWSUNFX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQWN0aXZpdHlEYXRhIHtcbiAgICByZWFkb25seSBjb21wYW5pZXM6IFNpZ25hbDxDdWlVc2VyQ29tcGFueVtdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWlBY3Rpdml0eVNlcnZpY2UgZXh0ZW5kcyBDdWlBY3Rpdml0eURhdGEge1xuICAgIGluaXRBY3Rpdml0eURhdGEoKTogdm9pZDtcbiAgICBjaGVja0lzQ3VycmVudEFjdGl2aXR5KGFjdGl2aXR5SWQ6IHN0cmluZyk6IGJvb2xlYW47XG59XG4iXX0=
@@ -10325,8 +10325,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
10325
10325
 
10326
10326
  class CuiActivityImplService {
10327
10327
  constructor() {
10328
+ this.cuiAuthService = inject(CuiAuthService);
10328
10329
  this.userCompanyApiService = inject(UserCompanyApiService);
10329
10330
  this.companiesSignal = signal([]);
10331
+ this.authData = this.cuiAuthService.getAccessTokenData();
10332
+ this.currentActivityId = this.authData.employee_session.activityId;
10330
10333
  this.companies = this.companiesSignal.asReadonly();
10331
10334
  }
10332
10335
  initActivityData() {
@@ -10334,8 +10337,8 @@ class CuiActivityImplService {
10334
10337
  .pipe(takeUntilDestroyed())
10335
10338
  .subscribe((response) => this.companiesSignal.set(response));
10336
10339
  }
10337
- checkIsCurrentActivity() {
10338
- // TODO: Implement check current activity (for administration and other projects are different)
10340
+ checkIsCurrentActivity(activityId) {
10341
+ return this.currentActivityId === activityId;
10339
10342
  }
10340
10343
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityImplService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10341
10344
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityImplService, providedIn: 'any' }); }
@@ -10351,18 +10354,34 @@ const CUI_ACTIVITY_SERVICE_TOKEN = new InjectionToken('ACTIVITY_SERVICE_TOKEN');
10351
10354
 
10352
10355
  class CuiActivityItemComponent {
10353
10356
  constructor() {
10354
- this.isSelected = computed(() => this.activity().activityId === this.currentActivityId());
10355
- this.currentActivityId = input.required();
10357
+ this.cuiWindow = inject(CUI_WINDOW);
10358
+ this.destroy = inject(DestroyRef);
10359
+ this.cuiAuthService = inject(CuiAuthService);
10360
+ this.cuiActivityService = inject(CUI_ACTIVITY_SERVICE_TOKEN);
10361
+ this.isSelected = computed(() => this.cuiActivityService.checkIsCurrentActivity(this.activity().activityId));
10356
10362
  this.activity = input.required();
10363
+ this.companyId = input.required();
10364
+ }
10365
+ onGoToActivity() {
10366
+ if (this.isSelected()) {
10367
+ return;
10368
+ }
10369
+ this.cuiAuthService.exchangeToken({
10370
+ type: "EXCHANGE_CONTEXT_ACTIVITY" /* CuiTokenExchangeType.Activity */,
10371
+ activityId: this.activity().activityId,
10372
+ companyId: this.companyId()
10373
+ }).pipe(takeUntilDestroyed(this.destroy)).subscribe(() => {
10374
+ this.cuiWindow.location.reload();
10375
+ });
10357
10376
  }
10358
10377
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10359
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiActivityItemComponent, isStandalone: true, selector: "cui-activity-item", inputs: { currentActivityId: { classPropertyName: "currentActivityId", publicName: "currentActivityId", isSignal: true, isRequired: true, transformFunction: null }, activity: { classPropertyName: "activity", publicName: "activity", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.selected": "isSelected()" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <button type=\"button\" class=\"activity-button title-text\">\n\n <div>\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n {{activity().description}}\n </div>\n\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10378
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiActivityItemComponent, isStandalone: true, selector: "cui-activity-item", inputs: { activity: { classPropertyName: "activity", publicName: "activity", isSignal: true, isRequired: true, transformFunction: null }, companyId: { classPropertyName: "companyId", publicName: "companyId", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.selected": "isSelected()" } }, ngImport: i0, template: "<div class=\"wrapper\">\n <button\n type=\"button\"\n class=\"activity-button\"\n (click)=\"onGoToActivity()\">\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n <span>{{activity().description}}</span>\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"], dependencies: [{ kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10360
10379
  }
10361
10380
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiActivityItemComponent, decorators: [{
10362
10381
  type: Component,
10363
10382
  args: [{ selector: 'cui-activity-item', standalone: true, imports: [CuiLetterBoxComponent, CuiSvgModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
10364
10383
  '[class.selected]': 'isSelected()'
10365
- }, template: "<div class=\"wrapper\">\n <button type=\"button\" class=\"activity-button title-text\">\n\n <div>\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n {{activity().description}}\n </div>\n\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"] }]
10384
+ }, template: "<div class=\"wrapper\">\n <button\n type=\"button\"\n class=\"activity-button\"\n (click)=\"onGoToActivity()\">\n <cui-letter-box\n [letter]=\"activity().description[0]\"\n [shape]=\"'rounded'\"\n size=\"md\" />\n <span>{{activity().description}}</span>\n </button>\n\n @if(isSelected()){\n <div class=\"icon-wrapper\">\n <cui-svg [icon]=\"'cuiIconCheck'\" />\n </div>\n }\n</div>\n", styles: [":host(.selected){background:var(--cui-badge-blue-bg);border-radius:8px}.wrapper{display:flex;justify-content:space-between}.activity-button{height:36px;color:var(--cui-base-900)}.icon-wrapper{display:flex;align-items:center;justify-content:center;padding:8px}\n"] }]
10366
10385
  }] });
10367
10386
 
10368
10387
  class CuiUserActionContextMenuComponent {
@@ -10374,8 +10393,8 @@ class CuiUserActionContextMenuComponent {
10374
10393
  this.authData = this.cuiAuthService.getAccessTokenData();
10375
10394
  this.langs = this.translocoService.getAvailableLangs();
10376
10395
  this.email = this.authData.email;
10377
- this.fullName = `${this.authData.name} ${this.authData.name}`;
10378
- this.activityId = this.authData.employee_session.activityId;
10396
+ this.fullName = this.authData.name;
10397
+ this.companyId = this.authData.employee_session.companyId;
10379
10398
  this.theme$ = this.cuiThemeService.asObservable();
10380
10399
  this.lang$ = this.translocoService.langChanges$;
10381
10400
  this.isOpen = signal(false);
@@ -10383,7 +10402,7 @@ class CuiUserActionContextMenuComponent {
10383
10402
  this.cuiActivityService.initActivityData();
10384
10403
  }
10385
10404
  onLogout() {
10386
- // TODO: logout logic from administration
10405
+ this.cuiAuthService.logOut();
10387
10406
  }
10388
10407
  onToggleOpenState(open) {
10389
10408
  this.isOpen.set(open);
@@ -10399,7 +10418,7 @@ class CuiUserActionContextMenuComponent {
10399
10418
  this.translocoService.setActiveLang(lang.label);
10400
10419
  }
10401
10420
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUserActionContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10402
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiUserActionContextMenuComponent, isStandalone: true, selector: "cui-user-action-context-menu", ngImport: i0, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <!-- TODO: invalid button -->\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n test\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [currentActivityId]=\"activityId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: CuiActivityItemComponent, selector: "cui-activity-item", inputs: ["currentActivityId", "activity"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10421
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiUserActionContextMenuComponent, isStandalone: true, selector: "cui-user-action-context-menu", ngImport: i0, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n <ng-content/>\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [companyId]=\"companyId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiLetterBoxComponent, selector: "cui-letter-box", inputs: ["letter", "backgroundColor", "size", "shape"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: CuiActivityItemComponent, selector: "cui-activity-item", inputs: ["activity", "companyId"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10403
10422
  }
10404
10423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiUserActionContextMenuComponent, decorators: [{
10405
10424
  type: Component,
@@ -10413,7 +10432,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
10413
10432
  CuiContextMenuModule,
10414
10433
  CuiActivityItemComponent,
10415
10434
  AsyncPipe
10416
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <!-- TODO: invalid button -->\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n test\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [currentActivityId]=\"activityId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"] }]
10435
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let currentTheme = theme$ | async;\n@let currentLang = lang$ | async;\n\n<ng-container *transloco=\"let t\">\n <button\n type=\"button\"\n [cuiDropdown]=\"content\"\n class=\"select\"\n (isOpened)=\"onToggleOpenState($event)\"\n >\n <ng-content/>\n </button>\n\n <ng-template #content>\n @if (isOpen()) {\n <cui-dropdown-wrapper width=\"300px\">\n <div\n #dropdownContainer\n class=\"wrapper\"\n >\n <div class=\"block-name\">\n <div>\n <cui-letter-box\n [letter]=\"fullName[0]\"\n [shape]=\"'rounded'\"\n size=\"md\"\n />\n </div>\n <div>\n <ul class=\"title-text\">\n {{ fullName }}\n </ul>\n <ul class=\"subtitle-text\">\n {{ email }}\n </ul>\n </div>\n </div>\n <div class=\"list-company\">\n @for (company of companies(); track company.id) {\n <ul class=\"title-company\">\n {{ company.name }}\n </ul>\n <div class=\"list-activity\">\n @for (activity of company.contexts; track activity) {\n <cui-activity-item\n [activity]=\"activity\"\n [companyId]=\"companyId\"\n />\n }\n </div>\n }\n </div>\n <div class=\"block-button\">\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconPaletteSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n <div\n [class.container-sub-button__select]=\"currentTheme === 'dark'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconMoon\"\n (click)=\"onChangeTheme('dark')\"\n />\n </div>\n <div\n [class.container-sub-button__select]=\"currentTheme === 'light'\"\n class=\"container-sub-button\"\n >\n <cui-svg\n icon=\"cuiIconSun\"\n (click)=\"onChangeTheme('light')\"\n />\n </div>\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconGlobeSm\" />\n <div class=\"text-and-sub-button\">\n Switch theme\n <div class=\"group-sub-button\">\n @for (lang of langs; track lang) {\n <div\n [class.container-sub-button__select]=\"currentLang === lang\"\n class=\"container-sub-button\"\n (click)=\"onChangeLang(lang)\"\n >\n {{ lang }}\n </div>\n }\n </div>\n </div>\n </div>\n </button>\n <button type=\"button\" (click)=\"onLogout()\">\n <div class=\"content-button\">\n <cui-svg icon=\"cuiIconLogOutSm\" />\n <div class=\"text-and-sub-button\">Log out</div>\n </div>\n </button>\n </div>\n </div>\n </cui-dropdown-wrapper>\n }\n </ng-template>\n</ng-container>\n", styles: [".wrapper{padding:16px}.block-name{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:solid 1px var(--cui-base-200);color:var(--cui-base-900)}.title-text{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-900)}.subtitle-text{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-900)}.title-company{font-weight:500;font-size:14px;line-height:20px;color:var(--cui-base-500)}.list-company{display:flex;flex-direction:column;gap:4px}.list-activity{display:flex;flex-direction:column;padding:8px;border-bottom:solid 1px var(--cui-base-200)}.block-button{display:flex;flex-direction:column;gap:8px;padding-top:8px;width:100%}.content-button{display:flex;gap:8px;align-items:center;padding-right:8px;padding-left:8px;height:36px;color:var(--cui-base-900)}.text-and-sub-button{display:flex;align-items:center;justify-content:space-between;width:100%}.container-sub-button{display:flex;align-items:center;justify-content:center;border:solid 1px var(--cui-base-200);border-radius:4px;width:28px;height:28px}.group-sub-button{display:flex;gap:4px}.container-sub-button__select{border:solid 1px var(--cui-badge-blue-border);background-color:var(--cui-badge-blue-bg)}\n"] }]
10417
10436
  }], ctorParameters: () => [] });
10418
10437
 
10419
10438
  /**