@smarterplan/ngx-smarterplan-core 1.2.9 → 1.2.11

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 (161) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/components/csv-export/csv-export.component.mjs +3 -3
  3. package/esm2020/lib/components/loader/loader.component.mjs +3 -3
  4. package/esm2020/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
  5. package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +3 -3
  6. package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
  7. package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +1 -1
  8. package/esm2020/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
  9. package/esm2020/lib/components/search-bar/search-bar.component.mjs +3 -3
  10. package/esm2020/lib/components/support-modal/support-modal.component.mjs +3 -3
  11. package/esm2020/lib/config.mjs +1 -1
  12. package/esm2020/lib/helpers.service.mjs +1 -1
  13. package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
  14. package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
  15. package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
  16. package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
  17. package/esm2020/lib/mattertagData.mjs +1 -1
  18. package/esm2020/lib/ngx-smarterplan-core.module.mjs +1 -1
  19. package/esm2020/lib/ngx-smarterplan-core.service.mjs +1 -1
  20. package/esm2020/lib/pipes/duration-to-string.pipe.mjs +1 -1
  21. package/esm2020/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
  22. package/esm2020/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
  23. package/esm2020/lib/pipes/safe-url.pipe.mjs +1 -1
  24. package/esm2020/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
  25. package/esm2020/lib/pipes/username-from-id.pipe.mjs +1 -1
  26. package/esm2020/lib/services/amplify-cache.service.mjs +1 -1
  27. package/esm2020/lib/services/base-tab.service.mjs +1 -1
  28. package/esm2020/lib/services/baseVisibility.service.mjs +1 -1
  29. package/esm2020/lib/services/content.service.mjs +1 -1
  30. package/esm2020/lib/services/filter.service.mjs +1 -1
  31. package/esm2020/lib/services/intervention.service.mjs +1 -1
  32. package/esm2020/lib/services/locale.service.mjs +1 -1
  33. package/esm2020/lib/services/matterport-import.service.mjs +1 -1
  34. package/esm2020/lib/services/matterport.service.mjs +56 -1
  35. package/esm2020/lib/services/models/affectation.service.mjs +1 -1
  36. package/esm2020/lib/services/models/base-object.service.mjs +1 -1
  37. package/esm2020/lib/services/models/capture.service.mjs +1 -1
  38. package/esm2020/lib/services/models/comment.service.mjs +1 -1
  39. package/esm2020/lib/services/models/domain.service.mjs +1 -1
  40. package/esm2020/lib/services/models/equipment.service.mjs +1 -1
  41. package/esm2020/lib/services/models/event.service.mjs +1 -1
  42. package/esm2020/lib/services/models/feature.service.mjs +1 -1
  43. package/esm2020/lib/services/models/hashtag.service.mjs +1 -1
  44. package/esm2020/lib/services/models/layer.service.mjs +1 -1
  45. package/esm2020/lib/services/models/measurement.service.mjs +1 -1
  46. package/esm2020/lib/services/models/mission.service.mjs +1 -1
  47. package/esm2020/lib/services/models/navigation.service.mjs +1 -1
  48. package/esm2020/lib/services/models/node.service.mjs +1 -1
  49. package/esm2020/lib/services/models/object3D.service.mjs +1 -1
  50. package/esm2020/lib/services/models/operation.service.mjs +1 -1
  51. package/esm2020/lib/services/models/organisation.service.mjs +1 -1
  52. package/esm2020/lib/services/models/plan.service.mjs +1 -1
  53. package/esm2020/lib/services/models/poi.service.mjs +1 -1
  54. package/esm2020/lib/services/models/profile.service.mjs +1 -1
  55. package/esm2020/lib/services/models/property.service.mjs +1 -1
  56. package/esm2020/lib/services/models/space.service.mjs +1 -1
  57. package/esm2020/lib/services/models/template.service.mjs +1 -1
  58. package/esm2020/lib/services/models/ticket.service.mjs +1 -1
  59. package/esm2020/lib/services/models/visit.service.mjs +1 -1
  60. package/esm2020/lib/services/models/zone.service.mjs +1 -1
  61. package/esm2020/lib/services/navigator.service.mjs +1 -1
  62. package/esm2020/lib/services/s3.service.mjs +1 -1
  63. package/esm2020/lib/services/search.service.mjs +1 -1
  64. package/esm2020/lib/services/support.service.mjs +1 -1
  65. package/esm2020/lib/services/tag.service.mjs +18 -18
  66. package/esm2020/lib/services/user.service.mjs +1 -1
  67. package/esm2020/lib/services/validators.service.mjs +1 -1
  68. package/esm2020/lib/services/zone-drawer.service.mjs +1 -1
  69. package/esm2020/lib/services/zoneChange.service.mjs +1 -1
  70. package/esm2020/lib/validators/email.directive.mjs +1 -1
  71. package/esm2020/lib/validators/no-empty.directive.mjs +1 -1
  72. package/esm2020/lib/validators/number.directive.mjs +1 -1
  73. package/esm2020/lib/validators/text.directive.mjs +1 -1
  74. package/esm2020/public-api.mjs +1 -1
  75. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +88 -31
  76. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  77. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +86 -31
  78. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  79. package/lib/components/csv-export/csv-export.component.d.ts.map +1 -0
  80. package/lib/components/loader/loader.component.d.ts.map +1 -0
  81. package/lib/components/menu-bar/avatar/avatar.component.d.ts.map +1 -0
  82. package/lib/components/menu-bar/menu-bar.component.d.ts.map +1 -0
  83. package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts.map +1 -0
  84. package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts.map +1 -0
  85. package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts.map +1 -0
  86. package/lib/components/search-bar/search-bar.component.d.ts.map +1 -0
  87. package/lib/components/support-modal/support-modal.component.d.ts.map +1 -0
  88. package/lib/config.d.ts.map +1 -0
  89. package/lib/helpers.service.d.ts.map +1 -0
  90. package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts.map +1 -0
  91. package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts.map +1 -0
  92. package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts.map +1 -0
  93. package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts.map +1 -0
  94. package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts.map +1 -0
  95. package/lib/matterport-extensions/scene-component/SceneComponent.d.ts.map +1 -0
  96. package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts.map +1 -0
  97. package/lib/matterport-extensions/tv-player/TvPlayer.d.ts.map +1 -0
  98. package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts.map +1 -0
  99. package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts.map +1 -0
  100. package/lib/mattertagData.d.ts.map +1 -0
  101. package/lib/ngx-smarterplan-core.module.d.ts.map +1 -0
  102. package/lib/ngx-smarterplan-core.service.d.ts.map +1 -0
  103. package/lib/pipes/duration-to-string.pipe.d.ts.map +1 -0
  104. package/lib/pipes/format-date-number-to-digits.pipe.d.ts.map +1 -0
  105. package/lib/pipes/hashtag-from-id.pipe.d.ts.map +1 -0
  106. package/lib/pipes/safe-url.pipe.d.ts.map +1 -0
  107. package/lib/pipes/time-date-to-local-string.pipe.d.ts.map +1 -0
  108. package/lib/pipes/username-from-id.pipe.d.ts.map +1 -0
  109. package/lib/services/amplify-cache.service.d.ts.map +1 -0
  110. package/lib/services/base-tab.service.d.ts.map +1 -0
  111. package/lib/services/baseVisibility.service.d.ts.map +1 -0
  112. package/lib/services/content.service.d.ts.map +1 -0
  113. package/lib/services/filter.service.d.ts.map +1 -0
  114. package/lib/services/intervention.service.d.ts.map +1 -0
  115. package/lib/services/locale.service.d.ts.map +1 -0
  116. package/lib/services/matterport-import.service.d.ts.map +1 -0
  117. package/lib/services/matterport.service.d.ts.map +1 -0
  118. package/lib/services/models/affectation.service.d.ts.map +1 -0
  119. package/lib/services/models/base-object.service.d.ts.map +1 -0
  120. package/lib/services/models/capture.service.d.ts.map +1 -0
  121. package/lib/services/models/comment.service.d.ts.map +1 -0
  122. package/lib/services/models/domain.service.d.ts.map +1 -0
  123. package/lib/services/models/equipment.service.d.ts.map +1 -0
  124. package/lib/services/models/event.service.d.ts.map +1 -0
  125. package/lib/services/models/feature.service.d.ts.map +1 -0
  126. package/lib/services/models/hashtag.service.d.ts.map +1 -0
  127. package/lib/services/models/layer.service.d.ts.map +1 -0
  128. package/lib/services/models/measurement.service.d.ts.map +1 -0
  129. package/lib/services/models/mission.service.d.ts.map +1 -0
  130. package/lib/services/models/navigation.service.d.ts.map +1 -0
  131. package/lib/services/models/node.service.d.ts.map +1 -0
  132. package/lib/services/models/object3D.service.d.ts.map +1 -0
  133. package/lib/services/models/operation.service.d.ts.map +1 -0
  134. package/lib/services/models/organisation.service.d.ts.map +1 -0
  135. package/lib/services/models/plan.service.d.ts.map +1 -0
  136. package/lib/services/models/poi.service.d.ts.map +1 -0
  137. package/lib/services/models/profile.service.d.ts.map +1 -0
  138. package/lib/services/models/property.service.d.ts.map +1 -0
  139. package/lib/services/models/space.service.d.ts.map +1 -0
  140. package/lib/services/models/template.service.d.ts.map +1 -0
  141. package/lib/services/models/ticket.service.d.ts.map +1 -0
  142. package/lib/services/models/visit.service.d.ts.map +1 -0
  143. package/lib/services/models/zone.service.d.ts.map +1 -0
  144. package/lib/services/navigator.service.d.ts.map +1 -0
  145. package/lib/services/s3.service.d.ts.map +1 -0
  146. package/lib/services/search.service.d.ts.map +1 -0
  147. package/lib/services/support.service.d.ts.map +1 -0
  148. package/lib/services/tag.service.d.ts.map +1 -0
  149. package/lib/services/user.service.d.ts.map +1 -0
  150. package/lib/services/validators.service.d.ts.map +1 -0
  151. package/lib/services/viewer.service.d.ts.map +1 -0
  152. package/lib/services/zone-drawer.service.d.ts.map +1 -0
  153. package/lib/services/zoneChange.service.d.ts.map +1 -0
  154. package/lib/types.service.d.ts.map +1 -0
  155. package/lib/validators/email.directive.d.ts.map +1 -0
  156. package/lib/validators/no-empty.directive.d.ts.map +1 -0
  157. package/lib/validators/number.directive.d.ts.map +1 -0
  158. package/lib/validators/text.directive.d.ts.map +1 -0
  159. package/package.json +1 -1
  160. package/public-api.d.ts.map +1 -0
  161. package/smarterplan-ngx-smarterplan-core.d.ts.map +1 -0
