@smarterplan/ngx-smarterplan-core 0.3.13 → 0.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/esm2020/lib/components/csv-export/csv-export.component.mjs +3 -3
- package/esm2020/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +3 -3
- package/esm2020/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
- package/esm2020/lib/components/search-bar/search-bar.component.mjs +3 -3
- package/esm2020/lib/components/support-modal/support-modal.component.mjs +5 -4
- package/esm2020/lib/ngx-smarterplan-core.service.mjs +1 -1
- package/esm2020/lib/pipes/duration-to-string.pipe.mjs +1 -1
- package/esm2020/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
- package/esm2020/lib/pipes/safe-url.pipe.mjs +1 -1
- package/esm2020/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
- package/esm2020/lib/services/booking.service.mjs +14 -1
- package/esm2020/lib/services/matterport.service.mjs +21 -4
- package/esm2020/lib/services/validators.service.mjs +8 -5
- package/esm2020/lib/services/viewer.service.mjs +2 -2
- package/esm2020/lib/validators/text.directive.mjs +7 -0
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +57 -22
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +57 -22
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/services/booking.service.d.ts +3 -0
- package/lib/services/matterport.service.d.ts +1 -0
- package/lib/services/validators.service.d.ts +1 -1
- package/lib/validators/text.directive.d.ts +2 -0
- package/package.json +2 -2
|
@@ -79,10 +79,10 @@ class CsvExportComponent {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
CsvExportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CsvExportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
-
CsvExportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CsvExportComponent, selector: "lib-csv-export", inputs: { headers: "headers", rowsInput: "rowsInput", getRows: "getRows", title: "title", buttonLabel: "buttonLabel" }, ngImport: i0, template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\
|
|
82
|
+
CsvExportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: CsvExportComponent, selector: "lib-csv-export", inputs: { headers: "headers", rowsInput: "rowsInput", getRows: "getRows", title: "title", buttonLabel: "buttonLabel" }, ngImport: i0, template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\n <span class=\"iconify\" data-icon=\"mdi:file-download-outline\"></span>\n {{ buttonLabel | translate}}\n</span>\n", styles: [".download-csv{color:var(--smarterplan-primary)}\n"], pipes: { "translate": i1.TranslatePipe } });
|
|
83
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: CsvExportComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
|
-
args: [{ selector: 'lib-csv-export', template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\
|
|
85
|
+
args: [{ selector: 'lib-csv-export', template: "<span [style.cursor]=\"'pointer'\" (click)=\"onClickDownload()\" class=\"download-csv d-flex\">\n <span class=\"iconify\" data-icon=\"mdi:file-download-outline\"></span>\n {{ buttonLabel | translate}}\n</span>\n", styles: [".download-csv{color:var(--smarterplan-primary)}\n"] }]
|
|
86
86
|
}], propDecorators: { headers: [{
|
|
87
87
|
type: Input
|
|
88
88
|
}], rowsInput: [{
|
|
@@ -626,6 +626,7 @@ class MatterportService {
|
|
|
626
626
|
this.tagAction = new Subject();
|
|
627
627
|
this.inTransitionMode = false;
|
|
628
628
|
this.inTransitionSweep = false;
|
|
629
|
+
this.tagMessengerOn = false;
|
|
629
630
|
this.config = config;
|
|
630
631
|
}
|
|
631
632
|
get currentSpaceID() {
|
|
@@ -1134,11 +1135,26 @@ class MatterportService {
|
|
|
1134
1135
|
},
|
|
1135
1136
|
})
|
|
1136
1137
|
.then((messenger) => {
|
|
1138
|
+
if (this.tagMessengerOn) {
|
|
1139
|
+
return;
|
|
1140
|
+
}
|
|
1141
|
+
this.tagMessengerOn = true;
|
|
1142
|
+
const imageClick = (featureID) => {
|
|
1143
|
+
// console.log("image click handler", featureID);
|
|
1144
|
+
this.tagService.onActionImageClick(featureID);
|
|
1145
|
+
};
|
|
1146
|
+
const audioClick = (audioCommentID) => {
|
|
1147
|
+
// console.log("audio click handler", audioCommentID);
|
|
1148
|
+
this.tagService.onActionAudioClick(audioCommentID);
|
|
1149
|
+
};
|
|
1150
|
+
const videoClick = (url) => {
|
|
1151
|
+
this.tagService.onActionAudioClick(url);
|
|
1152
|
+
};
|
|
1137
1153
|
messenger.on(TagAction.DETAIL_CLICK, this.tagService.onActionDetailClick.bind(this.tagService));
|
|
1138
1154
|
messenger.on(TagAction.TICKET_CLICK, this.tagService.onActionDetailClick.bind(this.tagService));
|
|
1139
|
-
messenger.on(TagAction.AUDIO_CLICK,
|
|
1140
|
-
messenger.on(TagAction.IMAGE_CLICK,
|
|
1141
|
-
messenger.on(TagAction.VIDEO_CLICK,
|
|
1155
|
+
messenger.on(TagAction.AUDIO_CLICK, audioClick);
|
|
1156
|
+
messenger.on(TagAction.IMAGE_CLICK, imageClick);
|
|
1157
|
+
messenger.on(TagAction.VIDEO_CLICK, videoClick);
|
|
1142
1158
|
messenger.on(TagAction.DOC_CLICK, this.tagService.onActionDocClick.bind(this.tagService));
|
|
1143
1159
|
messenger.on(TagAction.YOUTUBE_CLICK, this.tagService.onActionYoutubeClick.bind(this.tagService));
|
|
1144
1160
|
})
|
|
@@ -1439,6 +1455,7 @@ class MatterportService {
|
|
|
1439
1455
|
this.sdk = null;
|
|
1440
1456
|
clearInterval(this.timerPointer);
|
|
1441
1457
|
this.forbiddenSweeps = [];
|
|
1458
|
+
this.tagMessengerOn = false;
|
|
1442
1459
|
}
|
|
1443
1460
|
async removeForbiddenSweeps(forbiddenSweeps) {
|
|
1444
1461
|
this.forbiddenSweeps = [...forbiddenSweeps];
|
|
@@ -1515,7 +1532,7 @@ class ViewerService {
|
|
|
1515
1532
|
// this.tourUrl = this.checkMode("Matterport")
|
|
1516
1533
|
// ? `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1&hr=0>=0&title=0&log=0&brand=0&applicationKey=qn9wsasuy5h2fzrbrn1nzr0id&mds=0`
|
|
1517
1534
|
// : "http://cupixweework.s3-website.eu-west-3.amazonaws.com/";
|
|
1518
|
-
this.tourUrl = `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1&
|
|
1535
|
+
this.tourUrl = `https://my.matterport.com/show/?m=${model3d}&play=1&qs=1>=0&title=0&log=0&brand=0&search=0&applicationKey=qn9wsasuy5h2fzrbrn1nzr0id&mds=0`;
|
|
1519
1536
|
if (!showIconPlan) {
|
|
1520
1537
|
this.tourUrl += "&fp=0";
|
|
1521
1538
|
}
|
|
@@ -1873,10 +1890,10 @@ class ModalSwitchVisitComponent {
|
|
|
1873
1890
|
}
|
|
1874
1891
|
}
|
|
1875
1892
|
ModalSwitchVisitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalSwitchVisitComponent, deps: [{ token: i1$2.NgbActiveModal }, { token: i1$1.Router }, { token: ViewerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1876
|
-
ModalSwitchVisitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ModalSwitchVisitComponent, selector: "lib-modal-switch-visit", inputs: { content: "content", model3D: "model3D", spaceID: "spaceID", dataToMove: "dataToMove" }, ngImport: i0, template: "<p>modal-switch-visit works!</p>\
|
|
1893
|
+
ModalSwitchVisitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: ModalSwitchVisitComponent, selector: "lib-modal-switch-visit", inputs: { content: "content", model3D: "model3D", spaceID: "spaceID", dataToMove: "dataToMove" }, ngImport: i0, template: "<p>modal-switch-visit works!</p>\n", styles: [""] });
|
|
1877
1894
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: ModalSwitchVisitComponent, decorators: [{
|
|
1878
1895
|
type: Component,
|
|
1879
|
-
args: [{ selector: 'lib-modal-switch-visit', template: "<p>modal-switch-visit works!</p>\
|
|
1896
|
+
args: [{ selector: 'lib-modal-switch-visit', template: "<p>modal-switch-visit works!</p>\n", styles: [""] }]
|
|
1880
1897
|
}], ctorParameters: function () { return [{ type: i1$2.NgbActiveModal }, { type: i1$1.Router }, { type: ViewerService }]; }, propDecorators: { content: [{
|
|
1881
1898
|
type: Input
|
|
1882
1899
|
}], model3D: [{
|
|
@@ -5865,10 +5882,10 @@ class SearchBarComponent {
|
|
|
5865
5882
|
}
|
|
5866
5883
|
}
|
|
5867
5884
|
SearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SearchBarComponent, deps: [{ token: SearchService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5868
|
-
SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SearchBarComponent, selector: "lib-search-bar", inputs: { searchable: "searchable", objectType: "objectType" }, outputs: { searchEvent: "searchEvent" }, ngImport: i0, template: "<div class=\"col-md-8 searchbar\">\
|
|
5885
|
+
SearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SearchBarComponent, selector: "lib-search-bar", inputs: { searchable: "searchable", objectType: "objectType" }, outputs: { searchEvent: "searchEvent" }, ngImport: i0, template: "<div class=\"col-md-8 searchbar\">\n <div class=\"row depend\">\n <div class=\"col-md-5\">\n <input id=\"searchbar\" type=\"text\" class=\"form-control\" placeholder=\"keyword\" />\n </div>\n <div class=\"col-md-5\">\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onSubmit()\">{{ 'Search' |\n translate}}</button>\n </div>\n </div>\n</div>", styles: [".searchbar{margin-bottom:10px}\n"], pipes: { "translate": i1.TranslatePipe } });
|
|
5869
5886
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SearchBarComponent, decorators: [{
|
|
5870
5887
|
type: Component,
|
|
5871
|
-
args: [{ selector: 'lib-search-bar', template: "<div class=\"col-md-8 searchbar\">\
|
|
5888
|
+
args: [{ selector: 'lib-search-bar', template: "<div class=\"col-md-8 searchbar\">\n <div class=\"row depend\">\n <div class=\"col-md-5\">\n <input id=\"searchbar\" type=\"text\" class=\"form-control\" placeholder=\"keyword\" />\n </div>\n <div class=\"col-md-5\">\n <button class=\"btn btn-outline-primary rounded-pill\" (click)=\"onSubmit()\">{{ 'Search' |\n translate}}</button>\n </div>\n </div>\n</div>", styles: [".searchbar{margin-bottom:10px}\n"] }]
|
|
5872
5889
|
}], ctorParameters: function () { return [{ type: SearchService }]; }, propDecorators: { searchable: [{
|
|
5873
5890
|
type: Input
|
|
5874
5891
|
}], objectType: [{
|
|
@@ -6155,6 +6172,13 @@ function emailValidator() {
|
|
|
6155
6172
|
};
|
|
6156
6173
|
}
|
|
6157
6174
|
|
|
6175
|
+
function textValidator() {
|
|
6176
|
+
return (control) => {
|
|
6177
|
+
const regex = /[a-zA-Z]/;
|
|
6178
|
+
return !regex.test(control.value) ? { text: control.value } : null;
|
|
6179
|
+
};
|
|
6180
|
+
}
|
|
6181
|
+
|
|
6158
6182
|
class SupportService {
|
|
6159
6183
|
constructor(modalService) {
|
|
6160
6184
|
this.modalService = modalService;
|
|
@@ -6211,16 +6235,19 @@ class ValidatorsService {
|
|
|
6211
6235
|
getError(control) {
|
|
6212
6236
|
if (control.errors) {
|
|
6213
6237
|
if (control.errors.required) {
|
|
6214
|
-
return '
|
|
6238
|
+
return 'errorForm.required';
|
|
6215
6239
|
}
|
|
6216
6240
|
if (control.errors.isEmpty) {
|
|
6217
|
-
return '
|
|
6241
|
+
return 'errorForm.isEmpty';
|
|
6242
|
+
}
|
|
6243
|
+
if (control.errors.text) {
|
|
6244
|
+
return 'errorForm.text';
|
|
6218
6245
|
}
|
|
6219
6246
|
if (control.errors.email) {
|
|
6220
|
-
return '
|
|
6247
|
+
return 'errorForm.email';
|
|
6221
6248
|
}
|
|
6222
6249
|
if (control.errors.maxLength) {
|
|
6223
|
-
return '
|
|
6250
|
+
return 'errorForm.maxLength';
|
|
6224
6251
|
}
|
|
6225
6252
|
}
|
|
6226
6253
|
return '';
|
|
@@ -6277,9 +6304,9 @@ class SupportModalComponent {
|
|
|
6277
6304
|
async iniForm() {
|
|
6278
6305
|
this.currentUser = await this.getCurrentUser();
|
|
6279
6306
|
this.supportForm = this.formBuilder.group({
|
|
6280
|
-
title: ['', [Validators.required, Validators.maxLength(255), noEmptyValidator()]],
|
|
6281
|
-
email: [(this.currentUser ? this.currentUser.email : ''), [Validators.required, emailValidator(), Validators.maxLength(255)]],
|
|
6282
|
-
description: ['', [Validators.required, noEmptyValidator()]],
|
|
6307
|
+
title: ['', [Validators.required, Validators.maxLength(255), noEmptyValidator(), textValidator()]],
|
|
6308
|
+
email: [(this.currentUser ? this.currentUser.email : ''), [Validators.required, emailValidator(), Validators.maxLength(255), textValidator()]],
|
|
6309
|
+
description: ['', [Validators.required, noEmptyValidator(), textValidator()]],
|
|
6283
6310
|
});
|
|
6284
6311
|
this.loading = false;
|
|
6285
6312
|
}
|
|
@@ -6407,10 +6434,10 @@ class RangeDatePickerComponent {
|
|
|
6407
6434
|
}
|
|
6408
6435
|
}
|
|
6409
6436
|
RangeDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: RangeDatePickerComponent, deps: [{ token: i1$2.NgbCalendar }, { token: i1$2.NgbDateParserFormatter }, { token: FilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
6410
|
-
RangeDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: RangeDatePickerComponent, selector: "lib-range-date-picker", ngImport: i0, template: "<form class=\"form-inline\">\
|
|
6437
|
+
RangeDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: RangeDatePickerComponent, selector: "lib-range-date-picker", ngImport: i0, template: "<form class=\"form-inline\">\n <div class=\"mb-3 hidden\">\n <div class=\"input-group\">\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\n <ng-template #t let-date let-focused=\"focused\">\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\n (mouseleave)=\"hoveredDate = null\">\n {{ date.day }}\n </span>\n </ng-template>\n </div>\n </div>\n <div>\n <div class=\"input-group\">\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\n </div>\n </div>\n </div>\n <div class=\"mb-3 ms-2\">\n <div class=\"input-group\">\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\n </div>\n </div>\n </div>\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onApply()\" [disabled]=\"!toDate\">{{'Apply' |\n translate}}</button>\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onClearDates()\">{{'Clear' |\n translate}}</button>\n</form>\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%}\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"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
6411
6438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: RangeDatePickerComponent, decorators: [{
|
|
6412
6439
|
type: Component,
|
|
6413
|
-
args: [{ selector: 'lib-range-date-picker', template: "<form class=\"form-inline\">\
|
|
6440
|
+
args: [{ selector: 'lib-range-date-picker', template: "<form class=\"form-inline\">\n <div class=\"mb-3 hidden\">\n <div class=\"input-group\">\n <input name=\"datepicker\" class=\"form-control\" ngbDatepicker #datepicker=\"ngbDatepicker\"\n [autoClose]=\"'outside'\" (dateSelect)=\"onDateSelection($event)\" [displayMonths]=\"2\" [dayTemplate]=\"t\"\n outsideDays=\"hidden\" [startDate]=\"fromDate!\" tabindex=\"-1\">\n <ng-template #t let-date let-focused=\"focused\">\n <span class=\"custom-day\" [class.focused]=\"focused\" [class.range]=\"isRange(date)\"\n [class.faded]=\"isHovered(date) || isInside(date)\" (mouseenter)=\"hoveredDate = date\"\n (mouseleave)=\"hoveredDate = null\">\n {{ date.day }}\n </span>\n </ng-template>\n </div>\n </div>\n <div>\n <div class=\"input-group\">\n <input #dpFromDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpFromDate\"\n [value]=\"formatter.format(fromDate)\" (input)=\"fromDate = validateInput(fromDate, dpFromDate.value)\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\n </div>\n </div>\n </div>\n <div class=\"mb-3 ms-2\">\n <div class=\"input-group\">\n <input #dpToDate class=\"form-control\" placeholder=\"dd/MM/yyyy\" name=\"dpToDate\"\n [value]=\"formatter.format(toDate)\" (input)=\"toDate = validateInput(toDate, dpToDate.value)\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"datepicker.toggle()\" type=\"button\"></button>\n </div>\n </div>\n </div>\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onApply()\" [disabled]=\"!toDate\">{{'Apply' |\n translate}}</button>\n <button class=\"btn btn-outline-primary rounded-pill ms-3\" (click)=\"onClearDates()\">{{'Clear' |\n translate}}</button>\n</form>\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%}\n"] }]
|
|
6414
6441
|
}], ctorParameters: function () { return [{ type: i1$2.NgbCalendar }, { type: i1$2.NgbDateParserFormatter }, { type: FilterService }]; } });
|
|
6415
6442
|
|
|
6416
6443
|
const cache = {};
|
|
@@ -7700,10 +7727,10 @@ class NavigationBarComponent {
|
|
|
7700
7727
|
}
|
|
7701
7728
|
}
|
|
7702
7729
|
NavigationBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NavigationBarComponent, deps: [{ token: i1$1.Router }, { token: SpaceService }, { token: ZoneService }, { token: VisitService }, { token: ViewerService }, { token: NavigatorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7703
|
-
NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: NavigationBarComponent, selector: "lib-navigation-bar", viewQueries: [{ propertyName: "navbarSelectMenu", first: true, predicate: ["navbarSelectMenu"], descendants: true }], ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\
|
|
7730
|
+
NavigationBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: NavigationBarComponent, selector: "lib-navigation-bar", viewQueries: [{ propertyName: "navbarSelectMenu", first: true, predicate: ["navbarSelectMenu"], descendants: true }], ngImport: i0, template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\n <div class=\"d-flex col-12\">\n <div class=\"me-3\">\n <span class=\"iconify\" data-icon=\"mdi:map-marker-outline\" style=\"color: white;\" data-width=\"30\" data-height=\"30\"></span>\n </div>\n\n <div #navbarSelectMenu class=\"collapse navbar-collapse\" id=\"nav-item-container-blue\">\n <div class=\"d-flex flex-column flex-md-row \">\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\n (ngModelChange)=\"onLocationClick()\">\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\n </option>\n </select>\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\n (ngModelChange)=\"onFloorClick()\">\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\n <option *ngFor=\"let zone of floorsPerSpace\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\n (ngModelChange)=\"onZoneClick()\">\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\n *ngIf=\"childrenZones && childrenZones.length>0\">\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <!-- <select class=\"form-control flex-fill\">\n <option i18n>{{'Favorites' | translate}}</option>\n </select> -->\n </div>\n <div class=\"row\" style=\"margin-left: 0;\">\n <div class=\"outer_circle\">\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\n (click)=\"goTo()\"></button>\n </div>\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d\"\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\n </div>\n </div>\n\n <h4 style=\"line-height: 29px;margin: 0;\" *ngIf=\"showLocation()\">\n {{ showLocation() }}\n </h4>\n </div>\n</nav>\n", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(../../../../../assets/icons/goTo3d.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../../assets/icons/goTo3d-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../../assets/icons/goTo3d.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}\n"], directives: [{ type: i1$2.NgbNavbar, selector: ".navbar" }, { type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe } });
|
|
7704
7731
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: NavigationBarComponent, decorators: [{
|
|
7705
7732
|
type: Component,
|
|
7706
|
-
args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\
|
|
7733
|
+
args: [{ selector: 'lib-navigation-bar', template: "<nav class=\"navbar navbar-expand-md navbar-dark navbar-inverse second-nav\">\n <div class=\"d-flex col-12\">\n <div class=\"me-3\">\n <span class=\"iconify\" data-icon=\"mdi:map-marker-outline\" style=\"color: white;\" data-width=\"30\" data-height=\"30\"></span>\n </div>\n\n <div #navbarSelectMenu class=\"collapse navbar-collapse\" id=\"nav-item-container-blue\">\n <div class=\"d-flex flex-column flex-md-row \">\n <select class=\"form-control flex-fill location select-menu\" [(ngModel)]=\"selectedLocation\"\n (ngModelChange)=\"onLocationClick()\">\n <option [ngValue]=\"null\" selected>{{ 'Location' | translate }}</option>\n <option *ngFor=\"let loc of locations; index as index\" [ngValue]=\"loc\"> {{ loc.name }}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" (change)=\"onVisitClick($event)\"\n *ngIf=\"visitsPerSpace && visitsPerSpace.length > 1\">\n <option value=\"default\" selected disabled hidden>{{'Visit' | translate}}</option>\n <option *ngFor=\"let visit of visitsPerSpace; index as index\" value=\"{{index}}\">{{ visit.name}}\n </option>\n </select>\n <select class=\"form-control flex-fill floor select-menu\" [(ngModel)]=\"selectedFloor\"\n (ngModelChange)=\"onFloorClick()\">\n <option [ngValue]=\"null\" selected>{{'Floor' | translate}}</option>\n <option *ngFor=\"let zone of floorsPerSpace\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu zone\" [(ngModel)]=\"selectedZone\"\n (ngModelChange)=\"onZoneClick()\">\n <option [ngValue]=\"null\" selected>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of zonesPerFloor\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <select class=\"form-control flex-fill select-menu\" [(ngModel)]=\"selectedChildZone\"\n *ngIf=\"childrenZones && childrenZones.length>0\">\n <option [ngValue]=\"null\" selected disabled>{{'Zone' | translate}}</option>\n <option *ngFor=\"let zone of childrenZones\" [ngValue]=\"zone\">{{ zone.name}}</option>\n </select>\n <!-- <select class=\"form-control flex-fill\">\n <option i18n>{{'Favorites' | translate}}</option>\n </select> -->\n </div>\n <div class=\"row\" style=\"margin-left: 0;\">\n <div class=\"outer_circle\">\n <button id='btn-icon' [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\"\n (click)=\"goTo()\"></button>\n </div>\n <button (click)=\"goTo()\" class=\"btn rounded-pill btn-3d\"\n [disabled]=\"!selectedLocation || !selectedModel3d || !canGo()\">{{'3D visit' | translate}}</button>\n </div>\n </div>\n\n <h4 style=\"line-height: 29px;margin: 0;\" *ngIf=\"showLocation()\">\n {{ showLocation() }}\n </h4>\n </div>\n</nav>\n", styles: [":host{position:sticky;top:0;height:123px}.navbar{z-index:200;padding:.4rem 1rem}.navbar.second-nav{z-index:199;background-color:var(--smarterplan-primary)}input,select{margin-right:15px}.select{background:transparent;border:none;color:#fff;margin:6px 20px 0}.form-control{width:auto;min-width:80px;max-width:18%}.location{width:auto;max-width:35%}.floor,.zone{width:auto;max-width:30%}button{color:#fff;padding:5px 10px;font-size:1.1em}.btn-3d:active:hover:not([disabled]){color:var(--smarterplan-secondary)}.btn-3d[disabled]:hover{color:#fff}.navbar-toggler{margin-right:1em}.select-menu{max-width:inherit}#btn-icon{width:30px;height:30px;background:url(../../../../../assets/icons/goTo3d.svg);border:none;vertical-align:middle}#btn-icon:hover{background:url(../../../../../assets/icons/goTo3d-over.svg)}#btn-icon[disabled]:hover{background:url(../../../../../assets/icons/goTo3d.svg)}.outer_circle{background-color:#ebebeb;border-radius:50%;width:32px;height:32px;padding:1px}\n"] }]
|
|
7707
7734
|
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: SpaceService }, { type: ZoneService }, { type: VisitService }, { type: ViewerService }, { type: NavigatorService }]; }, propDecorators: { navbarSelectMenu: [{
|
|
7708
7735
|
type: ViewChild,
|
|
7709
7736
|
args: ["navbarSelectMenu"]
|
|
@@ -8904,7 +8931,15 @@ class BookingService {
|
|
|
8904
8931
|
const author = await this.userService.userFromUserID(authorMission.userID);
|
|
8905
8932
|
return author;
|
|
8906
8933
|
}
|
|
8907
|
-
}
|
|
8934
|
+
}
|
|
8935
|
+
BookingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, deps: [{ token: EventService }, { token: BaseUserService }, { token: MissionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
8936
|
+
BookingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, providedIn: "root" });
|
|
8937
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: BookingService, decorators: [{
|
|
8938
|
+
type: Injectable,
|
|
8939
|
+
args: [{
|
|
8940
|
+
providedIn: "root",
|
|
8941
|
+
}]
|
|
8942
|
+
}], ctorParameters: function () { return [{ type: EventService }, { type: BaseUserService }, { type: MissionService }]; } });
|
|
8908
8943
|
|
|
8909
8944
|
class MeasurementService {
|
|
8910
8945
|
constructor(navigatorService, filterService, commentService, poiService, userService, navigationService) {
|