@onecx/angular-accelerator 5.18.0 → 5.18.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/data-sort-base/data-sort-base.mjs +2 -3
- package/esm2022/lib/components/interactive-data-view/interactive-data-view.component.mjs +2 -2
- package/esm2022/lib/components/search-header/search-header.component.mjs +3 -3
- package/fesm2022/onecx-angular-accelerator.mjs +4 -5
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -139,11 +139,11 @@ export class SearchHeaderComponent {
|
|
|
139
139
|
return this.visibleFormControls.some((formControl) => formControl.name !== null && String(formControl.name) === control);
|
|
140
140
|
}
|
|
141
141
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
142
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-
|
|
142
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i5.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "component", type: i6.PageHeaderComponent, selector: "ocx-page-header", inputs: ["header", "loading", "figureBackground", "showFigure", "figureImage", "disableDefaultActions", "subheader", "actions", "objectDetails", "showBreadcrumbs", "manualBreadcrumbs", "enableGridView", "gridLayoutDesktopColumns"], outputs: ["save"] }, { kind: "directive", type: i7.IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: ["ocxIfPermission", "ocxIfNotPermission", "onMissingPermission", "ocxIfPermissionPermissions", "ocxIfNotPermissionPermissions", "ocxIfPermissionElseTemplate", "ocxIfNotPermissionElseTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
143
143
|
}
|
|
144
144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, decorators: [{
|
|
145
145
|
type: Component,
|
|
146
|
-
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-
|
|
146
|
+
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n" }]
|
|
147
147
|
}], ctorParameters: () => [], propDecorators: { header: [{
|
|
148
148
|
type: Input
|
|
149
149
|
}], headline: [{
|
|
@@ -190,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
190
190
|
type: ViewChild,
|
|
191
191
|
args: ['searchParameterFields']
|
|
192
192
|
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7Ozs7Ozs7O0FBY2hEOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQzs7T0FFRztJQUNILElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNwQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUNyQixDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUE4QjtRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFR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LG04RUFpRUE7OzJGRHZCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBRWxCLEVBQUU7d0RBR0osTUFBTTtzQkFBZCxLQUFLO2dCQU1GLFFBQVE7c0JBRFgsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFlRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQVFHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLDJCQUEyQjtzQkFBcEMsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFFUCx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsMEJBQTBCO2dCQU94Qyw0QkFBNEI7c0JBRDNCLFlBQVk7dUJBQUMsOEJBQThCO2dCQVdWLFNBQVM7c0JBQTFDLFlBQVk7dUJBQUMsa0JBQWtCO2dCQUN5QixtQkFBbUI7c0JBQTNFLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFFbkIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAsIG9mLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZ2V0TG9jYXRpb24gfSBmcm9tICdAb25lY3gvYWNjZWxlcmF0b3InXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoSGVhZGVyQ29tcG9uZW50U3RhdGUge1xuICBhY3RpdmVWaWV3TW9kZT86ICdiYXNpYycgfCAnYWR2YW5jZWQnXG4gIHNlbGVjdGVkU2VhcmNoQ29uZmlnPzogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaENvbmZpZ0RhdGEge1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgZmllbGRWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgZGlzcGxheWVkQ29sdW1uc0lkczogc3RyaW5nW11cbiAgdmlld01vZGU6ICdiYXNpYycgfCAnYWR2YW5jZWQnXG59XG5cbi8qKlxuICogVG8gdHJpZ2dlciB0aGUgc2VhcmNoIHdoZW4gRW50ZXIga2V5IGlzIHByZXNzZWQgaW5zaWRlIGEgc2VhcmNoIHBhcmFtZXRlciBmaWVsZCxcbiAqIGFuIEV2ZW50TGlzdGVuZXIgZm9yIGtleXVwIGVudGVyIGV2ZW50IGlzIGFkZGVkIGZvciBIVE1MIGVsZW1lbnRzIHdoaWNoIGhhdmUgYW4gaW5wdXQuXG4gKiBQbGVhc2UgYWRkIHRoZSBFdmVudExpc3RlbmVyIHlvdXJzZWxmIG1hbnVhbGx5LCBpZiB5b3Ugd2FudCB0byBoYXZlIHRoYXQgZnVuY3Rpb25hbGl0eSBmb3Igc29tZSBvdGhlciBlbGVtZW50c1xuICogd2hpY2ggZG8gbm90IGhhdmUgYW4gaW5wdXQgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2N4LXNlYXJjaC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBoZWFkZXIgPSAnJ1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGhlYWRlclxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGhlYWRsaW5lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyXG4gIH1cbiAgc2V0IGhlYWRsaW5lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhlYWRlciA9IHZhbHVlXG4gIH1cbiAgQElucHV0KCkgc3ViaGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgX3ZpZXdNb2RlOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJyA9ICdiYXNpYydcbiAgQElucHV0KClcbiAgZ2V0IHZpZXdNb2RlKCk6ICdiYXNpYycgfCAnYWR2YW5jZWQnIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld01vZGVcbiAgfVxuICBzZXQgdmlld01vZGUodmlld01vZGU6ICdiYXNpYycgfCAnYWR2YW5jZWQnKSB7XG4gICAgaWYgKHRoaXMudmlld01vZGUgIT09IHZpZXdNb2RlKSB7XG4gICAgICB0aGlzLl92aWV3TW9kZSA9IHZpZXdNb2RlXG4gICAgICB0aGlzLnZpZXdNb2RlQ2hhbmdlZD8uZW1pdCh0aGlzLnZpZXdNb2RlKVxuICAgICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGFjdGl2ZVZpZXdNb2RlOiB0aGlzLnZpZXdNb2RlLFxuICAgICAgfSlcbiAgICAgIHRoaXMudXBkYXRlSGVhZGVyQWN0aW9ucygpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRkS2V5VXBFdmVudExpc3RlbmVyKCkpXG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIG1hbnVhbEJyZWFkY3J1bWJzID0gZmFsc2VcbiAgX2FjdGlvbnM6IEFjdGlvbltdID0gW11cbiAgQElucHV0KClcbiAgZ2V0IGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNcbiAgfVxuICBzZXQgYWN0aW9ucyh2YWx1ZSkge1xuICAgIHRoaXMuX2FjdGlvbnMgPSB2YWx1ZVxuICAgIHRoaXMudXBkYXRlSGVhZGVyQWN0aW9ucygpXG4gIH1cbiAgQElucHV0KCkgc2VhcmNoQ29uZmlnUGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHNlYXJjaEJ1dHRvbkRpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgcmVzZXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIHBhZ2VOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBnZXRMb2NhdGlvbigpLmFwcGxpY2F0aW9uUGF0aFxuXG4gIEBPdXRwdXQoKSBzZWFyY2hlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHJlc2V0dGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZmlnRGF0YSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHZpZXdNb2RlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPCdiYXNpYycgfCAnYWR2YW5jZWQnPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgY29tcG9uZW50U3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VhcmNoSGVhZGVyQ29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBDb250ZW50Q2hpbGQoJ2FkZGl0aW9uYWxUb29sYmFyQ29udGVudCcpXG4gIGFkZGl0aW9uYWxUb29sYmFyQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIGdldCBfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFkZGl0aW9uYWxUb29sYmFyQ29udGVudFxuICB9XG4gIEBDb250ZW50Q2hpbGQoJ2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnQnKVxuICBhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgZ2V0IF9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcbiAgfVxuXG4gIGdldCBzZWFyY2hDb25maWdDaGFuZ2VPYnNlcnZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFNlYXJjaENvbmZpZ0NoYW5nZWQub2JzZXJ2ZWRcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUdyb3VwRGlyZWN0aXZlKSBmb3JtR3JvdXA6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkcmVuKEZvcm1Db250cm9sTmFtZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSB2aXNpYmxlRm9ybUNvbnRyb2xzITogUXVlcnlMaXN0PEZvcm1Db250cm9sTmFtZT5cblxuICBAVmlld0NoaWxkKCdzZWFyY2hQYXJhbWV0ZXJGaWVsZHMnKSBzZWFyY2hQYXJhbWV0ZXJGaWVsZHM6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBoYXNBZHZhbmNlZCA9IGZhbHNlXG4gIGhlYWRlckFjdGlvbnM6IEFjdGlvbltdID0gW11cblxuICBmaWVsZFZhbHVlcyQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0+IHwgdW5kZWZpbmVkID0gb2Yoe30pXG4gIHNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlcjogRXZlbnRFbWl0dGVyPFNlYXJjaENvbmZpZ0RhdGEgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZWFyY2hDb25maWdDaGFuZ2VkU2xvdEVtaXR0ZXIuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBzZWxlY3RlZFNlYXJjaENvbmZpZzogY29uZmlnPy5uYW1lID8/IG51bGwsXG4gICAgICB9KVxuICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaENvbmZpZ0NoYW5nZWQuZW1pdChjb25maWcpXG4gICAgfSlcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuZmllbGRWYWx1ZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh7fSkpLFxuICAgICAgICB0aGlzLnZpc2libGVGb3JtQ29udHJvbHMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSksXG4gICAgICBdKS5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgbWFwKChbdmFsdWVzLCBfXSkgPT5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyh2YWx1ZXMgPz8ge30pLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICBba2V5XTogdGhpcy5pc1Zpc2libGUoa2V5KSA/IHZhbHVlIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRLZXlVcEV2ZW50TGlzdGVuZXIoKVxuICB9XG5cbiAgdG9nZ2xlVmlld01vZGUoKSB7XG4gICAgdGhpcy52aWV3TW9kZSA9IHRoaXMudmlld01vZGUgPT09ICdiYXNpYycgPyAnYWR2YW5jZWQnIDogJ2Jhc2ljJ1xuICB9XG5cbiAgb25SZXNldENsaWNrZWQoKSB7XG4gICAgdGhpcy5yZXNldHRlZC5lbWl0KClcbiAgfVxuXG4gIG9uU2VhcmNoQ2xpY2tlZCgpIHtcbiAgICB0aGlzLnNlYXJjaGVkLmVtaXQoKVxuICB9XG5cbiAgdXBkYXRlSGVhZGVyQWN0aW9ucygpIHtcbiAgICBjb25zdCBoZWFkZXJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gICAgaWYgKHRoaXMuaGFzQWR2YW5jZWQpIHtcbiAgICAgIGhlYWRlckFjdGlvbnMucHVzaCh7XG4gICAgICAgIGlkOiAnc2ltcGxlQWR2YW5jZWRCdXR0b24nLFxuICAgICAgICBsYWJlbEtleTpcbiAgICAgICAgICB0aGlzLnZpZXdNb2RlID09PSAnYmFzaWMnXG4gICAgICAgICAgICA/ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLkFEVkFOQ0VELlRFWFQnXG4gICAgICAgICAgICA6ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLlNJTVBMRS5URVhUJyxcbiAgICAgICAgYWN0aW9uQ2FsbGJhY2s6ICgpID0+IHRoaXMudG9nZ2xlVmlld01vZGUoKSxcbiAgICAgICAgc2hvdzogJ2Fsd2F5cycsXG4gICAgICAgIHRpdGxlS2V5OlxuICAgICAgICAgIHRoaXMudmlld01vZGUgPT09ICdiYXNpYydcbiAgICAgICAgICAgID8gJ09DWF9TRUFSQ0hfSEVBREVSLlRPR0dMRV9CVVRUT04uQURWQU5DRUQuREVUQUlMJ1xuICAgICAgICAgICAgOiAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5TSU1QTEUuREVUQUlMJyxcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuaGVhZGVyQWN0aW9ucyA9IGhlYWRlckFjdGlvbnMuY29uY2F0KHRoaXMuYWN0aW9ucylcbiAgfVxuXG4gIGFkZEtleVVwRXZlbnRMaXN0ZW5lcigpIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnRzID0gdGhpcy5zZWFyY2hQYXJhbWV0ZXJGaWVsZHM/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKVxuICAgIGlucHV0RWxlbWVudHMuZm9yRWFjaCgoaW5wdXRFbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmICghaW5wdXRFbGVtZW50Lmxpc3RlbmVyQWRkZWQpIHtcbiAgICAgICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50OiBhbnkpID0+IHRoaXMub25TZWFyY2hLZXl1cChldmVudCkpXG4gICAgICAgIGlucHV0RWxlbWVudC5saXN0ZW5lckFkZGVkID0gdHJ1ZVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBvblNlYXJjaEtleXVwKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5vblNlYXJjaENsaWNrZWQoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWaXNpYmxlKGNvbnRyb2w6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVGb3JtQ29udHJvbHMuc29tZShcbiAgICAgIChmb3JtQ29udHJvbCkgPT4gZm9ybUNvbnRyb2wubmFtZSAhPT0gbnVsbCAmJiBTdHJpbmcoZm9ybUNvbnRyb2wubmFtZSkgPT09IGNvbnRyb2xcbiAgICApXG4gIH1cbn1cbiIsIjxvY3gtcGFnZS1oZWFkZXJcbiAgW2hlYWRlcl09XCJoZWFkZXIgfHwgKCdPQ1hfU0VBUkNIX0hFQURFUi5IRUFERVInIHwgdHJhbnNsYXRlKVwiXG4gIFtzdWJoZWFkZXJdPVwic3ViaGVhZGVyXCJcbiAgW21hbnVhbEJyZWFkY3J1bWJzXT1cIm1hbnVhbEJyZWFkY3J1bWJzXCJcbiAgW2FjdGlvbnNdPVwiaGVhZGVyQWN0aW9uc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoQ29uZmlnQ2hhbmdlT2JzZXJ2ZWQgJiYgcGFnZU5hbWVcIj5cbiAgICAgIDxvY3gtc2xvdFxuICAgICAgICAqb2N4SWZQZXJtaXNzaW9uPVwic2VhcmNoQ29uZmlnUGVybWlzc2lvblwiXG4gICAgICAgIG5hbWU9XCJvbmVjeC1zaGVsbC1zZWFyY2gtY29uZmlnXCJcbiAgICAgICAgW2lucHV0c109XCJ7IHBhZ2VOYW1lOiBwYWdlTmFtZSwgY3VycmVudEZpZWxkVmFsdWVzOiBmaWVsZFZhbHVlcyQgfCBhc3luYywgdmlld01vZGU6IHZpZXdNb2RlIH1cIlxuICAgICAgICBbb3V0cHV0c109XCJ7IHNlYXJjaENvbmZpZ1NlbGVjdGVkOiBzZWFyY2hDb25maWdDaGFuZ2VkU2xvdEVtaXR0ZXIgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMThyZW1cIiBoZWlnaHQ9XCIzcmVtXCI+PC9wLXNrZWxldG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9vY3gtc2xvdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjYWRkaXRpb25hbFRvb2xiYXJDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCByb3ctZ2FwLTMgY29sdW1uLWdhcC02IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiAjc2VhcmNoUGFyYW1ldGVyRmllbGRzPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTJcIj5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInJlc2V0QnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCJyZXNldHRlZC5vYnNlcnZlZFwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uUmVzZXRDbGlja2VkKClcIlxuICAgICAgICBsYWJlbD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uVEVYVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBpY29uPVwicGkgcGktZXJhc2VyXCJcbiAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZXNldEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInNlYXJjaEJ1dHRvblwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuU0VBUkNIX0JVVFRPTi5URVhUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCdXR0b25EaXNhYmxlZCB8fCBmb3JtR3JvdXA/LmludmFsaWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIidPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9vY3gtcGFnZS1oZWFkZXI+XG4iXX0=
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7Ozs7Ozs7O0FBY2hEOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQzs7T0FFRztJQUNILElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNwQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUNyQixDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUE4QjtRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFR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LDY3RUFpRUE7OzJGRHZCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGFBRWxCLEVBQUU7d0RBR0osTUFBTTtzQkFBZCxLQUFLO2dCQU1GLFFBQVE7c0JBRFgsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdGLFFBQVE7c0JBRFgsS0FBSztnQkFlRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQVFHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLDJCQUEyQjtzQkFBcEMsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFFUCx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsMEJBQTBCO2dCQU94Qyw0QkFBNEI7c0JBRDNCLFlBQVk7dUJBQUMsOEJBQThCO2dCQVdWLFNBQVM7c0JBQTFDLFlBQVk7dUJBQUMsa0JBQWtCO2dCQUN5QixtQkFBbUI7c0JBQTNFLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFFbkIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAsIG9mLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZ2V0TG9jYXRpb24gfSBmcm9tICdAb25lY3gvYWNjZWxlcmF0b3InXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoSGVhZGVyQ29tcG9uZW50U3RhdGUge1xuICBhY3RpdmVWaWV3TW9kZT86ICdiYXNpYycgfCAnYWR2YW5jZWQnXG4gIHNlbGVjdGVkU2VhcmNoQ29uZmlnPzogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaENvbmZpZ0RhdGEge1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgZmllbGRWYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgZGlzcGxheWVkQ29sdW1uc0lkczogc3RyaW5nW11cbiAgdmlld01vZGU6ICdiYXNpYycgfCAnYWR2YW5jZWQnXG59XG5cbi8qKlxuICogVG8gdHJpZ2dlciB0aGUgc2VhcmNoIHdoZW4gRW50ZXIga2V5IGlzIHByZXNzZWQgaW5zaWRlIGEgc2VhcmNoIHBhcmFtZXRlciBmaWVsZCxcbiAqIGFuIEV2ZW50TGlzdGVuZXIgZm9yIGtleXVwIGVudGVyIGV2ZW50IGlzIGFkZGVkIGZvciBIVE1MIGVsZW1lbnRzIHdoaWNoIGhhdmUgYW4gaW5wdXQuXG4gKiBQbGVhc2UgYWRkIHRoZSBFdmVudExpc3RlbmVyIHlvdXJzZWxmIG1hbnVhbGx5LCBpZiB5b3Ugd2FudCB0byBoYXZlIHRoYXQgZnVuY3Rpb25hbGl0eSBmb3Igc29tZSBvdGhlciBlbGVtZW50c1xuICogd2hpY2ggZG8gbm90IGhhdmUgYW4gaW5wdXQgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2N4LXNlYXJjaC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBoZWFkZXIgPSAnJ1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGhlYWRlclxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGhlYWRsaW5lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyXG4gIH1cbiAgc2V0IGhlYWRsaW5lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhlYWRlciA9IHZhbHVlXG4gIH1cbiAgQElucHV0KCkgc3ViaGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgX3ZpZXdNb2RlOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJyA9ICdiYXNpYydcbiAgQElucHV0KClcbiAgZ2V0IHZpZXdNb2RlKCk6ICdiYXNpYycgfCAnYWR2YW5jZWQnIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld01vZGVcbiAgfVxuICBzZXQgdmlld01vZGUodmlld01vZGU6ICdiYXNpYycgfCAnYWR2YW5jZWQnKSB7XG4gICAgaWYgKHRoaXMudmlld01vZGUgIT09IHZpZXdNb2RlKSB7XG4gICAgICB0aGlzLl92aWV3TW9kZSA9IHZpZXdNb2RlXG4gICAgICB0aGlzLnZpZXdNb2RlQ2hhbmdlZD8uZW1pdCh0aGlzLnZpZXdNb2RlKVxuICAgICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgIGFjdGl2ZVZpZXdNb2RlOiB0aGlzLnZpZXdNb2RlLFxuICAgICAgfSlcbiAgICAgIHRoaXMudXBkYXRlSGVhZGVyQWN0aW9ucygpXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRkS2V5VXBFdmVudExpc3RlbmVyKCkpXG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIG1hbnVhbEJyZWFkY3J1bWJzID0gZmFsc2VcbiAgX2FjdGlvbnM6IEFjdGlvbltdID0gW11cbiAgQElucHV0KClcbiAgZ2V0IGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnNcbiAgfVxuICBzZXQgYWN0aW9ucyh2YWx1ZSkge1xuICAgIHRoaXMuX2FjdGlvbnMgPSB2YWx1ZVxuICAgIHRoaXMudXBkYXRlSGVhZGVyQWN0aW9ucygpXG4gIH1cbiAgQElucHV0KCkgc2VhcmNoQ29uZmlnUGVybWlzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpIHNlYXJjaEJ1dHRvbkRpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgcmVzZXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIHBhZ2VOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBnZXRMb2NhdGlvbigpLmFwcGxpY2F0aW9uUGF0aFxuXG4gIEBPdXRwdXQoKSBzZWFyY2hlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHJlc2V0dGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZmlnRGF0YSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHZpZXdNb2RlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPCdiYXNpYycgfCAnYWR2YW5jZWQnPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgY29tcG9uZW50U3RhdGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VhcmNoSGVhZGVyQ29tcG9uZW50U3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBDb250ZW50Q2hpbGQoJ2FkZGl0aW9uYWxUb29sYmFyQ29udGVudCcpXG4gIGFkZGl0aW9uYWxUb29sYmFyQ29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIGdldCBfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFkZGl0aW9uYWxUb29sYmFyQ29udGVudFxuICB9XG4gIEBDb250ZW50Q2hpbGQoJ2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnQnKVxuICBhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgZ2V0IF9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0KCk6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcbiAgfVxuXG4gIGdldCBzZWFyY2hDb25maWdDaGFuZ2VPYnNlcnZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFNlYXJjaENvbmZpZ0NoYW5nZWQub2JzZXJ2ZWRcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUdyb3VwRGlyZWN0aXZlKSBmb3JtR3JvdXA6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxuICBAQ29udGVudENoaWxkcmVuKEZvcm1Db250cm9sTmFtZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSB2aXNpYmxlRm9ybUNvbnRyb2xzITogUXVlcnlMaXN0PEZvcm1Db250cm9sTmFtZT5cblxuICBAVmlld0NoaWxkKCdzZWFyY2hQYXJhbWV0ZXJGaWVsZHMnKSBzZWFyY2hQYXJhbWV0ZXJGaWVsZHM6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcblxuICBoYXNBZHZhbmNlZCA9IGZhbHNlXG4gIGhlYWRlckFjdGlvbnM6IEFjdGlvbltdID0gW11cblxuICBmaWVsZFZhbHVlcyQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0+IHwgdW5kZWZpbmVkID0gb2Yoe30pXG4gIHNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlcjogRXZlbnRFbWl0dGVyPFNlYXJjaENvbmZpZ0RhdGEgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zZWFyY2hDb25maWdDaGFuZ2VkU2xvdEVtaXR0ZXIuc3Vic2NyaWJlKChjb25maWcpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBzZWxlY3RlZFNlYXJjaENvbmZpZzogY29uZmlnPy5uYW1lID8/IG51bGwsXG4gICAgICB9KVxuICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaENvbmZpZ0NoYW5nZWQuZW1pdChjb25maWcpXG4gICAgfSlcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuZmllbGRWYWx1ZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh7fSkpLFxuICAgICAgICB0aGlzLnZpc2libGVGb3JtQ29udHJvbHMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSksXG4gICAgICBdKS5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgbWFwKChbdmFsdWVzLCBfXSkgPT5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyh2YWx1ZXMgPz8ge30pLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgICBba2V5XTogdGhpcy5pc1Zpc2libGUoa2V5KSA/IHZhbHVlIHx8IHVuZGVmaW5lZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRLZXlVcEV2ZW50TGlzdGVuZXIoKVxuICB9XG5cbiAgdG9nZ2xlVmlld01vZGUoKSB7XG4gICAgdGhpcy52aWV3TW9kZSA9IHRoaXMudmlld01vZGUgPT09ICdiYXNpYycgPyAnYWR2YW5jZWQnIDogJ2Jhc2ljJ1xuICB9XG5cbiAgb25SZXNldENsaWNrZWQoKSB7XG4gICAgdGhpcy5yZXNldHRlZC5lbWl0KClcbiAgfVxuXG4gIG9uU2VhcmNoQ2xpY2tlZCgpIHtcbiAgICB0aGlzLnNlYXJjaGVkLmVtaXQoKVxuICB9XG5cbiAgdXBkYXRlSGVhZGVyQWN0aW9ucygpIHtcbiAgICBjb25zdCBoZWFkZXJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gICAgaWYgKHRoaXMuaGFzQWR2YW5jZWQpIHtcbiAgICAgIGhlYWRlckFjdGlvbnMucHVzaCh7XG4gICAgICAgIGlkOiAnc2ltcGxlQWR2YW5jZWRCdXR0b24nLFxuICAgICAgICBsYWJlbEtleTpcbiAgICAgICAgICB0aGlzLnZpZXdNb2RlID09PSAnYmFzaWMnXG4gICAgICAgICAgICA/ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLkFEVkFOQ0VELlRFWFQnXG4gICAgICAgICAgICA6ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLlNJTVBMRS5URVhUJyxcbiAgICAgICAgYWN0aW9uQ2FsbGJhY2s6ICgpID0+IHRoaXMudG9nZ2xlVmlld01vZGUoKSxcbiAgICAgICAgc2hvdzogJ2Fsd2F5cycsXG4gICAgICAgIHRpdGxlS2V5OlxuICAgICAgICAgIHRoaXMudmlld01vZGUgPT09ICdiYXNpYydcbiAgICAgICAgICAgID8gJ09DWF9TRUFSQ0hfSEVBREVSLlRPR0dMRV9CVVRUT04uQURWQU5DRUQuREVUQUlMJ1xuICAgICAgICAgICAgOiAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5TSU1QTEUuREVUQUlMJyxcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuaGVhZGVyQWN0aW9ucyA9IGhlYWRlckFjdGlvbnMuY29uY2F0KHRoaXMuYWN0aW9ucylcbiAgfVxuXG4gIGFkZEtleVVwRXZlbnRMaXN0ZW5lcigpIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnRzID0gdGhpcy5zZWFyY2hQYXJhbWV0ZXJGaWVsZHM/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKVxuICAgIGlucHV0RWxlbWVudHMuZm9yRWFjaCgoaW5wdXRFbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmICghaW5wdXRFbGVtZW50Lmxpc3RlbmVyQWRkZWQpIHtcbiAgICAgICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgKGV2ZW50OiBhbnkpID0+IHRoaXMub25TZWFyY2hLZXl1cChldmVudCkpXG4gICAgICAgIGlucHV0RWxlbWVudC5saXN0ZW5lckFkZGVkID0gdHJ1ZVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBvblNlYXJjaEtleXVwKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5vblNlYXJjaENsaWNrZWQoKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWaXNpYmxlKGNvbnRyb2w6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnZpc2libGVGb3JtQ29udHJvbHMuc29tZShcbiAgICAgIChmb3JtQ29udHJvbCkgPT4gZm9ybUNvbnRyb2wubmFtZSAhPT0gbnVsbCAmJiBTdHJpbmcoZm9ybUNvbnRyb2wubmFtZSkgPT09IGNvbnRyb2xcbiAgICApXG4gIH1cbn1cbiIsIjxvY3gtcGFnZS1oZWFkZXJcbiAgW2hlYWRlcl09XCJoZWFkZXIgfHwgKCdPQ1hfU0VBUkNIX0hFQURFUi5IRUFERVInIHwgdHJhbnNsYXRlKVwiXG4gIFtzdWJoZWFkZXJdPVwic3ViaGVhZGVyXCJcbiAgW21hbnVhbEJyZWFkY3J1bWJzXT1cIm1hbnVhbEJyZWFkY3J1bWJzXCJcbiAgW2FjdGlvbnNdPVwiaGVhZGVyQWN0aW9uc1wiXG4+XG4gIDxuZy10ZW1wbGF0ZSAjYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoQ29uZmlnQ2hhbmdlT2JzZXJ2ZWQgJiYgcGFnZU5hbWVcIj5cbiAgICAgIDxvY3gtc2xvdFxuICAgICAgICAqb2N4SWZQZXJtaXNzaW9uPVwic2VhcmNoQ29uZmlnUGVybWlzc2lvblwiXG4gICAgICAgIG5hbWU9XCJvbmVjeC1zZWFyY2gtY29uZmlnXCJcbiAgICAgICAgW2lucHV0c109XCJ7IHBhZ2VOYW1lOiBwYWdlTmFtZSwgY3VycmVudEZpZWxkVmFsdWVzOiBmaWVsZFZhbHVlcyQgfCBhc3luYywgdmlld01vZGU6IHZpZXdNb2RlIH1cIlxuICAgICAgICBbb3V0cHV0c109XCJ7IHNlYXJjaENvbmZpZ1NlbGVjdGVkOiBzZWFyY2hDb25maWdDaGFuZ2VkU2xvdEVtaXR0ZXIgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgIDxwLXNrZWxldG9uIHdpZHRoPVwiMThyZW1cIiBoZWlnaHQ9XCIzcmVtXCI+PC9wLXNrZWxldG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9vY3gtc2xvdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjYWRkaXRpb25hbFRvb2xiYXJDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZmxleCByb3ctZ2FwLTMgY29sdW1uLWdhcC02IGZsZXgtd3JhcCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiAjc2VhcmNoUGFyYW1ldGVyRmllbGRzPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTJcIj5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInJlc2V0QnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCJyZXNldHRlZC5vYnNlcnZlZFwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uUmVzZXRDbGlja2VkKClcIlxuICAgICAgICBsYWJlbD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uVEVYVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBpY29uPVwicGkgcGktZXJhc2VyXCJcbiAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZXNldEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInNlYXJjaEJ1dHRvblwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuU0VBUkNIX0JVVFRPTi5URVhUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCdXR0b25EaXNhYmxlZCB8fCBmb3JtR3JvdXA/LmludmFsaWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIidPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9vY3gtcGFnZS1oZWFkZXI+XG4iXX0=
|
|
@@ -763,11 +763,11 @@ class SearchHeaderComponent {
|
|
|
763
763
|
return this.visibleFormControls.some((formControl) => formControl.name !== null && String(formControl.name) === control);
|
|
764
764
|
}
|
|
765
765
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
766
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-
|
|
766
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i7.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i9$1.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i1$3.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "component", type: PageHeaderComponent, selector: "ocx-page-header", inputs: ["header", "loading", "figureBackground", "showFigure", "figureImage", "disableDefaultActions", "subheader", "actions", "objectDetails", "showBreadcrumbs", "manualBreadcrumbs", "enableGridView", "gridLayoutDesktopColumns"], outputs: ["save"] }, { kind: "directive", type: IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: ["ocxIfPermission", "ocxIfNotPermission", "onMissingPermission", "ocxIfPermissionPermissions", "ocxIfNotPermissionPermissions", "ocxIfPermissionElseTemplate", "ocxIfNotPermissionElseTemplate"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$2.TranslatePipe, name: "translate" }] }); }
|
|
767
767
|
}
|
|
768
768
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, decorators: [{
|
|
769
769
|
type: Component,
|
|
770
|
-
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-
|
|
770
|
+
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n" }]
|
|
771
771
|
}], ctorParameters: () => [], propDecorators: { header: [{
|
|
772
772
|
type: Input
|
|
773
773
|
}], headline: [{
|
|
@@ -1314,8 +1314,7 @@ class DataSortBase {
|
|
|
1314
1314
|
case FilterType.EQUAL:
|
|
1315
1315
|
return value === filter.value;
|
|
1316
1316
|
case FilterType.TRUTHY: {
|
|
1317
|
-
|
|
1318
|
-
return filter.value ? isTruthy : !isTruthy;
|
|
1317
|
+
return filter.value ? !!value : !value;
|
|
1319
1318
|
}
|
|
1320
1319
|
}
|
|
1321
1320
|
}))),
|
|
@@ -4053,7 +4052,7 @@ class InteractiveDataViewComponent {
|
|
|
4053
4052
|
this.componentStateChanged = new EventEmitter();
|
|
4054
4053
|
this.selectedGroupKey$ = new BehaviorSubject('');
|
|
4055
4054
|
this._data = [];
|
|
4056
|
-
this.columnGroupSlotName = 'onecx-
|
|
4055
|
+
this.columnGroupSlotName = 'onecx-column-group-selection';
|
|
4057
4056
|
this.groupSelectionChangedSlotEmitter = new EventEmitter();
|
|
4058
4057
|
this.isColumnGroupSelectionComponentDefined$ = this.slotService
|
|
4059
4058
|
.isSomeComponentDefinedForSlot(this.columnGroupSlotName)
|