@@ -85,10 +85,10 @@ class CsvExportComponent {
85
85
  }
86
86
  }
87
87
  CsvExportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CsvExportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
88
- CsvExportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CsvExportComponent, selector: "lib-csv-export", inputs: { headers: "headers", rowsInput: "rowsInput", getRows: "getRows", title: "title", buttonLabel: "buttonLabel" }, ngImport: i0, template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\r\n <span class=\"iconify\" data-icon=\"mdi:file-download-outline\"></span>\r\n {{ buttonLabel | translate}}\r\n</span>\r\n", styles: [".download-csv{color:var(--smarterplan-primary)}\n"], pipes: { "translate": i1.TranslatePipe } });
88
+ CsvExportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CsvExportComponent, selector: "lib-csv-export", inputs: { headers: "headers", rowsInput: "rowsInput", getRows: "getRows", title: "title", buttonLabel: "buttonLabel" }, ngImport: i0, template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\n <span class=\"iconify\" data-icon=\"mdi:file-download-outline\"></span>\n {{ buttonLabel | translate}}\n</span>\n", styles: [".download-csv{color:var(--smarterplan-primary)}\n"], pipes: { "translate": i1.TranslatePipe } });
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CsvExportComponent, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'lib-csv-export', template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\r\n <span class=\"iconify\" data-icon=\"mdi:file-download-outline\"></span>\r\n {{ buttonLabel | translate}}\r\n</span>\r\n", styles: [".download-csv{color:var(--smarterplan-primary)}\n"] }]
91
+ args: [{ selector: 'lib-csv-export', template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\n <span class=\"iconify\" data-icon=\"mdi:file-download-outline\"></span>\n {{ buttonLabel | translate}}\n</span>\n", styles: [".download-csv{color:var(--smarterplan-primary)}\n"] }]
92
92
  }], propDecorators: { headers: [{
93
93
  type: Input
94
94
  }], rowsInput: [{
@@ -2924,6 +2924,63 @@ class MatterportService {
2924
2924
  // renderer.shadowMap.bias = 0.0001;
2925
2925
  // renderer.shadowMap.type = three.PCFSoftShadowMap;
2926
2926
  // });
2927
+ let sensorRadius = 3.5; // Meters
2928
+ // Wait until Showcase is actually playing....
2929
+ this.sdk.Tag.data.subscribe({
2930
+ onAdded: function (index, item, collection) {
2931
+ return __awaiter(this, void 0, void 0, function* () {
2932
+ let thisOpacity = 0.2;
2933
+ this.sdk.Tag.editOpacity(index, thisOpacity);
2934
+ const source = yield Promise.all([
2935
+ this.sdk.Sensor.createSource(this.sdk.Sensor.SourceType.SPHERE, {
2936
+ origin: item.discPosition,
2937
+ radius: sensorRadius,
2938
+ userData: {
2939
+ id: index + '-sphere-source',
2940
+ },
2941
+ })
2942
+ ]);
2943
+ const sensor = yield this.sdk.Sensor.createSensor(this.sdk.Sensor.SensorType.CAMERA);
2944
+ sensor.addSource(...source);
2945
+ sensor.readings.subscribe({
2946
+ onUpdated(source, reading) {
2947
+ console.log(thisOpacity);
2948
+ let oldOpacity = thisOpacity;
2949
+ if (reading.inRange) {
2950
+ thisOpacity = 1;
2951
+ console.log(index + ' is inRange');
2952
+ }
2953
+ else if (reading.inView) {
2954
+ console.log(index + ' is inView but not inRange');
2955
+ thisOpacity = 0.5;
2956
+ }
2957
+ else {
2958
+ thisOpacity = 0.2;
2959
+ console.log(index + ' is not inView or inRange');
2960
+ }
2961
+ this.sdk.Tag.editOpacity(index, thisOpacity);
2962
+ /*
2963
+ let inc = 0.01;
2964
+ if (oldOpacity > thisOpacity) {
2965
+ inc = -0.01;
2966
+ }
2967
+
2968
+ for(var i = oldOpacity; i != thisOpacity; i=i+inc) {
2969
+ setTimeout(function() {
2970
+ mpSdk.Tag.editOpacity(index, i);
2971
+ console.log('Delay', i);
2972
+ },10);
2973
+ }
2974
+ */
2975
+ }
2976
+ });
2977
+ //sensor.showDebug(true);
2978
+ });
2979
+ }.bind(this),
2980
+ onCollectionUpdated: function (collection) {
2981
+ console.log('Collection received. There are ', Object.keys(collection).length, ' Tags in the collection', collection);
2982
+ }
2983
+ });
2927
2984
  resolve(true);
2928
2985
  });
2929
2986
  }.bind(this));
