@smarterplan/ngx-smarterplan-core 1.2.18 → 1.2.20

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.
Files changed (109) hide show
  1. package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +3 -3
  2. package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +1 -1
  3. package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +1 -1
  4. package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
  5. package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
  6. package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
  7. package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
  8. package/esm2020/lib/services/baseVisibility.service.mjs +1 -1
  9. package/esm2020/lib/services/filter.service.mjs +1 -1
  10. package/esm2020/lib/services/matterport-import.service.mjs +1 -1
  11. package/esm2020/lib/services/matterport.service.mjs +8 -4
  12. package/esm2020/lib/services/models/equipment.service.mjs +1 -1
  13. package/esm2020/lib/services/models/feature.service.mjs +1 -1
  14. package/esm2020/lib/services/models/measurement.service.mjs +1 -1
  15. package/esm2020/lib/services/models/object3D.service.mjs +1 -1
  16. package/esm2020/lib/services/models/poi.service.mjs +1 -1
  17. package/esm2020/lib/services/models/ticket.service.mjs +1 -1
  18. package/esm2020/lib/services/models/zone.service.mjs +1 -1
  19. package/esm2020/lib/services/navigator.service.mjs +22 -21
  20. package/esm2020/lib/services/tag.service.mjs +18 -18
  21. package/esm2020/lib/services/zoneChange.service.mjs +1 -1
  22. package/esm2020/public-api.mjs +1 -1
  23. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +50 -45
  24. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  25. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +47 -42
  26. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  27. package/lib/components/csv-export/csv-export.component.d.ts.map +1 -0
  28. package/lib/components/loader/loader.component.d.ts.map +1 -0
  29. package/lib/components/menu-bar/avatar/avatar.component.d.ts.map +1 -0
  30. package/lib/components/menu-bar/menu-bar.component.d.ts.map +1 -0
  31. package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts.map +1 -0
  32. package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts.map +1 -0
  33. package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts.map +1 -0
  34. package/lib/components/search-bar/search-bar.component.d.ts.map +1 -0
  35. package/lib/components/support-modal/support-modal.component.d.ts.map +1 -0
  36. package/lib/config.d.ts.map +1 -0
  37. package/lib/helpers.service.d.ts.map +1 -0
  38. package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts.map +1 -0
  39. package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts.map +1 -0
  40. package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts.map +1 -0
  41. package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts.map +1 -0
  42. package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts.map +1 -0
  43. package/lib/matterport-extensions/scene-component/SceneComponent.d.ts.map +1 -0
  44. package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts.map +1 -0
  45. package/lib/matterport-extensions/tv-player/TvPlayer.d.ts.map +1 -0
  46. package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts.map +1 -0
  47. package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts.map +1 -0
  48. package/lib/mattertagData.d.ts.map +1 -0
  49. package/lib/ngx-smarterplan-core.module.d.ts.map +1 -0
  50. package/lib/ngx-smarterplan-core.service.d.ts.map +1 -0
  51. package/lib/pipes/duration-to-string.pipe.d.ts.map +1 -0
  52. package/lib/pipes/format-date-number-to-digits.pipe.d.ts.map +1 -0
  53. package/lib/pipes/hashtag-from-id.pipe.d.ts.map +1 -0
  54. package/lib/pipes/safe-url.pipe.d.ts.map +1 -0
  55. package/lib/pipes/time-date-to-local-string.pipe.d.ts.map +1 -0
  56. package/lib/pipes/username-from-id.pipe.d.ts.map +1 -0
  57. package/lib/services/amplify-cache.service.d.ts.map +1 -0
  58. package/lib/services/base-tab.service.d.ts.map +1 -0
  59. package/lib/services/baseVisibility.service.d.ts.map +1 -0
  60. package/lib/services/content.service.d.ts.map +1 -0
  61. package/lib/services/filter.service.d.ts.map +1 -0
  62. package/lib/services/intervention.service.d.ts.map +1 -0
  63. package/lib/services/locale.service.d.ts.map +1 -0
  64. package/lib/services/matterport-import.service.d.ts.map +1 -0
  65. package/lib/services/matterport.service.d.ts.map +1 -0
  66. package/lib/services/models/affectation.service.d.ts.map +1 -0
  67. package/lib/services/models/base-object.service.d.ts.map +1 -0
  68. package/lib/services/models/capture.service.d.ts.map +1 -0
  69. package/lib/services/models/comment.service.d.ts.map +1 -0
  70. package/lib/services/models/domain.service.d.ts.map +1 -0
  71. package/lib/services/models/equipment.service.d.ts.map +1 -0
  72. package/lib/services/models/event.service.d.ts.map +1 -0
  73. package/lib/services/models/feature.service.d.ts.map +1 -0
  74. package/lib/services/models/hashtag.service.d.ts.map +1 -0
  75. package/lib/services/models/layer.service.d.ts.map +1 -0
  76. package/lib/services/models/measurement.service.d.ts.map +1 -0
  77. package/lib/services/models/mission.service.d.ts.map +1 -0
  78. package/lib/services/models/navigation.service.d.ts.map +1 -0
  79. package/lib/services/models/node.service.d.ts.map +1 -0
  80. package/lib/services/models/object3D.service.d.ts.map +1 -0
  81. package/lib/services/models/operation.service.d.ts.map +1 -0
  82. package/lib/services/models/organisation.service.d.ts.map +1 -0
  83. package/lib/services/models/plan.service.d.ts.map +1 -0
  84. package/lib/services/models/poi.service.d.ts.map +1 -0
  85. package/lib/services/models/profile.service.d.ts.map +1 -0
  86. package/lib/services/models/property.service.d.ts.map +1 -0
  87. package/lib/services/models/space.service.d.ts.map +1 -0
  88. package/lib/services/models/template.service.d.ts.map +1 -0
  89. package/lib/services/models/ticket.service.d.ts.map +1 -0
  90. package/lib/services/models/visit.service.d.ts.map +1 -0
  91. package/lib/services/models/zone.service.d.ts.map +1 -0
  92. package/lib/services/navigator.service.d.ts.map +1 -0
  93. package/lib/services/s3.service.d.ts.map +1 -0
  94. package/lib/services/search.service.d.ts.map +1 -0
  95. package/lib/services/support.service.d.ts.map +1 -0
  96. package/lib/services/tag.service.d.ts.map +1 -0
  97. package/lib/services/user.service.d.ts.map +1 -0
  98. package/lib/services/validators.service.d.ts.map +1 -0
  99. package/lib/services/viewer.service.d.ts.map +1 -0
  100. package/lib/services/zone-drawer.service.d.ts.map +1 -0
  101. package/lib/services/zoneChange.service.d.ts.map +1 -0
  102. package/lib/types.service.d.ts.map +1 -0
  103. package/lib/validators/email.directive.d.ts.map +1 -0
  104. package/lib/validators/no-empty.directive.d.ts.map +1 -0
  105. package/lib/validators/number.directive.d.ts.map +1 -0
  106. package/lib/validators/text.directive.d.ts.map +1 -0
  107. package/package.json +1 -1
  108. package/public-api.d.ts.map +1 -0
  109. package/smarterplan-ngx-smarterplan-core.d.ts.map +1 -0
