ngx-bimplus-components 0.0.158-29371-1 → 0.0.159-28783-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +4 -2
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +19 -3
- package/esm2022/lib/components/bimplus-sidenav-drawer-content/bimplus-sidenav-drawer-content.component.mjs +3 -3
- package/esm2022/lib/components/object-properties/object-properties.component.mjs +14 -7
- package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +3 -3
- package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
- package/fesm2022/ngx-bimplus-components.mjs +36 -12
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.d.ts +3 -0
- package/lib/components/object-properties/object-properties.component.d.ts +6 -2
- package/lib/components/object-properties-header/object-properties-header.interface.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { take } from 'rxjs';
|
|
1
2
|
import { BimplusLocalizedWidgetComponent } from '../bimplus-localized-widget/bimplus-localized-widget.component';
|
|
2
3
|
import { BimplusButtonType, } from './bimplus-buttons-row.interface';
|
|
3
4
|
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
@@ -30,7 +31,8 @@ export class BimplusButtonsRowComponent extends BimplusLocalizedWidgetComponent
|
|
|
30
31
|
}
|
|
31
32
|
_buttonClicked(item) {
|
|
32
33
|
if (item.disabled && this.isObservable(item.disabled)) {
|
|
33
|
-
|
|
34
|
+
// evaluate observable once
|
|
35
|
+
item.disabled.pipe(take(1)).subscribe((disabled) => {
|
|
34
36
|
if (!disabled) {
|
|
35
37
|
this.buttonClicked.emit({ id: item.id });
|
|
36
38
|
}
|
|
@@ -61,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
61
63
|
}], buttonClicked: [{
|
|
62
64
|
type: Output
|
|
63
65
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1idXR0b25zLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9iaW1wbHVzLWJ1dHRvbnMtcm93L2JpbXBsdXMtYnV0dG9ucy1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1idXR0b25zLXJvdy9iaW1wbHVzLWJ1dHRvbnMtcm93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDakgsT0FBTyxFQUdMLGlCQUFpQixHQUNsQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVbEcsTUFBTSxPQUFPLDBCQUEyQixTQUFRLCtCQUErQjtJQVIvRTs7UUFTcUIsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFPdEMsVUFBSyxHQUFHLE1BQU0sQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFFcEQscUJBQWdCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBSTFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO0tBK0J2RTtJQTNDQyw0RUFBNEU7SUFDNUUsb0RBQW9EO0lBQ3BELElBQStCLFVBQVUsQ0FBQyxLQUFrQztRQUMxRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBSUQsSUFBYSxlQUFlLENBQUMsZUFBd0I7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSVMsUUFBUSxDQUFDLEtBQVksRUFBRSxZQUE4QjtRQUM3RCxNQUFNLElBQUksR0FBSSxLQUFLLENBQUMsTUFBdUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLGlEQUFpRDtZQUNqRCxZQUFZLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVTLGNBQWMsQ0FBQyxJQUEwQjtRQUNqRCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN0RCwyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFUyxZQUFZLENBQUMsS0FBb0M7UUFDekQsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksV0FBVyxJQUFJLEtBQUssQ0FBQztJQUMzRCxDQUFDOytHQTdDVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3UUNsQnZDLHEyREE0REEsMHpjRC9DWSxnQkFBZ0IsK0lBQUUsU0FBUzs7NEZBSzFCLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGlCQUd2QixpQkFBaUIsQ0FBQyxTQUFTOzhCQU9YLFVBQVU7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQU1aLGVBQWU7c0JBQTNCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0L2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEJpbXBsdXNCdXR0b25Sb3dJdGVtLFxyXG4gIEJpbXBsdXNCdXR0b25DbGlja0V2ZW50LFxyXG4gIEJpbXBsdXNCdXR0b25UeXBlLFxyXG59IGZyb20gJy4vYmltcGx1cy1idXR0b25zLXJvdy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmltcGx1cy1idXR0b25zLXJvdycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgQXN5bmNQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1idXR0b25zLXJvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JpbXBsdXMtYnV0dG9ucy1yb3cuY29tcG9uZW50Lmxlc3MnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNCdXR0b25zUm93Q29tcG9uZW50IGV4dGVuZHMgQmltcGx1c0xvY2FsaXplZFdpZGdldENvbXBvbmVudCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEJpbXBsdXNCdXR0b25UeXBlID0gQmltcGx1c0J1dHRvblR5cGU7XHJcblxyXG4gIC8qKiBUT0RPIHJlbW92ZSBASW5wdXQgb25jZSBzaWduYWwgaW5wdXRzIHJlbGVhc2UgZnJvbSBkZXZlbG9wZXIgcHJldmlldy4gKi9cclxuICAvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXHJcbiAgQElucHV0KHsgYWxpYXM6ICdpdGVtcycgfSkgc2V0IGl0ZW1zVmFsdWUodmFsdWU6IEFycmF5PEJpbXBsdXNCdXR0b25Sb3dJdGVtPikge1xyXG4gICAgdGhpcy5pdGVtcy5zZXQodmFsdWUpO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXRlbXMgPSBzaWduYWw8QmltcGx1c0J1dHRvblJvd0l0ZW1bXT4oW10pO1xyXG5cclxuICBwcm90ZWN0ZWQgX2NhblVwZGF0ZU9iamVjdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgQElucHV0KCkgc2V0IGNhblVwZGF0ZU9iamVjdChjYW5VcGRhdGVPYmplY3Q6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NhblVwZGF0ZU9iamVjdC5zZXQoY2FuVXBkYXRlT2JqZWN0KTtcclxuICB9XHJcbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlPigpO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxCaW1wbHVzQnV0dG9uQ2xpY2tFdmVudD4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCwgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICBjb25zdCBmaWxlID0gKGV2ZW50LnRhcmdldCBhcyB1bmtub3duIGFzIHsgZmlsZXM6IEZpbGVbXSB9KS5maWxlc1swXTtcclxuXHJcbiAgICBpZiAoZmlsZSkge1xyXG4gICAgICB0aGlzLmZpbGVDaGFuZ2VkLmVtaXQoZmlsZSk7XHJcbiAgICAgIC8vIHJlc2V0IHZhbHVlIHRvIGJlIGFibGUgc2VsZWN0IHNhbWUgdmFsdWUgYWdhaW5cclxuICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2J1dHRvbkNsaWNrZWQoaXRlbTogQmltcGx1c0J1dHRvblJvd0l0ZW0pIHtcclxuICAgIGlmIChpdGVtLmRpc2FibGVkICYmIHRoaXMuaXNPYnNlcnZhYmxlKGl0ZW0uZGlzYWJsZWQpKSB7XHJcbiAgICAgIC8vIGV2YWx1YXRlIG9ic2VydmFibGUgb25jZVxyXG4gICAgICBpdGVtLmRpc2FibGVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChkaXNhYmxlZCkgPT4ge1xyXG4gICAgICAgIGlmICghZGlzYWJsZWQpIHtcclxuICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2tlZC5lbWl0KHsgaWQ6IGl0ZW0uaWQgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGl0ZW0uZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5idXR0b25DbGlja2VkLmVtaXQoeyBpZDogaXRlbS5pZCB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBpc09ic2VydmFibGUodmFsdWU6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBib29sZWFuKTogdmFsdWUgaXMgT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnc3Vic2NyaWJlJyBpbiB2YWx1ZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJ1dHRvbi1yb3dcIj5cclxuICBAZm9yKGl0ZW0gb2YgaXRlbXMoKTsgdHJhY2sgaXRlbS5pZDsgbGV0IGxhc3Q9JGxhc3Q7IGxldCBmaXJzdD0kZmlyc3Q7KSB7XHJcbiAgICBAc3dpdGNoKGl0ZW0udHlwZSkge1xyXG4gICAgICBAY2FzZSAoQmltcGx1c0J1dHRvblR5cGUuRklMRSkge1xyXG4gICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUJ1dHRvbjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGxhc3QsIGZpcnN0IH1cIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfSBAZGVmYXVsdCB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b247IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBsYXN0LCBmaXJzdCB9XCJcclxuICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNmaWxlQnV0dG9uIGxldC1pdGVtIGxldC1sYXN0PVwibGFzdFwiIGxldC1maXJzdD1cImZpcnN0XCI+XHJcbiAgPGlucHV0XHJcbiAgICAjZmlsZUlucHV0XHJcbiAgICBoaWRkZW5cclxuICAgIHR5cGU9XCJmaWxlXCJcclxuICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50LCBmaWxlSW5wdXQpXCJcclxuICAgIFtpZF09XCJpdGVtLmlkXCJcclxuICAvPlxyXG4gIDxuZy1jb250YWluZXJcclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXHJcbiAgICAgIGJ1dHRvbjtcclxuICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGxhc3QsIGZpcnN0LCBmaWxlSW5wdXQgfVxyXG4gICAgXCJcclxuICA+PC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICAjYnV0dG9uXHJcbiAgbGV0LWl0ZW1cclxuICBsZXQtbGFzdD1cImxhc3RcIlxyXG4gIGxldC1maXJzdD1cImZpcnN0XCJcclxuICBsZXQtZmlsZUlucHV0PVwiZmlsZUlucHV0XCJcclxuPlxyXG4gIDxidXR0b25cclxuICAgIGRhdGEtdGVzdD1cImJ1dHRvblwiXHJcbiAgICBbY2xhc3MubGFzdF09XCJsYXN0XCJcclxuICAgIFtjbGFzcy5maXJzdF09XCJmaXJzdFwiXHJcbiAgICBbY2xhc3MucHJpbWFyeS1idXR0b25dPVwiXHJcbiAgICAgIGl0ZW0uYnV0dG9uU3R5bGUgPT09IHVuZGVmaW5lZCB8fCBpdGVtLmJ1dHRvblN0eWxlID09PSAncHJpbWFyeSdcclxuICAgIFwiXHJcbiAgICBbY2xhc3Muc2Vjb25kYXJ5LWJ1dHRvbl09XCJpdGVtLmJ1dHRvblN0eWxlID09PSAnc2Vjb25kYXJ5J1wiXHJcbiAgICBbY2xhc3MudGV4dC1idXR0b25dPVwiXHJcbiAgICAgIGl0ZW0uYnV0dG9uVHlwZSA9PT0gdW5kZWZpbmVkIHx8IGl0ZW0uYnV0dG9uVHlwZSA9PT0gJ3RleHQnXHJcbiAgICBcIlxyXG4gICAgW2NsYXNzLmljb24tYnV0dG9uXT1cIml0ZW0uYnV0dG9uVHlwZSA9PT0gJ2ljb24nXCJcclxuICAgIFtjbGFzcy5jb21iaW5lZC1idXR0b25dPVwiaXRlbS5idXR0b25UeXBlID09PSAnY29tYmluZWQnXCJcclxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkID09PSB0cnVlXCJcclxuICAgIChjbGljayk9XCJmaWxlSW5wdXQgPyBmaWxlSW5wdXQuY2xpY2soKSA6IF9idXR0b25DbGlja2VkKGl0ZW0pXCJcclxuICAgIHRpdGxlPVwie3sgaXRlbS50b29sdGlwIH19XCJcclxuICAgIFtkaXNhYmxlZF09XCJpc09ic2VydmFibGUoaXRlbS5kaXNhYmxlZCkgPyAhIShpdGVtLmRpc2FibGVkIHwgYXN5bmMpIDogISFpdGVtLmRpc2FibGVkXCJcclxuICA+XHJcbiAgICB7eyBpdGVtLnRpdGxlIH19XHJcbiAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs
CHANGED
|
@@ -32,6 +32,7 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
32
32
|
this.activeFilterSubject$ = new BehaviorSubject(null);
|
|
33
33
|
this.filters = null;
|
|
34
34
|
this.filterCriteria = [];
|
|
35
|
+
this.filterCriteriaChanged = false;
|
|
35
36
|
this.maxFilterCriteria = MaxFilterCriteria;
|
|
36
37
|
this.api = null;
|
|
37
38
|
this.projectId = '';
|
|
@@ -69,6 +70,8 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
69
70
|
return this.activeFilterTypeSubject$.getValue();
|
|
70
71
|
}
|
|
71
72
|
set activeFilter(filter) {
|
|
73
|
+
// New active filter is selected. Apply filter button should be enabled
|
|
74
|
+
this.filterCriteriaChanged = true;
|
|
72
75
|
if (filter && !filter.id) { // Switching to custom filter will restore the default custom filter
|
|
73
76
|
this._setDefaultCustomFilterString(filter);
|
|
74
77
|
}
|
|
@@ -125,6 +128,8 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
125
128
|
deleteFilterCriterium(index) {
|
|
126
129
|
this.filterCriteria.splice(index, 1);
|
|
127
130
|
this.filterCriteria = [...this.filterCriteria];
|
|
131
|
+
// Filter criteria was removed. Apply filter button should be enabled
|
|
132
|
+
this.filterCriteriaChanged = true;
|
|
128
133
|
this.activateModifiedCustomFilter();
|
|
129
134
|
}
|
|
130
135
|
setFilterCriteriaSelectionMode(mode) {
|
|
@@ -132,6 +137,11 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
132
137
|
this.filterCriteriaSelectionMode$.next(isSameMode ? FilterCriteriaSelectionMode.None : mode);
|
|
133
138
|
this.handlePipetteActiveStatus(!isSameMode);
|
|
134
139
|
}
|
|
140
|
+
applyFilterDisabled() {
|
|
141
|
+
// Apply filter button should be disabled when no filter criteria are selected
|
|
142
|
+
// or filter criteria was already applied and no new criteria was selected
|
|
143
|
+
return this.filterCriteria.length === 0 || !this.filterCriteriaChanged;
|
|
144
|
+
}
|
|
135
145
|
applyFilter() {
|
|
136
146
|
this.handlePipetteActiveStatus(false /* disable pipette cursor */);
|
|
137
147
|
this.filterCriteriaSelectionMode$.next(FilterCriteriaSelectionMode.None);
|
|
@@ -159,6 +169,10 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
159
169
|
handlePipetteActiveStatus(status) {
|
|
160
170
|
this.pipetteActiveStatus.emit(status);
|
|
161
171
|
}
|
|
172
|
+
filterCriteriaWasChanged( /*filterCriteria: FilterCriterium[]*/) {
|
|
173
|
+
// Some new filter criteria was selected. Apply filter button should be enabled
|
|
174
|
+
this.filterCriteriaChanged = true;
|
|
175
|
+
}
|
|
162
176
|
activateModifiedCustomFilter() {
|
|
163
177
|
// When existing filter is changed, Custom filter will be selected and filter settings need to be cloned. Nothing is done when custom filter is already active
|
|
164
178
|
if (this.activeFilter?.id && this.filters) {
|
|
@@ -181,6 +195,8 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
181
195
|
next: (filterResult) => {
|
|
182
196
|
this._filterResult = filterResult;
|
|
183
197
|
this.isLoadingResults = false;
|
|
198
|
+
// Fetching new results finished. Apply filter button should be disabled
|
|
199
|
+
this.filterCriteriaChanged = false;
|
|
184
200
|
}
|
|
185
201
|
});
|
|
186
202
|
}
|
|
@@ -204,7 +220,7 @@ export class BimplusObjectNavigatorComponent extends BimplusLocalizedWidgetCompo
|
|
|
204
220
|
return filter;
|
|
205
221
|
}
|
|
206
222
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectNavigatorComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusObjectNavigatorComponent, isStandalone: true, selector: "lib-bimplus-object-navigator", inputs: { hideFilterContextMenu: "hideFilterContextMenu", filterContextMenu: "filterContextMenu", filterTypes: "filterTypes", filters: "filters", api: "api", projectId: "projectId", selectedObjectId: "selectedObjectId", selectedRevision: "selectedRevision", selectedObjects: "selectedObjects", selectionObject: "selectionObject" }, outputs: { filterCriteriaSelectionModeChanged: "filterCriteriaSelectionModeChanged", filterResultObjectSelectionChanged: "filterResultObjectSelectionChanged", filterResultObjectDoubleClicked: "filterResultObjectDoubleClicked", filterResultObjectMouseEntered: "filterResultObjectMouseEntered", filterResultObjectMouseLeft: "filterResultObjectMouseLeft", pipetteActiveStatus: "pipetteActiveStatus" }, host: { properties: { "class.object-navigator": "this.objNavClassClass" } }, usesInheritance: true, ngImport: i0, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\"\r\n [isLoading]=\"isLoadingResults\"\r\n [loadingSpinnerText]=\"'_Loading_Filter_Results' | translate\"\r\n>\r\n <div class=\"object-navigator-content-container\">\r\n @if(filterTypes.length > 0){\r\n <div class=\"description\">\r\n {{\"_Select_an_object_using_Object_Picker\" | translate}}\r\n </div>\r\n <div class=\"object-navigator-filters-type\">\r\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n <div class=\"object-navigator-filters-name\">\r\n <ng-select data-test=\"object-navigator-filters-name-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\r\n </ng-select>\r\n\r\n @if(!hideFilterContextMenu){\r\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\r\n [items]=\"filterContextMenu\"\r\n *ngIf=\"filterContextMenu?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n }\r\n\r\n </div>\r\n\r\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-navigator-filter-criteria-header\">\r\n {{ \"_Assign_Objects_Selection_Mode\" | translate }} ({{ filterCriteria.length }}/{{ maxFilterCriteria }})\r\n </span>\r\n <lib-expansion-panel-header-actions>\r\n <div class=\"object-navigator-pick-object-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n (keypress)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n [title]=\"'_Object_Picker'| translate\"\r\n ></div>\r\n </lib-expansion-panel-header-actions>\r\n </lib-expansion-panel-header>\r\n\r\n <div class=\"filter-criteria-container\">\r\n @for (criterium of filterCriteria; track criterium; let i = $index) {\r\n <app-filter-criterium\r\n [criterium] = \"criterium\"\r\n [indent]=\"i*0.8\"\r\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\r\n ></app-filter-criterium>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(!selectedObjectId){\r\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\r\n }\r\n }\r\n }\r\n\r\n <div class=\"object-navigator-apply-button-row\">\r\n <button class=\"primary-button\" \r\n [ngClass]=\"{'disabled': filterCriteria.length===0}\"\r\n [disabled]=\"filterCriteria.length===0\"\r\n (click)=\"applyFilter()\"\r\n > \r\n {{\"_Apply filter\" | translate}}\r\n </button>\r\n </div>\r\n\r\n <div class=\"object-navigator-separator\"></div>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(selectedObjectId){\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-criteria-select-object-properties\r\n [api]=\"api\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [localizedStrings]=\"localizedStrings\"\r\n [(filterCriteria)]=\"filterCriteria\"\r\n [rootObjectId]=\"selectedObjectId\"\r\n [revision]=\"selectedRevision\"\r\n (filterCriteriaChange)=\"activateModifiedCustomFilter()\"\r\n >\r\n </lib-criteria-select-object-properties>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n @case(FilterCriteriaSelectionMode.SelectAttributes){\r\n\r\n }\r\n @default{\r\n @if (filterResult) {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-object-filter-result\r\n [filterResult]=\"filterResult\"\r\n [selectedObjects]=\"selectedObjects\"\r\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\r\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\r\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\r\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\r\n ></lib-object-filter-result>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @else {\r\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No_visible_models_found\" | translate}} </div>\r\n }\r\n </div>\r\n</lib-bimplus-sidenav-drawer-content>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:var(--select-container-open-background-color-enabled);border-color:var(--select-container-open-border-color-enabled)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent var(--select-container-open-arrow-border-color-enabled);border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent var(--select-container-open-arrow-border-color-hovered)}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:var(--select-container-background-color-disabled)}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:var(--select-container-text-color-enabled);background-color:var(--select-container-background-color-enabled);border-radius:0;border:1px solid var(--select-container-border-color-enabled);min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px 0 var(--select-container-box-shadow-color-hovered);background-color:var(--select-container-background-color-hovered)}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--select-container-placeholder-text-color-enabled)}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:var(--select-multiple-disabled-container-value-background-color-enabled);border:1px solid var(--select-multiple-disabled-container-value-border-color-enabled)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:var(--select-multiple-container-value-text-color-enabled);background-color:var(--select-multiple-container-value-background-color-enabled);border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:var(--select-multiple-container-value-background-color-disabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--select-multiple-container-value-icon-background-color-hovered)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:var(--select-multiple-container-value-input-text-color-enabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:var(--select-clear-wrapper-text-color-enabled)}.ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--select-clear-wrapper-text-color-hovered)}.ng-select .ng-clear-wrapper:focus .ng-clear{color:var(--select-clear-wrapper-text-color-focused)}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:var(--select-arrow-wrapper-border-color-hovored)}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:var(--select-arrow-wrapper-border-color-enabled) transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:var(--dropdown-panel-background-color-enabled);border:1px solid var(--dropdown-panel-border-color-enabled);box-shadow:0 1px 0 var(--dropdown-panel-box-shadow-color-enabled);left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-top-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-right-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:var(--dropdown-panel-select-bottom-border-color-enabled);margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-left-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid var(--dropdown-panel-header-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid var(--dropdown-panel-footer-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:var(--dropdown-panel-items-text-color-enabled);cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected-background-color-enabled);font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:var(--dropdown-panel-items-option-background-color-enabled);color:var(--dropdown-panel-items-option-text-color-enabled);padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected2-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected2-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled);color:var(--dropdown-panel-items-marked-text-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--dropdown-panel-items-text-color-disabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;padding:.2rem 1rem .4rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem var(--primary-button-border-color-enabled);color:var(--primary-button-text-color-enabled);background-color:var(--primary-button-background-color-enabled);cursor:pointer}.primary-button:hover{border:solid .2rem var(--primary-button-border-color-hovered);color:var(--primary-button-text-color-hovered);background-color:var(--primary-button-background-color-hovered);outline:0}.primary-button:disabled,.primary-button:disabled:active,.primary-button.disabled{border:solid .2rem var(--primary-button-border-color-disabled);color:var(--primary-button-text-color-disabled);background-color:var(--primary-button-background-color-disabled);cursor:default}.primary-button:active{border:solid .2rem var(--primary-button-border-color-pressed);color:var(--primary-button-text-color-pressed);background-color:var(--primary-button-background-color-pressed);cursor:default}:host{display:flex}lib-bimplus-sidenav-drawer-content{width:100%;max-height:100%;display:flex;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container{display:flex;flex-direction:column;width:100%;max-height:100%;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container lib-object-filter-result{--bimplus-object-filter-result-background-color: transparent}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.description{margin-bottom:.8rem;font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-no-filter-types{font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filter-criteria-panel{flex:0;padding-top:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-apply-button-row{flex:0;display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-separator{flex:0;border-top:solid .078125em var(--object-navigator-separator-border-color-enabled);padding-bottom:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container{position:relative;flex:1;width:100%;display:flex;flex-direction:column}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container>lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:12rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.70697 10.707L7.29297 16.293C7.4805 16.4805 7.73481 16.5858 7.99997 16.5858C8.26514 16.5858 8.51944 16.4805 8.70697 16.293L15.415 9.586C15.7897 9.21085 16.0001 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.82997C9.29958 2.00011 8.79096 2.2109 8.41597 2.586L1.70697 9.293C1.5195 9.48053 1.41418 9.73484 1.41418 10C1.41418 10.2652 1.5195 10.5195 1.70697 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4695 4 10.9608 4.21071 10.5858 4.58579C10.2107 4.96086 9.99997 5.46957 9.99997 6C9.99997 6.53043 10.2107 7.03914 10.5858 7.41421C10.9608 7.78929 11.4695 8 12 8Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button.active{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.707 10.707L7.293 16.293C7.48053 16.4805 7.73484 16.5858 8 16.5858C8.26517 16.5858 8.51947 16.4805 8.707 16.293L15.415 9.586C15.7897 9.21085 16.0002 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.83C9.29961 2.00011 8.79099 2.2109 8.416 2.586L1.707 9.293C1.51953 9.48053 1.41422 9.73484 1.41422 10C1.41422 10.2652 1.51953 10.5195 1.707 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4696 4 10.9609 4.21071 10.5858 4.58579C10.2107 4.96086 10 5.46957 10 6C10 6.53043 10.2107 7.03914 10.5858 7.41421C10.9609 7.78929 11.4696 8 12 8Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-pick-object-button.active{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<path d=\"M2.80001 12.4C4.00001 13.6 1.50001 15.4 2.10001 16C2.60001 16.5 4.60001 14.2 5.70001 15.3L11.3 9.69997L8.40001 6.69997C8.40001 6.69997 3.80001 11.4 2.80001 12.4ZM8.40001 11L7.00001 9.59997L8.40001 8.19997L9.80001 9.59997L8.40001 11ZM12.6 2.59997L10.6 4.59997L9.90001 3.89997L8.40001 5.29997L12.7 9.59997L14.1 8.19997L13.4 7.49997L15.4 5.49997C17.2 3.59997 14.4 0.799974 12.6 2.59997Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}lib-object-filter-result{--flat-tree-container-background-color-enabled: transparent}#NoObjectSelected{margin:.8rem;line-height:.72rem;font-size:1.2rem}#NoObjectSelected+.object-navigator-apply-button-row{margin-top:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "component", type: FilterCriteriumComponent, selector: "app-filter-criterium", inputs: ["criterium", "indent"], outputs: ["deleteCriterium"] }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelHeaderActionsComponent, selector: "lib-expansion-panel-header-actions" }, { kind: "component", type: BimplusSidenavDrawerContentComponent, selector: "lib-bimplus-sidenav-drawer-content", inputs: ["header", "isLoading", "loadingSpinnerText"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: CriteriaSelectObjectPropertiesComponent, selector: "lib-criteria-select-object-properties", inputs: ["api", "rootObjectId", "revision", "filterCriteria"], outputs: ["filterCriteriaChange"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"], outputs: ["triggerSelected"] }, { kind: "component", type: ObjectFilterResultComponent, selector: "lib-object-filter-result", inputs: ["filterResult", "selectedObjects"], outputs: ["nodeSelectionChanged", "nodeDoubleClicked", "nodeMouseEntered", "nodeMouseLeft"] }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: BimplusObjectNavigatorComponent, isStandalone: true, selector: "lib-bimplus-object-navigator", inputs: { hideFilterContextMenu: "hideFilterContextMenu", filterContextMenu: "filterContextMenu", filterTypes: "filterTypes", filters: "filters", api: "api", projectId: "projectId", selectedObjectId: "selectedObjectId", selectedRevision: "selectedRevision", selectedObjects: "selectedObjects", selectionObject: "selectionObject" }, outputs: { filterCriteriaSelectionModeChanged: "filterCriteriaSelectionModeChanged", filterResultObjectSelectionChanged: "filterResultObjectSelectionChanged", filterResultObjectDoubleClicked: "filterResultObjectDoubleClicked", filterResultObjectMouseEntered: "filterResultObjectMouseEntered", filterResultObjectMouseLeft: "filterResultObjectMouseLeft", pipetteActiveStatus: "pipetteActiveStatus" }, host: { properties: { "class.object-navigator": "this.objNavClassClass" } }, usesInheritance: true, ngImport: i0, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\"\r\n [isLoading]=\"isLoadingResults\"\r\n [loadingSpinnerText]=\"'_Loading_Filter_Results' | translate\"\r\n>\r\n <div class=\"object-navigator-content-container\">\r\n @if(filterTypes.length > 0){\r\n <div class=\"description\">\r\n {{\"_Select_an_object_using_Object_Picker\" | translate}}\r\n </div>\r\n <div class=\"object-navigator-filters-type\">\r\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n <div class=\"object-navigator-filters-name\">\r\n <ng-select data-test=\"object-navigator-filters-name-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\r\n </ng-select>\r\n\r\n @if(!hideFilterContextMenu){\r\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\r\n [items]=\"filterContextMenu\"\r\n *ngIf=\"filterContextMenu?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n }\r\n\r\n </div>\r\n\r\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-navigator-filter-criteria-header\">\r\n {{ \"_Assign_Objects_Selection_Mode\" | translate }} ({{ filterCriteria.length }}/{{ maxFilterCriteria }})\r\n </span>\r\n <lib-expansion-panel-header-actions>\r\n <div class=\"object-navigator-pick-object-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n (keypress)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n [title]=\"'_Object_Picker'| translate\"\r\n ></div>\r\n </lib-expansion-panel-header-actions>\r\n </lib-expansion-panel-header>\r\n\r\n <div class=\"filter-criteria-container\">\r\n @for (criterium of filterCriteria; track criterium; let i = $index) {\r\n <app-filter-criterium\r\n [criterium] = \"criterium\"\r\n [indent]=\"i*0.8\"\r\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\r\n ></app-filter-criterium>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(!selectedObjectId){\r\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\r\n }\r\n }\r\n }\r\n\r\n <div class=\"object-navigator-apply-button-row\">\r\n <button class=\"primary-button\" \r\n [class.disabled]=\"applyFilterDisabled()\"\r\n [disabled]=\"applyFilterDisabled()\"\r\n (click)=\"applyFilter()\"\r\n > \r\n {{\"_Apply filter\" | translate}}\r\n </button>\r\n </div>\r\n\r\n <div class=\"object-navigator-separator\"></div>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(selectedObjectId){\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-criteria-select-object-properties\r\n [api]=\"api\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [localizedStrings]=\"localizedStrings\"\r\n [(filterCriteria)]=\"filterCriteria\"\r\n [rootObjectId]=\"selectedObjectId\"\r\n [revision]=\"selectedRevision\"\r\n (filterCriteriaChange)=\"filterCriteriaWasChanged()\"\r\n >\r\n </lib-criteria-select-object-properties>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n @case(FilterCriteriaSelectionMode.SelectAttributes){\r\n\r\n }\r\n @default{\r\n @if (filterResult) {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-object-filter-result\r\n [filterResult]=\"filterResult\"\r\n [selectedObjects]=\"selectedObjects\"\r\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\r\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\r\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\r\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\r\n ></lib-object-filter-result>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @else {\r\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No_visible_models_found\" | translate}} </div>\r\n }\r\n </div>\r\n</lib-bimplus-sidenav-drawer-content>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:var(--select-container-open-background-color-enabled);border-color:var(--select-container-open-border-color-enabled)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent var(--select-container-open-arrow-border-color-enabled);border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent var(--select-container-open-arrow-border-color-hovered)}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:var(--select-container-background-color-disabled)}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:var(--select-container-text-color-enabled);background-color:var(--select-container-background-color-enabled);border-radius:0;border:1px solid var(--select-container-border-color-enabled);min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px 0 var(--select-container-box-shadow-color-hovered);background-color:var(--select-container-background-color-hovered)}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--select-container-placeholder-text-color-enabled)}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:var(--select-multiple-disabled-container-value-background-color-enabled);border:1px solid var(--select-multiple-disabled-container-value-border-color-enabled)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:var(--select-multiple-container-value-text-color-enabled);background-color:var(--select-multiple-container-value-background-color-enabled);border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:var(--select-multiple-container-value-background-color-disabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--select-multiple-container-value-icon-background-color-hovered)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:var(--select-multiple-container-value-input-text-color-enabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:var(--select-clear-wrapper-text-color-enabled)}.ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--select-clear-wrapper-text-color-hovered)}.ng-select .ng-clear-wrapper:focus .ng-clear{color:var(--select-clear-wrapper-text-color-focused)}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:var(--select-arrow-wrapper-border-color-hovored)}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:var(--select-arrow-wrapper-border-color-enabled) transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:var(--dropdown-panel-background-color-enabled);border:1px solid var(--dropdown-panel-border-color-enabled);box-shadow:0 1px 0 var(--dropdown-panel-box-shadow-color-enabled);left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-top-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-right-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:var(--dropdown-panel-select-bottom-border-color-enabled);margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-left-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid var(--dropdown-panel-header-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid var(--dropdown-panel-footer-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:var(--dropdown-panel-items-text-color-enabled);cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected-background-color-enabled);font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:var(--dropdown-panel-items-option-background-color-enabled);color:var(--dropdown-panel-items-option-text-color-enabled);padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected2-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected2-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled);color:var(--dropdown-panel-items-marked-text-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--dropdown-panel-items-text-color-disabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;padding:.2rem 1rem .4rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem var(--primary-button-border-color-enabled);color:var(--primary-button-text-color-enabled);background-color:var(--primary-button-background-color-enabled);cursor:pointer}.primary-button:hover{border:solid .2rem var(--primary-button-border-color-hovered);color:var(--primary-button-text-color-hovered);background-color:var(--primary-button-background-color-hovered);outline:0}.primary-button:disabled,.primary-button:disabled:active,.primary-button.disabled{border:solid .2rem var(--primary-button-border-color-disabled);color:var(--primary-button-text-color-disabled);background-color:var(--primary-button-background-color-disabled);cursor:default}.primary-button:active{border:solid .2rem var(--primary-button-border-color-pressed);color:var(--primary-button-text-color-pressed);background-color:var(--primary-button-background-color-pressed);cursor:default}:host{display:flex}lib-bimplus-sidenav-drawer-content{width:100%;max-height:100%;display:flex;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container{display:flex;flex-direction:column;width:100%;max-height:100%;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container lib-object-filter-result{--bimplus-object-filter-result-background-color: transparent}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.description{margin-bottom:.8rem;font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-no-filter-types{font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filter-criteria-panel{flex:0;padding-top:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-apply-button-row{flex:0;display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-separator{flex:0;border-top:solid .078125em var(--object-navigator-separator-border-color-enabled);padding-bottom:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container{position:relative;flex:1;width:100%;display:flex;flex-direction:column}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container>lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:12rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.70697 10.707L7.29297 16.293C7.4805 16.4805 7.73481 16.5858 7.99997 16.5858C8.26514 16.5858 8.51944 16.4805 8.70697 16.293L15.415 9.586C15.7897 9.21085 16.0001 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.82997C9.29958 2.00011 8.79096 2.2109 8.41597 2.586L1.70697 9.293C1.5195 9.48053 1.41418 9.73484 1.41418 10C1.41418 10.2652 1.5195 10.5195 1.70697 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4695 4 10.9608 4.21071 10.5858 4.58579C10.2107 4.96086 9.99997 5.46957 9.99997 6C9.99997 6.53043 10.2107 7.03914 10.5858 7.41421C10.9608 7.78929 11.4695 8 12 8Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button.active{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.707 10.707L7.293 16.293C7.48053 16.4805 7.73484 16.5858 8 16.5858C8.26517 16.5858 8.51947 16.4805 8.707 16.293L15.415 9.586C15.7897 9.21085 16.0002 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.83C9.29961 2.00011 8.79099 2.2109 8.416 2.586L1.707 9.293C1.51953 9.48053 1.41422 9.73484 1.41422 10C1.41422 10.2652 1.51953 10.5195 1.707 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4696 4 10.9609 4.21071 10.5858 4.58579C10.2107 4.96086 10 5.46957 10 6C10 6.53043 10.2107 7.03914 10.5858 7.41421C10.9609 7.78929 11.4696 8 12 8Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-pick-object-button.active{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<path d=\"M2.80001 12.4C4.00001 13.6 1.50001 15.4 2.10001 16C2.60001 16.5 4.60001 14.2 5.70001 15.3L11.3 9.69997L8.40001 6.69997C8.40001 6.69997 3.80001 11.4 2.80001 12.4ZM8.40001 11L7.00001 9.59997L8.40001 8.19997L9.80001 9.59997L8.40001 11ZM12.6 2.59997L10.6 4.59997L9.90001 3.89997L8.40001 5.29997L12.7 9.59997L14.1 8.19997L13.4 7.49997L15.4 5.49997C17.2 3.59997 14.4 0.799974 12.6 2.59997Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}lib-object-filter-result{--flat-tree-container-background-color-enabled: transparent}#NoObjectSelected{margin:.8rem;line-height:.72rem;font-size:1.2rem}#NoObjectSelected+.object-navigator-apply-button-row{margin-top:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "component", type: FilterCriteriumComponent, selector: "app-filter-criterium", inputs: ["criterium", "indent"], outputs: ["deleteCriterium"] }, { kind: "component", type: ExpansionPanelComponent, selector: "lib-expansion-panel", inputs: ["expanded"] }, { kind: "component", type: ExpansionPanelHeaderComponent, selector: "lib-expansion-panel-header" }, { kind: "component", type: ExpansionPanelHeaderActionsComponent, selector: "lib-expansion-panel-header-actions" }, { kind: "component", type: BimplusSidenavDrawerContentComponent, selector: "lib-bimplus-sidenav-drawer-content", inputs: ["header", "isLoading", "loadingSpinnerText"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: CriteriaSelectObjectPropertiesComponent, selector: "lib-criteria-select-object-properties", inputs: ["api", "rootObjectId", "revision", "filterCriteria"], outputs: ["filterCriteriaChange"] }, { kind: "component", type: BimplusContextMenuComponent, selector: "lib-bimplus-context-menu", inputs: ["showIcons", "triggerTitle", "items", "data"], outputs: ["triggerSelected"] }, { kind: "component", type: ObjectFilterResultComponent, selector: "lib-object-filter-result", inputs: ["filterResult", "selectedObjects"], outputs: ["nodeSelectionChanged", "nodeDoubleClicked", "nodeMouseEntered", "nodeMouseLeft"] }, { kind: "component", type: BimplusScrollableContainerComponent, selector: "lib-bimplus-scrollable-container" }], encapsulation: i0.ViewEncapsulation.ShadowDom }); }
|
|
208
224
|
}
|
|
209
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BimplusObjectNavigatorComponent, decorators: [{
|
|
210
226
|
type: Component,
|
|
@@ -221,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
221
237
|
BimplusContextMenuComponent,
|
|
222
238
|
ObjectFilterResultComponent,
|
|
223
239
|
BimplusScrollableContainerComponent
|
|
224
|
-
], encapsulation: ViewEncapsulation.ShadowDom, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\"\r\n [isLoading]=\"isLoadingResults\"\r\n [loadingSpinnerText]=\"'_Loading_Filter_Results' | translate\"\r\n>\r\n <div class=\"object-navigator-content-container\">\r\n @if(filterTypes.length > 0){\r\n <div class=\"description\">\r\n {{\"_Select_an_object_using_Object_Picker\" | translate}}\r\n </div>\r\n <div class=\"object-navigator-filters-type\">\r\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n <div class=\"object-navigator-filters-name\">\r\n <ng-select data-test=\"object-navigator-filters-name-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\r\n </ng-select>\r\n\r\n @if(!hideFilterContextMenu){\r\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\r\n [items]=\"filterContextMenu\"\r\n *ngIf=\"filterContextMenu?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n }\r\n\r\n </div>\r\n\r\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-navigator-filter-criteria-header\">\r\n {{ \"_Assign_Objects_Selection_Mode\" | translate }} ({{ filterCriteria.length }}/{{ maxFilterCriteria }})\r\n </span>\r\n <lib-expansion-panel-header-actions>\r\n <div class=\"object-navigator-pick-object-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n (keypress)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n [title]=\"'_Object_Picker'| translate\"\r\n ></div>\r\n </lib-expansion-panel-header-actions>\r\n </lib-expansion-panel-header>\r\n\r\n <div class=\"filter-criteria-container\">\r\n @for (criterium of filterCriteria; track criterium; let i = $index) {\r\n <app-filter-criterium\r\n [criterium] = \"criterium\"\r\n [indent]=\"i*0.8\"\r\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\r\n ></app-filter-criterium>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(!selectedObjectId){\r\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\r\n }\r\n }\r\n }\r\n\r\n <div class=\"object-navigator-apply-button-row\">\r\n <button class=\"primary-button\" \r\n [ngClass]=\"{'disabled': filterCriteria.length===0}\"\r\n [disabled]=\"filterCriteria.length===0\"\r\n (click)=\"applyFilter()\"\r\n > \r\n {{\"_Apply filter\" | translate}}\r\n </button>\r\n </div>\r\n\r\n <div class=\"object-navigator-separator\"></div>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(selectedObjectId){\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-criteria-select-object-properties\r\n [api]=\"api\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [localizedStrings]=\"localizedStrings\"\r\n [(filterCriteria)]=\"filterCriteria\"\r\n [rootObjectId]=\"selectedObjectId\"\r\n [revision]=\"selectedRevision\"\r\n (filterCriteriaChange)=\"activateModifiedCustomFilter()\"\r\n >\r\n </lib-criteria-select-object-properties>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n @case(FilterCriteriaSelectionMode.SelectAttributes){\r\n\r\n }\r\n @default{\r\n @if (filterResult) {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-object-filter-result\r\n [filterResult]=\"filterResult\"\r\n [selectedObjects]=\"selectedObjects\"\r\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\r\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\r\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\r\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\r\n ></lib-object-filter-result>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @else {\r\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No_visible_models_found\" | translate}} </div>\r\n }\r\n </div>\r\n</lib-bimplus-sidenav-drawer-content>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:var(--select-container-open-background-color-enabled);border-color:var(--select-container-open-border-color-enabled)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent var(--select-container-open-arrow-border-color-enabled);border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent var(--select-container-open-arrow-border-color-hovered)}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:var(--select-container-background-color-disabled)}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:var(--select-container-text-color-enabled);background-color:var(--select-container-background-color-enabled);border-radius:0;border:1px solid var(--select-container-border-color-enabled);min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px 0 var(--select-container-box-shadow-color-hovered);background-color:var(--select-container-background-color-hovered)}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--select-container-placeholder-text-color-enabled)}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:var(--select-multiple-disabled-container-value-background-color-enabled);border:1px solid var(--select-multiple-disabled-container-value-border-color-enabled)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:var(--select-multiple-container-value-text-color-enabled);background-color:var(--select-multiple-container-value-background-color-enabled);border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:var(--select-multiple-container-value-background-color-disabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--select-multiple-container-value-icon-background-color-hovered)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:var(--select-multiple-container-value-input-text-color-enabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:var(--select-clear-wrapper-text-color-enabled)}.ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--select-clear-wrapper-text-color-hovered)}.ng-select .ng-clear-wrapper:focus .ng-clear{color:var(--select-clear-wrapper-text-color-focused)}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:var(--select-arrow-wrapper-border-color-hovored)}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:var(--select-arrow-wrapper-border-color-enabled) transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:var(--dropdown-panel-background-color-enabled);border:1px solid var(--dropdown-panel-border-color-enabled);box-shadow:0 1px 0 var(--dropdown-panel-box-shadow-color-enabled);left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-top-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-right-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:var(--dropdown-panel-select-bottom-border-color-enabled);margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-left-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid var(--dropdown-panel-header-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid var(--dropdown-panel-footer-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:var(--dropdown-panel-items-text-color-enabled);cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected-background-color-enabled);font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:var(--dropdown-panel-items-option-background-color-enabled);color:var(--dropdown-panel-items-option-text-color-enabled);padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected2-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected2-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled);color:var(--dropdown-panel-items-marked-text-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--dropdown-panel-items-text-color-disabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;padding:.2rem 1rem .4rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem var(--primary-button-border-color-enabled);color:var(--primary-button-text-color-enabled);background-color:var(--primary-button-background-color-enabled);cursor:pointer}.primary-button:hover{border:solid .2rem var(--primary-button-border-color-hovered);color:var(--primary-button-text-color-hovered);background-color:var(--primary-button-background-color-hovered);outline:0}.primary-button:disabled,.primary-button:disabled:active,.primary-button.disabled{border:solid .2rem var(--primary-button-border-color-disabled);color:var(--primary-button-text-color-disabled);background-color:var(--primary-button-background-color-disabled);cursor:default}.primary-button:active{border:solid .2rem var(--primary-button-border-color-pressed);color:var(--primary-button-text-color-pressed);background-color:var(--primary-button-background-color-pressed);cursor:default}:host{display:flex}lib-bimplus-sidenav-drawer-content{width:100%;max-height:100%;display:flex;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container{display:flex;flex-direction:column;width:100%;max-height:100%;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container lib-object-filter-result{--bimplus-object-filter-result-background-color: transparent}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.description{margin-bottom:.8rem;font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-no-filter-types{font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filter-criteria-panel{flex:0;padding-top:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-apply-button-row{flex:0;display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-separator{flex:0;border-top:solid .078125em var(--object-navigator-separator-border-color-enabled);padding-bottom:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container{position:relative;flex:1;width:100%;display:flex;flex-direction:column}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container>lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:12rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.70697 10.707L7.29297 16.293C7.4805 16.4805 7.73481 16.5858 7.99997 16.5858C8.26514 16.5858 8.51944 16.4805 8.70697 16.293L15.415 9.586C15.7897 9.21085 16.0001 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.82997C9.29958 2.00011 8.79096 2.2109 8.41597 2.586L1.70697 9.293C1.5195 9.48053 1.41418 9.73484 1.41418 10C1.41418 10.2652 1.5195 10.5195 1.70697 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4695 4 10.9608 4.21071 10.5858 4.58579C10.2107 4.96086 9.99997 5.46957 9.99997 6C9.99997 6.53043 10.2107 7.03914 10.5858 7.41421C10.9608 7.78929 11.4695 8 12 8Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button.active{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.707 10.707L7.293 16.293C7.48053 16.4805 7.73484 16.5858 8 16.5858C8.26517 16.5858 8.51947 16.4805 8.707 16.293L15.415 9.586C15.7897 9.21085 16.0002 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.83C9.29961 2.00011 8.79099 2.2109 8.416 2.586L1.707 9.293C1.51953 9.48053 1.41422 9.73484 1.41422 10C1.41422 10.2652 1.51953 10.5195 1.707 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4696 4 10.9609 4.21071 10.5858 4.58579C10.2107 4.96086 10 5.46957 10 6C10 6.53043 10.2107 7.03914 10.5858 7.41421C10.9609 7.78929 11.4696 8 12 8Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-pick-object-button.active{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<path d=\"M2.80001 12.4C4.00001 13.6 1.50001 15.4 2.10001 16C2.60001 16.5 4.60001 14.2 5.70001 15.3L11.3 9.69997L8.40001 6.69997C8.40001 6.69997 3.80001 11.4 2.80001 12.4ZM8.40001 11L7.00001 9.59997L8.40001 8.19997L9.80001 9.59997L8.40001 11ZM12.6 2.59997L10.6 4.59997L9.90001 3.89997L8.40001 5.29997L12.7 9.59997L14.1 8.19997L13.4 7.49997L15.4 5.49997C17.2 3.59997 14.4 0.799974 12.6 2.59997Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}lib-object-filter-result{--flat-tree-container-background-color-enabled: transparent}#NoObjectSelected{margin:.8rem;line-height:.72rem;font-size:1.2rem}#NoObjectSelected+.object-navigator-apply-button-row{margin-top:0}\n"] }]
|
|
240
|
+
], encapsulation: ViewEncapsulation.ShadowDom, template: "<lib-bimplus-sidenav-drawer-content [header]=\"'_Object navigator' | translate\"\r\n [isLoading]=\"isLoadingResults\"\r\n [loadingSpinnerText]=\"'_Loading_Filter_Results' | translate\"\r\n>\r\n <div class=\"object-navigator-content-container\">\r\n @if(filterTypes.length > 0){\r\n <div class=\"description\">\r\n {{\"_Select_an_object_using_Object_Picker\" | translate}}\r\n </div>\r\n <div class=\"object-navigator-filters-type\">\r\n <ng-select data-test=\"object-navigator-filter-types-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilterType\" [clearable]=\"false\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let type of filterTypes\" [value]=\"type\">{{type.name}}</ng-option>\r\n </ng-select>\r\n </div>\r\n <div class=\"object-navigator-filters-name\">\r\n <ng-select data-test=\"object-navigator-filters-name-dropdown\" class=\"object-navigator-dropdown\" [(ngModel)]=\"activeFilter\" [clearable]=\"false\" [disabled]=\"!filters\" [searchable]=\"false\">\r\n <ng-option *ngFor=\"let filter of filters\" [value]=\"filter\">{{filter.name}}</ng-option>\r\n </ng-select>\r\n\r\n @if(!hideFilterContextMenu){\r\n <lib-bimplus-context-menu class=\"object-navigator-filters-name-context-menu\"\r\n [items]=\"filterContextMenu\"\r\n *ngIf=\"filterContextMenu?.length\"\r\n >\r\n </lib-bimplus-context-menu>\r\n }\r\n\r\n </div>\r\n\r\n <lib-expansion-panel class=\"object-navigator-filter-criteria-panel\">\r\n <lib-expansion-panel-header>\r\n <span class=\"object-navigator-filter-criteria-header\">\r\n {{ \"_Assign_Objects_Selection_Mode\" | translate }} ({{ filterCriteria.length }}/{{ maxFilterCriteria }})\r\n </span>\r\n <lib-expansion-panel-header-actions>\r\n <div class=\"object-navigator-pick-object-button\"\r\n [ngClass]=\"filterCriteriaSelectionMode$.getValue() === FilterCriteriaSelectionMode.SelectObjectProperties? 'active' : ''\"\r\n (click)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n (keypress)=\"setFilterCriteriaSelectionMode(FilterCriteriaSelectionMode.SelectObjectProperties)\"\r\n [title]=\"'_Object_Picker'| translate\"\r\n ></div>\r\n </lib-expansion-panel-header-actions>\r\n </lib-expansion-panel-header>\r\n\r\n <div class=\"filter-criteria-container\">\r\n @for (criterium of filterCriteria; track criterium; let i = $index) {\r\n <app-filter-criterium\r\n [criterium] = \"criterium\"\r\n [indent]=\"i*0.8\"\r\n (deleteCriterium)=\"deleteFilterCriterium(i)\"\r\n ></app-filter-criterium>\r\n }\r\n </div>\r\n </lib-expansion-panel>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(!selectedObjectId){\r\n <p id=\"NoObjectSelected\">{{ \"_NoObjectSelected\" | translate}}</p>\r\n }\r\n }\r\n }\r\n\r\n <div class=\"object-navigator-apply-button-row\">\r\n <button class=\"primary-button\" \r\n [class.disabled]=\"applyFilterDisabled()\"\r\n [disabled]=\"applyFilterDisabled()\"\r\n (click)=\"applyFilter()\"\r\n > \r\n {{\"_Apply filter\" | translate}}\r\n </button>\r\n </div>\r\n\r\n <div class=\"object-navigator-separator\"></div>\r\n\r\n @switch(filterCriteriaSelectionMode$.getValue()){\r\n @case(FilterCriteriaSelectionMode.SelectObjectProperties){\r\n @if(selectedObjectId){\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-criteria-select-object-properties\r\n [api]=\"api\"\r\n [selectedLanguage]=\"selectedLanguage\"\r\n [localizedStrings]=\"localizedStrings\"\r\n [(filterCriteria)]=\"filterCriteria\"\r\n [rootObjectId]=\"selectedObjectId\"\r\n [revision]=\"selectedRevision\"\r\n (filterCriteriaChange)=\"filterCriteriaWasChanged()\"\r\n >\r\n </lib-criteria-select-object-properties>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n @case(FilterCriteriaSelectionMode.SelectAttributes){\r\n\r\n }\r\n @default{\r\n @if (filterResult) {\r\n <div class=\"scrollable-content-container\">\r\n <lib-bimplus-scrollable-container>\r\n <lib-object-filter-result\r\n [filterResult]=\"filterResult\"\r\n [selectedObjects]=\"selectedObjects\"\r\n (nodeSelectionChanged)=\"handleFilterResultSelectionChanged($event)\"\r\n (nodeDoubleClicked)=\"handleFilterResulObjectDoubleClicked($event)\"\r\n (nodeMouseEntered)=\"handleFilterResulObjectMouseEntered($event)\"\r\n (nodeMouseLeft)=\"handleFilterResulObjectMouseLeft($event)\"\r\n ></lib-object-filter-result>\r\n </lib-bimplus-scrollable-container>\r\n </div>\r\n }\r\n }\r\n }\r\n }\r\n @else {\r\n <div data-test=\"object-navigator-no-filter-types-message\" class=\"object-navigator-no-filter-types\"> {{\"_No_visible_models_found\" | translate}} </div>\r\n }\r\n </div>\r\n</lib-bimplus-sidenav-drawer-content>\r\n", styles: [".ng-select.ng-select-opened>.ng-select-container{background:var(--select-container-open-background-color-enabled);border-color:var(--select-container-open-border-color-enabled)}.ng-select.ng-select-opened>.ng-select-container:hover{box-shadow:none}.ng-select.ng-select-opened>.ng-select-container .ng-arrow{top:-2px;border-color:transparent transparent var(--select-container-open-arrow-border-color-enabled);border-width:0 5px 5px}.ng-select.ng-select-opened>.ng-select-container .ng-arrow:hover{border-color:transparent transparent var(--select-container-open-arrow-border-color-hovered)}.ng-select.ng-select-opened.ng-select-top>.ng-select-container{border-top-right-radius:0;border-top-left-radius:0}.ng-select.ng-select-opened.ng-select-right>.ng-select-container{border-top-right-radius:0;border-bottom-right-radius:0}.ng-select.ng-select-opened.ng-select-bottom>.ng-select-container{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-opened.ng-select-left>.ng-select-container{border-top-left-radius:0;border-bottom-left-radius:0}.ng-select.ng-select-disabled>.ng-select-container{background-color:var(--select-container-background-color-disabled)}.ng-select .ng-has-value .ng-placeholder{display:none}.ng-select .ng-select-container{color:var(--select-container-text-color-enabled);background-color:var(--select-container-background-color-enabled);border-radius:0;border:1px solid var(--select-container-border-color-enabled);min-height:36px;align-items:center}.ng-select .ng-select-container:hover{box-shadow:0 1px 0 var(--select-container-box-shadow-color-hovered);background-color:var(--select-container-background-color-hovered)}.ng-select .ng-select-container .ng-value-container{align-items:center;padding-left:10px}[dir=rtl] .ng-select .ng-select-container .ng-value-container{padding-right:10px;padding-left:0}.ng-select .ng-select-container .ng-value-container .ng-placeholder{color:var(--select-container-placeholder-text-color-enabled)}.ng-select.ng-select-single .ng-select-container{height:36px}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{top:5px;left:0;padding-left:10px;padding-right:50px}[dir=rtl] .ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{padding-right:10px;padding-left:50px}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value{background-color:var(--select-multiple-disabled-container-value-background-color-enabled);border:1px solid var(--select-multiple-disabled-container-value-border-color-enabled)}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-label{padding:0 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-top:5px;padding-left:7px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container{padding-right:7px;padding-left:0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{font-size:.9em;margin-bottom:5px;color:var(--select-multiple-container-value-text-color-enabled);background-color:var(--select-multiple-container-value-background-color-enabled);border-radius:2px;margin-right:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{margin-right:0;margin-left:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled{background-color:var(--select-multiple-container-value-background-color-disabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:5px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-label{padding-left:0;padding-right:5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-label,.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:inline-block;padding:1px 5px}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon:hover{background-color:var(--select-multiple-container-value-icon-background-color-hovered)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-right:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.left{border-left:1px solid var(--select-multiple-container-value-icon-left-border-color-enbabled);border-right:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon.right{border-left:0;border-right:1px solid var(--select-multiple-container-value-icon-right-border-color-enbabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 0 3px 3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{padding:0 3px 3px 0}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input>input{color:var(--select-multiple-container-value-input-text-color-enabled)}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{top:5px;padding-bottom:5px;padding-left:3px}[dir=rtl] .ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{padding-right:3px;padding-left:0}.ng-select .ng-clear-wrapper{color:var(--select-clear-wrapper-text-color-enabled)}.ng-select .ng-clear-wrapper:hover .ng-clear{color:var(--select-clear-wrapper-text-color-hovered)}.ng-select .ng-clear-wrapper:focus .ng-clear{color:var(--select-clear-wrapper-text-color-focused)}.ng-select .ng-clear-wrapper:focus{outline:none}.ng-select .ng-spinner-zone{padding:5px 5px 0 0}[dir=rtl] .ng-select .ng-spinner-zone{padding:5px 0 0 5px}.ng-select .ng-arrow-wrapper{width:25px;padding-right:5px}[dir=rtl] .ng-select .ng-arrow-wrapper{padding-left:5px;padding-right:0}.ng-select .ng-arrow-wrapper:hover .ng-arrow{border-top-color:var(--select-arrow-wrapper-border-color-hovored)}.ng-select .ng-arrow-wrapper .ng-arrow{border-color:var(--select-arrow-wrapper-border-color-enabled) transparent transparent;border-style:solid;border-width:5px 5px 2.5px}.ng-dropdown-panel{background-color:var(--dropdown-panel-background-color-enabled);border:1px solid var(--dropdown-panel-border-color-enabled);box-shadow:0 1px 0 var(--dropdown-panel-box-shadow-color-enabled);left:0}.ng-dropdown-panel.ng-select-top{bottom:100%;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-top-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-top .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.ng-dropdown-panel.ng-select-right{left:100%;top:0;border-top-right-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-right-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-right .ng-dropdown-panel-items .ng-option:first-child{border-top-right-radius:4px}.ng-dropdown-panel.ng-select-bottom{top:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-color:var(--dropdown-panel-select-bottom-border-color-enabled);margin-top:-1px}.ng-dropdown-panel.ng-select-bottom .ng-dropdown-panel-items .ng-option:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.ng-dropdown-panel.ng-select-left{left:-100%;top:0;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-bottom-color:var(--dropdown-panel-select-left-border-color-enabled);margin-bottom:-1px}.ng-dropdown-panel.ng-select-left .ng-dropdown-panel-items .ng-option:first-child{border-top-left-radius:4px}.ng-dropdown-panel .ng-dropdown-header{border-bottom:1px solid var(--dropdown-panel-header-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-footer{border-top:1px solid var(--dropdown-panel-footer-border-color-enabled);padding:5px 7px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{-webkit-user-select:none;user-select:none;padding:8px 10px;font-weight:500;color:var(--dropdown-panel-items-text-color-enabled);cursor:pointer}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-disabled{cursor:default}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected-background-color-enabled);font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{background-color:var(--dropdown-panel-items-option-background-color-enabled);color:var(--dropdown-panel-items-option-text-color-enabled);padding:8px 10px}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked{color:var(--dropdown-panel-items-option-selected2-text-color-enabled);background-color:var(--dropdown-panel-items-option-selected2-background-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected .ng-option-label,.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-selected.ng-option-marked .ng-option-label{font-weight:600}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-marked{background-color:var(--dropdown-panel-items-marked-background-color-enabled);color:var(--dropdown-panel-items-marked-text-color-enabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-disabled{color:var(--dropdown-panel-items-text-color-disabled)}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-left:22px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option.ng-option-child{padding-right:22px;padding-left:0}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{font-size:80%;font-weight:400;padding-right:5px}[dir=rtl] .ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-tag-label{padding-left:5px;padding-right:0}[dir=rtl] .ng-dropdown-panel{direction:rtl;text-align:right}.primary-button{text-transform:uppercase;font: 700 1rem Source Sans Pro,Helvetica,Arial,tahoma,sans-serif;display:inline-block;margin-left:.8rem;padding:.2rem 1rem .4rem;height:2.4rem;white-space:nowrap;border-radius:.2rem;vertical-align:middle;font-size:1.2rem;border:solid .2rem var(--primary-button-border-color-enabled);color:var(--primary-button-text-color-enabled);background-color:var(--primary-button-background-color-enabled);cursor:pointer}.primary-button:hover{border:solid .2rem var(--primary-button-border-color-hovered);color:var(--primary-button-text-color-hovered);background-color:var(--primary-button-background-color-hovered);outline:0}.primary-button:disabled,.primary-button:disabled:active,.primary-button.disabled{border:solid .2rem var(--primary-button-border-color-disabled);color:var(--primary-button-text-color-disabled);background-color:var(--primary-button-background-color-disabled);cursor:default}.primary-button:active{border:solid .2rem var(--primary-button-border-color-pressed);color:var(--primary-button-text-color-pressed);background-color:var(--primary-button-background-color-pressed);cursor:default}:host{display:flex}lib-bimplus-sidenav-drawer-content{width:100%;max-height:100%;display:flex;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container{display:flex;flex-direction:column;width:100%;max-height:100%;flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container lib-object-filter-result{--bimplus-object-filter-result-background-color: transparent}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.description{margin-bottom:.8rem;font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-no-filter-types{font-size:1.2rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-type>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name{flex:0;margin-top:.1rem;margin-bottom:.1rem;height:2.4rem;display:flex;flex-direction:row}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown{flex:1}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-dropdown .ng-select-container{height:2.4rem;min-height:2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filters-name>.object-navigator-filters-name-context-menu{--context-menu-trigger-width: 2.4rem;--context-menu-trigger-height: 2.4rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-filter-criteria-panel{flex:0;padding-top:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-apply-button-row{flex:0;display:flex;margin-top:.8rem;margin-bottom:.8rem;justify-content:flex-end}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.object-navigator-separator{flex:0;border-top:solid .078125em var(--object-navigator-separator-border-color-enabled);padding-bottom:.8rem}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container{position:relative;flex:1;width:100%;display:flex;flex-direction:column}lib-bimplus-sidenav-drawer-content .object-navigator-content-container>.scrollable-content-container>lib-bimplus-scrollable-container{position:absolute;top:0;bottom:0;flex:1;width:100%}.filter-criteria-container{display:flex;flex-direction:column;width:calc(100% - 2.4rem);padding-left:2.4rem;height:12rem}:host(.object-navigator){height:100%;width:100%}.object-navigator-filter-action-buttons{width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.70697 10.707L7.29297 16.293C7.4805 16.4805 7.73481 16.5858 7.99997 16.5858C8.26514 16.5858 8.51944 16.4805 8.70697 16.293L15.415 9.586C15.7897 9.21085 16.0001 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.82997C9.29958 2.00011 8.79096 2.2109 8.41597 2.586L1.70697 9.293C1.5195 9.48053 1.41418 9.73484 1.41418 10C1.41418 10.2652 1.5195 10.5195 1.70697 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4695 4 10.9608 4.21071 10.5858 4.58579C10.2107 4.96086 9.99997 5.46957 9.99997 6C9.99997 6.53043 10.2107 7.03914 10.5858 7.41421C10.9608 7.78929 11.4695 8 12 8Z\" fill=\"%2346494D\"/>%0D%0A</svg>%0D%0A');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-select-attributes-button.active{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<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.707 10.707L7.293 16.293C7.48053 16.4805 7.73484 16.5858 8 16.5858C8.26517 16.5858 8.51947 16.4805 8.707 16.293L15.415 9.586C15.7897 9.21085 16.0002 8.70225 16 8.172V4C16 3.46957 15.7893 2.96086 15.4142 2.58579C15.0391 2.21071 14.5304 2 14 2H9.83C9.29961 2.00011 8.79099 2.2109 8.416 2.586L1.707 9.293C1.51953 9.48053 1.41422 9.73484 1.41422 10C1.41422 10.2652 1.51953 10.5195 1.707 10.707ZM12 8C12.5304 8 13.0391 7.78929 13.4142 7.41421C13.7893 7.03914 14 6.53043 14 6C14 5.46957 13.7893 4.96086 13.4142 4.58579C13.0391 4.21071 12.5304 4 12 4C11.4696 4 10.9609 4.21071 10.5858 4.58579C10.2107 4.96086 10 5.46957 10 6C10 6.53043 10.2107 7.03914 10.5858 7.41421C10.9609 7.78929 11.4696 8 12 8Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-pick-object-button{background-image:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 18 18\"><path d=\"M2.8 12.4c1.2 1.2-1.3 3-.7 3.6.5.5 2.5-1.8 3.6-.7l5.6-5.6-2.9-3s-4.6 4.7-5.6 5.7zM8.4 11L7 9.6l1.4-1.4 1.4 1.4L8.4 11zm4.2-8.4l-2 2-.7-.7-1.5 1.4 4.3 4.3 1.4-1.4-.7-.7 2-2c1.8-1.9-1-4.7-2.8-2.9z\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"%23444\"/></svg>');width:2.4rem;height:2.4rem;display:inline-block;background-position:center center;background-repeat:no-repeat;cursor:pointer;background-size:1.8rem 1.8rem;color:var(--object-navigator-filter-action-buttons-text-color);margin-left:.4rem}.object-navigator-pick-object-button.active{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<path d=\"M2.80001 12.4C4.00001 13.6 1.50001 15.4 2.10001 16C2.60001 16.5 4.60001 14.2 5.70001 15.3L11.3 9.69997L8.40001 6.69997C8.40001 6.69997 3.80001 11.4 2.80001 12.4ZM8.40001 11L7.00001 9.59997L8.40001 8.19997L9.80001 9.59997L8.40001 11ZM12.6 2.59997L10.6 4.59997L9.90001 3.89997L8.40001 5.29997L12.7 9.59997L14.1 8.19997L13.4 7.49997L15.4 5.49997C17.2 3.59997 14.4 0.799974 12.6 2.59997Z\" fill=\"%230066CC\"/>%0D%0A</svg>%0D%0A')}.object-navigator-filter-criteria-header{display:inline-block;text-transform:uppercase;line-height:2.4rem;font-weight:700;font-size:.9375em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}lib-object-filter-result{--flat-tree-container-background-color-enabled: transparent}#NoObjectSelected{margin:.8rem;line-height:.72rem;font-size:1.2rem}#NoObjectSelected+.object-navigator-apply-button-row{margin-top:0}\n"] }]
|
|
225
241
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { hideFilterContextMenu: [{
|
|
226
242
|
type: Input
|
|
227
243
|
}], filterContextMenu: [{
|
|
@@ -258,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
258
274
|
}], pipetteActiveStatus: [{
|
|
259
275
|
type: Output
|
|
260
276
|
}] } });
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBK0IsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDbEksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FB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SztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sa0NBQWtDO3NCQURqQyxNQUFNO2dCQUlQLCtCQUErQjtzQkFEOUIsTUFBTTtnQkFJUCw4QkFBOEI7c0JBRDdCLE1BQU07Z0JBSVAsMkJBQTJCO3NCQUQxQixNQUFNO2dCQUlQLG1CQUFtQjtzQkFEbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0ICxmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLCBGaWx0ZXJDcml0ZXJpdW0sIEZpbHRlclR5cGUsIE1heEZpbHRlckNyaXRlcmlhIH0gZnJvbSAnLi9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItY3JpdGVyaXVtL2ZpbHRlci1jcml0ZXJpdW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuaW1wb3J0IHsgQmltcGx1c1NpZGVuYXZEcmF3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1zaWRlbmF2LWRyYXdlci1jb250ZW50L2JpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbEhlYWRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyLWFjdGlvbnMvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYVNlbGVjdE9iamVjdFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JqZWN0RmlsdGVyUmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9vYmplY3QtZmlsdGVyLXJlc3VsdC9vYmplY3QtZmlsdGVyLXJlc3VsdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICAnLi4vYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmlsdGVyU3RyaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsdGVyU3RyaW5nJztcclxuaW1wb3J0IHsgRmlsdGVyU3RydWN0dXJlRmV0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlclN0cnVjdHVyZUZldGNoZXInO1xyXG5pbXBvcnQgeyBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIvYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci5jb21wb25lbnQnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGVcclxuICAgICwgRm9ybXNNb2R1bGVcclxuICAgICwgTmdTZWxlY3RNb2R1bGVcclxuICAgICwgRmlsdGVyQ3JpdGVyaXVtQ29tcG9uZW50XHJcbiAgICAsIEV4cGFuc2lvblBhbmVsQ29tcG9uZW50XHJcbiAgICAsIEV4cGFuc2lvblBhbmVsSGVhZGVyQ29tcG9uZW50XHJcbiAgICAsIEV4cGFuc2lvblBhbmVsSGVhZGVyQWN0aW9uc0NvbXBvbmVudFxyXG4gICAgLCBCaW1wbHVzU2lkZW5hdkRyYXdlckNvbnRlbnRDb21wb25lbnRcclxuICAgICwgVHJhbnNsYXRlTW9kdWxlXHJcbiAgICAsIENyaXRlcmlhU2VsZWN0T2JqZWN0UHJvcGVydGllc0NvbXBvbmVudFxyXG4gICAgLCBCaW1wbHVzQ29udGV4dE1lbnVDb21wb25lbnRcclxuICAgICwgT2JqZWN0RmlsdGVyUmVzdWx0Q29tcG9uZW50XHJcbiAgICAsIEJpbXBsdXNTY3JvbGxhYmxlQ29udGFpbmVyQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPYmplY3ROYXZpZ2F0b3JDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogIFRyYW5zbGF0ZVNlcnZpY2Upe1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSlcclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gcHVibGljIGZpZWxkc1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhpZGVGaWx0ZXJDb250ZXh0TWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlckNvbnRleHRNZW51OiBBcnJheTxCaW1wbHVzQ29udGV4dE1lbnVJdGVtPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWx0ZXJUeXBlcyh0eXBlcyA6IEFycmF5PEZpbHRlclR5cGU+KXtcclxuICAgIHRoaXMuX2ZpbHRlclR5cGVzID0gdHlwZXM7XHJcbiAgICBpZih0aGlzLl9maWx0ZXJUeXBlcy5sZW5ndGggPjApXHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZSA9IHRoaXMuX2ZpbHRlclR5cGVzWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlclR5cGVzKCk6QXJyYXk8RmlsdGVyVHlwZT57XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyVHlwZXM7XHJcbiAgfVxyXG5cclxuICBzZXQgYWN0aXZlRmlsdGVyVHlwZSh2YWx1ZSA6IEZpbHRlclR5cGUgfCBudWxsKXtcclxuICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZVN1YmplY3QkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZUZpbHRlclR5cGUoKSA6IEZpbHRlclR5cGUgfCBudWxse1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyVHlwZVN1YmplY3QkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlclR5cGUgfCBudWxsPiAobnVsbCk7XHJcbiAgYWN0aXZlRmlsdGVyU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdlYlNkay5PYmplY3RGaWx0ZXIgfCBudWxsPiAobnVsbCk7XHJcblxyXG4gIHNldCBhY3RpdmVGaWx0ZXIoZmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGwpe1xyXG5cclxuICAgIGlmKGZpbHRlciAmJiAhZmlsdGVyLmlkKXsgLy8gU3dpdGNoaW5nIHRvIGN1c3RvbSBmaWx0ZXIgd2lsbCByZXN0b3JlIHRoZSBkZWZhdWx0IGN1c3RvbSBmaWx0ZXJcclxuICAgICAgdGhpcy5fc2V0RGVmYXVsdEN1c3RvbUZpbHRlclN0cmluZyhmaWx0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQubmV4dChmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZUZpbHRlcigpIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGx7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJTdWJqZWN0JC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJzIDogV2ViU2RrLk9iamVjdEZpbHRlcnNSZXNwb25zZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBmaWx0ZXJDcml0ZXJpYSA6IEZpbHRlckNyaXRlcml1bVtdID0gW11cclxuICBtYXhGaWx0ZXJDcml0ZXJpYTogbnVtYmVyID0gTWF4RmlsdGVyQ3JpdGVyaWE7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYXBpIDogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHByb2plY3RJZCA6IHN0cmluZyA9ICcnXHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Mub2JqZWN0LW5hdmlnYXRvcicpIG9iak5hdkNsYXNzQ2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU+KEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5Ob25lKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkT2JqZWN0SWQgOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZFJldmlzaW9uIDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkT2JqZWN0cyA6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uT2JqZWN0IDogV2ViU2RrLkV4cG9ydE9iamVjdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBnZXQgZmlsdGVyUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyUmVzdWx0T2JqZWN0U2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlclJlc3VsdE9iamVjdERvdWJsZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VFbnRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlclJlc3VsdE9iamVjdE1vdXNlTGVmdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwaXBldHRlQWN0aXZlU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUgPSBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU7IC8vIEV4cG9zZSBlbnVtIHRvIHRlbXBsYXRlXHJcblxyXG4gIGlzTG9hZGluZ1Jlc3VsdHMgPSBmYWxzZTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBwdWJsaWMgZmllbGRzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBmaWVsZHNcclxuICBwcml2YXRlIF9maWx0ZXJSZXN1bHQgOiBXZWJTZGsuT2JqZWN0RmlsdGVyU3RydWN0dXJlUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9maWx0ZXJUeXBlcyA6IEFycmF5PEZpbHRlclR5cGU+ID0gW107XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHYpID0+IHtcclxuICAgICAgICBpZighdGhpcy5wcm9qZWN0SWQgfHwgIXRoaXMuYXBpIHx8ICF2KXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5sb2FkQ3VycmVudExheWVyRmlsdGVycyh0aGlzLnByb2plY3RJZCwgdi5pZCk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVycyA9IFt0aGlzLl9jcmVhdGVEZWZhdWx0Q3VzdG9tRmlsdGVyKHYuaWQpLCAuLi52YWx1ZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSB0aGlzLmZpbHRlcnNbMF07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge3Rocm93IG5ldyBFcnJvciAoZXJyKX0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKX1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHYpID0+IHtcclxuICAgICAgICBpZighdilcclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IHRoaXMucGFyc2VGaWx0ZXJTdHJpbmcodik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodikgPT4geyB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZUNoYW5nZWQuZW1pdCh2KX1cclxuICAgIH0pXHJcblxyXG4gICAgaWYoIHRoaXMuZmlsdGVyVHlwZXMubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZSA9IHRoaXMuZmlsdGVyVHlwZXNbMF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkQ3VycmVudExheWVyRmlsdGVycyhwcm9qZWN0SWQgOiBzdHJpbmcsIGxheWVySWQgOiBzdHJpbmcpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0RmlsdGVycy5nZXQobGF5ZXJJZCxwcm9qZWN0SWQpKTtcclxuICB9XHJcblxyXG4gIHBhcnNlRmlsdGVyU3RyaW5nKGZpbHRlciA6IFdlYlNkay5PYmplY3RGaWx0ZXIpe1xyXG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gbmV3IEZpbHRlclN0cmluZyhmaWx0ZXIuZmlsdGVyU3RyaW5nLCB0aGlzLm1heEZpbHRlckNyaXRlcmlhKTtcclxuICAgIHJldHVybiBmaWx0ZXJTdHJpbmcudG9GaWx0ZXJDcml0ZXJpYShmaWx0ZXIucmVhZGFibGVWYWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsdGVyQ3JpdGVyaXVtKGluZGV4OiBudW1iZXIpe1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IFsuLi50aGlzLmZpbHRlckNyaXRlcmlhXTtcclxuICAgIHRoaXMuYWN0aXZhdGVNb2RpZmllZEN1c3RvbUZpbHRlcigpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlKG1vZGU6IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSkge1xyXG4gICAgY29uc3QgaXNTYW1lTW9kZSA9IHRoaXMuZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5nZXRWYWx1ZSgpID09PSBtb2RlO1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLm5leHQoaXNTYW1lTW9kZSA/IEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5Ob25lIDogbW9kZSk7XHJcbiAgICB0aGlzLmhhbmRsZVBpcGV0dGVBY3RpdmVTdGF0dXMoIWlzU2FtZU1vZGUpO1xyXG4gIH1cclxuICBcclxuICBhcHBseUZpbHRlcigpe1xyXG4gICAgdGhpcy5oYW5kbGVQaXBldHRlQWN0aXZlU3RhdHVzKGZhbHNlIC8qIGRpc2FibGUgcGlwZXR0ZSBjdXJzb3IgKi8pO1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLm5leHQoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLk5vbmUpO1xyXG4gICAgdGhpcy5fZmlsdGVyUmVzdWx0ID0gbnVsbDtcclxuXHJcbiAgICAvLyBDdXN0b20gZmlsdGVyIGlzIHNlbGVjdGVkXHJcbiAgICBpZih0aGlzLmFjdGl2ZUZpbHRlciAmJiAhdGhpcy5hY3RpdmVGaWx0ZXIuaWQpe1xyXG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlci5maWx0ZXJTdHJpbmcgPSBuZXcgRmlsdGVyU3RyaW5nKCkuZnJvbUZpbHRlckNyaXRlcmlhKHRoaXMuZmlsdGVyQ3JpdGVyaWEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuc2VsZWN0aW9uT2JqZWN0KXtcclxuICAgICAgdGhpcy5fYXBwbHlTZWxlY3Rpb25PYmplY3RGaWx0ZXIodGhpcy5hY3RpdmVGaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWx0U2VsZWN0aW9uQ2hhbmdlZChzZWxlY3Rpb24gOiBzdHJpbmdbXSl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdFNlbGVjdGlvbkNoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWxPYmplY3REb3VibGVDbGlja2VkKHNlbGVjdGlvbiA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdERvdWJsZUNsaWNrZWQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcblxyXG4gIGhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VFbnRlcmVkKHNlbGVjdGlvbiA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdE1vdXNlRW50ZXJlZC5lbWl0KHNlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGaWx0ZXJSZXN1bE9iamVjdE1vdXNlTGVmdChzZWxlY3Rpb24gOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5maWx0ZXJSZXN1bHRPYmplY3RNb3VzZUxlZnQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlUGlwZXR0ZUFjdGl2ZVN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucGlwZXR0ZUFjdGl2ZVN0YXR1cy5lbWl0KHN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZU1vZGlmaWVkQ3VzdG9tRmlsdGVyKCl7XHJcbiAgICAvLyBXaGVuIGV4aXN0aW5nIGZpbHRlciBpcyBjaGFuZ2VkLCBDdXN0b20gZmlsdGVyIHdpbGwgYmUgc2VsZWN0ZWQgYW5kIGZpbHRlciBzZXR0aW5ncyBuZWVkIHRvIGJlIGNsb25lZC4gTm90aGluZyBpcyBkb25lIHdoZW4gY3VzdG9tIGZpbHRlciBpcyBhbHJlYWR5IGFjdGl2ZVxyXG4gICAgaWYodGhpcy5hY3RpdmVGaWx0ZXI/LmlkICYmIHRoaXMuZmlsdGVycyl7XHJcblxyXG4gICAgICAvLyBDb3B5IGZpbHRlciBzdHJpbmcgZnJvbSBjdXJyZW50IGNyaXRlcmlhIHNldHRpbmdzIHRvIGN1c3RvbSBmaWx0ZXJcclxuICAgICAgdGhpcy5maWx0ZXJzWzBdLmZpbHRlclN0cmluZyA9IG5ldyBGaWx0ZXJTdHJpbmcoKS5mcm9tRmlsdGVyQ3JpdGVyaWEodGhpcy5maWx0ZXJDcml0ZXJpYSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyc1swXS5yZWFkYWJsZVZhbHVlcyA9IG5ldyBGaWx0ZXJTdHJpbmcoKS5nZXRSZWFkYWJsZVZhbHVlc0Zyb21GaWx0ZXJDcml0ZXJpYSh0aGlzLmZpbHRlckNyaXRlcmlhKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQubmV4dCh0aGlzLmZpbHRlcnNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcbiAgcHJpdmF0ZSBfYXBwbHlTZWxlY3Rpb25PYmplY3RGaWx0ZXIoYWN0aXZlRmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGwpe1xyXG5cclxuICAgIGlmKCF0aGlzLmFwaSB8fCAhdGhpcy5zZWxlY3Rpb25PYmplY3QgfHwgIWFjdGl2ZUZpbHRlcil7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGlvbk9iamVjdC5zaW5nbGVVc2UgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25PYmplY3Quc2VsZWN0aW9uLnNpbmdsZXVzZSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmdSZXN1bHRzID0gdHJ1ZTtcclxuXHJcbiAgICBGaWx0ZXJTdHJ1Y3R1cmVGZXRjaGVyLmZldGNoT2JqZWN0RmlsdGVyU3RydWN0dXJlRnJvbVNlbGVjdGlvbih0aGlzLnByb2plY3RJZCwgYWN0aXZlRmlsdGVyLCB0aGlzLnNlbGVjdGlvbk9iamVjdCwgdGhpcy5hcGkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChmaWx0ZXJSZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLl9maWx0ZXJSZXN1bHQgPSBmaWx0ZXJSZXN1bHQ7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXN1bHRzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0RGVmYXVsdEN1c3RvbUZpbHRlclN0cmluZyhmaWx0ZXI6IFdlYlNkay5PYmplY3RGaWx0ZXIpe1xyXG4gICAgY29uc3QgdHlwZUF0dHJpYklkID0gXCJhMGU4YWUyYy1jODY5LTRlYzMtOTAxOS0yNWQzNzA0YmU3MDdcIjtcclxuICAgIGZpbHRlci5maWx0ZXJTdHJpbmcgPSBgW0ldWyR7dHlwZUF0dHJpYklkfV0uVmFsdWVgO1xyXG4gICAgZmlsdGVyLnJlYWRhYmxlVmFsdWVzID0ge307XHJcbiAgICBmaWx0ZXIucmVhZGFibGVWYWx1ZXNbdHlwZUF0dHJpYklkXSA9IFwiVHlwZVwiOyAvLyBQcm92aWRlIHJlYWRhYmxlIGNyaXRlcml1bSBuYW1lIGZvciB0eXBlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVEZWZhdWx0Q3VzdG9tRmlsdGVyKGRpc2NpcGxpbmVJRDogc3RyaW5nKSA6IFdlYlNkay5PYmplY3RGaWx0ZXJ7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyID0ge1xyXG4gICAgICBtb2R1bGU6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXHJcbiAgICAgIGNhdGVnb3J5OiBcIlwiLFxyXG4gICAgICBkaXNjaXBsaW5lSUQ6IGRpc2NpcGxpbmVJRCxcclxuICAgICAgbmFtZTogXCJDdXN0b20gZmlsdGVyXCIsXHJcbiAgICAgIGZpbHRlclN0cmluZzogIFwiXCIsXHJcbiAgICAgIGlzRGVmYXVsdDogZmFsc2UsXHJcbiAgICAgIGRpc2FibGVTb3J0QnlNb2RlbHM6IGZhbHNlLFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NldERlZmF1bHRDdXN0b21GaWx0ZXJTdHJpbmcoZmlsdGVyKTtcclxuICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcblxyXG59XHJcbiIsIjxsaWItYmltcGx1cy1zaWRlbmF2LWRyYXdlci1jb250ZW50IFtoZWFkZXJdPVwiJ19PYmplY3QgbmF2aWdhdG9yJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1Jlc3VsdHNcIlxyXG4gICAgW2xvYWRpbmdTcGlubmVyVGV4dF09XCInX0xvYWRpbmdfRmlsdGVyX1Jlc3VsdHMnIHwgdHJhbnNsYXRlXCJcclxuPlxyXG4gICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICBAaWYoZmlsdGVyVHlwZXMubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAge3tcIl9TZWxlY3RfYW5fb2JqZWN0X3VzaW5nX09iamVjdF9QaWNrZXJcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXJzLXR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1zZWxlY3QgZGF0YS10ZXN0PVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXItdHlwZXMtZHJvcGRvd25cIiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZHJvcGRvd25cIiBbKG5nTW9kZWwpXT1cImFjdGl2ZUZpbHRlclR5cGVcIiBbY2xlYXJhYmxlXT1cImZhbHNlXCIgW3NlYXJjaGFibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctb3B0aW9uICpuZ0Zvcj1cImxldCB0eXBlIG9mIGZpbHRlclR5cGVzXCIgW3ZhbHVlXT1cInR5cGVcIj57e3R5cGUubmFtZX19PC9uZy1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlcnMtbmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBkYXRhLXRlc3Q9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlcnMtbmFtZS1kcm9wZG93blwiIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1kcm9wZG93blwiIFsobmdNb2RlbCldPVwiYWN0aXZlRmlsdGVyXCIgIFtjbGVhcmFibGVdPVwiZmFsc2VcIiBbZGlzYWJsZWRdPVwiIWZpbHRlcnNcIiBbc2VhcmNoYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1vcHRpb24gKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJzXCIgW3ZhbHVlXT1cImZpbHRlclwiPnt7ZmlsdGVyLm5hbWV9fTwvbmctb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgICAgICAgQGlmKCFoaWRlRmlsdGVyQ29udGV4dE1lbnUpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItYmltcGx1cy1jb250ZXh0LW1lbnUgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlcnMtbmFtZS1jb250ZXh0LW1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJmaWx0ZXJDb250ZXh0TWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXJDb250ZXh0TWVudT8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbGliLWJpbXBsdXMtY29udGV4dC1tZW51PlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8bGliLWV4cGFuc2lvbi1wYW5lbCBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVyLWNyaXRlcmlhLXBhbmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8bGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci1jcml0ZXJpYS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJfQXNzaWduX09iamVjdHNfU2VsZWN0aW9uX01vZGVcIiB8IHRyYW5zbGF0ZSB9fSAmIzQwO3t7IGZpbHRlckNyaXRlcmlhLmxlbmd0aCB9fS97eyBtYXhGaWx0ZXJDcml0ZXJpYSB9fSYjNDE7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1hY3Rpb25zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1waWNrLW9iamVjdC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQuZ2V0VmFsdWUoKSA9PT0gRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXM/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5cHJlc3MpPVwic2V0RmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlKEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5TZWxlY3RPYmplY3RQcm9wZXJ0aWVzKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidfT2JqZWN0X1BpY2tlcid8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWFjdGlvbnM+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY3JpdGVyaWEtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChjcml0ZXJpdW0gb2YgZmlsdGVyQ3JpdGVyaWE7IHRyYWNrIGNyaXRlcml1bTsgbGV0ICBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1maWx0ZXItY3JpdGVyaXVtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjcml0ZXJpdW1dID0gXCJjcml0ZXJpdW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZW50XT1cImkqMC44XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZUNyaXRlcml1bSk9XCJkZWxldGVGaWx0ZXJDcml0ZXJpdW0oaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2FwcC1maWx0ZXItY3JpdGVyaXVtPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbD5cclxuXHJcbiAgICAgICAgICAgIEBzd2l0Y2goZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5nZXRWYWx1ZSgpKXtcclxuICAgICAgICAgICAgICAgIEBjYXNlKEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5TZWxlY3RPYmplY3RQcm9wZXJ0aWVzKXtcclxuICAgICAgICAgICAgICAgICAgICBAaWYoIXNlbGVjdGVkT2JqZWN0SWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBpZD1cIk5vT2JqZWN0U2VsZWN0ZWRcIj57eyBcIl9Ob09iamVjdFNlbGVjdGVkXCIgfCB0cmFuc2xhdGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWFwcGx5LWJ1dHRvbi1yb3dcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5LWJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiBmaWx0ZXJDcml0ZXJpYS5sZW5ndGg9PT0wfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpbHRlckNyaXRlcmlhLmxlbmd0aD09PTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgID4gXHJcbiAgICAgICAgICAgICAgICAgICAge3tcIl9BcHBseSBmaWx0ZXJcIiB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1zZXBhcmF0b3JcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIEBzd2l0Y2goZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5nZXRWYWx1ZSgpKXtcclxuICAgICAgICAgICAgICAgIEBjYXNlKEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5TZWxlY3RPYmplY3RQcm9wZXJ0aWVzKXtcclxuICAgICAgICAgICAgICAgICAgICBAaWYoc2VsZWN0ZWRPYmplY3RJZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlLWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwaV09XCJhcGlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRMYW5ndWFnZV09XCJzZWxlY3RlZExhbmd1YWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsaXplZFN0cmluZ3NdPVwibG9jYWxpemVkU3RyaW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZmlsdGVyQ3JpdGVyaWEpXT1cImZpbHRlckNyaXRlcmlhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3RPYmplY3RJZF09XCJzZWxlY3RlZE9iamVjdElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JldmlzaW9uXT1cInNlbGVjdGVkUmV2aXNpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyQ3JpdGVyaWFDaGFuZ2UpPVwiYWN0aXZhdGVNb2RpZmllZEN1c3RvbUZpbHRlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGliLWNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0QXR0cmlidXRlcyl7XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGRlZmF1bHR7XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWx0ZXJSZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLW9iamVjdC1maWx0ZXItcmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJSZXN1bHRdPVwiZmlsdGVyUmVzdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkT2JqZWN0c109XCJzZWxlY3RlZE9iamVjdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZVNlbGVjdGlvbkNoYW5nZWQpPVwiaGFuZGxlRmlsdGVyUmVzdWx0U2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVEb3VibGVDbGlja2VkKT1cImhhbmRsZUZpbHRlclJlc3VsT2JqZWN0RG91YmxlQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVNb3VzZUVudGVyZWQpPVwiaGFuZGxlRmlsdGVyUmVzdWxPYmplY3RNb3VzZUVudGVyZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlTW91c2VMZWZ0KT1cImhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VMZWZ0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2xpYi1vYmplY3QtZmlsdGVyLXJlc3VsdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxkaXYgZGF0YS10ZXN0PVwib2JqZWN0LW5hdmlnYXRvci1uby1maWx0ZXItdHlwZXMtbWVzc2FnZVwiIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1uby1maWx0ZXItdHlwZXNcIj4ge3tcIl9Ob192aXNpYmxlX21vZGVsc19mb3VuZFwiIHwgdHJhbnNsYXRlfX0gPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbjwvbGliLWJpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudD5cclxuIl19
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSwyQkFBMkIsRUFBK0IsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDbEksT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FB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QUM3QixvQ0FBb0M7d0JBQ3BDLG9DQUFvQzt3QkFDcEMsZUFBZTt3QkFDZix1Q0FBdUM7d0JBQ3ZDLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixtQ0FBbUM7cUJBQ3RDLGlCQUdjLGlCQUFpQixDQUFDLFNBQVM7cUZBVzFDLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxLQUFLO2dCQXVDTixPQUFPO3NCQUROLEtBQUs7Z0JBUU4sR0FBRztzQkFERixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFHaUMsZ0JBQWdCO3NCQUF0RCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFLckMsa0NBQWtDO3NCQURqQyxNQUFNO2dCQUlQLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4sa0NBQWtDO3NCQURqQyxNQUFNO2dCQUlQLCtCQUErQjtzQkFEOUIsTUFBTTtnQkFJUCw4QkFBOEI7c0JBRDdCLE1BQU07Z0JBSVAsMkJBQTJCO3NCQUQxQixNQUFNO2dCQUlQLG1CQUFtQjtzQkFEbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgV2ViU2RrIGZyb20gJ2JpbXBsdXMtd2Vic2RrJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0ICxmcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLCBGaWx0ZXJDcml0ZXJpdW0sIEZpbHRlclR5cGUsIE1heEZpbHRlckNyaXRlcmlhIH0gZnJvbSAnLi9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXItY3JpdGVyaXVtL2ZpbHRlci1jcml0ZXJpdW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRXhwYW5zaW9uUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBOZ1NlbGVjdE1vZHVsZSB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuaW1wb3J0IHsgQmltcGx1c1NpZGVuYXZEcmF3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYmltcGx1cy1zaWRlbmF2LWRyYXdlci1jb250ZW50L2JpbXBsdXMtc2lkZW5hdi1kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFeHBhbnNpb25QYW5lbEhlYWRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwtaGVhZGVyLWFjdGlvbnMvZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1hY3Rpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJpbXBsdXNMb2NhbGl6ZWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQvYmltcGx1cy1sb2NhbGl6ZWQtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYVNlbGVjdE9iamVjdFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL2NyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllcy9jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JqZWN0RmlsdGVyUmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9vYmplY3QtZmlsdGVyLXJlc3VsdC9vYmplY3QtZmlsdGVyLXJlc3VsdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICAnLi4vYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBCaW1wbHVzQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vYmltcGx1cy1jb250ZXh0LW1lbnUvYmltcGx1cy1jb250ZXh0LW1lbnUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmlsdGVyU3RyaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsdGVyU3RyaW5nJztcclxuaW1wb3J0IHsgRmlsdGVyU3RydWN0dXJlRmV0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlclN0cnVjdHVyZUZldGNoZXInO1xyXG5pbXBvcnQgeyBCaW1wbHVzU2Nyb2xsYWJsZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIvYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lci5jb21wb25lbnQnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGVcclxuICAgICwgRm9ybXNNb2R1bGVcclxuICAgICwgTmdTZWxlY3RNb2R1bGVcclxuICAgICwgRmlsdGVyQ3JpdGVyaXVtQ29tcG9uZW50XHJcbiAgICAsIEV4cGFuc2lvblBhbmVsQ29tcG9uZW50XHJcbiAgICAsIEV4cGFuc2lvblBhbmVsSGVhZGVyQ29tcG9uZW50XHJcbiAgICAsIEV4cGFuc2lvblBhbmVsSGVhZGVyQWN0aW9uc0NvbXBvbmVudFxyXG4gICAgLCBCaW1wbHVzU2lkZW5hdkRyYXdlckNvbnRlbnRDb21wb25lbnRcclxuICAgICwgVHJhbnNsYXRlTW9kdWxlXHJcbiAgICAsIENyaXRlcmlhU2VsZWN0T2JqZWN0UHJvcGVydGllc0NvbXBvbmVudFxyXG4gICAgLCBCaW1wbHVzQ29udGV4dE1lbnVDb21wb25lbnRcclxuICAgICwgT2JqZWN0RmlsdGVyUmVzdWx0Q29tcG9uZW50XHJcbiAgICAsIEJpbXBsdXNTY3JvbGxhYmxlQ29udGFpbmVyQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yLmNvbXBvbmVudC5sZXNzJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb21cclxufSlcclxuZXhwb3J0IGNsYXNzIEJpbXBsdXNPYmplY3ROYXZpZ2F0b3JDb21wb25lbnQgZXh0ZW5kcyBCaW1wbHVzTG9jYWxpemVkV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlU2VydmljZTogIFRyYW5zbGF0ZVNlcnZpY2Upe1xyXG4gICAgc3VwZXIodHJhbnNsYXRlU2VydmljZSlcclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gcHVibGljIGZpZWxkc1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGhpZGVGaWx0ZXJDb250ZXh0TWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlckNvbnRleHRNZW51OiBBcnJheTxCaW1wbHVzQ29udGV4dE1lbnVJdGVtPiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWx0ZXJUeXBlcyh0eXBlcyA6IEFycmF5PEZpbHRlclR5cGU+KXtcclxuICAgIHRoaXMuX2ZpbHRlclR5cGVzID0gdHlwZXM7XHJcbiAgICBpZih0aGlzLl9maWx0ZXJUeXBlcy5sZW5ndGggPjApXHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZSA9IHRoaXMuX2ZpbHRlclR5cGVzWzBdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlclR5cGVzKCk6QXJyYXk8RmlsdGVyVHlwZT57XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyVHlwZXM7XHJcbiAgfVxyXG5cclxuICBzZXQgYWN0aXZlRmlsdGVyVHlwZSh2YWx1ZSA6IEZpbHRlclR5cGUgfCBudWxsKXtcclxuICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZVN1YmplY3QkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2ZUZpbHRlclR5cGUoKSA6IEZpbHRlclR5cGUgfCBudWxse1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyVHlwZVN1YmplY3QkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlclR5cGUgfCBudWxsPiAobnVsbCk7XHJcbiAgYWN0aXZlRmlsdGVyU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdlYlNkay5PYmplY3RGaWx0ZXIgfCBudWxsPiAobnVsbCk7XHJcblxyXG4gIHNldCBhY3RpdmVGaWx0ZXIoZmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGwpe1xyXG5cclxuICAgIC8vIE5ldyBhY3RpdmUgZmlsdGVyIGlzIHNlbGVjdGVkLiBBcHBseSBmaWx0ZXIgYnV0dG9uIHNob3VsZCBiZSBlbmFibGVkXHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgaWYoZmlsdGVyICYmICFmaWx0ZXIuaWQpeyAvLyBTd2l0Y2hpbmcgdG8gY3VzdG9tIGZpbHRlciB3aWxsIHJlc3RvcmUgdGhlIGRlZmF1bHQgY3VzdG9tIGZpbHRlclxyXG4gICAgICB0aGlzLl9zZXREZWZhdWx0Q3VzdG9tRmlsdGVyU3RyaW5nKGZpbHRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJTdWJqZWN0JC5uZXh0KGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlRmlsdGVyKCkgOiBXZWJTZGsuT2JqZWN0RmlsdGVyIHwgbnVsbHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlclN1YmplY3QkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcnMgOiBXZWJTZGsuT2JqZWN0RmlsdGVyc1Jlc3BvbnNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGZpbHRlckNyaXRlcmlhIDogRmlsdGVyQ3JpdGVyaXVtW10gPSBbXVxyXG4gIGZpbHRlckNyaXRlcmlhQ2hhbmdlZCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtYXhGaWx0ZXJDcml0ZXJpYTogbnVtYmVyID0gTWF4RmlsdGVyQ3JpdGVyaWE7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYXBpIDogV2ViU2RrLkFwaSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHByb2plY3RJZCA6IHN0cmluZyA9ICcnXHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Mub2JqZWN0LW5hdmlnYXRvcicpIG9iak5hdkNsYXNzQ2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU+KEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZS5Ob25lKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkT2JqZWN0SWQgOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZFJldmlzaW9uIDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkT2JqZWN0cyA6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uT2JqZWN0IDogV2ViU2RrLkV4cG9ydE9iamVjdCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBnZXQgZmlsdGVyUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyUmVzdWx0T2JqZWN0U2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlclJlc3VsdE9iamVjdERvdWJsZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VFbnRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlclJlc3VsdE9iamVjdE1vdXNlTGVmdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwaXBldHRlQWN0aXZlU3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUgPSBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGU7IC8vIEV4cG9zZSBlbnVtIHRvIHRlbXBsYXRlXHJcblxyXG4gIGlzTG9hZGluZ1Jlc3VsdHMgPSBmYWxzZTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBwdWJsaWMgZmllbGRzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBmaWVsZHNcclxuICBwcml2YXRlIF9maWx0ZXJSZXN1bHQgOiBXZWJTZGsuT2JqZWN0RmlsdGVyU3RydWN0dXJlUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIF9maWx0ZXJUeXBlcyA6IEFycmF5PEZpbHRlclR5cGU+ID0gW107XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJUeXBlU3ViamVjdCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHYpID0+IHtcclxuICAgICAgICBpZighdGhpcy5wcm9qZWN0SWQgfHwgIXRoaXMuYXBpIHx8ICF2KXtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZlRmlsdGVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5sb2FkQ3VycmVudExheWVyRmlsdGVycyh0aGlzLnByb2plY3RJZCwgdi5pZCk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVycyA9IFt0aGlzLl9jcmVhdGVEZWZhdWx0Q3VzdG9tRmlsdGVyKHYuaWQpLCAuLi52YWx1ZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSB0aGlzLmZpbHRlcnNbMF07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge3Rocm93IG5ldyBFcnJvciAoZXJyKX0sXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKX1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHYpID0+IHtcclxuICAgICAgICBpZighdilcclxuICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IHRoaXMucGFyc2VGaWx0ZXJTdHJpbmcodik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAodikgPT4geyB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZUNoYW5nZWQuZW1pdCh2KX1cclxuICAgIH0pXHJcblxyXG4gICAgaWYoIHRoaXMuZmlsdGVyVHlwZXMubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyVHlwZSA9IHRoaXMuZmlsdGVyVHlwZXNbMF07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkQ3VycmVudExheWVyRmlsdGVycyhwcm9qZWN0SWQgOiBzdHJpbmcsIGxheWVySWQgOiBzdHJpbmcpe1xyXG4gICAgaWYoIXRoaXMuYXBpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5hcGkub2JqZWN0RmlsdGVycy5nZXQobGF5ZXJJZCxwcm9qZWN0SWQpKTtcclxuICB9XHJcblxyXG4gIHBhcnNlRmlsdGVyU3RyaW5nKGZpbHRlciA6IFdlYlNkay5PYmplY3RGaWx0ZXIpe1xyXG4gICAgY29uc3QgZmlsdGVyU3RyaW5nID0gbmV3IEZpbHRlclN0cmluZyhmaWx0ZXIuZmlsdGVyU3RyaW5nLCB0aGlzLm1heEZpbHRlckNyaXRlcmlhKTtcclxuICAgIHJldHVybiBmaWx0ZXJTdHJpbmcudG9GaWx0ZXJDcml0ZXJpYShmaWx0ZXIucmVhZGFibGVWYWx1ZXMpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsdGVyQ3JpdGVyaXVtKGluZGV4OiBudW1iZXIpe1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYSA9IFsuLi50aGlzLmZpbHRlckNyaXRlcmlhXTtcclxuICAgIC8vIEZpbHRlciBjcml0ZXJpYSB3YXMgcmVtb3ZlZC4gQXBwbHkgZmlsdGVyIGJ1dHRvbiBzaG91bGQgYmUgZW5hYmxlZFxyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYUNoYW5nZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5hY3RpdmF0ZU1vZGlmaWVkQ3VzdG9tRmlsdGVyKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUobW9kZTogRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlKSB7XHJcbiAgICBjb25zdCBpc1NhbWVNb2RlID0gdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLmdldFZhbHVlKCkgPT09IG1vZGU7XHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZSQubmV4dChpc1NhbWVNb2RlID8gRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLk5vbmUgOiBtb2RlKTtcclxuICAgIHRoaXMuaGFuZGxlUGlwZXR0ZUFjdGl2ZVN0YXR1cyghaXNTYW1lTW9kZSk7XHJcbiAgfVxyXG4gIFxyXG4gIGFwcGx5RmlsdGVyRGlzYWJsZWQoKSA6IGJvb2xlYW4ge1xyXG4gICAgLy8gQXBwbHkgZmlsdGVyIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgd2hlbiBubyBmaWx0ZXIgY3JpdGVyaWEgYXJlIHNlbGVjdGVkXHJcbiAgICAvLyBvciBmaWx0ZXIgY3JpdGVyaWEgd2FzIGFscmVhZHkgYXBwbGllZCBhbmQgbm8gbmV3IGNyaXRlcmlhIHdhcyBzZWxlY3RlZFxyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQ3JpdGVyaWEubGVuZ3RoID09PSAwIHx8ICEgdGhpcy5maWx0ZXJDcml0ZXJpYUNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBhcHBseUZpbHRlcigpe1xyXG4gICAgdGhpcy5oYW5kbGVQaXBldHRlQWN0aXZlU3RhdHVzKGZhbHNlIC8qIGRpc2FibGUgcGlwZXR0ZSBjdXJzb3IgKi8pO1xyXG4gICAgdGhpcy5maWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLm5leHQoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLk5vbmUpO1xyXG4gICAgdGhpcy5fZmlsdGVyUmVzdWx0ID0gbnVsbDtcclxuXHJcbiAgICAvLyBDdXN0b20gZmlsdGVyIGlzIHNlbGVjdGVkXHJcbiAgICBpZih0aGlzLmFjdGl2ZUZpbHRlciAmJiAhdGhpcy5hY3RpdmVGaWx0ZXIuaWQpe1xyXG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlci5maWx0ZXJTdHJpbmcgPSBuZXcgRmlsdGVyU3RyaW5nKCkuZnJvbUZpbHRlckNyaXRlcmlhKHRoaXMuZmlsdGVyQ3JpdGVyaWEpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuc2VsZWN0aW9uT2JqZWN0KXtcclxuICAgICAgdGhpcy5fYXBwbHlTZWxlY3Rpb25PYmplY3RGaWx0ZXIodGhpcy5hY3RpdmVGaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWx0U2VsZWN0aW9uQ2hhbmdlZChzZWxlY3Rpb24gOiBzdHJpbmdbXSl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdFNlbGVjdGlvbkNoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWxPYmplY3REb3VibGVDbGlja2VkKHNlbGVjdGlvbiA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdERvdWJsZUNsaWNrZWQuZW1pdChzZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmlsdGVyUmVzdWxPYmplY3RNb3VzZUVudGVyZWQoc2VsZWN0aW9uIDogc3RyaW5nKXtcclxuICAgIHRoaXMuZmlsdGVyUmVzdWx0T2JqZWN0TW91c2VFbnRlcmVkLmVtaXQoc2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VMZWZ0KHNlbGVjdGlvbiA6IHN0cmluZyl7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdE9iamVjdE1vdXNlTGVmdC5lbWl0KHNlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVQaXBldHRlQWN0aXZlU3RhdHVzKHN0YXR1czogYm9vbGVhbikge1xyXG4gICAgdGhpcy5waXBldHRlQWN0aXZlU3RhdHVzLmVtaXQoc3RhdHVzKTtcclxuICB9XHJcblxyXG4gIGZpbHRlckNyaXRlcmlhV2FzQ2hhbmdlZCgvKmZpbHRlckNyaXRlcmlhOiBGaWx0ZXJDcml0ZXJpdW1bXSovKSB7XHJcbiAgICAvLyBTb21lIG5ldyBmaWx0ZXIgY3JpdGVyaWEgd2FzIHNlbGVjdGVkLiBBcHBseSBmaWx0ZXIgYnV0dG9uIHNob3VsZCBiZSBlbmFibGVkXHJcbiAgICB0aGlzLmZpbHRlckNyaXRlcmlhQ2hhbmdlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZU1vZGlmaWVkQ3VzdG9tRmlsdGVyKCl7XHJcbiAgICAvLyBXaGVuIGV4aXN0aW5nIGZpbHRlciBpcyBjaGFuZ2VkLCBDdXN0b20gZmlsdGVyIHdpbGwgYmUgc2VsZWN0ZWQgYW5kIGZpbHRlciBzZXR0aW5ncyBuZWVkIHRvIGJlIGNsb25lZC4gTm90aGluZyBpcyBkb25lIHdoZW4gY3VzdG9tIGZpbHRlciBpcyBhbHJlYWR5IGFjdGl2ZVxyXG4gICAgaWYodGhpcy5hY3RpdmVGaWx0ZXI/LmlkICYmIHRoaXMuZmlsdGVycyl7XHJcblxyXG4gICAgICAvLyBDb3B5IGZpbHRlciBzdHJpbmcgZnJvbSBjdXJyZW50IGNyaXRlcmlhIHNldHRpbmdzIHRvIGN1c3RvbSBmaWx0ZXJcclxuICAgICAgdGhpcy5maWx0ZXJzWzBdLmZpbHRlclN0cmluZyA9IG5ldyBGaWx0ZXJTdHJpbmcoKS5mcm9tRmlsdGVyQ3JpdGVyaWEodGhpcy5maWx0ZXJDcml0ZXJpYSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyc1swXS5yZWFkYWJsZVZhbHVlcyA9IG5ldyBGaWx0ZXJTdHJpbmcoKS5nZXRSZWFkYWJsZVZhbHVlc0Zyb21GaWx0ZXJDcml0ZXJpYSh0aGlzLmZpbHRlckNyaXRlcmlhKTtcclxuXHJcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyU3ViamVjdCQubmV4dCh0aGlzLmZpbHRlcnNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBtZXRob2RzXHJcbiAgcHJpdmF0ZSBfYXBwbHlTZWxlY3Rpb25PYmplY3RGaWx0ZXIoYWN0aXZlRmlsdGVyIDogV2ViU2RrLk9iamVjdEZpbHRlciB8IG51bGwpe1xyXG5cclxuICAgIGlmKCF0aGlzLmFwaSB8fCAhdGhpcy5zZWxlY3Rpb25PYmplY3QgfHwgIWFjdGl2ZUZpbHRlcil7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGlvbk9iamVjdC5zaW5nbGVVc2UgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25PYmplY3Quc2VsZWN0aW9uLnNpbmdsZXVzZSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmdSZXN1bHRzID0gdHJ1ZTtcclxuXHJcbiAgICBGaWx0ZXJTdHJ1Y3R1cmVGZXRjaGVyLmZldGNoT2JqZWN0RmlsdGVyU3RydWN0dXJlRnJvbVNlbGVjdGlvbih0aGlzLnByb2plY3RJZCwgYWN0aXZlRmlsdGVyLCB0aGlzLnNlbGVjdGlvbk9iamVjdCwgdGhpcy5hcGkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChmaWx0ZXJSZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLl9maWx0ZXJSZXN1bHQgPSBmaWx0ZXJSZXN1bHQ7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdSZXN1bHRzID0gZmFsc2U7XHJcbiAgICAgICAgLy8gRmV0Y2hpbmcgbmV3IHJlc3VsdHMgZmluaXNoZWQuIEFwcGx5IGZpbHRlciBidXR0b24gc2hvdWxkIGJlIGRpc2FibGVkXHJcbiAgICAgICAgdGhpcy5maWx0ZXJDcml0ZXJpYUNoYW5nZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXREZWZhdWx0Q3VzdG9tRmlsdGVyU3RyaW5nKGZpbHRlcjogV2ViU2RrLk9iamVjdEZpbHRlcil7XHJcbiAgICBjb25zdCB0eXBlQXR0cmliSWQgPSBcImEwZThhZTJjLWM4NjktNGVjMy05MDE5LTI1ZDM3MDRiZTcwN1wiO1xyXG4gICAgZmlsdGVyLmZpbHRlclN0cmluZyA9IGBbSV1bJHt0eXBlQXR0cmliSWR9XS5WYWx1ZWA7XHJcbiAgICBmaWx0ZXIucmVhZGFibGVWYWx1ZXMgPSB7fTtcclxuICAgIGZpbHRlci5yZWFkYWJsZVZhbHVlc1t0eXBlQXR0cmliSWRdID0gXCJUeXBlXCI7IC8vIFByb3ZpZGUgcmVhZGFibGUgY3JpdGVyaXVtIG5hbWUgZm9yIHR5cGVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZURlZmF1bHRDdXN0b21GaWx0ZXIoZGlzY2lwbGluZUlEOiBzdHJpbmcpIDogV2ViU2RrLk9iamVjdEZpbHRlcntcclxuXHJcbiAgICBjb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAgIG1vZHVsZTogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcclxuICAgICAgY2F0ZWdvcnk6IFwiXCIsXHJcbiAgICAgIGRpc2NpcGxpbmVJRDogZGlzY2lwbGluZUlELFxyXG4gICAgICBuYW1lOiBcIkN1c3RvbSBmaWx0ZXJcIixcclxuICAgICAgZmlsdGVyU3RyaW5nOiAgXCJcIixcclxuICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZGlzYWJsZVNvcnRCeU1vZGVsczogZmFsc2UsXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fc2V0RGVmYXVsdEN1c3RvbUZpbHRlclN0cmluZyhmaWx0ZXIpO1xyXG4gICAgcmV0dXJuIGZpbHRlcjtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBwcml2YXRlIG1ldGhvZHNcclxuXHJcbn1cclxuIiwiPGxpYi1iaW1wbHVzLXNpZGVuYXYtZHJhd2VyLWNvbnRlbnQgW2hlYWRlcl09XCInX09iamVjdCBuYXZpZ2F0b3InIHwgdHJhbnNsYXRlXCJcclxuICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nUmVzdWx0c1wiXHJcbiAgICBbbG9hZGluZ1NwaW5uZXJUZXh0XT1cIidfTG9hZGluZ19GaWx0ZXJfUmVzdWx0cycgfCB0cmFuc2xhdGVcIlxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1jb250ZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgIEBpZihmaWx0ZXJUeXBlcy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiX1NlbGVjdF9hbl9vYmplY3RfdXNpbmdfT2JqZWN0X1BpY2tlclwiIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlcnMtdHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBkYXRhLXRlc3Q9XCJvYmplY3QtbmF2aWdhdG9yLWZpbHRlci10eXBlcy1kcm9wZG93blwiIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1kcm9wZG93blwiIFsobmdNb2RlbCldPVwiYWN0aXZlRmlsdGVyVHlwZVwiIFtjbGVhcmFibGVdPVwiZmFsc2VcIiBbc2VhcmNoYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1vcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZmlsdGVyVHlwZXNcIiBbdmFsdWVdPVwidHlwZVwiPnt7dHlwZS5uYW1lfX08L25nLW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVycy1uYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctc2VsZWN0IGRhdGEtdGVzdD1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVycy1uYW1lLWRyb3Bkb3duXCIgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLWRyb3Bkb3duXCIgWyhuZ01vZGVsKV09XCJhY3RpdmVGaWx0ZXJcIiAgW2NsZWFyYWJsZV09XCJmYWxzZVwiIFtkaXNhYmxlZF09XCIhZmlsdGVyc1wiIFtzZWFyY2hhYmxlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLW9wdGlvbiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcnNcIiBbdmFsdWVdPVwiZmlsdGVyXCI+e3tmaWx0ZXIubmFtZX19PC9uZy1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L25nLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgICBAaWYoIWhpZGVGaWx0ZXJDb250ZXh0TWVudSl7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1iaW1wbHVzLWNvbnRleHQtbWVudSBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVycy1uYW1lLWNvbnRleHQtbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpbHRlckNvbnRleHRNZW51XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZpbHRlckNvbnRleHRNZW51Py5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9saWItYmltcGx1cy1jb250ZXh0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsIGNsYXNzPVwib2JqZWN0LW5hdmlnYXRvci1maWx0ZXItY3JpdGVyaWEtcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItZmlsdGVyLWNyaXRlcmlhLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIl9Bc3NpZ25fT2JqZWN0c19TZWxlY3Rpb25fTW9kZVwiIHwgdHJhbnNsYXRlIH19ICYjNDA7e3sgZmlsdGVyQ3JpdGVyaWEubGVuZ3RoIH19L3t7IG1heEZpbHRlckNyaXRlcmlhIH19JiM0MTtcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWFjdGlvbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLXBpY2stb2JqZWN0LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlJC5nZXRWYWx1ZSgpID09PSBGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0T2JqZWN0UHJvcGVydGllcz8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZpbHRlckNyaXRlcmlhU2VsZWN0aW9uTW9kZShGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUuU2VsZWN0T2JqZWN0UHJvcGVydGllcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlwcmVzcyk9XCJzZXRGaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXMpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ19PYmplY3RfUGlja2VyJ3wgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItYWN0aW9ucz5cclxuICAgICAgICAgICAgICAgIDwvbGliLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jcml0ZXJpYS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIEBmb3IgKGNyaXRlcml1bSBvZiBmaWx0ZXJDcml0ZXJpYTsgdHJhY2sgY3JpdGVyaXVtOyBsZXQgIGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWZpbHRlci1jcml0ZXJpdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NyaXRlcml1bV0gPSBcImNyaXRlcml1bVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRlbnRdPVwiaSowLjhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlQ3JpdGVyaXVtKT1cImRlbGV0ZUZpbHRlckNyaXRlcml1bShpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWZpbHRlci1jcml0ZXJpdW0+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9saWItZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuICAgICAgICAgICAgQHN3aXRjaChmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLmdldFZhbHVlKCkpe1xyXG4gICAgICAgICAgICAgICAgQGNhc2UoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXMpe1xyXG4gICAgICAgICAgICAgICAgICAgIEBpZighc2VsZWN0ZWRPYmplY3RJZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGlkPVwiTm9PYmplY3RTZWxlY3RlZFwiPnt7IFwiX05vT2JqZWN0U2VsZWN0ZWRcIiB8IHRyYW5zbGF0ZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3ItYXBwbHktYnV0dG9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnktYnV0dG9uXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFwcGx5RmlsdGVyRGlzYWJsZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFwcGx5RmlsdGVyRGlzYWJsZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5RmlsdGVyKClcIlxyXG4gICAgICAgICAgICAgICAgPiBcclxuICAgICAgICAgICAgICAgICAgICB7e1wiX0FwcGx5IGZpbHRlclwiIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvYmplY3QtbmF2aWdhdG9yLXNlcGFyYXRvclwiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgQHN3aXRjaChmaWx0ZXJDcml0ZXJpYVNlbGVjdGlvbk1vZGUkLmdldFZhbHVlKCkpe1xyXG4gICAgICAgICAgICAgICAgQGNhc2UoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdE9iamVjdFByb3BlcnRpZXMpe1xyXG4gICAgICAgICAgICAgICAgICAgIEBpZihzZWxlY3RlZE9iamVjdElkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWNyaXRlcmlhLXNlbGVjdC1vYmplY3QtcHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBpXT1cImFwaVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZExhbmd1YWdlXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9jYWxpemVkU3RyaW5nc109XCJsb2NhbGl6ZWRTdHJpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWx0ZXJDcml0ZXJpYSldPVwiZmlsdGVyQ3JpdGVyaWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm9vdE9iamVjdElkXT1cInNlbGVjdGVkT2JqZWN0SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmV2aXNpb25dPVwic2VsZWN0ZWRSZXZpc2lvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXJDcml0ZXJpYUNoYW5nZSk9XCJmaWx0ZXJDcml0ZXJpYVdhc0NoYW5nZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1jcml0ZXJpYS1zZWxlY3Qtb2JqZWN0LXByb3BlcnRpZXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saWItYmltcGx1cy1zY3JvbGxhYmxlLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UoRmlsdGVyQ3JpdGVyaWFTZWxlY3Rpb25Nb2RlLlNlbGVjdEF0dHJpYnV0ZXMpe1xyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBkZWZhdWx0e1xyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsdGVyUmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlLWNvbnRlbnQtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGliLWJpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1vYmplY3QtZmlsdGVyLXJlc3VsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyUmVzdWx0XT1cImZpbHRlclJlc3VsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE9iamVjdHNdPVwic2VsZWN0ZWRPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vZGVTZWxlY3Rpb25DaGFuZ2VkKT1cImhhbmRsZUZpbHRlclJlc3VsdFNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlRG91YmxlQ2xpY2tlZCk9XCJoYW5kbGVGaWx0ZXJSZXN1bE9iamVjdERvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub2RlTW91c2VFbnRlcmVkKT1cImhhbmRsZUZpbHRlclJlc3VsT2JqZWN0TW91c2VFbnRlcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm9kZU1vdXNlTGVmdCk9XCJoYW5kbGVGaWx0ZXJSZXN1bE9iamVjdE1vdXNlTGVmdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9saWItb2JqZWN0LWZpbHRlci1yZXN1bHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2IGRhdGEtdGVzdD1cIm9iamVjdC1uYXZpZ2F0b3Itbm8tZmlsdGVyLXR5cGVzLW1lc3NhZ2VcIiBjbGFzcz1cIm9iamVjdC1uYXZpZ2F0b3Itbm8tZmlsdGVyLXR5cGVzXCI+IHt7XCJfTm9fdmlzaWJsZV9tb2RlbHNfZm91bmRcIiB8IHRyYW5zbGF0ZX19IDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2xpYi1iaW1wbHVzLXNpZGVuYXYtZHJhd2VyLWNvbnRlbnQ+XHJcbiJdfQ==
|