@@ -4476,10 +4533,10 @@ class ModalSwitchVisitComponent {
4476
4533
  }
4477
4534
  }
4478
4535
  ModalSwitchVisitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalSwitchVisitComponent, deps: [{ token: i1$2.NgbActiveModal }, { token: i1$1.Router }, { token: ViewerService }], target: i0.ɵɵFactoryTarget.Component });
4479
- ModalSwitchVisitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ModalSwitchVisitComponent, selector: "lib-modal-switch-visit", inputs: { content: "content", model3D: "model3D", spaceID: "spaceID", dataToMove: "dataToMove" }, ngImport: i0, template: "<div class=\"modal-container\">\r\n <p>{{content}}</p>\r\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"switchVisit()\">{{'Yes, switch visit' | translate }}</button>\r\n <button class=\"btn btn-outline-primary rounded-pill\"(click)=\"activeModal.close()\">{{'No, stay here' | translate }}</button>\r\n</div>\r\n", styles: [".modal-container{margin:10px}button{margin-right:8px}\n"], pipes: { "translate": i1.TranslatePipe } });
4536
+ ModalSwitchVisitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ModalSwitchVisitComponent, selector: "lib-modal-switch-visit", inputs: { content: "content", model3D: "model3D", spaceID: "spaceID", dataToMove: "dataToMove" }, ngImport: i0, template: "<div class=\"modal-container\">\n <p>{{content}}</p>\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"switchVisit()\">{{'Yes, switch visit' | translate }}</button>\n <button class=\"btn btn-outline-primary rounded-pill\"(click)=\"activeModal.close()\">{{'No, stay here' | translate }}</button>\n</div>\n", styles: [".modal-container{margin:10px}button{margin-right:8px}\n"], pipes: { "translate": i1.TranslatePipe } });
4480
4537
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalSwitchVisitComponent, decorators: [{
4481
4538
  type: Component,
4482
- args: [{ selector: 'lib-modal-switch-visit', template: "<div class=\"modal-container\">\r\n <p>{{content}}</p>\r\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"switchVisit()\">{{'Yes, switch visit' | translate }}</button>\r\n <button class=\"btn btn-outline-primary rounded-pill\"(click)=\"activeModal.close()\">{{'No, stay here' | translate }}</button>\r\n</div>\r\n", styles: [".modal-container{margin:10px}button{margin-right:8px}\n"] }]
4539
+ args: [{ selector: 'lib-modal-switch-visit', template: "<div class=\"modal-container\">\n <p>{{content}}</p>\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"switchVisit()\">{{'Yes, switch visit' | translate }}</button>\n <button class=\"btn btn-outline-primary rounded-pill\"(click)=\"activeModal.close()\">{{'No, stay here' | translate }}</button>\n</div>\n", styles: [".modal-container{margin:10px}button{margin-right:8px}\n"] }]
4483
4540
  }], ctorParameters: function () { return [{ type: i1$2.NgbActiveModal }, { type: i1$1.Router }, { type: ViewerService }]; }, propDecorators: { content: [{
4484
4541
  type: Input
4485
4542
  }], model3D: [{
@@ -8211,10 +8268,10 @@ class SearchBarComponent {
8211
8268
  }
8212
8269
  }
8213
8270
  SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SearchBarComponent, deps: [{ token: SearchService }], target: i0.ɵɵFactoryTarget.Component });
