ngx-bimplus-components 0.0.158 → 0.0.159-28783-1
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/assets/images/default/Attachment_18_gray.svg +1 -0
- package/assets/images/default/Attachment_18_maincolor.svg +3 -0
- package/assets/images/default/Attachmentlink_18_gray.svg +7 -0
- package/assets/images/default/Attachmentlink_18_maincolor.svg +7 -0
- package/assets/images/default/Comments_18_gray.svg +1 -0
- package/assets/images/default/Comments_18_maincolor.svg +4 -0
- package/assets/images/default/Links_18_gray.svg +1 -0
- package/assets/images/default/Links_18_maincolor.svg +4 -0
- package/assets/images/default/Refresh_18_gray.svg +1 -0
- package/assets/images/default/bimplus_WebIcons_Cross_Disabled.svg +1 -0
- package/assets/images/default/ic_models.svg +3 -0
- package/assets/images/default/ic_models_maincolor.svg +3 -0
- package/assets/images/default/icn_grid_attachments.png +0 -0
- package/assets/images/default/icn_grid_hyperlinks.png +0 -0
- package/assets/images/default/progress-spinner.svg +1 -0
- package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.component.mjs +104 -0
- package/esm2022/lib/components/bimplus-attachments/bimplus-attachments.interface.mjs +38 -0
- package/esm2022/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.mjs +92 -0
- package/esm2022/lib/components/bimplus-attachments/services/bimplus-attachments.service.mjs +32 -0
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +37 -5
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +5 -2
- package/esm2022/lib/components/bimplus-comment/IComment.mjs +2 -0
- package/esm2022/lib/components/bimplus-comment/bimplus-comment.component.mjs +118 -0
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +5 -5
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +115 -7
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.mjs +64 -0
- package/esm2022/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.mjs +161 -0
- package/esm2022/lib/components/bimplus-input-number/bimplus-input-number.component.mjs +85 -0
- package/esm2022/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.mjs +92 -0
- package/esm2022/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.mjs +78 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.mjs +342 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.mjs +69 -0
- package/esm2022/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.mjs +2 -0
- package/esm2022/lib/components/bimplus-object-complex-properties/bimplus-object-complex-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +22 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.component.mjs +42 -4
- package/esm2022/lib/components/bimplus-object-structure/bimplus-object-structure.interface.mjs +4 -2
- package/esm2022/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.mjs +77 -0
- package/esm2022/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.mjs +83 -0
- package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +31 -8
- package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +34 -8
- package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +1 -1
- package/esm2022/lib/components/bimplus-sidenav-drawer-content/bimplus-sidenav-drawer-content.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.component.mjs +35 -0
- package/esm2022/lib/components/bimplus-status-bar/bimplus-status-bar.service.mjs +35 -0
- package/esm2022/lib/components/bimplus-status-bar/statusBar.mjs +2 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.mjs +38 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.mjs +10 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.mjs +89 -0
- package/esm2022/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.mjs +33 -0
- package/esm2022/lib/components/bimplus-textarea/autoResizeTextarea.directive.mjs +83 -0
- package/esm2022/lib/components/bimplus-textarea/bimplus-textarea.component.mjs +128 -0
- package/esm2022/lib/components/links-to-documents/links-to-documents.component.mjs +380 -0
- package/esm2022/lib/components/object-hyperlinks/object-hyperlinks.component.mjs +145 -0
- package/esm2022/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.mjs +36 -0
- package/esm2022/lib/components/object-preview/object-preview.component.mjs +285 -0
- package/esm2022/lib/components/object-preview/object-preview.interface.mjs +2 -0
- package/esm2022/lib/components/object-properties/object-properties.component.mjs +536 -0
- package/esm2022/lib/components/object-properties/object-properties.interface.mjs +2 -0
- package/esm2022/lib/components/object-properties/object-properties.service.mjs +26 -0
- package/esm2022/lib/components/object-properties-group/object-properties-group.component.mjs +124 -0
- package/esm2022/lib/components/object-properties-group/object-property-value/object-property-value.component.mjs +55 -0
- package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +48 -6
- package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
- package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +54 -10
- package/esm2022/lib/pipes/bit-converter.pipe.mjs +46 -0
- package/esm2022/lib/pipes/get-attribute-value-as-string.pipe.mjs +173 -0
- package/esm2022/lib/pipes/get-attribute-value.pipe.mjs +162 -0
- package/esm2022/lib/pipes/round.pipe.mjs +20 -0
- package/esm2022/lib/utils/objectProperties.mjs +9 -0
- package/esm2022/lib/validators/double-enum.validator.mjs +17 -0
- package/esm2022/lib/validators/double.validator.mjs +23 -0
- package/esm2022/lib/validators/guid-enum.validator.mjs +17 -0
- package/esm2022/lib/validators/guid.validator.mjs +11 -0
- package/esm2022/lib/validators/integer.validator.mjs +20 -0
- package/esm2022/lib/validators/string-combobox.validator.mjs +17 -0
- package/esm2022/lib/validators/string-enum.validator.mjs +17 -0
- package/esm2022/public-api.mjs +22 -1
- package/fesm2022/ngx-bimplus-components.mjs +4197 -82
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-attachments/bimplus-attachments.component.d.ts +39 -0
- package/lib/components/bimplus-attachments/bimplus-attachments.interface.d.ts +33 -0
- package/lib/components/bimplus-attachments/components/bimplus-attachment-item/bimplus-attachment-item.component.d.ts +30 -0
- package/lib/components/bimplus-attachments/services/bimplus-attachments.service.d.ts +8 -0
- package/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.d.ts +13 -3
- package/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.d.ts +7 -1
- package/lib/components/bimplus-comment/IComment.d.ts +4 -0
- package/lib/components/bimplus-comment/bimplus-comment.component.d.ts +39 -0
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.d.ts +16 -3
- package/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.d.ts +4 -0
- package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +1 -1
- package/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.d.ts +3 -3
- package/lib/components/bimplus-input-checkbox/bimplus-input-checkbox.component.d.ts +18 -0
- package/lib/components/bimplus-input-combobox/bimplus-input-combobox.component.d.ts +41 -0
- package/lib/components/bimplus-input-number/bimplus-input-number.component.d.ts +26 -0
- package/lib/components/bimplus-input-text-field/bimplus-input-text-field.component.d.ts +28 -0
- package/lib/components/bimplus-link-tooltip-message/bimplus-link-tooltip-message.component.d.ts +22 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.component.d.ts +84 -0
- package/lib/components/bimplus-object-comments-list/bimplus-object-comments-list.service.d.ts +15 -0
- package/lib/components/bimplus-object-comments-list/bimplusObjectCommentsI.d.ts +11 -0
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +5 -1
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +12 -12
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.interface.d.ts +3 -3
- package/lib/components/bimplus-object-structure/bimplus-object-structure.component.d.ts +5 -1
- package/lib/components/bimplus-object-structure/bimplus-object-structure.interface.d.ts +2 -0
- package/lib/components/bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component.d.ts +29 -0
- package/lib/components/bimplus-overlay-dialog-delete/bimplus-overlay-dialog-delete.component.d.ts +24 -0
- package/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.d.ts +8 -1
- package/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.d.ts +11 -1
- package/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.d.ts +1 -1
- package/lib/components/bimplus-status-bar/bimplus-status-bar.component.d.ts +14 -0
- package/lib/components/bimplus-status-bar/bimplus-status-bar.service.d.ts +14 -0
- package/lib/components/bimplus-status-bar/statusBar.d.ts +4 -0
- package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.component.d.ts +16 -0
- package/lib/components/bimplus-tabs-switcher/bimplus-tabs-switcher.interface.d.ts +18 -0
- package/lib/components/bimplus-tabs-switcher/components/bimplus-tab/bimplus-tab.component.d.ts +36 -0
- package/lib/components/bimplus-tabs-switcher/services/bimplus-tabs-switcher.service.d.ts +15 -0
- package/lib/components/bimplus-textarea/autoResizeTextarea.directive.d.ts +24 -0
- package/lib/components/bimplus-textarea/bimplus-textarea.component.d.ts +42 -0
- package/lib/components/links-to-documents/links-to-documents.component.d.ts +68 -0
- package/lib/components/object-hyperlinks/object-hyperlinks.component.d.ts +32 -0
- package/lib/components/object-hyperlinks-item/object-hyperlinks-item.component.d.ts +15 -0
- package/lib/components/object-preview/object-preview.component.d.ts +45 -0
- package/lib/components/object-preview/object-preview.interface.d.ts +5 -0
- package/lib/components/object-properties/object-properties.component.d.ts +78 -0
- package/lib/components/object-properties/object-properties.interface.d.ts +22 -0
- package/lib/components/object-properties/object-properties.service.d.ts +12 -0
- package/lib/components/object-properties-group/object-properties-group.component.d.ts +29 -0
- package/lib/components/object-properties-group/object-property-value/object-property-value.component.d.ts +14 -0
- package/lib/components/object-properties-header/object-properties-header.component.d.ts +13 -4
- package/lib/components/object-properties-header/object-properties-header.interface.d.ts +8 -0
- package/lib/components/resizable-panel/resizable-panel.component.d.ts +12 -3
- package/lib/pipes/bit-converter.pipe.d.ts +17 -0
- package/lib/pipes/get-attribute-value-as-string.pipe.d.ts +35 -0
- package/lib/pipes/get-attribute-value.pipe.d.ts +35 -0
- package/lib/pipes/round.pipe.d.ts +7 -0
- package/lib/utils/objectProperties.d.ts +2 -0
- package/lib/validators/double-enum.validator.d.ts +2 -0
- package/lib/validators/double.validator.d.ts +2 -0
- package/lib/validators/guid-enum.validator.d.ts +2 -0
- package/lib/validators/guid.validator.d.ts +2 -0
- package/lib/validators/integer.validator.d.ts +2 -0
- package/lib/validators/string-combobox.validator.d.ts +2 -0
- package/lib/validators/string-enum.validator.d.ts +2 -0
- package/package.json +12 -4
- package/public-api.d.ts +21 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { BimplusButtonsRowComponent } from "../bimplus-buttons-row/bimplus-buttons-row.component";
|
|
3
|
+
import { BimplusLocalizedWidgetComponent } from "../bimplus-localized-widget/bimplus-localized-widget.component";
|
|
4
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
5
|
+
import { BimplusScrollableContainerComponent } from "../bimplus-scrollable-container/bimplus-scrollable-container.component";
|
|
6
|
+
import { ObjectHyperlinksItemComponent } from "../object-hyperlinks-item/object-hyperlinks-item.component";
|
|
7
|
+
import { BehaviorSubject } from "rxjs";
|
|
8
|
+
import { NgForOf, NgIf } from "@angular/common";
|
|
9
|
+
import { BimplusOverlayDialogConfirmComponent } from "../bimplus-overlay-dialog-confirm/bimplus-overlay-dialog-confirm.component";
|
|
10
|
+
import { ReactiveFormsModule, Validators } from "@angular/forms";
|
|
11
|
+
import { BimplusInputTextFieldComponent } from "../bimplus-input-text-field/bimplus-input-text-field.component";
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@ngx-translate/core";
|
|
14
|
+
import * as i2 from "../bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.service";
|
|
15
|
+
import * as i3 from "@angular/forms";
|
|
16
|
+
export class ObjectHyperlinksComponent extends BimplusLocalizedWidgetComponent {
|
|
17
|
+
constructor(translateService, dialogService, formBuilder) {
|
|
18
|
+
super(translateService);
|
|
19
|
+
this.dialogService = dialogService;
|
|
20
|
+
this.formBuilder = formBuilder;
|
|
21
|
+
this.api = null;
|
|
22
|
+
this._currentObjectId$ = new BehaviorSubject("");
|
|
23
|
+
this._currentPropertiesObjectId$ = new BehaviorSubject("");
|
|
24
|
+
this._rootObjectId = "";
|
|
25
|
+
this.buttonRowItems = [];
|
|
26
|
+
this.canCreateHyperlinks = true;
|
|
27
|
+
this.canDeleteHyperlinks = true;
|
|
28
|
+
this.hyperlinks = [];
|
|
29
|
+
this.hyperlinkForm = this.formBuilder.group({
|
|
30
|
+
name: ['', []],
|
|
31
|
+
url: ['',
|
|
32
|
+
[
|
|
33
|
+
Validators.required,
|
|
34
|
+
Validators.pattern(/^[^<>]*$/), // Do not allow < or >
|
|
35
|
+
Validators.pattern(/^(?!\s*$).+/) // Do not allow all empty string, but allow text after spaces
|
|
36
|
+
]
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
this.hyperlinkForm.statusChanges.subscribe(status => {
|
|
40
|
+
this.buttonRowItems[0].disabled = status !== 'VALID';
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
set rootObjectId(id) {
|
|
44
|
+
this._currentObjectId$.next(id);
|
|
45
|
+
this.loadHyperlinks(id);
|
|
46
|
+
this._rootObjectId = id;
|
|
47
|
+
}
|
|
48
|
+
get rootObjectId() {
|
|
49
|
+
return this._rootObjectId;
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
this.buttonRowItems.push({
|
|
53
|
+
id: "add-hyperlink",
|
|
54
|
+
title: this.translateService.instant('_Add hyperlink'),
|
|
55
|
+
tooltip: this.translateService.instant('_Add hyperlink'),
|
|
56
|
+
disabled: true,
|
|
57
|
+
buttonStyle: 'primary'
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
buttonRowButtonClicked($event) {
|
|
61
|
+
if ($event.id === "add-hyperlink") {
|
|
62
|
+
if (this.hyperlinkForm.valid) {
|
|
63
|
+
this.addHyperlink(this.hyperlinkForm.value['name'], this.hyperlinkForm.value['url'], this._rootObjectId).then(() => {
|
|
64
|
+
this.loadHyperlinks(this._rootObjectId);
|
|
65
|
+
this.hyperlinkForm.reset();
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
loadHyperlinks(objectId) {
|
|
71
|
+
if (!this.api)
|
|
72
|
+
return;
|
|
73
|
+
this.api.objects.getHyperlinks(objectId).then((response) => {
|
|
74
|
+
this.hyperlinks = response;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
addHyperlink(name, url, objectId) {
|
|
78
|
+
if (!this.api)
|
|
79
|
+
return Promise.reject(new Error('API not available'));
|
|
80
|
+
let sanitizedUrl = url.trim();
|
|
81
|
+
if (!RegExp(/^http(s?):\/\//).exec(sanitizedUrl)) {
|
|
82
|
+
sanitizedUrl = 'https://' + sanitizedUrl;
|
|
83
|
+
}
|
|
84
|
+
let sanitizedName = name?.trim() ?? '';
|
|
85
|
+
if (sanitizedName === '') {
|
|
86
|
+
sanitizedName = sanitizedUrl;
|
|
87
|
+
}
|
|
88
|
+
sanitizedName = sanitizedName?.replace(/^http(s?):\/\//, '');
|
|
89
|
+
const data = JSON.stringify({
|
|
90
|
+
name: sanitizedName,
|
|
91
|
+
url: sanitizedUrl,
|
|
92
|
+
objectId: objectId
|
|
93
|
+
});
|
|
94
|
+
return this.api.objects.postHyperlink(objectId, data);
|
|
95
|
+
}
|
|
96
|
+
onHyperlinkItemDeleteButtonClicked(hyperlink) {
|
|
97
|
+
this.dialogService.open(BimplusOverlayDialogConfirmComponent, {
|
|
98
|
+
options: {
|
|
99
|
+
position: 'middle',
|
|
100
|
+
positionOptions: {},
|
|
101
|
+
overlayClickEnabled: false,
|
|
102
|
+
overlayVisibilityEnabled: true,
|
|
103
|
+
draggable: true
|
|
104
|
+
}, data: {
|
|
105
|
+
title: this.translateService.instant('_Hyperlink delete confirmation title'),
|
|
106
|
+
message: this.translateService.instant('_Hyperlink delete confirmation message'),
|
|
107
|
+
acceptButtonLocalizedString: "_Delete",
|
|
108
|
+
acceptCallback: () => {
|
|
109
|
+
this.deleteHyperlink(hyperlink.id);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
deleteHyperlink(id) {
|
|
115
|
+
if (!this.api)
|
|
116
|
+
return;
|
|
117
|
+
this.api.hyperlinks.delete(id).then(() => {
|
|
118
|
+
this.loadHyperlinks(this._rootObjectId);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectHyperlinksComponent, deps: [{ token: i1.TranslateService }, { token: i2.DialogService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ObjectHyperlinksComponent, isStandalone: true, selector: "lib-object-hyperlinks", inputs: { api: "api", rootObjectId: "rootObjectId", canCreateHyperlinks: "canCreateHyperlinks", canDeleteHyperlinks: "canDeleteHyperlinks" }, usesInheritance: true, ngImport: i0, template: "@if (canCreateHyperlinks) {\r\n <form [formGroup]=\"hyperlinkForm\" class=\"input-form\">\r\n <div>\r\n <lib-bimplus-input-text-field formControlName=\"name\" placeholder=\"{{ '_Name' | translate }}\"/>\r\n </div>\r\n <div>\r\n <lib-bimplus-input-text-field formControlName=\"url\" placeholder=\"{{ '_URL' | translate }}\"/>\r\n </div>\r\n\r\n <lib-bimplus-buttons-row [items]=\"buttonRowItems\" (buttonClicked)=\"buttonRowButtonClicked($event)\"/>\r\n </form>\r\n}\r\n\r\n<div class=\"list-anchor\">\r\n <div class=\"list\">\r\n <lib-bimplus-scrollable-container>\r\n @if (hyperlinks.length > 0) {\r\n <div style=\"padding-left: 8px\" *ngFor=\"let hyperlink of hyperlinks\">\r\n <lib-object-hyperlinks-item [hyperlink]=\"hyperlink\" [deleteButtonEnabled]=\"canDeleteHyperlinks\"\r\n (deleteButtonClicked)=\"onHyperlinkItemDeleteButtonClicked(hyperlink)\"/>\r\n </div>\r\n } @else {\r\n <div class=\"no-links\">{{ \"_No hyperlinks found\" | translate }}</div>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}.list-anchor{position:relative;flex:1}.list{position:absolute;top:0;bottom:0;width:100%}.no-links{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}.input-form{padding-left:.8rem;padding-right:.8rem;display:flex;flex-direction:column;gap:.2rem}.input-form lib-bimplus-input-text-field{margin-top:.2rem}\n"], dependencies: [{ kind: "component", type: BimplusButtonsRowComponent, selector: "lib-bimplus-buttons-row", inputs: ["items", "canUpdateObject"], outputs: ["fileChanged", "buttonClicked"] }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }, { kind: "component", type: ObjectHyperlinksItemComponent, selector: "lib-object-hyperlinks-item", inputs: ["hyperlink", "deleteButtonEnabled"], outputs: ["deleteButtonClicked"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: BimplusInputTextFieldComponent, selector: "lib-bimplus-input-text-field", inputs: ["placeholder", "showClearButton", "validValue"], outputs: ["enterKeyPressed"] }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectHyperlinksComponent, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{ selector: 'lib-object-hyperlinks', standalone: true, imports: [
|
|
127
|
+
BimplusButtonsRowComponent,
|
|
128
|
+
BimplusScrollableContainerComponent,
|
|
129
|
+
ObjectHyperlinksItemComponent,
|
|
130
|
+
NgForOf,
|
|
131
|
+
TranslateModule,
|
|
132
|
+
ReactiveFormsModule,
|
|
133
|
+
NgIf,
|
|
134
|
+
BimplusInputTextFieldComponent
|
|
135
|
+
], encapsulation: ViewEncapsulation.ShadowDom, template: "@if (canCreateHyperlinks) {\r\n <form [formGroup]=\"hyperlinkForm\" class=\"input-form\">\r\n <div>\r\n <lib-bimplus-input-text-field formControlName=\"name\" placeholder=\"{{ '_Name' | translate }}\"/>\r\n </div>\r\n <div>\r\n <lib-bimplus-input-text-field formControlName=\"url\" placeholder=\"{{ '_URL' | translate }}\"/>\r\n </div>\r\n\r\n <lib-bimplus-buttons-row [items]=\"buttonRowItems\" (buttonClicked)=\"buttonRowButtonClicked($event)\"/>\r\n </form>\r\n}\r\n\r\n<div class=\"list-anchor\">\r\n <div class=\"list\">\r\n <lib-bimplus-scrollable-container>\r\n @if (hyperlinks.length > 0) {\r\n <div style=\"padding-left: 8px\" *ngFor=\"let hyperlink of hyperlinks\">\r\n <lib-object-hyperlinks-item [hyperlink]=\"hyperlink\" [deleteButtonEnabled]=\"canDeleteHyperlinks\"\r\n (deleteButtonClicked)=\"onHyperlinkItemDeleteButtonClicked(hyperlink)\"/>\r\n </div>\r\n } @else {\r\n <div class=\"no-links\">{{ \"_No hyperlinks found\" | translate }}</div>\r\n }\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%;display:flex;flex-direction:column;flex:1}.list-anchor{position:relative;flex:1}.list{position:absolute;top:0;bottom:0;width:100%}.no-links{padding:2.5rem .5rem;color:var(--details-controls-details-not-found-text-color);text-align:center}.input-form{padding-left:.8rem;padding-right:.8rem;display:flex;flex-direction:column;gap:.2rem}.input-form lib-bimplus-input-text-field{margin-top:.2rem}\n"] }]
|
|
136
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.DialogService }, { type: i3.FormBuilder }], propDecorators: { api: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], rootObjectId: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], canCreateHyperlinks: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], canDeleteHyperlinks: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}] } });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWh5cGVybGlua3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWh5cGVybGlua3Mvb2JqZWN0LWh5cGVybGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWh5cGVybGlua3Mvb2JqZWN0LWh5cGVybGlua3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFFaEcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ3BDLE1BQU0sd0VBQXdFLENBQUM7QUFDaEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFFekcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTlDLE9BQU8sRUFDTCxvQ0FBb0MsRUFDckMsTUFBTSw0RUFBNEUsQ0FBQztBQUNwRixPQUFPLEVBQXlCLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDOzs7OztBQW1COUcsTUFBTSxPQUFPLHlCQUEw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QUE2Qjt3QkFDN0IsT0FBTzt3QkFDUCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsSUFBSTt3QkFDSiw4QkFBOEI7cUJBQy9CLGlCQUdjLGlCQUFpQixDQUFDLFNBQVM7MklBd0JqQyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0YsWUFBWTtzQkFEZixLQUFLO2dCQWtCRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtCaW1wbHVzQnV0dG9uc1Jvd0NvbXBvbmVudH0gZnJvbSBcIi4uL2JpbXBsdXMtYnV0dG9ucy1yb3cvYmltcGx1cy1idXR0b25zLXJvdy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudCwgQmltcGx1c0J1dHRvblJvd0l0ZW19IGZyb20gXCIuLi9iaW1wbHVzLWJ1dHRvbnMtcm93L2JpbXBsdXMtYnV0dG9ucy1yb3cuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudH0gZnJvbSBcIi4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIEJpbXBsdXNTY3JvbGxhYmxlQ29udGFpbmVyQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIvYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtPYmplY3RIeXBlcmxpbmtzSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL29iamVjdC1oeXBlcmxpbmtzLWl0ZW0vb2JqZWN0LWh5cGVybGlua3MtaXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IFdlYlNkayBmcm9tIFwiYmltcGx1cy13ZWJzZGtcIjtcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7TmdGb3JPZiwgTmdJZn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cvYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICBCaW1wbHVzT3ZlcmxheURpYWxvZ0NvbmZpcm1Db21wb25lbnRcclxufSBmcm9tIFwiLi4vYmltcGx1cy1vdmVybGF5LWRpYWxvZy1jb25maXJtL2JpbXBsdXMtb3ZlcmxheS1kaWFsb2ctY29uZmlybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtCaW1wbHVzSW5wdXRUZXh0RmllbGRDb21wb25lbnR9IGZyb20gXCIuLi9iaW1wbHVzLWlucHV0LXRleHQtZmllbGQvYmltcGx1cy1pbnB1dC10ZXh0LWZpZWxkLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItb2JqZWN0LWh5cGVybGlua3MnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQmltcGx1c0J1dHRvbnNSb3dDb21wb25lbnQsXHJcbiAgICBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIE9iamVjdEh5cGVybGlua3NJdGVtQ29tcG9uZW50LFxyXG4gICAgTmdGb3JPZixcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBOZ0lmLFxyXG4gICAgQmltcGx1c0lucHV0VGV4dEZpZWxkQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWh5cGVybGlua3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9vYmplY3QtaHlwZXJsaW5rcy5jb21wb25lbnQubGVzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RIeXBlcmxpbmtzQ29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaHlwZXJsaW5rRm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICBzdXBlcih0cmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLmh5cGVybGlua0Zvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBbXV0sXHJcbiAgICAgIHVybDogWycnLFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL15bXjw+XSokLyksIC8vIERvIG5vdCBhbGxvdyA8IG9yID5cclxuICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXig/IVxccyokKS4rLykgLy8gRG8gbm90IGFsbG93IGFsbCBlbXB0eSBzdHJpbmcsIGJ1dCBhbGxvdyB0ZXh0IGFmdGVyIHNwYWNlc1xyXG4gICAgICAgIF1cclxuICAgICAgXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5oeXBlcmxpbmtGb3JtLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9uUm93SXRlbXNbMF0uZGlzYWJsZWQgPSBzdGF0dXMgIT09ICdWQUxJRCc7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGFwaTogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCByb290T2JqZWN0SWQoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5uZXh0KGlkKTtcclxuICAgIHRoaXMubG9hZEh5cGVybGlua3MoaWQpO1xyXG5cclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnRPYmplY3RJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXCJcIik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXCJcIik7XHJcbiAgcHJpdmF0ZSBfcm9vdE9iamVjdElkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBidXR0b25Sb3dJdGVtczogQXJyYXk8QmltcGx1c0J1dHRvblJvd0l0ZW0+ID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGNhbkNyZWF0ZUh5cGVybGlua3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZUh5cGVybGlua3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBoeXBlcmxpbmtzOiBBcnJheTxXZWJTZGsuSHlwZXJsaW5rPiA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYnV0dG9uUm93SXRlbXMucHVzaChcclxuICAgICAge1xyXG4gICAgICAgIGlkOiBcImFkZC1oeXBlcmxpbmtcIlxyXG4gICAgICAgICwgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfQWRkIGh5cGVybGluaycpXHJcbiAgICAgICAgLCB0b29sdGlwOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0FkZCBoeXBlcmxpbmsnKVxyXG4gICAgICAgICwgZGlzYWJsZWQ6IHRydWVcclxuICAgICAgICAsIGJ1dHRvblN0eWxlOiAncHJpbWFyeSdcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJ1dHRvblJvd0J1dHRvbkNsaWNrZWQoJGV2ZW50OiBCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudCkge1xyXG4gICAgaWYgKCRldmVudC5pZCA9PT0gXCJhZGQtaHlwZXJsaW5rXCIpIHtcclxuICAgICAgaWYgKHRoaXMuaHlwZXJsaW5rRm9ybS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuYWRkSHlwZXJsaW5rKHRoaXMuaHlwZXJsaW5rRm9ybS52YWx1ZVsnbmFtZSddLCB0aGlzLmh5cGVybGlua0Zvcm0udmFsdWVbJ3VybCddLCB0aGlzLl9yb290T2JqZWN0SWQpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkSHlwZXJsaW5rcyh0aGlzLl9yb290T2JqZWN0SWQpO1xyXG4gICAgICAgICAgdGhpcy5oeXBlcmxpbmtGb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZEh5cGVybGlua3Mob2JqZWN0SWQ6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmFwaSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuYXBpLm9iamVjdHMuZ2V0SHlwZXJsaW5rcyhvYmplY3RJZCkudGhlbigocmVzcG9uc2U6IFdlYlNkay5IeXBlcmxpbmtzUmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5oeXBlcmxpbmtzID0gcmVzcG9uc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkSHlwZXJsaW5rKG5hbWU6IHN0cmluZywgdXJsOiBzdHJpbmcsIG9iamVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdlYlNkay5IeXBlcmxpbms+IHtcclxuICAgIGlmICghdGhpcy5hcGkpXHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ0FQSSBub3QgYXZhaWxhYmxlJykpO1xyXG5cclxuICAgIGxldCBzYW5pdGl6ZWRVcmw6IHN0cmluZyA9IHVybC50cmltKCk7XHJcblxyXG4gICAgaWYgKCFSZWdFeHAoL15odHRwKHM/KTpcXC9cXC8vKS5leGVjKHNhbml0aXplZFVybCkpIHtcclxuICAgICAgc2FuaXRpemVkVXJsID0gJ2h0dHBzOi8vJyArIHNhbml0aXplZFVybDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2FuaXRpemVkTmFtZSA9IG5hbWU/LnRyaW0oKSA/PyAnJztcclxuXHJcbiAgICBpZiAoc2FuaXRpemVkTmFtZSA9PT0gJycpIHtcclxuICAgICAgc2FuaXRpemVkTmFtZSA9IHNhbml0aXplZFVybDtcclxuICAgIH1cclxuXHJcbiAgICBzYW5pdGl6ZWROYW1lID0gc2FuaXRpemVkTmFtZT8ucmVwbGFjZSgvXmh0dHAocz8pOlxcL1xcLy8sICcnKTtcclxuXHJcbiAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICBuYW1lOiBzYW5pdGl6ZWROYW1lLFxyXG4gICAgICB1cmw6IHNhbml0aXplZFVybCxcclxuICAgICAgb2JqZWN0SWQ6IG9iamVjdElkXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5hcGkub2JqZWN0cy5wb3N0SHlwZXJsaW5rKG9iamVjdElkLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIG9uSHlwZXJsaW5rSXRlbURlbGV0ZUJ1dHRvbkNsaWNrZWQoaHlwZXJsaW5rOiBXZWJTZGsuSHlwZXJsaW5rKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihCaW1wbHVzT3ZlcmxheURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHBvc2l0aW9uOiAnbWlkZGxlJyxcclxuICAgICAgICBwb3NpdGlvbk9wdGlvbnM6IHt9LFxyXG4gICAgICAgIG92ZXJsYXlDbGlja0VuYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIG92ZXJsYXlWaXNpYmlsaXR5RW5hYmxlZDogdHJ1ZSxcclxuICAgICAgICBkcmFnZ2FibGU6IHRydWVcclxuICAgICAgfSwgZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0h5cGVybGluayBkZWxldGUgY29uZmlybWF0aW9uIHRpdGxlJyksXHJcbiAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19IeXBlcmxpbmsgZGVsZXRlIGNvbmZpcm1hdGlvbiBtZXNzYWdlJyksXHJcbiAgICAgICAgYWNjZXB0QnV0dG9uTG9jYWxpemVkU3RyaW5nOiBcIl9EZWxldGVcIixcclxuICAgICAgICBhY2NlcHRDYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kZWxldGVIeXBlcmxpbmsoaHlwZXJsaW5rLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZWxldGVIeXBlcmxpbmsoaWQ6IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmFwaSlcclxuICAgICAgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuYXBpLmh5cGVybGlua3MuZGVsZXRlKGlkKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkSHlwZXJsaW5rcyh0aGlzLl9yb290T2JqZWN0SWQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoY2FuQ3JlYXRlSHlwZXJsaW5rcykge1xyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiaHlwZXJsaW5rRm9ybVwiIGNsYXNzPVwiaW5wdXQtZm9ybVwiPlxyXG4gICAgPGRpdj5cclxuICAgICAgPGxpYi1iaW1wbHVzLWlucHV0LXRleHQtZmllbGQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwie3sgJ19OYW1lJyB8IHRyYW5zbGF0ZSB9fVwiLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdj5cclxuICAgICAgPGxpYi1iaW1wbHVzLWlucHV0LXRleHQtZmllbGQgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCIgcGxhY2Vob2xkZXI9XCJ7eyAnX1VSTCcgfCB0cmFuc2xhdGUgfX1cIi8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bGliLWJpbXBsdXMtYnV0dG9ucy1yb3cgW2l0ZW1zXT1cImJ1dHRvblJvd0l0ZW1zXCIgKGJ1dHRvbkNsaWNrZWQpPVwiYnV0dG9uUm93QnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCIvPlxyXG4gIDwvZm9ybT5cclxufVxyXG5cclxuPGRpdiBjbGFzcz1cImxpc3QtYW5jaG9yXCI+XHJcbiAgPGRpdiBjbGFzcz1cImxpc3RcIj5cclxuICAgIDxsaWItYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lcj5cclxuICAgICAgQGlmIChoeXBlcmxpbmtzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHhcIiAqbmdGb3I9XCJsZXQgaHlwZXJsaW5rIG9mIGh5cGVybGlua3NcIj5cclxuICAgICAgICAgIDxsaWItb2JqZWN0LWh5cGVybGlua3MtaXRlbSBbaHlwZXJsaW5rXT1cImh5cGVybGlua1wiIFtkZWxldGVCdXR0b25FbmFibGVkXT1cImNhbkRlbGV0ZUh5cGVybGlua3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVCdXR0b25DbGlja2VkKT1cIm9uSHlwZXJsaW5rSXRlbURlbGV0ZUJ1dHRvbkNsaWNrZWQoaHlwZXJsaW5rKVwiLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vLWxpbmtzXCI+e3sgXCJfTm8gaHlwZXJsaW5rcyBmb3VuZFwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BimplusLocalizedWidgetComponent } from "../bimplus-localized-widget/bimplus-localized-widget.component";
|
|
3
|
+
import { TranslateModule } from "@ngx-translate/core";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ngx-translate/core";
|
|
6
|
+
export class ObjectHyperlinksItemComponent extends BimplusLocalizedWidgetComponent {
|
|
7
|
+
constructor(translateService) {
|
|
8
|
+
super(translateService);
|
|
9
|
+
this.deleteButtonEnabled = true;
|
|
10
|
+
this.deleteButtonClicked = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
onDeleteButtonClick() {
|
|
13
|
+
this.deleteButtonClicked.emit();
|
|
14
|
+
}
|
|
15
|
+
onDeleteButtonKeyDown($event) {
|
|
16
|
+
if ($event.key === 'Enter' || $event.key === ' ') {
|
|
17
|
+
$event.preventDefault();
|
|
18
|
+
this.onDeleteButtonClick();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectHyperlinksItemComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ObjectHyperlinksItemComponent, isStandalone: true, selector: "lib-object-hyperlinks-item", inputs: { hyperlink: "hyperlink", deleteButtonEnabled: "deleteButtonEnabled" }, outputs: { deleteButtonClicked: "deleteButtonClicked" }, usesInheritance: true, ngImport: i0, template: "<div class=\"hyperlink-item\">\r\n @if (deleteButtonEnabled) {\r\n <div class=\"bim-list-button delete\" title=\"{{ '_Hyperlink delete confirmation title' | translate }}\" (click)=\"onDeleteButtonClick()\"\r\n (keydown)=\"onDeleteButtonKeyDown($event)\">\r\n ✕︎\r\n </div>\r\n }\r\n\r\n <a href=\"{{ hyperlink?.url }}\" class='bim-hyperlink-url' target=\"_blank\" title=\"{{ hyperlink?.url }}\">\r\n <div class=\"bim-hyperlink-name\">\r\n {{ hyperlink?.name }}\r\n </div>\r\n </a>\r\n</div>\r\n", styles: [".hyperlink-item{border-bottom:solid .1rem var(--hyperlink-list-item-border-color);cursor:pointer;-webkit-user-select:none;user-select:none}.bim-list-button.delete{width:3.2rem;height:3.2rem;color:var(--details-controls-list-delete-button-text-color);float:right;display:flex;justify-content:center;align-items:center}.bim-list-button.delete:hover{color:var(--ui-text-1-color)}.bim-details-list-item{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center}.bim-hyperlink-name{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center;padding-left:3.5rem!important;background-image:url(data:image/png;base64,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);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-hyperlink-url{color:var(--brand-dark-color)!important;text-decoration:none!important;line-height:2em}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectHyperlinksItemComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'lib-object-hyperlinks-item', standalone: true, imports: [
|
|
27
|
+
TranslateModule
|
|
28
|
+
], template: "<div class=\"hyperlink-item\">\r\n @if (deleteButtonEnabled) {\r\n <div class=\"bim-list-button delete\" title=\"{{ '_Hyperlink delete confirmation title' | translate }}\" (click)=\"onDeleteButtonClick()\"\r\n (keydown)=\"onDeleteButtonKeyDown($event)\">\r\n ✕︎\r\n </div>\r\n }\r\n\r\n <a href=\"{{ hyperlink?.url }}\" class='bim-hyperlink-url' target=\"_blank\" title=\"{{ hyperlink?.url }}\">\r\n <div class=\"bim-hyperlink-name\">\r\n {{ hyperlink?.name }}\r\n </div>\r\n </a>\r\n</div>\r\n", styles: [".hyperlink-item{border-bottom:solid .1rem var(--hyperlink-list-item-border-color);cursor:pointer;-webkit-user-select:none;user-select:none}.bim-list-button.delete{width:3.2rem;height:3.2rem;color:var(--details-controls-list-delete-button-text-color);float:right;display:flex;justify-content:center;align-items:center}.bim-list-button.delete:hover{color:var(--ui-text-1-color)}.bim-details-list-item{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center}.bim-hyperlink-name{line-height:3.2rem;padding-left:2.6rem!important;background-repeat:no-repeat;background-position:.8rem center;padding-left:3.5rem!important;background-image:url(data:image/png;base64,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);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bim-hyperlink-url{color:var(--brand-dark-color)!important;text-decoration:none!important;line-height:2em}\n"] }]
|
|
29
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { hyperlink: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], deleteButtonEnabled: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], deleteButtonClicked: [{
|
|
34
|
+
type: Output
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWh5cGVybGlua3MtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9vYmplY3QtaHlwZXJsaW5rcy1pdGVtL29iamVjdC1oeXBlcmxpbmtzLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWh5cGVybGlua3MtaXRlbS9vYmplY3QtaHlwZXJsaW5rcy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLGVBQWUsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBV3RFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSwrQkFBK0I7SUFDaEYsWUFBWSxnQkFBa0M7UUFDNUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7UUFJaEIsd0JBQW1CLEdBQVksSUFBSSxDQUFDO1FBRW5DLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFMekQsQ0FBQztJQU9ELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQXFCO1FBQ3pDLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqRCxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7K0dBcEJVLDZCQUE2QjttR0FBN0IsNkJBQTZCLHNQQ2QxQyxnaUJBY0EsNjhKRExJLGVBQWU7OzRGQUtOLDZCQUE2QjtrQkFUekMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQO3dCQUNQLGVBQWU7cUJBQ2hCO3FGQVNRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgV2ViU2RrIGZyb20gXCJiaW1wbHVzLXdlYnNka1wiO1xyXG5pbXBvcnQge0JpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnR9IGZyb20gXCIuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW9iamVjdC1oeXBlcmxpbmtzLWl0ZW0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWh5cGVybGlua3MtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1oeXBlcmxpbmtzLWl0ZW0uY29tcG9uZW50Lmxlc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPYmplY3RIeXBlcmxpbmtzSXRlbUNvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBoeXBlcmxpbms6IFdlYlNkay5IeXBlcmxpbmsgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGVsZXRlQnV0dG9uRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBkZWxldGVCdXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBvbkRlbGV0ZUJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWxldGVCdXR0b25DbGlja2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlQnV0dG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICgkZXZlbnQua2V5ID09PSAnRW50ZXInIHx8ICRldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgIHRoaXMub25EZWxldGVCdXR0b25DbGljaygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaHlwZXJsaW5rLWl0ZW1cIj5cclxuICBAaWYgKGRlbGV0ZUJ1dHRvbkVuYWJsZWQpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJiaW0tbGlzdC1idXR0b24gZGVsZXRlXCIgdGl0bGU9XCJ7eyAnX0h5cGVybGluayBkZWxldGUgY29uZmlybWF0aW9uIHRpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJvbkRlbGV0ZUJ1dHRvbkNsaWNrKClcIlxyXG4gICAgICAgICAoa2V5ZG93bik9XCJvbkRlbGV0ZUJ1dHRvbktleURvd24oJGV2ZW50KVwiPlxyXG4gICAgICAmIzEwMDA1OyYjeEZFMEU7XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIDxhIGhyZWY9XCJ7eyBoeXBlcmxpbms/LnVybCB9fVwiIGNsYXNzPSdiaW0taHlwZXJsaW5rLXVybCcgdGFyZ2V0PVwiX2JsYW5rXCIgdGl0bGU9XCJ7eyBoeXBlcmxpbms/LnVybCB9fVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJpbS1oeXBlcmxpbmstbmFtZVwiPlxyXG4gICAgICB7eyBoeXBlcmxpbms/Lm5hbWUgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvYT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { Component, effect, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as Renderer from 'bimplus-renderer';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { TranslatePipe } from "@ngx-translate/core";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ObjectPreviewComponent {
|
|
7
|
+
set objectId(id) {
|
|
8
|
+
this._objectId = id;
|
|
9
|
+
this.onObjectIdChanged();
|
|
10
|
+
}
|
|
11
|
+
get objectId() {
|
|
12
|
+
return this._objectId;
|
|
13
|
+
}
|
|
14
|
+
set visibleNode(value) {
|
|
15
|
+
if (this.viewport) {
|
|
16
|
+
this.viewport.toggleObjectNode({ id: value.id, visible: value.visible });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
set opaqueNode(value) {
|
|
20
|
+
if (this.viewport) {
|
|
21
|
+
this.viewport.toggleObjectNodeOpacity({ id: value.id, opacity: value.opaque });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
constructor(el) {
|
|
25
|
+
this.el = el;
|
|
26
|
+
this.resizeObserver = null;
|
|
27
|
+
this.viewport = null;
|
|
28
|
+
this.isLoading = true;
|
|
29
|
+
this.previousWidth = 0;
|
|
30
|
+
this.previousHeight = 0;
|
|
31
|
+
this.api = null;
|
|
32
|
+
this._objectId = undefined;
|
|
33
|
+
this.revision = undefined;
|
|
34
|
+
this.contentLoader = null;
|
|
35
|
+
this.isRendererInitialized = false;
|
|
36
|
+
this.metricUnits = {
|
|
37
|
+
weight: {
|
|
38
|
+
multiplicator: 0.001,
|
|
39
|
+
precision: 2,
|
|
40
|
+
unit: 'kg',
|
|
41
|
+
},
|
|
42
|
+
length: {
|
|
43
|
+
multiplicator: 0.001,
|
|
44
|
+
precision: 2,
|
|
45
|
+
unit: 'm',
|
|
46
|
+
},
|
|
47
|
+
width: {
|
|
48
|
+
multiplicator: 0.001,
|
|
49
|
+
precision: 2,
|
|
50
|
+
unit: 'm',
|
|
51
|
+
},
|
|
52
|
+
height: {
|
|
53
|
+
multiplicator: 0.001,
|
|
54
|
+
precision: 2,
|
|
55
|
+
unit: 'm',
|
|
56
|
+
},
|
|
57
|
+
area: {
|
|
58
|
+
multiplicator: 0.000001,
|
|
59
|
+
precision: 2,
|
|
60
|
+
unit: 'm²',
|
|
61
|
+
},
|
|
62
|
+
volume: {
|
|
63
|
+
multiplicator: 1e-9,
|
|
64
|
+
precision: 2,
|
|
65
|
+
unit: 'm³',
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
this.imperialUnits = {
|
|
69
|
+
length: {
|
|
70
|
+
multiplicator: 0.00328083989,
|
|
71
|
+
precision: 2,
|
|
72
|
+
unit: 'feet',
|
|
73
|
+
},
|
|
74
|
+
width: {
|
|
75
|
+
multiplicator: 0.00328083989,
|
|
76
|
+
precision: 2,
|
|
77
|
+
unit: 'feet',
|
|
78
|
+
},
|
|
79
|
+
height: {
|
|
80
|
+
multiplicator: 0.00328083989,
|
|
81
|
+
precision: 2,
|
|
82
|
+
unit: 'feet',
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
this.viewportSettings = {
|
|
86
|
+
defaultOpacity: 0.5,
|
|
87
|
+
disciplineOpacity: 0.1,
|
|
88
|
+
pinSizeScaleFactor: 2,
|
|
89
|
+
maxWebGLBufferSize: 350e12,
|
|
90
|
+
mixedModelMode: true,
|
|
91
|
+
useFrameSelection: false,
|
|
92
|
+
pinFlyToDistance: 20000,
|
|
93
|
+
nearClippingPlane: 0.01,
|
|
94
|
+
slideThmbSize: [180, 112],
|
|
95
|
+
units: {
|
|
96
|
+
mm: this.metricUnits,
|
|
97
|
+
inch: {},
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
this.units = {
|
|
101
|
+
Metric: this.metricUnits,
|
|
102
|
+
Imperial: this.imperialUnits,
|
|
103
|
+
};
|
|
104
|
+
effect(() => {
|
|
105
|
+
if (this.visibleNode) {
|
|
106
|
+
this.processVisibilityNode(this.visibleNode);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
// React to changes in the `opaqueNode` signal
|
|
110
|
+
effect(() => {
|
|
111
|
+
if (this.opaqueNode) {
|
|
112
|
+
this.processOpacityNode(this.opaqueNode);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
// Method to process the node
|
|
117
|
+
processVisibilityNode(node) {
|
|
118
|
+
console.log('Processing visbility of node in lib-object-preview:', node);
|
|
119
|
+
}
|
|
120
|
+
processOpacityNode(node) {
|
|
121
|
+
console.log('Processing opacity of node in lib-object-preview:', node);
|
|
122
|
+
}
|
|
123
|
+
ngAfterViewInit() {
|
|
124
|
+
const container = this.el.nativeElement;
|
|
125
|
+
// Initialize ResizeObserver
|
|
126
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
127
|
+
for (const entry of entries) {
|
|
128
|
+
const width = entry?.contentRect?.width;
|
|
129
|
+
if (width != this.previousWidth) {
|
|
130
|
+
this.previousWidth = width;
|
|
131
|
+
this.recalculatePreviewSize();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
// Start observing the component's main container
|
|
136
|
+
this.resizeObserver.observe(container);
|
|
137
|
+
this.initRenderer();
|
|
138
|
+
this.contentLoader = new Renderer.ContentLoader(this.api, this.viewport);
|
|
139
|
+
this.isRendererInitialized = true;
|
|
140
|
+
this.loadObject();
|
|
141
|
+
}
|
|
142
|
+
ngOnDestroy() {
|
|
143
|
+
this.resizeObserver?.disconnect();
|
|
144
|
+
this.viewport?.dispose();
|
|
145
|
+
}
|
|
146
|
+
recalculatePreviewSize() {
|
|
147
|
+
clearTimeout(this.resizeTimeout);
|
|
148
|
+
this.resizeTimeout = setTimeout(() => {
|
|
149
|
+
const width = this.rendererViewportElement?.nativeElement.offsetWidth;
|
|
150
|
+
const height = this.rendererViewportElement?.nativeElement.offsetHeight;
|
|
151
|
+
if (width && height) {
|
|
152
|
+
this.viewport?.setViewportSize(width, height);
|
|
153
|
+
this.viewport?.draw();
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
console.error("Viewport size is zero");
|
|
157
|
+
}
|
|
158
|
+
}, 1); // Delay execution to avoid rapid resizing and flickering
|
|
159
|
+
}
|
|
160
|
+
setAmbientOcclusionOptions() {
|
|
161
|
+
if (!this.viewport) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const viewportOcclusionData = {
|
|
165
|
+
usage: false,
|
|
166
|
+
usageForInteraction: false,
|
|
167
|
+
useShadows: false,
|
|
168
|
+
useShadowsForInteraction: false,
|
|
169
|
+
lightRotation: Math.PI * 35.00 / 180.0,
|
|
170
|
+
lightElevation: Math.PI * 50.00 / 180.0,
|
|
171
|
+
lightColor: new THREE.Color(1.0, 1.0, 1.0),
|
|
172
|
+
ambientLightColor: new THREE.Color(0.6, 0.6, 0.6),
|
|
173
|
+
};
|
|
174
|
+
this.viewport.setAmbientOcclusionOptions(viewportOcclusionData);
|
|
175
|
+
}
|
|
176
|
+
setBackgroundOptions() {
|
|
177
|
+
if (!this.viewport) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const daySkyBackgroundSetting = {
|
|
181
|
+
name: "day sky",
|
|
182
|
+
ambientLightColor: 0x868686,
|
|
183
|
+
backgroundType: Renderer.Background.BackgroundType_LinearGradient,
|
|
184
|
+
backgroundParams: {
|
|
185
|
+
alpha: 1.0,
|
|
186
|
+
colorStops: [
|
|
187
|
+
{
|
|
188
|
+
offset: 0.0,
|
|
189
|
+
color: "#87CDE9"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
offset: 0.5104,
|
|
193
|
+
color: "#DDEDFE"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
offset: 0.9635,
|
|
197
|
+
color: "#D3D3D4"
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
this.viewport.setBackground(daySkyBackgroundSetting.backgroundType, daySkyBackgroundSetting.backgroundParams);
|
|
203
|
+
}
|
|
204
|
+
setHoverOption(useHoverEffect = true) {
|
|
205
|
+
if (!this.viewport) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
this.viewport.setUseHoverEffect(useHoverEffect);
|
|
209
|
+
}
|
|
210
|
+
initRenderer() {
|
|
211
|
+
this.viewport = new Renderer.Viewport3D({
|
|
212
|
+
settings: this.viewportSettings,
|
|
213
|
+
units: this.units.Metric,
|
|
214
|
+
domElementId: "",
|
|
215
|
+
GPUPick: true,
|
|
216
|
+
api: this.api,
|
|
217
|
+
name: "objectPreviewRendererViewport",
|
|
218
|
+
lookupTextureSize: 32,
|
|
219
|
+
ssaoSupported: false, // Disable SSAO support for object details window
|
|
220
|
+
shadowsSupported: false,
|
|
221
|
+
panningScaleFactor: 4.0, //In case of preview window use bigger panning scale factor
|
|
222
|
+
commandPolicies: {
|
|
223
|
+
CommandSelect: {
|
|
224
|
+
noBubble: true, // Don't do a upwards activation
|
|
225
|
+
noTraverse: true // Don't do a downwards activation
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
this.setAmbientOcclusionOptions();
|
|
230
|
+
this.setBackgroundOptions();
|
|
231
|
+
this.setHoverOption();
|
|
232
|
+
this.viewport.draw();
|
|
233
|
+
if (this.viewport?.domElement) {
|
|
234
|
+
const nativeElement = this.el.nativeElement?.shadowRoot || this.el.nativeElement;
|
|
235
|
+
nativeElement?.getElementsByClassName?.("rendered-preview")[0]?.appendChild?.(this.viewport.domElement);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
console.error("no dom element present for renderer!");
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
onObjectIdChanged() {
|
|
242
|
+
this.loadObject();
|
|
243
|
+
}
|
|
244
|
+
loadObject() {
|
|
245
|
+
if (!this.isRendererInitialized) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (!this.contentLoader) {
|
|
249
|
+
console.error("content loader is not there!");
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
console.log('loading object...');
|
|
253
|
+
this.isLoading = true;
|
|
254
|
+
this.viewport?.resetViewport();
|
|
255
|
+
const projectContent = null;
|
|
256
|
+
this.contentLoader.loadObject(this.objectId, this.revision, projectContent).then(() => {
|
|
257
|
+
this.recalculatePreviewSize();
|
|
258
|
+
this.viewport?.draw(); // TODO: check if this is needed
|
|
259
|
+
this.viewport?.zoomToObjects([this.objectId]);
|
|
260
|
+
this.isLoading = false;
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectPreviewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
264
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: ObjectPreviewComponent, isStandalone: true, selector: "lib-object-preview", inputs: { api: "api", objectId: "objectId", revision: "revision", visibleNode: "visibleNode", opaqueNode: "opaqueNode" }, viewQueries: [{ propertyName: "rendererViewportElement", first: true, predicate: ["rendererviewport"], descendants: true }], ngImport: i0, template: "<div class=\"rendered-preview\" #rendererviewport>\r\n @if (isLoading) {\r\n <div class=\"loading-spinner-icon\" title=\"{{'_LoadingGeometry' | translate}}\">\r\n </div>\r\n }\r\n</div>\r\n", styles: [".rendered-preview{width:100%;height:21rem!important;min-height:21rem;padding:0;white-space:nowrap;cursor:default;margin-bottom:0;position:relative}.rendered-preview canvas{min-height:21rem;min-width:100%;max-width:100%}.loading-spinner-icon{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M8.9 14.3c-1.8 0-3.5-.9-4.5-2.4L6.3 10H2v4.2l1.3-1.1C4.5 14.9 6.6 16 9 16c3.6 0 6.7-2.5 7-5.9h-1.8c-.3 2.3-2.7 4.2-5.3 4.2zM14.8 5C13.6 3.1 11.4 2 9 2 5.4 2 2.4 4.6 2.1 8h1.7C4.3 5.6 6.5 3.7 9 3.7c1.8 0 3.6 1 4.6 2.4l-2 1.9H16V3.7L14.8 5z\" fill=\"%23444\"/></svg>');position:absolute;top:calc(50% - .6rem);left:calc(50% - .6rem);z-index:10;width:1.8rem;height:1.8rem;background-size:contain;background-repeat:no-repeat;background-position:center;animation:spin .6s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
265
|
+
}
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ObjectPreviewComponent, decorators: [{
|
|
267
|
+
type: Component,
|
|
268
|
+
args: [{ selector: 'lib-object-preview', standalone: true, imports: [
|
|
269
|
+
TranslatePipe
|
|
270
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"rendered-preview\" #rendererviewport>\r\n @if (isLoading) {\r\n <div class=\"loading-spinner-icon\" title=\"{{'_LoadingGeometry' | translate}}\">\r\n </div>\r\n }\r\n</div>\r\n", styles: [".rendered-preview{width:100%;height:21rem!important;min-height:21rem;padding:0;white-space:nowrap;cursor:default;margin-bottom:0;position:relative}.rendered-preview canvas{min-height:21rem;min-width:100%;max-width:100%}.loading-spinner-icon{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M8.9 14.3c-1.8 0-3.5-.9-4.5-2.4L6.3 10H2v4.2l1.3-1.1C4.5 14.9 6.6 16 9 16c3.6 0 6.7-2.5 7-5.9h-1.8c-.3 2.3-2.7 4.2-5.3 4.2zM14.8 5C13.6 3.1 11.4 2 9 2 5.4 2 2.4 4.6 2.1 8h1.7C4.3 5.6 6.5 3.7 9 3.7c1.8 0 3.6 1 4.6 2.4l-2 1.9H16V3.7L14.8 5z\" fill=\"%23444\"/></svg>');position:absolute;top:calc(50% - .6rem);left:calc(50% - .6rem);z-index:10;width:1.8rem;height:1.8rem;background-size:contain;background-repeat:no-repeat;background-position:center;animation:spin .6s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
271
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { rendererViewportElement: [{
|
|
272
|
+
type: ViewChild,
|
|
273
|
+
args: ['rendererviewport']
|
|
274
|
+
}], api: [{
|
|
275
|
+
type: Input
|
|
276
|
+
}], objectId: [{
|
|
277
|
+
type: Input
|
|
278
|
+
}], revision: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], visibleNode: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], opaqueNode: [{
|
|
283
|
+
type: Input
|
|
284
|
+
}] } });
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByZXZpZXcvb2JqZWN0LXByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByZXZpZXcvb2JqZWN0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBRU4sS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLFFBQVEsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBYWxELE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsSUFDSSxRQUFRLENBQUMsRUFBVTtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFLRCxJQUFhLFdBQVcsQ0FBQyxLQUFvQjtRQUMzQyxJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsRUFBRSxFQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENB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QUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E3U1Usc0JBQXNCO21HQUF0QixzQkFBc0IscVVDMUJuQyx1TUFNQSxpOEJEY0ksYUFBYTs7NEZBTUosc0JBQXNCO2tCQVZsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1A7d0JBQ1AsYUFBYTtxQkFDZCxpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOytFQVVOLHVCQUF1QjtzQkFBckQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRXBCLEdBQUc7c0JBQVgsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBWUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQUtPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGVmZmVjdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgUmVuZGVyZXIgZnJvbSAnYmltcGx1cy1yZW5kZXJlcic7XHJcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcclxuaW1wb3J0IFdlYlNkayBmcm9tIFwiYmltcGx1cy13ZWJzZGtcIjtcclxuaW1wb3J0IHtUcmFuc2xhdGVQaXBlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBQcmV2aWV3T2JqZWN0IH0gZnJvbSAnLi9vYmplY3QtcHJldmlldy5pbnRlcmZhY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItb2JqZWN0LXByZXZpZXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29iamVjdC1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vYmplY3QtcHJldmlldy5jb21wb25lbnQubGVzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE9iamVjdFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgdmlld3BvcnQ6IFJlbmRlcmVyLlZpZXdwb3J0M0QgfCBudWxsID0gbnVsbDtcclxuICBpc0xvYWRpbmcgPSB0cnVlO1xyXG4gIHByZXZpb3VzV2lkdGggPSAwO1xyXG4gIHByZXZpb3VzSGVpZ2h0ID0gMDtcclxuICByZXNpemVUaW1lb3V0OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3JlbmRlcmVydmlld3BvcnQnKSByZW5kZXJlclZpZXdwb3J0RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIGFwaTogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBvYmplY3RJZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9vYmplY3RJZCA9IGlkO1xyXG4gICAgdGhpcy5vbk9iamVjdElkQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9iamVjdElkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fb2JqZWN0SWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vYmplY3RJZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKSByZXZpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHNldCB2aXNpYmxlTm9kZSh2YWx1ZTogUHJldmlld09iamVjdCl7XHJcbiAgICBpZih0aGlzLnZpZXdwb3J0KXtcclxuICAgICAgdGhpcy52aWV3cG9ydC50b2dnbGVPYmplY3ROb2RlKHtpZDp2YWx1ZS5pZCwgdmlzaWJsZTp2YWx1ZS52aXNpYmxlfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCBvcGFxdWVOb2RlKHZhbHVlOiBQcmV2aWV3T2JqZWN0KXsgICAgXHJcbiAgICBpZih0aGlzLnZpZXdwb3J0KXtcclxuICAgICAgdGhpcy52aWV3cG9ydC50b2dnbGVPYmplY3ROb2RlT3BhY2l0eSh7aWQ6dmFsdWUuaWQsIG9wYWNpdHk6dmFsdWUub3BhcXVlfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb250ZW50TG9hZGVyOiBSZW5kZXJlci5Db250ZW50TG9hZGVyIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgaXNSZW5kZXJlckluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgIGVmZmVjdCgoKT0+e1xyXG4gICAgICBpZiAodGhpcy52aXNpYmxlTm9kZSkge1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc1Zpc2liaWxpdHlOb2RlKHRoaXMudmlzaWJsZU5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIFJlYWN0IHRvIGNoYW5nZXMgaW4gdGhlIGBvcGFxdWVOb2RlYCBzaWduYWxcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm9wYXF1ZU5vZGUpIHtcclxuICAgICAgICB0aGlzLnByb2Nlc3NPcGFjaXR5Tm9kZSh0aGlzLm9wYXF1ZU5vZGUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgLy8gTWV0aG9kIHRvIHByb2Nlc3MgdGhlIG5vZGVcclxuICBwcm9jZXNzVmlzaWJpbGl0eU5vZGUobm9kZTogUHJldmlld09iamVjdCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ1Byb2Nlc3NpbmcgdmlzYmlsaXR5IG9mIG5vZGUgaW4gbGliLW9iamVjdC1wcmV2aWV3OicsIG5vZGUpOyAgIFxyXG4gIH1cclxuICBwcm9jZXNzT3BhY2l0eU5vZGUobm9kZTogUHJldmlld09iamVjdCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ1Byb2Nlc3Npbmcgb3BhY2l0eSBvZiBub2RlIGluIGxpYi1vYmplY3QtcHJldmlldzonLCBub2RlKTsgICBcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBcclxuICAgIC8vIEluaXRpYWxpemUgUmVzaXplT2JzZXJ2ZXJcclxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcclxuICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XHJcbiAgICAgICAgY29uc3Qgd2lkdGggPSBlbnRyeT8uY29udGVudFJlY3Q/LndpZHRoO1xyXG5cclxuICAgICAgICBpZiAod2lkdGggIT0gdGhpcy5wcmV2aW91c1dpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnByZXZpb3VzV2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVQcmV2aWV3U2l6ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gU3RhcnQgb2JzZXJ2aW5nIHRoZSBjb21wb25lbnQncyBtYWluIGNvbnRhaW5lclxyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGNvbnRhaW5lcik7XHJcbiAgICB0aGlzLmluaXRSZW5kZXJlcigpO1xyXG5cclxuICAgIHRoaXMuY29udGVudExvYWRlciA9IG5ldyBSZW5kZXJlci5Db250ZW50TG9hZGVyKHRoaXMuYXBpIGFzIFdlYlNkay5BcGksIHRoaXMudmlld3BvcnQgYXMgUmVuZGVyZXIuVmlld3BvcnQzRCk7XHJcblxyXG4gICAgdGhpcy5pc1JlbmRlcmVySW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubG9hZE9iamVjdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgICB0aGlzLnZpZXdwb3J0Py5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICByZWNhbGN1bGF0ZVByZXZpZXdTaXplKCkge1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZW91dCk7XHJcblxyXG4gICAgdGhpcy5yZXNpemVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5yZW5kZXJlclZpZXdwb3J0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5yZW5kZXJlclZpZXdwb3J0RWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgICBpZiAod2lkdGggJiYgaGVpZ2h0KSB7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydD8uc2V0Vmlld3BvcnRTaXplKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgIHRoaXMudmlld3BvcnQ/LmRyYXcoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiVmlld3BvcnQgc2l6ZSBpcyB6ZXJvXCIpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxKSBhcyB1bmtub3duIGFzIG51bWJlcjsgLy8gRGVsYXkgZXhlY3V0aW9uIHRvIGF2b2lkIHJhcGlkIHJlc2l6aW5nIGFuZCBmbGlja2VyaW5nXHJcbiAgfVxyXG5cclxuICBtZXRyaWNVbml0czogUmVuZGVyZXIuTWVhc3VyZW1lbnRVbml0cyA9IHtcclxuICAgIHdlaWdodDoge1xyXG4gICAgICBtdWx0aXBsaWNhdG9yOiAwLjAwMSxcclxuICAgICAgcHJlY2lzaW9uOiAyLFxyXG4gICAgICB1bml0OiAna2cnLFxyXG4gICAgfSxcclxuICAgIGxlbmd0aDoge1xyXG4gICAgICBtdWx0aXBsaWNhdG9yOiAwLjAwMSxcclxuICAgICAgcHJlY2lzaW9uOiAyLFxyXG4gICAgICB1bml0OiAnbScsXHJcbiAgICB9LFxyXG4gICAgd2lkdGg6IHtcclxuICAgICAgbXVsdGlwbGljYXRvcjogMC4wMDEsXHJcbiAgICAgIHByZWNpc2lvbjogMixcclxuICAgICAgdW5pdDogJ20nLFxyXG4gICAgfSxcclxuICAgIGhlaWdodDoge1xyXG4gICAgICBtdWx0aXBsaWNhdG9yOiAwLjAwMSxcclxuICAgICAgcHJlY2lzaW9uOiAyLFxyXG4gICAgICB1bml0OiAnbScsXHJcbiAgICB9LFxyXG4gICAgYXJlYToge1xyXG4gICAgICBtdWx0aXBsaWNhdG9yOiAwLjAwMDAwMSxcclxuICAgICAgcHJlY2lzaW9uOiAyLFxyXG4gICAgICB1bml0OiAnbcKyJyxcclxuICAgIH0sXHJcbiAgICB2b2x1bWU6IHtcclxuICAgICAgbXVsdGlwbGljYXRvcjogMWUtOSxcclxuICAgICAgcHJlY2lzaW9uOiAyLFxyXG4gICAgICB1bml0OiAnbcKzJyxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgaW1wZXJpYWxVbml0czogUmVuZGVyZXIuTWVhc3VyZW1lbnRVbml0cyA9IHtcclxuICAgIGxlbmd0aDoge1xyXG4gICAgICBtdWx0aXBsaWNhdG9yOiAwLjAwMzI4MDgzOTg5LFxyXG4gICAgICBwcmVjaXNpb246IDIsXHJcbiAgICAgIHVuaXQ6ICdmZWV0JyxcclxuICAgIH0sXHJcbiAgICB3aWR0aDoge1xyXG4gICAgICBtdWx0aXBsaWNhdG9yOiAwLjAwMzI4MDgzOTg5LFxyXG4gICAgICBwcmVjaXNpb246IDIsXHJcbiAgICAgIHVuaXQ6ICdmZWV0JyxcclxuICAgIH0sXHJcbiAgICBoZWlnaHQ6IHtcclxuICAgICAgbXVsdGlwbGljYXRvcjogMC4wMDMyODA4Mzk4OSxcclxuICAgICAgcHJlY2lzaW9uOiAyLFxyXG4gICAgICB1bml0OiAnZmVldCcsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIHZpZXdwb3J0U2V0dGluZ3M6IFJlbmRlcmVyLlZpZXdwb3J0U2V0dGluZ3MgPSB7XHJcbiAgICBkZWZhdWx0T3BhY2l0eTogMC41LFxyXG4gICAgZGlzY2lwbGluZU9wYWNpdHk6IDAuMSxcclxuICAgIHBpblNpemVTY2FsZUZhY3RvcjogMixcclxuICAgIG1heFdlYkdMQnVmZmVyU2l6ZTogMzUwZTEyLFxyXG4gICAgbWl4ZWRNb2RlbE1vZGU6IHRydWUsXHJcbiAgICB1c2VGcmFtZVNlbGVjdGlvbjogZmFsc2UsXHJcbiAgICBwaW5GbHlUb0Rpc3RhbmNlOiAyMDAwMCxcclxuICAgIG5lYXJDbGlwcGluZ1BsYW5lOiAwLjAxLFxyXG4gICAgc2xpZGVUaG1iU2l6ZTogWzE4MCwgMTEyXSxcclxuICAgIHVuaXRzOiB7XHJcbiAgICAgIG1tOiB0aGlzLm1ldHJpY1VuaXRzLFxyXG4gICAgICBpbmNoOiB7fSxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgdW5pdHMgPSB7XHJcbiAgICBNZXRyaWM6IHRoaXMubWV0cmljVW5pdHMsXHJcbiAgICBJbXBlcmlhbDogdGhpcy5pbXBlcmlhbFVuaXRzLFxyXG4gIH07XHJcblxyXG4gIHNldEFtYmllbnRPY2NsdXNpb25PcHRpb25zKCkge1xyXG4gICAgaWYgKCF0aGlzLnZpZXdwb3J0KSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZpZXdwb3J0T2NjbHVzaW9uRGF0YSA9IHtcclxuICAgICAgdXNhZ2U6IGZhbHNlLFxyXG4gICAgICB1c2FnZUZvckludGVyYWN0aW9uOiBmYWxzZSxcclxuICAgICAgdXNlU2hhZG93czogZmFsc2UsXHJcbiAgICAgIHVzZVNoYWRvd3NGb3JJbnRlcmFjdGlvbjogZmFsc2UsXHJcbiAgICAgIGxpZ2h0Um90YXRpb246IE1hdGguUEkgKiAzNS4wMCAvIDE4MC4wLFxyXG4gICAgICBsaWdodEVsZXZhdGlvbjogTWF0aC5QSSAqIDUwLjAwIC8gMTgwLjAsXHJcbiAgICAgIGxpZ2h0Q29sb3I6IG5ldyBUSFJFRS5Db2xvcigxLjAsIDEuMCwgMS4wKSxcclxuICAgICAgYW1iaWVudExpZ2h0Q29sb3I6IG5ldyBUSFJFRS5Db2xvcigwLjYsIDAuNiwgMC42KSxcclxuICAgIH07XHJcbiAgICB0aGlzLnZpZXdwb3J0LnNldEFtYmllbnRPY2NsdXNpb25PcHRpb25zKHZpZXdwb3J0T2NjbHVzaW9uRGF0YSk7XHJcbiAgfVxyXG5cclxuICBzZXRCYWNrZ3JvdW5kT3B0aW9ucygpIHtcclxuICAgIGlmICghdGhpcy52aWV3cG9ydCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXlTa3lCYWNrZ3JvdW5kU2V0dGluZyA9IHtcclxuICAgICAgbmFtZTogXCJkYXkgc2t5XCIsXHJcbiAgICAgIGFtYmllbnRMaWdodENvbG9yOiAweDg2ODY4NixcclxuICAgICAgYmFja2dyb3VuZFR5cGU6IFJlbmRlcmVyLkJhY2tncm91bmQuQmFja2dyb3VuZFR5cGVfTGluZWFyR3JhZGllbnQsXHJcbiAgICAgIGJhY2tncm91bmRQYXJhbXM6IHtcclxuICAgICAgICBhbHBoYTogMS4wLFxyXG4gICAgICAgIGNvbG9yU3RvcHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgb2Zmc2V0OiAwLjAsXHJcbiAgICAgICAgICAgIGNvbG9yOiBcIiM4N0NERTlcIlxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgb2Zmc2V0OiAwLjUxMDQsXHJcbiAgICAgICAgICAgIGNvbG9yOiBcIiNEREVERkVcIlxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgb2Zmc2V0OiAwLjk2MzUsXHJcbiAgICAgICAgICAgIGNvbG9yOiBcIiNEM0QzRDRcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMudmlld3BvcnQuc2V0QmFja2dyb3VuZChkYXlTa3lCYWNrZ3JvdW5kU2V0dGluZy5iYWNrZ3JvdW5kVHlwZSwgZGF5U2t5QmFja2dyb3VuZFNldHRpbmcuYmFja2dyb3VuZFBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBzZXRIb3Zlck9wdGlvbih1c2VIb3ZlckVmZmVjdDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGlmICghdGhpcy52aWV3cG9ydCkge1xyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMudmlld3BvcnQuc2V0VXNlSG92ZXJFZmZlY3QodXNlSG92ZXJFZmZlY3QpO1xyXG4gIH1cclxuXHJcbiAgaW5pdFJlbmRlcmVyKCkge1xyXG4gICAgdGhpcy52aWV3cG9ydCA9IG5ldyBSZW5kZXJlci5WaWV3cG9ydDNEKHtcclxuICAgICAgc2V0dGluZ3M6IHRoaXMudmlld3BvcnRTZXR0aW5ncyxcclxuICAgICAgdW5pdHM6IHRoaXMudW5pdHMuTWV0cmljLFxyXG4gICAgICBkb21FbGVtZW50SWQ6IFwiXCIsXHJcbiAgICAgIEdQVVBpY2s6IHRydWUsXHJcbiAgICAgIGFwaTogdGhpcy5hcGkgYXMgV2ViU2RrLkFwaSxcclxuICAgICAgbmFtZTogXCJvYmplY3RQcmV2aWV3UmVuZGVyZXJWaWV3cG9ydFwiLFxyXG4gICAgICBsb29rdXBUZXh0dXJlU2l6ZTogMzIsXHJcbiAgICAgIHNzYW9TdXBwb3J0ZWQ6IGZhbHNlLCAvLyBEaXNhYmxlIFNTQU8gc3VwcG9ydCBmb3Igb2JqZWN0IGRldGFpbHMgd2luZG93XHJcbiAgICAgIHNoYWRvd3NTdXBwb3J0ZWQ6IGZhbHNlLFxyXG4gICAgICBwYW5uaW5nU2NhbGVGYWN0b3I6IDQuMCwgLy9JbiBjYXNlIG9mIHByZXZpZXcgd2luZG93IHVzZSBiaWdnZXIgcGFubmluZyBzY2FsZSBmYWN0b3JcclxuICAgICAgY29tbWFuZFBvbGljaWVzOiB7XHJcbiAgICAgICAgQ29tbWFuZFNlbGVjdDoge1xyXG4gICAgICAgICAgbm9CdWJibGU6IHRydWUsIC8vIERvbid0IGRvIGEgdXB3YXJkcyBhY3RpdmF0aW9uXHJcbiAgICAgICAgICBub1RyYXZlcnNlOiB0cnVlIC8vIERvbid0IGRvIGEgZG93bndhcmRzIGFjdGl2YXRpb25cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0QW1iaWVudE9jY2x1c2lvbk9wdGlvbnMoKTtcclxuICAgIHRoaXMuc2V0QmFja2dyb3VuZE9wdGlvbnMoKTtcclxuICAgIHRoaXMuc2V0SG92ZXJPcHRpb24oKTtcclxuICAgIHRoaXMudmlld3BvcnQuZHJhdygpO1xyXG5cclxuICAgIGlmICh0aGlzLnZpZXdwb3J0Py5kb21FbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ/LnNoYWRvd1Jvb3QgfHwgdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICBuYXRpdmVFbGVtZW50Py5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPy4oXCJyZW5kZXJlZC1wcmV2aWV3XCIpWzBdPy5hcHBlbmRDaGlsZD8uKHRoaXMudmlld3BvcnQuZG9tRWxlbWVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwibm8gZG9tIGVsZW1lbnQgcHJlc2VudCBmb3IgcmVuZGVyZXIhXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk9iamVjdElkQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMubG9hZE9iamVjdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkT2JqZWN0KCkge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVuZGVyZXJJbml0aWFsaXplZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmNvbnRlbnRMb2FkZXIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcImNvbnRlbnQgbG9hZGVyIGlzIG5vdCB0aGVyZSFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zb2xlLmxvZygnbG9hZGluZyBvYmplY3QuLi4nKTtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdGhpcy52aWV3cG9ydD8ucmVzZXRWaWV3cG9ydCgpO1xyXG5cclxuICAgIGNvbnN0IHByb2plY3RDb250ZW50ID0gbnVsbDtcclxuICAgIHRoaXMuY29udGVudExvYWRlci5sb2FkT2JqZWN0KHRoaXMub2JqZWN0SWQgYXMgc3RyaW5nLCB0aGlzLnJldmlzaW9uLCBwcm9qZWN0Q29udGVudCkudGhlbigoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnJlY2FsY3VsYXRlUHJldmlld1NpemUoKTtcclxuXHJcbiAgICAgIHRoaXMudmlld3BvcnQ/LmRyYXcoKTsgLy8gVE9ETzogY2hlY2sgaWYgdGhpcyBpcyBuZWVkZWRcclxuXHJcbiAgICAgIHRoaXMudmlld3BvcnQ/Lnpvb21Ub09iamVjdHMoW3RoaXMub2JqZWN0SWQgYXMgc3RyaW5nXSk7XHJcblxyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyZW5kZXJlZC1wcmV2aWV3XCIgI3JlbmRlcmVydmlld3BvcnQ+XHJcbiAgQGlmIChpc0xvYWRpbmcpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nLXNwaW5uZXItaWNvblwiIHRpdGxlPVwie3snX0xvYWRpbmdHZW9tZXRyeScgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXByZXZpZXcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LXByZXZpZXcvb2JqZWN0LXByZXZpZXcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFByZXZpZXdPYmplY3Qge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdmlzaWJsZTogYm9vbGVhbjtcclxuICBvcGFxdWU6IGJvb2xlYW47XHJcbn0iXX0=
|