@smarterplan/ngx-smarterplan-core 1.2.49 → 1.2.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +139 -15
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
- package/esm2020/lib/ngx-smarterplan-core.module.mjs +1 -4
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +161 -179
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +161 -179
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/menu-bar/menu-bar.component.d.ts +29 -2
- package/lib/ngx-smarterplan-core.module.d.ts +9 -10
- package/package.json +1 -1
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +0 -147
- package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts +0 -35
|
@@ -11,7 +11,7 @@ import { Color, Vector3, Matrix4, Object3D, Euler, PerspectiveCamera, CylinderBu
|
|
|
11
11
|
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
|
|
12
12
|
import { DateTime } from 'luxon';
|
|
13
13
|
import { Auth, Storage, API, Cache } from 'aws-amplify';
|
|
14
|
-
import * as
|
|
14
|
+
import * as i12 from '@angular/common';
|
|
15
15
|
import { CommonModule } from '@angular/common';
|
|
16
16
|
import * as FileSaver from 'file-saver';
|
|
17
17
|
import levenshtein from 'js-levenshtein';
|
|
@@ -1774,14 +1774,14 @@ class BaseUserService {
|
|
|
1774
1774
|
return this.spModule;
|
|
1775
1775
|
}
|
|
1776
1776
|
}
|
|
1777
|
-
BaseUserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseUserService, deps: [{ token: ProfileService }, { token: MissionService }, { token: PropertyService }, { token: i1$1.Router }, { token:
|
|
1777
|
+
BaseUserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseUserService, deps: [{ token: ProfileService }, { token: MissionService }, { token: PropertyService }, { token: i1$1.Router }, { token: i12.Location }, { token: i0.NgZone }, { token: i1.TranslateService }, { token: 'SPModule' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1778
1778
|
BaseUserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseUserService, providedIn: "root" });
|
|
1779
1779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseUserService, decorators: [{
|
|
1780
1780
|
type: Injectable,
|
|
1781
1781
|
args: [{
|
|
1782
1782
|
providedIn: "root",
|
|
1783
1783
|
}]
|
|
1784
|
-
}], ctorParameters: function () { return [{ type: ProfileService }, { type: MissionService }, { type: PropertyService }, { type: i1$1.Router }, { type:
|
|
1784
|
+
}], ctorParameters: function () { return [{ type: ProfileService }, { type: MissionService }, { type: PropertyService }, { type: i1$1.Router }, { type: i12.Location }, { type: i0.NgZone }, { type: i1.TranslateService }, { type: SpModule, decorators: [{
|
|
1785
1785
|
type: Inject,
|
|
1786
1786
|
args: ['SPModule']
|
|
1787
1787
|
}] }]; } });
|
|
@@ -8438,7 +8438,7 @@ class LoaderComponent {
|
|
|
8438
8438
|
}
|
|
8439
8439
|
}
|
|
8440
8440
|
LoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8441
|
-
LoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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:
|
|
8441
|
+
LoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
8442
8442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: LoaderComponent, decorators: [{
|
|
8443
8443
|
type: Component,
|
|
8444
8444
|
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"] }]
|
|
@@ -8493,7 +8493,7 @@ class SupportModalComponent {
|
|
|
8493
8493
|
}
|
|
8494
8494
|
}
|
|
8495
8495
|
SupportModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SupportModalComponent, deps: [{ token: SupportService }, { token: i1$2.NgbActiveModal }, { token: i3.FormBuilder }, { token: BaseUserService }, { token: ValidatorsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8496
|
-
SupportModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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:
|
|
8496
|
+
SupportModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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: i12.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: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
8497
8497
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: SupportModalComponent, decorators: [{
|
|
8498
8498
|
type: Component,
|
|
8499
8499
|
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"] }]
|
|
@@ -8609,170 +8609,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
8609
8609
|
}]
|
|
8610
8610
|
}], ctorParameters: function () { return []; } });
|
|
8611
8611
|
|
|
8612
|
-
class FormatDateNumberToDigitsPipe {
|
|
8613
|
-
constructor(formatter) {
|
|
8614
|
-
this.formatter = formatter;
|
|
8615
|
-
}
|
|
8616
|
-
transform(date) {
|
|
8617
|
-
let [day, month, year] = this.formatter.format(date).split("/");
|
|
8618
|
-
if (day) {
|
|
8619
|
-
const nDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
8620
|
-
const result = nDate.toLocaleDateString(undefined, {
|
|
8621
|
-
year: "numeric",
|
|
8622
|
-
month: "2-digit",
|
|
8623
|
-
day: "2-digit",
|
|
8624
|
-
});
|
|
8625
|
-
return result;
|
|
8626
|
-
}
|
|
8627
|
-
return this.formatter.format(date);
|
|
8628
|
-
}
|
|
8629
|
-
}
|
|
8630
|
-
FormatDateNumberToDigitsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormatDateNumberToDigitsPipe, deps: [{ token: i1$2.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
8631
|
-
FormatDateNumberToDigitsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormatDateNumberToDigitsPipe, name: "formatDateNumberToDigits" });
|
|
8632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormatDateNumberToDigitsPipe, decorators: [{
|
|
8633
|
-
type: Pipe,
|
|
8634
|
-
args: [{
|
|
8635
|
-
name: 'formatDateNumberToDigits'
|
|
8636
|
-
}]
|
|
8637
|
-
}], ctorParameters: function () { return [{ type: i1$2.NgbDateParserFormatter }]; } });
|
|
8638
|
-
|
|
8639
|
-
class RangeDatePickerComponent {
|
|
8640
|
-
constructor(calendar, formatter, filterService, cacheService) {
|
|
8641
|
-
this.calendar = calendar;
|
|
8642
|
-
this.formatter = formatter;
|
|
8643
|
-
this.filterService = filterService;
|
|
8644
|
-
this.cacheService = cacheService;
|
|
8645
|
-
this.hoveredDate = null;
|
|
8646
|
-
this.isDateFilterApplied = false;
|
|
8647
|
-
this.dateChanged = false;
|
|
8648
|
-
// this.fromDate = calendar.getPrev(calendar.getToday(), "d", 30);
|
|
8649
|
-
// this.toDate = calendar.getToday();
|
|
8650
|
-
}
|
|
8651
|
-
ngOnInit() {
|
|
8652
|
-
if (this.cacheName) {
|
|
8653
|
-
this.cache = this.cacheService.getFromCache(this.cacheName);
|
|
8654
|
-
}
|
|
8655
|
-
if (this.cache) {
|
|
8656
|
-
this.isDateFilterApplied = true;
|
|
8657
|
-
let { from, to } = this.cache;
|
|
8658
|
-
this.toDate = this.getNgbDate(to);
|
|
8659
|
-
this.fromDate = this.getNgbDate(from);
|
|
8660
|
-
localStorage.setItem('startDate', from.toString());
|
|
8661
|
-
localStorage.setItem('endDate', to.toString());
|
|
8662
|
-
this.filterService.dateFilterUpdated([new Date(from), new Date(to)]);
|
|
8663
|
-
}
|
|
8664
|
-
else {
|
|
8665
|
-
const currentDate = new Date().getTime(); //get current timestamp
|
|
8666
|
-
const thirtyDaysAgoDate = currentDate - 30 * 24 * 60 * 60 * 1000; //substract 30 days in miliseconds from the current timestamp
|
|
8667
|
-
// add dates to localstorage for retool urlsParams
|
|
8668
|
-
localStorage.setItem('startDate', thirtyDaysAgoDate.toString());
|
|
8669
|
-
localStorage.setItem('endDate', currentDate.toString());
|
|
8670
|
-
// updates date range dates to last 30 days ranges from today
|
|
8671
|
-
this.fromDate = this.getNgbDate(thirtyDaysAgoDate);
|
|
8672
|
-
this.toDate = this.getNgbDate(currentDate);
|
|
8673
|
-
this.filterService.dateFilterUpdated([
|
|
8674
|
-
new Date(thirtyDaysAgoDate.toString()),
|
|
8675
|
-
new Date(currentDate.toString()),
|
|
8676
|
-
]);
|
|
8677
|
-
}
|
|
8678
|
-
}
|
|
8679
|
-
getNgbDate(date) {
|
|
8680
|
-
let dt = new Date(date);
|
|
8681
|
-
dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset()); // convert to UTC
|
|
8682
|
-
return new NgbDate(dt.getUTCFullYear(), dt.getUTCMonth() + 1, dt.getUTCDate());
|
|
8683
|
-
}
|
|
8684
|
-
onDateSelection(date) {
|
|
8685
|
-
if (!this.fromDate && !this.toDate) {
|
|
8686
|
-
this.fromDate = date;
|
|
8687
|
-
}
|
|
8688
|
-
else if (this.fromDate &&
|
|
8689
|
-
!this.toDate &&
|
|
8690
|
-
date &&
|
|
8691
|
-
date.after(this.fromDate)) {
|
|
8692
|
-
this.toDate = date;
|
|
8693
|
-
}
|
|
8694
|
-
else {
|
|
8695
|
-
this.toDate = null;
|
|
8696
|
-
this.fromDate = date;
|
|
8697
|
-
}
|
|
8698
|
-
this.isDateChanged();
|
|
8699
|
-
}
|
|
8700
|
-
isDateChanged() {
|
|
8701
|
-
if (this.fromDate && this.toDate) {
|
|
8702
|
-
if (this.cache) {
|
|
8703
|
-
this.dateChanged =
|
|
8704
|
-
!this.fromDate.equals(this.getNgbDate(this.cache.from)) ||
|
|
8705
|
-
!this.toDate.equals(this.getNgbDate(this.cache.to));
|
|
8706
|
-
}
|
|
8707
|
-
}
|
|
8708
|
-
}
|
|
8709
|
-
isHovered(date) {
|
|
8710
|
-
return (this.fromDate &&
|
|
8711
|
-
!this.toDate &&
|
|
8712
|
-
this.hoveredDate &&
|
|
8713
|
-
date.after(this.fromDate) &&
|
|
8714
|
-
date.before(this.hoveredDate));
|
|
8715
|
-
}
|
|
8716
|
-
isInside(date) {
|
|
8717
|
-
return this.toDate && date.after(this.fromDate) && date.before(this.toDate);
|
|
8718
|
-
}
|
|
8719
|
-
isRange(date) {
|
|
8720
|
-
return (date.equals(this.fromDate) ||
|
|
8721
|
-
(this.toDate && date.equals(this.toDate)) ||
|
|
8722
|
-
this.isInside(date) ||
|
|
8723
|
-
this.isHovered(date));
|
|
8724
|
-
}
|
|
8725
|
-
validateInput(currentValue, input) {
|
|
8726
|
-
const parsed = this.formatter.parse(input);
|
|
8727
|
-
return parsed && this.calendar.isValid(NgbDate.from(parsed))
|
|
8728
|
-
? NgbDate.from(parsed)
|
|
8729
|
-
: currentValue;
|
|
8730
|
-
}
|
|
8731
|
-
emitRange() {
|
|
8732
|
-
if (this.fromDate && this.toDate) {
|
|
8733
|
-
const from = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day);
|
|
8734
|
-
const to = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day, 23, 59);
|
|
8735
|
-
this.cacheService.putInCache(this.cacheName, {
|
|
8736
|
-
from: from.getTime(),
|
|
8737
|
-
to: to.getTime(),
|
|
8738
|
-
});
|
|
8739
|
-
this.filterService.dateFilterUpdated([from, to]);
|
|
8740
|
-
this.isDateFilterApplied = true;
|
|
8741
|
-
this.dateChanged = false;
|
|
8742
|
-
}
|
|
8743
|
-
}
|
|
8744
|
-
onClearDates() {
|
|
8745
|
-
this.fromDate = null;
|
|
8746
|
-
this.toDate = null;
|
|
8747
|
-
this.isDateFilterApplied = false;
|
|
8748
|
-
this.cacheService.removeFromCache(this.cacheName);
|
|
8749
|
-
this.filterService.dateFilterUpdated(null);
|
|
8750
|
-
}
|
|
8751
|
-
onApply() {
|
|
8752
|
-
if (this.fromDate && this.toDate) {
|
|
8753
|
-
this.emitRange();
|
|
8754
|
-
}
|
|
8755
|
-
//transform ngbDate to date objet then put dates in timestamp in localStorage to share it with Retool
|
|
8756
|
-
if (this.fromDate) {
|
|
8757
|
-
const startDate = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day);
|
|
8758
|
-
localStorage.setItem('startDate', startDate.getTime().toString());
|
|
8759
|
-
console.log('test setItem from : ' + startDate.getTime().toString());
|
|
8760
|
-
}
|
|
8761
|
-
if (this.toDate) {
|
|
8762
|
-
const endDate = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day);
|
|
8763
|
-
localStorage.setItem('endDate', endDate.getTime().toString());
|
|
8764
|
-
}
|
|
8765
|
-
}
|
|
8766
|
-
}
|
|
8767
|
-
RangeDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RangeDatePickerComponent, deps: [{ token: i1$2.NgbCalendar }, { token: i1$2.NgbDateParserFormatter }, { token: FilterService }, { token: AmplifyCacheService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8768
|
-
RangeDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: RangeDatePickerComponent, selector: "lib-range-date-picker", inputs: { cacheName: "cacheName" }, ngImport: i0, template: "<form class=\"form-inline\">\r\n <div class=\"mb-3 hidden\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\r\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\r\n [value]=\"fromDate | formatDateNumberToDigits\"\r\n (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 ms-0 ms-md-2\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\r\n [value]=\"toDate | formatDateNumberToDigits\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"confirmation-button\">\r\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onApply()\"\r\n *ngIf=\"!isDateFilterApplied || dateChanged\">\r\n {{'Apply' | translate}}\r\n </button>\r\n <span class=\"appliedText ms-3\" *ngIf=\"isDateFilterApplied && !dateChanged\">\r\n <span class=\"iconify\" data-icon=\"ion:checkmark\" data-width=\"15\" data-height=\"15\"></span>\r\n {{\"Applied\" | translate}}\r\n </span>\r\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onClearDates()\">{{'Clear' |\r\n translate}}</button>\r\n </div>\r\n</form>\r\n", styles: [".mb-3.hidden{width:0;margin:0;border:none;padding:0}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:var(--smarterplan-primary-lighter);color:#fff}.custom-day.faded{background-color:var(--smarterplan-primary-transparent)}.calendar{height:100%}.appliedText,.appliedText span{color:var(--smarterplan-primary)}@media (max-width: 767px){.form-inline{flex-direction:column}.mb-3{margin-bottom:15px}}.mb-3.hidden{opacity:0}.confirmation-button{display:flex;padding:.5rem}\n"], directives: [{ 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$2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "formatDateNumberToDigits": FormatDateNumberToDigitsPipe, "translate": i1.TranslatePipe } });
|
|
8769
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RangeDatePickerComponent, decorators: [{
|
|
8770
|
-
type: Component,
|
|
8771
|
-
args: [{ selector: 'lib-range-date-picker', template: "<form class=\"form-inline\">\r\n <div class=\"mb-3 hidden\">\r\n <div class=\"input-group\">\r\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\r\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"input-group\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\r\n [value]=\"fromDate | formatDateNumberToDigits\"\r\n (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 ms-0 ms-md-2\">\r\n <div class=\"input-group\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\r\n [value]=\"toDate | formatDateNumberToDigits\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"confirmation-button\">\r\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onApply()\"\r\n *ngIf=\"!isDateFilterApplied || dateChanged\">\r\n {{'Apply' | translate}}\r\n </button>\r\n <span class=\"appliedText ms-3\" *ngIf=\"isDateFilterApplied && !dateChanged\">\r\n <span class=\"iconify\" data-icon=\"ion:checkmark\" data-width=\"15\" data-height=\"15\"></span>\r\n {{\"Applied\" | translate}}\r\n </span>\r\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onClearDates()\">{{'Clear' |\r\n translate}}</button>\r\n </div>\r\n</form>\r\n", styles: [".mb-3.hidden{width:0;margin:0;border:none;padding:0}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:var(--smarterplan-primary-lighter);color:#fff}.custom-day.faded{background-color:var(--smarterplan-primary-transparent)}.calendar{height:100%}.appliedText,.appliedText span{color:var(--smarterplan-primary)}@media (max-width: 767px){.form-inline{flex-direction:column}.mb-3{margin-bottom:15px}}.mb-3.hidden{opacity:0}.confirmation-button{display:flex;padding:.5rem}\n"] }]
|
|
8772
|
-
}], ctorParameters: function () { return [{ type: i1$2.NgbCalendar }, { type: i1$2.NgbDateParserFormatter }, { type: FilterService }, { type: AmplifyCacheService }]; }, propDecorators: { cacheName: [{
|
|
8773
|
-
type: Input
|
|
8774
|
-
}] } });
|
|
8775
|
-
|
|
8776
8612
|
const cache = {};
|
|
8777
8613
|
class AvatarComponent {
|
|
8778
8614
|
constructor(userService, profileService) {
|
|
@@ -11207,10 +11043,10 @@ class NavigationBarComponent {
|
|
|
11207
11043
|
}
|
|
11208
11044
|
}
|
|
11209
11045
|
NavigationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", 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 }, { token: BaseVisibilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11210
|
-
NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1\">\r\n <div class=\"d-flex flex-column\">\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 <p class=\"m-0 fw-bold lh-base align-middle text-center\" *ngIf=\"showLocation()\">\r\n {{ showLocation() }}\r\n </p>\r\n </div>\r\n\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 align-items-center justify-content-center ml-0 p-1\">\r\n <div class=\"outer_circle w-auto m-1\">\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 w-auto m-1\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\r\n <span class=\"link-light w-auto m-1\" (click)=\"onHideClick()\">{{ \"Hide\" | translate }}</span>\r\n </div>\r\n </div>\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(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");border:none;vertical-align:middle}#btn-icon:hover{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%234BA4A8%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}#btn-icon[disabled]:hover{background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}@media (max-width: 767px){.navbar{padding:.2rem .5rem}.form-control,.location,.floor,.zone{max-width:100%;margin-bottom:15px}input,select{margin-right:0;margin-bottom:15px}}\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 } });
|
|
11046
|
+
NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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 w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1 mt-2\">\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 align-items-center justify-content-center ml-0 p-1\" *ngIf=\"showLocation()\">\r\n <p class=\"fw-bold lh-base align-middle text-center\">\r\n {{ showLocation() }}\r\n </p>\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\">\r\n <button (click)=\"goTo()\"\r\n class=\"btn btn-outline-primary rounded-pill w-25 mx-2 w-md-fit-content h-md-fit-content align-self-md-center btn-3d\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">\r\n <i class=\"icon-go-to-3d d-inline-block\"></i> {{'3D visit' | translate}}\r\n </button>\r\n </div>\r\n </div>\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:100%;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}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}.btn-3d .icon-go-to-3d{width:30px;height:30px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");border:none;vertical-align:middle;fill:var(--smarterplan-primary)}.btn-3d:hover:enabled .icon-go-to-3d{background:url(\"data:image/svg+xml,%3Csvg width%3D%2260%22 height%3D%2260%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 version%3D%221.1%22 xml%3Aspace%3D%22preserve%22%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cg id%3D%22svg_1%22%3E %3Cpath class%3D%22st0%22 d%3D%22m43.9%2C32.1l0%2C-14.4c0%2C-0.4 -0.2%2C-0.7 -0.5%2C-0.9l-12.8%2C-8c-0.2%2C-0.1 -0.4%2C-0.2 -0.6%2C-0.2c-0.2%2C0 -0.4%2C0.1 -0.6%2C0.2l-12.8%2C8c-0.3%2C0.2 -0.5%2C0.5 -0.5%2C0.9l0%2C14.4c0%2C0.4 0.2%2C0.7 0.5%2C0.9l12.8%2C8c0.3%2C0.2 0.8%2C0.2 1.1%2C0l12.8%2C-8c0.4%2C-0.2 0.6%2C-0.5 0.6%2C-0.9zm-15%2C6.1l-10.7%2C-6.7l0%2C-12l10.7%2C6.7l0%2C12zm1.1%2C-13.8l-10.8%2C-6.8l10.8%2C-6.7l10.8%2C6.8l-10.8%2C6.7zm11.8%2C7.1l-10.7%2C6.7l0%2C-12l10.7%2C-6.7l0%2C12z%22 fill%3D%22%23ffffff%22 id%3D%22svg_2%22%2F%3E %3Cpath class%3D%22st0%22 d%3D%22m56.1%2C29.3l-10.3%2C-6.8l0%2C2l1.4%2C1l0%2C0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2 0.4%2C0.5 0.4%2C0.8c0%2C0.3 -0.2%2C0.6 -0.4%2C0.8l-6.8%2C4.7l0%2C0l-0.9%2C0.7l0%2C0l-2.9%2C2l0%2C0l-13.8%2C9.6c-0.3%2C0.2 -0.8%2C0.2 -1.1%2C0l-14.2%2C-9.8l-2.6%2C-1.8l0%2C0l-7.7%2C-5.4c-0.3%2C-0.2 -0.4%2C-0.5 -0.4%2C-0.8c0%2C-0.3 0.2%2C-0.6 0.4%2C-0.8l0%2C0l7.3%2C-5l0%2C0l0.5%2C-0.3l0%2C0l1.4%2C-1l0%2C-2l-10.3%2C6.8c-0.8%2C0.5 -1.2%2C1.4 -1.2%2C2.4c0%2C0.9 0.5%2C1.8 1.2%2C2.4l8.8%2C6.1l0%2C0l4.5%2C3.1l11.2%2C7.7c1%2C0.7 2.3%2C0.7 3.3%2C0l13.7%2C-9.5l1.9%2C-1.3l0%2C0l8.8%2C-6.1c0.8%2C-0.5 1.2%2C-1.4 1.2%2C-2.4s-0.4%2C-1.9 -1.2%2C-2.4z%22 fill%3D%22%23ffffff%22 id%3D%22svg_3%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.btn-3d[disabled]:hover .icon-go-to-3d{fill:var(--smarterplan-primary)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}@media (max-width: 767px){.navbar{padding:.2rem .5rem}.form-control,.location,.floor,.zone{max-width:100%;margin-bottom:15px}input,select{margin-right:0;margin-bottom:15px}}\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: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
11211
11047
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NavigationBarComponent, decorators: [{
|
|
11212
11048
|
type: Component,
|
|
11213
|
-
args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1
|
|
11049
|
+
args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\r\n <div class=\"d-flex w-100\">\r\n <div #navbarSelectMenu class=\"w-100\" id=\"nav-item-container-blue\">\r\n <div class=\"d-flex flex-column flex-md-row p-1 mt-2\">\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 align-items-center justify-content-center ml-0 p-1\" *ngIf=\"showLocation()\">\r\n <p class=\"fw-bold lh-base align-middle text-center\">\r\n {{ showLocation() }}\r\n </p>\r\n </div>\r\n <div class=\"row align-items-center justify-content-center ml-0 p-1\">\r\n <button (click)=\"goTo()\"\r\n class=\"btn btn-outline-primary rounded-pill w-25 mx-2 w-md-fit-content h-md-fit-content align-self-md-center btn-3d\"\r\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">\r\n <i class=\"icon-go-to-3d d-inline-block\"></i> {{'3D visit' | translate}}\r\n </button>\r\n </div>\r\n </div>\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:100%;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}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}.btn-3d .icon-go-to-3d{width:30px;height:30px;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%0D%3C!-- Generator%3A Adobe Illustrator 25.2.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%0D%3Csvg version%3D%221.1%22 id%3D%22Calque_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%0D%09 viewBox%3D%220 0 60 60%22 style%3D%22enable-background%3Anew 0 0 60 60%3B%22 xml%3Aspace%3D%22preserve%22%3E%0D%3Cstyle type%3D%22text%2Fcss%22%3E%0D%09.st0%7Bfill%3A%23565656%3B%7D%0D%3C%2Fstyle%3E%0D%3Cg%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M43.9%2C32.1V17.7c0-0.4-0.2-0.7-0.5-0.9l-12.8-8c-0.2-0.1-0.4-0.2-0.6-0.2c-0.2%2C0-0.4%2C0.1-0.6%2C0.2l-12.8%2C8%0D%09%09c-0.3%2C0.2-0.5%2C0.5-0.5%2C0.9v14.4c0%2C0.4%2C0.2%2C0.7%2C0.5%2C0.9l12.8%2C8c0.3%2C0.2%2C0.8%2C0.2%2C1.1%2C0l12.8-8C43.7%2C32.8%2C43.9%2C32.5%2C43.9%2C32.1z%0D%09%09 M28.9%2C38.2l-10.7-6.7v-12l10.7%2C6.7V38.2z M30%2C24.4l-10.8-6.8L30%2C10.9l10.8%2C6.8L30%2C24.4z M41.8%2C31.5l-10.7%2C6.7v-12l10.7-6.7V31.5z%22%0D%09%09%2F%3E%0D%09%3Cpath class%3D%22st0%22 d%3D%22M56.1%2C29.3l-10.3-6.8v2l1.4%2C1v0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2%2C0.4%2C0.5%2C0.4%2C0.8c0%2C0.3-0.2%2C0.6-0.4%2C0.8l-6.8%2C4.7%0D%09%09l0%2C0l-0.9%2C0.7v0l-2.9%2C2v0l-13.8%2C9.6c-0.3%2C0.2-0.8%2C0.2-1.1%2C0l-14.2-9.8l-2.6-1.8v0L5%2C32.4c-0.3-0.2-0.4-0.5-0.4-0.8%0D%09%09c0-0.3%2C0.2-0.6%2C0.4-0.8l0%2C0l7.3-5l0%2C0l0.5-0.3v0l1.4-1v-2L3.9%2C29.3c-0.8%2C0.5-1.2%2C1.4-1.2%2C2.4c0%2C0.9%2C0.5%2C1.8%2C1.2%2C2.4l8.8%2C6.1v0%0D%09%09l4.5%2C3.1l11.2%2C7.7c1%2C0.7%2C2.3%2C0.7%2C3.3%2C0l13.7-9.5l1.9-1.3v0l8.8-6.1c0.8-0.5%2C1.2-1.4%2C1.2-2.4S56.9%2C29.8%2C56.1%2C29.3z%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");border:none;vertical-align:middle;fill:var(--smarterplan-primary)}.btn-3d:hover:enabled .icon-go-to-3d{background:url(\"data:image/svg+xml,%3Csvg width%3D%2260%22 height%3D%2260%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 version%3D%221.1%22 xml%3Aspace%3D%22preserve%22%3E %3Cg%3E %3Ctitle%3ELayer 1%3C%2Ftitle%3E %3Cg id%3D%22svg_1%22%3E %3Cpath class%3D%22st0%22 d%3D%22m43.9%2C32.1l0%2C-14.4c0%2C-0.4 -0.2%2C-0.7 -0.5%2C-0.9l-12.8%2C-8c-0.2%2C-0.1 -0.4%2C-0.2 -0.6%2C-0.2c-0.2%2C0 -0.4%2C0.1 -0.6%2C0.2l-12.8%2C8c-0.3%2C0.2 -0.5%2C0.5 -0.5%2C0.9l0%2C14.4c0%2C0.4 0.2%2C0.7 0.5%2C0.9l12.8%2C8c0.3%2C0.2 0.8%2C0.2 1.1%2C0l12.8%2C-8c0.4%2C-0.2 0.6%2C-0.5 0.6%2C-0.9zm-15%2C6.1l-10.7%2C-6.7l0%2C-12l10.7%2C6.7l0%2C12zm1.1%2C-13.8l-10.8%2C-6.8l10.8%2C-6.7l10.8%2C6.8l-10.8%2C6.7zm11.8%2C7.1l-10.7%2C6.7l0%2C-12l10.7%2C-6.7l0%2C12z%22 fill%3D%22%23ffffff%22 id%3D%22svg_2%22%2F%3E %3Cpath class%3D%22st0%22 d%3D%22m56.1%2C29.3l-10.3%2C-6.8l0%2C2l1.4%2C1l0%2C0l0.8%2C0.5l0%2C0l7%2C4.8c0.3%2C0.2 0.4%2C0.5 0.4%2C0.8c0%2C0.3 -0.2%2C0.6 -0.4%2C0.8l-6.8%2C4.7l0%2C0l-0.9%2C0.7l0%2C0l-2.9%2C2l0%2C0l-13.8%2C9.6c-0.3%2C0.2 -0.8%2C0.2 -1.1%2C0l-14.2%2C-9.8l-2.6%2C-1.8l0%2C0l-7.7%2C-5.4c-0.3%2C-0.2 -0.4%2C-0.5 -0.4%2C-0.8c0%2C-0.3 0.2%2C-0.6 0.4%2C-0.8l0%2C0l7.3%2C-5l0%2C0l0.5%2C-0.3l0%2C0l1.4%2C-1l0%2C-2l-10.3%2C6.8c-0.8%2C0.5 -1.2%2C1.4 -1.2%2C2.4c0%2C0.9 0.5%2C1.8 1.2%2C2.4l8.8%2C6.1l0%2C0l4.5%2C3.1l11.2%2C7.7c1%2C0.7 2.3%2C0.7 3.3%2C0l13.7%2C-9.5l1.9%2C-1.3l0%2C0l8.8%2C-6.1c0.8%2C-0.5 1.2%2C-1.4 1.2%2C-2.4s-0.4%2C-1.9 -1.2%2C-2.4z%22 fill%3D%22%23ffffff%22 id%3D%22svg_3%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\")}.btn-3d[disabled]:hover .icon-go-to-3d{fill:var(--smarterplan-primary)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}@media (max-width: 767px){.navbar{padding:.2rem .5rem}.form-control,.location,.floor,.zone{max-width:100%;margin-bottom:15px}input,select{margin-right:0;margin-bottom:15px}}\n"] }]
|
|
11214
11050
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
11215
11051
|
type: Inject,
|
|
11216
11052
|
args: ['currentAwsKinesisAnalyticsService']
|
|
@@ -11219,18 +11055,52 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
11219
11055
|
args: ['navbarSelectMenu']
|
|
11220
11056
|
}] } });
|
|
11221
11057
|
|
|
11058
|
+
class FormatDateNumberToDigitsPipe {
|
|
11059
|
+
constructor(formatter) {
|
|
11060
|
+
this.formatter = formatter;
|
|
11061
|
+
}
|
|
11062
|
+
transform(date) {
|
|
11063
|
+
let [day, month, year] = this.formatter.format(date).split("/");
|
|
11064
|
+
if (day) {
|
|
11065
|
+
const nDate = new Date(parseInt(year), parseInt(month) - 1, parseInt(day));
|
|
11066
|
+
const result = nDate.toLocaleDateString(undefined, {
|
|
11067
|
+
year: "numeric",
|
|
11068
|
+
month: "2-digit",
|
|
11069
|
+
day: "2-digit",
|
|
11070
|
+
});
|
|
11071
|
+
return result;
|
|
11072
|
+
}
|
|
11073
|
+
return this.formatter.format(date);
|
|
11074
|
+
}
|
|
11075
|
+
}
|
|
11076
|
+
FormatDateNumberToDigitsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormatDateNumberToDigitsPipe, deps: [{ token: i1$2.NgbDateParserFormatter }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
11077
|
+
FormatDateNumberToDigitsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormatDateNumberToDigitsPipe, name: "formatDateNumberToDigits" });
|
|
11078
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FormatDateNumberToDigitsPipe, decorators: [{
|
|
11079
|
+
type: Pipe,
|
|
11080
|
+
args: [{
|
|
11081
|
+
name: 'formatDateNumberToDigits'
|
|
11082
|
+
}]
|
|
11083
|
+
}], ctorParameters: function () { return [{ type: i1$2.NgbDateParserFormatter }]; } });
|
|
11084
|
+
|
|
11222
11085
|
class MenuBarComponent {
|
|
11223
|
-
constructor(router, localeService, userService, navigatorService, supportService, baseVisibilityService) {
|
|
11086
|
+
constructor(router, localeService, userService, navigatorService, supportService, baseVisibilityService, calendar, formatter, filterService, cacheService) {
|
|
11224
11087
|
this.router = router;
|
|
11225
11088
|
this.localeService = localeService;
|
|
11226
11089
|
this.userService = userService;
|
|
11227
11090
|
this.navigatorService = navigatorService;
|
|
11228
11091
|
this.supportService = supportService;
|
|
11229
11092
|
this.baseVisibilityService = baseVisibilityService;
|
|
11093
|
+
this.calendar = calendar;
|
|
11094
|
+
this.formatter = formatter;
|
|
11095
|
+
this.filterService = filterService;
|
|
11096
|
+
this.cacheService = cacheService;
|
|
11230
11097
|
this.isCollapsed = true;
|
|
11231
11098
|
this.isVisitor = true;
|
|
11232
11099
|
this.isVisible = false;
|
|
11233
11100
|
this.isChangePositionVisible = false;
|
|
11101
|
+
this.hoveredDate = null;
|
|
11102
|
+
this.isDateFilterApplied = false;
|
|
11103
|
+
this.dateChanged = false;
|
|
11234
11104
|
this.userSubscription = this.userService.isChanged.subscribe((isChanged) => {
|
|
11235
11105
|
if (isChanged) {
|
|
11236
11106
|
this.update();
|
|
@@ -11245,6 +11115,32 @@ class MenuBarComponent {
|
|
|
11245
11115
|
}
|
|
11246
11116
|
ngOnInit() {
|
|
11247
11117
|
this.update();
|
|
11118
|
+
if (this.cacheName) {
|
|
11119
|
+
this.cache = this.cacheService.getFromCache(this.cacheName);
|
|
11120
|
+
}
|
|
11121
|
+
if (this.cache) {
|
|
11122
|
+
this.isDateFilterApplied = true;
|
|
11123
|
+
let { from, to } = this.cache;
|
|
11124
|
+
this.toDate = this.getNgbDate(to);
|
|
11125
|
+
this.fromDate = this.getNgbDate(from);
|
|
11126
|
+
localStorage.setItem('startDate', from.toString());
|
|
11127
|
+
localStorage.setItem('endDate', to.toString());
|
|
11128
|
+
this.filterService.dateFilterUpdated([new Date(from), new Date(to)]);
|
|
11129
|
+
}
|
|
11130
|
+
else {
|
|
11131
|
+
const currentDate = new Date().getTime(); //get current timestamp
|
|
11132
|
+
const thirtyDaysAgoDate = currentDate - 30 * 24 * 60 * 60 * 1000; //substract 30 days in miliseconds from the current timestamp
|
|
11133
|
+
// add dates to localstorage for retool urlsParams
|
|
11134
|
+
localStorage.setItem('startDate', thirtyDaysAgoDate.toString());
|
|
11135
|
+
localStorage.setItem('endDate', currentDate.toString());
|
|
11136
|
+
// updates date range dates to last 30 days ranges from today
|
|
11137
|
+
this.fromDate = this.getNgbDate(thirtyDaysAgoDate);
|
|
11138
|
+
this.toDate = this.getNgbDate(currentDate);
|
|
11139
|
+
this.filterService.dateFilterUpdated([
|
|
11140
|
+
new Date(thirtyDaysAgoDate.toString()),
|
|
11141
|
+
new Date(currentDate.toString()),
|
|
11142
|
+
]);
|
|
11143
|
+
}
|
|
11248
11144
|
}
|
|
11249
11145
|
ngAfterViewInit() {
|
|
11250
11146
|
const input = document.querySelector('#mainSearchBar');
|
|
@@ -11294,15 +11190,103 @@ class MenuBarComponent {
|
|
|
11294
11190
|
}
|
|
11295
11191
|
onChangePositionClick() {
|
|
11296
11192
|
this.baseVisibilityService.isChangePositionVisible.next(!this.isChangePositionVisible);
|
|
11297
|
-
|
|
11193
|
+
}
|
|
11194
|
+
getNgbDate(date) {
|
|
11195
|
+
let dt = new Date(date);
|
|
11196
|
+
dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset()); // convert to UTC
|
|
11197
|
+
return new NgbDate(dt.getUTCFullYear(), dt.getUTCMonth() + 1, dt.getUTCDate());
|
|
11198
|
+
}
|
|
11199
|
+
onDateSelection(date) {
|
|
11200
|
+
if (!this.fromDate && !this.toDate) {
|
|
11201
|
+
this.fromDate = date;
|
|
11202
|
+
}
|
|
11203
|
+
else if (this.fromDate &&
|
|
11204
|
+
!this.toDate &&
|
|
11205
|
+
date &&
|
|
11206
|
+
date.after(this.fromDate)) {
|
|
11207
|
+
this.toDate = date;
|
|
11208
|
+
}
|
|
11209
|
+
else {
|
|
11210
|
+
this.toDate = null;
|
|
11211
|
+
this.fromDate = date;
|
|
11212
|
+
}
|
|
11213
|
+
this.isDateChanged();
|
|
11214
|
+
}
|
|
11215
|
+
isDateChanged() {
|
|
11216
|
+
if (this.fromDate && this.toDate) {
|
|
11217
|
+
if (this.cache) {
|
|
11218
|
+
this.dateChanged =
|
|
11219
|
+
!this.fromDate.equals(this.getNgbDate(this.cache.from)) ||
|
|
11220
|
+
!this.toDate.equals(this.getNgbDate(this.cache.to));
|
|
11221
|
+
}
|
|
11222
|
+
}
|
|
11223
|
+
}
|
|
11224
|
+
isHovered(date) {
|
|
11225
|
+
return (this.fromDate &&
|
|
11226
|
+
!this.toDate &&
|
|
11227
|
+
this.hoveredDate &&
|
|
11228
|
+
date.after(this.fromDate) &&
|
|
11229
|
+
date.before(this.hoveredDate));
|
|
11230
|
+
}
|
|
11231
|
+
isInside(date) {
|
|
11232
|
+
return this.toDate && date.after(this.fromDate) && date.before(this.toDate);
|
|
11233
|
+
}
|
|
11234
|
+
isRange(date) {
|
|
11235
|
+
return (date.equals(this.fromDate) ||
|
|
11236
|
+
(this.toDate && date.equals(this.toDate)) ||
|
|
11237
|
+
this.isInside(date) ||
|
|
11238
|
+
this.isHovered(date));
|
|
11239
|
+
}
|
|
11240
|
+
validateInput(currentValue, input) {
|
|
11241
|
+
const parsed = this.formatter.parse(input);
|
|
11242
|
+
return parsed && this.calendar.isValid(NgbDate.from(parsed))
|
|
11243
|
+
? NgbDate.from(parsed)
|
|
11244
|
+
: currentValue;
|
|
11245
|
+
}
|
|
11246
|
+
emitRange() {
|
|
11247
|
+
if (this.fromDate && this.toDate) {
|
|
11248
|
+
const from = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day);
|
|
11249
|
+
const to = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day, 23, 59);
|
|
11250
|
+
this.cacheService.putInCache(this.cacheName, {
|
|
11251
|
+
from: from.getTime(),
|
|
11252
|
+
to: to.getTime(),
|
|
11253
|
+
});
|
|
11254
|
+
this.filterService.dateFilterUpdated([from, to]);
|
|
11255
|
+
this.isDateFilterApplied = true;
|
|
11256
|
+
this.dateChanged = false;
|
|
11257
|
+
}
|
|
11258
|
+
}
|
|
11259
|
+
onClearDates() {
|
|
11260
|
+
this.fromDate = null;
|
|
11261
|
+
this.toDate = null;
|
|
11262
|
+
this.isDateFilterApplied = false;
|
|
11263
|
+
this.cacheService.removeFromCache(this.cacheName);
|
|
11264
|
+
this.filterService.dateFilterUpdated(null);
|
|
11265
|
+
}
|
|
11266
|
+
onApply() {
|
|
11267
|
+
if (this.fromDate && this.toDate) {
|
|
11268
|
+
this.emitRange();
|
|
11269
|
+
}
|
|
11270
|
+
//transform ngbDate to date objet then put dates in timestamp in localStorage to share it with Retool
|
|
11271
|
+
if (this.fromDate) {
|
|
11272
|
+
const startDate = new Date(this.fromDate.year, this.fromDate.month - 1, this.fromDate.day);
|
|
11273
|
+
localStorage.setItem('startDate', startDate.getTime().toString());
|
|
11274
|
+
console.log('test setItem from : ' + startDate.getTime().toString());
|
|
11275
|
+
}
|
|
11276
|
+
if (this.toDate) {
|
|
11277
|
+
const endDate = new Date(this.toDate.year, this.toDate.month - 1, this.toDate.day);
|
|
11278
|
+
localStorage.setItem('endDate', endDate.getTime().toString());
|
|
11279
|
+
}
|
|
11298
11280
|
}
|
|
11299
11281
|
}
|
|
11300
|
-
MenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MenuBarComponent, deps: [{ token: i1$1.Router }, { token: LocaleService }, { token: BaseUserService }, { token: NavigatorService }, { token: SupportService }, { token: BaseVisibilityService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11301
|
-
MenuBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", 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-immo.png\">\r\n </div>\r\n <button class=\"navbar-toggler\" (click)=\"navbarCollapse.toggle()\" type=\"button\"\r\n [attr.aria-expanded]=\"!isCollapsed\" aria-controls=\"navbar-collapse\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse\" #navbarCollapse=\"ngbCollapse\" [(ngbCollapse)]=\"isCollapsed\">\r\n <form class=\"form-inline ms-3 form-container \">\r\n <input class=\"form-control search-button\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\r\n <button class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"onSubmit()\">{{'Search' |\r\n translate}}</button>\r\n <lib-range-date-picker cacheName=\"mainDate\"></lib-range-date-picker>\r\n <div class=\"change-position-button\" *ngIf=\"!isChangePositionVisible\">\r\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\r\n <label class=\"link-primary\" (click)=\"onChangePositionClick()\" for=\"btn-check-outlined\">{{ \"Move to\" |\r\n translate }}</label>\r\n </div>\r\n </form>\r\n <div class=\"ms-auto nav-item dropdown profile_pic-container\">\r\n <div class=\"profile_pic dropdown-toggle\" data-testid=\"dropdown-menu-button\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <p *ngIf=\"user && mission\" class=\"p-2\">\r\n <span class=\"username\">{{ user.displayName }}</span><br />\r\n <span class=\"user-role\">{{ mission.role }}</span><br />\r\n <span class=\"org\">{{ mission.organisation ? mission.organisation.name : \"No organisation\" |\r\n translate}}</span>\r\n </p>\r\n <div class=\"dropdown-divider\"></div>\r\n <!-- <a class=\"dropdown-item\" routerLink=\"/debug\" *ngIf=\"isManager\">Debug</a> -->\r\n <a class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/dashboard\">{{'Data management' | translate}}</a>\r\n <a class=\"dropdown-item\" data-testid=\"user-management-btn\" routerLink=\"/admin\" *ngIf=\"isManager\">\r\n {{'Users management' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/profile\">\r\n {{'Profile' | translate}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n <lib-navigation-bar *ngIf=\"isVisible && isChangePositionVisible\"></lib-navigation-bar>\r\n </div>\r\n <div *ngIf=\"isVisitor && isVisible\">\r\n <div class=\"visitor-div\">\r\n <div class=\"logo-container\" data-testid=\"dropdown-menu-button\">\r\n <img class=\"img-logo\" alt=\"SmarterPlanLogo\" src=\"../assets/images/logos/logo-reserve.png\">\r\n </div>\r\n <div class=\"avatar-container-menu\">\r\n <div class=\"profile_pic dropdown-toggle\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <button class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</button>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}.navbar form{width:100%;margin:0;padding:0}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{background-color:#fff;color:var(--smarterplan-primary);padding:5px 10px}button:disabled,button[disabled]{color:#c04f4f}.navbar-toggler{margin-right:1em}.icon{height:40px;width:40px;color:var(--smarterplan-primary)}.search-button{width:auto}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.profile_pic-container{margin-right:1em}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}.search-button{width:500px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}.search-button{width:400px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}.search-button{width:300px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button{width:200px}}.form-container{margin:.5rem 0}.navbar-collapse.show{display:flex;padding-bottom:.5rem}\n"], components: [{ type: 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: i1$2.NgbCollapse, selector: "[ngbCollapse]", inputs: ["animation", "ngbCollapse"], outputs: ["ngbCollapseChange", "shown", "hidden"], exportAs: ["ngbCollapse"] }, { 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 } });
|
|
11282
|
+
MenuBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MenuBarComponent, deps: [{ token: i1$1.Router }, { token: LocaleService }, { token: BaseUserService }, { token: NavigatorService }, { token: SupportService }, { token: BaseVisibilityService }, { token: i1$2.NgbCalendar }, { token: i1$2.NgbDateParserFormatter }, { token: FilterService }, { token: AmplifyCacheService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11283
|
+
MenuBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: MenuBarComponent, selector: "lib-menu-bar", inputs: { cacheName: "cacheName" }, 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 order-md-0\" [routerLink]=\"['/dashboard']\">\r\n <img alt=\"SmarterPlan\" src=\"../assets/images/logos/logo-immo.png\">\r\n </div>\r\n <div class=\"ms-auto nav-item dropdown profile_pic-container order-md-2\">\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 <button class=\"navbar-toggler order-md-1\" (click)=\"navbarCollapse.toggle()\" type=\"button\"\r\n [attr.aria-expanded]=\"!isCollapsed\" aria-controls=\"navbar-collapse\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse order-md-1\" #navbarCollapse=\"ngbCollapse\" [(ngbCollapse)]=\"isCollapsed\"\r\n [animation]=\"false\">\r\n <form\r\n class=\"form-inline m-0 mt-2 form-container d-flex justify-content-start align-items-start align-items-md-center flex-column flex-md-row flex-nowrap filters-menu-block\">\r\n <div class=\"input-group search-button-container d-flex flex-row flex-nowrap p-0 m-0\">\r\n <input class=\"form-control search-button m-1\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\r\n <button class=\"btn btn-outline-primary rounded-pill m-1 w-fit-content h-fit-content align-self-md-center\"\r\n (click)=\"onSubmit()\">{{'Search' |\r\n translate}}</button>\r\n </div>\r\n <div class=\"input-group search-button-container d-flex flex-row flex-nowrap p-0 m-0\">\r\n <div class=\"input-group date-selector m-1\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\r\n [value]=\"fromDate | formatDateNumberToDigits\"\r\n (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\"\r\n type=\"button\"></button>\r\n </div>\r\n </div>\r\n <input name=\"datepicker\" class=\"form-control d-none\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\r\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n <span class=\"ms-1 p-2\">{{'to' | translate}}</span>\r\n <div class=\"input-group date-selector m-1\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\r\n [value]=\"toDate | formatDateNumberToDigits\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\"\r\n type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group search-button-container d-flex flex-row flex-nowrap p-0 m-1 justify-content-evenly\">\r\n <button\r\n class=\"btn btn-primary rounded-pill ms-1 w-25 w-md-fit-content h-md-fit-content align-self-md-center\"\r\n type=\"button\" (click)=\"onApply()\" *ngIf=\"!isDateFilterApplied || dateChanged\">\r\n {{'Apply' | translate}}\r\n </button>\r\n <span\r\n class=\"appliedText ms-1 py-2 align-self-md-center pb-md-0 mx-2 w-md-fit-content h-md-fit-content align-self-md-center\"\r\n *ngIf=\"isDateFilterApplied && !dateChanged\">\r\n <span class=\"iconify\" data-icon=\"ion:checkmark\" data-width=\"15\" data-height=\"15\"></span>\r\n {{\"Applied\" | translate}}\r\n </span>\r\n <button\r\n class=\"btn btn-outline-primary rounded-pill w-25 mx-2 w-md-fit-content h-md-fit-content align-self-md-center\"\r\n type=\"button\" (click)=\"onClearDates()\">{{'Clear'\r\n |\r\n translate}}</button>\r\n <div\r\n class=\"change-position-button align-self-end pb-2 align-self-md-center mx-2 pb-md-0 flex-nowrap w-25 w-md-fit-content h-md-fit-content\">\r\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\r\n <label class=\"link-primary cursor-pointer text-decoration-underline\" (click)=\"onChangePositionClick()\"\r\n for=\"btn-check-outlined\">{{\r\n (isChangePositionVisible ? \"Close\" : \"Move to\") | translate }}</label>\r\n </div>\r\n </div>\r\n </form>\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 cursor-pointer\" 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: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}.navbar form{width:100%;margin:0;padding:0}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{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-container{width:auto;align-items:stretch;justify-items:start}.search-button-container .search-button{width:auto;border-radius:1rem!important}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.profile_pic-container{margin-right:1em}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}.filters-menu-block{width:auto}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button-container,.filters-menu-block{width:100%}}.form-container{margin:.5rem 0}.navbar-collapse.show{display:flex;padding-bottom:.5rem}.hidden{width:0;margin:0;border:none;padding:0}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:var(--smarterplan-primary-lighter);color:#fff}.custom-day.faded{background-color:var(--smarterplan-primary-transparent)}.calendar{height:100%}.appliedText,.appliedText span{color:var(--smarterplan-primary)}@media (max-width: 767px){.form-inline{flex-direction:column}}.hidden{opacity:0}.date-selector{flex-wrap:nowrap}.date-selector input{min-width:80px;margin:0}@media (min-width: 768px){.w-md-fit-content{width:fit-content!important}.h-md-content{height:fit-content!important}}\n"], components: [{ type: AvatarComponent, selector: "lib-avatar", inputs: ["size", "userID"] }, { type: NavigationBarComponent, selector: "lib-navigation-bar" }], directives: [{ type: i12.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: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i1$2.NgbCollapse, selector: "[ngbCollapse]", inputs: ["animation", "ngbCollapse"], outputs: ["ngbCollapseChange", "shown", "hidden"], exportAs: ["ngbCollapse"] }, { 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$2.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }], pipes: { "translate": i1.TranslatePipe, "formatDateNumberToDigits": FormatDateNumberToDigitsPipe } });
|
|
11302
11284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: MenuBarComponent, decorators: [{
|
|
11303
11285
|
type: Component,
|
|
11304
|
-
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-immo.png\">\r\n </div>\r\n <button class=\"navbar-toggler\" (click)=\"navbarCollapse.toggle()\" type=\"button\"\r\n [attr.aria-expanded]=\"!isCollapsed\" aria-controls=\"navbar-collapse\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse\" #navbarCollapse=\"ngbCollapse\" [(ngbCollapse)]=\"isCollapsed\">\r\n <form class=\"form-inline ms-3 form-container \">\r\n <input class=\"form-control search-button\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\r\n <button class=\"btn btn-outline-primary rounded-pill me-2\" (click)=\"onSubmit()\">{{'Search' |\r\n translate}}</button>\r\n <lib-range-date-picker cacheName=\"mainDate\"></lib-range-date-picker>\r\n <div class=\"change-position-button\" *ngIf=\"!isChangePositionVisible\">\r\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\r\n <label class=\"link-primary\" (click)=\"onChangePositionClick()\" for=\"btn-check-outlined\">{{ \"Move to\" |\r\n translate }}</label>\r\n </div>\r\n </form>\r\n <div class=\"ms-auto nav-item dropdown profile_pic-container\">\r\n <div class=\"profile_pic dropdown-toggle\" data-testid=\"dropdown-menu-button\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <p *ngIf=\"user && mission\" class=\"p-2\">\r\n <span class=\"username\">{{ user.displayName }}</span><br />\r\n <span class=\"user-role\">{{ mission.role }}</span><br />\r\n <span class=\"org\">{{ mission.organisation ? mission.organisation.name : \"No organisation\" |\r\n translate}}</span>\r\n </p>\r\n <div class=\"dropdown-divider\"></div>\r\n <!-- <a class=\"dropdown-item\" routerLink=\"/debug\" *ngIf=\"isManager\">Debug</a> -->\r\n <a class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/dashboard\">{{'Data management' | translate}}</a>\r\n <a class=\"dropdown-item\" data-testid=\"user-management-btn\" routerLink=\"/admin\" *ngIf=\"isManager\">\r\n {{'Users management' | translate}}</a>\r\n <a class=\"dropdown-item\" routerLink=\"/profile\">\r\n {{'Profile' | translate}}</a>\r\n <div class=\"dropdown-divider\"></div>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n <lib-navigation-bar *ngIf=\"isVisible && isChangePositionVisible\"></lib-navigation-bar>\r\n </div>\r\n <div *ngIf=\"isVisitor && isVisible\">\r\n <div class=\"visitor-div\">\r\n <div class=\"logo-container\" data-testid=\"dropdown-menu-button\">\r\n <img class=\"img-logo\" alt=\"SmarterPlanLogo\" src=\"../assets/images/logos/logo-reserve.png\">\r\n </div>\r\n <div class=\"avatar-container-menu\">\r\n <div class=\"profile_pic dropdown-toggle\" data-bs-toggle=\"dropdown\">\r\n <lib-avatar></lib-avatar>\r\n </div>\r\n <div class=\"dropdown-menu dropdown-menu-right\">\r\n <button class=\"dropdown-item\" (click)=\"localeService.modal()\">{{'Language' | translate}}</button>\r\n <button class=\"dropdown-item\" (click)=\"openSupportForm()\">{{\"Help\" | translate}}</button>\r\n <button data-testid=\"logout-auth-btn\" class=\"dropdown-item\" (click)=\"signOut()\">{{\"Logout\" |\r\n translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}.navbar form{width:100%;margin:0;padding:0}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{background-color:#fff;color:var(--smarterplan-primary);padding:5px 10px}button:disabled,button[disabled]{color:#c04f4f}.navbar-toggler{margin-right:1em}.icon{height:40px;width:40px;color:var(--smarterplan-primary)}.search-button{width:auto}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.profile_pic-container{margin-right:1em}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}.search-button{width:500px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}.search-button{width:400px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}.search-button{width:300px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button{width:200px}}.form-container{margin:.5rem 0}.navbar-collapse.show{display:flex;padding-bottom:.5rem}\n"] }]
|
|
11305
|
-
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: LocaleService }, { type: BaseUserService }, { type: NavigatorService }, { type: SupportService }, { type: BaseVisibilityService }]; }
|
|
11286
|
+
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 order-md-0\" [routerLink]=\"['/dashboard']\">\r\n <img alt=\"SmarterPlan\" src=\"../assets/images/logos/logo-immo.png\">\r\n </div>\r\n <div class=\"ms-auto nav-item dropdown profile_pic-container order-md-2\">\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 <button class=\"navbar-toggler order-md-1\" (click)=\"navbarCollapse.toggle()\" type=\"button\"\r\n [attr.aria-expanded]=\"!isCollapsed\" aria-controls=\"navbar-collapse\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n <div class=\"navbar-collapse order-md-1\" #navbarCollapse=\"ngbCollapse\" [(ngbCollapse)]=\"isCollapsed\"\r\n [animation]=\"false\">\r\n <form\r\n class=\"form-inline m-0 mt-2 form-container d-flex justify-content-start align-items-start align-items-md-center flex-column flex-md-row flex-nowrap filters-menu-block\">\r\n <div class=\"input-group search-button-container d-flex flex-row flex-nowrap p-0 m-0\">\r\n <input class=\"form-control search-button m-1\" placeholder=\"keyword\" id=\"mainSearchBar\" type=\"text\">\r\n <button class=\"btn btn-outline-primary rounded-pill m-1 w-fit-content h-fit-content align-self-md-center\"\r\n (click)=\"onSubmit()\">{{'Search' |\r\n translate}}</button>\r\n </div>\r\n <div class=\"input-group search-button-container d-flex flex-row flex-nowrap p-0 m-0\">\r\n <div class=\"input-group date-selector m-1\">\r\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\r\n [value]=\"fromDate | formatDateNumberToDigits\"\r\n (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\"\r\n type=\"button\"></button>\r\n </div>\r\n </div>\r\n <input name=\"datepicker\" class=\"form-control d-none\" ngbDatepicker #datepicker=\"ngbDatepicker\"\r\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\r\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\r\n <ng-template #t let-date let-focused=\"focused\">\r\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\r\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\r\n (mouseleave)=\"hoveredDate = null\">\r\n {{ date.day }}\r\n </span>\r\n </ng-template>\r\n <span class=\"ms-1 p-2\">{{'to' | translate}}</span>\r\n <div class=\"input-group date-selector m-1\">\r\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\r\n [value]=\"toDate | formatDateNumberToDigits\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\"\r\n type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"input-group search-button-container d-flex flex-row flex-nowrap p-0 m-1 justify-content-evenly\">\r\n <button\r\n class=\"btn btn-primary rounded-pill ms-1 w-25 w-md-fit-content h-md-fit-content align-self-md-center\"\r\n type=\"button\" (click)=\"onApply()\" *ngIf=\"!isDateFilterApplied || dateChanged\">\r\n {{'Apply' | translate}}\r\n </button>\r\n <span\r\n class=\"appliedText ms-1 py-2 align-self-md-center pb-md-0 mx-2 w-md-fit-content h-md-fit-content align-self-md-center\"\r\n *ngIf=\"isDateFilterApplied && !dateChanged\">\r\n <span class=\"iconify\" data-icon=\"ion:checkmark\" data-width=\"15\" data-height=\"15\"></span>\r\n {{\"Applied\" | translate}}\r\n </span>\r\n <button\r\n class=\"btn btn-outline-primary rounded-pill w-25 mx-2 w-md-fit-content h-md-fit-content align-self-md-center\"\r\n type=\"button\" (click)=\"onClearDates()\">{{'Clear'\r\n |\r\n translate}}</button>\r\n <div\r\n class=\"change-position-button align-self-end pb-2 align-self-md-center mx-2 pb-md-0 flex-nowrap w-25 w-md-fit-content h-md-fit-content\">\r\n <input type=\"checkbox\" class=\"btn-check\" id=\"btn-check-outlined\" autocomplete=\"off\">\r\n <label class=\"link-primary cursor-pointer text-decoration-underline\" (click)=\"onChangePositionClick()\"\r\n for=\"btn-check-outlined\">{{\r\n (isChangePositionVisible ? \"Close\" : \"Move to\") | translate }}</label>\r\n </div>\r\n </div>\r\n </form>\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 cursor-pointer\" 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: ["#menu-bar{position:sticky;top:0;z-index:200}.navbar{z-index:200}.navbar-brand{padding-top:5px;padding-bottom:5px;cursor:pointer}.navbar-brand img{height:70px}.profile_pic{border-radius:50%;height:45px;width:45px;margin:8px;border:.2px solid #969696}.navbar-nav .profile-pic-container .dropdown-menu{position:absolute}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}.profile_pic.dropdown-toggle:after{display:none}.navbar-light{border-bottom:1px solid var(--smarterplan-primary);background-color:#fff}.navbar form{width:100%;margin:0;padding:0}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0;width:auto}button{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-container{width:auto;align-items:stretch;justify-items:start}.search-button-container .search-button{width:auto;border-radius:1rem!important}.visitor-div{background-color:var(--smarterplan-primary);height:60px;display:flex;justify-content:space-between}.profile_pic-container{margin-right:1em}.logo-container,.img-logo{height:100%}.change-position-button{margin-left:2rem}.change-position-button label,.change-position-button .btn-check:checked,.change-position-button .btn-check:focus,.change-position-button .btn-outline-primary,.change-position-button .btn{box-shadow:none!important;outline:0}.change-position-button label{border-radius:16px}.change-position-button .btn-check:checked+.btn{background-color:var(--smarterplan-primary);color:#fff!important}.filters-menu-block{width:auto}@media (min-width: 1200px){.navbar-brand img{height:100px}.profile_pic{height:60px;width:60px;margin:15px}}@media (min-width: 992px) and (max-width: 1199.98px){.navbar-brand img{height:80px}.profile_pic{height:50px;width:50px;margin:12px}}@media (min-width: 768px) and (max-width: 991.98px){.navbar-brand img{height:60px}.profile_pic{height:40px;width:40px;margin:10px}}@media (max-width: 767.98px){.navbar-brand img{height:50px}.profile_pic{height:30px;width:30px;margin:8px}.search-button-container,.filters-menu-block{width:100%}}.form-container{margin:.5rem 0}.navbar-collapse.show{display:flex;padding-bottom:.5rem}.hidden{width:0;margin:0;border:none;padding:0}.custom-day{text-align:center;padding:.185rem .25rem;display:inline-block;height:2rem;width:2rem}.custom-day.focused{background-color:#e6e6e6}.custom-day.range,.custom-day:hover{background-color:var(--smarterplan-primary-lighter);color:#fff}.custom-day.faded{background-color:var(--smarterplan-primary-transparent)}.calendar{height:100%}.appliedText,.appliedText span{color:var(--smarterplan-primary)}@media (max-width: 767px){.form-inline{flex-direction:column}}.hidden{opacity:0}.date-selector{flex-wrap:nowrap}.date-selector input{min-width:80px;margin:0}@media (min-width: 768px){.w-md-fit-content{width:fit-content!important}.h-md-content{height:fit-content!important}}\n"] }]
|
|
11287
|
+
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: LocaleService }, { type: BaseUserService }, { type: NavigatorService }, { type: SupportService }, { type: BaseVisibilityService }, { type: i1$2.NgbCalendar }, { type: i1$2.NgbDateParserFormatter }, { type: FilterService }, { type: AmplifyCacheService }]; }, propDecorators: { cacheName: [{
|
|
11288
|
+
type: Input
|
|
11289
|
+
}] } });
|
|
11306
11290
|
|
|
11307
11291
|
class NgxSmarterplanCoreModule {
|
|
11308
11292
|
static forRoot(config) {
|
|
@@ -11329,7 +11313,6 @@ NgxSmarterplanCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0"
|
|
|
11329
11313
|
MenuBarComponent,
|
|
11330
11314
|
AvatarComponent,
|
|
11331
11315
|
NavigationBarComponent,
|
|
11332
|
-
RangeDatePickerComponent,
|
|
11333
11316
|
LoaderComponent,
|
|
11334
11317
|
SupportModalComponent,
|
|
11335
11318
|
FormatDateNumberToDigitsPipe], imports: [FormsModule,
|
|
@@ -11372,7 +11355,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
11372
11355
|
MenuBarComponent,
|
|
11373
11356
|
AvatarComponent,
|
|
11374
11357
|
NavigationBarComponent,
|
|
11375
|
-
RangeDatePickerComponent,
|
|
11376
11358
|
LoaderComponent,
|
|
11377
11359
|
SupportModalComponent,
|
|
11378
11360
|
FormatDateNumberToDigitsPipe
|