8214
- SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SearchBarComponent, selector: "lib-search-bar", inputs: { searchable: "searchable", objectType: "objectType" }, outputs: { searchEvent: "searchEvent" }, ngImport: i0, template: "<div class=\"col-md-8 searchbar\">\r\n <div class=\"row depend\">\r\n <div class=\"col-md-5\">\r\n <input id=\"searchbar\" type=\"text\" class=\"form-control\" placeholder=\"keyword\" />\r\n </div>\r\n <div class=\"col-md-5\">\r\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onSubmit()\">{{ 'Search' |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n</div>", styles: [".searchbar{margin-bottom:10px}\n"], pipes: { "translate": i1.TranslatePipe } });
8271
+ SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SearchBarComponent, selector: "lib-search-bar", inputs: { searchable: "searchable", objectType: "objectType" }, outputs: { searchEvent: "searchEvent" }, ngImport: i0, template: "<div class=\"col-md-8 searchbar\">\n <div class=\"row depend\">\n <div class=\"col-md-5\">\n <input id=\"searchbar\" type=\"text\" class=\"form-control\" placeholder=\"keyword\" />\n </div>\n <div class=\"col-md-5\">\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onSubmit()\">{{ 'Search' |\n translate}}</button>\n </div>\n </div>\n</div>", styles: [".searchbar{margin-bottom:10px}\n"], pipes: { "translate": i1.TranslatePipe } });
8215
8272
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SearchBarComponent, decorators: [{
8216
8273
  type: Component,
8217
- args: [{ selector: 'lib-search-bar', template: "<div class=\"col-md-8 searchbar\">\r\n <div class=\"row depend\">\r\n <div class=\"col-md-5\">\r\n <input id=\"searchbar\" type=\"text\" class=\"form-control\" placeholder=\"keyword\" />\r\n </div>\r\n <div class=\"col-md-5\">\r\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onSubmit()\">{{ 'Search' |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n</div>", styles: [".searchbar{margin-bottom:10px}\n"] }]
8274
+ args: [{ selector: 'lib-search-bar', template: "<div class=\"col-md-8 searchbar\">\n <div class=\"row depend\">\n <div class=\"col-md-5\">\n <input id=\"searchbar\" type=\"text\" class=\"form-control\" placeholder=\"keyword\" />\n </div>\n <div class=\"col-md-5\">\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onSubmit()\">{{ 'Search' |\n translate}}</button>\n </div>\n </div>\n</div>", styles: [".searchbar{margin-bottom:10px}\n"] }]
8218
8275
  }], ctorParameters: function () { return [{ type: SearchService }]; }, propDecorators: { searchable: [{
8219
8276
  type: Input
8220
8277
  }], objectType: [{
@@ -8628,10 +8685,10 @@ class LoaderComponent {
8628
8685
  }
8629
8686
  }
8630
8687
  LoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8631
- LoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: LoaderComponent, selector: "lib-loader", inputs: { useLogo: "useLogo", color: "color" }, ngImport: i0, template: "<div class=\"sk-fading-circle\">\r\n <img *ngIf=\"useLogo\" src=\"../../../../assets/icons/smarterplan.svg\">\r\n <div class=\"sk-circle1 sk-circle\"></div>\r\n <div class=\"sk-circle2 sk-circle\"></div>\r\n <div class=\"sk-circle3 sk-circle\"></div>\r\n <div class=\"sk-circle4 sk-circle\"></div>\r\n <div class=\"sk-circle5 sk-circle\"></div>\r\n <div class=\"sk-circle6 sk-circle\"></div>\r\n <div class=\"sk-circle7 sk-circle\"></div>\r\n <div class=\"sk-circle8 sk-circle\"></div>\r\n <div class=\"sk-circle9 sk-circle\"></div>\r\n <div class=\"sk-circle10 sk-circle\"></div>\r\n <div class=\"sk-circle11 sk-circle\"></div>\r\n <div class=\"sk-circle12 sk-circle\"></div>\r\n</div>\r\n", styles: [".sk-fading-circle{width:88px;height:88px;position:relative}.sk-fading-circle img{width:2rem;position:absolute;left:calc(50% - 16px);top:calc(50% - 16px)}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;background-color:var(--color);border-radius:100%;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{transform:rotate(30deg)}.sk-fading-circle .sk-circle3{transform:rotate(60deg)}.sk-fading-circle .sk-circle4{transform:rotate(90deg)}.sk-fading-circle .sk-circle5{transform:rotate(120deg)}.sk-fading-circle .sk-circle6{transform:rotate(150deg)}.sk-fading-circle .sk-circle7{transform:rotate(180deg)}.sk-fading-circle .sk-circle8{transform:rotate(210deg)}.sk-fading-circle .sk-circle9{transform:rotate(240deg)}.sk-fading-circle .sk-circle10{transform:rotate(270deg)}.sk-fading-circle .sk-circle11{transform:rotate(300deg)}.sk-fading-circle .sk-circle12{transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{animation-delay:-1s}.sk-fading-circle .sk-circle4:before{animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{animation-delay:-.1s}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8688
+ LoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: LoaderComponent, selector: "lib-loader", inputs: { useLogo: "useLogo", color: "color" }, ngImport: i0, template: "<div class=\"sk-fading-circle\">\n <img *ngIf=\"useLogo\" src=\"../../../../assets/icons/smarterplan.svg\">\n <div class=\"sk-circle1 sk-circle\"></div>\n <div class=\"sk-circle2 sk-circle\"></div>\n <div class=\"sk-circle3 sk-circle\"></div>\n <div class=\"sk-circle4 sk-circle\"></div>\n <div class=\"sk-circle5 sk-circle\"></div>\n <div class=\"sk-circle6 sk-circle\"></div>\n <div class=\"sk-circle7 sk-circle\"></div>\n <div class=\"sk-circle8 sk-circle\"></div>\n <div class=\"sk-circle9 sk-circle\"></div>\n <div class=\"sk-circle10 sk-circle\"></div>\n <div class=\"sk-circle11 sk-circle\"></div>\n <div class=\"sk-circle12 sk-circle\"></div>\n</div>\n", styles: [".sk-fading-circle{width:88px;height:88px;position:relative}.sk-fading-circle img{width:2rem;position:absolute;left:calc(50% - 16px);top:calc(50% - 16px)}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;background-color:var(--color);border-radius:100%;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{transform:rotate(30deg)}.sk-fading-circle .sk-circle3{transform:rotate(60deg)}.sk-fading-circle .sk-circle4{transform:rotate(90deg)}.sk-fading-circle .sk-circle5{transform:rotate(120deg)}.sk-fading-circle .sk-circle6{transform:rotate(150deg)}.sk-fading-circle .sk-circle7{transform:rotate(180deg)}.sk-fading-circle .sk-circle8{transform:rotate(210deg)}.sk-fading-circle .sk-circle9{transform:rotate(240deg)}.sk-fading-circle .sk-circle10{transform:rotate(270deg)}.sk-fading-circle .sk-circle11{transform:rotate(300deg)}.sk-fading-circle .sk-circle12{transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{animation-delay:-1s}.sk-fading-circle .sk-circle4:before{animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{animation-delay:-.1s}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
8632
8689
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: LoaderComponent, decorators: [{
8633
8690
  type: Component,
8634
- args: [{ selector: 'lib-loader', template: "<div class=\"sk-fading-circle\">\r\n <img *ngIf=\"useLogo\" src=\"../../../../assets/icons/smarterplan.svg\">\r\n <div class=\"sk-circle1 sk-circle\"></div>\r\n <div class=\"sk-circle2 sk-circle\"></div>\r\n <div class=\"sk-circle3 sk-circle\"></div>\r\n <div class=\"sk-circle4 sk-circle\"></div>\r\n <div class=\"sk-circle5 sk-circle\"></div>\r\n <div class=\"sk-circle6 sk-circle\"></div>\r\n <div class=\"sk-circle7 sk-circle\"></div>\r\n <div class=\"sk-circle8 sk-circle\"></div>\r\n <div class=\"sk-circle9 sk-circle\"></div>\r\n <div class=\"sk-circle10 sk-circle\"></div>\r\n <div class=\"sk-circle11 sk-circle\"></div>\r\n <div class=\"sk-circle12 sk-circle\"></div>\r\n</div>\r\n", styles: [".sk-fading-circle{width:88px;height:88px;position:relative}.sk-fading-circle img{width:2rem;position:absolute;left:calc(50% - 16px);top:calc(50% - 16px)}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;background-color:var(--color);border-radius:100%;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{transform:rotate(30deg)}.sk-fading-circle .sk-circle3{transform:rotate(60deg)}.sk-fading-circle .sk-circle4{transform:rotate(90deg)}.sk-fading-circle .sk-circle5{transform:rotate(120deg)}.sk-fading-circle .sk-circle6{transform:rotate(150deg)}.sk-fading-circle .sk-circle7{transform:rotate(180deg)}.sk-fading-circle .sk-circle8{transform:rotate(210deg)}.sk-fading-circle .sk-circle9{transform:rotate(240deg)}.sk-fading-circle .sk-circle10{transform:rotate(270deg)}.sk-fading-circle .sk-circle11{transform:rotate(300deg)}.sk-fading-circle .sk-circle12{transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{animation-delay:-1s}.sk-fading-circle .sk-circle4:before{animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{animation-delay:-.1s}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}\n"] }]
8691
+ args: [{ selector: 'lib-loader', template: "<div class=\"sk-fading-circle\">\n <img *ngIf=\"useLogo\" src=\"../../../../assets/icons/smarterplan.svg\">\n <div class=\"sk-circle1 sk-circle\"></div>\n <div class=\"sk-circle2 sk-circle\"></div>\n <div class=\"sk-circle3 sk-circle\"></div>\n <div class=\"sk-circle4 sk-circle\"></div>\n <div class=\"sk-circle5 sk-circle\"></div>\n <div class=\"sk-circle6 sk-circle\"></div>\n <div class=\"sk-circle7 sk-circle\"></div>\n <div class=\"sk-circle8 sk-circle\"></div>\n <div class=\"sk-circle9 sk-circle\"></div>\n <div class=\"sk-circle10 sk-circle\"></div>\n <div class=\"sk-circle11 sk-circle\"></div>\n <div class=\"sk-circle12 sk-circle\"></div>\n</div>\n", styles: [".sk-fading-circle{width:88px;height:88px;position:relative}.sk-fading-circle img{width:2rem;position:absolute;left:calc(50% - 16px);top:calc(50% - 16px)}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;background-color:var(--color);border-radius:100%;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{transform:rotate(30deg)}.sk-fading-circle .sk-circle3{transform:rotate(60deg)}.sk-fading-circle .sk-circle4{transform:rotate(90deg)}.sk-fading-circle .sk-circle5{transform:rotate(120deg)}.sk-fading-circle .sk-circle6{transform:rotate(150deg)}.sk-fading-circle .sk-circle7{transform:rotate(180deg)}.sk-fading-circle .sk-circle8{transform:rotate(210deg)}.sk-fading-circle .sk-circle9{transform:rotate(240deg)}.sk-fading-circle .sk-circle10{transform:rotate(270deg)}.sk-fading-circle .sk-circle11{transform:rotate(300deg)}.sk-fading-circle .sk-circle12{transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{animation-delay:-1s}.sk-fading-circle .sk-circle4:before{animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{animation-delay:-.1s}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}\n"] }]
8635
8692
  }], ctorParameters: function () { return []; }, propDecorators: { useLogo: [{
8636
8693
  type: Input
8637
8694
  }], color: [{
@@ -8689,10 +8746,10 @@ class SupportModalComponent {
8689
8746
  }
8690
8747
  }
8691
8748
  SupportModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SupportModalComponent, deps: [{ token: SupportService }, { token: i1$2.NgbActiveModal }, { token: i3.FormBuilder }, { token: BaseUserService }, { token: ValidatorsService }], target: i0.ɵɵFactoryTarget.Component });
8692
- SupportModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SupportModalComponent, selector: "app-support-modal", ngImport: i0, template: "<div class=\"modal-header\">\r\n <h5 class=\"modal-title\" translate=\"Help\"></h5>\r\n</div>\r\n<div class=\"modal-body\">\r\n <div class=\"support-loader-container\">\r\n <lib-loader *ngIf=\"loading\"></lib-loader>\r\n </div>\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"supportForm\" style=\"margin-top:1rem;\" *ngIf=\"!loading && status==='new'\">\r\n <div>\r\n <label>{{'Title' | translate}} *</label>\r\n <div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" data-testid=\"new-support-title\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['title'])}\"\r\n maxlength=\"255\">\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <span data-testid=\"new-support-title-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['title'])\"\r\n *ngIf=\" validatorsService.isControlError(supportForm.controls['title'])\"></span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!currentUser\">\r\n <label>{{'Email' | translate}} *</label>\r\n <div>\r\n <input type=\"email\" class=\"form-control\" formControlName=\"email\" data-testid=\"new-support-email\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['email'])}\"\r\n maxlength=\"255\">\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <span data-testid=\"new-support-email-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['email'])\"\r\n *ngIf=\" validatorsService.isControlError(supportForm.controls['email'])\"></span>\r\n </div>\r\n </div>\r\n <div>\r\n <label>{{'Description' | translate}} *</label>\r\n <div>\r\n <textarea formControlName=\"description\" class=\"form-control\"\r\n data-testid=\"new-support-description\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['description'])}\"></textarea>\r\n </div>\r\n <div class=\"invalid-feedback\" >\r\n <span data-testid=\"new-support-description-invalid\" [translate]=\" validatorsService.getError(supportForm.controls['description'])\"\r\n *ngIf=\"validatorsService.isControlError(supportForm.controls['description'])\"></span>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"status ==='send'\" translate=\"Your request has been registered\" data-testid=\"new-support-send-info\">\r\n </div>\r\n <div *ngIf=\"status ==='error'\" translate=\"An error has occurred, please renew your request\"\r\n data-testid=\"new-support-error-info\">\r\n\r\n </div>\r\n</div>\r\n<div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn rounded-pill btn-museum\" data-dismiss=\"modal\" translate=\"Close\" (click)=\"onClose()\"\r\n data-testid=\"new-support-close-btn\"></button>\r\n <button *ngIf=\"!loading && status==='new'\" type=\"button\" class=\"btn rounded-pill btn-museum\" translate=\"Submit\"\r\n (click)=\"onSubmit()\" [disabled]=\"!supportForm.valid\" data-testid=\"new-support-submit-btn\"></button>\r\n</div>", styles: [".support-loader-container{width:88px;margin:auto}.invalid-feedback{height:16px}\n"], components: [{ type: LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }], directives: [{ type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i1.TranslatePipe } });
8749
+ SupportModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SupportModalComponent, selector: "app-support-modal", ngImport: i0, template: "<div class=\"modal-header\">\n <h5 class=\"modal-title\" translate=\"Help\"></h5>\n</div>\n<div class=\"modal-body\">\n <div class=\"support-loader-container\">\n <lib-loader *ngIf=\"loading\"></lib-loader>\n </div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"supportForm\" style=\"margin-top:1rem;\" *ngIf=\"!loading && status==='new'\">\n <div>\n <label>{{'Title' | translate}} *</label>\n <div>\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" data-testid=\"new-support-title\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['title'])}\"\n maxlength=\"255\">\n </div>\n <div class=\"invalid-feedback\">\n <span data-testid=\"new-support-title-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['title'])\"\n *ngIf=\" validatorsService.isControlError(supportForm.controls['title'])\"></span>\n </div>\n </div>\n <div *ngIf=\"!currentUser\">\n <label>{{'Email' | translate}} *</label>\n <div>\n <input type=\"email\" class=\"form-control\" formControlName=\"email\" data-testid=\"new-support-email\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['email'])}\"\n maxlength=\"255\">\n </div>\n <div class=\"invalid-feedback\">\n <span data-testid=\"new-support-email-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['email'])\"\n *ngIf=\" validatorsService.isControlError(supportForm.controls['email'])\"></span>\n </div>\n </div>\n <div>\n <label>{{'Description' | translate}} *</label>\n <div>\n <textarea formControlName=\"description\" class=\"form-control\"\n data-testid=\"new-support-description\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['description'])}\"></textarea>\n </div>\n <div class=\"invalid-feedback\" >\n <span data-testid=\"new-support-description-invalid\" [translate]=\" validatorsService.getError(supportForm.controls['description'])\"\n *ngIf=\"validatorsService.isControlError(supportForm.controls['description'])\"></span>\n </div>\n </div>\n </form>\n\n <div *ngIf=\"status ==='send'\" translate=\"Your request has been registered\" data-testid=\"new-support-send-info\">\n </div>\n <div *ngIf=\"status ==='error'\" translate=\"An error has occurred, please renew your request\"\n data-testid=\"new-support-error-info\">\n\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn rounded-pill btn-museum\" data-dismiss=\"modal\" translate=\"Close\" (click)=\"onClose()\"\n data-testid=\"new-support-close-btn\"></button>\n <button *ngIf=\"!loading && status==='new'\" type=\"button\" class=\"btn rounded-pill btn-museum\" translate=\"Submit\"\n (click)=\"onSubmit()\" [disabled]=\"!supportForm.valid\" data-testid=\"new-support-submit-btn\"></button>\n</div>", styles: [".support-loader-container{width:88px;margin:auto}.invalid-feedback{height:16px}\n"], components: [{ type: LoaderComponent, selector: "lib-loader", inputs: ["useLogo", "color"] }], directives: [{ type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i1.TranslatePipe } });
8693
8750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SupportModalComponent, decorators: [{
8694
8751
  type: Component,
8695
- args: [{ selector: 'app-support-modal', template: "<div class=\"modal-header\">\r\n <h5 class=\"modal-title\" translate=\"Help\"></h5>\r\n</div>\r\n<div class=\"modal-body\">\r\n <div class=\"support-loader-container\">\r\n <lib-loader *ngIf=\"loading\"></lib-loader>\r\n </div>\r\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"supportForm\" style=\"margin-top:1rem;\" *ngIf=\"!loading && status==='new'\">\r\n <div>\r\n <label>{{'Title' | translate}} *</label>\r\n <div>\r\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" data-testid=\"new-support-title\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['title'])}\"\r\n maxlength=\"255\">\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <span data-testid=\"new-support-title-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['title'])\"\r\n *ngIf=\" validatorsService.isControlError(supportForm.controls['title'])\"></span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!currentUser\">\r\n <label>{{'Email' | translate}} *</label>\r\n <div>\r\n <input type=\"email\" class=\"form-control\" formControlName=\"email\" data-testid=\"new-support-email\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['email'])}\"\r\n maxlength=\"255\">\r\n </div>\r\n <div class=\"invalid-feedback\">\r\n <span data-testid=\"new-support-email-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['email'])\"\r\n *ngIf=\" validatorsService.isControlError(supportForm.controls['email'])\"></span>\r\n </div>\r\n </div>\r\n <div>\r\n <label>{{'Description' | translate}} *</label>\r\n <div>\r\n <textarea formControlName=\"description\" class=\"form-control\"\r\n data-testid=\"new-support-description\"\r\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['description'])}\"></textarea>\r\n </div>\r\n <div class=\"invalid-feedback\" >\r\n <span data-testid=\"new-support-description-invalid\" [translate]=\" validatorsService.getError(supportForm.controls['description'])\"\r\n *ngIf=\"validatorsService.isControlError(supportForm.controls['description'])\"></span>\r\n </div>\r\n </div>\r\n </form>\r\n\r\n <div *ngIf=\"status ==='send'\" translate=\"Your request has been registered\" data-testid=\"new-support-send-info\">\r\n </div>\r\n <div *ngIf=\"status ==='error'\" translate=\"An error has occurred, please renew your request\"\r\n data-testid=\"new-support-error-info\">\r\n\r\n </div>\r\n</div>\r\n<div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn rounded-pill btn-museum\" data-dismiss=\"modal\" translate=\"Close\" (click)=\"onClose()\"\r\n data-testid=\"new-support-close-btn\"></button>\r\n <button *ngIf=\"!loading && status==='new'\" type=\"button\" class=\"btn rounded-pill btn-museum\" translate=\"Submit\"\r\n (click)=\"onSubmit()\" [disabled]=\"!supportForm.valid\" data-testid=\"new-support-submit-btn\"></button>\r\n</div>", styles: [".support-loader-container{width:88px;margin:auto}.invalid-feedback{height:16px}\n"] }]
8752
+ args: [{ selector: 'app-support-modal', template: "<div class=\"modal-header\">\n <h5 class=\"modal-title\" translate=\"Help\"></h5>\n</div>\n<div class=\"modal-body\">\n <div class=\"support-loader-container\">\n <lib-loader *ngIf=\"loading\"></lib-loader>\n </div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"supportForm\" style=\"margin-top:1rem;\" *ngIf=\"!loading && status==='new'\">\n <div>\n <label>{{'Title' | translate}} *</label>\n <div>\n <input type=\"text\" class=\"form-control\" formControlName=\"title\" data-testid=\"new-support-title\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['title'])}\"\n maxlength=\"255\">\n </div>\n <div class=\"invalid-feedback\">\n <span data-testid=\"new-support-title-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['title'])\"\n *ngIf=\" validatorsService.isControlError(supportForm.controls['title'])\"></span>\n </div>\n </div>\n <div *ngIf=\"!currentUser\">\n <label>{{'Email' | translate}} *</label>\n <div>\n <input type=\"email\" class=\"form-control\" formControlName=\"email\" data-testid=\"new-support-email\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['email'])}\"\n maxlength=\"255\">\n </div>\n <div class=\"invalid-feedback\">\n <span data-testid=\"new-support-email-invalid\" [translate]=\"validatorsService.getError(supportForm.controls['email'])\"\n *ngIf=\" validatorsService.isControlError(supportForm.controls['email'])\"></span>\n </div>\n </div>\n <div>\n <label>{{'Description' | translate}} *</label>\n <div>\n <textarea formControlName=\"description\" class=\"form-control\"\n data-testid=\"new-support-description\"\n [ngClass]=\"{'is-invalid' : validatorsService.isControlError(supportForm.controls['description'])}\"></textarea>\n </div>\n <div class=\"invalid-feedback\" >\n <span data-testid=\"new-support-description-invalid\" [translate]=\" validatorsService.getError(supportForm.controls['description'])\"\n *ngIf=\"validatorsService.isControlError(supportForm.controls['description'])\"></span>\n </div>\n </div>\n </form>\n\n <div *ngIf=\"status ==='send'\" translate=\"Your request has been registered\" data-testid=\"new-support-send-info\">\n </div>\n <div *ngIf=\"status ==='error'\" translate=\"An error has occurred, please renew your request\"\n data-testid=\"new-support-error-info\">\n\n </div>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn rounded-pill btn-museum\" data-dismiss=\"modal\" translate=\"Close\" (click)=\"onClose()\"\n data-testid=\"new-support-close-btn\"></button>\n <button *ngIf=\"!loading && status==='new'\" type=\"button\" class=\"btn rounded-pill btn-museum\" translate=\"Submit\"\n (click)=\"onSubmit()\" [disabled]=\"!supportForm.valid\" data-testid=\"new-support-submit-btn\"></button>\n</div>", styles: [".support-loader-container{width:88px;margin:auto}.invalid-feedback{height:16px}\n"] }]
8696
8753
  }], ctorParameters: function () { return [{ type: SupportService }, { type: i1$2.NgbActiveModal }, { type: i3.FormBuilder }, { type: BaseUserService }, { type: ValidatorsService }]; } });
