@smarterplan/ngx-smarterplan-core 1.2.45 → 1.2.47
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.
- package/README.md +24 -24
- package/esm2020/lib/components/csv-export/csv-export.component.mjs +59 -59
- package/esm2020/lib/components/loader/loader.component.mjs +23 -23
- package/esm2020/lib/components/menu-bar/avatar/avatar.component.mjs +80 -80
- package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +99 -99
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +384 -384
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +147 -147
- package/esm2020/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +40 -40
- package/esm2020/lib/components/search-bar/search-bar.component.mjs +63 -63
- package/esm2020/lib/components/support-modal/support-modal.component.mjs +66 -66
- package/esm2020/lib/config.mjs +4 -4
- package/esm2020/lib/helpers.service.mjs +470 -470
- package/esm2020/lib/matterport-extensions/hsl-loader/HlsLoader.mjs +69 -69
- package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +51 -51
- package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +61 -61
- package/esm2020/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +158 -158
- package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +85 -85
- package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +128 -128
- package/esm2020/lib/matterport-extensions/security-camera/SecurityCamera.mjs +249 -249
- package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +98 -98
- package/esm2020/lib/matterport-extensions/video-renderer/VideoRenderer.mjs +64 -64
- package/esm2020/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +221 -221
- package/esm2020/lib/mattertagData.mjs +165 -165
- package/esm2020/lib/ngx-smarterplan-core.module.mjs +122 -122
- package/esm2020/lib/ngx-smarterplan-core.service.mjs +14 -14
- package/esm2020/lib/pipes/duration-to-string.pipe.mjs +66 -66
- package/esm2020/lib/pipes/format-date-number-to-digits.pipe.mjs +30 -30
- package/esm2020/lib/pipes/hashtag-from-id.pipe.mjs +26 -26
- package/esm2020/lib/pipes/safe-url.pipe.mjs +20 -20
- package/esm2020/lib/pipes/time-date-to-local-string.pipe.mjs +104 -104
- package/esm2020/lib/pipes/username-from-id.pipe.mjs +29 -29
- package/esm2020/lib/services/amplify-cache.service.mjs +72 -72
- package/esm2020/lib/services/base-tab.service.mjs +24 -24
- package/esm2020/lib/services/baseVisibility.service.mjs +18 -18
- package/esm2020/lib/services/content.service.mjs +135 -135
- package/esm2020/lib/services/filter.service.mjs +599 -599
- package/esm2020/lib/services/intervention.service.mjs +236 -236
- package/esm2020/lib/services/locale.service.mjs +45 -45
- package/esm2020/lib/services/matterport-import.service.mjs +340 -340
- package/esm2020/lib/services/matterport.service.mjs +1587 -1587
- package/esm2020/lib/services/models/affectation.service.mjs +60 -60
- package/esm2020/lib/services/models/base-object.service.mjs +70 -70
- package/esm2020/lib/services/models/capture.service.mjs +34 -34
- package/esm2020/lib/services/models/comment.service.mjs +98 -98
- package/esm2020/lib/services/models/domain.service.mjs +78 -78
- package/esm2020/lib/services/models/equipment.service.mjs +683 -683
- package/esm2020/lib/services/models/event.service.mjs +128 -128
- package/esm2020/lib/services/models/feature.service.mjs +380 -380
- package/esm2020/lib/services/models/hashtag.service.mjs +38 -38
- package/esm2020/lib/services/models/layer.service.mjs +33 -33
- package/esm2020/lib/services/models/measurement.service.mjs +199 -199
- package/esm2020/lib/services/models/mission.service.mjs +206 -206
- package/esm2020/lib/services/models/navigation.service.mjs +92 -92
- package/esm2020/lib/services/models/node.service.mjs +31 -31
- package/esm2020/lib/services/models/object3D.service.mjs +364 -364
- package/esm2020/lib/services/models/operation.service.mjs +59 -59
- package/esm2020/lib/services/models/organisation.service.mjs +73 -73
- package/esm2020/lib/services/models/plan.service.mjs +799 -799
- package/esm2020/lib/services/models/poi.service.mjs +103 -103
- package/esm2020/lib/services/models/profile.service.mjs +58 -58
- package/esm2020/lib/services/models/property.service.mjs +44 -44
- package/esm2020/lib/services/models/space.service.mjs +204 -204
- package/esm2020/lib/services/models/template.service.mjs +41 -41
- package/esm2020/lib/services/models/ticket.service.mjs +526 -526
- package/esm2020/lib/services/models/visit.service.mjs +130 -130
- package/esm2020/lib/services/models/zone.service.mjs +225 -225
- package/esm2020/lib/services/navigator.service.mjs +212 -212
- package/esm2020/lib/services/s3.service.mjs +137 -137
- package/esm2020/lib/services/search.service.mjs +124 -124
- package/esm2020/lib/services/support.service.mjs +42 -42
- package/esm2020/lib/services/tag.service.mjs +111 -111
- package/esm2020/lib/services/user.service.mjs +501 -501
- package/esm2020/lib/services/validators.service.mjs +50 -50
- package/esm2020/lib/services/viewer.service.mjs +389 -389
- package/esm2020/lib/services/zone-drawer.service.mjs +76 -76
- package/esm2020/lib/services/zoneChange.service.mjs +30 -30
- package/esm2020/lib/types.service.mjs +311 -311
- package/esm2020/lib/validators/email.directive.mjs +7 -7
- package/esm2020/lib/validators/no-empty.directive.mjs +12 -12
- package/esm2020/lib/validators/number.directive.mjs +12 -12
- package/esm2020/lib/validators/text.directive.mjs +12 -12
- package/esm2020/public-api.mjs +72 -72
- package/esm2020/smarterplan-ngx-smarterplan-core.mjs +4 -4
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +13014 -13014
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +12263 -12263
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/csv-export/csv-export.component.d.ts +18 -18
- package/lib/components/loader/loader.component.d.ts +10 -10
- package/lib/components/menu-bar/avatar/avatar.component.d.ts +21 -21
- package/lib/components/menu-bar/menu-bar.component.d.ts +38 -38
- package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts +73 -73
- package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts +35 -35
- package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts +22 -22
- package/lib/components/search-bar/search-bar.component.d.ts +16 -16
- package/lib/components/support-modal/support-modal.component.d.ts +26 -26
- package/lib/config.d.ts +22 -22
- package/lib/helpers.service.d.ts +79 -79
- package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts +26 -26
- package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts +31 -31
- package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts +37 -37
- package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts +42 -42
- package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts +46 -46
- package/lib/matterport-extensions/scene-component/SceneComponent.d.ts +388 -388
- package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts +47 -47
- package/lib/matterport-extensions/tv-player/TvPlayer.d.ts +26 -26
- package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts +26 -26
- package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts +43 -43
- package/lib/mattertagData.d.ts +70 -70
- package/lib/ngx-smarterplan-core.module.d.ts +29 -29
- package/lib/ngx-smarterplan-core.service.d.ts +6 -6
- package/lib/pipes/duration-to-string.pipe.d.ts +12 -12
- package/lib/pipes/format-date-number-to-digits.pipe.d.ts +10 -10
- package/lib/pipes/hashtag-from-id.pipe.d.ts +10 -10
- package/lib/pipes/safe-url.pipe.d.ts +10 -10
- package/lib/pipes/time-date-to-local-string.pipe.d.ts +16 -16
- package/lib/pipes/username-from-id.pipe.d.ts +11 -11
- package/lib/services/amplify-cache.service.d.ts +37 -37
- package/lib/services/base-tab.service.d.ts +10 -10
- package/lib/services/baseVisibility.service.d.ts +9 -9
- package/lib/services/content.service.d.ts +28 -28
- package/lib/services/filter.service.d.ts +60 -60
- package/lib/services/intervention.service.d.ts +25 -25
- package/lib/services/locale.service.d.ts +23 -23
- package/lib/services/matterport-import.service.d.ts +53 -53
- package/lib/services/matterport.service.d.ts +336 -336
- package/lib/services/models/affectation.service.d.ts +14 -14
- package/lib/services/models/base-object.service.d.ts +20 -20
- package/lib/services/models/capture.service.d.ts +13 -13
- package/lib/services/models/comment.service.d.ts +26 -26
- package/lib/services/models/domain.service.d.ts +19 -19
- package/lib/services/models/equipment.service.d.ts +93 -93
- package/lib/services/models/event.service.d.ts +43 -43
- package/lib/services/models/feature.service.d.ts +75 -75
- package/lib/services/models/hashtag.service.d.ts +13 -13
- package/lib/services/models/layer.service.d.ts +11 -11
- package/lib/services/models/measurement.service.d.ts +51 -51
- package/lib/services/models/mission.service.d.ts +39 -39
- package/lib/services/models/navigation.service.d.ts +29 -29
- package/lib/services/models/node.service.d.ts +12 -12
- package/lib/services/models/object3D.service.d.ts +57 -57
- package/lib/services/models/operation.service.d.ts +15 -15
- package/lib/services/models/organisation.service.d.ts +19 -19
- package/lib/services/models/plan.service.d.ts +133 -133
- package/lib/services/models/poi.service.d.ts +25 -25
- package/lib/services/models/profile.service.d.ts +16 -16
- package/lib/services/models/property.service.d.ts +13 -13
- package/lib/services/models/space.service.d.ts +46 -46
- package/lib/services/models/template.service.d.ts +15 -15
- package/lib/services/models/ticket.service.d.ts +93 -93
- package/lib/services/models/visit.service.d.ts +24 -24
- package/lib/services/models/zone.service.d.ts +50 -50
- package/lib/services/navigator.service.d.ts +61 -61
- package/lib/services/s3.service.d.ts +14 -14
- package/lib/services/search.service.d.ts +20 -20
- package/lib/services/support.service.d.ts +17 -17
- package/lib/services/tag.service.d.ts +29 -29
- package/lib/services/user.service.d.ts +118 -118
- package/lib/services/validators.service.d.ts +18 -18
- package/lib/services/viewer.service.d.ts +110 -110
- package/lib/services/zone-drawer.service.d.ts +7 -7
- package/lib/services/zoneChange.service.d.ts +17 -17
- package/lib/types.service.d.ts +842 -842
- package/lib/validators/email.directive.d.ts +2 -2
- package/lib/validators/no-empty.directive.d.ts +2 -2
- package/lib/validators/number.directive.d.ts +2 -2
- package/lib/validators/text.directive.d.ts +2 -2
- package/package.json +2 -2
- package/public-api.d.ts +64 -64
- package/smarterplan-ngx-smarterplan-core.d.ts +5 -5
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { SupportModalComponent } from '../support-modal/support-modal.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "../../services/locale.service";
|
|
6
|
-
import * as i3 from "../../services/user.service";
|
|
7
|
-
import * as i4 from "../../services/navigator.service";
|
|
8
|
-
import * as i5 from "../../services/support.service";
|
|
9
|
-
import * as i6 from "../../services/baseVisibility.service";
|
|
10
|
-
import * as i7 from "./range-date-picker/range-date-picker.component";
|
|
11
|
-
import * as i8 from "./avatar/avatar.component";
|
|
12
|
-
import * as i9 from "./navigation-bar/navigation-bar.component";
|
|
13
|
-
import * as i10 from "@angular/common";
|
|
14
|
-
import * as i11 from "@ng-bootstrap/ng-bootstrap";
|
|
15
|
-
import * as i12 from "@angular/forms";
|
|
16
|
-
import * as i13 from "@ngx-translate/core";
|
|
17
|
-
export class MenuBarComponent {
|
|
18
|
-
constructor(router, localeService, userService, navigatorService, supportService, baseVisibilityService) {
|
|
19
|
-
this.router = router;
|
|
20
|
-
this.localeService = localeService;
|
|
21
|
-
this.userService = userService;
|
|
22
|
-
this.navigatorService = navigatorService;
|
|
23
|
-
this.supportService = supportService;
|
|
24
|
-
this.baseVisibilityService = baseVisibilityService;
|
|
25
|
-
this.isVisitor = true;
|
|
26
|
-
this.isVisible = false;
|
|
27
|
-
this.isChangePositionVisible = false;
|
|
28
|
-
this.userSubscription = this.userService.isChanged.subscribe((isChanged) => {
|
|
29
|
-
if (isChanged) {
|
|
30
|
-
this.update();
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
this.navSubscription = this.navigatorService.isVisibleChanged.subscribe((data) => {
|
|
34
|
-
this.isVisible = data;
|
|
35
|
-
});
|
|
36
|
-
this.baseVisibilityService.isChangePositionVisible.subscribe((data) => {
|
|
37
|
-
this.isChangePositionVisible = data;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.update();
|
|
42
|
-
}
|
|
43
|
-
ngAfterViewInit() {
|
|
44
|
-
const input = document.querySelector('#mainSearchBar');
|
|
45
|
-
if (input) {
|
|
46
|
-
input.addEventListener('keydown', ({ key }) => {
|
|
47
|
-
if (key === 'Enter') {
|
|
48
|
-
this.onSubmit();
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
ngOnDestroy() {
|
|
54
|
-
if (this.userSubscription) {
|
|
55
|
-
this.userSubscription.unsubscribe();
|
|
56
|
-
}
|
|
57
|
-
if (this.navSubscription) {
|
|
58
|
-
this.navSubscription.unsubscribe();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
async signOut() {
|
|
62
|
-
await this.userService.logoutCurrentAndSignOutAuth();
|
|
63
|
-
this.router.navigate(['auth']);
|
|
64
|
-
}
|
|
65
|
-
async update() {
|
|
66
|
-
this.user = this.userService.cu;
|
|
67
|
-
this.mission = this.userService.currentMissions[0];
|
|
68
|
-
this.isManager = this.userService.hasManagerRoleInAnyMission();
|
|
69
|
-
this.isVisitor = this.userService.isVisitor();
|
|
70
|
-
if (!this.isVisitor) {
|
|
71
|
-
this.isVisible = true;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// eslint-disable-next-line class-methods-use-this
|
|
75
|
-
onSubmit() {
|
|
76
|
-
const input = document.querySelector('#mainSearchBar');
|
|
77
|
-
const searchValue = input.value.toLowerCase();
|
|
78
|
-
if (searchValue !== '') {
|
|
79
|
-
const baseUrl = location.origin;
|
|
80
|
-
window.open(`${baseUrl}/dashboard/search?term=${searchValue}`, '_blank');
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
onToggleVisible() {
|
|
84
|
-
this.isVisible = !this.isVisible;
|
|
85
|
-
}
|
|
86
|
-
openSupportForm() {
|
|
87
|
-
this.supportService.openSupportForm(SupportModalComponent);
|
|
88
|
-
}
|
|
89
|
-
onChangePositionClick() {
|
|
90
|
-
this.baseVisibilityService.isChangePositionVisible.next(!this.isChangePositionVisible);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
MenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, deps: [{ token: i1.Router }, { token: i2.LocaleService }, { token: i3.BaseUserService }, { token: i4.NavigatorService }, { token: i5.SupportService }, { token: i6.BaseVisibilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
-
MenuBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: MenuBarComponent, selector: "lib-menu-bar", ngImport: i0, template: "<div id=\"menu-bar\">\n <div *ngIf=\"!isVisitor\">\n <nav class=\"navbar navbar-expand-md navbar-light p-0\">\n <div class=\"container-fluid\" *ngIf=\"isVisible\">\n <div class=\"navbar-brand\" [routerLink]=\"['/dashboard']\">\n <img alt=\"\" src=\"../assets/images/logos/logo-rvb-straight.png\">\n </div>\n <button class=\"navbar-toggler\" data-bs-target=\".navbar-collapse\" data-bs-toggle=\"collapse\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"collapse navbar-collapse\">\n <form class=\"form-inline ms-3 form-container \">\n <input class=\"form-control search-button\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\n <button class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"onSubmit()\">{{'Search' |\n translate}}</button>\n <lib-range-date-picker cacheName=\"mainDate\"></lib-range-date-picker>\n <div class=\"change-position-button\">\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\n <label class=\"btn btn-outline-primary\" (click)=\"onChangePositionClick()\"\n for=\"btn-check-outlined\">{{\"Change position\" | translate}}</label>\n </div>\n </form>\n <div class=\"ms-auto nav-item dropdown\">\n <div class=\"profile_pic dropdown-toggle\" data-testid=\"dropdown-menu-button\" data-bs-toggle=\"dropdown\">\n <lib-avatar></lib-avatar>\n </div>\n <div class=\"dropdown-menu dropdown-menu-right\">\n <p *ngIf=\"user && mission\" class=\"p-2\">\n <span class=\"username\">{{ user.displayName }}</span><br />\n <span class=\"user-role\">{{ mission.role }}</span><br />\n <span class=\"org\">{{ mission.organisation ? mission.organisation.name : \"No organisation\" |\n translate}}</span>\n </p>\n <div class=\"dropdown-divider\"></div>\n <!-- <a class=\"dropdown-item\" routerLink=\"/debug\" *ngIf=\"isManager\">Debug</a> -->\n <a class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</a>\n <a class=\"dropdown-item\" routerLink=\"/dashboard\">{{'Data management' | translate}}</a>\n <a class=\"dropdown-item\" data-testid=\"user-management-btn\" routerLink=\"/admin\" *ngIf=\"isManager\">\n {{'Users management' | translate}}</a>\n <a class=\"dropdown-item\" routerLink=\"/profile\">\n {{'Profile' | translate}}</a>\n <div class=\"dropdown-divider\"></div>\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\n translate}}</button>\n </div>\n </div>\n </div>\n </div>\n </nav>\n <lib-navigation-bar *ngIf=\"isVisible && isChangePositionVisible\"></lib-navigation-bar>\n </div>\n <div *ngIf=\"isVisitor && isVisible\">\n <div class=\"visitor-div\">\n <div class=\"logo-container\" data-testid=\"dropdown-menu-button\">\n <img class=\"img-logo\" alt=\"SmarterPlanLogo\" src=\"../assets/images/logos/logo-reserve.png\">\n </div>\n <div class=\"avatar-container-menu\">\n <div class=\"profile_pic dropdown-toggle\" data-bs-toggle=\"dropdown\">\n <lib-avatar></lib-avatar>\n </div>\n <div class=\"dropdown-menu dropdown-menu-right\">\n <button class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</button>\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\n translate}}</button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{background-color:#fff;color:var(--smarterplan-primary);padding:5px 10px}button:disabled,button[disabled]{color:#c04f4f}.navbar-toggler{margin-right:1em}.icon{height:40px;width:40px;color:var(--smarterplan-primary)}.search-button{width:auto}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}.search-button{width:500px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}.search-button{width:400px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}.search-button{width:300px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button{width:200px}}.form-container{margin:.5rem 0}\n"], components: [{ type: i7.RangeDatePickerComponent, selector: "lib-range-date-picker", inputs: ["cacheName"] }, { type: i8.AvatarComponent, selector: "lib-avatar", inputs: ["size", "userID"] }, { type: i9.NavigationBarComponent, selector: "lib-navigation-bar" }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgbNavbar, selector: ".navbar" }, { type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i12.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], pipes: { "translate": i13.TranslatePipe } });
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, decorators: [{
|
|
96
|
-
type: Component,
|
|
97
|
-
args: [{ selector: 'lib-menu-bar', template: "<div id=\"menu-bar\">\n <div *ngIf=\"!isVisitor\">\n <nav class=\"navbar navbar-expand-md navbar-light p-0\">\n <div class=\"container-fluid\" *ngIf=\"isVisible\">\n <div class=\"navbar-brand\" [routerLink]=\"['/dashboard']\">\n <img alt=\"\" src=\"../assets/images/logos/logo-rvb-straight.png\">\n </div>\n <button class=\"navbar-toggler\" data-bs-target=\".navbar-collapse\" data-bs-toggle=\"collapse\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"collapse navbar-collapse\">\n <form class=\"form-inline ms-3 form-container \">\n <input class=\"form-control search-button\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\n <button class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"onSubmit()\">{{'Search' |\n translate}}</button>\n <lib-range-date-picker cacheName=\"mainDate\"></lib-range-date-picker>\n <div class=\"change-position-button\">\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\n <label class=\"btn btn-outline-primary\" (click)=\"onChangePositionClick()\"\n for=\"btn-check-outlined\">{{\"Change position\" | translate}}</label>\n </div>\n </form>\n <div class=\"ms-auto nav-item dropdown\">\n <div class=\"profile_pic dropdown-toggle\" data-testid=\"dropdown-menu-button\" data-bs-toggle=\"dropdown\">\n <lib-avatar></lib-avatar>\n </div>\n <div class=\"dropdown-menu dropdown-menu-right\">\n <p *ngIf=\"user && mission\" class=\"p-2\">\n <span class=\"username\">{{ user.displayName }}</span><br />\n <span class=\"user-role\">{{ mission.role }}</span><br />\n <span class=\"org\">{{ mission.organisation ? mission.organisation.name : \"No organisation\" |\n translate}}</span>\n </p>\n <div class=\"dropdown-divider\"></div>\n <!-- <a class=\"dropdown-item\" routerLink=\"/debug\" *ngIf=\"isManager\">Debug</a> -->\n <a class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</a>\n <a class=\"dropdown-item\" routerLink=\"/dashboard\">{{'Data management' | translate}}</a>\n <a class=\"dropdown-item\" data-testid=\"user-management-btn\" routerLink=\"/admin\" *ngIf=\"isManager\">\n {{'Users management' | translate}}</a>\n <a class=\"dropdown-item\" routerLink=\"/profile\">\n {{'Profile' | translate}}</a>\n <div class=\"dropdown-divider\"></div>\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\n translate}}</button>\n </div>\n </div>\n </div>\n </div>\n </nav>\n <lib-navigation-bar *ngIf=\"isVisible && isChangePositionVisible\"></lib-navigation-bar>\n </div>\n <div *ngIf=\"isVisitor && isVisible\">\n <div class=\"visitor-div\">\n <div class=\"logo-container\" data-testid=\"dropdown-menu-button\">\n <img class=\"img-logo\" alt=\"SmarterPlanLogo\" src=\"../assets/images/logos/logo-reserve.png\">\n </div>\n <div class=\"avatar-container-menu\">\n <div class=\"profile_pic dropdown-toggle\" data-bs-toggle=\"dropdown\">\n <lib-avatar></lib-avatar>\n </div>\n <div class=\"dropdown-menu dropdown-menu-right\">\n <button class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</button>\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\n translate}}</button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{background-color:#fff;color:var(--smarterplan-primary);padding:5px 10px}button:disabled,button[disabled]{color:#c04f4f}.navbar-toggler{margin-right:1em}.icon{height:40px;width:40px;color:var(--smarterplan-primary)}.search-button{width:auto}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}.search-button{width:500px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}.search-button{width:400px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}.search-button{width:300px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button{width:200px}}.form-container{margin:.5rem 0}\n"] }]
|
|
98
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocaleService }, { type: i3.BaseUserService }, { type: i4.NavigatorService }, { type: i5.SupportService }, { type: i6.BaseVisibilityService }]; } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtYmFyL21lbnUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWJhci9tZW51LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBUWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRakYsTUFBTSxPQUFPLGdCQUFnQjtJQWlCM0IsWUFDVSxNQUFjLEVBQ2YsYUFBNEIsRUFDM0IsV0FBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLHFCQUE0QztRQUw1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFsQnRELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFnQnZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQzFELENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDWixJQUFJLFNBQVMsRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNyRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBcUIsQ0FBQztRQUMzRSxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7Z0JBQzVDLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFxQixDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQ3RCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sMEJBQTBCLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzFFO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUNyRCxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FDOUIsQ0FBQztJQUNKLENBQUM7OzZHQXhHVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixvRENoQjdCLDBqSUF1RUE7MkZEdkRhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3VwcG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXBwb3J0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVFbnRpdHksIE1pc3Npb24gfSBmcm9tICcuLi8uLi90eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cHBvcnRNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3N1cHBvcnQtbW9kYWwvc3VwcG9ydC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZVZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZVZpc2liaWxpdHkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1tZW51LWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUtYmFyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB1c2VyOiBQcm9maWxlRW50aXR5O1xuXG4gIG1pc3Npb246IE1pc3Npb247XG5cbiAgaXNWaXNpdG9yID0gdHJ1ZTtcblxuICBpc1Zpc2libGUgPSBmYWxzZTtcblxuICBpc0NoYW5nZVBvc2l0aW9uVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzTWFuYWdlcjogYm9vbGVhbjtcblxuICB1c2VyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgbmF2U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBCYXNlVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3VwcG9ydFNlcnZpY2U6IFN1cHBvcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVZpc2liaWxpdHlTZXJ2aWNlOiBCYXNlVmlzaWJpbGl0eVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy51c2VyU3Vic2NyaXB0aW9uID0gdGhpcy51c2VyU2VydmljZS5pc0NoYW5nZWQuc3Vic2NyaWJlKFxuICAgICAgKGlzQ2hhbmdlZCkgPT4ge1xuICAgICAgICBpZiAoaXNDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5uYXZTdWJzY3JpcHRpb24gPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuaXNWaXNpYmxlQ2hhbmdlZC5zdWJzY3JpYmUoXG4gICAgICAoZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGRhdGE7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuYmFzZVZpc2liaWxpdHlTZXJ2aWNlLmlzQ2hhbmdlUG9zaXRpb25WaXNpYmxlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5pc0NoYW5nZVBvc2l0aW9uVmlzaWJsZSA9IGRhdGE7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI21haW5TZWFyY2hCYXInKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsICh7IGtleSB9KSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnVzZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudXNlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5uYXZTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubmF2U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2lnbk91dCgpIHtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmxvZ291dEN1cnJlbnRBbmRTaWduT3V0QXV0aCgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnYXV0aCddKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZSgpIHtcbiAgICB0aGlzLnVzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmN1O1xuICAgIHRoaXMubWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb25zWzBdO1xuICAgIHRoaXMuaXNNYW5hZ2VyID0gdGhpcy51c2VyU2VydmljZS5oYXNNYW5hZ2VyUm9sZUluQW55TWlzc2lvbigpO1xuICAgIHRoaXMuaXNWaXNpdG9yID0gdGhpcy51c2VyU2VydmljZS5pc1Zpc2l0b3IoKTtcbiAgICBpZiAoIXRoaXMuaXNWaXNpdG9yKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWFpblNlYXJjaEJhcicpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3Qgc2VhcmNoVmFsdWUgPSBpbnB1dC52YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmIChzZWFyY2hWYWx1ZSAhPT0gJycpIHtcbiAgICAgIGNvbnN0IGJhc2VVcmwgPSBsb2NhdGlvbi5vcmlnaW47XG4gICAgICB3aW5kb3cub3BlbihgJHtiYXNlVXJsfS9kYXNoYm9hcmQvc2VhcmNoP3Rlcm09JHtzZWFyY2hWYWx1ZX1gLCAnX2JsYW5rJyk7XG4gICAgfVxuICB9XG5cbiAgb25Ub2dnbGVWaXNpYmxlKCkge1xuICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlO1xuICB9XG5cbiAgb3BlblN1cHBvcnRGb3JtKCkge1xuICAgIHRoaXMuc3VwcG9ydFNlcnZpY2Uub3BlblN1cHBvcnRGb3JtKFN1cHBvcnRNb2RhbENvbXBvbmVudCk7XG4gIH1cblxuICBvbkNoYW5nZVBvc2l0aW9uQ2xpY2soKSB7XG4gICAgdGhpcy5iYXNlVmlzaWJpbGl0eVNlcnZpY2UuaXNDaGFuZ2VQb3NpdGlvblZpc2libGUubmV4dChcbiAgICAgICF0aGlzLmlzQ2hhbmdlUG9zaXRpb25WaXNpYmxlXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiBpZD1cIm1lbnUtYmFyXCI+XG4gIDxkaXYgKm5nSWY9XCIhaXNWaXNpdG9yXCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLW1kIG5hdmJhci1saWdodCBwLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiAqbmdJZj1cImlzVmlzaWJsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLWJyYW5kXCIgW3JvdXRlckxpbmtdPVwiWycvZGFzaGJvYXJkJ11cIj5cbiAgICAgICAgICA8aW1nIGFsdD1cIlwiIHNyYz1cIi4uL2Fzc2V0cy9pbWFnZXMvbG9nb3MvbG9nby1ydmItc3RyYWlnaHQucG5nXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiBkYXRhLWJzLXRhcmdldD1cIi5uYXZiYXItY29sbGFwc2VcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIj5cbiAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm0taW5saW5lIG1zLTMgZm9ybS1jb250YWluZXIgXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2VhcmNoLWJ1dHRvblwiIHBsYWNlaG9sZGVyPVwia2V5d29yZFwiIGlkPVwibWFpblNlYXJjaEJhclwiIHR5cGU9XCJ0ZXh0XCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPnt7J1NlYXJjaCcgfFxuICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgPGxpYi1yYW5nZS1kYXRlLXBpY2tlciBjYWNoZU5hbWU9XCJtYWluRGF0ZVwiPjwvbGliLXJhbmdlLWRhdGUtcGlja2VyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYW5nZS1wb3NpdGlvbi1idXR0b25cIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwiYnRuLWNoZWNrXCIgaWQ9XCJidG4tY2hlY2stb3V0bGluZWRcIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwib25DaGFuZ2VQb3NpdGlvbkNsaWNrKClcIlxuICAgICAgICAgICAgICAgIGZvcj1cImJ0bi1jaGVjay1vdXRsaW5lZFwiPnt7XCJDaGFuZ2UgcG9zaXRpb25cIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtYXV0byBuYXYtaXRlbSBkcm9wZG93blwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGVfcGljIGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdGVzdGlkPVwiZHJvcGRvd24tbWVudS1idXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgIDxsaWItYXZhdGFyPjwvbGliLWF2YXRhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiPlxuICAgICAgICAgICAgICA8cCAqbmdJZj1cInVzZXIgJiYgbWlzc2lvblwiIGNsYXNzPVwicC0yXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VybmFtZVwiPnt7IHVzZXIuZGlzcGxheU5hbWUgfX08L3NwYW4+PGJyIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXJvbGVcIj57eyBtaXNzaW9uLnJvbGUgfX08L3NwYW4+PGJyIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmdcIj57eyBtaXNzaW9uLm9yZ2FuaXNhdGlvbiA/IG1pc3Npb24ub3JnYW5pc2F0aW9uLm5hbWUgOiBcIk5vIG9yZ2FuaXNhdGlvblwiIHxcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwhLS0gPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgcm91dGVyTGluaz1cIi9kZWJ1Z1wiICpuZ0lmPVwiaXNNYW5hZ2VyXCI+RGVidWc8L2E+IC0tPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwibG9jYWxlU2VydmljZS5tb2RhbCgpXCI+e3snTGFuZ3VhZ2UnIHwgdHJhbnNsYXRlfX08L2E+XG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIHJvdXRlckxpbms9XCIvZGFzaGJvYXJkXCI+e3snRGF0YSBtYW5hZ2VtZW50JyB8IHRyYW5zbGF0ZX19PC9hPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBkYXRhLXRlc3RpZD1cInVzZXItbWFuYWdlbWVudC1idG5cIiByb3V0ZXJMaW5rPVwiL2FkbWluXCIgKm5nSWY9XCJpc01hbmFnZXJcIj5cbiAgICAgICAgICAgICAgICB7eydVc2VycyBtYW5hZ2VtZW50JyB8IHRyYW5zbGF0ZX19PC9hPlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiByb3V0ZXJMaW5rPVwiL3Byb2ZpbGVcIj5cbiAgICAgICAgICAgICAgICB7eydQcm9maWxlJyB8IHRyYW5zbGF0ZX19PC9hPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJvcGVuU3VwcG9ydEZvcm0oKVwiPnt7XCJIZWxwXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGRhdGEtdGVzdGlkPVwibG9nb3V0LWF1dGgtYnRuXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInNpZ25PdXQoKVwiPnt7XCJMb2dvdXRcIiB8XG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuICAgIDxsaWItbmF2aWdhdGlvbi1iYXIgKm5nSWY9XCJpc1Zpc2libGUgJiYgaXNDaGFuZ2VQb3NpdGlvblZpc2libGVcIj48L2xpYi1uYXZpZ2F0aW9uLWJhcj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJpc1Zpc2l0b3IgJiYgaXNWaXNpYmxlXCI+XG4gICAgPGRpdiBjbGFzcz1cInZpc2l0b3ItZGl2XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibG9nby1jb250YWluZXJcIiBkYXRhLXRlc3RpZD1cImRyb3Bkb3duLW1lbnUtYnV0dG9uXCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIGFsdD1cIlNtYXJ0ZXJQbGFuTG9nb1wiIHNyYz1cIi4uL2Fzc2V0cy9pbWFnZXMvbG9nb3MvbG9nby1yZXNlcnZlLnBuZ1wiPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNvbnRhaW5lci1tZW51XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlX3BpYyBkcm9wZG93bi10b2dnbGVcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCI+XG4gICAgICAgICAgPGxpYi1hdmF0YXI+PC9saWItYXZhdGFyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cImxvY2FsZVNlcnZpY2UubW9kYWwoKVwiPnt7J0xhbmd1YWdlJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwib3BlblN1cHBvcnRGb3JtKClcIj57e1wiSGVscFwiIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGRhdGEtdGVzdGlkPVwibG9nb3V0LWF1dGgtYnRuXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cInNpZ25PdXQoKVwiPnt7XCJMb2dvdXRcIiB8XG4gICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { SupportModalComponent } from '../support-modal/support-modal.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "../../services/locale.service";
|
|
6
|
+
import * as i3 from "../../services/user.service";
|
|
7
|
+
import * as i4 from "../../services/navigator.service";
|
|
8
|
+
import * as i5 from "../../services/support.service";
|
|
9
|
+
import * as i6 from "../../services/baseVisibility.service";
|
|
10
|
+
import * as i7 from "./range-date-picker/range-date-picker.component";
|
|
11
|
+
import * as i8 from "./avatar/avatar.component";
|
|
12
|
+
import * as i9 from "./navigation-bar/navigation-bar.component";
|
|
13
|
+
import * as i10 from "@angular/common";
|
|
14
|
+
import * as i11 from "@ng-bootstrap/ng-bootstrap";
|
|
15
|
+
import * as i12 from "@angular/forms";
|
|
16
|
+
import * as i13 from "@ngx-translate/core";
|
|
17
|
+
export class MenuBarComponent {
|
|
18
|
+
constructor(router, localeService, userService, navigatorService, supportService, baseVisibilityService) {
|
|
19
|
+
this.router = router;
|
|
20
|
+
this.localeService = localeService;
|
|
21
|
+
this.userService = userService;
|
|
22
|
+
this.navigatorService = navigatorService;
|
|
23
|
+
this.supportService = supportService;
|
|
24
|
+
this.baseVisibilityService = baseVisibilityService;
|
|
25
|
+
this.isVisitor = true;
|
|
26
|
+
this.isVisible = false;
|
|
27
|
+
this.isChangePositionVisible = false;
|
|
28
|
+
this.userSubscription = this.userService.isChanged.subscribe((isChanged) => {
|
|
29
|
+
if (isChanged) {
|
|
30
|
+
this.update();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
this.navSubscription = this.navigatorService.isVisibleChanged.subscribe((data) => {
|
|
34
|
+
this.isVisible = data;
|
|
35
|
+
});
|
|
36
|
+
this.baseVisibilityService.isChangePositionVisible.subscribe((data) => {
|
|
37
|
+
this.isChangePositionVisible = data;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.update();
|
|
42
|
+
}
|
|
43
|
+
ngAfterViewInit() {
|
|
44
|
+
const input = document.querySelector('#mainSearchBar');
|
|
45
|
+
if (input) {
|
|
46
|
+
input.addEventListener('keydown', ({ key }) => {
|
|
47
|
+
if (key === 'Enter') {
|
|
48
|
+
this.onSubmit();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
if (this.userSubscription) {
|
|
55
|
+
this.userSubscription.unsubscribe();
|
|
56
|
+
}
|
|
57
|
+
if (this.navSubscription) {
|
|
58
|
+
this.navSubscription.unsubscribe();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async signOut() {
|
|
62
|
+
await this.userService.logoutCurrentAndSignOutAuth();
|
|
63
|
+
this.router.navigate(['auth']);
|
|
64
|
+
}
|
|
65
|
+
async update() {
|
|
66
|
+
this.user = this.userService.cu;
|
|
67
|
+
this.mission = this.userService.currentMissions[0];
|
|
68
|
+
this.isManager = this.userService.hasManagerRoleInAnyMission();
|
|
69
|
+
this.isVisitor = this.userService.isVisitor();
|
|
70
|
+
if (!this.isVisitor) {
|
|
71
|
+
this.isVisible = true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// eslint-disable-next-line class-methods-use-this
|
|
75
|
+
onSubmit() {
|
|
76
|
+
const input = document.querySelector('#mainSearchBar');
|
|
77
|
+
const searchValue = input.value.toLowerCase();
|
|
78
|
+
if (searchValue !== '') {
|
|
79
|
+
const baseUrl = location.origin;
|
|
80
|
+
window.open(`${baseUrl}/dashboard/search?term=${searchValue}`, '_blank');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
onToggleVisible() {
|
|
84
|
+
this.isVisible = !this.isVisible;
|
|
85
|
+
}
|
|
86
|
+
openSupportForm() {
|
|
87
|
+
this.supportService.openSupportForm(SupportModalComponent);
|
|
88
|
+
}
|
|
89
|
+
onChangePositionClick() {
|
|
90
|
+
this.baseVisibilityService.isChangePositionVisible.next(!this.isChangePositionVisible);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
MenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, deps: [{ token: i1.Router }, { token: i2.LocaleService }, { token: i3.BaseUserService }, { token: i4.NavigatorService }, { token: i5.SupportService }, { token: i6.BaseVisibilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
MenuBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: MenuBarComponent, selector: "lib-menu-bar", ngImport: i0, template: "<div id=\"menu-bar\">\r\n <div *ngIf=\"!isVisitor\">\r\n <nav class=\"navbar navbar-expand-md navbar-light p-0\">\r\n <div class=\"container-fluid\" *ngIf=\"isVisible\">\r\n <div class=\"navbar-brand\" [routerLink]=\"['/dashboard']\">\r\n <img alt=\"\" src=\"../assets/images/logos/logo-rvb-straight.png\">\r\n </div>\r\n <button class=\"navbar-toggler\" data-bs-target=\".navbar-collapse\" data-bs-toggle=\"collapse\" type=\"button\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"collapse navbar-collapse\">\r\n <form class=\"form-inline ms-3 form-container \">\r\n <input class=\"form-control search-button\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\r\n <button class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"onSubmit()\">{{'Search' |\r\n translate}}</button>\r\n <lib-range-date-picker cacheName=\"mainDate\"></lib-range-date-picker>\r\n <div class=\"change-position-button\">\r\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\r\n <label class=\"btn btn-outline-primary\" (click)=\"onChangePositionClick()\"\r\n for=\"btn-check-outlined\">{{\"Change position\" | translate}}</label>\r\n </div>\r\n </form>\r\n <div class=\"ms-auto nav-item dropdown profile_pic-container\">\r\n <div class=\"profile_pic dropdown-toggle\" data-testid=\"dropdown-menu-button\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <p *ngIf=\"user && mission\" class=\"p-2\">\r\n <span class=\"username\">{{ user.displayName }}</span><br />\r\n <span class=\"user-role\">{{ mission.role }}</span><br />\r\n <span class=\"org\">{{ mission.organisation ? mission.organisation.name : \"No organisation\" |\r\n translate}}</span>\r\n </p>\r\n <div class=\"dropdown-divider\"></div>\r\n <!-- <a class=\"dropdown-item\" routerLink=\"/debug\" *ngIf=\"isManager\">Debug</a> -->\r\n <a class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/dashboard\">{{'Data management' | translate}}</a>\r\n <a class=\"dropdown-item\" data-testid=\"user-management-btn\" routerLink=\"/admin\" *ngIf=\"isManager\">\r\n {{'Users management' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/profile\">\r\n {{'Profile' | translate}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n <lib-navigation-bar *ngIf=\"isVisible && isChangePositionVisible\"></lib-navigation-bar>\r\n </div>\r\n <div *ngIf=\"isVisitor && isVisible\">\r\n <div class=\"visitor-div\">\r\n <div class=\"logo-container\" data-testid=\"dropdown-menu-button\">\r\n <img class=\"img-logo\" alt=\"SmarterPlanLogo\" src=\"../assets/images/logos/logo-reserve.png\">\r\n </div>\r\n <div class=\"avatar-container-menu\">\r\n <div class=\"profile_pic dropdown-toggle\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <button class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</button>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}.navbar form{width:100%;margin:0;padding:0}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{background-color:#fff;color:var(--smarterplan-primary);padding:5px 10px}button:disabled,button[disabled]{color:#c04f4f}.navbar-toggler{margin-right:1em}.icon{height:40px;width:40px;color:var(--smarterplan-primary)}.search-button{width:auto}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.profile_pic-container{margin-right:1em}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}.search-button{width:500px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}.search-button{width:400px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}.search-button{width:300px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button{width:200px}}.form-container{margin:.5rem 0}.navbar-collapse.show{display:flex;padding-bottom:.5rem}\n"], components: [{ type: i7.RangeDatePickerComponent, selector: "lib-range-date-picker", inputs: ["cacheName"] }, { type: i8.AvatarComponent, selector: "lib-avatar", inputs: ["size", "userID"] }, { type: i9.NavigationBarComponent, selector: "lib-navigation-bar" }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.NgbNavbar, selector: ".navbar" }, { type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i12.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], pipes: { "translate": i13.TranslatePipe } });
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, decorators: [{
|
|
96
|
+
type: Component,
|
|
97
|
+
args: [{ selector: 'lib-menu-bar', template: "<div id=\"menu-bar\">\r\n <div *ngIf=\"!isVisitor\">\r\n <nav class=\"navbar navbar-expand-md navbar-light p-0\">\r\n <div class=\"container-fluid\" *ngIf=\"isVisible\">\r\n <div class=\"navbar-brand\" [routerLink]=\"['/dashboard']\">\r\n <img alt=\"\" src=\"../assets/images/logos/logo-rvb-straight.png\">\r\n </div>\r\n <button class=\"navbar-toggler\" data-bs-target=\".navbar-collapse\" data-bs-toggle=\"collapse\" type=\"button\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"collapse navbar-collapse\">\r\n <form class=\"form-inline ms-3 form-container \">\r\n <input class=\"form-control search-button\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\r\n <button class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"onSubmit()\">{{'Search' |\r\n translate}}</button>\r\n <lib-range-date-picker cacheName=\"mainDate\"></lib-range-date-picker>\r\n <div class=\"change-position-button\">\r\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\r\n <label class=\"btn btn-outline-primary\" (click)=\"onChangePositionClick()\"\r\n for=\"btn-check-outlined\">{{\"Change position\" | translate}}</label>\r\n </div>\r\n </form>\r\n <div class=\"ms-auto nav-item dropdown profile_pic-container\">\r\n <div class=\"profile_pic dropdown-toggle\" data-testid=\"dropdown-menu-button\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <p *ngIf=\"user && mission\" class=\"p-2\">\r\n <span class=\"username\">{{ user.displayName }}</span><br />\r\n <span class=\"user-role\">{{ mission.role }}</span><br />\r\n <span class=\"org\">{{ mission.organisation ? mission.organisation.name : \"No organisation\" |\r\n translate}}</span>\r\n </p>\r\n <div class=\"dropdown-divider\"></div>\r\n <!-- <a class=\"dropdown-item\" routerLink=\"/debug\" *ngIf=\"isManager\">Debug</a> -->\r\n <a class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/dashboard\">{{'Data management' | translate}}</a>\r\n <a class=\"dropdown-item\" data-testid=\"user-management-btn\" routerLink=\"/admin\" *ngIf=\"isManager\">\r\n {{'Users management' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/profile\">\r\n {{'Profile' | translate}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n <lib-navigation-bar *ngIf=\"isVisible && isChangePositionVisible\"></lib-navigation-bar>\r\n </div>\r\n <div *ngIf=\"isVisitor && isVisible\">\r\n <div class=\"visitor-div\">\r\n <div class=\"logo-container\" data-testid=\"dropdown-menu-button\">\r\n <img class=\"img-logo\" alt=\"SmarterPlanLogo\" src=\"../assets/images/logos/logo-reserve.png\">\r\n </div>\r\n <div class=\"avatar-container-menu\">\r\n <div class=\"profile_pic dropdown-toggle\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <button class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</button>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}.navbar form{width:100%;margin:0;padding:0}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{background-color:#fff;color:var(--smarterplan-primary);padding:5px 10px}button:disabled,button[disabled]{color:#c04f4f}.navbar-toggler{margin-right:1em}.icon{height:40px;width:40px;color:var(--smarterplan-primary)}.search-button{width:auto}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.profile_pic-container{margin-right:1em}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}.search-button{width:500px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}.search-button{width:400px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}.search-button{width:300px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button{width:200px}}.form-container{margin:.5rem 0}.navbar-collapse.show{display:flex;padding-bottom:.5rem}\n"] }]
|
|
98
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.LocaleService }, { type: i3.BaseUserService }, { type: i4.NavigatorService }, { type: i5.SupportService }, { type: i6.BaseVisibilityService }]; } });
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNtYXJ0ZXJwbGFuLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtYmFyL21lbnUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWJhci9tZW51LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBUWxELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFRakYsTUFBTSxPQUFPLGdCQUFnQjtJQWlCM0IsWUFDVSxNQUFjLEVBQ2YsYUFBNEIsRUFDM0IsV0FBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLHFCQUE0QztRQUw1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFsQnRELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQiw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFnQnZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQzFELENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDWixJQUFJLFNBQVMsRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUNyRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBcUIsQ0FBQztRQUMzRSxJQUFJLEtBQUssRUFBRTtZQUNULEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7Z0JBQzVDLElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELFFBQVE7UUFDTixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFxQixDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsSUFBSSxXQUFXLEtBQUssRUFBRSxFQUFFO1lBQ3RCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sMEJBQTBCLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzFFO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUNyRCxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FDOUIsQ0FBQztJQUNKLENBQUM7OzZHQXhHVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixvRENoQjdCLDh0SUF1RUE7MkZEdkRhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvY2FsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1cHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VwcG9ydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZVVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZmlsZUVudGl0eSwgTWlzc2lvbiB9IGZyb20gJy4uLy4uL3R5cGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdXBwb3J0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zdXBwb3J0LW1vZGFsL3N1cHBvcnQtbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFzZVZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZVZpc2liaWxpdHkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tZW51LWJhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZW51LWJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdXNlcjogUHJvZmlsZUVudGl0eTtcclxuXHJcbiAgbWlzc2lvbjogTWlzc2lvbjtcclxuXHJcbiAgaXNWaXNpdG9yID0gdHJ1ZTtcclxuXHJcbiAgaXNWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGlzQ2hhbmdlUG9zaXRpb25WaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGlzTWFuYWdlcjogYm9vbGVhbjtcclxuXHJcbiAgdXNlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBuYXZTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBCYXNlVXNlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5hdmlnYXRvclNlcnZpY2U6IE5hdmlnYXRvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN1cHBvcnRTZXJ2aWNlOiBTdXBwb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgYmFzZVZpc2liaWxpdHlTZXJ2aWNlOiBCYXNlVmlzaWJpbGl0eVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMudXNlclN1YnNjcmlwdGlvbiA9IHRoaXMudXNlclNlcnZpY2UuaXNDaGFuZ2VkLnN1YnNjcmliZShcclxuICAgICAgKGlzQ2hhbmdlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0NoYW5nZWQpIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5uYXZTdWJzY3JpcHRpb24gPSB0aGlzLm5hdmlnYXRvclNlcnZpY2UuaXNWaXNpYmxlQ2hhbmdlZC5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBkYXRhO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuYmFzZVZpc2liaWxpdHlTZXJ2aWNlLmlzQ2hhbmdlUG9zaXRpb25WaXNpYmxlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLmlzQ2hhbmdlUG9zaXRpb25WaXNpYmxlID0gZGF0YTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbWFpblNlYXJjaEJhcicpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsICh7IGtleSB9KSA9PiB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgICAgdGhpcy5vblN1Ym1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnVzZXJTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy51c2VyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5uYXZTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5uYXZTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHNpZ25PdXQoKSB7XHJcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmxvZ291dEN1cnJlbnRBbmRTaWduT3V0QXV0aCgpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydhdXRoJ10pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlKCkge1xyXG4gICAgdGhpcy51c2VyID0gdGhpcy51c2VyU2VydmljZS5jdTtcclxuICAgIHRoaXMubWlzc2lvbiA9IHRoaXMudXNlclNlcnZpY2UuY3VycmVudE1pc3Npb25zWzBdO1xyXG4gICAgdGhpcy5pc01hbmFnZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmhhc01hbmFnZXJSb2xlSW5BbnlNaXNzaW9uKCk7XHJcbiAgICB0aGlzLmlzVmlzaXRvciA9IHRoaXMudXNlclNlcnZpY2UuaXNWaXNpdG9yKCk7XHJcbiAgICBpZiAoIXRoaXMuaXNWaXNpdG9yKSB7XHJcbiAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNtYWluU2VhcmNoQmFyJykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHNlYXJjaFZhbHVlID0gaW5wdXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgY29uc3QgYmFzZVVybCA9IGxvY2F0aW9uLm9yaWdpbjtcclxuICAgICAgd2luZG93Lm9wZW4oYCR7YmFzZVVybH0vZGFzaGJvYXJkL3NlYXJjaD90ZXJtPSR7c2VhcmNoVmFsdWV9YCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ub2dnbGVWaXNpYmxlKCkge1xyXG4gICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGU7XHJcbiAgfVxyXG5cclxuICBvcGVuU3VwcG9ydEZvcm0oKSB7XHJcbiAgICB0aGlzLnN1cHBvcnRTZXJ2aWNlLm9wZW5TdXBwb3J0Rm9ybShTdXBwb3J0TW9kYWxDb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VQb3NpdGlvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5iYXNlVmlzaWJpbGl0eVNlcnZpY2UuaXNDaGFuZ2VQb3NpdGlvblZpc2libGUubmV4dChcclxuICAgICAgIXRoaXMuaXNDaGFuZ2VQb3NpdGlvblZpc2libGVcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJtZW51LWJhclwiPlxyXG4gIDxkaXYgKm5nSWY9XCIhaXNWaXNpdG9yXCI+XHJcbiAgICA8bmF2IGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbWQgbmF2YmFyLWxpZ2h0IHAtMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCIgKm5nSWY9XCJpc1Zpc2libGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLWJyYW5kXCIgW3JvdXRlckxpbmtdPVwiWycvZGFzaGJvYXJkJ11cIj5cclxuICAgICAgICAgIDxpbWcgYWx0PVwiXCIgc3JjPVwiLi4vYXNzZXRzL2ltYWdlcy9sb2dvcy9sb2dvLXJ2Yi1zdHJhaWdodC5wbmdcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiBkYXRhLWJzLXRhcmdldD1cIi5uYXZiYXItY29sbGFwc2VcIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXZiYXItdG9nZ2xlci1pY29uXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIj5cclxuICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgbXMtMyBmb3JtLWNvbnRhaW5lciBcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIHNlYXJjaC1idXR0b25cIiBwbGFjZWhvbGRlcj1cImtleXdvcmRcIiBpZD1cIm1haW5TZWFyY2hCYXJcIiB0eXBlPVwidGV4dFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnkgcm91bmRlZC1waWxsIG1lLTJcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPnt7J1NlYXJjaCcgfFxyXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxsaWItcmFuZ2UtZGF0ZS1waWNrZXIgY2FjaGVOYW1lPVwibWFpbkRhdGVcIj48L2xpYi1yYW5nZS1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYW5nZS1wb3NpdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJidG4tY2hlY2tcIiBpZD1cImJ0bi1jaGVjay1vdXRsaW5lZFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ2hhbmdlUG9zaXRpb25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgIGZvcj1cImJ0bi1jaGVjay1vdXRsaW5lZFwiPnt7XCJDaGFuZ2UgcG9zaXRpb25cIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtYXV0byBuYXYtaXRlbSBkcm9wZG93biBwcm9maWxlX3BpYy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGVfcGljIGRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdGVzdGlkPVwiZHJvcGRvd24tbWVudS1idXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgICAgPGxpYi1hdmF0YXI+PC9saWItYXZhdGFyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiPlxyXG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwidXNlciAmJiBtaXNzaW9uXCIgY2xhc3M9XCJwLTJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlcm5hbWVcIj57eyB1c2VyLmRpc3BsYXlOYW1lIH19PC9zcGFuPjxiciAvPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXJvbGVcIj57eyBtaXNzaW9uLnJvbGUgfX08L3NwYW4+PGJyIC8+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZ1wiPnt7IG1pc3Npb24ub3JnYW5pc2F0aW9uID8gbWlzc2lvbi5vcmdhbmlzYXRpb24ubmFtZSA6IFwiTm8gb3JnYW5pc2F0aW9uXCIgfFxyXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8IS0tIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIHJvdXRlckxpbms9XCIvZGVidWdcIiAqbmdJZj1cImlzTWFuYWdlclwiPkRlYnVnPC9hPiAtLT5cclxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwibG9jYWxlU2VydmljZS5tb2RhbCgpXCI+e3snTGFuZ3VhZ2UnIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgcm91dGVyTGluaz1cIi9kYXNoYm9hcmRcIj57eydEYXRhIG1hbmFnZW1lbnQnIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgZGF0YS10ZXN0aWQ9XCJ1c2VyLW1hbmFnZW1lbnQtYnRuXCIgcm91dGVyTGluaz1cIi9hZG1pblwiICpuZ0lmPVwiaXNNYW5hZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICB7eydVc2VycyBtYW5hZ2VtZW50JyB8IHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIHJvdXRlckxpbms9XCIvcHJvZmlsZVwiPlxyXG4gICAgICAgICAgICAgICAge3snUHJvZmlsZScgfCB0cmFuc2xhdGV9fTwvYT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cIm9wZW5TdXBwb3J0Rm9ybSgpXCI+e3tcIkhlbHBcIiB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBkYXRhLXRlc3RpZD1cImxvZ291dC1hdXRoLWJ0blwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJzaWduT3V0KClcIj57e1wiTG9nb3V0XCIgfFxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25hdj5cclxuICAgIDxsaWItbmF2aWdhdGlvbi1iYXIgKm5nSWY9XCJpc1Zpc2libGUgJiYgaXNDaGFuZ2VQb3NpdGlvblZpc2libGVcIj48L2xpYi1uYXZpZ2F0aW9uLWJhcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiaXNWaXNpdG9yICYmIGlzVmlzaWJsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZpc2l0b3ItZGl2XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lclwiIGRhdGEtdGVzdGlkPVwiZHJvcGRvd24tbWVudS1idXR0b25cIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBhbHQ9XCJTbWFydGVyUGxhbkxvZ29cIiBzcmM9XCIuLi9hc3NldHMvaW1hZ2VzL2xvZ29zL2xvZ28tcmVzZXJ2ZS5wbmdcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY29udGFpbmVyLW1lbnVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZmlsZV9waWMgZHJvcGRvd24tdG9nZ2xlXCIgZGF0YS1icy10b2dnbGU9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgPGxpYi1hdmF0YXI+PC9saWItYXZhdGFyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHRcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKGNsaWNrKT1cImxvY2FsZVNlcnZpY2UubW9kYWwoKVwiPnt7J0xhbmd1YWdlJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJvcGVuU3VwcG9ydEZvcm0oKVwiPnt7XCJIZWxwXCIgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBkYXRhLXRlc3RpZD1cImxvZ291dC1hdXRoLWJ0blwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJzaWduT3V0KClcIj57e1wiTG9nb3V0XCIgfFxyXG4gICAgICAgICAgICB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|