@onecx/angular-accelerator 4.14.2 → 4.15.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/esm2020/lib/components/page-header/page-header.component.mjs +3 -3
- package/esm2020/testing/group-by-count-diagram.harness.mjs +10 -0
- package/esm2020/testing/index.mjs +3 -1
- package/esm2020/testing/page-header.harness.mjs +57 -18
- package/esm2020/testing/search-header.harness.mjs +38 -0
- package/fesm2015/onecx-angular-accelerator-testing.mjs +124 -19
- package/fesm2015/onecx-angular-accelerator-testing.mjs.map +1 -1
- package/fesm2015/onecx-angular-accelerator.mjs +2 -2
- package/fesm2015/onecx-angular-accelerator.mjs.map +1 -1
- package/fesm2020/onecx-angular-accelerator-testing.mjs +98 -18
- package/fesm2020/onecx-angular-accelerator-testing.mjs.map +1 -1
- package/fesm2020/onecx-angular-accelerator.mjs +2 -2
- package/fesm2020/onecx-angular-accelerator.mjs.map +1 -1
- package/package.json +3 -3
- package/testing/group-by-count-diagram.harness.d.ts +6 -0
- package/testing/index.d.ts +2 -0
- package/testing/page-header.harness.d.ts +29 -8
- package/testing/search-header.harness.d.ts +17 -0
|
@@ -153,10 +153,10 @@ export class PageHeaderComponent {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
PageHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageHeaderComponent, deps: [{ token: i1.BreadcrumbService }, { token: i2.TranslateService }, { token: i3.AppStateService }, { token: i3.UserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
156
|
-
PageHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PageHeaderComponent, selector: "ocx-page-header", inputs: { header: "header", loading: "loading", figureBackground: "figureBackground", showFigure: "showFigure", figureImage: "figureImage", disableDefaultActions: "disableDefaultActions", subheader: "subheader", actions: "actions", objectDetails: "objectDetails", showBreadcrumbs: "showBreadcrumbs", manualBreadcrumbs: "manualBreadcrumbs" }, outputs: { save: "save" }, queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"onecx-page-header\" name=\"ocx-page-header-wrapper\">\n <ng-container *ngIf=\"showBreadcrumbs\">\n <p-breadcrumb\n [model]=\"items\"\n *ngIf=\"breadcrumbs$ | async as items\"\n [home]=\"(home$ | async)?.menuItem ?? {}\"\n [homeAriaLabel]=\"(home$ | async)?.page ? ('OCX_PAGE_HEADER.HOME_ARIA_LABEL' | translate: { page: (home$ | async)?.page}) : ('OCX_PAGE_HEADER.HOME_DEFAULT_ARIA_LABEL' | translate)\"\n [attr.manual]=\"manualBreadcrumbs\"\n ></p-breadcrumb>\n </ng-container>\n <div class=\"title-bar flex flex-row md:justify-content-between p-2 md:p-3\">\n <div class=\"title-wrap\">\n <div class=\"figure flex h-2rem w-2rem md:h-3rem md:w-3rem\" *ngIf=\"showFigure\">\n <div #previewImage class=\"figure-image absolute top-0 left-0 right-0 bottom-0\">\n <ng-content select=\"[figureImage]\"></ng-content>\n <img *ngIf=\"figureImage\" [src]=\"figureImage\" alt=\"Figure image\" class=\"w-full\" />\n </div>\n <div class=\"colorblob flex-1 border-round\" *ngIf=\"previewImage.children.length === 0\"></div>\n </div>\n <ng-template #skeletonBar>\n <div class=\"header justify-content-evenly\">\n <p-skeleton width=\"10rem\"></p-skeleton>\n <p-skeleton width=\"10rem\"></p-skeleton>\n </div>\n </ng-template>\n <div class=\"header\" *ngIf=\"!loading; else skeletonBar\">\n <h1 *ngIf=\"!!header\">{{ header }}</h1>\n <h2 *ngIf=\"!!subheader\">{{ subheader }}</h2>\n </div>\n </div>\n <div class=\"action-items-wrap mt-2 md:mt-0\">\n <ng-container *ngIf=\"additionalToolbarContentLeft\" [ngTemplateOutlet]=\"additionalToolbarContentLeft\"> </ng-container>\n\n <ng-container *ngIf=\"!disableDefaultActions\"> </ng-container>\n <ng-template #skeletonActions>\n <div class=\"flex\">\n <p-skeleton width=\"5rem\" height=\"2rem\" styleClass=\"mr-2\"></p-skeleton>\n <p-skeleton width=\"2rem\" height=\"2rem\" styleClass=\"mb-2\"></p-skeleton>\n </div>\n </ng-template>\n <ng-container *ngIf=\"!loading; else skeletonActions\">\n <div *ngIf=\"inlineActions && inlineActions.length > 0\" class=\"toolbar flex flex-wrap gap-1 sm:gap-2\">\n <ng-container *ngFor=\"let action of inlineActions\">\n <p-button\n id=\"{{ action.id }}\"\n [icon]=\"action.icon ?? ''\"\n type=\"button\"\n class=\"action-button\"\n [label]=\"action.labelKey ? (action.labelKey | translate) : action.label\"\n (onClick)=\"action.actionCallback()\"\n [title]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n [disabled]=\"action.disabled ? action.disabled : false\"\n [attr.name]=\"action.icon ? 'ocx-page-header-inline-action-icon-button' : 'ocx-page-header-inline-action-button'\"\n [ariaLabel]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n ></p-button>\n </ng-container>\n </div>\n <ng-content select=\"[toolbarItems]\"></ng-content>\n <ng-container>\n <div *ngIf=\"overflowActions.length !== 0\">\n <button\n id=\"pageHeaderMenuButton\"\n type=\"button\"\n pButton\n icon=\"pi pi-ellipsis-v\"\n title=\"{{ 'OCX_PAGE_HEADER.MORE_ACTIONS' | translate }}\"\n class=\"more-actions-menu-button action-button ml-2\"\n (click)=\"menu.toggle($event)\"\n name=\"ocx-page-header-overflow-action-button\"\n [ariaLabel]=\"('OCX_PAGE_HEADER.MORE_ACTIONS' | translate)\"\n ></button>\n <p-menu #menu [popup]=\"true\" [model]=\"overflowActions\" appendTo=\"body\"></p-menu>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"additionalToolbarContent\" [ngTemplateOutlet]=\"additionalToolbarContent\"> </ng-container>\n </div>\n </div>\n\n <div\n class=\"object-panel flex-column md:flex-row\"\n [class.justify-content-evenly]=\"objectDetails\"\n [class.justify-content-start]=\"!objectDetails\"\n >\n <ng-container *ngIf=\"objectDetails\">\n <div\n class=\"object-info flex flex-row md:flex-column align-items-baseline md:align-items-center justify-content-between\"\n *ngFor=\"let item of objectDetails\"\n >\n <label class=\"flex font-medium text-600\" name=\"object-detail-label\">{{ item.label | dynamicPipe:item.labelPipe }}</label>\n <span\n *ngIf=\"item.icon || item.value\"\n class=\"flex text-900 mt-2\"\n [ngClass]=\"item.icon ? 'gap-1 align-items-center' : null\"\n [title]=\"item.tooltip || ''\"\n name=\"object-detail-value\"\n >\n <i *ngIf=\"item.icon\" class=\"{{item.icon}}\" name=\"object-detail-icon\"></i>\n {{ item.value | dynamicPipe:item.valuePipe:item.valuePipeArgs}}</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host(.p-button-label){font-weight:400}:host ::ng-deep .action-button{padding:.5rem;font-weight:400}.onecx-page-header{display:flex;flex-flow:column;border-radius:.25rem;overflow:hidden;background:#fff;box-shadow:0 2px 2px #0000001a;border:1px solid #cdd0d3}.onecx-page-header .title-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;background-color:#f8f9fa;border-top-right-radius:inherit;border-top-left-radius:inherit}.onecx-page-header .title-bar .figure{width:3rem;height:3rem;margin-right:.5rem;position:relative}.onecx-page-header .title-bar .figure .figure-image img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.onecx-page-header .title-bar .figure .colorblob{background-color:var(--primary-color);position:absolute;inset:0}.onecx-page-header .title-bar .title-wrap{display:flex;flex-flow:row;align-items:center;gap:.25rem}.onecx-page-header .title-bar .title-wrap .header{display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.onecx-page-header .title-bar .title-wrap h1{font-size:1em;font-weight:700;margin:0;padding:0}.onecx-page-header .title-bar .title-wrap h2{font-size:1em;font-weight:400;margin:0;padding:0}.onecx-page-header .title-bar .action-items-wrap{display:flex;height:-moz-fit-content;height:fit-content;gap:.5rem;align-items:center;justify-content:space-between}.onecx-page-header .title-bar .action-items-wrap button{padding:.5rem}.onecx-page-header .object-panel{border-top:1px solid #cdd0d3;padding:1rem;display:flex}.onecx-page-header .object-panel:empty{display:none}.badge-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.scale{transform:scale(2)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i7.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i8.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.DynamicPipe, name: "dynamicPipe" }], encapsulation: i0.ViewEncapsulation.None });
|
|
156
|
+
PageHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PageHeaderComponent, selector: "ocx-page-header", inputs: { header: "header", loading: "loading", figureBackground: "figureBackground", showFigure: "showFigure", figureImage: "figureImage", disableDefaultActions: "disableDefaultActions", subheader: "subheader", actions: "actions", objectDetails: "objectDetails", showBreadcrumbs: "showBreadcrumbs", manualBreadcrumbs: "manualBreadcrumbs" }, outputs: { save: "save" }, queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"onecx-page-header\" name=\"ocx-page-header-wrapper\">\n <ng-container *ngIf=\"showBreadcrumbs\">\n <p-breadcrumb\n [model]=\"items\"\n *ngIf=\"breadcrumbs$ | async as items\"\n [home]=\"(home$ | async)?.menuItem ?? {}\"\n [homeAriaLabel]=\"(home$ | async)?.page ? ('OCX_PAGE_HEADER.HOME_ARIA_LABEL' | translate: { page: (home$ | async)?.page}) : ('OCX_PAGE_HEADER.HOME_DEFAULT_ARIA_LABEL' | translate)\"\n [attr.manual]=\"manualBreadcrumbs\"\n ></p-breadcrumb>\n </ng-container>\n <div class=\"title-bar flex flex-row md:justify-content-between p-2 md:p-3\">\n <div class=\"title-wrap\">\n <div class=\"figure flex h-2rem w-2rem md:h-3rem md:w-3rem\" *ngIf=\"showFigure\">\n <div #previewImage class=\"figure-image absolute top-0 left-0 right-0 bottom-0\">\n <ng-content select=\"[figureImage]\"></ng-content>\n <img *ngIf=\"figureImage\" [src]=\"figureImage\" alt=\"Figure image\" class=\"w-full\" />\n </div>\n <div class=\"colorblob flex-1 border-round\" *ngIf=\"previewImage.children.length === 0\"></div>\n </div>\n <ng-template #skeletonBar>\n <div class=\"header justify-content-evenly\">\n <p-skeleton width=\"10rem\"></p-skeleton>\n <p-skeleton width=\"10rem\"></p-skeleton>\n </div>\n </ng-template>\n <div class=\"header\" *ngIf=\"!loading; else skeletonBar\">\n <h1 id=\"page-header\" *ngIf=\"!!header\">{{ header }}</h1>\n <h2 id='page-subheader' *ngIf=\"!!subheader\">{{ subheader }}</h2>\n </div>\n </div>\n <div class=\"action-items-wrap mt-2 md:mt-0\">\n <ng-container *ngIf=\"additionalToolbarContentLeft\" [ngTemplateOutlet]=\"additionalToolbarContentLeft\"> </ng-container>\n\n <ng-container *ngIf=\"!disableDefaultActions\"> </ng-container>\n <ng-template #skeletonActions>\n <div class=\"flex\">\n <p-skeleton width=\"5rem\" height=\"2rem\" styleClass=\"mr-2\"></p-skeleton>\n <p-skeleton width=\"2rem\" height=\"2rem\" styleClass=\"mb-2\"></p-skeleton>\n </div>\n </ng-template>\n <ng-container *ngIf=\"!loading; else skeletonActions\">\n <div *ngIf=\"inlineActions && inlineActions.length > 0\" class=\"toolbar flex flex-wrap gap-1 sm:gap-2\">\n <ng-container *ngFor=\"let action of inlineActions\">\n <p-button\n id=\"{{ action.id }}\"\n [icon]=\"action.icon ?? ''\"\n type=\"button\"\n class=\"action-button\"\n [label]=\"action.labelKey ? (action.labelKey | translate) : action.label\"\n (onClick)=\"action.actionCallback()\"\n [title]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n [disabled]=\"action.disabled ? action.disabled : false\"\n [attr.name]=\"action.icon ? 'ocx-page-header-inline-action-icon-button' : 'ocx-page-header-inline-action-button'\"\n [ariaLabel]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n ></p-button>\n </ng-container>\n </div>\n <ng-content select=\"[toolbarItems]\"></ng-content>\n <ng-container>\n <div *ngIf=\"overflowActions.length !== 0\">\n <button\n id=\"pageHeaderMenuButton\"\n type=\"button\"\n pButton\n icon=\"pi pi-ellipsis-v\"\n title=\"{{ 'OCX_PAGE_HEADER.MORE_ACTIONS' | translate }}\"\n class=\"more-actions-menu-button action-button ml-2\"\n (click)=\"menu.toggle($event)\"\n name=\"ocx-page-header-overflow-action-button\"\n [ariaLabel]=\"('OCX_PAGE_HEADER.MORE_ACTIONS' | translate)\"\n ></button>\n <p-menu #menu [popup]=\"true\" [model]=\"overflowActions\" appendTo=\"body\"></p-menu>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"additionalToolbarContent\" [ngTemplateOutlet]=\"additionalToolbarContent\"> </ng-container>\n </div>\n </div>\n\n <div\n class=\"object-panel flex-column md:flex-row\"\n [class.justify-content-evenly]=\"objectDetails\"\n [class.justify-content-start]=\"!objectDetails\"\n >\n <ng-container *ngIf=\"objectDetails\">\n <div\n class=\"object-info flex flex-row md:flex-column align-items-baseline md:align-items-center justify-content-between\"\n *ngFor=\"let item of objectDetails\"\n >\n <label class=\"flex font-medium text-600\" name=\"object-detail-label\">{{ item.label | dynamicPipe:item.labelPipe }}</label>\n <span\n *ngIf=\"item.icon || item.value\"\n class=\"flex text-900 mt-2\"\n [ngClass]=\"item.icon ? 'gap-1 align-items-center' : null\"\n [title]=\"item.tooltip || ''\"\n name=\"object-detail-value\"\n >\n <i *ngIf=\"item.icon\" class=\"{{item.icon}}\" name=\"object-detail-icon\"></i>\n {{ item.value | dynamicPipe:item.valuePipe:item.valuePipeArgs}}</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host(.p-button-label){font-weight:400}:host ::ng-deep .action-button{padding:.5rem;font-weight:400}.onecx-page-header{display:flex;flex-flow:column;border-radius:.25rem;overflow:hidden;background:#fff;box-shadow:0 2px 2px #0000001a;border:1px solid #cdd0d3}.onecx-page-header .title-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;background-color:#f8f9fa;border-top-right-radius:inherit;border-top-left-radius:inherit}.onecx-page-header .title-bar .figure{width:3rem;height:3rem;margin-right:.5rem;position:relative}.onecx-page-header .title-bar .figure .figure-image img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.onecx-page-header .title-bar .figure .colorblob{background-color:var(--primary-color);position:absolute;inset:0}.onecx-page-header .title-bar .title-wrap{display:flex;flex-flow:row;align-items:center;gap:.25rem}.onecx-page-header .title-bar .title-wrap .header{display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.onecx-page-header .title-bar .title-wrap h1{font-size:1em;font-weight:700;margin:0;padding:0}.onecx-page-header .title-bar .title-wrap h2{font-size:1em;font-weight:400;margin:0;padding:0}.onecx-page-header .title-bar .action-items-wrap{display:flex;height:-moz-fit-content;height:fit-content;gap:.5rem;align-items:center;justify-content:space-between}.onecx-page-header .title-bar .action-items-wrap button{padding:.5rem}.onecx-page-header .object-panel{border-top:1px solid #cdd0d3;padding:1rem;display:flex}.onecx-page-header .object-panel:empty{display:none}.badge-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.scale{transform:scale(2)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i6.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i7.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i8.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "pipe", type: i9.DynamicPipe, name: "dynamicPipe" }], encapsulation: i0.ViewEncapsulation.None });
|
|
157
157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PageHeaderComponent, decorators: [{
|
|
158
158
|
type: Component,
|
|
159
|
-
args: [{ selector: 'ocx-page-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"onecx-page-header\" name=\"ocx-page-header-wrapper\">\n <ng-container *ngIf=\"showBreadcrumbs\">\n <p-breadcrumb\n [model]=\"items\"\n *ngIf=\"breadcrumbs$ | async as items\"\n [home]=\"(home$ | async)?.menuItem ?? {}\"\n [homeAriaLabel]=\"(home$ | async)?.page ? ('OCX_PAGE_HEADER.HOME_ARIA_LABEL' | translate: { page: (home$ | async)?.page}) : ('OCX_PAGE_HEADER.HOME_DEFAULT_ARIA_LABEL' | translate)\"\n [attr.manual]=\"manualBreadcrumbs\"\n ></p-breadcrumb>\n </ng-container>\n <div class=\"title-bar flex flex-row md:justify-content-between p-2 md:p-3\">\n <div class=\"title-wrap\">\n <div class=\"figure flex h-2rem w-2rem md:h-3rem md:w-3rem\" *ngIf=\"showFigure\">\n <div #previewImage class=\"figure-image absolute top-0 left-0 right-0 bottom-0\">\n <ng-content select=\"[figureImage]\"></ng-content>\n <img *ngIf=\"figureImage\" [src]=\"figureImage\" alt=\"Figure image\" class=\"w-full\" />\n </div>\n <div class=\"colorblob flex-1 border-round\" *ngIf=\"previewImage.children.length === 0\"></div>\n </div>\n <ng-template #skeletonBar>\n <div class=\"header justify-content-evenly\">\n <p-skeleton width=\"10rem\"></p-skeleton>\n <p-skeleton width=\"10rem\"></p-skeleton>\n </div>\n </ng-template>\n <div class=\"header\" *ngIf=\"!loading; else skeletonBar\">\n <h1 *ngIf=\"!!header\">{{ header }}</h1>\n <h2 *ngIf=\"!!subheader\">{{ subheader }}</h2>\n </div>\n </div>\n <div class=\"action-items-wrap mt-2 md:mt-0\">\n <ng-container *ngIf=\"additionalToolbarContentLeft\" [ngTemplateOutlet]=\"additionalToolbarContentLeft\"> </ng-container>\n\n <ng-container *ngIf=\"!disableDefaultActions\"> </ng-container>\n <ng-template #skeletonActions>\n <div class=\"flex\">\n <p-skeleton width=\"5rem\" height=\"2rem\" styleClass=\"mr-2\"></p-skeleton>\n <p-skeleton width=\"2rem\" height=\"2rem\" styleClass=\"mb-2\"></p-skeleton>\n </div>\n </ng-template>\n <ng-container *ngIf=\"!loading; else skeletonActions\">\n <div *ngIf=\"inlineActions && inlineActions.length > 0\" class=\"toolbar flex flex-wrap gap-1 sm:gap-2\">\n <ng-container *ngFor=\"let action of inlineActions\">\n <p-button\n id=\"{{ action.id }}\"\n [icon]=\"action.icon ?? ''\"\n type=\"button\"\n class=\"action-button\"\n [label]=\"action.labelKey ? (action.labelKey | translate) : action.label\"\n (onClick)=\"action.actionCallback()\"\n [title]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n [disabled]=\"action.disabled ? action.disabled : false\"\n [attr.name]=\"action.icon ? 'ocx-page-header-inline-action-icon-button' : 'ocx-page-header-inline-action-button'\"\n [ariaLabel]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n ></p-button>\n </ng-container>\n </div>\n <ng-content select=\"[toolbarItems]\"></ng-content>\n <ng-container>\n <div *ngIf=\"overflowActions.length !== 0\">\n <button\n id=\"pageHeaderMenuButton\"\n type=\"button\"\n pButton\n icon=\"pi pi-ellipsis-v\"\n title=\"{{ 'OCX_PAGE_HEADER.MORE_ACTIONS' | translate }}\"\n class=\"more-actions-menu-button action-button ml-2\"\n (click)=\"menu.toggle($event)\"\n name=\"ocx-page-header-overflow-action-button\"\n [ariaLabel]=\"('OCX_PAGE_HEADER.MORE_ACTIONS' | translate)\"\n ></button>\n <p-menu #menu [popup]=\"true\" [model]=\"overflowActions\" appendTo=\"body\"></p-menu>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"additionalToolbarContent\" [ngTemplateOutlet]=\"additionalToolbarContent\"> </ng-container>\n </div>\n </div>\n\n <div\n class=\"object-panel flex-column md:flex-row\"\n [class.justify-content-evenly]=\"objectDetails\"\n [class.justify-content-start]=\"!objectDetails\"\n >\n <ng-container *ngIf=\"objectDetails\">\n <div\n class=\"object-info flex flex-row md:flex-column align-items-baseline md:align-items-center justify-content-between\"\n *ngFor=\"let item of objectDetails\"\n >\n <label class=\"flex font-medium text-600\" name=\"object-detail-label\">{{ item.label | dynamicPipe:item.labelPipe }}</label>\n <span\n *ngIf=\"item.icon || item.value\"\n class=\"flex text-900 mt-2\"\n [ngClass]=\"item.icon ? 'gap-1 align-items-center' : null\"\n [title]=\"item.tooltip || ''\"\n name=\"object-detail-value\"\n >\n <i *ngIf=\"item.icon\" class=\"{{item.icon}}\" name=\"object-detail-icon\"></i>\n {{ item.value | dynamicPipe:item.valuePipe:item.valuePipeArgs}}</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host(.p-button-label){font-weight:400}:host ::ng-deep .action-button{padding:.5rem;font-weight:400}.onecx-page-header{display:flex;flex-flow:column;border-radius:.25rem;overflow:hidden;background:#fff;box-shadow:0 2px 2px #0000001a;border:1px solid #cdd0d3}.onecx-page-header .title-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;background-color:#f8f9fa;border-top-right-radius:inherit;border-top-left-radius:inherit}.onecx-page-header .title-bar .figure{width:3rem;height:3rem;margin-right:.5rem;position:relative}.onecx-page-header .title-bar .figure .figure-image img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.onecx-page-header .title-bar .figure .colorblob{background-color:var(--primary-color);position:absolute;inset:0}.onecx-page-header .title-bar .title-wrap{display:flex;flex-flow:row;align-items:center;gap:.25rem}.onecx-page-header .title-bar .title-wrap .header{display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.onecx-page-header .title-bar .title-wrap h1{font-size:1em;font-weight:700;margin:0;padding:0}.onecx-page-header .title-bar .title-wrap h2{font-size:1em;font-weight:400;margin:0;padding:0}.onecx-page-header .title-bar .action-items-wrap{display:flex;height:-moz-fit-content;height:fit-content;gap:.5rem;align-items:center;justify-content:space-between}.onecx-page-header .title-bar .action-items-wrap button{padding:.5rem}.onecx-page-header .object-panel{border-top:1px solid #cdd0d3;padding:1rem;display:flex}.onecx-page-header .object-panel:empty{display:none}.badge-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.scale{transform:scale(2)}\n"] }]
|
|
159
|
+
args: [{ selector: 'ocx-page-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"onecx-page-header\" name=\"ocx-page-header-wrapper\">\n <ng-container *ngIf=\"showBreadcrumbs\">\n <p-breadcrumb\n [model]=\"items\"\n *ngIf=\"breadcrumbs$ | async as items\"\n [home]=\"(home$ | async)?.menuItem ?? {}\"\n [homeAriaLabel]=\"(home$ | async)?.page ? ('OCX_PAGE_HEADER.HOME_ARIA_LABEL' | translate: { page: (home$ | async)?.page}) : ('OCX_PAGE_HEADER.HOME_DEFAULT_ARIA_LABEL' | translate)\"\n [attr.manual]=\"manualBreadcrumbs\"\n ></p-breadcrumb>\n </ng-container>\n <div class=\"title-bar flex flex-row md:justify-content-between p-2 md:p-3\">\n <div class=\"title-wrap\">\n <div class=\"figure flex h-2rem w-2rem md:h-3rem md:w-3rem\" *ngIf=\"showFigure\">\n <div #previewImage class=\"figure-image absolute top-0 left-0 right-0 bottom-0\">\n <ng-content select=\"[figureImage]\"></ng-content>\n <img *ngIf=\"figureImage\" [src]=\"figureImage\" alt=\"Figure image\" class=\"w-full\" />\n </div>\n <div class=\"colorblob flex-1 border-round\" *ngIf=\"previewImage.children.length === 0\"></div>\n </div>\n <ng-template #skeletonBar>\n <div class=\"header justify-content-evenly\">\n <p-skeleton width=\"10rem\"></p-skeleton>\n <p-skeleton width=\"10rem\"></p-skeleton>\n </div>\n </ng-template>\n <div class=\"header\" *ngIf=\"!loading; else skeletonBar\">\n <h1 id=\"page-header\" *ngIf=\"!!header\">{{ header }}</h1>\n <h2 id='page-subheader' *ngIf=\"!!subheader\">{{ subheader }}</h2>\n </div>\n </div>\n <div class=\"action-items-wrap mt-2 md:mt-0\">\n <ng-container *ngIf=\"additionalToolbarContentLeft\" [ngTemplateOutlet]=\"additionalToolbarContentLeft\"> </ng-container>\n\n <ng-container *ngIf=\"!disableDefaultActions\"> </ng-container>\n <ng-template #skeletonActions>\n <div class=\"flex\">\n <p-skeleton width=\"5rem\" height=\"2rem\" styleClass=\"mr-2\"></p-skeleton>\n <p-skeleton width=\"2rem\" height=\"2rem\" styleClass=\"mb-2\"></p-skeleton>\n </div>\n </ng-template>\n <ng-container *ngIf=\"!loading; else skeletonActions\">\n <div *ngIf=\"inlineActions && inlineActions.length > 0\" class=\"toolbar flex flex-wrap gap-1 sm:gap-2\">\n <ng-container *ngFor=\"let action of inlineActions\">\n <p-button\n id=\"{{ action.id }}\"\n [icon]=\"action.icon ?? ''\"\n type=\"button\"\n class=\"action-button\"\n [label]=\"action.labelKey ? (action.labelKey | translate) : action.label\"\n (onClick)=\"action.actionCallback()\"\n [title]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n [disabled]=\"action.disabled ? action.disabled : false\"\n [attr.name]=\"action.icon ? 'ocx-page-header-inline-action-icon-button' : 'ocx-page-header-inline-action-button'\"\n [ariaLabel]=\"(action.titleKey ? (action.titleKey | translate) : action.title) || (action.labelKey ? (action.labelKey | translate) : action.label)\"\n ></p-button>\n </ng-container>\n </div>\n <ng-content select=\"[toolbarItems]\"></ng-content>\n <ng-container>\n <div *ngIf=\"overflowActions.length !== 0\">\n <button\n id=\"pageHeaderMenuButton\"\n type=\"button\"\n pButton\n icon=\"pi pi-ellipsis-v\"\n title=\"{{ 'OCX_PAGE_HEADER.MORE_ACTIONS' | translate }}\"\n class=\"more-actions-menu-button action-button ml-2\"\n (click)=\"menu.toggle($event)\"\n name=\"ocx-page-header-overflow-action-button\"\n [ariaLabel]=\"('OCX_PAGE_HEADER.MORE_ACTIONS' | translate)\"\n ></button>\n <p-menu #menu [popup]=\"true\" [model]=\"overflowActions\" appendTo=\"body\"></p-menu>\n </div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"additionalToolbarContent\" [ngTemplateOutlet]=\"additionalToolbarContent\"> </ng-container>\n </div>\n </div>\n\n <div\n class=\"object-panel flex-column md:flex-row\"\n [class.justify-content-evenly]=\"objectDetails\"\n [class.justify-content-start]=\"!objectDetails\"\n >\n <ng-container *ngIf=\"objectDetails\">\n <div\n class=\"object-info flex flex-row md:flex-column align-items-baseline md:align-items-center justify-content-between\"\n *ngFor=\"let item of objectDetails\"\n >\n <label class=\"flex font-medium text-600\" name=\"object-detail-label\">{{ item.label | dynamicPipe:item.labelPipe }}</label>\n <span\n *ngIf=\"item.icon || item.value\"\n class=\"flex text-900 mt-2\"\n [ngClass]=\"item.icon ? 'gap-1 align-items-center' : null\"\n [title]=\"item.tooltip || ''\"\n name=\"object-detail-value\"\n >\n <i *ngIf=\"item.icon\" class=\"{{item.icon}}\" name=\"object-detail-icon\"></i>\n {{ item.value | dynamicPipe:item.valuePipe:item.valuePipeArgs}}</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [":host(.p-button-label){font-weight:400}:host ::ng-deep .action-button{padding:.5rem;font-weight:400}.onecx-page-header{display:flex;flex-flow:column;border-radius:.25rem;overflow:hidden;background:#fff;box-shadow:0 2px 2px #0000001a;border:1px solid #cdd0d3}.onecx-page-header .title-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;background-color:#f8f9fa;border-top-right-radius:inherit;border-top-left-radius:inherit}.onecx-page-header .title-bar .figure{width:3rem;height:3rem;margin-right:.5rem;position:relative}.onecx-page-header .title-bar .figure .figure-image img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.onecx-page-header .title-bar .figure .colorblob{background-color:var(--primary-color);position:absolute;inset:0}.onecx-page-header .title-bar .title-wrap{display:flex;flex-flow:row;align-items:center;gap:.25rem}.onecx-page-header .title-bar .title-wrap .header{display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.onecx-page-header .title-bar .title-wrap h1{font-size:1em;font-weight:700;margin:0;padding:0}.onecx-page-header .title-bar .title-wrap h2{font-size:1em;font-weight:400;margin:0;padding:0}.onecx-page-header .title-bar .action-items-wrap{display:flex;height:-moz-fit-content;height:fit-content;gap:.5rem;align-items:center;justify-content:space-between}.onecx-page-header .title-bar .action-items-wrap button{padding:.5rem}.onecx-page-header .object-panel{border-top:1px solid #cdd0d3;padding:1rem;display:flex}.onecx-page-header .object-panel:empty{display:none}.badge-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.scale{transform:scale(2)}\n"] }]
|
|
160
160
|
}], ctorParameters: function () { return [{ type: i1.BreadcrumbService }, { type: i2.TranslateService }, { type: i3.AppStateService }, { type: i3.UserService }]; }, propDecorators: { header: [{
|
|
161
161
|
type: Input
|
|
162
162
|
}], loading: [{
|
|
@@ -188,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
188
188
|
type: ContentChild,
|
|
189
189
|
args: ['additionalToolbarContentLeft']
|
|
190
190
|
}] } });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUlOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7Ozs7Ozs7OztBQWdEckUsTUFBTSxPQUFPLG1CQUFtQjtJQXdCOUIsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDNUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7SUFD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O1lBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyRCxrRUFBa0U7Z0JBQ2xFLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDNUI7U0FDRjthQUFNO1lBQ0wsOERBQThEO1lBQzlELGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDNUI7SUFDSCxDQUFDOztpSEF2TFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsOHJCQ2xFaEMsdXFLQXlHQTs0RkR2Q2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJOytMQUk5QixNQUFNO3NCQURaLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFLRixPQUFPO3NCQURWLEtBQUs7Z0JBV04sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxNQUFNO2dCQUlQLHdCQUF3QjtzQkFEdkIsWUFBWTt1QkFBQywwQkFBMEI7Z0JBSXhDLDRCQUE0QjtzQkFEM0IsWUFBWTt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNZW51SXRlbSwgUHJpbWVJY29ucyB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgY29uY2F0LCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UnXG5pbXBvcnQgeyBQcmltZUljb24gfSBmcm9tICcuLi8uLi91dGlscy9wcmltZWljb24udXRpbHMnXG5cbi8qKlxuICogQWN0aW9uIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbiAgaWQ/OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgbGFiZWxLZXk/OiBzdHJpbmdcbiAgaWNvbj86IHN0cmluZ1xuICAvKipcbiAgICogUGVybWlzc2lvbiBmb3IgdGhpcyBhY3Rpb24uIElmIHRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSB0aGlzIHBlcm1pc3Npb24sIHRoZSBhY3Rpb24gd2lsbCBub3QgYmUgc2hvd24uXG4gICAqL1xuICBwZXJtaXNzaW9uPzogc3RyaW5nXG4gIHRpdGxlPzogc3RyaW5nXG4gIHRpdGxlS2V5Pzogc3RyaW5nXG4gIGJ0bkNsYXNzPzogc3RyaW5nXG4gIGFjdGlvbkNhbGxiYWNrKCk6IHZvaWRcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIHNob3c/OiAnYWx3YXlzJyB8ICdhc092ZXJmbG93J1xuICBjb25kaXRpb25hbD86IGJvb2xlYW5cbiAgLy8gTm90ZTogVGhpcyBjdXJyZW50bHkgZG9lc24ndCB3b3JrIHdpdGggZHluYW1pYyB2YWx1ZXMsIHNpbmNlIGEgcGFzc2VkIGluIEFjdGlvbiBpcyBqdXN0IGEgY29weSBvZiB0aGUgb3JpZ2luYWwgb2JqZWN0LlxuICAvLyBBcyBhIHdvcmthcm91bmQsIHlvdSBjYW4gbWFudWFsbHkgdXBkYXRlL3JlcGxhY2UgdGhlIHBhc3NlZCBpbiBBY3Rpb24gaWYgeW91IHdpc2ggdG8gdXBkYXRlIGEgc2hvd0NvbmRpdGlvblxuICBzaG93Q29uZGl0aW9uPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdERldGFpbEl0ZW0ge1xuICBsYWJlbDogc3RyaW5nXG4gIHZhbHVlPzogc3RyaW5nXG4gIHRvb2x0aXA/OiBzdHJpbmdcbiAgaWNvbj86IFByaW1lSWNvblxuICBsYWJlbFBpcGU/OiBUeXBlPGFueT5cbiAgdmFsdWVQaXBlPzogVHlwZTxhbnk+XG4gIHZhbHVlUGlwZUFyZ3M/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb21lSXRlbSB7XG4gIG1lbnVJdGVtOiBNZW51SXRlbVxuICBwYWdlPzogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1wYWdlLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGZpZ3VyZUJhY2tncm91bmQgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2hvd0ZpZ3VyZSA9IHRydWVcblxuICAvL2ltYWdlIGZvdCBwcmV2aWV3IGluIHRvcC1oZWFkZXIgbGVmdCBzaWRlXG4gIEBJbnB1dCgpXG4gIGZpZ3VyZUltYWdlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBkaXNhYmxlRGVmYXVsdEFjdGlvbnMgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIHN1YmhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgX2FjdGlvbnM6IEFjdGlvbltdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zXG4gIH1cbiAgc2V0IGFjdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gdmFsdWVcbiAgICB0aGlzLmdlbmVyYXRlSW5saW5lQWN0aW9ucygpXG4gICAgdGhpcy5nZW5lcmF0ZU92ZXJmbG93QWN0aW9ucygpXG4gIH1cblxuICBASW5wdXQoKVxuICBvYmplY3REZXRhaWxzOiBPYmplY3REZXRhaWxJdGVtW10gfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBzaG93QnJlYWRjcnVtYnMgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgbWFudWFsQnJlYWRjcnVtYnMgPSBmYWxzZVxuXG4gIEBPdXRwdXQoKVxuICBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgQENvbnRlbnRDaGlsZCgnYWRkaXRpb25hbFRvb2xiYXJDb250ZW50JylcbiAgYWRkaXRpb25hbFRvb2xiYXJDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgQENvbnRlbnRDaGlsZCgnYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdCcpXG4gIGFkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBvdmVyZmxvd0FjdGlvbnM6IE1lbnVJdGVtW10gPSBbXVxuICBpbmxpbmVBY3Rpb25zOiBBY3Rpb25bXSB8IHVuZGVmaW5lZFxuICBkZCA9IG5ldyBEYXRlKClcbiAgYnJlYWRjcnVtYnMkITogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPlxuXG4gIGhvbWUkITogT2JzZXJ2YWJsZTxIb21lSXRlbT5cblxuICBwcm90ZWN0ZWQgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJTZXJ2aWNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBicmVhZGNydW1ic1xuICAgIHRoaXMuaG9tZSQgPSBjb25jYXQoXG4gICAgICBvZih7IG1lbnVJdGVtOiB7IGljb246IFByaW1lSWNvbnMuSE9NRSwgcm91dGVyTGluazogJy8nIH0gfSksXG4gICAgICB0aGlzLmFwcFN0YXRlU2VydmljZS5jdXJyZW50UG9ydGFsJC5waXBlKFxuICAgICAgICBtYXAoKHBvcnRhbCkgPT4gKHtcbiAgICAgICAgICBtZW51SXRlbToge1xuICAgICAgICAgICAgaWNvbjogUHJpbWVJY29ucy5IT01FLFxuICAgICAgICAgICAgcm91dGVyTGluazogcG9ydGFsLmJhc2VVcmwsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYWdlOiBwb3J0YWwucG9ydGFsTmFtZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snYWN0aW9ucyddKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlSW5saW5lQWN0aW9ucygpXG4gICAgICB0aGlzLmdlbmVyYXRlT3ZlcmZsb3dBY3Rpb25zKClcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFudWFsQnJlYWRjcnVtYnMpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYnMkID0gdGhpcy5icmVhZGNydW1icy5nZW5lcmF0ZWRJdGVtc1NvdXJjZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJyZWFkY3J1bWJzJCA9IHRoaXMuYnJlYWRjcnVtYnMuaXRlbXNIYW5kbGVyXG4gICAgfVxuICAgIHRoaXMuZ2VuZXJhdGVJbmxpbmVBY3Rpb25zKClcbiAgICB0aGlzLmdlbmVyYXRlT3ZlcmZsb3dBY3Rpb25zKClcbiAgfVxuXG4gIG9uQWN0aW9uKGFjdGlvbjogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3NhdmUnOlxuICAgICAgICB0aGlzLnNhdmUuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBsaXN0IG9mIGFjdGlvbnMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgaW4gYW4gb3ZlcmZsb3cgbWVudVxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZU92ZXJmbG93QWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGlvbktleXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAuLi50aGlzLmFjdGlvbnMubWFwKChhKSA9PiBhLmxhYmVsS2V5IHx8ICcnKS5maWx0ZXIoKGEpID0+ICEhYSksXG4gICAgICAgIC4uLnRoaXMuYWN0aW9ucy5tYXAoKGEpID0+IGEudGl0bGVLZXkgfHwgJycpLmZpbHRlcigoYSkgPT4gISFhKSxcbiAgICAgIF1cbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9ucyQgPSB0cmFuc2xhdGlvbktleXMubGVuZ3RoID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0cmFuc2xhdGlvbktleXMpIDogb2YoW10pXG4gICAgICB0cmFuc2xhdGlvbnMkLnN1YnNjcmliZSgodHJhbnNsYXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbG93ZWRBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc2hvdyA9PT0gJ2FzT3ZlcmZsb3cnKVxuICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYS5jb25kaXRpb25hbCkge1xuICAgICAgICAgICAgICAgIGlmIChhLnNob3dDb25kaXRpb24pIHJldHVybiBhXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgfSBlbHNlIHJldHVybiBhXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uUGVybWlzc2lvbihhbGxvd2VkQWN0aW9ucywgYWN0aW9uKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLm92ZXJmbG93QWN0aW9ucyA9IFtcbiAgICAgICAgICAgIC4uLmFsbG93ZWRBY3Rpb25zLm1hcDxNZW51SXRlbT4oKGEpID0+ICh7XG4gICAgICAgICAgICAgIGxhYmVsOiBhLmxhYmVsS2V5ID8gdHJhbnNsYXRpb25zW2EubGFiZWxLZXldIDogYS5sYWJlbCxcbiAgICAgICAgICAgICAgaWNvbjogYS5pY29uLFxuICAgICAgICAgICAgICB0aXRsZTpcbiAgICAgICAgICAgICAgICAoYS50aXRsZUtleSA/IHRyYW5zbGF0aW9uc1thLnRpdGxlS2V5XSA6IGEudGl0bGUpIHx8IChhLmxhYmVsS2V5ID8gdHJhbnNsYXRpb25zW2EubGFiZWxLZXldIDogYS5sYWJlbCksXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IGEuYWN0aW9uQ2FsbGJhY2ssXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBhLmRpc2FibGVkLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgbGlzdCBvZiBhY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGlubGluZSBidXR0b25zXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlSW5saW5lQWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICAvLyBUZW1wIGFycmF5IHRvIGhvbGQgYWxsIGlubGluZSBhY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIGN1cnJlbnQgdXNlclxuICAgICAgY29uc3QgYWxsb3dlZEFjdGlvbnM6IEFjdGlvbltdID0gW11cbiAgICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGZvciBhbGwgYWN0aW9ucyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCAnYWx3YXlzJ1xuICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc2hvdyA9PT0gJ2Fsd2F5cycpXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IHtcbiAgICAgICAgICBpZiAoYS5jb25kaXRpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGEuc2hvd0NvbmRpdGlvbiA/IGEgOiBudWxsXG4gICAgICAgICAgfSBlbHNlIHJldHVybiBhXG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uUGVybWlzc2lvbihhbGxvd2VkQWN0aW9ucywgYWN0aW9uKVxuICAgICAgICB9KVxuICAgICAgdGhpcy5pbmxpbmVBY3Rpb25zID0gWy4uLmFsbG93ZWRBY3Rpb25zXVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQWRkcyBhIGdpdmVuIGFjdGlvbiB0byBhIGdpdmVuIGFycmF5IGlmIHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBzZWUgaXRcbiAgICogQHBhcmFtIGFsbG93ZWRBY3Rpb25zIEFycmF5IHRoYXQgdGhlIGFjdGlvbiBzaG91bGQgYmUgYWRkZWQgdG8gaWYgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIHNlZSBpdFxuICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiBmb3Igd2hpY2ggYSBwZXJtaXNzaW9uIGNoZWNrIHNob3VsZCBiZSBleGVjdXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0FjdGlvblBlcm1pc3Npb24oYWxsb3dlZEFjdGlvbnM6IEFjdGlvbltdLCBhY3Rpb246IEFjdGlvbikge1xuICAgIGlmIChhY3Rpb24ucGVybWlzc2lvbikge1xuICAgICAgaWYgKHRoaXMudXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbihhY3Rpb24ucGVybWlzc2lvbikpIHtcbiAgICAgICAgLy8gUHVzaCBhY3Rpb24gdG8gYWxsb3dlZCBhcnJheSBpZiB1c2VyIGhhcyBzdWZmaWNpZW50IHBlcm1pc3Npb25zXG4gICAgICAgIGFsbG93ZWRBY3Rpb25zLnB1c2goYWN0aW9uKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQdXNoIGFjdGlvbiB0byBhbGxvd2VkIGFycmF5IGlmIG5vIHBlcm1pc3Npb24gd2FzIHNwZWNpZmllZFxuICAgICAgYWxsb3dlZEFjdGlvbnMucHVzaChhY3Rpb24pXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib25lY3gtcGFnZS1oZWFkZXJcIiBuYW1lPVwib2N4LXBhZ2UtaGVhZGVyLXdyYXBwZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dCcmVhZGNydW1ic1wiPlxuICAgIDxwLWJyZWFkY3J1bWJcbiAgICAgIFttb2RlbF09XCJpdGVtc1wiXG4gICAgICAqbmdJZj1cImJyZWFkY3J1bWJzJCB8IGFzeW5jICBhcyBpdGVtc1wiXG4gICAgICBbaG9tZV09XCIoaG9tZSQgfCBhc3luYyk/Lm1lbnVJdGVtID8/IHt9XCJcbiAgICAgIFtob21lQXJpYUxhYmVsXT1cIihob21lJCB8IGFzeW5jKT8ucGFnZSA/ICgnT0NYX1BBR0VfSEVBREVSLkhPTUVfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGU6IHsgcGFnZTogKGhvbWUkIHwgYXN5bmMpPy5wYWdlfSkgOiAoJ09DWF9QQUdFX0hFQURFUi5IT01FX0RFRkFVTFRfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgIFthdHRyLm1hbnVhbF09XCJtYW51YWxCcmVhZGNydW1ic1wiXG4gICAgPjwvcC1icmVhZGNydW1iPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cInRpdGxlLWJhciBmbGV4IGZsZXgtcm93IG1kOmp1c3RpZnktY29udGVudC1iZXR3ZWVuIHAtMiBtZDpwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtd3JhcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZ3VyZSBmbGV4IGgtMnJlbSB3LTJyZW0gbWQ6aC0zcmVtIG1kOnctM3JlbVwiICpuZ0lmPVwic2hvd0ZpZ3VyZVwiPlxuICAgICAgICA8ZGl2ICNwcmV2aWV3SW1hZ2UgY2xhc3M9XCJmaWd1cmUtaW1hZ2UgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgYm90dG9tLTBcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmlndXJlSW1hZ2VdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJmaWd1cmVJbWFnZVwiIFtzcmNdPVwiZmlndXJlSW1hZ2VcIiBhbHQ9XCJGaWd1cmUgaW1hZ2VcIiBjbGFzcz1cInctZnVsbFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3JibG9iIGZsZXgtMSBib3JkZXItcm91bmRcIiAqbmdJZj1cInByZXZpZXdJbWFnZS5jaGlsZHJlbi5sZW5ndGggPT09IDBcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbkJhcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtZXZlbmx5XCI+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMHJlbVwiPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEwcmVtXCI+PC9wLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBza2VsZXRvbkJhclwiPlxuICAgICAgICA8aDEgKm5nSWY9XCIhIWhlYWRlclwiPnt7IGhlYWRlciB9fTwvaDE+XG4gICAgICAgIDxoMiAqbmdJZj1cIiEhc3ViaGVhZGVyXCI+e3sgc3ViaGVhZGVyIH19PC9oMj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24taXRlbXMtd3JhcCBtdC0yIG1kOm10LTBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdFwiPiA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlRGVmYXVsdEFjdGlvbnNcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3NrZWxldG9uQWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjVyZW1cIiBoZWlnaHQ9XCIycmVtXCIgc3R5bGVDbGFzcz1cIm1yLTJcIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIycmVtXCIgaGVpZ2h0PVwiMnJlbVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCI+PC9wLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2Ugc2tlbGV0b25BY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpbmxpbmVBY3Rpb25zICYmIGlubGluZUFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwidG9vbGJhciBmbGV4IGZsZXgtd3JhcCBnYXAtMSBzbTpnYXAtMlwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpbmxpbmVBY3Rpb25zXCI+XG4gICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgaWQ9XCJ7eyBhY3Rpb24uaWQgfX1cIlxuICAgICAgICAgICAgICBbaWNvbl09XCJhY3Rpb24uaWNvbiA/PyAnJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsS2V5ID8gKGFjdGlvbi5sYWJlbEtleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24ubGFiZWxcIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJhY3Rpb24uYWN0aW9uQ2FsbGJhY2soKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCIoYWN0aW9uLnRpdGxlS2V5ID8gKGFjdGlvbi50aXRsZUtleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24udGl0bGUpIHx8IChhY3Rpb24ubGFiZWxLZXkgPyAoYWN0aW9uLmxhYmVsS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkID8gYWN0aW9uLmRpc2FibGVkIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImFjdGlvbi5pY29uID8gJ29jeC1wYWdlLWhlYWRlci1pbmxpbmUtYWN0aW9uLWljb24tYnV0dG9uJyA6ICdvY3gtcGFnZS1oZWFkZXItaW5saW5lLWFjdGlvbi1idXR0b24nXCJcbiAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIoYWN0aW9uLnRpdGxlS2V5ID8gKGFjdGlvbi50aXRsZUtleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24udGl0bGUpIHx8IChhY3Rpb24ubGFiZWxLZXkgPyAoYWN0aW9uLmxhYmVsS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbClcIlxuICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9vbGJhckl0ZW1zXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3ZlcmZsb3dBY3Rpb25zLmxlbmd0aCAhPT0gMFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBpZD1cInBhZ2VIZWFkZXJNZW51QnV0dG9uXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdPQ1hfUEFHRV9IRUFERVIuTU9SRV9BQ1RJT05TJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibW9yZS1hY3Rpb25zLW1lbnUtYnV0dG9uIGFjdGlvbi1idXR0b24gbWwtMlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgbmFtZT1cIm9jeC1wYWdlLWhlYWRlci1vdmVyZmxvdy1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIoJ09DWF9QQUdFX0hFQURFUi5NT1JFX0FDVElPTlMnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8cC1tZW51ICNtZW51IFtwb3B1cF09XCJ0cnVlXCIgW21vZGVsXT1cIm92ZXJmbG93QWN0aW9uc1wiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZGl0aW9uYWxUb29sYmFyQ29udGVudFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZGl0aW9uYWxUb29sYmFyQ29udGVudFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwib2JqZWN0LXBhbmVsIGZsZXgtY29sdW1uIG1kOmZsZXgtcm93XCJcbiAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LWV2ZW5seV09XCJvYmplY3REZXRhaWxzXCJcbiAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LXN0YXJ0XT1cIiFvYmplY3REZXRhaWxzXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYmplY3REZXRhaWxzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwib2JqZWN0LWluZm8gZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iYXNlbGluZSBtZDphbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvYmplY3REZXRhaWxzXCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBmb250LW1lZGl1bSB0ZXh0LTYwMFwiIG5hbWU9XCJvYmplY3QtZGV0YWlsLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB8IGR5bmFtaWNQaXBlOml0ZW0ubGFiZWxQaXBlIH19PC9sYWJlbD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvbiB8fCBpdGVtLnZhbHVlXCJcbiAgICAgICAgICBjbGFzcz1cImZsZXggdGV4dC05MDAgbXQtMlwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5pY29uID8gJ2dhcC0xIGFsaWduLWl0ZW1zLWNlbnRlcicgOiBudWxsXCJcbiAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50b29sdGlwIHx8ICcnXCJcbiAgICAgICAgICBuYW1lPVwib2JqZWN0LWRldGFpbC12YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uaWNvblwiIGNsYXNzPVwie3tpdGVtLmljb259fVwiIG5hbWU9XCJvYmplY3QtZGV0YWlsLWljb25cIj48L2k+XG4gICAgICAgICAge3sgaXRlbS52YWx1ZSB8IGR5bmFtaWNQaXBlOml0ZW0udmFsdWVQaXBlOml0ZW0udmFsdWVQaXBlQXJnc319PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3NyYy9saWIvY29tcG9uZW50cy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUlOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN0RCxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOzs7Ozs7Ozs7OztBQWdEckUsTUFBTSxPQUFPLG1CQUFtQjtJQXdCOUIsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7UUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDNUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7SUFD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O1lBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyRCxrRUFBa0U7Z0JBQ2xFLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDNUI7U0FDRjthQUFNO1lBQ0wsOERBQThEO1lBQzlELGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDNUI7SUFDSCxDQUFDOztpSEF2TFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsOHJCQ2xFaEMsOHNLQXlHQTs0RkR2Q2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJOytMQUk5QixNQUFNO3NCQURaLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4scUJBQXFCO3NCQURwQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFLRixPQUFPO3NCQURWLEtBQUs7Z0JBV04sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxNQUFNO2dCQUlQLHdCQUF3QjtzQkFEdkIsWUFBWTt1QkFBQywwQkFBMEI7Z0JBSXhDLDRCQUE0QjtzQkFEM0IsWUFBWTt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFR5cGUsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNZW51SXRlbSwgUHJpbWVJY29ucyB9IGZyb20gJ3ByaW1lbmcvYXBpJ1xuaW1wb3J0IHsgY29uY2F0LCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UnXG5pbXBvcnQgeyBQcmltZUljb24gfSBmcm9tICcuLi8uLi91dGlscy9wcmltZWljb24udXRpbHMnXG5cbi8qKlxuICogQWN0aW9uIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uIHtcbiAgaWQ/OiBzdHJpbmdcbiAgbGFiZWw/OiBzdHJpbmdcbiAgbGFiZWxLZXk/OiBzdHJpbmdcbiAgaWNvbj86IHN0cmluZ1xuICAvKipcbiAgICogUGVybWlzc2lvbiBmb3IgdGhpcyBhY3Rpb24uIElmIHRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSB0aGlzIHBlcm1pc3Npb24sIHRoZSBhY3Rpb24gd2lsbCBub3QgYmUgc2hvd24uXG4gICAqL1xuICBwZXJtaXNzaW9uPzogc3RyaW5nXG4gIHRpdGxlPzogc3RyaW5nXG4gIHRpdGxlS2V5Pzogc3RyaW5nXG4gIGJ0bkNsYXNzPzogc3RyaW5nXG4gIGFjdGlvbkNhbGxiYWNrKCk6IHZvaWRcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIHNob3c/OiAnYWx3YXlzJyB8ICdhc092ZXJmbG93J1xuICBjb25kaXRpb25hbD86IGJvb2xlYW5cbiAgLy8gTm90ZTogVGhpcyBjdXJyZW50bHkgZG9lc24ndCB3b3JrIHdpdGggZHluYW1pYyB2YWx1ZXMsIHNpbmNlIGEgcGFzc2VkIGluIEFjdGlvbiBpcyBqdXN0IGEgY29weSBvZiB0aGUgb3JpZ2luYWwgb2JqZWN0LlxuICAvLyBBcyBhIHdvcmthcm91bmQsIHlvdSBjYW4gbWFudWFsbHkgdXBkYXRlL3JlcGxhY2UgdGhlIHBhc3NlZCBpbiBBY3Rpb24gaWYgeW91IHdpc2ggdG8gdXBkYXRlIGEgc2hvd0NvbmRpdGlvblxuICBzaG93Q29uZGl0aW9uPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdERldGFpbEl0ZW0ge1xuICBsYWJlbDogc3RyaW5nXG4gIHZhbHVlPzogc3RyaW5nXG4gIHRvb2x0aXA/OiBzdHJpbmdcbiAgaWNvbj86IFByaW1lSWNvblxuICBsYWJlbFBpcGU/OiBUeXBlPGFueT5cbiAgdmFsdWVQaXBlPzogVHlwZTxhbnk+XG4gIHZhbHVlUGlwZUFyZ3M/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIb21lSXRlbSB7XG4gIG1lbnVJdGVtOiBNZW51SXRlbVxuICBwYWdlPzogc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1wYWdlLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2VIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmcgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIGZpZ3VyZUJhY2tncm91bmQgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2hvd0ZpZ3VyZSA9IHRydWVcblxuICAvL2ltYWdlIGZvdCBwcmV2aWV3IGluIHRvcC1oZWFkZXIgbGVmdCBzaWRlXG4gIEBJbnB1dCgpXG4gIGZpZ3VyZUltYWdlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBkaXNhYmxlRGVmYXVsdEFjdGlvbnMgPSBmYWxzZVxuXG4gIEBJbnB1dCgpXG4gIHN1YmhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgX2FjdGlvbnM6IEFjdGlvbltdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zXG4gIH1cbiAgc2V0IGFjdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gdmFsdWVcbiAgICB0aGlzLmdlbmVyYXRlSW5saW5lQWN0aW9ucygpXG4gICAgdGhpcy5nZW5lcmF0ZU92ZXJmbG93QWN0aW9ucygpXG4gIH1cblxuICBASW5wdXQoKVxuICBvYmplY3REZXRhaWxzOiBPYmplY3REZXRhaWxJdGVtW10gfCB1bmRlZmluZWRcblxuICBASW5wdXQoKVxuICBzaG93QnJlYWRjcnVtYnMgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgbWFudWFsQnJlYWRjcnVtYnMgPSBmYWxzZVxuXG4gIEBPdXRwdXQoKVxuICBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgQENvbnRlbnRDaGlsZCgnYWRkaXRpb25hbFRvb2xiYXJDb250ZW50JylcbiAgYWRkaXRpb25hbFRvb2xiYXJDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgQENvbnRlbnRDaGlsZCgnYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdCcpXG4gIGFkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBvdmVyZmxvd0FjdGlvbnM6IE1lbnVJdGVtW10gPSBbXVxuICBpbmxpbmVBY3Rpb25zOiBBY3Rpb25bXSB8IHVuZGVmaW5lZFxuICBkZCA9IG5ldyBEYXRlKClcbiAgYnJlYWRjcnVtYnMkITogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPlxuXG4gIGhvbWUkITogT2JzZXJ2YWJsZTxIb21lSXRlbT5cblxuICBwcm90ZWN0ZWQgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJTZXJ2aWNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgYnJlYWRjcnVtYnM6IEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGFwcFN0YXRlU2VydmljZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBicmVhZGNydW1ic1xuICAgIHRoaXMuaG9tZSQgPSBjb25jYXQoXG4gICAgICBvZih7IG1lbnVJdGVtOiB7IGljb246IFByaW1lSWNvbnMuSE9NRSwgcm91dGVyTGluazogJy8nIH0gfSksXG4gICAgICB0aGlzLmFwcFN0YXRlU2VydmljZS5jdXJyZW50UG9ydGFsJC5waXBlKFxuICAgICAgICBtYXAoKHBvcnRhbCkgPT4gKHtcbiAgICAgICAgICBtZW51SXRlbToge1xuICAgICAgICAgICAgaWNvbjogUHJpbWVJY29ucy5IT01FLFxuICAgICAgICAgICAgcm91dGVyTGluazogcG9ydGFsLmJhc2VVcmwsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYWdlOiBwb3J0YWwucG9ydGFsTmFtZSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snYWN0aW9ucyddKSB7XG4gICAgICB0aGlzLmdlbmVyYXRlSW5saW5lQWN0aW9ucygpXG4gICAgICB0aGlzLmdlbmVyYXRlT3ZlcmZsb3dBY3Rpb25zKClcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFudWFsQnJlYWRjcnVtYnMpIHtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYnMkID0gdGhpcy5icmVhZGNydW1icy5nZW5lcmF0ZWRJdGVtc1NvdXJjZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJyZWFkY3J1bWJzJCA9IHRoaXMuYnJlYWRjcnVtYnMuaXRlbXNIYW5kbGVyXG4gICAgfVxuICAgIHRoaXMuZ2VuZXJhdGVJbmxpbmVBY3Rpb25zKClcbiAgICB0aGlzLmdlbmVyYXRlT3ZlcmZsb3dBY3Rpb25zKClcbiAgfVxuXG4gIG9uQWN0aW9uKGFjdGlvbjogc3RyaW5nKSB7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3NhdmUnOlxuICAgICAgICB0aGlzLnNhdmUuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBsaXN0IG9mIGFjdGlvbnMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgaW4gYW4gb3ZlcmZsb3cgbWVudVxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZU92ZXJmbG93QWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICBjb25zdCB0cmFuc2xhdGlvbktleXM6IHN0cmluZ1tdID0gW1xuICAgICAgICAuLi50aGlzLmFjdGlvbnMubWFwKChhKSA9PiBhLmxhYmVsS2V5IHx8ICcnKS5maWx0ZXIoKGEpID0+ICEhYSksXG4gICAgICAgIC4uLnRoaXMuYWN0aW9ucy5tYXAoKGEpID0+IGEudGl0bGVLZXkgfHwgJycpLmZpbHRlcigoYSkgPT4gISFhKSxcbiAgICAgIF1cbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9ucyQgPSB0cmFuc2xhdGlvbktleXMubGVuZ3RoID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldCh0cmFuc2xhdGlvbktleXMpIDogb2YoW10pXG4gICAgICB0cmFuc2xhdGlvbnMkLnN1YnNjcmliZSgodHJhbnNsYXRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbG93ZWRBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbnMpIHtcbiAgICAgICAgICB0aGlzLmFjdGlvbnNcbiAgICAgICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc2hvdyA9PT0gJ2FzT3ZlcmZsb3cnKVxuICAgICAgICAgICAgLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYS5jb25kaXRpb25hbCkge1xuICAgICAgICAgICAgICAgIGlmIChhLnNob3dDb25kaXRpb24pIHJldHVybiBhXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgfSBlbHNlIHJldHVybiBhXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uUGVybWlzc2lvbihhbGxvd2VkQWN0aW9ucywgYWN0aW9uKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB0aGlzLm92ZXJmbG93QWN0aW9ucyA9IFtcbiAgICAgICAgICAgIC4uLmFsbG93ZWRBY3Rpb25zLm1hcDxNZW51SXRlbT4oKGEpID0+ICh7XG4gICAgICAgICAgICAgIGxhYmVsOiBhLmxhYmVsS2V5ID8gdHJhbnNsYXRpb25zW2EubGFiZWxLZXldIDogYS5sYWJlbCxcbiAgICAgICAgICAgICAgaWNvbjogYS5pY29uLFxuICAgICAgICAgICAgICB0aXRsZTpcbiAgICAgICAgICAgICAgICAoYS50aXRsZUtleSA/IHRyYW5zbGF0aW9uc1thLnRpdGxlS2V5XSA6IGEudGl0bGUpIHx8IChhLmxhYmVsS2V5ID8gdHJhbnNsYXRpb25zW2EubGFiZWxLZXldIDogYS5sYWJlbCksXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IGEuYWN0aW9uQ2FsbGJhY2ssXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBhLmRpc2FibGVkLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgbGlzdCBvZiBhY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGlubGluZSBidXR0b25zXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlSW5saW5lQWN0aW9ucygpIHtcbiAgICBpZiAodGhpcy5hY3Rpb25zKSB7XG4gICAgICAvLyBUZW1wIGFycmF5IHRvIGhvbGQgYWxsIGlubGluZSBhY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHZpc2libGUgdG8gdGhlIGN1cnJlbnQgdXNlclxuICAgICAgY29uc3QgYWxsb3dlZEFjdGlvbnM6IEFjdGlvbltdID0gW11cbiAgICAgIC8vIENoZWNrIHBlcm1pc3Npb25zIGZvciBhbGwgYWN0aW9ucyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCAnYWx3YXlzJ1xuICAgICAgdGhpcy5hY3Rpb25zXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc2hvdyA9PT0gJ2Fsd2F5cycpXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IHtcbiAgICAgICAgICBpZiAoYS5jb25kaXRpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIGEuc2hvd0NvbmRpdGlvbiA/IGEgOiBudWxsXG4gICAgICAgICAgfSBlbHNlIHJldHVybiBhXG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgICB0aGlzLmNoZWNrQWN0aW9uUGVybWlzc2lvbihhbGxvd2VkQWN0aW9ucywgYWN0aW9uKVxuICAgICAgICB9KVxuICAgICAgdGhpcy5pbmxpbmVBY3Rpb25zID0gWy4uLmFsbG93ZWRBY3Rpb25zXVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogQWRkcyBhIGdpdmVuIGFjdGlvbiB0byBhIGdpdmVuIGFycmF5IGlmIHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBzZWUgaXRcbiAgICogQHBhcmFtIGFsbG93ZWRBY3Rpb25zIEFycmF5IHRoYXQgdGhlIGFjdGlvbiBzaG91bGQgYmUgYWRkZWQgdG8gaWYgdGhlIGN1cnJlbnQgdXNlciBpcyBhbGxvd2VkIHRvIHNlZSBpdFxuICAgKiBAcGFyYW0gYWN0aW9uIEFjdGlvbiBmb3Igd2hpY2ggYSBwZXJtaXNzaW9uIGNoZWNrIHNob3VsZCBiZSBleGVjdXRlZFxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0FjdGlvblBlcm1pc3Npb24oYWxsb3dlZEFjdGlvbnM6IEFjdGlvbltdLCBhY3Rpb246IEFjdGlvbikge1xuICAgIGlmIChhY3Rpb24ucGVybWlzc2lvbikge1xuICAgICAgaWYgKHRoaXMudXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbihhY3Rpb24ucGVybWlzc2lvbikpIHtcbiAgICAgICAgLy8gUHVzaCBhY3Rpb24gdG8gYWxsb3dlZCBhcnJheSBpZiB1c2VyIGhhcyBzdWZmaWNpZW50IHBlcm1pc3Npb25zXG4gICAgICAgIGFsbG93ZWRBY3Rpb25zLnB1c2goYWN0aW9uKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQdXNoIGFjdGlvbiB0byBhbGxvd2VkIGFycmF5IGlmIG5vIHBlcm1pc3Npb24gd2FzIHNwZWNpZmllZFxuICAgICAgYWxsb3dlZEFjdGlvbnMucHVzaChhY3Rpb24pXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib25lY3gtcGFnZS1oZWFkZXJcIiBuYW1lPVwib2N4LXBhZ2UtaGVhZGVyLXdyYXBwZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dCcmVhZGNydW1ic1wiPlxuICAgIDxwLWJyZWFkY3J1bWJcbiAgICAgIFttb2RlbF09XCJpdGVtc1wiXG4gICAgICAqbmdJZj1cImJyZWFkY3J1bWJzJCB8IGFzeW5jICBhcyBpdGVtc1wiXG4gICAgICBbaG9tZV09XCIoaG9tZSQgfCBhc3luYyk/Lm1lbnVJdGVtID8/IHt9XCJcbiAgICAgIFtob21lQXJpYUxhYmVsXT1cIihob21lJCB8IGFzeW5jKT8ucGFnZSA/ICgnT0NYX1BBR0VfSEVBREVSLkhPTUVfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGU6IHsgcGFnZTogKGhvbWUkIHwgYXN5bmMpPy5wYWdlfSkgOiAoJ09DWF9QQUdFX0hFQURFUi5IT01FX0RFRkFVTFRfQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGUpXCJcbiAgICAgIFthdHRyLm1hbnVhbF09XCJtYW51YWxCcmVhZGNydW1ic1wiXG4gICAgPjwvcC1icmVhZGNydW1iPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cInRpdGxlLWJhciBmbGV4IGZsZXgtcm93IG1kOmp1c3RpZnktY29udGVudC1iZXR3ZWVuIHAtMiBtZDpwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtd3JhcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZpZ3VyZSBmbGV4IGgtMnJlbSB3LTJyZW0gbWQ6aC0zcmVtIG1kOnctM3JlbVwiICpuZ0lmPVwic2hvd0ZpZ3VyZVwiPlxuICAgICAgICA8ZGl2ICNwcmV2aWV3SW1hZ2UgY2xhc3M9XCJmaWd1cmUtaW1hZ2UgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgYm90dG9tLTBcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmlndXJlSW1hZ2VdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDxpbWcgKm5nSWY9XCJmaWd1cmVJbWFnZVwiIFtzcmNdPVwiZmlndXJlSW1hZ2VcIiBhbHQ9XCJGaWd1cmUgaW1hZ2VcIiBjbGFzcz1cInctZnVsbFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3JibG9iIGZsZXgtMSBib3JkZXItcm91bmRcIiAqbmdJZj1cInByZXZpZXdJbWFnZS5jaGlsZHJlbi5sZW5ndGggPT09IDBcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbkJhcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtZXZlbmx5XCI+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxMHJlbVwiPjwvcC1za2VsZXRvbj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjEwcmVtXCI+PC9wLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBza2VsZXRvbkJhclwiPlxuICAgICAgICA8aDEgaWQ9XCJwYWdlLWhlYWRlclwiICpuZ0lmPVwiISFoZWFkZXJcIj57eyBoZWFkZXIgfX08L2gxPlxuICAgICAgICA8aDIgaWQ9J3BhZ2Utc3ViaGVhZGVyJyAqbmdJZj1cIiEhc3ViaGVhZGVyXCI+e3sgc3ViaGVhZGVyIH19PC9oMj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24taXRlbXMtd3JhcCBtdC0yIG1kOm10LTBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdFwiPiA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlRGVmYXVsdEFjdGlvbnNcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3NrZWxldG9uQWN0aW9ucz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICA8cC1za2VsZXRvbiB3aWR0aD1cIjVyZW1cIiBoZWlnaHQ9XCIycmVtXCIgc3R5bGVDbGFzcz1cIm1yLTJcIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIycmVtXCIgaGVpZ2h0PVwiMnJlbVwiIHN0eWxlQ2xhc3M9XCJtYi0yXCI+PC9wLXNrZWxldG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2Ugc2tlbGV0b25BY3Rpb25zXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpbmxpbmVBY3Rpb25zICYmIGlubGluZUFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwidG9vbGJhciBmbGV4IGZsZXgtd3JhcCBnYXAtMSBzbTpnYXAtMlwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpbmxpbmVBY3Rpb25zXCI+XG4gICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgaWQ9XCJ7eyBhY3Rpb24uaWQgfX1cIlxuICAgICAgICAgICAgICBbaWNvbl09XCJhY3Rpb24uaWNvbiA/PyAnJ1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsS2V5ID8gKGFjdGlvbi5sYWJlbEtleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24ubGFiZWxcIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJhY3Rpb24uYWN0aW9uQ2FsbGJhY2soKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCIoYWN0aW9uLnRpdGxlS2V5ID8gKGFjdGlvbi50aXRsZUtleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24udGl0bGUpIHx8IChhY3Rpb24ubGFiZWxLZXkgPyAoYWN0aW9uLmxhYmVsS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkID8gYWN0aW9uLmRpc2FibGVkIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbYXR0ci5uYW1lXT1cImFjdGlvbi5pY29uID8gJ29jeC1wYWdlLWhlYWRlci1pbmxpbmUtYWN0aW9uLWljb24tYnV0dG9uJyA6ICdvY3gtcGFnZS1oZWFkZXItaW5saW5lLWFjdGlvbi1idXR0b24nXCJcbiAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIoYWN0aW9uLnRpdGxlS2V5ID8gKGFjdGlvbi50aXRsZUtleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24udGl0bGUpIHx8IChhY3Rpb24ubGFiZWxLZXkgPyAoYWN0aW9uLmxhYmVsS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbClcIlxuICAgICAgICAgICAgPjwvcC1idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9vbGJhckl0ZW1zXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3ZlcmZsb3dBY3Rpb25zLmxlbmd0aCAhPT0gMFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBpZD1cInBhZ2VIZWFkZXJNZW51QnV0dG9uXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdPQ1hfUEFHRV9IRUFERVIuTU9SRV9BQ1RJT05TJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibW9yZS1hY3Rpb25zLW1lbnUtYnV0dG9uIGFjdGlvbi1idXR0b24gbWwtMlwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgbmFtZT1cIm9jeC1wYWdlLWhlYWRlci1vdmVyZmxvdy1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIoJ09DWF9QQUdFX0hFQURFUi5NT1JFX0FDVElPTlMnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8cC1tZW51ICNtZW51IFtwb3B1cF09XCJ0cnVlXCIgW21vZGVsXT1cIm92ZXJmbG93QWN0aW9uc1wiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZGl0aW9uYWxUb29sYmFyQ29udGVudFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZGl0aW9uYWxUb29sYmFyQ29udGVudFwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwib2JqZWN0LXBhbmVsIGZsZXgtY29sdW1uIG1kOmZsZXgtcm93XCJcbiAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LWV2ZW5seV09XCJvYmplY3REZXRhaWxzXCJcbiAgICBbY2xhc3MuanVzdGlmeS1jb250ZW50LXN0YXJ0XT1cIiFvYmplY3REZXRhaWxzXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvYmplY3REZXRhaWxzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwib2JqZWN0LWluZm8gZmxleCBmbGV4LXJvdyBtZDpmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iYXNlbGluZSBtZDphbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvYmplY3REZXRhaWxzXCJcbiAgICAgID5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmxleCBmb250LW1lZGl1bSB0ZXh0LTYwMFwiIG5hbWU9XCJvYmplY3QtZGV0YWlsLWxhYmVsXCI+e3sgaXRlbS5sYWJlbCB8IGR5bmFtaWNQaXBlOml0ZW0ubGFiZWxQaXBlIH19PC9sYWJlbD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvbiB8fCBpdGVtLnZhbHVlXCJcbiAgICAgICAgICBjbGFzcz1cImZsZXggdGV4dC05MDAgbXQtMlwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiaXRlbS5pY29uID8gJ2dhcC0xIGFsaWduLWl0ZW1zLWNlbnRlcicgOiBudWxsXCJcbiAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50b29sdGlwIHx8ICcnXCJcbiAgICAgICAgICBuYW1lPVwib2JqZWN0LWRldGFpbC12YWx1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uaWNvblwiIGNsYXNzPVwie3tpdGVtLmljb259fVwiIG5hbWU9XCJvYmplY3QtZGV0YWlsLWljb25cIj48L2k+XG4gICAgICAgICAge3sgaXRlbS52YWx1ZSB8IGR5bmFtaWNQaXBlOml0ZW0udmFsdWVQaXBlOml0ZW0udmFsdWVQaXBlQXJnc319PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentHarness } from '@angular/cdk/testing';
|
|
2
|
+
import { DiagramHarness } from './diagram.harness';
|
|
3
|
+
export class GroupByCountDiagramHarness extends ComponentHarness {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.getDiagram = this.locatorFor(DiagramHarness);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
GroupByCountDiagramHarness.hostSelector = 'ocx-group-by-count-diagram';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3Rlc3RpbmcvZ3JvdXAtYnktY291bnQtZGlhZ3JhbS5oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVsRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQWdCO0lBQWhFOztRQUdJLGVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7O0FBSFUsdUNBQVksR0FBRyw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZydcbmltcG9ydCB7IERpYWdyYW1IYXJuZXNzIH0gZnJvbSAnLi9kaWFncmFtLmhhcm5lc3MnXG5cbmV4cG9ydCBjbGFzcyBHcm91cEJ5Q291bnREaWFncmFtSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICAgIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnb2N4LWdyb3VwLWJ5LWNvdW50LWRpYWdyYW0nXG5cbiAgICBnZXREaWFncmFtID0gdGhpcy5sb2NhdG9yRm9yKERpYWdyYW1IYXJuZXNzKVxufSJdfQ==
|
|
@@ -7,11 +7,13 @@ export * from './data-view.harness';
|
|
|
7
7
|
export * from './default-grid-item.harness';
|
|
8
8
|
export * from './default-list-item.harness';
|
|
9
9
|
export * from './diagram.harness';
|
|
10
|
+
export * from './group-by-count-diagram.harness';
|
|
10
11
|
export * from './interactive-data-view.harness';
|
|
11
12
|
export * from './more-actions-menu-button.harness';
|
|
12
13
|
export * from './page-header.harness';
|
|
13
14
|
export * from './search-config.harness';
|
|
15
|
+
export * from './search-header.harness';
|
|
14
16
|
export * from '@angular/cdk/testing';
|
|
15
17
|
export * from '@angular/cdk/testing/testbed';
|
|
16
18
|
export * from '@onecx/angular-testing';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3IvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYyx3QkFBd0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29sdW1uLWdyb3VwLXNlbGVjdGlvbi5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tZ3JvdXAtY29sdW1uLXNlbGVjdG9yLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtbGF5b3V0LXNlbGVjdGlvbi5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWxpc3QtZ3JpZC5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXRhYmxlLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdmlldy5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWdyaWQtaXRlbS5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LWxpc3QtaXRlbS5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kaWFncmFtLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2dyb3VwLWJ5LWNvdW50LWRpYWdyYW0uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3Lmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL21vcmUtYWN0aW9ucy1tZW51LWJ1dHRvbi5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlLWhlYWRlci5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtY29uZmlnLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1oZWFkZXIuaGFybmVzcydcblxuZXhwb3J0ICogZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnXG5leHBvcnQgKiBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZy90ZXN0YmVkJ1xuZXhwb3J0ICogZnJvbSAnQG9uZWN4L2FuZ3VsYXItdGVzdGluZydcbiJdfQ==
|
|
@@ -1,36 +1,75 @@
|
|
|
1
|
-
import { ComponentHarness } from '@angular/cdk/testing';
|
|
2
|
-
import { PMenuHarness } from '@onecx/angular-testing';
|
|
1
|
+
import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
2
|
+
import { PBreadcrumbHarness, PButtonHarness, PMenuHarness, } from '@onecx/angular-testing';
|
|
3
3
|
export class PageHeaderHarness extends ComponentHarness {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.getPageHeaderWrapperHarness = this.locatorForAll('[name="ocx-page-header-wrapper"]');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return await this.locatorForAll('[name="ocx-page-header-inline-action-button"]')();
|
|
10
|
-
}
|
|
11
|
-
async getOverflowActionButtons() {
|
|
12
|
-
return await this.locatorForAll('[name="ocx-page-header-overflow-action-button"]')();
|
|
7
|
+
this.getBreadcrumb = this.locatorForOptional(PBreadcrumbHarness);
|
|
8
|
+
this.getMenu = this.locatorForOptional(PMenuHarness);
|
|
13
9
|
}
|
|
14
10
|
async getElementByTitle(title) {
|
|
15
11
|
return await this.locatorForOptional(`[title="${title}"]`)();
|
|
16
12
|
}
|
|
17
13
|
async getObjectInfos() {
|
|
18
|
-
return await this.locatorForAll(
|
|
14
|
+
return await this.locatorForAll(ObjectDetailItemHarness)();
|
|
19
15
|
}
|
|
20
|
-
async
|
|
21
|
-
return await this.
|
|
16
|
+
async getObjectInfoByLabel(objectInfolabel) {
|
|
17
|
+
return await this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))();
|
|
18
|
+
}
|
|
19
|
+
async getInlineActionButtons() {
|
|
20
|
+
const inlineActionButtons = await this.locatorForAll(PButtonHarness.with({ name: 'ocx-page-header-inline-action-button' }))();
|
|
21
|
+
const inlineActionIconButtons = await this.locatorForAll(PButtonHarness.with({ name: 'ocx-page-header-inline-action-icon-button' }))();
|
|
22
|
+
return inlineActionButtons.concat(inlineActionIconButtons);
|
|
22
23
|
}
|
|
23
|
-
async
|
|
24
|
-
return await this.
|
|
24
|
+
async getInlineActionButtonByLabel(buttonLabel) {
|
|
25
|
+
return await this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))();
|
|
25
26
|
}
|
|
26
|
-
async
|
|
27
|
-
return await this.
|
|
27
|
+
async getInlineActionButtonByIcon(buttonIcon) {
|
|
28
|
+
return await this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))();
|
|
29
|
+
}
|
|
30
|
+
async getOverflowActionMenuButton() {
|
|
31
|
+
return await this.locatorForOptional('[name="ocx-page-header-overflow-action-button"]')();
|
|
28
32
|
}
|
|
29
33
|
async getOverFlowMenuItems() {
|
|
30
|
-
const menu = await this.
|
|
31
|
-
const menuItems = await menu
|
|
34
|
+
const menu = await this.getMenu();
|
|
35
|
+
const menuItems = await menu?.getAllMenuItems();
|
|
32
36
|
return menuItems ?? [];
|
|
33
37
|
}
|
|
38
|
+
async getOverFlowMenuItem(itemText) {
|
|
39
|
+
const menu = await this.getMenu();
|
|
40
|
+
return await menu?.getMenuItem(itemText);
|
|
41
|
+
}
|
|
42
|
+
async getBreadcrumbItem(itemText) {
|
|
43
|
+
const breadcrumb = await this.getBreadcrumb();
|
|
44
|
+
return await breadcrumb?.getBreadcrumbItem(itemText);
|
|
45
|
+
}
|
|
46
|
+
async getHeaderText() {
|
|
47
|
+
return await (await this.locatorForOptional('#page-header')())?.text();
|
|
48
|
+
}
|
|
49
|
+
async getSubheaderText() {
|
|
50
|
+
return await (await this.locatorForOptional('#page-subheader')())?.text();
|
|
51
|
+
}
|
|
34
52
|
}
|
|
35
53
|
PageHeaderHarness.hostSelector = 'ocx-page-header';
|
|
36
|
-
|
|
54
|
+
class ObjectDetailItemHarness extends ComponentHarness {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
this.getLabelElement = this.locatorFor('[name="object-detail-label"]');
|
|
58
|
+
this.getValueElement = this.locatorForOptional('[name="object-detail-value"]');
|
|
59
|
+
this.getIconElement = this.locatorForOptional('[name="object-detail-icon"]');
|
|
60
|
+
}
|
|
61
|
+
static with(options) {
|
|
62
|
+
return new HarnessPredicate(ObjectDetailItemHarness, options).addOption('label', options.label, (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label));
|
|
63
|
+
}
|
|
64
|
+
async getLabel() {
|
|
65
|
+
return (await this.getLabelElement()).text();
|
|
66
|
+
}
|
|
67
|
+
async getValue() {
|
|
68
|
+
return (await this.getValueElement())?.text();
|
|
69
|
+
}
|
|
70
|
+
async getIcon() {
|
|
71
|
+
return (await this.getIconElement())?.getAttribute('class');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
ObjectDetailItemHarness.hostSelector = '.object-info';
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci90ZXN0aW5nL3BhZ2UtaGVhZGVyLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzdGLE9BQU8sRUFHTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFBO0FBRS9CLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFBdkQ7O1FBR0UsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO1FBQ3BGLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLENBQUE7UUFDM0QsWUFBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQTJEakQsQ0FBQztJQXpEQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBYTtRQUNuQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFBO0lBQzlELENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUE7SUFDNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxlQUF1QjtRQUNoRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNsRyxDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQjtRQUMxQixNQUFNLG1CQUFtQixH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QUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQzFELENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDN0QsQ0FBQzs7QUF0Qk0sb0NBQVksR0FBRyxjQUFjLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlSGFybmVzc0ZpbHRlcnMsIENvbXBvbmVudEhhcm5lc3MsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZydcbmltcG9ydCB7XG4gIExpc3RJdGVtSGFybmVzcyxcbiAgTWVudUl0ZW1IYXJuZXNzLFxuICBQQnJlYWRjcnVtYkhhcm5lc3MsXG4gIFBCdXR0b25IYXJuZXNzLFxuICBQTWVudUhhcm5lc3MsXG59IGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG5cbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVySGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ29jeC1wYWdlLWhlYWRlcidcblxuICBnZXRQYWdlSGVhZGVyV3JhcHBlckhhcm5lc3MgPSB0aGlzLmxvY2F0b3JGb3JBbGwoJ1tuYW1lPVwib2N4LXBhZ2UtaGVhZGVyLXdyYXBwZXJcIl0nKVxuICBnZXRCcmVhZGNydW1iID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoUEJyZWFkY3J1bWJIYXJuZXNzKVxuICBnZXRNZW51ID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoUE1lbnVIYXJuZXNzKVxuXG4gIGFzeW5jIGdldEVsZW1lbnRCeVRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoYFt0aXRsZT1cIiR7dGl0bGV9XCJdYCkoKVxuICB9XG5cbiAgYXN5bmMgZ2V0T2JqZWN0SW5mb3MoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChPYmplY3REZXRhaWxJdGVtSGFybmVzcykoKVxuICB9XG5cbiAgYXN5bmMgZ2V0T2JqZWN0SW5mb0J5TGFiZWwob2JqZWN0SW5mb2xhYmVsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoT2JqZWN0RGV0YWlsSXRlbUhhcm5lc3Mud2l0aCh7IGxhYmVsOiBvYmplY3RJbmZvbGFiZWwgfSkpKClcbiAgfVxuXG4gIGFzeW5jIGdldElubGluZUFjdGlvbkJ1dHRvbnMoKSB7XG4gICAgY29uc3QgaW5saW5lQWN0aW9uQnV0dG9ucyA9IGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChcbiAgICAgIFBCdXR0b25IYXJuZXNzLndpdGgoeyBuYW1lOiAnb2N4LXBhZ2UtaGVhZGVyLWlubGluZS1hY3Rpb24tYnV0dG9uJyB9KVxuICAgICkoKVxuICAgIGNvbnN0IGlubGluZUFjdGlvbkljb25CdXR0b25zID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yQWxsKFxuICAgICAgUEJ1dHRvbkhhcm5lc3Mud2l0aCh7IG5hbWU6ICdvY3gtcGFnZS1oZWFkZXItaW5saW5lLWFjdGlvbi1pY29uLWJ1dHRvbicgfSlcbiAgICApKClcbiAgICByZXR1cm4gaW5saW5lQWN0aW9uQnV0dG9ucy5jb25jYXQoaW5saW5lQWN0aW9uSWNvbkJ1dHRvbnMpXG4gIH1cblxuICBhc3luYyBnZXRJbmxpbmVBY3Rpb25CdXR0b25CeUxhYmVsKGJ1dHRvbkxhYmVsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoUEJ1dHRvbkhhcm5lc3Mud2l0aCh7IGxhYmVsOiBidXR0b25MYWJlbCB9KSkoKVxuICB9XG5cbiAgYXN5bmMgZ2V0SW5saW5lQWN0aW9uQnV0dG9uQnlJY29uKGJ1dHRvbkljb246IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChQQnV0dG9uSGFybmVzcy53aXRoKHsgaWNvbjogYnV0dG9uSWNvbiB9KSkoKVxuICB9XG5cbiAgYXN5bmMgZ2V0T3ZlcmZsb3dBY3Rpb25NZW51QnV0dG9uKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnW25hbWU9XCJvY3gtcGFnZS1oZWFkZXItb3ZlcmZsb3ctYWN0aW9uLWJ1dHRvblwiXScpKClcbiAgfVxuXG4gIGFzeW5jIGdldE92ZXJGbG93TWVudUl0ZW1zKCkge1xuICAgIGNvbnN0IG1lbnUgPSBhd2FpdCB0aGlzLmdldE1lbnUoKVxuICAgIGNvbnN0IG1lbnVJdGVtcyA9IGF3YWl0IG1lbnU/LmdldEFsbE1lbnVJdGVtcygpXG4gICAgcmV0dXJuIG1lbnVJdGVtcyA/PyBbXVxuICB9XG5cbiAgYXN5bmMgZ2V0T3ZlckZsb3dNZW51SXRlbShpdGVtVGV4dDogc3RyaW5nKTogUHJvbWlzZTxNZW51SXRlbUhhcm5lc3MgfCB1bmRlZmluZWQgfCBudWxsPiB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IHRoaXMuZ2V0TWVudSgpXG4gICAgcmV0dXJuIGF3YWl0IG1lbnU/LmdldE1lbnVJdGVtKGl0ZW1UZXh0KVxuICB9XG5cbiAgYXN5bmMgZ2V0QnJlYWRjcnVtYkl0ZW0oaXRlbVRleHQ6IHN0cmluZyk6IFByb21pc2U8TGlzdEl0ZW1IYXJuZXNzIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIGNvbnN0IGJyZWFkY3J1bWIgPSBhd2FpdCB0aGlzLmdldEJyZWFkY3J1bWIoKVxuICAgIHJldHVybiBhd2FpdCBicmVhZGNydW1iPy5nZXRCcmVhZGNydW1iSXRlbShpdGVtVGV4dClcbiAgfVxuXG4gIGFzeW5jIGdldEhlYWRlclRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCcjcGFnZS1oZWFkZXInKSgpKT8udGV4dCgpXG4gIH1cblxuICBhc3luYyBnZXRTdWJoZWFkZXJUZXh0KCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnI3BhZ2Utc3ViaGVhZGVyJykoKSk/LnRleHQoKVxuICB9XG59XG5cbmludGVyZmFjZSBPYmplY3REZXRhaWxJdGVtSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBCYXNlSGFybmVzc0ZpbHRlcnMge1xuICBsYWJlbD86IHN0cmluZ1xufVxuXG5jbGFzcyBPYmplY3REZXRhaWxJdGVtSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJy5vYmplY3QtaW5mbydcblxuICBnZXRMYWJlbEVsZW1lbnQgPSB0aGlzLmxvY2F0b3JGb3IoJ1tuYW1lPVwib2JqZWN0LWRldGFpbC1sYWJlbFwiXScpXG4gIGdldFZhbHVlRWxlbWVudCA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdbbmFtZT1cIm9iamVjdC1kZXRhaWwtdmFsdWVcIl0nKVxuICBnZXRJY29uRWxlbWVudCA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdbbmFtZT1cIm9iamVjdC1kZXRhaWwtaWNvblwiXScpXG5cbiAgc3RhdGljIHdpdGgob3B0aW9uczogT2JqZWN0RGV0YWlsSXRlbUhhcm5lc3NGaWx0ZXJzKTogSGFybmVzc1ByZWRpY2F0ZTxPYmplY3REZXRhaWxJdGVtSGFybmVzcz4ge1xuICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZShPYmplY3REZXRhaWxJdGVtSGFybmVzcywgb3B0aW9ucykuYWRkT3B0aW9uKCdsYWJlbCcsIG9wdGlvbnMubGFiZWwsIChoYXJuZXNzLCBsYWJlbCkgPT5cbiAgICAgIEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldExhYmVsKCksIGxhYmVsKVxuICAgIClcbiAgfVxuXG4gIGFzeW5jIGdldExhYmVsKCkge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRMYWJlbEVsZW1lbnQoKSkudGV4dCgpXG4gIH1cblxuICBhc3luYyBnZXRWYWx1ZSgpIHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0VmFsdWVFbGVtZW50KCkpPy50ZXh0KClcbiAgfVxuXG4gIGFzeW5jIGdldEljb24oKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEljb25FbGVtZW50KCkpPy5nZXRBdHRyaWJ1dGUoJ2NsYXNzJylcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ComponentHarness } from '@angular/cdk/testing';
|
|
2
|
+
import { PButtonHarness } from '@onecx/angular-testing';
|
|
3
|
+
import { PageHeaderHarness } from './page-header.harness';
|
|
4
|
+
import { SearchConfigHarness } from './search-config.harness';
|
|
5
|
+
import { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness';
|
|
6
|
+
export class SearchHeaderHarness extends ComponentHarness {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.getPageHeader = this.locatorFor(PageHeaderHarness);
|
|
10
|
+
this.getSearchConfig = this.locatorFor(SearchConfigHarness);
|
|
11
|
+
this.getSearchButton = this.locatorFor(PButtonHarness.with({
|
|
12
|
+
id: 'searchButton',
|
|
13
|
+
}));
|
|
14
|
+
this.getResetButton = this.locatorFor(PButtonHarness.with({
|
|
15
|
+
id: 'resetButton',
|
|
16
|
+
}));
|
|
17
|
+
this.getSimpleAdvancedButton = this.locatorForOptional(PButtonHarness.with({
|
|
18
|
+
id: 'simpleAdvancedButton',
|
|
19
|
+
}));
|
|
20
|
+
this.getMoreActionsMenuButton = this.locatorForOptional(MoreActionsMenuButtonHarness);
|
|
21
|
+
}
|
|
22
|
+
async clickResetButton() {
|
|
23
|
+
await (await this.getResetButton()).click();
|
|
24
|
+
}
|
|
25
|
+
async clickSearchButton() {
|
|
26
|
+
await (await this.getSearchButton()).click();
|
|
27
|
+
}
|
|
28
|
+
async toggleSimpleAdvanced() {
|
|
29
|
+
if (await this.getSimpleAdvancedButton()) {
|
|
30
|
+
await (await this.getSimpleAdvancedButton())?.click();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.warn('No SimpleAdvancedButton is being displayed to toggle, because no advanced form field is defined.');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
SearchHeaderHarness.hostSelector = 'ocx-search-header';
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3Rlc3Rpbmcvc2VhcmNoLWhlYWRlci5oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUVqRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQXpEOztRQUdFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2xELG9CQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3RELG9CQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FDL0IsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNsQixFQUFFLEVBQUUsY0FBYztTQUNuQixDQUFDLENBQ0gsQ0FBQTtRQUVELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FDOUIsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNsQixFQUFFLEVBQUUsYUFBYTtTQUNsQixDQUFDLENBQ0gsQ0FBQTtRQUVELDRCQUF1QixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDL0MsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNsQixFQUFFLEVBQUUsc0JBQXNCO1NBQzNCLENBQUMsQ0FDSCxDQUFBO1FBRUQsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLENBQUE7SUFpQmxGLENBQUM7SUFmQyxLQUFLLENBQUMsZ0JBQWdCO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLElBQUksTUFBTSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRTtZQUN4QyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFBO1NBQ3REO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLGtHQUFrRyxDQUFDLENBQUE7U0FDakg7SUFDSCxDQUFDOztBQXRDTSxnQ0FBWSxHQUFHLG1CQUFtQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuaW1wb3J0IHsgUEJ1dHRvbkhhcm5lc3MgfSBmcm9tICdAb25lY3gvYW5ndWxhci10ZXN0aW5nJ1xuaW1wb3J0IHsgUGFnZUhlYWRlckhhcm5lc3MgfSBmcm9tICcuL3BhZ2UtaGVhZGVyLmhhcm5lc3MnXG5pbXBvcnQgeyBTZWFyY2hDb25maWdIYXJuZXNzIH0gZnJvbSAnLi9zZWFyY2gtY29uZmlnLmhhcm5lc3MnXG5pbXBvcnQgeyBNb3JlQWN0aW9uc01lbnVCdXR0b25IYXJuZXNzIH0gZnJvbSAnLi9tb3JlLWFjdGlvbnMtbWVudS1idXR0b24uaGFybmVzcydcblxuZXhwb3J0IGNsYXNzIFNlYXJjaEhlYWRlckhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdvY3gtc2VhcmNoLWhlYWRlcidcblxuICBnZXRQYWdlSGVhZGVyID0gdGhpcy5sb2NhdG9yRm9yKFBhZ2VIZWFkZXJIYXJuZXNzKVxuICBnZXRTZWFyY2hDb25maWcgPSB0aGlzLmxvY2F0b3JGb3IoU2VhcmNoQ29uZmlnSGFybmVzcylcbiAgZ2V0U2VhcmNoQnV0dG9uID0gdGhpcy5sb2NhdG9yRm9yKFxuICAgIFBCdXR0b25IYXJuZXNzLndpdGgoe1xuICAgICAgaWQ6ICdzZWFyY2hCdXR0b24nLFxuICAgIH0pXG4gIClcblxuICBnZXRSZXNldEJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcihcbiAgICBQQnV0dG9uSGFybmVzcy53aXRoKHtcbiAgICAgIGlkOiAncmVzZXRCdXR0b24nLFxuICAgIH0pXG4gIClcblxuICBnZXRTaW1wbGVBZHZhbmNlZEJ1dHRvbiA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFxuICAgIFBCdXR0b25IYXJuZXNzLndpdGgoe1xuICAgICAgaWQ6ICdzaW1wbGVBZHZhbmNlZEJ1dHRvbicsXG4gICAgfSlcbiAgKVxuXG4gIGdldE1vcmVBY3Rpb25zTWVudUJ1dHRvbiA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKE1vcmVBY3Rpb25zTWVudUJ1dHRvbkhhcm5lc3MpXG5cbiAgYXN5bmMgY2xpY2tSZXNldEJ1dHRvbigpIHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5nZXRSZXNldEJ1dHRvbigpKS5jbGljaygpXG4gIH1cblxuICBhc3luYyBjbGlja1NlYXJjaEJ1dHRvbigpIHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy5nZXRTZWFyY2hCdXR0b24oKSkuY2xpY2soKVxuICB9XG5cbiAgYXN5bmMgdG9nZ2xlU2ltcGxlQWR2YW5jZWQoKSB7XG4gICAgaWYgKGF3YWl0IHRoaXMuZ2V0U2ltcGxlQWR2YW5jZWRCdXR0b24oKSkge1xuICAgICAgYXdhaXQgKGF3YWl0IHRoaXMuZ2V0U2ltcGxlQWR2YW5jZWRCdXR0b24oKSk/LmNsaWNrKClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdObyBTaW1wbGVBZHZhbmNlZEJ1dHRvbiBpcyBiZWluZyBkaXNwbGF5ZWQgdG8gdG9nZ2xlLCBiZWNhdXNlIG5vIGFkdmFuY2VkIGZvcm0gZmllbGQgaXMgZGVmaW5lZC4nKVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ComponentHarness, ContentContainerComponentHarness } from '@angular/cdk/testing';
|
|
1
|
+
import { ComponentHarness, ContentContainerComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
2
2
|
export * from '@angular/cdk/testing';
|
|
3
|
-
import { PDropdownHarness, PButtonHarness, PDialogHarness, PPicklistHarness, PSelectButtonHarness, MenuItemHarness, DivHarness, ButtonHarness, PPaginatorHarness, TableHeaderColumnHarness, TableRowHarness, PTableCheckboxHarness, PChartHarness, PMenuHarness } from '@onecx/angular-testing';
|
|
3
|
+
import { PDropdownHarness, PButtonHarness, PDialogHarness, PPicklistHarness, PSelectButtonHarness, MenuItemHarness, DivHarness, ButtonHarness, PPaginatorHarness, TableHeaderColumnHarness, TableRowHarness, PTableCheckboxHarness, PChartHarness, PBreadcrumbHarness, PMenuHarness } from '@onecx/angular-testing';
|
|
4
4
|
export * from '@onecx/angular-testing';
|
|
5
5
|
import { __awaiter } from 'tslib';
|
|
6
6
|
import { PrimeIcons } from 'primeng/api';
|
|
@@ -351,6 +351,14 @@ class DiagramHarness extends ComponentHarness {
|
|
|
351
351
|
}
|
|
352
352
|
DiagramHarness.hostSelector = 'ocx-diagram';
|
|
353
353
|
|
|
354
|
+
class GroupByCountDiagramHarness extends ComponentHarness {
|
|
355
|
+
constructor() {
|
|
356
|
+
super(...arguments);
|
|
357
|
+
this.getDiagram = this.locatorFor(DiagramHarness);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
GroupByCountDiagramHarness.hostSelector = 'ocx-group-by-count-diagram';
|
|
361
|
+
|
|
354
362
|
class InteractiveDataViewHarness extends ContentContainerComponentHarness {
|
|
355
363
|
constructor() {
|
|
356
364
|
super(...arguments);
|
|
@@ -368,51 +376,108 @@ class PageHeaderHarness extends ComponentHarness {
|
|
|
368
376
|
constructor() {
|
|
369
377
|
super(...arguments);
|
|
370
378
|
this.getPageHeaderWrapperHarness = this.locatorForAll('[name="ocx-page-header-wrapper"]');
|
|
379
|
+
this.getBreadcrumb = this.locatorForOptional(PBreadcrumbHarness);
|
|
380
|
+
this.getMenu = this.locatorForOptional(PMenuHarness);
|
|
371
381
|
}
|
|
372
|
-
|
|
382
|
+
getElementByTitle(title) {
|
|
373
383
|
return __awaiter(this, void 0, void 0, function* () {
|
|
374
|
-
return yield this.
|
|
384
|
+
return yield this.locatorForOptional(`[title="${title}"]`)();
|
|
375
385
|
});
|
|
376
386
|
}
|
|
377
|
-
|
|
387
|
+
getObjectInfos() {
|
|
378
388
|
return __awaiter(this, void 0, void 0, function* () {
|
|
379
|
-
return yield this.locatorForAll(
|
|
389
|
+
return yield this.locatorForAll(ObjectDetailItemHarness)();
|
|
380
390
|
});
|
|
381
391
|
}
|
|
382
|
-
|
|
392
|
+
getObjectInfoByLabel(objectInfolabel) {
|
|
383
393
|
return __awaiter(this, void 0, void 0, function* () {
|
|
384
|
-
return yield this.locatorForOptional(
|
|
394
|
+
return yield this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))();
|
|
385
395
|
});
|
|
386
396
|
}
|
|
387
|
-
|
|
397
|
+
getInlineActionButtons() {
|
|
388
398
|
return __awaiter(this, void 0, void 0, function* () {
|
|
389
|
-
|
|
399
|
+
const inlineActionButtons = yield this.locatorForAll(PButtonHarness.with({ name: 'ocx-page-header-inline-action-button' }))();
|
|
400
|
+
const inlineActionIconButtons = yield this.locatorForAll(PButtonHarness.with({ name: 'ocx-page-header-inline-action-icon-button' }))();
|
|
401
|
+
return inlineActionButtons.concat(inlineActionIconButtons);
|
|
390
402
|
});
|
|
391
403
|
}
|
|
392
|
-
|
|
404
|
+
getInlineActionButtonByLabel(buttonLabel) {
|
|
393
405
|
return __awaiter(this, void 0, void 0, function* () {
|
|
394
|
-
return yield this.
|
|
406
|
+
return yield this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))();
|
|
395
407
|
});
|
|
396
408
|
}
|
|
397
|
-
|
|
409
|
+
getInlineActionButtonByIcon(buttonIcon) {
|
|
398
410
|
return __awaiter(this, void 0, void 0, function* () {
|
|
399
|
-
return yield this.
|
|
411
|
+
return yield this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))();
|
|
400
412
|
});
|
|
401
413
|
}
|
|
402
|
-
|
|
414
|
+
getOverflowActionMenuButton() {
|
|
403
415
|
return __awaiter(this, void 0, void 0, function* () {
|
|
404
|
-
return yield this.
|
|
416
|
+
return yield this.locatorForOptional('[name="ocx-page-header-overflow-action-button"]')();
|
|
405
417
|
});
|
|
406
418
|
}
|
|
407
419
|
getOverFlowMenuItems() {
|
|
408
420
|
return __awaiter(this, void 0, void 0, function* () {
|
|
409
|
-
const menu = yield this.
|
|
410
|
-
const menuItems = yield menu.getAllMenuItems();
|
|
421
|
+
const menu = yield this.getMenu();
|
|
422
|
+
const menuItems = yield (menu === null || menu === void 0 ? void 0 : menu.getAllMenuItems());
|
|
411
423
|
return menuItems !== null && menuItems !== void 0 ? menuItems : [];
|
|
412
424
|
});
|
|
413
425
|
}
|
|
426
|
+
getOverFlowMenuItem(itemText) {
|
|
427
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
428
|
+
const menu = yield this.getMenu();
|
|
429
|
+
return yield (menu === null || menu === void 0 ? void 0 : menu.getMenuItem(itemText));
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
getBreadcrumbItem(itemText) {
|
|
433
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
434
|
+
const breadcrumb = yield this.getBreadcrumb();
|
|
435
|
+
return yield (breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.getBreadcrumbItem(itemText));
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
getHeaderText() {
|
|
439
|
+
var _a;
|
|
440
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
441
|
+
return yield ((_a = (yield this.locatorForOptional('#page-header')())) === null || _a === void 0 ? void 0 : _a.text());
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
getSubheaderText() {
|
|
445
|
+
var _a;
|
|
446
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
447
|
+
return yield ((_a = (yield this.locatorForOptional('#page-subheader')())) === null || _a === void 0 ? void 0 : _a.text());
|
|
448
|
+
});
|
|
449
|
+
}
|
|
414
450
|
}
|
|
415
451
|
PageHeaderHarness.hostSelector = 'ocx-page-header';
|
|
452
|
+
class ObjectDetailItemHarness extends ComponentHarness {
|
|
453
|
+
constructor() {
|
|
454
|
+
super(...arguments);
|
|
455
|
+
this.getLabelElement = this.locatorFor('[name="object-detail-label"]');
|
|
456
|
+
this.getValueElement = this.locatorForOptional('[name="object-detail-value"]');
|
|
457
|
+
this.getIconElement = this.locatorForOptional('[name="object-detail-icon"]');
|
|
458
|
+
}
|
|
459
|
+
static with(options) {
|
|
460
|
+
return new HarnessPredicate(ObjectDetailItemHarness, options).addOption('label', options.label, (harness, label) => HarnessPredicate.stringMatches(harness.getLabel(), label));
|
|
461
|
+
}
|
|
462
|
+
getLabel() {
|
|
463
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
464
|
+
return (yield this.getLabelElement()).text();
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
getValue() {
|
|
468
|
+
var _a;
|
|
469
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
470
|
+
return (_a = (yield this.getValueElement())) === null || _a === void 0 ? void 0 : _a.text();
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
getIcon() {
|
|
474
|
+
var _a;
|
|
475
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
476
|
+
return (_a = (yield this.getIconElement())) === null || _a === void 0 ? void 0 : _a.getAttribute('class');
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
ObjectDetailItemHarness.hostSelector = '.object-info';
|
|
416
481
|
|
|
417
482
|
class SearchConfigHarness extends ContentContainerComponentHarness {
|
|
418
483
|
constructor() {
|
|
@@ -422,9 +487,49 @@ class SearchConfigHarness extends ContentContainerComponentHarness {
|
|
|
422
487
|
}
|
|
423
488
|
SearchConfigHarness.hostSelector = 'ocx-search-config';
|
|
424
489
|
|
|
490
|
+
class SearchHeaderHarness extends ComponentHarness {
|
|
491
|
+
constructor() {
|
|
492
|
+
super(...arguments);
|
|
493
|
+
this.getPageHeader = this.locatorFor(PageHeaderHarness);
|
|
494
|
+
this.getSearchConfig = this.locatorFor(SearchConfigHarness);
|
|
495
|
+
this.getSearchButton = this.locatorFor(PButtonHarness.with({
|
|
496
|
+
id: 'searchButton',
|
|
497
|
+
}));
|
|
498
|
+
this.getResetButton = this.locatorFor(PButtonHarness.with({
|
|
499
|
+
id: 'resetButton',
|
|
500
|
+
}));
|
|
501
|
+
this.getSimpleAdvancedButton = this.locatorForOptional(PButtonHarness.with({
|
|
502
|
+
id: 'simpleAdvancedButton',
|
|
503
|
+
}));
|
|
504
|
+
this.getMoreActionsMenuButton = this.locatorForOptional(MoreActionsMenuButtonHarness);
|
|
505
|
+
}
|
|
506
|
+
clickResetButton() {
|
|
507
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
508
|
+
yield (yield this.getResetButton()).click();
|
|
509
|
+
});
|
|
510
|
+
}
|
|
511
|
+
clickSearchButton() {
|
|
512
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
513
|
+
yield (yield this.getSearchButton()).click();
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
toggleSimpleAdvanced() {
|
|
517
|
+
var _a;
|
|
518
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
519
|
+
if (yield this.getSimpleAdvancedButton()) {
|
|
520
|
+
yield ((_a = (yield this.getSimpleAdvancedButton())) === null || _a === void 0 ? void 0 : _a.click());
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
console.warn('No SimpleAdvancedButton is being displayed to toggle, because no advanced form field is defined.');
|
|
524
|
+
}
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
SearchHeaderHarness.hostSelector = 'ocx-search-header';
|
|
529
|
+
|
|
425
530
|
/**
|
|
426
531
|
* Generated bundle index. Do not edit.
|
|
427
532
|
*/
|
|
428
533
|
|
|
429
|
-
export { ColumnGroupSelectionHarness, CustomGroupColumnSelectorHarness, DataLayoutSelectionHarness, DataListGridHarness, DataTableHarness, DataViewHarness, DefaultGridItemHarness, DefaultListItemHarness, DiagramHarness, InteractiveDataViewHarness, MoreActionsMenuButtonHarness, PageHeaderHarness, SearchConfigHarness };
|
|
534
|
+
export { ColumnGroupSelectionHarness, CustomGroupColumnSelectorHarness, DataLayoutSelectionHarness, DataListGridHarness, DataTableHarness, DataViewHarness, DefaultGridItemHarness, DefaultListItemHarness, DiagramHarness, GroupByCountDiagramHarness, InteractiveDataViewHarness, MoreActionsMenuButtonHarness, PageHeaderHarness, SearchConfigHarness, SearchHeaderHarness };
|
|
430
535
|
//# sourceMappingURL=onecx-angular-accelerator-testing.mjs.map
|