8697
8754
 
8698
8755
  class LocaleService {
@@ -11562,10 +11619,10 @@ class NavigationBarComponent {
11562
11619
  }
11563
11620
  }
11564
11621
  NavigationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NavigationBarComponent, deps: [{ token: 'currentAwsKinesisAnalyticsService' }, { token: i1$1.Router }, { token: SpaceService }, { token: BaseUserService }, { token: ZoneService }, { token: VisitService }, { token: ViewerService }, { token: NavigatorService }, { token: ZoneChangeService }], target: i0.ɵɵFactoryTarget.Component });
11565
- NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: NavigationBarComponent, selector: "lib-navigation-bar", viewQueries: [{ propertyName: "navbarSelectMenu", first: true, predicate: ["navbarSelectMenu"], descendants: true }], ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex col-12\">\r\n <div #navbarSelectMenu class=\"collapse navbar-collapse\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row \">\r\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationClick()\">\r\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\r\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\r\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\r\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\r\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\r\n </option>\r\n </select>\r\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\r\n (ngModelChange)=\"onFloorClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\r\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\r\n (ngModelChange)=\"onZoneClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\r\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\r\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\r\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\r\n </select>\r\n <!-- <select class=\"form-control flex-fill\">\r\n <option i18n>{{'Favorites' | translate}}</option>\r\n </select> -->\r\n </div>\r\n <div class=\"row\" style=\"margin-left: 0;\">\r\n <div class=\"outer_circle\">\r\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\r\n (click)=\"goTo()\"></button>\r\n </div>\r\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\r\n </div>\r\n </div>\r\n\r\n <h4 style=\"line-height: 29px;margin: 0;\" *ngIf=\"showLocation()\">\r\n {{ showLocation() }}\r\n </h4>\r\n </div>\r\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(../../../../../assets/icons/goTo3d.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../../assets/icons/goTo3d-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../../assets/icons/goTo3d.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}\n"], directives: [{ type: i1$2.NgbNavbar, selector: ".navbar" }, { type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
11622
+ NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: NavigationBarComponent, selector: "lib-navigation-bar", viewQueries: [{ propertyName: "navbarSelectMenu", first: true, predicate: ["navbarSelectMenu"], descendants: true }], ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\n <div class=\"d-flex col-12\">\n <div #navbarSelectMenu class=\"collapse navbar-collapse\" id=\"nav-item-container-blue\">\n <div class=\"d-flex flex-column flex-md-row \">\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\n (ngModelChange)=\"onLocationClick()\">\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\n </option>\n </select>\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\n (ngModelChange)=\"onFloorClick()\">\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\n (ngModelChange)=\"onZoneClick()\">\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <!-- <select class=\"form-control flex-fill\">\n <option i18n>{{'Favorites' | translate}}</option>\n </select> -->\n </div>\n <div class=\"row\" style=\"margin-left: 0;\">\n <div class=\"outer_circle\">\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\n (click)=\"goTo()\"></button>\n </div>\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d\"\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\n </div>\n </div>\n\n <h4 style=\"line-height: 29px;margin: 0;\" *ngIf=\"showLocation()\">\n {{ showLocation() }}\n </h4>\n </div>\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(../../../../../assets/icons/goTo3d.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../../assets/icons/goTo3d-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../../assets/icons/goTo3d.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}\n"], directives: [{ type: i1$2.NgbNavbar, selector: ".navbar" }, { type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
11566
11623
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NavigationBarComponent, decorators: [{
11567
11624
  type: Component,
11568
- args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex col-12\">\r\n <div #navbarSelectMenu class=\"collapse navbar-collapse\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row \">\r\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\r\n (ngModelChange)=\"onLocationClick()\">\r\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\r\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\r\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\r\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\r\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\r\n </option>\r\n </select>\r\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\r\n (ngModelChange)=\"onFloorClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\r\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\r\n (ngModelChange)=\"onZoneClick()\">\r\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\r\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\r\n </select>\r\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\r\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\r\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\r\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\r\n </select>\r\n <!-- <select class=\"form-control flex-fill\">\r\n <option i18n>{{'Favorites' | translate}}</option>\r\n </select> -->\r\n </div>\r\n <div class=\"row\" style=\"margin-left: 0;\">\r\n <div class=\"outer_circle\">\r\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\r\n (click)=\"goTo()\"></button>\r\n </div>\r\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\r\n </div>\r\n </div>\r\n\r\n <h4 style=\"line-height: 29px;margin: 0;\" *ngIf=\"showLocation()\">\r\n {{ showLocation() }}\r\n </h4>\r\n </div>\r\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(../../../../../assets/icons/goTo3d.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../../assets/icons/goTo3d-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../../assets/icons/goTo3d.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}\n"] }]
11625
+ args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\n <div class=\"d-flex col-12\">\n <div #navbarSelectMenu class=\"collapse navbar-collapse\" id=\"nav-item-container-blue\">\n <div class=\"d-flex flex-column flex-md-row \">\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\n (ngModelChange)=\"onLocationClick()\">\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\n </option>\n </select>\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\n (ngModelChange)=\"onFloorClick()\">\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\n <option *ngFor=\"let floor of floorsPerSpace\" [ngValue]=\"floor\">{{ floor.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\n (ngModelChange)=\"onZoneClick()\">\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\"><span\n *ngIf=\"zone.code_ref\">{{zone.code_ref}}_</span>{{zone.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\n *ngIf=\"childrenZones && childrenZones.length>0\" (ngModelChange)=\"onChildZoneClick()\">\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <!-- <select class=\"form-control flex-fill\">\n <option i18n>{{'Favorites' | translate}}</option>\n </select> -->\n </div>\n <div class=\"row\" style=\"margin-left: 0;\">\n <div class=\"outer_circle\">\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\n (click)=\"goTo()\"></button>\n </div>\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d\"\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\n </div>\n </div>\n\n <h4 style=\"line-height: 29px;margin: 0;\" *ngIf=\"showLocation()\">\n {{ showLocation() }}\n </h4>\n </div>\n</nav>", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(../../../../../assets/icons/goTo3d.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../../assets/icons/goTo3d-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../../assets/icons/goTo3d.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}\n"] }]
11569
11626
  }], ctorParameters: function () {
11570
11627
  return [{ type: undefined, decorators: [{
11571
11628
  type: Inject,
@@ -11657,10 +11714,10 @@ class MenuBarComponent {
11657
11714
  }
11658
11715
  }
11659
11716
  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 });
11660
- 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 } });
11717
+ 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 } });
11661
11718
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: MenuBarComponent, decorators: [{
11662
11719
  type: Component,
11663
- 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"] }]
11720
+ 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"] }]
11664
11721
  }], ctorParameters: function () { return [{ type: i1$1.Router }, { type: LocaleService }, { type: BaseUserService }, { type: NavigatorService }, { type: SupportService }, { type: BaseVisibilityService }]; } });