@@ -2672,7 +2672,8 @@ class MatterportService {
2672
2672
  };
2673
2673
  this.config = config;
2674
2674
  // TODO: only for dev!
2675
- if (document.location.href.indexOf('dev') !== -1 || document.location.href.indexOf('localhost') !== -1) {
2675
+ if (!!this.getCursorPositionButton &&
2676
+ (document.location.href.indexOf('dev') !== -1 || document.location.href.indexOf('localhost') !== -1)) {
2676
2677
  this.intervalCursorPointerPosition = setInterval(() => {
2677
2678
  if (!this.poseMatterport) {
2678
2679
  return;
@@ -2812,7 +2813,8 @@ class MatterportService {
2812
2813
  // (we are about to validate, but it exists in sdk already)
2813
2814
  this.enable_following_tag(this.mattertagToFollow);
2814
2815
  }
2815
- if (document.URL.indexOf('https://dev.smarterplan.io') !== -1 || document.location.href.indexOf('localhost') !== -1) {
2816
+ if (!!this.getCursorPositionButton && !!this.getCursorPositionButton.style &&
2817
+ (document.URL.indexOf('https://dev.smarterplan.io') !== -1 || document.location.href.indexOf('localhost') !== -1)) {
2816
2818
  this.getCursorPositionButton.style.display = 'none';
2817
2819
  this.cursorPositionButtonDisplayed = false;
2818
2820
  }
@@ -2926,6 +2928,7 @@ class MatterportService {
2926
2928
  // renderer.shadowMap.bias = 0.0001;
2927
2929
  // renderer.shadowMap.type = three.PCFSoftShadowMap;
2928
2930
  // });
2931
+ // TODO: wait for MP ticket resolution before decomment these!
2929
2932
  // Wait until Showcase is actually playing....
2930
2933
  // this.sdk.Tag.data.subscribe({
2931
2934
  // onAdded: async function (index, item, collection) {
@@ -3867,7 +3870,8 @@ class MatterportService {
3867
3870
  this.getCursorPositionButton.removeEventListener('auxclick', this.pointerMiddleClickHandler);
3868
3871
  }
3869
3872
  // TODO: only for dev!
3870
- if (document.location.href.indexOf('dev') !== -1 || document.location.href.indexOf('localhost') !== -1) {
3873
+ if (!!this.getCursorPositionButton &&
3874
+ (document.location.href.indexOf('dev') !== -1 || document.location.href.indexOf('localhost') !== -1)) {
3871
3875
  clearInterval(this.intervalCursorPointerPosition);
3872
3876
  }
3873
3877
  });
@@ -6621,30 +6625,31 @@ class NavigatorService {
6621
6625
  this.currentAudioZones = audioZones;
6622
6626
  // filter out audio zone (not to show to user it's name)
6623
6627
  zonesForSweep = zonesForSweep.filter((zone) => !zone.audio);
6624
- if (zonesForSweep && zonesForSweep.length > 0) {
6625
- this.zonesSortedForCurrentSweep = zonesForSweep.sort((a, b) => {
6626
- var _a, _b;
6627
- if (a.sweepIDs.length === b.sweepIDs.length) {
6628
- // if the same amount of sweeps: floor == the whole space
6629
- if (a.layer && b.layer) {
6630
- // put type BUILDING at the end
6631
- return a.layer.name !== 'BUILDING'
6632
- ? -1
6633
- : b.layer.name !== 'BUILDING'
6634
- ? 1
6635
- : 0;
6636
- }
6637
- return ((_a = a.parent) === null || _a === void 0 ? void 0 : _a.sweepIDs) ? -1 : ((_b = b.parent) === null || _b === void 0 ? void 0 : _b.sweepIDs) ? 1 : 0;
6638
- }
6639
- return a.sweepIDs.length - b.sweepIDs.length;
6640
- });
6641
- this.zoneChangeService.zonesForUserChange.next(this.zonesSortedForCurrentSweep);
6642
- if (this.zonesSortedForCurrentSweep.length > 0 &&
6643
- this.currentZone !== this.zonesSortedForCurrentSweep[0]) {
6644
- [this.currentZone] = this.zonesSortedForCurrentSweep;
6645
- this.zoneChangeService.zoneChange.next(this.currentZone);
6646
- }
6628
+ // LINE BELOW IS COMMENTED SINCE CREATES INFINITE SPINNER FOR ZONES WITHOUT AUDIO...
6629
+ // if (zonesForSweep && zonesForSweep.length > 0) {
6630
+ this.zonesSortedForCurrentSweep = zonesForSweep.sort((a, b) => {
6631
+ var _a, _b;
6632
+ if (a.sweepIDs.length === b.sweepIDs.length) {
6633
+ // if the same amount of sweeps: floor == the whole space
6634
+ if (a.layer && b.layer) {
6635
+ // put type BUILDING at the end
6636
+ return a.layer.name !== 'BUILDING'
6637
+ ? -1
6638
+ : b.layer.name !== 'BUILDING'
6639
+ ? 1
6640
+ : 0;
6641
+ }
6642
+ return ((_a = a.parent) === null || _a === void 0 ? void 0 : _a.sweepIDs) ? -1 : ((_b = b.parent) === null || _b === void 0 ? void 0 : _b.sweepIDs) ? 1 : 0;
6643
+ }
6644
+ return a.sweepIDs.length - b.sweepIDs.length;
6645
+ });
6646
+ this.zoneChangeService.zonesForUserChange.next(this.zonesSortedForCurrentSweep);
6647
+ if (this.zonesSortedForCurrentSweep.length > 0 &&
6648
+ this.currentZone !== this.zonesSortedForCurrentSweep[0]) {
6649
+ [this.currentZone] = this.zonesSortedForCurrentSweep;
6650
+ this.zoneChangeService.zoneChange.next(this.currentZone);
6647
6651
  }
6652
+ // }
6648
6653
  }
6649
6654
  }
6650
6655
  NavigatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NavigatorService, deps: [{ token: MatterportService }, { token: ViewerService }, { token: ZoneService }, { token: BaseUserService }, { token: ZoneChangeService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -11744,10 +11749,10 @@ class MenuBarComponent {
11744
11749
  }
11745
11750
  }
11746
11751
  MenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, deps: [{ token: i1$1.Router }, { token: LocaleService }, { token: BaseUserService }, { token: NavigatorService }, { token: SupportService }, { token: BaseVisibilityService }], target: i0.ɵɵFactoryTarget.Component });
11747
- 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\">\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>", styles: [":host{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}\n"], components: [{ type: RangeDatePickerComponent, selector: "lib-range-date-picker", inputs: ["cacheName"] }, { type: AvatarComponent, selector: "lib-avatar", inputs: ["size", "userID"] }, { type: NavigationBarComponent, selector: "lib-navigation-bar" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.NgbNavbar, selector: ".navbar" }, { type: i1$1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], pipes: { "translate": i1.TranslatePipe } });
11752
+ 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\">\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\">\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>", styles: [":host{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}\n"], components: [{ type: RangeDatePickerComponent, selector: "lib-range-date-picker", inputs: ["cacheName"] }, { type: AvatarComponent, selector: "lib-avatar", inputs: ["size", "userID"] }, { type: NavigationBarComponent, selector: "lib-navigation-bar" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$2.NgbNavbar, selector: ".navbar" }, { type: i1$1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }], pipes: { "translate": i1.TranslatePipe } });
11748
11753
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, decorators: [{
11749
11754
  type: Component,
11750
- 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\">\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>", styles: [":host{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}\n"] }]
11755
+ 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\">\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\">\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>", styles: [":host{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}\n"] }]
11751
11756
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: LocaleService }, { type: BaseUserService }, { type: NavigatorService }, { type: SupportService }, { type: BaseVisibilityService }]; } });
11752
11757
 
