ngx-bimplus-components 0.0.157 → 0.0.158
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/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +13 -6
- package/esm2022/lib/pipes/datetime.pipe.mjs +25 -0
- package/fesm2022/ngx-bimplus-components.mjs +33 -5
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.d.ts +3 -1
- package/lib/pipes/datetime.pipe.d.ts +7 -0
- package/package.json +1 -1
|
@@ -10,13 +10,16 @@ import { BimplusObjectComplexPropertiesComponent } from '../../bimplus-object-co
|
|
|
10
10
|
import { ObjectStructureNodeBuilder } from '../../bimplus-object-structure/bimplus-object-structure.interface';
|
|
11
11
|
import { ComplexPropertiesNodeBuilder } from '../../bimplus-object-complex-properties/bimplus-object-complex-properties.interface';
|
|
12
12
|
import { FormatValuePipe } from '../../../pipes/format-value.pipe';
|
|
13
|
+
import { DateTimePipe } from '../../../pipes/datetime.pipe';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "@ngx-translate/core";
|
|
15
16
|
import * as i2 from "../../../pipes/format-value.pipe";
|
|
17
|
+
import * as i3 from "../../../pipes/datetime.pipe";
|
|
16
18
|
export class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWidgetComponent {
|
|
17
|
-
constructor(translateService, formatValuePipe) {
|
|
19
|
+
constructor(translateService, formatValuePipe, datetimePipe) {
|
|
18
20
|
super(translateService);
|
|
19
21
|
this.formatValuePipe = formatValuePipe;
|
|
22
|
+
this.datetimePipe = datetimePipe;
|
|
20
23
|
this.api = null;
|
|
21
24
|
this.revision = undefined;
|
|
22
25
|
this._currentObjectId$ = new BehaviorSubject("");
|
|
@@ -144,6 +147,10 @@ export class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWid
|
|
|
144
147
|
if (attribute?.control === "Checkbox") {
|
|
145
148
|
return (attribute.value === 1) ? "True" : "False";
|
|
146
149
|
}
|
|
150
|
+
// Handle datetime transformation
|
|
151
|
+
if (attribute?.type === "datetime" && typeof (attribute.value) === 'string') {
|
|
152
|
+
return this.datetimePipe.transform(attribute.value);
|
|
153
|
+
}
|
|
147
154
|
return String(attribute.value);
|
|
148
155
|
}
|
|
149
156
|
handleFilterCriteriumAttributeStateChange(attrib) {
|
|
@@ -303,13 +310,13 @@ export class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWid
|
|
|
303
310
|
}
|
|
304
311
|
});
|
|
305
312
|
}
|
|
306
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, deps: [{ token: i1.TranslateService }, { token: i2.FormatValuePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: CriteriaSelectObjectPropertiesComponent, isStandalone: true, selector: "lib-criteria-select-object-properties", inputs: { api: "api", rootObjectId: "rootObjectId", revision: "revision", filterCriteria: "filterCriteria" }, outputs: { filterCriteriaChange: "filterCriteriaChange" }, providers: [FormatValuePipe], usesInheritance: true, ngImport: i0, template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"], dependencies: [{ kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusObjectStructureComponent, selector: "lib-bimplus-object-structure", inputs: ["objectStructure"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusObjectComplexPropertiesComponent, selector: "lib-bimplus-object-complex-properties", inputs: ["complexProperties"], outputs: ["nodeSelected"] }] }); }
|
|
313
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, deps: [{ token: i1.TranslateService }, { token: i2.FormatValuePipe }, { token: i3.DateTimePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
314
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: CriteriaSelectObjectPropertiesComponent, isStandalone: true, selector: "lib-criteria-select-object-properties", inputs: { api: "api", rootObjectId: "rootObjectId", revision: "revision", filterCriteria: "filterCriteria" }, outputs: { filterCriteriaChange: "filterCriteriaChange" }, providers: [FormatValuePipe, DateTimePipe], usesInheritance: true, ngImport: i0, template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"], dependencies: [{ kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusObjectStructureComponent, selector: "lib-bimplus-object-structure", inputs: ["objectStructure"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusObjectComplexPropertiesComponent, selector: "lib-bimplus-object-complex-properties", inputs: ["complexProperties"], outputs: ["nodeSelected"] }] }); }
|
|
308
315
|
}
|
|
309
316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, decorators: [{
|
|
310
317
|
type: Component,
|
|
311
|
-
args: [{ selector: 'lib-criteria-select-object-properties', standalone: true, imports: [ExpansionPanelHeaderComponent, ExpansionPanelComponent, TranslateModule, BimplusObjectStructureComponent, BimplusObjectComplexPropertiesComponent], providers: [FormatValuePipe], template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"] }]
|
|
312
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.FormatValuePipe }], propDecorators: { api: [{
|
|
318
|
+
args: [{ selector: 'lib-criteria-select-object-properties', standalone: true, imports: [ExpansionPanelHeaderComponent, ExpansionPanelComponent, TranslateModule, BimplusObjectStructureComponent, BimplusObjectComplexPropertiesComponent], providers: [FormatValuePipe, DateTimePipe], template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"] }]
|
|
319
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.FormatValuePipe }, { type: i3.DateTimePipe }], propDecorators: { api: [{
|
|
313
320
|
type: Input
|
|
314
321
|
}], rootObjectId: [{
|
|
315
322
|
type: Input
|
|
@@ -320,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
320
327
|
}], filterCriteriaChange: [{
|
|
321
328
|
type: Output
|
|
322
329
|
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLHVDQUF1QyxFQUFF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QW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBXZWJTZGsgZnJvbSAnYmltcGx1cy13ZWJzZGsnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJDcml0ZXJpdW0sIE1heEZpbHRlckNyaXRlcmlhIH0gZnJvbSAnLi4vYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJpbXBsdXNPYmplY3RTdHJ1Y3R1cmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmUvYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNPYmplY3RDb21wbGV4UHJvcGVydGllc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllcy9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JqZWN0U3RydWN0dXJlTm9kZSwgT2JqZWN0U3RydWN0dXJlTm9kZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmUvYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENvbXBsZXhQcm9wZXJ0aWVzTm9kZSwgQ29tcGxleFByb3BlcnRpZXNOb2RlQnVpbGRlciB9IGZyb20gJy4uLy4uL2JpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllcy9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT2JqZWN0QXR0cmlidXRlLCBPYmplY3RBdHRyaWJ1dGVHcm91cCB9IGZyb20gJy4vY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZvcm1hdFZhbHVlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2Zvcm1hdC12YWx1ZS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQsIEV4cGFuc2lvblBhbmVsQ29tcG9uZW50LCBUcmFuc2xhdGVNb2R1bGUsIEJpbXBsdXNPYmplY3RTdHJ1Y3R1cmVDb21wb25lbnQsIEJpbXBsdXNPYmplY3RDb21wbGV4UHJvcGVydGllc0NvbXBvbmVudF0sXHJcbiAgcHJvdmlkZXJzOiBbRm9ybWF0VmFsdWVQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5sZXNzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JpdGVyaWFTZWxlY3RPYmplY3RQcm9wZXJ0aWVzQ29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgZm9ybWF0VmFsdWVQaXBlOiBGb3JtYXRWYWx1ZVBpcGUpIHtcclxuICAgIHN1cGVyKHRyYW5zbGF0ZVNlcnZpY2UpXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChpZCkgPT4ge1xyXG4gICAgICAgIGlmIChpZCkge1xyXG4gICAgICAgICAgdGhpcy5fY3JlYXRlT2JqZWN0UHJvcGVydGllcyhpZCwgdGhpcy5yZXZpc2lvbilcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQubmV4dChpZCk7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlQ29tcGxleFByb3BlcnRpZXN0cnVjdHVyZShpZCwgdGhpcy5yZXZpc2lvbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYXBpOiBXZWJTZGsuQXBpIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHJvb3RPYmplY3RJZChpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jdXJyZW50T2JqZWN0SWQkLm5leHQoaWQpO1xyXG4gICAgdGhpcy5fY3JlYXRlT2JqZWN0U3RydWN0dXJlKGlkLCB0aGlzLnJldmlzaW9uKTtcclxuXHJcbiAgICB0aGlzLl9yb290T2JqZWN0SWQgPSBpZDtcclxuICB9XHJcblxyXG4gIGdldCByb290T2JqZWN0SWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9yb290T2JqZWN0SWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRPYmplY3RJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXCJcIik7XHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KFwiXCIpO1xyXG5cclxuICBvYmplY3RBdHRyaWJ1dGVHcm91cHM6IE9iamVjdEF0dHJpYnV0ZUdyb3VwW10gPSBbXTtcclxuXHJcbiAgTWF4RmlsdGVyQ3JpdGVyaWEgPSBNYXhGaWx0ZXJDcml0ZXJpYTsgLy8gRm9yIGV4cG9zdXJlIHRvIHRlbXBsYXRlXHJcblxyXG4gIHByaXZhdGUgX3Jvb3RPYmplY3RJZDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZmlsdGVyQ3JpdGVyaWEoY3JpdGVyaWE6IEZpbHRlckNyaXRlcml1bVtdKSB7XHJcbiAgICB0aGlzLl9maWx0ZXJDcml0ZXJpYSA9IGNyaXRlcmlhO1xyXG4gICAgdGhpcy5fc3luY0F0dHJpYnV0ZVN0YXRlc0Zyb21Dcml0ZXJpYSgpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGZpbHRlckNyaXRlcmlhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDcml0ZXJpdW1bXT4oKTtcclxuXHJcbiAgZ2V0IGZpbHRlckNyaXRlcmlhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNyaXRlcmlhO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyQ3JpdGVyaWE6IEZpbHRlckNyaXRlcml1bVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX29iamVjdFN0cnVjdHVyZTogT2JqZWN0U3RydWN0dXJlTm9kZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBnZXQgb2JqZWN0U3RydWN0dXJlKCk6IE9iamVjdFN0cnVjdHVyZU5vZGUgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RTdHJ1Y3R1cmVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbXBsZXhQcm9wZXJ0aWVzOiBDb21wbGV4UHJvcGVydGllc05vZGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZ2V0IGNvbXBsZXhQcm9wZXJ0aWVzKCk6IENvbXBsZXhQcm9wZXJ0aWVzTm9kZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbXBsZXhQcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQXR0cmlidXRlKGF0dHJpYjogT2JqZWN0QXR0cmlidXRlKSB7XHJcbiAgICBhdHRyaWIuY2hlY2tlZCA9ICFhdHRyaWIuY2hlY2tlZDtcclxuICAgIGlmIChhdHRyaWIuY2hlY2tlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgYXR0cmliLnZhbHVlQ2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaGFuZGxlRmlsdGVyQ3JpdGVyaXVtQXR0cmlidXRlU3RhdGVDaGFuZ2UoYXR0cmliKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUF0dHJpYnV0ZVZhbHVlKGF0dHJpYjogT2JqZWN0QXR0cmlidXRlKSB7XHJcbiAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gIWF0dHJpYi52YWx1ZUNoZWNrZWQ7XHJcbiAgICBhdHRyaWIuY2hlY2tlZCA9IGF0dHJpYi52YWx1ZUNoZWNrZWQ7XHJcblxyXG4gICAgdGhpcy5oYW5kbGVGaWx0ZXJDcml0ZXJpdW1BdHRyaWJ1dGVTdGF0ZUNoYW5nZShhdHRyaWIpO1xyXG4gIH1cclxuXHJcbiAgX2RlZmluZUZpbHRlclN0cmluZyhhdHRyaWI6IE9iamVjdEF0dHJpYnV0ZSkge1xyXG4gICAgbGV0IHN1YnN0cmluZyA9IGBbSV1bJHthdHRyaWIuaWR9XS5WYWx1ZWA7XHJcblxyXG4gICAgaWYgKGF0dHJpYi52YWx1ZUNoZWNrZWQpIHtcclxuICAgICAgc3Vic3RyaW5nICs9IGBbRl1bMF09JHt0aGlzLmZvcm1hdFZhbHVlUGlwZS50cmFuc2Zvcm0oYXR0cmliLnZhbHVlKX1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1YnN0cmluZztcclxuICB9XHJcblxyXG4gIF9hZGRGaWx0ZXJDcml0ZXJpYShhdHRyaWI6IE9iamVjdEF0dHJpYnV0ZSkge1xyXG4gICAgLy8gYWRkIGEgbmV3IGVudHJ5XHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhLnB1c2goe1xyXG4gICAgICBuYW1lOiBhdHRyaWIubmFtZSxcclxuICAgICAgdmFsdWU6IGF0dHJpYi52YWx1ZUNoZWNrZWQgPyBhdHRyaWIudmFsdWUgOiB1bmRlZmluZWQsXHJcbiAgICAgIG5hbWVkVmFsdWU6IGF0dHJpYi52YWx1ZUNoZWNrZWQgPyB0aGlzLm5vcm1hbGl6ZWRWYWx1ZShhdHRyaWIsIHRydWUpIDogdW5kZWZpbmVkLFxyXG4gICAgICBpZDogYXR0cmliLmlkLFxyXG4gICAgICBzdWJTdHJpbmc6IHRoaXMuX2RlZmluZUZpbHRlclN0cmluZyhhdHRyaWIpLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBfdXBkYXRlRmlsdGVyQ3JpdGVyaWEoYXR0cmliOiBPYmplY3RBdHRyaWJ1dGUsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIC8vIHVwZGF0ZSBhbiBleGlzdGluZyBlbnRyeVxyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYVtpbmRleF0gPSB7XHJcbiAgICAgIC4uLnRoaXMuZmlsdGVyQ3JpdGVyaWFbaW5kZXhdLFxyXG4gICAgICBuYW1lOiBhdHRyaWIubmFtZSxcclxuICAgICAgdmFsdWU6IGF0dHJpYi52YWx1ZUNoZWNrZWQgPyBhdHRyaWIudmFsdWUgOiB1bmRlZmluZWQsXHJcbiAgICAgIG5hbWVkVmFsdWU6IGF0dHJpYi52YWx1ZUNoZWNrZWQgPyB0aGlzLm5vcm1hbGl6ZWRWYWx1ZShhdHRyaWIsIHRydWUpIDogdW5kZWZpbmVkLFxyXG4gICAgICBzdWJTdHJpbmc6IHRoaXMuX2RlZmluZUZpbHRlclN0cmluZyhhdHRyaWIpLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIEhlbHBlciBmdW5jdGlvbiBmb3Igcm91bmRpbmcgdG8gc3BlY2lmaWVkIGRlY2ltYWxzXHJcbiAgcHJpdmF0ZSByb3VuZFRvRGVjaW1hbCh2YWx1ZTogbnVtYmVyLCBkZWNpbWFsOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbXVsdGlwbGllciA9IE1hdGgucG93KDEwLCBkZWNpbWFsKTtcclxuICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogbXVsdGlwbGllcikgLyBtdWx0aXBsaWVyO1xyXG4gIH1cclxuXHJcbiAgdGl0bGVGb3JBdHRyaWJ1dGUoYXR0cmlidXRlOiBPYmplY3RBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgLy8gVHJhbnNsYXRpb24gbW92ZWQgdG8gaW1wbGVtZW50YXRpb24gdG8gbm90IHJ1biB0aGUgdHJhbnNsYXRpb24gXHJcbiAgICAvLyBmb3IgbWFueSB2YWx1ZXMgd2hpY2ggZG9uJ3QgbmVlZCBpdFxyXG4gICAgaWYgKGF0dHJpYnV0ZS52YWx1ZSA9PT0gbnVsbCB8fCBhdHRyaWJ1dGUudmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ19Ob3RfZGVmaW5lZCcpO1xyXG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUudmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX0VtcHR5X3ZhbHVlJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU3RyaW5nKGF0dHJpYnV0ZS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBub3JtYWxpemVkVmFsdWUoYXR0cmlidXRlOiBPYmplY3RBdHRyaWJ1dGUsIGZvckZpbHRlckNyaXRlcmlhOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gICAgLy8gVHJhbnNsYXRpb24gbW92ZWQgdG8gaW1wbGVtZW50YXRpb24gdG8gbm90IHJ1biB0aGUgdHJhbnNsYXRpb24gXHJcbiAgICAvLyBmb3IgbWFueSB2YWx1ZXMgd2hpY2ggZG9uJ3QgbmVlZCBpdFxyXG4gICAgaWYgKGF0dHJpYnV0ZS52YWx1ZSA9PT0gbnVsbCB8fCBhdHRyaWJ1dGUudmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gZm9yRmlsdGVyQ3JpdGVyaWEgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcIl9Ob3RfZGVmaW5lZFwiKSA6IFwiLi4uXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGF0dHJpYnV0ZS52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIGZvckZpbHRlckNyaXRlcmlhID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJfRW1wdHlfdmFsdWVcIikgOiBcIicnXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGF0dHJpYnV0ZT8uY29udHJvbCA9PT0gXCJFbnVtZXJhdGlvblwiICYmIGF0dHJpYnV0ZS5lbnVtVmFsdWVzKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nID0gU3RyaW5nKGF0dHJpYnV0ZS5lbnVtVmFsdWVzW051bWJlcihhdHRyaWJ1dGUudmFsdWUpXSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSGFuZGxlIG51bWVyaWMgcm91bmRpbmdcclxuICAgIGlmICghZm9yRmlsdGVyQ3JpdGVyaWEgJiZcclxuICAgICAgYXR0cmlidXRlLnR5cGUgPT09ICdkb3VibGUnICYmXHJcbiAgICAgIGF0dHJpYnV0ZS5kZWNpbWFsICYmXHJcbiAgICAgIHR5cGVvZiAoYXR0cmlidXRlLnZhbHVlKSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgY29uc3Qgcm91bmRlZFZhbHVlID0gdGhpcy5yb3VuZFRvRGVjaW1hbChhdHRyaWJ1dGUudmFsdWUsIGF0dHJpYnV0ZS5kZWNpbWFsKTtcclxuICAgICAgcmV0dXJuIFN0cmluZyhyb3VuZGVkVmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhdHRyaWJ1dGU/LmNvbnRyb2wgPT09IFwiQ2hlY2tib3hcIikge1xyXG4gICAgICByZXR1cm4gKGF0dHJpYnV0ZS52YWx1ZSA9PT0gMSkgPyBcIlRydWVcIiA6IFwiRmFsc2VcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gU3RyaW5nKGF0dHJpYnV0ZS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGaWx0ZXJDcml0ZXJpdW1BdHRyaWJ1dGVTdGF0ZUNoYW5nZShhdHRyaWI6IE9iamVjdEF0dHJpYnV0ZSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlckNyaXRlcmlhLmZpbmRJbmRleCh4ID0+IHguaWQgPT09IGF0dHJpYi5pZCk7XHJcbiAgICAvLyBGSUxURVIgQ1JJVEVSSUEgQUxSRUFEWSBFWElTVFNcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIGlmIChhdHRyaWIuY2hlY2tlZCA9PT0gZmFsc2UgJiYgYXR0cmliLnZhbHVlQ2hlY2tlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgICAvLyBSRU1PVkVcclxuICAgICAgICAvLyBmaWx0ZXJDcml0ZXJpYSBubyBsb25nZXIgdXNlZCAobGVmdCAvIHJpZ2h0IGNoZWNrYm94ZXMgbm90IGNoZWNrZWQpXHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFVQREFURVxyXG4gICAgICAgIC8vIGZpbHRlckNyaXRlcmlhIHN0aWxsIHVzZWQsIGJ1dCB2YWx1ZSBzaG91bGQgYmUgdXNlZCAocmlnaHQgY2hlY2tib3ggY2hlY2tlZClcclxuICAgICAgICB0aGlzLl91cGRhdGVGaWx0ZXJDcml0ZXJpYShhdHRyaWIsIGluZGV4KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpbHRlckNyaXRlcmlhQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXJDcml0ZXJpYSk7XHJcbiAgICB9XHJcbiAgICAvLyBGSUxURVIgQ1JJVEVSSUEgRE9FUyBOT1QgRVhJU1QgYW5kIE1BWCBDUklURVJJQSBOT1QgUkVBQ0hFRFxyXG4gICAgZWxzZSBpZiAodGhpcy5maWx0ZXJDcml0ZXJpYS5sZW5ndGggPCBNYXhGaWx0ZXJDcml0ZXJpYSkge1xyXG4gICAgICAvLyBBRERcclxuICAgICAgdGhpcy5fYWRkRmlsdGVyQ3JpdGVyaWEoYXR0cmliKTtcclxuICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYUNoYW5nZS5lbWl0KHRoaXMuZmlsdGVyQ3JpdGVyaWEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlT2JqZWN0U3RydWN0dXJlTm9kZVNlbGVjdGVkKG5vZGU6IE9iamVjdFN0cnVjdHVyZU5vZGUpIHtcclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQubmV4dChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZChub2RlOiBDb21wbGV4UHJvcGVydGllc05vZGUpIHtcclxuICAgIHRoaXMuX2N1cnJlbnRQcm9wZXJ0aWVzT2JqZWN0SWQkLm5leHQobm9kZS5pZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkOiBzdHJpbmcsIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2xvYWRPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkLCByZXZpc2lvbik/LnN1YnNjcmliZSh7XHJcblxyXG4gICAgICAvLyBwcm9wZXJ0aWVzIHJlc3BvbnNlIGlzIGJhZGx5IHN0cnVjdHVyZWQsIG5lYXJseSBpbXBvc3NpYmxlIHRvIGNyZWF0ZSBjbGFzcyBzdHJ1Y3R1cmUgZnJvbSBpdC4gVGhlcmVmb3JlIHVzaW5nIHNob3J0Y3V0XHJcbiAgICAgIC8vIGFueSBmb3IganNvbiByZXNwb25zZVxyXG5cclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIG5leHQ6IChwcm9wZXJ0aWVzRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vYmplY3RBdHRyaWJ1dGVHcm91cHMgPSB0aGlzLl9jcmVhdGVBdHRyaWJ1dGVHcm91cHNGcm9tUmVzcG9uc2UocHJvcGVydGllc0RhdGEpO1xyXG4gICAgICAgIHRoaXMuX3N5bmNBdHRyaWJ1dGVTdGF0ZXNGcm9tQ3JpdGVyaWEoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICApXHJcblxyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgcHJpdmF0ZSBfY3JlYXRlQXR0cmlidXRlR3JvdXBzRnJvbVJlc3BvbnNlKHByb3BlcnRpZXNEYXRhOiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCBncm91cHM6IEFycmF5PE9iamVjdEF0dHJpYnV0ZUdyb3VwPiA9IFtdO1xyXG4gICAgbGV0IGxvY2FsaXplZEF0dHJpYkdyb3VwcyA9IG51bGw7XHJcbiAgICBpZiAocHJvcGVydGllc0RhdGEubG9jYWxpemVkQXR0cmlidXRlR3JvdXBzKSB7XHJcbiAgICAgIGxvY2FsaXplZEF0dHJpYkdyb3VwcyA9IHByb3BlcnRpZXNEYXRhLmxvY2FsaXplZEF0dHJpYnV0ZUdyb3VwcztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXByb3BlcnRpZXNEYXRhLmF0dHJpYnV0ZXMpIHtcclxuICAgICAgcmV0dXJuIGdyb3VwcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhdHRyaWJHcm91cHMgPSBwcm9wZXJ0aWVzRGF0YS5hdHRyaWJ1dGVzO1xyXG4gICAgZm9yIChjb25zdCBbZ3JvdXBOYW1lLCBhdHRyaWJzT2JqZWN0XSBvZiBPYmplY3QuZW50cmllcyhhdHRyaWJHcm91cHMpKSB7XHJcblxyXG4gICAgICBjb25zdCBuZXdHcm91cDogT2JqZWN0QXR0cmlidXRlR3JvdXAgPSB7XHJcbiAgICAgICAgbmFtZTogZ3JvdXBOYW1lLFxyXG4gICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcclxuICAgICAgICBhdHRyaWJ1dGVzOiBbXVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKGxvY2FsaXplZEF0dHJpYkdyb3Vwcz8uW2dyb3VwTmFtZV0pIHtcclxuICAgICAgICBuZXdHcm91cC5uYW1lID0gbG9jYWxpemVkQXR0cmliR3JvdXBzW2dyb3VwTmFtZV07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICghYXR0cmlic09iamVjdCkge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGF0dHJpYiBvZiBPYmplY3QudmFsdWVzKGF0dHJpYnNPYmplY3QpKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld0F0dHJpYjogT2JqZWN0QXR0cmlidXRlID0ge1xyXG4gICAgICAgICAgaWQ6IGF0dHJpYi5pZCxcclxuICAgICAgICAgIG5hbWU6IGF0dHJpYi5uYW1lLFxyXG4gICAgICAgICAgZGVzY3JpcHRpb246IGF0dHJpYi5kZXNjcmlwdGlvbixcclxuICAgICAgICAgIHZhbHVlOiBhdHRyaWIudmFsdWUsXHJcbiAgICAgICAgICBpc0NoYW5nZWFibGU6IGF0dHJpYi5pc0NoYW5nZWFibGUsXHJcbiAgICAgICAgICB0eXBlOiBhdHRyaWIudHlwZSxcclxuICAgICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgdmFsdWVDaGVja2VkOiBmYWxzZSxcclxuICAgICAgICAgIGdyb3VwOiBhdHRyaWIuZ3JvdXAsXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBBZGQgYXR0cmlidXRlIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5vdCBhbHdheXMgcHJlc2VudFxyXG4gICAgICAgIGlmIChhdHRyaWIuY29udHJvbCkge1xyXG4gICAgICAgICAgbmV3QXR0cmliLmNvbnRyb2wgPSBhdHRyaWIuY29udHJvbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGF0dHJpYi5kZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICAgIG5ld0F0dHJpYi5kZWZhdWx0VmFsdWUgPSBhdHRyaWIuZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXR0cmliLnVuaXQpIHtcclxuICAgICAgICAgIG5ld0F0dHJpYi51bml0ID0gYXR0cmliLnVuaXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhdHRyaWIuZGVjaW1hbCkge1xyXG4gICAgICAgICAgbmV3QXR0cmliLmRlY2ltYWwgPSBhdHRyaWIuZGVjaW1hbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGF0dHJpYi5lbnVtZGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgbmV3QXR0cmliLmVudW1WYWx1ZXMgPSBhdHRyaWIuZW51bWRlZmluaXRpb247XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBuZXdHcm91cC5hdHRyaWJ1dGVzLnB1c2gobmV3QXR0cmliKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ3JvdXBzLnB1c2gobmV3R3JvdXApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBncm91cHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zeW5jQXR0cmlidXRlU3RhdGVzRnJvbUNyaXRlcmlhKCkge1xyXG4gICAgdGhpcy5vYmplY3RBdHRyaWJ1dGVHcm91cHMuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgIGdyb3VwLmF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyaWIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5fZmlsdGVyQ3JpdGVyaWEuZmluZCh4ID0+IHguaWQgPT0gYXR0cmliLmlkKVxyXG4gICAgICAgIGlmIChjcml0ZXJpYSkge1xyXG4gICAgICAgICAgYXR0cmliLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgICAgYXR0cmliLnZhbHVlQ2hlY2tlZCA9IGNyaXRlcmlhLnZhbHVlICE9PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGF0dHJpYi5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRPYmplY3RQcm9wZXJ0aWVzKG9iamVjdElkOiBzdHJpbmcsIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICghdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0KG9iamVjdElkLCByZXZpc2lvbiwgXCI4XCIsIHVuZGVmaW5lZCwgZmFsc2UsIHVuZGVmaW5lZCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdFN0cnVjdHVyZShvYmplY3RJZDogc3RyaW5nLCByZXZpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAoIXRoaXMuYXBpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaS5vYmplY3RzLmdldFRvcG9sb2d5KG9iamVjdElkLCByZXZpc2lvbiwgZmFsc2UsIGZhbHNlLCB1bmRlZmluZWQpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWRPYmplY3RDb21wbGV4UHJvcGVydGllc1N0cnVjdHVyZShvYmplY3RJZDogc3RyaW5nLCByZXZpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAoIXRoaXMuYXBpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmFwaS5vYmplY3RzLmdldENvbXBsZXhQcm9wZXJ0aWVzVG9wb2xvZ3kob2JqZWN0SWQsIHJldmlzaW9uKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVDb21wbGV4UHJvcGVydGllc3RydWN0dXJlKG9iamVjdElkOiBzdHJpbmcsIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2xvYWRPYmplY3RDb21wbGV4UHJvcGVydGllc1N0cnVjdHVyZShvYmplY3RJZCwgcmV2aXNpb24pPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoc3RydWN0dXJlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChzdHJ1Y3R1cmVEYXRhKSB7XHJcbiAgICAgICAgICBjb25zdCBjb21wbGV4UHJvcHMgPSBDb21wbGV4UHJvcGVydGllc05vZGVCdWlsZGVyLmNyZWF0ZUZyb21SZXNwb25zZShzdHJ1Y3R1cmVEYXRhKTtcclxuICAgICAgICAgIGlmIChjb21wbGV4UHJvcHM/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29tcGxleFByb3BlcnRpZXMgPSBjb21wbGV4UHJvcHM7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jb21wbGV4UHJvcGVydGllcyA9IG51bGw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlT2JqZWN0U3RydWN0dXJlKG9iamVjdElkOiBzdHJpbmcsIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2xvYWRPYmplY3RTdHJ1Y3R1cmUob2JqZWN0SWQsIHJldmlzaW9uKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHN0cnVjdHVyZURhdGEpID0+IHtcclxuICAgICAgICBpZiAoc3RydWN0dXJlRGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5fb2JqZWN0U3RydWN0dXJlID0gT2JqZWN0U3RydWN0dXJlTm9kZUJ1aWxkZXIuY3JlYXRlRnJvbVJlc3BvbnNlKHN0cnVjdHVyZURhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPCEtLSBPYmplY3Qgc3RydWN0dXJlLS0+XHJcbjxsaWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWhlYWRlclwiPlxyXG4gICAgICB7eyBcIl9PYmplY3Qgc3RydWN0dXJlXCIgfCB0cmFuc2xhdGUgfX08L3NwYW5cclxuICAgID5cclxuICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gIEBpZihvYmplY3RTdHJ1Y3R1cmUpe1xyXG4gIDxsaWItYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlXHJcbiAgICBbb2JqZWN0U3RydWN0dXJlXT1cIm9iamVjdFN0cnVjdHVyZVwiXHJcbiAgICAobm9kZVNlbGVjdGVkKT1cImhhbmRsZU9iamVjdFN0cnVjdHVyZU5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9saWItYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlPlxyXG4gIH1cclxuPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG48IS0tIEVuZCBPYmplY3Qgc3RydWN0dXJlLS0+XHJcblxyXG48IS0tIENvbXBsZXggcHJvcGVydGllcy0tPlxyXG5AaWYoY29tcGxleFByb3BlcnRpZXMpe1xyXG48bGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1oZWFkZXJcIj5cclxuICAgICAge3sgXCJfT2JqZWN0IG11bHRpcHJvcGVydGllcyB0cmVlXCIgfCB0cmFuc2xhdGUgfX08L3NwYW5cclxuICAgID5cclxuICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gIDxsaWItYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzXHJcbiAgICBbY29tcGxleFByb3BlcnRpZXNdPVwiY29tcGxleFByb3BlcnRpZXNcIlxyXG4gICAgKG5vZGVTZWxlY3RlZCk9XCJoYW5kbGVDb21wbGV4UHJvcGVydHlOb2RlU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgPlxyXG4gIDwvbGliLWJpbXBsdXMtb2JqZWN0LWNvbXBsZXgtcHJvcGVydGllcz5cclxuPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG59XHJcbjwhLS0gRW5kIENvbXBsZXggcHJvcGVydGllcy0tPlxyXG5cclxuPCEtLSBQcm9wZXJ0aWVzIGxpc3QtLT5cclxuQGlmKG9iamVjdEF0dHJpYnV0ZUdyb3Vwcy5sZW5ndGggPiAwKXtcclxuPGxpYi1leHBhbnNpb24tcGFuZWw+XHJcbiAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtaGVhZGVyXCI+XHJcbiAgICAgIHt7IFwiX09iamVjdCBwcm9wZXJ0aWVzXCIgfCB0cmFuc2xhdGUgfX08L3NwYW5cclxuICAgID5cclxuICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICBAZm9yIChhdHRyaWJHcm91cCBvZiBvYmplY3RBdHRyaWJ1dGVHcm91cHM7IHRyYWNrIGF0dHJpYkdyb3VwKSB7XHJcbiAgPGxpYi1leHBhbnNpb24tcGFuZWwgW2V4cGFuZGVkXT1cImF0dHJpYkdyb3VwLmV4cGFuZGVkXCI+XHJcbiAgICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWdyb3VwLWhlYWRlclwiPlxyXG4gICAgICAgIHt7IGF0dHJpYkdyb3VwLm5hbWUgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9saWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgIDxkaXY+XHJcbiAgICAgIEBmb3IgKGF0dHJpYiBvZiBhdHRyaWJHcm91cC5hdHRyaWJ1dGVzOyB0cmFjayBhdHRyaWIpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsIGNyaXRlcmlhLXNlbGVjdC1jaGVja2JveFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbC1sYWJlbFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJhdHRyaWIuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbHRlckNyaXRlcmlhLmxlbmd0aCA9PT0gTWF4RmlsdGVyQ3JpdGVyaWEgJiYgIWF0dHJpYi5jaGVja2VkXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUF0dHJpYnV0ZShhdHRyaWIpXCJcclxuICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJ0b2dnbGVBdHRyaWJ1dGUoYXR0cmliKVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsLXRleHRcIj5cclxuICAgICAgICAgICAgICB7eyBhdHRyaWIubmFtZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwgY3JpdGVyaWEtc2VsZWN0LWNoZWNrYm94XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsLWxhYmVsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYi52YWx1ZUNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJDcml0ZXJpYS5sZW5ndGggPT09IE1heEZpbHRlckNyaXRlcmlhICYmICFhdHRyaWIuY2hlY2tlZFxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVBdHRyaWJ1dGVWYWx1ZShhdHRyaWIpXCJcclxuICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJ0b2dnbGVBdHRyaWJ1dGVWYWx1ZShhdHRyaWIpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbC10ZXh0XCJcclxuICAgICAgICAgICAgICB0aXRsZT1cInt7IHRpdGxlRm9yQXR0cmlidXRlKGF0dHJpYikgfX1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3sgbm9ybWFsaXplZFZhbHVlKGF0dHJpYikgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvbGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICB9XHJcbjwvbGliLWV4cGFuc2lvbi1wYW5lbD5cclxufVxyXG48IS0tIEVuZCBQcm9wZXJ0aWVzIGxpc3QtLT5cclxuIl19
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMvY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUVBQW1FLENBQUM7QUFDcEgsT0FBTyxFQUFFLHVDQUF1QyxFQUFF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RSxlQUFlLDRGQUFFLCtCQUErQixpSUFBRSx1Q0FBdUM7OzRGQUtoSix1Q0FBdUM7a0JBUm5ELFNBQVM7K0JBQ0UsdUNBQXVDLGNBQ3JDLElBQUksV0FDUCxDQUFDLDZCQUE2QixFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSwrQkFBK0IsRUFBRSx1Q0FBdUMsQ0FBQyxhQUNqSixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7OElBZ0MxQyxHQUFHO3NCQURGLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQWFOLFFBQVE7c0JBRFAsS0FBSztnQkFjRixjQUFjO3NCQURqQixLQUFLO2dCQU1JLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtLCBNYXhGaWx0ZXJDcml0ZXJpYSB9IGZyb20gJy4uL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0U3RydWN0dXJlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlL2JpbXBsdXMtb2JqZWN0LXN0cnVjdHVyZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzT2JqZWN0Q29tcGxleFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9iamVjdFN0cnVjdHVyZU5vZGUsIE9iamVjdFN0cnVjdHVyZU5vZGVCdWlsZGVyIH0gZnJvbSAnLi4vLi4vYmltcGx1cy1vYmplY3Qtc3RydWN0dXJlL2JpbXBsdXMtb2JqZWN0LXN0cnVjdHVyZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb21wbGV4UHJvcGVydGllc05vZGUsIENvbXBsZXhQcm9wZXJ0aWVzTm9kZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXMvYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9iamVjdEF0dHJpYnV0ZSwgT2JqZWN0QXR0cmlidXRlR3JvdXAgfSBmcm9tICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGb3JtYXRWYWx1ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9mb3JtYXQtdmFsdWUucGlwZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2RhdGV0aW1lLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtFeHBhbnNpb25QYW5lbEhlYWRlckNvbXBvbmVudCwgRXhwYW5zaW9uUGFuZWxDb21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZSwgQmltcGx1c09iamVjdFN0cnVjdHVyZUNvbXBvbmVudCwgQmltcGx1c09iamVjdENvbXBsZXhQcm9wZXJ0aWVzQ29tcG9uZW50XSxcclxuICBwcm92aWRlcnM6IFtGb3JtYXRWYWx1ZVBpcGUsIERhdGVUaW1lUGlwZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy5jb21wb25lbnQubGVzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENyaXRlcmlhU2VsZWN0T2JqZWN0UHJvcGVydGllc0NvbXBvbmVudCBleHRlbmRzIEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZvcm1hdFZhbHVlUGlwZTogRm9ybWF0VmFsdWVQaXBlLFxyXG4gICAgcHJpdmF0ZSBkYXRldGltZVBpcGU6IERhdGVUaW1lUGlwZSkge1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGlkKSA9PiB7XHJcbiAgICAgICAgaWYgKGlkKSB7XHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGVPYmplY3RQcm9wZXJ0aWVzKGlkLCB0aGlzLnJldmlzaW9uKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoaWQpID0+IHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50UHJvcGVydGllc09iamVjdElkJC5uZXh0KGlkKTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVDb21wbGV4UHJvcGVydGllc3RydWN0dXJlKGlkLCB0aGlzLnJldmlzaW9uKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBhcGk6IFdlYlNkay5BcGkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgcm9vdE9iamVjdElkKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2N1cnJlbnRPYmplY3RJZCQubmV4dChpZCk7XHJcbiAgICB0aGlzLl9jcmVhdGVPYmplY3RTdHJ1Y3R1cmUoaWQsIHRoaXMucmV2aXNpb24pO1xyXG5cclxuICAgIHRoaXMuX3Jvb3RPYmplY3RJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJvb3RPYmplY3RJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Jvb3RPYmplY3RJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcmV2aXNpb246IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBfY3VycmVudE9iamVjdElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcIlwiKTtcclxuXHJcbiAgcHJpdmF0ZSBfY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXCJcIik7XHJcblxyXG4gIG9iamVjdEF0dHJpYnV0ZUdyb3VwczogT2JqZWN0QXR0cmlidXRlR3JvdXBbXSA9IFtdO1xyXG5cclxuICBNYXhGaWx0ZXJDcml0ZXJpYSA9IE1heEZpbHRlckNyaXRlcmlhOyAvLyBGb3IgZXhwb3N1cmUgdG8gdGVtcGxhdGVcclxuXHJcbiAgcHJpdmF0ZSBfcm9vdE9iamVjdElkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWx0ZXJDcml0ZXJpYShjcml0ZXJpYTogRmlsdGVyQ3JpdGVyaXVtW10pIHtcclxuICAgIHRoaXMuX2ZpbHRlckNyaXRlcmlhID0gY3JpdGVyaWE7XHJcbiAgICB0aGlzLl9zeW5jQXR0cmlidXRlU3RhdGVzRnJvbUNyaXRlcmlhKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgZmlsdGVyQ3JpdGVyaWFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNyaXRlcml1bVtdPigpO1xyXG5cclxuICBnZXQgZmlsdGVyQ3JpdGVyaWEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ3JpdGVyaWE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXJDcml0ZXJpYTogRmlsdGVyQ3JpdGVyaXVtW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfb2JqZWN0U3RydWN0dXJlOiBPYmplY3RTdHJ1Y3R1cmVOb2RlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGdldCBvYmplY3RTdHJ1Y3R1cmUoKTogT2JqZWN0U3RydWN0dXJlTm9kZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX29iamVjdFN0cnVjdHVyZVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY29tcGxleFByb3BlcnRpZXM6IENvbXBsZXhQcm9wZXJ0aWVzTm9kZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBnZXQgY29tcGxleFByb3BlcnRpZXMoKTogQ29tcGxleFByb3BlcnRpZXNOb2RlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcGxleFByb3BlcnRpZXM7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVBdHRyaWJ1dGUoYXR0cmliOiBPYmplY3RBdHRyaWJ1dGUpIHtcclxuICAgIGF0dHJpYi5jaGVja2VkID0gIWF0dHJpYi5jaGVja2VkO1xyXG4gICAgaWYgKGF0dHJpYi5jaGVja2VkID09PSBmYWxzZSkge1xyXG4gICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5oYW5kbGVGaWx0ZXJDcml0ZXJpdW1BdHRyaWJ1dGVTdGF0ZUNoYW5nZShhdHRyaWIpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQXR0cmlidXRlVmFsdWUoYXR0cmliOiBPYmplY3RBdHRyaWJ1dGUpIHtcclxuICAgIGF0dHJpYi52YWx1ZUNoZWNrZWQgPSAhYXR0cmliLnZhbHVlQ2hlY2tlZDtcclxuICAgIGF0dHJpYi5jaGVja2VkID0gYXR0cmliLnZhbHVlQ2hlY2tlZDtcclxuXHJcbiAgICB0aGlzLmhhbmRsZUZpbHRlckNyaXRlcml1bUF0dHJpYnV0ZVN0YXRlQ2hhbmdlKGF0dHJpYik7XHJcbiAgfVxyXG5cclxuICBfZGVmaW5lRmlsdGVyU3RyaW5nKGF0dHJpYjogT2JqZWN0QXR0cmlidXRlKSB7XHJcbiAgICBsZXQgc3Vic3RyaW5nID0gYFtJXVske2F0dHJpYi5pZH1dLlZhbHVlYDtcclxuXHJcbiAgICBpZiAoYXR0cmliLnZhbHVlQ2hlY2tlZCkge1xyXG4gICAgICBzdWJzdHJpbmcgKz0gYFtGXVswXT0ke3RoaXMuZm9ybWF0VmFsdWVQaXBlLnRyYW5zZm9ybShhdHRyaWIudmFsdWUpfWA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3Vic3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgX2FkZEZpbHRlckNyaXRlcmlhKGF0dHJpYjogT2JqZWN0QXR0cmlidXRlKSB7XHJcbiAgICAvLyBhZGQgYSBuZXcgZW50cnlcclxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWEucHVzaCh7XHJcbiAgICAgIG5hbWU6IGF0dHJpYi5uYW1lLFxyXG4gICAgICB2YWx1ZTogYXR0cmliLnZhbHVlQ2hlY2tlZCA/IGF0dHJpYi52YWx1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgbmFtZWRWYWx1ZTogYXR0cmliLnZhbHVlQ2hlY2tlZCA/IHRoaXMubm9ybWFsaXplZFZhbHVlKGF0dHJpYiwgdHJ1ZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgIGlkOiBhdHRyaWIuaWQsXHJcbiAgICAgIHN1YlN0cmluZzogdGhpcy5fZGVmaW5lRmlsdGVyU3RyaW5nKGF0dHJpYiksXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIF91cGRhdGVGaWx0ZXJDcml0ZXJpYShhdHRyaWI6IE9iamVjdEF0dHJpYnV0ZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgLy8gdXBkYXRlIGFuIGV4aXN0aW5nIGVudHJ5XHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhW2luZGV4XSA9IHtcclxuICAgICAgLi4udGhpcy5maWx0ZXJDcml0ZXJpYVtpbmRleF0sXHJcbiAgICAgIG5hbWU6IGF0dHJpYi5uYW1lLFxyXG4gICAgICB2YWx1ZTogYXR0cmliLnZhbHVlQ2hlY2tlZCA/IGF0dHJpYi52YWx1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgbmFtZWRWYWx1ZTogYXR0cmliLnZhbHVlQ2hlY2tlZCA/IHRoaXMubm9ybWFsaXplZFZhbHVlKGF0dHJpYiwgdHJ1ZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgIHN1YlN0cmluZzogdGhpcy5fZGVmaW5lRmlsdGVyU3RyaW5nKGF0dHJpYiksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciByb3VuZGluZyB0byBzcGVjaWZpZWQgZGVjaW1hbHNcclxuICBwcml2YXRlIHJvdW5kVG9EZWNpbWFsKHZhbHVlOiBudW1iZXIsIGRlY2ltYWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBjb25zdCBtdWx0aXBsaWVyID0gTWF0aC5wb3coMTAsIGRlY2ltYWwpO1xyXG4gICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiBtdWx0aXBsaWVyKSAvIG11bHRpcGxpZXI7XHJcbiAgfVxyXG5cclxuICB0aXRsZUZvckF0dHJpYnV0ZShhdHRyaWJ1dGU6IE9iamVjdEF0dHJpYnV0ZSk6IHN0cmluZyB7XHJcbiAgICAvLyBUcmFuc2xhdGlvbiBtb3ZlZCB0byBpbXBsZW1lbnRhdGlvbiB0byBub3QgcnVuIHRoZSB0cmFuc2xhdGlvbiBcclxuICAgIC8vIGZvciBtYW55IHZhbHVlcyB3aGljaCBkb24ndCBuZWVkIGl0XHJcbiAgICBpZiAoYXR0cmlidXRlLnZhbHVlID09PSBudWxsIHx8IGF0dHJpYnV0ZS52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnX05vdF9kZWZpbmVkJyk7XHJcbiAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZS52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdfRW1wdHlfdmFsdWUnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBTdHJpbmcoYXR0cmlidXRlLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5vcm1hbGl6ZWRWYWx1ZShhdHRyaWJ1dGU6IE9iamVjdEF0dHJpYnV0ZSwgZm9yRmlsdGVyQ3JpdGVyaWE6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgICAvLyBUcmFuc2xhdGlvbiBtb3ZlZCB0byBpbXBsZW1lbnRhdGlvbiB0byBub3QgcnVuIHRoZSB0cmFuc2xhdGlvbiBcclxuICAgIC8vIGZvciBtYW55IHZhbHVlcyB3aGljaCBkb24ndCBuZWVkIGl0XHJcbiAgICBpZiAoYXR0cmlidXRlLnZhbHVlID09PSBudWxsIHx8IGF0dHJpYnV0ZS52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBmb3JGaWx0ZXJDcml0ZXJpYSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiX05vdF9kZWZpbmVkXCIpIDogXCIuLi5cIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYXR0cmlidXRlLnZhbHVlID09PSAnJykge1xyXG4gICAgICByZXR1cm4gZm9yRmlsdGVyQ3JpdGVyaWEgPyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcIl9FbXB0eV92YWx1ZVwiKSA6IFwiJydcIjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYXR0cmlidXRlPy5jb250cm9sID09PSBcIkVudW1lcmF0aW9uXCIgJiYgYXR0cmlidXRlLmVudW1WYWx1ZXMpIHtcclxuICAgICAgY29uc3QgcmVzdWx0OiBzdHJpbmcgPSBTdHJpbmcoYXR0cmlidXRlLmVudW1WYWx1ZXNbTnVtYmVyKGF0dHJpYnV0ZS52YWx1ZSldKTtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBIYW5kbGUgbnVtZXJpYyByb3VuZGluZ1xyXG4gICAgaWYgKCFmb3JGaWx0ZXJDcml0ZXJpYSAmJlxyXG4gICAgICBhdHRyaWJ1dGUudHlwZSA9PT0gJ2RvdWJsZScgJiZcclxuICAgICAgYXR0cmlidXRlLmRlY2ltYWwgJiZcclxuICAgICAgdHlwZW9mIChhdHRyaWJ1dGUudmFsdWUpID09PSAnbnVtYmVyJykge1xyXG4gICAgICBjb25zdCByb3VuZGVkVmFsdWUgPSB0aGlzLnJvdW5kVG9EZWNpbWFsKGF0dHJpYnV0ZS52YWx1ZSwgYXR0cmlidXRlLmRlY2ltYWwpO1xyXG4gICAgICByZXR1cm4gU3RyaW5nKHJvdW5kZWRWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGF0dHJpYnV0ZT8uY29udHJvbCA9PT0gXCJDaGVja2JveFwiKSB7XHJcbiAgICAgIHJldHVybiAoYXR0cmlidXRlLnZhbHVlID09PSAxKSA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhbmRsZSBkYXRldGltZSB0cmFuc2Zvcm1hdGlvblxyXG4gICAgaWYgKGF0dHJpYnV0ZT8udHlwZSA9PT0gXCJkYXRldGltZVwiICYmIHR5cGVvZiAoYXR0cmlidXRlLnZhbHVlKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZXRpbWVQaXBlLnRyYW5zZm9ybShhdHRyaWJ1dGUudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBTdHJpbmcoYXR0cmlidXRlLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbHRlckNyaXRlcml1bUF0dHJpYnV0ZVN0YXRlQ2hhbmdlKGF0dHJpYjogT2JqZWN0QXR0cmlidXRlKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmlsdGVyQ3JpdGVyaWEuZmluZEluZGV4KHggPT4geC5pZCA9PT0gYXR0cmliLmlkKTtcclxuICAgIC8vIEZJTFRFUiBDUklURVJJQSBBTFJFQURZIEVYSVNUU1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgaWYgKGF0dHJpYi5jaGVja2VkID09PSBmYWxzZSAmJiBhdHRyaWIudmFsdWVDaGVja2VkID09PSBmYWxzZSkge1xyXG4gICAgICAgIC8vIFJFTU9WRVxyXG4gICAgICAgIC8vIGZpbHRlckNyaXRlcmlhIG5vIGxvbmdlciB1c2VkIChsZWZ0IC8gcmlnaHQgY2hlY2tib3hlcyBub3QgY2hlY2tlZClcclxuICAgICAgICB0aGlzLmZpbHRlckNyaXRlcmlhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVVBEQVRFXHJcbiAgICAgICAgLy8gZmlsdGVyQ3JpdGVyaWEgc3RpbGwgdXNlZCwgYnV0IHZhbHVlIHNob3VsZCBiZSB1c2VkIChyaWdodCBjaGVja2JveCBjaGVja2VkKVxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUZpbHRlckNyaXRlcmlhKGF0dHJpYiwgaW5kZXgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFDaGFuZ2UuZW1pdCh0aGlzLmZpbHRlckNyaXRlcmlhKTtcclxuICAgIH1cclxuICAgIC8vIEZJTFRFUiBDUklURVJJQSBET0VTIE5PVCBFWElTVCBhbmQgTUFYIENSSVRFUklBIE5PVCBSRUFDSEVEXHJcbiAgICBlbHNlIGlmICh0aGlzLmZpbHRlckNyaXRlcmlhLmxlbmd0aCA8IE1heEZpbHRlckNyaXRlcmlhKSB7XHJcbiAgICAgIC8vIEFERFxyXG4gICAgICB0aGlzLl9hZGRGaWx0ZXJDcml0ZXJpYShhdHRyaWIpO1xyXG4gICAgICB0aGlzLmZpbHRlckNyaXRlcmlhQ2hhbmdlLmVtaXQodGhpcy5maWx0ZXJDcml0ZXJpYSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPYmplY3RTdHJ1Y3R1cmVOb2RlU2VsZWN0ZWQobm9kZTogT2JqZWN0U3RydWN0dXJlTm9kZSkge1xyXG4gICAgdGhpcy5fY3VycmVudE9iamVjdElkJC5uZXh0KG5vZGUuaWQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ29tcGxleFByb3BlcnR5Tm9kZVNlbGVjdGVkKG5vZGU6IENvbXBsZXhQcm9wZXJ0aWVzTm9kZSkge1xyXG4gICAgdGhpcy5fY3VycmVudFByb3BlcnRpZXNPYmplY3RJZCQubmV4dChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU9iamVjdFByb3BlcnRpZXMob2JqZWN0SWQ6IHN0cmluZywgcmV2aXNpb246IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdFByb3BlcnRpZXMob2JqZWN0SWQsIHJldmlzaW9uKT8uc3Vic2NyaWJlKHtcclxuXHJcbiAgICAgIC8vIHByb3BlcnRpZXMgcmVzcG9uc2UgaXMgYmFkbHkgc3RydWN0dXJlZCwgbmVhcmx5IGltcG9zc2libGUgdG8gY3JlYXRlIGNsYXNzIHN0cnVjdHVyZSBmcm9tIGl0LiBUaGVyZWZvcmUgdXNpbmcgc2hvcnRjdXRcclxuICAgICAgLy8gYW55IGZvciBqc29uIHJlc3BvbnNlXHJcblxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgbmV4dDogKHByb3BlcnRpZXNEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3VwcyA9IHRoaXMuX2NyZWF0ZUF0dHJpYnV0ZUdyb3Vwc0Zyb21SZXNwb25zZShwcm9wZXJ0aWVzRGF0YSk7XHJcbiAgICAgICAgdGhpcy5fc3luY0F0dHJpYnV0ZVN0YXRlc0Zyb21Dcml0ZXJpYSgpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub2JqZWN0QXR0cmlidXRlR3JvdXBzID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIClcclxuXHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIF9jcmVhdGVBdHRyaWJ1dGVHcm91cHNGcm9tUmVzcG9uc2UocHJvcGVydGllc0RhdGE6IGFueSkge1xyXG5cclxuICAgIGNvbnN0IGdyb3VwczogQXJyYXk8T2JqZWN0QXR0cmlidXRlR3JvdXA+ID0gW107XHJcbiAgICBsZXQgbG9jYWxpemVkQXR0cmliR3JvdXBzID0gbnVsbDtcclxuICAgIGlmIChwcm9wZXJ0aWVzRGF0YS5sb2NhbGl6ZWRBdHRyaWJ1dGVHcm91cHMpIHtcclxuICAgICAgbG9jYWxpemVkQXR0cmliR3JvdXBzID0gcHJvcGVydGllc0RhdGEubG9jYWxpemVkQXR0cmlidXRlR3JvdXBzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcHJvcGVydGllc0RhdGEuYXR0cmlidXRlcykge1xyXG4gICAgICByZXR1cm4gZ3JvdXBzO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGF0dHJpYkdyb3VwcyA9IHByb3BlcnRpZXNEYXRhLmF0dHJpYnV0ZXM7XHJcbiAgICBmb3IgKGNvbnN0IFtncm91cE5hbWUsIGF0dHJpYnNPYmplY3RdIG9mIE9iamVjdC5lbnRyaWVzKGF0dHJpYkdyb3VwcykpIHtcclxuXHJcbiAgICAgIGNvbnN0IG5ld0dyb3VwOiBPYmplY3RBdHRyaWJ1dGVHcm91cCA9IHtcclxuICAgICAgICBuYW1lOiBncm91cE5hbWUsXHJcbiAgICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxyXG4gICAgICAgIGF0dHJpYnV0ZXM6IFtdXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAobG9jYWxpemVkQXR0cmliR3JvdXBzPy5bZ3JvdXBOYW1lXSkge1xyXG4gICAgICAgIG5ld0dyb3VwLm5hbWUgPSBsb2NhbGl6ZWRBdHRyaWJHcm91cHNbZ3JvdXBOYW1lXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFhdHRyaWJzT2JqZWN0KSB7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZvciAoY29uc3QgYXR0cmliIG9mIE9iamVjdC52YWx1ZXMoYXR0cmlic09iamVjdCkpIHtcclxuXHJcbiAgICAgICAgY29uc3QgbmV3QXR0cmliOiBPYmplY3RBdHRyaWJ1dGUgPSB7XHJcbiAgICAgICAgICBpZDogYXR0cmliLmlkLFxyXG4gICAgICAgICAgbmFtZTogYXR0cmliLm5hbWUsXHJcbiAgICAgICAgICBkZXNjcmlwdGlvbjogYXR0cmliLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgdmFsdWU6IGF0dHJpYi52YWx1ZSxcclxuICAgICAgICAgIGlzQ2hhbmdlYWJsZTogYXR0cmliLmlzQ2hhbmdlYWJsZSxcclxuICAgICAgICAgIHR5cGU6IGF0dHJpYi50eXBlLFxyXG4gICAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgICB2YWx1ZUNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgZ3JvdXA6IGF0dHJpYi5ncm91cCxcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEFkZCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gd2hpY2ggaXMgbm90IGFsd2F5cyBwcmVzZW50XHJcbiAgICAgICAgaWYgKGF0dHJpYi5jb250cm9sKSB7XHJcbiAgICAgICAgICBuZXdBdHRyaWIuY29udHJvbCA9IGF0dHJpYi5jb250cm9sO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXR0cmliLmRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICAgICAgbmV3QXR0cmliLmRlZmF1bHRWYWx1ZSA9IGF0dHJpYi5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhdHRyaWIudW5pdCkge1xyXG4gICAgICAgICAgbmV3QXR0cmliLnVuaXQgPSBhdHRyaWIudW5pdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGF0dHJpYi5kZWNpbWFsKSB7XHJcbiAgICAgICAgICBuZXdBdHRyaWIuZGVjaW1hbCA9IGF0dHJpYi5kZWNpbWFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYXR0cmliLmVudW1kZWZpbml0aW9uKSB7XHJcbiAgICAgICAgICBuZXdBdHRyaWIuZW51bVZhbHVlcyA9IGF0dHJpYi5lbnVtZGVmaW5pdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5ld0dyb3VwLmF0dHJpYnV0ZXMucHVzaChuZXdBdHRyaWIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBncm91cHMucHVzaChuZXdHcm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N5bmNBdHRyaWJ1dGVTdGF0ZXNGcm9tQ3JpdGVyaWEoKSB7XHJcbiAgICB0aGlzLm9iamVjdEF0dHJpYnV0ZUdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcclxuICAgICAgZ3JvdXAuYXR0cmlidXRlcy5mb3JFYWNoKGF0dHJpYiA9PiB7XHJcbiAgICAgICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLl9maWx0ZXJDcml0ZXJpYS5maW5kKHggPT4geC5pZCA9PSBhdHRyaWIuaWQpXHJcbiAgICAgICAgaWYgKGNyaXRlcmlhKSB7XHJcbiAgICAgICAgICBhdHRyaWIuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICBhdHRyaWIudmFsdWVDaGVja2VkID0gY3JpdGVyaWEudmFsdWUgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYXR0cmliLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIGF0dHJpYi52YWx1ZUNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdFByb3BlcnRpZXMob2JqZWN0SWQ6IHN0cmluZywgcmV2aXNpb246IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKCF0aGlzLmFwaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0cy5nZXQob2JqZWN0SWQsIHJldmlzaW9uLCBcIjhcIiwgdW5kZWZpbmVkLCBmYWxzZSwgdW5kZWZpbmVkKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkT2JqZWN0U3RydWN0dXJlKG9iamVjdElkOiBzdHJpbmcsIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICghdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0VG9wb2xvZ3kob2JqZWN0SWQsIHJldmlzaW9uLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkOiBzdHJpbmcsIHJldmlzaW9uOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICghdGhpcy5hcGkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmcm9tKHRoaXMuYXBpLm9iamVjdHMuZ2V0Q29tcGxleFByb3BlcnRpZXNUb3BvbG9neShvYmplY3RJZCwgcmV2aXNpb24pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZUNvbXBsZXhQcm9wZXJ0aWVzdHJ1Y3R1cmUob2JqZWN0SWQ6IHN0cmluZywgcmV2aXNpb246IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdENvbXBsZXhQcm9wZXJ0aWVzU3RydWN0dXJlKG9iamVjdElkLCByZXZpc2lvbik/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChzdHJ1Y3R1cmVEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHN0cnVjdHVyZURhdGEpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBsZXhQcm9wcyA9IENvbXBsZXhQcm9wZXJ0aWVzTm9kZUJ1aWxkZXIuY3JlYXRlRnJvbVJlc3BvbnNlKHN0cnVjdHVyZURhdGEpO1xyXG4gICAgICAgICAgaWYgKGNvbXBsZXhQcm9wcz8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLl9jb21wbGV4UHJvcGVydGllcyA9IGNvbXBsZXhQcm9wcztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbXBsZXhQcm9wZXJ0aWVzID0gbnVsbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVPYmplY3RTdHJ1Y3R1cmUob2JqZWN0SWQ6IHN0cmluZywgcmV2aXNpb246IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbG9hZE9iamVjdFN0cnVjdHVyZShvYmplY3RJZCwgcmV2aXNpb24pPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoc3RydWN0dXJlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChzdHJ1Y3R1cmVEYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLl9vYmplY3RTdHJ1Y3R1cmUgPSBPYmplY3RTdHJ1Y3R1cmVOb2RlQnVpbGRlci5jcmVhdGVGcm9tUmVzcG9uc2Uoc3RydWN0dXJlRGF0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8IS0tIE9iamVjdCBzdHJ1Y3R1cmUtLT5cclxuPGxpYi1leHBhbnNpb24tcGFuZWw+XHJcbiAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtaGVhZGVyXCI+XHJcbiAgICAgIHt7IFwiX09iamVjdCBzdHJ1Y3R1cmVcIiB8IHRyYW5zbGF0ZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgQGlmKG9iamVjdFN0cnVjdHVyZSl7XHJcbiAgPGxpYi1iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmVcclxuICAgIFtvYmplY3RTdHJ1Y3R1cmVdPVwib2JqZWN0U3RydWN0dXJlXCJcclxuICAgIChub2RlU2VsZWN0ZWQpPVwiaGFuZGxlT2JqZWN0U3RydWN0dXJlTm9kZVNlbGVjdGVkKCRldmVudClcIlxyXG4gID5cclxuICA8L2xpYi1iaW1wbHVzLW9iamVjdC1zdHJ1Y3R1cmU+XHJcbiAgfVxyXG48L2xpYi1leHBhbnNpb24tcGFuZWw+XHJcbjwhLS0gRW5kIE9iamVjdCBzdHJ1Y3R1cmUtLT5cclxuXHJcbjwhLS0gQ29tcGxleCBwcm9wZXJ0aWVzLS0+XHJcbkBpZihjb21wbGV4UHJvcGVydGllcyl7XHJcbjxsaWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWhlYWRlclwiPlxyXG4gICAgICB7eyBcIl9PYmplY3QgbXVsdGlwcm9wZXJ0aWVzIHRyZWVcIiB8IHRyYW5zbGF0ZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgPGxpYi1iaW1wbHVzLW9iamVjdC1jb21wbGV4LXByb3BlcnRpZXNcclxuICAgIFtjb21wbGV4UHJvcGVydGllc109XCJjb21wbGV4UHJvcGVydGllc1wiXHJcbiAgICAobm9kZVNlbGVjdGVkKT1cImhhbmRsZUNvbXBsZXhQcm9wZXJ0eU5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICA+XHJcbiAgPC9saWItYmltcGx1cy1vYmplY3QtY29tcGxleC1wcm9wZXJ0aWVzPlxyXG48L2xpYi1leHBhbnNpb24tcGFuZWw+XHJcbn1cclxuPCEtLSBFbmQgQ29tcGxleCBwcm9wZXJ0aWVzLS0+XHJcblxyXG48IS0tIFByb3BlcnRpZXMgbGlzdC0tPlxyXG5AaWYob2JqZWN0QXR0cmlidXRlR3JvdXBzLmxlbmd0aCA+IDApe1xyXG48bGliLWV4cGFuc2lvbi1wYW5lbD5cclxuICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1oZWFkZXJcIj5cclxuICAgICAge3sgXCJfT2JqZWN0IHByb3BlcnRpZXNcIiB8IHRyYW5zbGF0ZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gIEBmb3IgKGF0dHJpYkdyb3VwIG9mIG9iamVjdEF0dHJpYnV0ZUdyb3VwczsgdHJhY2sgYXR0cmliR3JvdXApIHtcclxuICA8bGliLWV4cGFuc2lvbi1wYW5lbCBbZXhwYW5kZWRdPVwiYXR0cmliR3JvdXAuZXhwYW5kZWRcIj5cclxuICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtZ3JvdXAtaGVhZGVyXCI+XHJcbiAgICAgICAge3sgYXR0cmliR3JvdXAubmFtZSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgPGRpdj5cclxuICAgICAgQGZvciAoYXR0cmliIG9mIGF0dHJpYkdyb3VwLmF0dHJpYnV0ZXM7IHRyYWNrIGF0dHJpYikge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY29udGVudFwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwgY3JpdGVyaWEtc2VsZWN0LWNoZWNrYm94XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsLWxhYmVsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYi5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyQ3JpdGVyaWEubGVuZ3RoID09PSBNYXhGaWx0ZXJDcml0ZXJpYSAmJiAhYXR0cmliLmNoZWNrZWRcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQXR0cmlidXRlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgICAgKGtleXByZXNzKT1cInRvZ2dsZUF0dHJpYnV0ZShhdHRyaWIpXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwtdGV4dFwiPlxyXG4gICAgICAgICAgICAgIHt7IGF0dHJpYi5uYW1lIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY3JpdGVyaWEtc2VsZWN0LW9iamVjdC1wcm9wZXJ0aWVzLWF0dHJpYi1yb3ctY2VsbCBjcml0ZXJpYS1zZWxlY3QtY2hlY2tib3hcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICBjbGFzcz1cImNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy1hdHRyaWItcm93LWNlbGwtbGFiZWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiYXR0cmliLnZhbHVlQ2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZpbHRlckNyaXRlcmlhLmxlbmd0aCA9PT0gTWF4RmlsdGVyQ3JpdGVyaWEgJiYgIWF0dHJpYi5jaGVja2VkXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUF0dHJpYnV0ZVZhbHVlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgICAgKGtleXByZXNzKT1cInRvZ2dsZUF0dHJpYnV0ZVZhbHVlKGF0dHJpYilcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMtYXR0cmliLXJvdy1jZWxsLXRleHRcIlxyXG4gICAgICAgICAgICAgIHRpdGxlPVwie3sgdGl0bGVGb3JBdHRyaWJ1dGUoYXR0cmliKSB9fVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBub3JtYWxpemVkVmFsdWUoYXR0cmliKSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG4gIH1cclxuPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG59XHJcbjwhLS0gRW5kIFByb3BlcnRpZXMgbGlzdC0tPlxyXG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DateTimePipe {
|
|
5
|
+
transform(value, format = "L") {
|
|
6
|
+
// This UTC date/time 2024-12-11T23:00:00+00:00
|
|
7
|
+
// gets transformed in Germany with timezone shift of +1 by
|
|
8
|
+
// moment(value).format(format) ==> 12/12/2024
|
|
9
|
+
// and by
|
|
10
|
+
// moment.utc(value).format(format) ==> 12/11/2024
|
|
11
|
+
//
|
|
12
|
+
const date = moment(value).format(format);
|
|
13
|
+
return date;
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
16
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: DateTimePipe, isStandalone: true, name: "DateTime" }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DateTimePipe, decorators: [{
|
|
19
|
+
type: Pipe,
|
|
20
|
+
args: [{
|
|
21
|
+
name: 'DateTime',
|
|
22
|
+
standalone: true,
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9waXBlcy9kYXRldGltZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7QUFNNUIsTUFBTSxPQUFPLFlBQVk7SUFDdkIsU0FBUyxDQUFDLEtBQWEsRUFBRSxTQUFpQixHQUFHO1FBQzNDLCtDQUErQztRQUMvQywyREFBMkQ7UUFDM0Qsc0RBQXNEO1FBQ3RELFNBQVM7UUFDVCxzREFBc0Q7UUFDdEQsRUFBRTtRQUNGLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQVZVLFlBQVk7NkdBQVosWUFBWTs7NEZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ0RhdGVUaW1lJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nID0gXCJMXCIpOiBzdHJpbmcge1xyXG4gICAgLy8gVGhpcyBVVEMgZGF0ZS90aW1lIDIwMjQtMTItMTFUMjM6MDA6MDArMDA6MDBcclxuICAgIC8vIGdldHMgdHJhbnNmb3JtZWQgaW4gR2VybWFueSB3aXRoIHRpbWV6b25lIHNoaWZ0IG9mICsxIGJ5XHJcbiAgICAvLyAgICAgbW9tZW50KHZhbHVlKS5mb3JtYXQoZm9ybWF0KSAgICAgPT0+IDEyLzEyLzIwMjRcclxuICAgIC8vIGFuZCBieVxyXG4gICAgLy8gICAgIG1vbWVudC51dGModmFsdWUpLmZvcm1hdChmb3JtYXQpID09PiAxMi8xMS8yMDI0XHJcbiAgICAvL1xyXG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh2YWx1ZSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -19,6 +19,7 @@ import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular
|
|
|
19
19
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
20
20
|
import * as i3$1 from '@angular/cdk/tree';
|
|
21
21
|
import { FlatTreeControl, CdkTreeModule } from '@angular/cdk/tree';
|
|
22
|
+
import moment from 'moment';
|
|
22
23
|
import { BehaviorSubject as BehaviorSubject$1 } from 'rxjs/internal/BehaviorSubject';
|
|
23
24
|
|
|
24
25
|
class NgxBimplusComponentsService {
|
|
@@ -4765,10 +4766,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
4765
4766
|
}]
|
|
4766
4767
|
}] });
|
|
4767
4768
|
|
|
4769
|
+
class DateTimePipe {
|
|
4770
|
+
transform(value, format = "L") {
|
|
4771
|
+
// This UTC date/time 2024-12-11T23:00:00+00:00
|
|
4772
|
+
// gets transformed in Germany with timezone shift of +1 by
|
|
4773
|
+
// moment(value).format(format) ==> 12/12/2024
|
|
4774
|
+
// and by
|
|
4775
|
+
// moment.utc(value).format(format) ==> 12/11/2024
|
|
4776
|
+
//
|
|
4777
|
+
const date = moment(value).format(format);
|
|
4778
|
+
return date;
|
|
4779
|
+
}
|
|
4780
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
4781
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: DateTimePipe, isStandalone: true, name: "DateTime" }); }
|
|
4782
|
+
}
|
|
4783
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DateTimePipe, decorators: [{
|
|
4784
|
+
type: Pipe,
|
|
4785
|
+
args: [{
|
|
4786
|
+
name: 'DateTime',
|
|
4787
|
+
standalone: true,
|
|
4788
|
+
}]
|
|
4789
|
+
}] });
|
|
4790
|
+
|
|
4768
4791
|
class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWidgetComponent {
|
|
4769
|
-
constructor(translateService, formatValuePipe) {
|
|
4792
|
+
constructor(translateService, formatValuePipe, datetimePipe) {
|
|
4770
4793
|
super(translateService);
|
|
4771
4794
|
this.formatValuePipe = formatValuePipe;
|
|
4795
|
+
this.datetimePipe = datetimePipe;
|
|
4772
4796
|
this.api = null;
|
|
4773
4797
|
this.revision = undefined;
|
|
4774
4798
|
this._currentObjectId$ = new BehaviorSubject("");
|
|
@@ -4896,6 +4920,10 @@ class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWidgetComp
|
|
|
4896
4920
|
if (attribute?.control === "Checkbox") {
|
|
4897
4921
|
return (attribute.value === 1) ? "True" : "False";
|
|
4898
4922
|
}
|
|
4923
|
+
// Handle datetime transformation
|
|
4924
|
+
if (attribute?.type === "datetime" && typeof (attribute.value) === 'string') {
|
|
4925
|
+
return this.datetimePipe.transform(attribute.value);
|
|
4926
|
+
}
|
|
4899
4927
|
return String(attribute.value);
|
|
4900
4928
|
}
|
|
4901
4929
|
handleFilterCriteriumAttributeStateChange(attrib) {
|
|
@@ -5055,13 +5083,13 @@ class CriteriaSelectObjectPropertiesComponent extends BimplusLocalizedWidgetComp
|
|
|
5055
5083
|
}
|
|
5056
5084
|
});
|
|
5057
5085
|
}
|
|
5058
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, deps: [{ token: i1.TranslateService }, { token: FormatValuePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5059
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: CriteriaSelectObjectPropertiesComponent, isStandalone: true, selector: "lib-criteria-select-object-properties", inputs: { api: "api", rootObjectId: "rootObjectId", revision: "revision", filterCriteria: "filterCriteria" }, outputs: { filterCriteriaChange: "filterCriteriaChange" }, providers: [FormatValuePipe], usesInheritance: true, ngImport: i0, template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"], dependencies: [{ kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusObjectStructureComponent, selector: "lib-bimplus-object-structure", inputs: ["objectStructure"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusObjectComplexPropertiesComponent, selector: "lib-bimplus-object-complex-properties", inputs: ["complexProperties"], outputs: ["nodeSelected"] }] }); }
|
|
5086
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, deps: [{ token: i1.TranslateService }, { token: FormatValuePipe }, { token: DateTimePipe }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5087
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: CriteriaSelectObjectPropertiesComponent, isStandalone: true, selector: "lib-criteria-select-object-properties", inputs: { api: "api", rootObjectId: "rootObjectId", revision: "revision", filterCriteria: "filterCriteria" }, outputs: { filterCriteriaChange: "filterCriteriaChange" }, providers: [FormatValuePipe, DateTimePipe], usesInheritance: true, ngImport: i0, template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"], dependencies: [{ kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: BimplusObjectStructureComponent, selector: "lib-bimplus-object-structure", inputs: ["objectStructure"], outputs: ["nodeSelected"] }, { kind: "component", type: BimplusObjectComplexPropertiesComponent, selector: "lib-bimplus-object-complex-properties", inputs: ["complexProperties"], outputs: ["nodeSelected"] }] }); }
|
|
5060
5088
|
}
|
|
5061
5089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CriteriaSelectObjectPropertiesComponent, decorators: [{
|
|
5062
5090
|
type: Component,
|
|
5063
|
-
args: [{ selector: 'lib-criteria-select-object-properties', standalone: true, imports: [ExpansionPanelHeaderComponent, ExpansionPanelComponent, TranslateModule, BimplusObjectStructureComponent, BimplusObjectComplexPropertiesComponent], providers: [FormatValuePipe], template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"] }]
|
|
5064
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: FormatValuePipe }], propDecorators: { api: [{
|
|
5091
|
+
args: [{ selector: 'lib-criteria-select-object-properties', standalone: true, imports: [ExpansionPanelHeaderComponent, ExpansionPanelComponent, TranslateModule, BimplusObjectStructureComponent, BimplusObjectComplexPropertiesComponent], providers: [FormatValuePipe, DateTimePipe], template: "<!-- Object structure-->\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object structure\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n @if(objectStructure){\r\n <lib-bimplus-object-structure\r\n [objectStructure]=\"objectStructure\"\r\n (nodeSelected)=\"handleObjectStructureNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-structure>\r\n }\r\n</lib-expansion-panel>\r\n<!-- End Object structure-->\r\n\r\n<!-- Complex properties-->\r\n@if(complexProperties){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object multiproperties tree\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n <lib-bimplus-object-complex-properties\r\n [complexProperties]=\"complexProperties\"\r\n (nodeSelected)=\"handleComplexPropertyNodeSelected($event)\"\r\n >\r\n </lib-bimplus-object-complex-properties>\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Complex properties-->\r\n\r\n<!-- Properties list-->\r\n@if(objectAttributeGroups.length > 0){\r\n<lib-expansion-panel>\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-header\">\r\n {{ \"_Object properties\" | translate }}</span\r\n >\r\n </lib-expansion-panel-header>\r\n\r\n @for (attribGroup of objectAttributeGroups; track attribGroup) {\r\n <lib-expansion-panel [expanded]=\"attribGroup.expanded\">\r\n <lib-expansion-panel-header>\r\n <span class=\"criteria-select-object-properties-group-header\">\r\n {{ attribGroup.name }}\r\n </span>\r\n </lib-expansion-panel-header>\r\n <div>\r\n @for (attrib of attribGroup.attributes; track attrib) {\r\n <div class=\"criteria-select-object-properties-attrib-row\">\r\n <div class=\"criteria-select-object-properties-attrib-row-content\">\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.checked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttribute(attrib)\"\r\n (keypress)=\"toggleAttribute(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div class=\"criteria-select-object-properties-attrib-row-cell-text\">\r\n {{ attrib.name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell criteria-select-checkbox\"\r\n >\r\n <label\r\n class=\"criteria-select-object-properties-attrib-row-cell-label\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"attrib.valueChecked\"\r\n [disabled]=\"\r\n filterCriteria.length === MaxFilterCriteria && !attrib.checked\r\n \"\r\n (click)=\"toggleAttributeValue(attrib)\"\r\n (keypress)=\"toggleAttributeValue(attrib)\"\r\n />\r\n <span></span>\r\n </label>\r\n <div\r\n class=\"criteria-select-object-properties-attrib-row-cell-text\"\r\n title=\"{{ titleForAttribute(attrib) }}\"\r\n >\r\n {{ normalizedValue(attrib) }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n }\r\n</lib-expansion-panel>\r\n}\r\n<!-- End Properties list-->\r\n", styles: [".criteria-select-object-properties-header{font-weight:700;text-transform:uppercase;font-size:1.4rem}.criteria-select-object-properties-group-header{line-height:2.4rem}.criteria-select-object-properties-attrib-row{display:flex;width:calc(100% - 2rem);flex-direction:row;flex-wrap:nowrap;overflow:hidden;padding-left:2rem}.criteria-select-object-properties-attrib-row:hover{background-color:var(--object-navigator-criteria-select-object-properties-attribute-row-background-color-hovered)}.criteria-select-object-properties-attrib-row-content{display:inline-flex;width:100%}.criteria-select-object-properties-attrib-row-cell{flex-basis:50%;display:flex;overflow:hidden;text-overflow:ellipsis}.criteria-select-object-properties-attrib-row-cell-label{display:inline-flex}.criteria-select-object-properties-attrib-row-cell-text{overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap}.criteria-select-checkbox input{display:none}.criteria-select-checkbox input:checked+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%230066CC\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked+span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23005BB6\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:checked:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3\" y=\"3\" width=\"12\" height=\"12\" fill=\"%23D3D3D3\"/>%0D%0A<path d=\"M13.0226 7.41421L11.6855 6L8.3428 9.5356L6.33707 7.41416L5 8.82837L8.34269 12.3639L13.0226 7.41421Z\" fill=\"white\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox input:disabled+span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%23D3D3D3\"/>%0D%0A</svg>%0D%0A')}.criteria-select-checkbox span{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"white\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A');width:1.8rem;height:1.8rem;margin-top:.1rem;vertical-align:middle;border:0;background-color:transparent;background-position:-.3rem center;background-size:100% 100%;background-repeat:no-repeat}.criteria-select-checkbox span:hover{background-image:url('data:image/svg+xml,<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A<rect x=\"3.5\" y=\"3.5\" width=\"11\" height=\"11\" fill=\"%23F5F5F5\" stroke=\"%238D8D8D\"/>%0D%0A</svg>%0D%0A')}lib-bimplus-object-structure{--flat-tree-container-background-color-enabled: transparent}\n"] }]
|
|
5092
|
+
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: FormatValuePipe }, { type: DateTimePipe }], propDecorators: { api: [{
|
|
5065
5093
|
type: Input
|
|
5066
5094
|
}], rootObjectId: [{
|
|
5067
5095
|
type: Input
|