11665
11722
 
11666
11723
  class NgxSmarterplanCoreModule {
@@ -11766,7 +11823,7 @@ class BaseTagService {
11766
11823
  constructor() { }
11767
11824
  getHtmlToInject(tagType, object) {
11768
11825
  return __awaiter(this, void 0, void 0, function* () {
11769
- throw new Error(`getHtmlToInject is not implemented in the base class.
11826
+ throw new Error(`getHtmlToInject is not implemented in the base class.
11770
11827
  Please override this method in your extended class.`);
11771
11828
  });
11772
11829
  }
@@ -11793,37 +11850,37 @@ class BaseTagService {
11793
11850
  }
11794
11851
  prepareEquipmentHtml(equip) {
11795
11852
  return __awaiter(this, void 0, void 0, function* () {
11796
- throw new Error(`prepareEquipmentHtml is not implemented in the base class.
11853
+ throw new Error(`prepareEquipmentHtml is not implemented in the base class.
11797
11854
  Please override this method in your extended class.`);
11798
11855
  });
11799
11856
  }
11800
11857
  prepareTicketHtml(ticket) {
11801
11858
  return __awaiter(this, void 0, void 0, function* () {
11802
- throw new Error(`prepareTicketHtml is not implemented in the base class.
11859
+ throw new Error(`prepareTicketHtml is not implemented in the base class.
11803
11860
  Please override this method in your extended class.`);
11804
11861
  });
11805
11862
  }
11806
11863
  prepareFeatureHtml(feature) {
11807
11864
  return __awaiter(this, void 0, void 0, function* () {
11808
- throw new Error(`prepareFeatureHtml is not implemented in the base class.
11865
+ throw new Error(`prepareFeatureHtml is not implemented in the base class.
11809
11866
  Please override this method in your extended class.`);
11810
11867
  });
11811
11868
  }
11812
11869
  prepareMeasurementHtml(measure) {
11813
11870
  return __awaiter(this, void 0, void 0, function* () {
11814
- throw new Error(`prepareMeasurementHtml is not implemented in the base class.
11871
+ throw new Error(`prepareMeasurementHtml is not implemented in the base class.
11815
11872
  Please override this method in your extended class.`);
11816
11873
  });
11817
11874
  }
11818
11875
  prepareDeskHtml(feature) {
11819
11876
  return __awaiter(this, void 0, void 0, function* () {
11820
- throw new Error(`prepareDeskHtml is not implemented in the base class.
11877
+ throw new Error(`prepareDeskHtml is not implemented in the base class.
11821
11878
  Please override this method in your extended class.`);
11822
11879
  });
11823
11880
  }
11824
11881
  prepareIndicatorHtml(feature) {
11825
11882
  return __awaiter(this, void 0, void 0, function* () {
11826
- throw new Error(`prepareDeskHtml is not implemented in the base class.
11883
+ throw new Error(`prepareDeskHtml is not implemented in the base class.
11827
11884
  Please override this method in your extended class.`);
11828
11885
  });
11829
11886
  }
@@ -11835,43 +11892,43 @@ class BaseTagService {
11835
11892
  getIconTagImageForFeature(feature, poi) {
11836
11893
  // const tagIcon = JSON.parse(poi.tagIcon);
11837
11894
  // return tagIcon.src;
11838
- throw new Error(`getIconTagImageForFeature is not implemented in the base class.
11895
+ throw new Error(`getIconTagImageForFeature is not implemented in the base class.
11839
11896
  Please override this method in your extended class.`);
11840
11897
  }
11841
11898
  getScriptForTag(object, tagType) {
11842
- throw new Error(`getScriptForTag is not implemented in the base class.
11899
+ throw new Error(`getScriptForTag is not implemented in the base class.
11843
11900
  Please override this method in your extended class.`);
11844
11901
  }
11845
11902
  getAnnexeForCommentTypeInFeature(feature, commentType) {
11846
- throw new Error(`getAnnexeForCommentTypeInFeature is not implemented in the base class.
11903
+ throw new Error(`getAnnexeForCommentTypeInFeature is not implemented in the base class.
11847
11904
  Please override this method in your extended class.`);
11848
11905
  }
11849
11906
  getBillboardMediaToEmbed(object) {
11850
- throw new Error(`getBillboardMediaToEmbed is not implemented in the base class.
11907
+ throw new Error(`getBillboardMediaToEmbed is not implemented in the base class.
11851
11908
  Please override this method in your extended class.`);
11852
11909
  }
11853
11910
  onActionDetailClick(url) {
11854
- throw new Error(`onActionDetailClick is not implemented in the base class.
11911
+ throw new Error(`onActionDetailClick is not implemented in the base class.
11855
11912
  Please override this method in your extended class.`);
11856
11913
  }
11857
11914
  onActionAudioClick(audioCommentID) {
11858
- throw new Error(`onActionDetailClick is not implemented in the base class.
11915
+ throw new Error(`onActionDetailClick is not implemented in the base class.
11859
11916
  Please override this method in your extended class.`);
11860
11917
  }
11861
11918
  onActionVideoClick(url) {
11862
- throw new Error(`onActionVideoClick is not implemented in the base class.
11919
+ throw new Error(`onActionVideoClick is not implemented in the base class.
11863
11920
  Please override this method in your extended class.`);
11864
11921
  }
11865
11922
  onActionImageClick(imageCommentID) {
11866
- throw new Error(`onActionImageClick is not implemented in the base class.
11923
+ throw new Error(`onActionImageClick is not implemented in the base class.
11867
11924
  Please override this method in your extended class.`);
11868
11925
  }
11869
11926
  onActionDocClick(url) {
11870
- throw new Error(`onActionDocClick is not implemented in the base class.
11927
+ throw new Error(`onActionDocClick is not implemented in the base class.
11871
11928
  Please override this method in your extended class.`);
11872
11929
  }
11873
11930
  onActionYoutubeClick(url) {
11874
- throw new Error(`onActionYoutubeClick is not implemented in the base class.
11931
+ throw new Error(`onActionYoutubeClick is not implemented in the base class.
11875
11932
  Please override this method in your extended class.`);
11876
11933
  }
11877
11934
  }