11753
11758
  class NgxSmarterplanCoreModule {
@@ -11853,7 +11858,7 @@ class BaseTagService {
11853
11858
  constructor() { }
11854
11859
  getHtmlToInject(tagType, object) {
11855
11860
  return __awaiter(this, void 0, void 0, function* () {
11856
- throw new Error(`getHtmlToInject is not implemented in the base class.
11861
+ throw new Error(`getHtmlToInject is not implemented in the base class.
11857
11862
  Please override this method in your extended class.`);
11858
11863
  });
11859
11864
  }
@@ -11880,37 +11885,37 @@ class BaseTagService {
11880
11885
  }
11881
11886
  prepareEquipmentHtml(equip) {
11882
11887
  return __awaiter(this, void 0, void 0, function* () {
11883
- throw new Error(`prepareEquipmentHtml is not implemented in the base class.
11888
+ throw new Error(`prepareEquipmentHtml is not implemented in the base class.
11884
11889
  Please override this method in your extended class.`);
11885
11890
  });
11886
11891
  }
11887
11892
  prepareTicketHtml(ticket) {
11888
11893
  return __awaiter(this, void 0, void 0, function* () {
11889
- throw new Error(`prepareTicketHtml is not implemented in the base class.
11894
+ throw new Error(`prepareTicketHtml is not implemented in the base class.
11890
11895
  Please override this method in your extended class.`);
11891
11896
  });
11892
11897
  }
11893
11898
  prepareFeatureHtml(feature) {
11894
11899
  return __awaiter(this, void 0, void 0, function* () {
11895
- throw new Error(`prepareFeatureHtml is not implemented in the base class.
11900
+ throw new Error(`prepareFeatureHtml is not implemented in the base class.
11896
11901
  Please override this method in your extended class.`);
11897
11902
  });
11898
11903
  }
11899
11904
  prepareMeasurementHtml(measure) {
11900
11905
  return __awaiter(this, void 0, void 0, function* () {
11901
- throw new Error(`prepareMeasurementHtml is not implemented in the base class.
11906
+ throw new Error(`prepareMeasurementHtml is not implemented in the base class.
11902
11907
  Please override this method in your extended class.`);
11903
11908
  });
11904
11909
  }
11905
11910
  prepareDeskHtml(feature) {
11906
11911
  return __awaiter(this, void 0, void 0, function* () {
11907
- throw new Error(`prepareDeskHtml is not implemented in the base class.
11912
+ throw new Error(`prepareDeskHtml is not implemented in the base class.
11908
11913
  Please override this method in your extended class.`);
11909
11914
  });
11910
11915
  }
11911
11916
  prepareIndicatorHtml(feature) {
11912
11917
  return __awaiter(this, void 0, void 0, function* () {
11913
- throw new Error(`prepareDeskHtml is not implemented in the base class.
11918
+ throw new Error(`prepareDeskHtml is not implemented in the base class.
11914
11919
  Please override this method in your extended class.`);
11915
11920
  });
11916
11921
  }
@@ -11922,43 +11927,43 @@ class BaseTagService {
11922
11927
  getIconTagImageForFeature(feature, poi) {
11923
11928
  // const tagIcon = JSON.parse(poi.tagIcon);
11924
11929
  // return tagIcon.src;
11925
- throw new Error(`getIconTagImageForFeature is not implemented in the base class.
11930
+ throw new Error(`getIconTagImageForFeature is not implemented in the base class.
11926
11931
  Please override this method in your extended class.`);
11927
11932
  }
11928
11933
  getScriptForTag(object, tagType) {
11929
- throw new Error(`getScriptForTag is not implemented in the base class.
11934
+ throw new Error(`getScriptForTag is not implemented in the base class.
11930
11935
  Please override this method in your extended class.`);
11931
11936
  }
11932
11937
  getAnnexeForCommentTypeInFeature(feature, commentType) {
11933
- throw new Error(`getAnnexeForCommentTypeInFeature is not implemented in the base class.
11938
+ throw new Error(`getAnnexeForCommentTypeInFeature is not implemented in the base class.
11934
11939
  Please override this method in your extended class.`);
11935
11940
  }
11936
11941
  getBillboardMediaToEmbed(object) {
11937
- throw new Error(`getBillboardMediaToEmbed is not implemented in the base class.
11942
+ throw new Error(`getBillboardMediaToEmbed is not implemented in the base class.
11938
11943
  Please override this method in your extended class.`);
11939
11944
  }
11940
11945
  onActionDetailClick(url) {
11941
- throw new Error(`onActionDetailClick is not implemented in the base class.
11946
+ throw new Error(`onActionDetailClick is not implemented in the base class.
11942
11947
  Please override this method in your extended class.`);
11943
11948
  }
11944
11949
  onActionAudioClick(audioCommentID) {
11945
- throw new Error(`onActionDetailClick is not implemented in the base class.
11950
+ throw new Error(`onActionDetailClick is not implemented in the base class.
11946
11951
  Please override this method in your extended class.`);
11947
11952
  }
11948
11953
  onActionVideoClick(url) {
11949
- throw new Error(`onActionVideoClick is not implemented in the base class.
11954
+ throw new Error(`onActionVideoClick is not implemented in the base class.
11950
11955
  Please override this method in your extended class.`);
11951
11956
  }
11952
11957
  onActionImageClick(imageCommentID) {
11953
- throw new Error(`onActionImageClick is not implemented in the base class.
11958
+ throw new Error(`onActionImageClick is not implemented in the base class.
11954
11959
  Please override this method in your extended class.`);
11955
11960
  }
11956
11961
  onActionDocClick(url) {
11957
- throw new Error(`onActionDocClick is not implemented in the base class.
11962
+ throw new Error(`onActionDocClick is not implemented in the base class.
11958
11963
  Please override this method in your extended class.`);
11959
11964
  }
11960
11965
  onActionYoutubeClick(url) {
11961
- throw new Error(`onActionYoutubeClick is not implemented in the base class.
11966
+ throw new Error(`onActionYoutubeClick is not implemented in the base class.
11962
11967
  Please override this method in your extended class.`);
11963
11968
  }
11964
11969
  }