@onecx/angular-accelerator 4.14.3 → 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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3IvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHlCQUF5QixDQUFBO0FBRXZDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLHdCQUF3QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2x1bW4tZ3JvdXAtc2VsZWN0aW9uLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1ncm91cC1jb2x1bW4tc2VsZWN0b3IuaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1sYXlvdXQtc2VsZWN0aW9uLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtbGlzdC1ncmlkLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdGFibGUuaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS12aWV3Lmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtZ3JpZC1pdGVtLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtbGlzdC1pdGVtLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2RpYWdyYW0uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJhY3RpdmUtZGF0YS12aWV3Lmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL21vcmUtYWN0aW9ucy1tZW51LWJ1dHRvbi5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlLWhlYWRlci5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtY29uZmlnLmhhcm5lc3MnXG5cbmV4cG9ydCAqIGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuZXhwb3J0ICogZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcvdGVzdGJlZCdcbmV4cG9ydCAqIGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG4iXX0=
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
- async getInlineActionButtons() {
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('.object-info')();
14
+ return await this.locatorForAll(ObjectDetailItemHarness)();
19
15
  }
20
- async getObjectDetailLabels() {
21
- return await this.locatorForAll('[name="object-detail-label"]')();
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 getObjectDetailValues() {
24
- return await this.locatorForAll('[name="object-detail-value"]')();
24
+ async getInlineActionButtonByLabel(buttonLabel) {
25
+ return await this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))();
25
26
  }
26
- async getObjectDetailIcons() {
27
- return await this.locatorForAll('[name="object-detail-icon"]')();
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.locatorFor(PMenuHarness)();
31
- const menuItems = await menu.getAllMenuItems();
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci90ZXN0aW5nL3BhZ2UtaGVhZGVyLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXJELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxnQkFBZ0I7SUFBdkQ7O1FBR0UsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0lBbUN0RixDQUFDO0lBakNDLEtBQUssQ0FBQyxzQkFBc0I7UUFDMUIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsK0NBQStDLENBQUMsRUFBRSxDQUFBO0lBQ3BGLENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCO1FBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLGlEQUFpRCxDQUFDLEVBQUUsQ0FBQTtJQUN0RixDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDbkMsT0FBTyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQTtJQUM5RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsS0FBSyxDQUFDLHFCQUFxQjtRQUN6QixPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLENBQUE7SUFDbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFBO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLEVBQUUsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQjtRQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtRQUM5QyxPQUFPLFNBQVMsSUFBSSxFQUFFLENBQUE7SUFDeEIsQ0FBQzs7QUFwQ00sOEJBQVksR0FBRyxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZydcbmltcG9ydCB7IFBNZW51SGFybmVzcyB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG5cbmV4cG9ydCBjbGFzcyBQYWdlSGVhZGVySGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ29jeC1wYWdlLWhlYWRlcidcblxuICBnZXRQYWdlSGVhZGVyV3JhcHBlckhhcm5lc3MgPSB0aGlzLmxvY2F0b3JGb3JBbGwoJ1tuYW1lPVwib2N4LXBhZ2UtaGVhZGVyLXdyYXBwZXJcIl0nKVxuXG4gIGFzeW5jIGdldElubGluZUFjdGlvbkJ1dHRvbnMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbCgnW25hbWU9XCJvY3gtcGFnZS1oZWFkZXItaW5saW5lLWFjdGlvbi1idXR0b25cIl0nKSgpXG4gIH1cblxuICBhc3luYyBnZXRPdmVyZmxvd0FjdGlvbkJ1dHRvbnMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbCgnW25hbWU9XCJvY3gtcGFnZS1oZWFkZXItb3ZlcmZsb3ctYWN0aW9uLWJ1dHRvblwiXScpKClcbiAgfVxuXG4gIGFzeW5jIGdldEVsZW1lbnRCeVRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoYFt0aXRsZT1cIiR7dGl0bGV9XCJdYCkoKVxuICB9XG5cbiAgYXN5bmMgZ2V0T2JqZWN0SW5mb3MoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbCgnLm9iamVjdC1pbmZvJykoKVxuICB9XG5cbiAgYXN5bmMgZ2V0T2JqZWN0RGV0YWlsTGFiZWxzKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoJ1tuYW1lPVwib2JqZWN0LWRldGFpbC1sYWJlbFwiXScpKClcbiAgfVxuXG4gIGFzeW5jIGdldE9iamVjdERldGFpbFZhbHVlcygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yQWxsKCdbbmFtZT1cIm9iamVjdC1kZXRhaWwtdmFsdWVcIl0nKSgpXG4gIH1cblxuICBhc3luYyBnZXRPYmplY3REZXRhaWxJY29ucygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yQWxsKCdbbmFtZT1cIm9iamVjdC1kZXRhaWwtaWNvblwiXScpKClcbiAgfVxuXG4gIGFzeW5jIGdldE92ZXJGbG93TWVudUl0ZW1zKCkge1xuICAgIGNvbnN0IG1lbnUgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoUE1lbnVIYXJuZXNzKSgpXG4gICAgY29uc3QgbWVudUl0ZW1zID0gYXdhaXQgbWVudS5nZXRBbGxNZW51SXRlbXMoKVxuICAgIHJldHVybiBtZW51SXRlbXMgPz8gW11cbiAgfVxufVxuIl19
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
- getInlineActionButtons() {
382
+ getElementByTitle(title) {
373
383
  return __awaiter(this, void 0, void 0, function* () {
374
- return yield this.locatorForAll('[name="ocx-page-header-inline-action-button"]')();
384
+ return yield this.locatorForOptional(`[title="${title}"]`)();
375
385
  });
376
386
  }
377
- getOverflowActionButtons() {
387
+ getObjectInfos() {
378
388
  return __awaiter(this, void 0, void 0, function* () {
379
- return yield this.locatorForAll('[name="ocx-page-header-overflow-action-button"]')();
389
+ return yield this.locatorForAll(ObjectDetailItemHarness)();
380
390
  });
381
391
  }
382
- getElementByTitle(title) {
392
+ getObjectInfoByLabel(objectInfolabel) {
383
393
  return __awaiter(this, void 0, void 0, function* () {
384
- return yield this.locatorForOptional(`[title="${title}"]`)();
394
+ return yield this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))();
385
395
  });
386
396
  }
387
- getObjectInfos() {
397
+ getInlineActionButtons() {
388
398
  return __awaiter(this, void 0, void 0, function* () {
389
- return yield this.locatorForAll('.object-info')();
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
- getObjectDetailLabels() {
404
+ getInlineActionButtonByLabel(buttonLabel) {
393
405
  return __awaiter(this, void 0, void 0, function* () {
394
- return yield this.locatorForAll('[name="object-detail-label"]')();
406
+ return yield this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))();
395
407
  });
396
408
  }
397
- getObjectDetailValues() {
409
+ getInlineActionButtonByIcon(buttonIcon) {
398
410
  return __awaiter(this, void 0, void 0, function* () {
399
- return yield this.locatorForAll('[name="object-detail-value"]')();
411
+ return yield this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))();
400
412
  });
401
413
  }
402
- getObjectDetailIcons() {
414
+ getOverflowActionMenuButton() {
403
415
  return __awaiter(this, void 0, void 0, function* () {
404
- return yield this.locatorForAll('[name="object-detail-icon"]')();
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.locatorFor(PMenuHarness)();
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