@onecx/angular-accelerator 5.23.6 → 5.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/data-list-grid/data-list-grid.component.mjs +9 -8
- package/esm2022/lib/components/data-table/data-table.component.mjs +56 -15
- package/esm2022/lib/components/data-view/data-view.component.mjs +1 -1
- package/esm2022/lib/components/interactive-data-view/interactive-data-view.component.mjs +2 -2
- package/esm2022/lib/components/search-header/search-header.component.mjs +19 -14
- package/esm2022/lib/model/data-action.mjs +1 -1
- package/esm2022/lib/utils/criteria.utils.mjs +4 -4
- package/esm2022/testing/data-list-grid.harness.mjs +6 -2
- package/esm2022/testing/default-list-item.harness.mjs +3 -1
- package/esm2022/testing/index.mjs +4 -1
- package/fesm2022/onecx-angular-accelerator-testing.mjs +10 -3
- package/fesm2022/onecx-angular-accelerator-testing.mjs.map +1 -1
- package/fesm2022/onecx-angular-accelerator.mjs +68 -25
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -1
- package/lib/components/data-list-grid/data-list-grid.component.d.ts +3 -3
- package/lib/components/data-table/data-table.component.d.ts +10 -4
- package/lib/components/data-view/data-view.component.d.ts +3 -3
- package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +4 -4
- package/lib/components/search-header/search-header.component.d.ts +4 -2
- package/lib/model/data-action.d.ts +1 -1
- package/lib/utils/criteria.utils.d.ts +2 -3
- package/package.json +2 -1
- package/testing/data-list-grid.harness.d.ts +1 -1
|
@@ -2,15 +2,17 @@ import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output,
|
|
|
2
2
|
import { FormControlName, FormGroupDirective } from '@angular/forms';
|
|
3
3
|
import { combineLatest, debounceTime, map, of, startWith } from 'rxjs';
|
|
4
4
|
import { getLocation } from '@onecx/accelerator';
|
|
5
|
+
import { CONFIG_KEY, ConfigurationService } from '@onecx/angular-integration-interface';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "primeng/
|
|
9
|
-
import * as i4 from "primeng/
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "
|
|
7
|
+
import * as i1 from "@onecx/angular-integration-interface";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
import * as i3 from "primeng/tooltip";
|
|
10
|
+
import * as i4 from "primeng/button";
|
|
11
|
+
import * as i5 from "primeng/skeleton";
|
|
12
|
+
import * as i6 from "@onecx/angular-remote-components";
|
|
13
|
+
import * as i7 from "../page-header/page-header.component";
|
|
14
|
+
import * as i8 from "../../directives/if-permission.directive";
|
|
15
|
+
import * as i9 from "@ngx-translate/core";
|
|
14
16
|
/**
|
|
15
17
|
* To trigger the search when Enter key is pressed inside a search parameter field,
|
|
16
18
|
* an EventListener for keyup enter event is added for HTML elements which have an input.
|
|
@@ -57,7 +59,7 @@ export class SearchHeaderComponent {
|
|
|
57
59
|
get searchConfigChangeObserved() {
|
|
58
60
|
return this.selectedSearchConfigChanged.observed;
|
|
59
61
|
}
|
|
60
|
-
constructor() {
|
|
62
|
+
constructor(configurationService) {
|
|
61
63
|
this.header = '';
|
|
62
64
|
this._viewMode = 'basic';
|
|
63
65
|
this.manualBreadcrumbs = false;
|
|
@@ -77,6 +79,7 @@ export class SearchHeaderComponent {
|
|
|
77
79
|
show: 'always',
|
|
78
80
|
};
|
|
79
81
|
this.headerActions = [];
|
|
82
|
+
this.searchButtonsReversed = false;
|
|
80
83
|
this.fieldValues$ = of({});
|
|
81
84
|
this.searchConfigChangedSlotEmitter = new EventEmitter();
|
|
82
85
|
this.searchConfigChangedSlotEmitter.subscribe((config) => {
|
|
@@ -85,6 +88,8 @@ export class SearchHeaderComponent {
|
|
|
85
88
|
});
|
|
86
89
|
this.selectedSearchConfigChanged.emit(config);
|
|
87
90
|
});
|
|
91
|
+
this.searchButtonsReversed =
|
|
92
|
+
configurationService.getProperty(CONFIG_KEY.ONECX_PORTAL_SEARCH_BUTTONS_REVERSED) === 'true';
|
|
88
93
|
}
|
|
89
94
|
ngAfterContentInit() {
|
|
90
95
|
if (this.formGroup) {
|
|
@@ -139,13 +144,13 @@ export class SearchHeaderComponent {
|
|
|
139
144
|
isVisible(control) {
|
|
140
145
|
return this.visibleFormControls.some((formControl) => formControl.name !== null && String(formControl.name) === control);
|
|
141
146
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n", dependencies: [{ kind: "directive", type:
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, deps: [{ token: i1.ConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: SearchHeaderComponent, selector: "ocx-search-header", inputs: { header: "header", headline: "headline", subheader: "subheader", viewMode: "viewMode", manualBreadcrumbs: "manualBreadcrumbs", actions: "actions", searchConfigPermission: "searchConfigPermission", searchButtonDisabled: "searchButtonDisabled", resetButtonDisabled: "resetButtonDisabled", pageName: "pageName" }, outputs: { searched: "searched", resetted: "resetted", selectedSearchConfigChanged: "selectedSearchConfigChanged", viewModeChanged: "viewModeChanged", componentStateChanged: "componentStateChanged" }, providers: [], queries: [{ propertyName: "additionalToolbarContent", first: true, predicate: ["additionalToolbarContent"], descendants: true }, { propertyName: "additionalToolbarContentLeft", first: true, predicate: ["additionalToolbarContentLeft"], descendants: true }, { propertyName: "formGroup", first: true, predicate: FormGroupDirective, descendants: true }, { propertyName: "visibleFormControls", predicate: FormControlName, descendants: true }], viewQueries: [{ propertyName: "searchParameterFields", first: true, predicate: ["searchParameterFields"], descendants: true }], ngImport: i0, template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\" [ngClass]=\"searchButtonsReversed ? 'flex-row-reverse' : 'flex-row'\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i5.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i6.SlotComponent, selector: "ocx-slot[name]", inputs: ["name", "inputs", "outputs"] }, { kind: "component", type: i7.PageHeaderComponent, selector: "ocx-page-header", inputs: ["header", "loading", "figureBackground", "showFigure", "figureImage", "disableDefaultActions", "subheader", "actions", "objectDetails", "showBreadcrumbs", "manualBreadcrumbs", "enableGridView", "gridLayoutDesktopColumns"], outputs: ["save"] }, { kind: "directive", type: i8.IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: ["ocxIfPermission", "ocxIfNotPermission", "onMissingPermission", "ocxIfPermissionPermissions", "ocxIfNotPermissionPermissions", "ocxIfPermissionElseTemplate", "ocxIfNotPermissionElseTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
144
149
|
}
|
|
145
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SearchHeaderComponent, decorators: [{
|
|
146
151
|
type: Component,
|
|
147
|
-
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n" }]
|
|
148
|
-
}], ctorParameters: () => [], propDecorators: { header: [{
|
|
152
|
+
args: [{ selector: 'ocx-search-header', providers: [], template: "<ocx-page-header\n [header]=\"header || ('OCX_SEARCH_HEADER.HEADER' | translate)\"\n [subheader]=\"subheader\"\n [manualBreadcrumbs]=\"manualBreadcrumbs\"\n [actions]=\"headerActions\"\n>\n <ng-template #additionalToolbarContentLeft>\n <ng-container *ngIf=\"searchConfigChangeObserved && pageName\">\n <ocx-slot\n *ocxIfPermission=\"searchConfigPermission\"\n name=\"onecx-search-config\"\n [inputs]=\"{ pageName: pageName, currentFieldValues: fieldValues$ | async, viewMode: viewMode }\"\n [outputs]=\"{ searchConfigSelected: searchConfigChangedSlotEmitter }\"\n >\n <ng-template #skeleton>\n <div class=\"flex\">\n <p-skeleton width=\"18rem\" height=\"3rem\"></p-skeleton>\n </div>\n </ng-template>\n </ocx-slot>\n </ng-container>\n <ng-container\n *ngIf=\"_additionalToolbarContentLeft\"\n [ngTemplateOutlet]=\"_additionalToolbarContentLeft\"\n ></ng-container>\n </ng-template>\n <ng-template #additionalToolbarContent>\n <ng-container *ngIf=\"_additionalToolbarContent\" [ngTemplateOutlet]=\"_additionalToolbarContent\"></ng-container>\n </ng-template>\n <div class=\"flex row-gap-3 column-gap-6 flex-wrap align-items-center\">\n <div>\n <div #searchParameterFields>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"flex flex-wrap gap-2\" [ngClass]=\"searchButtonsReversed ? 'flex-row-reverse' : 'flex-row'\">\n <p-button\n id=\"resetButton\"\n *ngIf=\"resetted.observed\"\n (onClick)=\"onResetClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-eraser\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.RESET_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"resetButtonDisabled\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.RESET_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n\n <p-button\n id=\"searchButton\"\n (onClick)=\"onSearchClicked()\"\n label=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.TEXT' | translate }}\"\n icon=\"pi pi-search\"\n pTooltip=\"{{ 'OCX_SEARCH_HEADER.SEARCH_BUTTON.DETAIL' | translate }}\"\n tooltipPosition=\"top\"\n tooltipEvent=\"hover\"\n [disabled]=\"searchButtonDisabled || formGroup?.invalid\"\n [ariaLabel]=\"'OCX_SEARCH_HEADER.SEARCH_BUTTON.ARIA_LABEL' | translate\"\n >\n </p-button>\n </div>\n </div>\n</ocx-page-header>\n" }]
|
|
153
|
+
}], ctorParameters: () => [{ type: i1.ConfigurationService }], propDecorators: { header: [{
|
|
149
154
|
type: Input
|
|
150
155
|
}], headline: [{
|
|
151
156
|
type: Input
|
|
@@ -191,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
191
196
|
type: ViewChild,
|
|
192
197
|
args: ['searchParameterFields']
|
|
193
198
|
}] } });
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7Ozs7Ozs7O0FBY2hEOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQzs7T0FFRztJQUNILElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQTtJQUNwQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtJQUNyQixDQUFDO0lBR0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUE4QjtRQUN6QyxJQUFJLElBQUksQ0FBQyxRQUFR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QUNILENBQUM7OEdBcEtVLHFCQUFxQjtrR0FBckIscUJBQXFCLHFqQkFGckIsRUFBRSx1VEFxRUMsa0JBQWtCLHlFQUNmLGVBQWUsZ0xDOUdsQyw2N0VBaUVBOzsyRkR2QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQixhQUVsQixFQUFFO3dEQUdKLE1BQU07c0JBQWQsS0FBSztnQkFNRixRQUFRO3NCQURYLEtBQUs7Z0JBT0csU0FBUztzQkFBakIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBZUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdGLE9BQU87c0JBRFYsS0FBSztnQkFRRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRywyQkFBMkI7c0JBQXBDLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBRVAsd0JBQXdCO3NCQUR2QixZQUFZO3VCQUFDLDBCQUEwQjtnQkFPeEMsNEJBQTRCO3NCQUQzQixZQUFZO3VCQUFDLDhCQUE4QjtnQkFXVixTQUFTO3NCQUExQyxZQUFZO3VCQUFDLGtCQUFrQjtnQkFDeUIsbUJBQW1CO3NCQUEzRSxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRW5CLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCdcbmltcG9ydCB7IEZvcm1Db250cm9sTmFtZSwgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgbWFwLCBvZiwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGdldExvY2F0aW9uIH0gZnJvbSAnQG9uZWN4L2FjY2VsZXJhdG9yJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaEhlYWRlckNvbXBvbmVudFN0YXRlIHtcbiAgYWN0aXZlVmlld01vZGU/OiAnYmFzaWMnIHwgJ2FkdmFuY2VkJ1xuICBzZWxlY3RlZFNlYXJjaENvbmZpZz86IHN0cmluZyB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDb25maWdEYXRhIHtcbiAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGZpZWxkVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gIGRpc3BsYXllZENvbHVtbnNJZHM6IHN0cmluZ1tdXG4gIHZpZXdNb2RlOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJ1xufVxuXG4vKipcbiAqIFRvIHRyaWdnZXIgdGhlIHNlYXJjaCB3aGVuIEVudGVyIGtleSBpcyBwcmVzc2VkIGluc2lkZSBhIHNlYXJjaCBwYXJhbWV0ZXIgZmllbGQsXG4gKiBhbiBFdmVudExpc3RlbmVyIGZvciBrZXl1cCBlbnRlciBldmVudCBpcyBhZGRlZCBmb3IgSFRNTCBlbGVtZW50cyB3aGljaCBoYXZlIGFuIGlucHV0LlxuICogUGxlYXNlIGFkZCB0aGUgRXZlbnRMaXN0ZW5lciB5b3Vyc2VsZiBtYW51YWxseSwgaWYgeW91IHdhbnQgdG8gaGF2ZSB0aGF0IGZ1bmN0aW9uYWxpdHkgZm9yIHNvbWUgb3RoZXIgZWxlbWVudHNcbiAqIHdoaWNoIGRvIG5vdCBoYXZlIGFuIGlucHV0IGVsZW1lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jeC1zZWFyY2gtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgaGVhZGVyID0gJydcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBoZWFkZXJcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBoZWFkbGluZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhlYWRlclxuICB9XG4gIHNldCBoZWFkbGluZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5oZWFkZXIgPSB2YWx1ZVxuICB9XG4gIEBJbnB1dCgpIHN1YmhlYWRlcjogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIF92aWV3TW9kZTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCcgPSAnYmFzaWMnXG4gIEBJbnB1dCgpXG4gIGdldCB2aWV3TW9kZSgpOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdNb2RlXG4gIH1cbiAgc2V0IHZpZXdNb2RlKHZpZXdNb2RlOiAnYmFzaWMnIHwgJ2FkdmFuY2VkJykge1xuICAgIGlmICh0aGlzLnZpZXdNb2RlICE9PSB2aWV3TW9kZSkge1xuICAgICAgdGhpcy5fdmlld01vZGUgPSB2aWV3TW9kZVxuICAgICAgdGhpcy52aWV3TW9kZUNoYW5nZWQ/LmVtaXQodGhpcy52aWV3TW9kZSlcbiAgICAgIHRoaXMuY29tcG9uZW50U3RhdGVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICBhY3RpdmVWaWV3TW9kZTogdGhpcy52aWV3TW9kZSxcbiAgICAgIH0pXG4gICAgICB0aGlzLnVwZGF0ZUhlYWRlckFjdGlvbnMoKVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkZEtleVVwRXZlbnRMaXN0ZW5lcigpKVxuICAgIH1cbiAgfVxuICBASW5wdXQoKSBtYW51YWxCcmVhZGNydW1icyA9IGZhbHNlXG4gIF9hY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gIEBJbnB1dCgpXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zXG4gIH1cbiAgc2V0IGFjdGlvbnModmFsdWUpIHtcbiAgICB0aGlzLl9hY3Rpb25zID0gdmFsdWVcbiAgICB0aGlzLnVwZGF0ZUhlYWRlckFjdGlvbnMoKVxuICB9XG4gIEBJbnB1dCgpIHNlYXJjaENvbmZpZ1Blcm1pc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzZWFyY2hCdXR0b25EaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIHJlc2V0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZVxuICBASW5wdXQoKSBwYWdlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZ2V0TG9jYXRpb24oKS5hcHBsaWNhdGlvblBhdGhcblxuICBAT3V0cHV0KCkgc2VhcmNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSByZXNldHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHNlbGVjdGVkU2VhcmNoQ29uZmlnQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaENvbmZpZ0RhdGEgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB2aWV3TW9kZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjwnYmFzaWMnIHwgJ2FkdmFuY2VkJz4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaEhlYWRlckNvbXBvbmVudFN0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQnKVxuICBhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBnZXQgX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcbiAgfVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0JylcbiAgYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIGdldCBfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XG4gIH1cblxuICBnZXQgc2VhcmNoQ29uZmlnQ2hhbmdlT2JzZXJ2ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkLm9ic2VydmVkXG4gIH1cblxuICBAQ29udGVudENoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSkgZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtQ29udHJvbE5hbWUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdmlzaWJsZUZvcm1Db250cm9scyE6IFF1ZXJ5TGlzdDxGb3JtQ29udHJvbE5hbWU+XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoUGFyYW1ldGVyRmllbGRzJykgc2VhcmNoUGFyYW1ldGVyRmllbGRzOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgaGFzQWR2YW5jZWQgPSBmYWxzZVxuXG4gIHNpbXBsZUFkdmFuY2VkQWN0aW9uOiBBY3Rpb24gPSB7XG4gICAgaWQ6ICdzaW1wbGVBZHZhbmNlZEJ1dHRvbicsXG4gICAgYWN0aW9uQ2FsbGJhY2s6ICgpID0+IHRoaXMudG9nZ2xlVmlld01vZGUoKSxcbiAgICBzaG93OiAnYWx3YXlzJyxcbiAgfVxuICBoZWFkZXJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG5cbiAgZmllbGRWYWx1ZXMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PiB8IHVuZGVmaW5lZCA9IG9mKHt9KVxuICBzZWFyY2hDb25maWdDaGFuZ2VkU2xvdEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25maWdEYXRhIHwgdW5kZWZpbmVkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VhcmNoQ29uZmlnQ2hhbmdlZFNsb3RFbWl0dGVyLnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XG4gICAgICB0aGlzLmNvbXBvbmVudFN0YXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWRTZWFyY2hDb25maWc6IGNvbmZpZz8ubmFtZSA/PyBudWxsLFxuICAgICAgfSlcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkLmVtaXQoY29uZmlnKVxuICAgIH0pXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmZpZWxkVmFsdWVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoe30pKSxcbiAgICAgICAgdGhpcy52aXNpYmxlRm9ybUNvbnRyb2xzLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgX10pID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgW2tleV06IHRoaXMuaXNWaXNpYmxlKGtleSkgPyB2YWx1ZSB8fCB1bmRlZmluZWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkS2V5VXBFdmVudExpc3RlbmVyKClcbiAgfVxuXG4gIHRvZ2dsZVZpZXdNb2RlKCkge1xuICAgIHRoaXMudmlld01vZGUgPSB0aGlzLnZpZXdNb2RlID09PSAnYmFzaWMnID8gJ2FkdmFuY2VkJyA6ICdiYXNpYydcbiAgfVxuXG4gIG9uUmVzZXRDbGlja2VkKCkge1xuICAgIHRoaXMucmVzZXR0ZWQuZW1pdCgpXG4gIH1cblxuICBvblNlYXJjaENsaWNrZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hlZC5lbWl0KClcbiAgfVxuXG4gIHVwZGF0ZUhlYWRlckFjdGlvbnMoKSB7XG4gICAgY29uc3QgaGVhZGVyQWN0aW9uczogQWN0aW9uW10gPSBbXVxuICAgIGlmICh0aGlzLmhhc0FkdmFuY2VkKSB7XG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLmxhYmVsS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5URVhUJ1xuICAgICAgOiAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5TSU1QTEUuVEVYVCcsXG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLnRpdGxlS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5ERVRBSUwnXG4gICAgICA6ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLlNJTVBMRS5ERVRBSUwnLFxuICAgICAgXG4gICAgICBoZWFkZXJBY3Rpb25zLnB1c2godGhpcy5zaW1wbGVBZHZhbmNlZEFjdGlvbilcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJBY3Rpb25zID0gaGVhZGVyQWN0aW9ucy5jb25jYXQodGhpcy5hY3Rpb25zKVxuICB9XG5cbiAgYWRkS2V5VXBFdmVudExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSB0aGlzLnNlYXJjaFBhcmFtZXRlckZpZWxkcz8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXG4gICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKChpbnB1dEVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnB1dEVsZW1lbnQubGlzdGVuZXJBZGRlZCkge1xuICAgICAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vblNlYXJjaEtleXVwKGV2ZW50KSlcbiAgICAgICAgaW5wdXRFbGVtZW50Lmxpc3RlbmVyQWRkZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uU2VhcmNoS2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uU2VhcmNoQ2xpY2tlZCgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Zpc2libGUoY29udHJvbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUZvcm1Db250cm9scy5zb21lKFxuICAgICAgKGZvcm1Db250cm9sKSA9PiBmb3JtQ29udHJvbC5uYW1lICE9PSBudWxsICYmIFN0cmluZyhmb3JtQ29udHJvbC5uYW1lKSA9PT0gY29udHJvbFxuICAgIClcbiAgfVxufVxuIiwiPG9jeC1wYWdlLWhlYWRlclxuICBbaGVhZGVyXT1cImhlYWRlciB8fCAoJ09DWF9TRUFSQ0hfSEVBREVSLkhFQURFUicgfCB0cmFuc2xhdGUpXCJcbiAgW3N1YmhlYWRlcl09XCJzdWJoZWFkZXJcIlxuICBbbWFudWFsQnJlYWRjcnVtYnNdPVwibWFudWFsQnJlYWRjcnVtYnNcIlxuICBbYWN0aW9uc109XCJoZWFkZXJBY3Rpb25zXCJcbj5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hDb25maWdDaGFuZ2VPYnNlcnZlZCAmJiBwYWdlTmFtZVwiPlxuICAgICAgPG9jeC1zbG90XG4gICAgICAgICpvY3hJZlBlcm1pc3Npb249XCJzZWFyY2hDb25maWdQZXJtaXNzaW9uXCJcbiAgICAgICAgbmFtZT1cIm9uZWN4LXNlYXJjaC1jb25maWdcIlxuICAgICAgICBbaW5wdXRzXT1cInsgcGFnZU5hbWU6IHBhZ2VOYW1lLCBjdXJyZW50RmllbGRWYWx1ZXM6IGZpZWxkVmFsdWVzJCB8IGFzeW5jLCB2aWV3TW9kZTogdmlld01vZGUgfVwiXG4gICAgICAgIFtvdXRwdXRzXT1cInsgc2VhcmNoQ29uZmlnU2VsZWN0ZWQ6IHNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlciB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxOHJlbVwiIGhlaWdodD1cIjNyZW1cIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L29jeC1zbG90PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IHJvdy1nYXAtMyBjb2x1bW4tZ2FwLTYgZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2ICNzZWFyY2hQYXJhbWV0ZXJGaWVsZHM+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMlwiPlxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIGlkPVwicmVzZXRCdXR0b25cIlxuICAgICAgICAqbmdJZj1cInJlc2V0dGVkLm9ic2VydmVkXCJcbiAgICAgICAgKG9uQ2xpY2spPVwib25SZXNldENsaWNrZWQoKVwiXG4gICAgICAgIGxhYmVsPVwie3sgJ09DWF9TRUFSQ0hfSEVBREVSLlJFU0VUX0JVVFRPTi5URVhUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGljb249XCJwaSBwaS1lcmFzZXJcIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgIHRvb2x0aXBFdmVudD1cImhvdmVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlc2V0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIidPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgPC9wLWJ1dHRvbj5cblxuICAgICAgPHAtYnV0dG9uXG4gICAgICAgIGlkPVwic2VhcmNoQnV0dG9uXCJcbiAgICAgICAgKG9uQ2xpY2spPVwib25TZWFyY2hDbGlja2VkKClcIlxuICAgICAgICBsYWJlbD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLlRFWFQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgIHBUb29sdGlwPVwie3sgJ09DWF9TRUFSQ0hfSEVBREVSLlNFQVJDSF9CVVRUT04uREVUQUlMJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgIHRvb2x0aXBFdmVudD1cImhvdmVyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInNlYXJjaEJ1dHRvbkRpc2FibGVkIHx8IGZvcm1Hcm91cD8uaW52YWxpZFwiXG4gICAgICAgIFthcmlhTGFiZWxdPVwiJ09DWF9TRUFSQ0hfSEVBREVSLlNFQVJDSF9CVVRUT04uQVJJQV9MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgPlxuICAgICAgPC9wLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L29jeC1wYWdlLWhlYWRlcj5cbiJdfQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1oZWFkZXIvc2VhcmNoLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsZUFBZSxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDL0UsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7Ozs7Ozs7Ozs7QUFjdkY7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8scUJBQXFCO0lBR2hDOztPQUVHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3BCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ3JCLENBQUM7SUFHRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIs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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xOYW1lLCBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBtYXAsIG9mLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZ2V0TG9jYXRpb24gfSBmcm9tICdAb25lY3gvYWNjZWxlcmF0b3InXG5pbXBvcnQgeyBDT05GSUdfS0VZLCBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hIZWFkZXJDb21wb25lbnRTdGF0ZSB7XG4gIGFjdGl2ZVZpZXdNb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCdcbiAgc2VsZWN0ZWRTZWFyY2hDb25maWc/OiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoQ29uZmlnRGF0YSB7XG4gIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBmaWVsZFZhbHVlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICBkaXNwbGF5ZWRDb2x1bW5zSWRzOiBzdHJpbmdbXVxuICB2aWV3TW9kZTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCdcbn1cblxuLyoqXG4gKiBUbyB0cmlnZ2VyIHRoZSBzZWFyY2ggd2hlbiBFbnRlciBrZXkgaXMgcHJlc3NlZCBpbnNpZGUgYSBzZWFyY2ggcGFyYW1ldGVyIGZpZWxkLFxuICogYW4gRXZlbnRMaXN0ZW5lciBmb3Iga2V5dXAgZW50ZXIgZXZlbnQgaXMgYWRkZWQgZm9yIEhUTUwgZWxlbWVudHMgd2hpY2ggaGF2ZSBhbiBpbnB1dC5cbiAqIFBsZWFzZSBhZGQgdGhlIEV2ZW50TGlzdGVuZXIgeW91cnNlbGYgbWFudWFsbHksIGlmIHlvdSB3YW50IHRvIGhhdmUgdGhhdCBmdW5jdGlvbmFsaXR5IGZvciBzb21lIG90aGVyIGVsZW1lbnRzXG4gKiB3aGljaCBkbyBub3QgaGF2ZSBhbiBpbnB1dCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvY3gtc2VhcmNoLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGhlYWRlciA9ICcnXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgaGVhZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaGVhZGxpbmUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJcbiAgfVxuICBzZXQgaGVhZGxpbmUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuaGVhZGVyID0gdmFsdWVcbiAgfVxuICBASW5wdXQoKSBzdWJoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBfdmlld01vZGU6ICdiYXNpYycgfCAnYWR2YW5jZWQnID0gJ2Jhc2ljJ1xuICBASW5wdXQoKVxuICBnZXQgdmlld01vZGUoKTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCcge1xuICAgIHJldHVybiB0aGlzLl92aWV3TW9kZVxuICB9XG4gIHNldCB2aWV3TW9kZSh2aWV3TW9kZTogJ2Jhc2ljJyB8ICdhZHZhbmNlZCcpIHtcbiAgICBpZiAodGhpcy52aWV3TW9kZSAhPT0gdmlld01vZGUpIHtcbiAgICAgIHRoaXMuX3ZpZXdNb2RlID0gdmlld01vZGVcbiAgICAgIHRoaXMudmlld01vZGVDaGFuZ2VkPy5lbWl0KHRoaXMudmlld01vZGUpXG4gICAgICB0aGlzLmNvbXBvbmVudFN0YXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgYWN0aXZlVmlld01vZGU6IHRoaXMudmlld01vZGUsXG4gICAgICB9KVxuICAgICAgdGhpcy51cGRhdGVIZWFkZXJBY3Rpb25zKClcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hZGRLZXlVcEV2ZW50TGlzdGVuZXIoKSlcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgbWFudWFsQnJlYWRjcnVtYnMgPSBmYWxzZVxuICBfYWN0aW9uczogQWN0aW9uW10gPSBbXVxuICBASW5wdXQoKVxuICBnZXQgYWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1xuICB9XG4gIHNldCBhY3Rpb25zKHZhbHVlKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IHZhbHVlXG4gICAgdGhpcy51cGRhdGVIZWFkZXJBY3Rpb25zKClcbiAgfVxuICBASW5wdXQoKSBzZWFyY2hDb25maWdQZXJtaXNzaW9uOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBzZWFyY2hCdXR0b25EaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIHJlc2V0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZVxuICBASW5wdXQoKSBwYWdlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZ2V0TG9jYXRpb24oKS5hcHBsaWNhdGlvblBhdGhcblxuICBAT3V0cHV0KCkgc2VhcmNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSByZXNldHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHNlbGVjdGVkU2VhcmNoQ29uZmlnQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaENvbmZpZ0RhdGEgfCB1bmRlZmluZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIEBPdXRwdXQoKSB2aWV3TW9kZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjwnYmFzaWMnIHwgJ2FkdmFuY2VkJz4gPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNvbXBvbmVudFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaEhlYWRlckNvbXBvbmVudFN0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQnKVxuICBhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBnZXQgX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcbiAgfVxuICBAQ29udGVudENoaWxkKCdhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0JylcbiAgYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuXG4gIGdldCBfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50TGVmdCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0XG4gIH1cblxuICBnZXQgc2VhcmNoQ29uZmlnQ2hhbmdlT2JzZXJ2ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRTZWFyY2hDb25maWdDaGFuZ2VkLm9ic2VydmVkXG4gIH1cblxuICBAQ29udGVudENoaWxkKEZvcm1Hcm91cERpcmVjdGl2ZSkgZm9ybUdyb3VwOiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtQ29udHJvbE5hbWUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdmlzaWJsZUZvcm1Db250cm9scyE6IFF1ZXJ5TGlzdDxGb3JtQ29udHJvbE5hbWU+XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoUGFyYW1ldGVyRmllbGRzJykgc2VhcmNoUGFyYW1ldGVyRmllbGRzOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG5cbiAgaGFzQWR2YW5jZWQgPSBmYWxzZVxuXG4gIHNpbXBsZUFkdmFuY2VkQWN0aW9uOiBBY3Rpb24gPSB7XG4gICAgaWQ6ICdzaW1wbGVBZHZhbmNlZEJ1dHRvbicsXG4gICAgYWN0aW9uQ2FsbGJhY2s6ICgpID0+IHRoaXMudG9nZ2xlVmlld01vZGUoKSxcbiAgICBzaG93OiAnYWx3YXlzJyxcbiAgfVxuICBoZWFkZXJBY3Rpb25zOiBBY3Rpb25bXSA9IFtdXG4gIHNlYXJjaEJ1dHRvbnNSZXZlcnNlZCA9IGZhbHNlXG4gIGZpZWxkVmFsdWVzJDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHVua25vd24gfT4gfCB1bmRlZmluZWQgPSBvZih7fSlcbiAgc2VhcmNoQ29uZmlnQ2hhbmdlZFNsb3RFbWl0dGVyOiBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZmlnRGF0YSB8IHVuZGVmaW5lZD4gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBjb25zdHJ1Y3Rvcihjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcbiAgICB0aGlzLnNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlci5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgdGhpcy5jb21wb25lbnRTdGF0ZUNoYW5nZWQuZW1pdCh7XG4gICAgICAgIHNlbGVjdGVkU2VhcmNoQ29uZmlnOiBjb25maWc/Lm5hbWUgPz8gbnVsbCxcbiAgICAgIH0pXG4gICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoQ29uZmlnQ2hhbmdlZC5lbWl0KGNvbmZpZylcbiAgICB9KVxuICAgIHRoaXMuc2VhcmNoQnV0dG9uc1JldmVyc2VkID1cbiAgICAgIGNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldFByb3BlcnR5KENPTkZJR19LRVkuT05FQ1hfUE9SVEFMX1NFQVJDSF9CVVRUT05TX1JFVkVSU0VEKSA9PT0gJ3RydWUnXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmZpZWxkVmFsdWVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoe30pKSxcbiAgICAgICAgdGhpcy52aXNpYmxlRm9ybUNvbnRyb2xzLmNoYW5nZXMucGlwZShzdGFydFdpdGgobnVsbCkpLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgIG1hcCgoW3ZhbHVlcywgX10pID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWVzID8/IHt9KS5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgW2tleV06IHRoaXMuaXNWaXNpYmxlKGtleSkgPyB2YWx1ZSB8fCB1bmRlZmluZWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkS2V5VXBFdmVudExpc3RlbmVyKClcbiAgfVxuXG4gIHRvZ2dsZVZpZXdNb2RlKCkge1xuICAgIHRoaXMudmlld01vZGUgPSB0aGlzLnZpZXdNb2RlID09PSAnYmFzaWMnID8gJ2FkdmFuY2VkJyA6ICdiYXNpYydcbiAgfVxuXG4gIG9uUmVzZXRDbGlja2VkKCkge1xuICAgIHRoaXMucmVzZXR0ZWQuZW1pdCgpXG4gIH1cblxuICBvblNlYXJjaENsaWNrZWQoKSB7XG4gICAgdGhpcy5zZWFyY2hlZC5lbWl0KClcbiAgfVxuXG4gIHVwZGF0ZUhlYWRlckFjdGlvbnMoKSB7XG4gICAgY29uc3QgaGVhZGVyQWN0aW9uczogQWN0aW9uW10gPSBbXVxuICAgIGlmICh0aGlzLmhhc0FkdmFuY2VkKSB7XG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLmxhYmVsS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5URVhUJ1xuICAgICAgOiAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5TSU1QTEUuVEVYVCcsXG4gICAgICB0aGlzLnNpbXBsZUFkdmFuY2VkQWN0aW9uLnRpdGxlS2V5ID0gdGhpcy52aWV3TW9kZSA9PT0gJ2Jhc2ljJ1xuICAgICAgPyAnT0NYX1NFQVJDSF9IRUFERVIuVE9HR0xFX0JVVFRPTi5BRFZBTkNFRC5ERVRBSUwnXG4gICAgICA6ICdPQ1hfU0VBUkNIX0hFQURFUi5UT0dHTEVfQlVUVE9OLlNJTVBMRS5ERVRBSUwnLFxuICAgICAgXG4gICAgICBoZWFkZXJBY3Rpb25zLnB1c2godGhpcy5zaW1wbGVBZHZhbmNlZEFjdGlvbilcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJBY3Rpb25zID0gaGVhZGVyQWN0aW9ucy5jb25jYXQodGhpcy5hY3Rpb25zKVxuICB9XG5cbiAgYWRkS2V5VXBFdmVudExpc3RlbmVyKCkge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSB0aGlzLnNlYXJjaFBhcmFtZXRlckZpZWxkcz8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXG4gICAgaW5wdXRFbGVtZW50cy5mb3JFYWNoKChpbnB1dEVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKCFpbnB1dEVsZW1lbnQubGlzdGVuZXJBZGRlZCkge1xuICAgICAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCAoZXZlbnQ6IGFueSkgPT4gdGhpcy5vblNlYXJjaEtleXVwKGV2ZW50KSlcbiAgICAgICAgaW5wdXRFbGVtZW50Lmxpc3RlbmVyQWRkZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG9uU2VhcmNoS2V5dXAoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLm9uU2VhcmNoQ2xpY2tlZCgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1Zpc2libGUoY29udHJvbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZUZvcm1Db250cm9scy5zb21lKFxuICAgICAgKGZvcm1Db250cm9sKSA9PiBmb3JtQ29udHJvbC5uYW1lICE9PSBudWxsICYmIFN0cmluZyhmb3JtQ29udHJvbC5uYW1lKSA9PT0gY29udHJvbFxuICAgIClcbiAgfVxufVxuIiwiPG9jeC1wYWdlLWhlYWRlclxuICBbaGVhZGVyXT1cImhlYWRlciB8fCAoJ09DWF9TRUFSQ0hfSEVBREVSLkhFQURFUicgfCB0cmFuc2xhdGUpXCJcbiAgW3N1YmhlYWRlcl09XCJzdWJoZWFkZXJcIlxuICBbbWFudWFsQnJlYWRjcnVtYnNdPVwibWFudWFsQnJlYWRjcnVtYnNcIlxuICBbYWN0aW9uc109XCJoZWFkZXJBY3Rpb25zXCJcbj5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRMZWZ0PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hDb25maWdDaGFuZ2VPYnNlcnZlZCAmJiBwYWdlTmFtZVwiPlxuICAgICAgPG9jeC1zbG90XG4gICAgICAgICpvY3hJZlBlcm1pc3Npb249XCJzZWFyY2hDb25maWdQZXJtaXNzaW9uXCJcbiAgICAgICAgbmFtZT1cIm9uZWN4LXNlYXJjaC1jb25maWdcIlxuICAgICAgICBbaW5wdXRzXT1cInsgcGFnZU5hbWU6IHBhZ2VOYW1lLCBjdXJyZW50RmllbGRWYWx1ZXM6IGZpZWxkVmFsdWVzJCB8IGFzeW5jLCB2aWV3TW9kZTogdmlld01vZGUgfVwiXG4gICAgICAgIFtvdXRwdXRzXT1cInsgc2VhcmNoQ29uZmlnU2VsZWN0ZWQ6IHNlYXJjaENvbmZpZ0NoYW5nZWRTbG90RW1pdHRlciB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgPHAtc2tlbGV0b24gd2lkdGg9XCIxOHJlbVwiIGhlaWdodD1cIjNyZW1cIj48L3Atc2tlbGV0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L29jeC1zbG90PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2FkZGl0aW9uYWxUb29sYmFyQ29udGVudExlZnRcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNhZGRpdGlvbmFsVG9vbGJhckNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9hZGRpdGlvbmFsVG9vbGJhckNvbnRlbnRcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJfYWRkaXRpb25hbFRvb2xiYXJDb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IHJvdy1nYXAtMyBjb2x1bW4tZ2FwLTYgZmxleC13cmFwIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8ZGl2ICNzZWFyY2hQYXJhbWV0ZXJGaWVsZHM+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMlwiIFtuZ0NsYXNzXT1cInNlYXJjaEJ1dHRvbnNSZXZlcnNlZCA/ICdmbGV4LXJvdy1yZXZlcnNlJyA6ICdmbGV4LXJvdydcIj5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInJlc2V0QnV0dG9uXCJcbiAgICAgICAgKm5nSWY9XCJyZXNldHRlZC5vYnNlcnZlZFwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uUmVzZXRDbGlja2VkKClcIlxuICAgICAgICBsYWJlbD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5SRVNFVF9CVVRUT04uVEVYVCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBpY29uPVwicGkgcGktZXJhc2VyXCJcbiAgICAgICAgcFRvb2x0aXA9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZXNldEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCInT0NYX1NFQVJDSF9IRUFERVIuUkVTRVRfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG5cbiAgICAgIDxwLWJ1dHRvblxuICAgICAgICBpZD1cInNlYXJjaEJ1dHRvblwiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uU2VhcmNoQ2xpY2tlZCgpXCJcbiAgICAgICAgbGFiZWw9XCJ7eyAnT0NYX1NFQVJDSF9IRUFERVIuU0VBUkNIX0JVVFRPTi5URVhUJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICBwVG9vbHRpcD1cInt7ICdPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkRFVEFJTCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICB0b29sdGlwRXZlbnQ9XCJob3ZlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzZWFyY2hCdXR0b25EaXNhYmxlZCB8fCBmb3JtR3JvdXA/LmludmFsaWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cIidPQ1hfU0VBUkNIX0hFQURFUi5TRUFSQ0hfQlVUVE9OLkFSSUFfTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgIDwvcC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9vY3gtcGFnZS1oZWFkZXI+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9tb2RlbC9kYXRhLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhQWN0aW9uIHtcbiAgaWQ/OiBzdHJpbmdcbiAgbGFiZWxLZXk/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9tb2RlbC9kYXRhLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRhQWN0aW9uIHtcbiAgaWQ/OiBzdHJpbmdcbiAgbGFiZWxLZXk/OiBzdHJpbmdcbiAgaWNvbj86IHN0cmluZ1xuICBwZXJtaXNzaW9uOiBzdHJpbmcgfCBzdHJpbmdbXVxuICBjbGFzc2VzPzogc3RyaW5nW11cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGFjdGlvblZpc2libGVGaWVsZD86IHN0cmluZ1xuICBhY3Rpb25FbmFibGVkRmllbGQ/OiBzdHJpbmdcbiAgc2hvd0FzT3ZlcmZsb3c/OiBib29sZWFuXG4gIGNhbGxiYWNrOiAoZGF0YTogYW55KSA9PiB2b2lkXG59XG4iXX0=
|
|
@@ -6,13 +6,13 @@ function _hasShowTime(calendars, formKey) {
|
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Safely builds the search criteria based on form values
|
|
9
|
-
* @param
|
|
9
|
+
* @param formRawValue the raw value of the form to use
|
|
10
10
|
* @param calendars a list of primeng calendars of the form (use `@ViewChildren(Calendar) calendars!: QueryList<Calendar>;`)
|
|
11
11
|
* @param parameters {@link BuildSearchCriteriaParameters} to use when building the search criteria
|
|
12
12
|
* @returns the search criteria as a partial of T (T = type of the search criteria)
|
|
13
13
|
*/
|
|
14
|
-
export function buildSearchCriteria(
|
|
15
|
-
return Object.entries(
|
|
14
|
+
export function buildSearchCriteria(formRawValue, calendars, { removeNullValues = false }) {
|
|
15
|
+
return Object.entries(formRawValue).reduce((acc, [key, value]) => {
|
|
16
16
|
if (value == null && removeNullValues) {
|
|
17
17
|
return acc;
|
|
18
18
|
}
|
|
@@ -25,4 +25,4 @@ export function buildSearchCriteria(formValues, calendars, { removeNullValues =
|
|
|
25
25
|
};
|
|
26
26
|
}, {});
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi91dGlscy9jcml0ZXJpYS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFXakYsU0FBUyxZQUFZLENBQUMsU0FBOEIsRUFBRSxPQUFlO0lBQ25FLE9BQU8sQ0FDTCxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQTtJQUMzQixDQUFDLENBQUMsRUFBRSxRQUFRLEtBQUssSUFBSSxDQUN0QixDQUFBO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsWUFBaUIsRUFDakIsU0FBOEIsRUFDOUIsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLLEVBQWlDO0lBRTNELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFlLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUMzRSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxLQUFLLEdBQUcsK0JBQStCLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEQsQ0FBQztRQUNELE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUs7U0FDYixDQUFBO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBnZXRVVENEYXRlV2l0aG91dFRpbWV6b25lSXNzdWVzLCBpc1ZhbGlkRGF0ZSB9IGZyb20gJ0BvbmVjeC9hY2NlbGVyYXRvcidcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcidcblxuZXhwb3J0IHR5cGUgaGFzU2hvd1RpbWVGdW5jdGlvbiA9IChrZXk6IHN0cmluZykgPT4gYm9vbGVhblxuLyoqXG4gKiByZW1vdmVOdWxsVmFsdWVzOiB3aGV0aGVyIHRvIHJlbW92ZSBlbnRyaWVzIGZyb20gdGhlIHNlYXJjaCBjcml0ZXJpYSB3aGVyZSB0aGUgdmFsdWUgaXMgbnVsbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkU2VhcmNoQ3JpdGVyaWFQYXJhbWV0ZXJzIHtcbiAgcmVtb3ZlTnVsbFZhbHVlczogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBfaGFzU2hvd1RpbWUoY2FsZW5kYXJzOiBRdWVyeUxpc3Q8Q2FsZW5kYXI+LCBmb3JtS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBjYWxlbmRhcnMuZmluZCgoYykgPT4ge1xuICAgICAgcmV0dXJuIGMubmFtZSA9PT0gZm9ybUtleVxuICAgIH0pPy5zaG93VGltZSA9PT0gdHJ1ZVxuICApXG59XG5cbi8qKlxuICogU2FmZWx5IGJ1aWxkcyB0aGUgc2VhcmNoIGNyaXRlcmlhIGJhc2VkIG9uIGZvcm0gdmFsdWVzXG4gKiBAcGFyYW0gZm9ybVJhd1ZhbHVlIHRoZSByYXcgdmFsdWUgb2YgdGhlIGZvcm0gdG8gdXNlXG4gKiBAcGFyYW0gY2FsZW5kYXJzIGEgbGlzdCBvZiBwcmltZW5nIGNhbGVuZGFycyBvZiB0aGUgZm9ybSAodXNlIGBAVmlld0NoaWxkcmVuKENhbGVuZGFyKSBjYWxlbmRhcnMhOiBRdWVyeUxpc3Q8Q2FsZW5kYXI+O2ApXG4gKiBAcGFyYW0gcGFyYW1ldGVycyB7QGxpbmsgQnVpbGRTZWFyY2hDcml0ZXJpYVBhcmFtZXRlcnN9ICB0byB1c2Ugd2hlbiBidWlsZGluZyB0aGUgc2VhcmNoIGNyaXRlcmlhXG4gKiBAcmV0dXJucyB0aGUgc2VhcmNoIGNyaXRlcmlhIGFzIGEgcGFydGlhbCBvZiBUIChUID0gdHlwZSBvZiB0aGUgc2VhcmNoIGNyaXRlcmlhKVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTZWFyY2hDcml0ZXJpYTxUPihcbiAgZm9ybVJhd1ZhbHVlOiBhbnksXG4gIGNhbGVuZGFyczogUXVlcnlMaXN0PENhbGVuZGFyPixcbiAgeyByZW1vdmVOdWxsVmFsdWVzID0gZmFsc2UgfTogQnVpbGRTZWFyY2hDcml0ZXJpYVBhcmFtZXRlcnNcbikge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZm9ybVJhd1ZhbHVlKS5yZWR1Y2UoKGFjYzogUGFydGlhbDxUPiwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwgJiYgcmVtb3ZlTnVsbFZhbHVlcykge1xuICAgICAgcmV0dXJuIGFjY1xuICAgIH1cbiAgICBpZiAoaXNWYWxpZERhdGUodmFsdWUpICYmICFfaGFzU2hvd1RpbWUoY2FsZW5kYXJzLCBrZXkpKSB7XG4gICAgICB2YWx1ZSA9IGdldFVUQ0RhdGVXaXRob3V0VGltZXpvbmVJc3N1ZXModmFsdWUpXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICBba2V5XTogdmFsdWUsXG4gICAgfVxuICB9LCB7fSlcbn1cbiJdfQ==
|
|
@@ -2,15 +2,19 @@ import { ContentContainerComponentHarness, parallel } from '@angular/cdk/testing
|
|
|
2
2
|
import { PPaginatorHarness } from '@onecx/angular-testing';
|
|
3
3
|
import { DefaultGridItemHarness } from './default-grid-item.harness';
|
|
4
4
|
import { DefaultListItemHarness } from './default-list-item.harness';
|
|
5
|
+
import { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing';
|
|
5
6
|
export class DataListGridHarness extends ContentContainerComponentHarness {
|
|
6
7
|
constructor() {
|
|
7
8
|
super(...arguments);
|
|
8
9
|
this.getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness);
|
|
9
|
-
this.getDefaultListItems = this.locatorForAll(DefaultListItemHarness);
|
|
10
10
|
this.getPaginator = this.locatorFor(PPaginatorHarness);
|
|
11
11
|
this.getMenuButton = this.locatorFor(`[name="data-grid-item-menu-button"]`);
|
|
12
12
|
}
|
|
13
13
|
static { this.hostSelector = 'ocx-data-list-grid'; }
|
|
14
|
+
async getDefaultListItems() {
|
|
15
|
+
await waitForDeferredViewsToBeRendered(this);
|
|
16
|
+
return await this.locatorForAll(DefaultListItemHarness)();
|
|
17
|
+
}
|
|
14
18
|
async getActionButtons(actionButtonType) {
|
|
15
19
|
if (actionButtonType === 'list') {
|
|
16
20
|
return await this.locatorForAll(`[name="data-list-action-button"]`)();
|
|
@@ -44,4 +48,4 @@ export class DataListGridHarness extends ContentContainerComponentHarness {
|
|
|
44
48
|
return disabledActionButtonsCount === amount;
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LWdyaWQuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci90ZXN0aW5nL2RhdGEtbGlzdC1ncmlkLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFlLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXpFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQ0FBZ0M7SUFBekU7O1FBR0Usd0JBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ2hFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2pELGtCQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0lBMkN4RSxDQUFDO2FBL0NRLGlCQUFZLEdBQUcsb0JBQW9CLEFBQXZCLENBQXVCO0lBTTFDLEtBQUssQ0FBQyxtQkFBbUI7UUFDdkIsTUFBTSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUE7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBaUQ7UUFDdEUsSUFBSSxnQkFBZ0IsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUE7UUFDdkUsQ0FBQzthQUFNLElBQUksZ0JBQWdCLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGFBQWEsQ0FDMUQsc0RBQXNELENBQ3ZELEVBQUUsQ0FBQTtRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGFBQWEsQ0FBQywrQ0FBK0MsQ0FBQyxFQUFFLENBQUE7UUFDakgsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsWUFBeUIsRUFBRSxRQUF5QjtRQUMvRSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLGdCQUFpRCxFQUFFLE1BQWM7UUFDOUYsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFBO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsUUFBeUIsRUFBRSxNQUFjO1FBQzlFLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNELE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNsQixhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3pFLDBCQUEwQixFQUFFLENBQUE7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxPQUFPLDBCQUEwQixLQUFLLE1BQU0sQ0FBQTtJQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3MsIFRlc3RFbGVtZW50LCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuaW1wb3J0IHsgUFBhZ2luYXRvckhhcm5lc3MgfSBmcm9tICdAb25lY3gvYW5ndWxhci10ZXN0aW5nJ1xuaW1wb3J0IHsgRGVmYXVsdEdyaWRJdGVtSGFybmVzcyB9IGZyb20gJy4vZGVmYXVsdC1ncmlkLWl0ZW0uaGFybmVzcydcbmltcG9ydCB7IERlZmF1bHRMaXN0SXRlbUhhcm5lc3MgfSBmcm9tICcuL2RlZmF1bHQtbGlzdC1pdGVtLmhhcm5lc3MnXG5pbXBvcnQgeyB3YWl0Rm9yRGVmZXJyZWRWaWV3c1RvQmVSZW5kZXJlZCB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG5cbmV4cG9ydCBjbGFzcyBEYXRhTGlzdEdyaWRIYXJuZXNzIGV4dGVuZHMgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ29jeC1kYXRhLWxpc3QtZ3JpZCdcblxuICBnZXREZWZhdWx0R3JpZEl0ZW1zID0gdGhpcy5sb2NhdG9yRm9yQWxsKERlZmF1bHRHcmlkSXRlbUhhcm5lc3MpXG4gIGdldFBhZ2luYXRvciA9IHRoaXMubG9jYXRvckZvcihQUGFnaW5hdG9ySGFybmVzcylcbiAgZ2V0TWVudUJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcihgW25hbWU9XCJkYXRhLWdyaWQtaXRlbS1tZW51LWJ1dHRvblwiXWApXG5cbiAgYXN5bmMgZ2V0RGVmYXVsdExpc3RJdGVtcygpIHtcbiAgICBhd2FpdCB3YWl0Rm9yRGVmZXJyZWRWaWV3c1RvQmVSZW5kZXJlZCh0aGlzKVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoRGVmYXVsdExpc3RJdGVtSGFybmVzcykoKVxuICB9XG5cbiAgYXN5bmMgZ2V0QWN0aW9uQnV0dG9ucyhhY3Rpb25CdXR0b25UeXBlOiAnbGlzdCcgfCAnZ3JpZCcgfCAnZ3JpZC1oaWRkZW4nKSB7XG4gICAgaWYgKGFjdGlvbkJ1dHRvblR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChgW25hbWU9XCJkYXRhLWxpc3QtYWN0aW9uLWJ1dHRvblwiXWApKClcbiAgICB9IGVsc2UgaWYgKGFjdGlvbkJ1dHRvblR5cGUgPT09ICdncmlkLWhpZGRlbicpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvckFsbChcbiAgICAgICAgYFtkYXRhLWF1dG9tYXRpb25pZD1cImRhdGEtZ3JpZC1hY3Rpb24tYnV0dG9uLWhpZGRlblwiXWBcbiAgICAgICkoKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpLmxvY2F0b3JGb3JBbGwoYFtkYXRhLWF1dG9tYXRpb25pZD1cImRhdGEtZ3JpZC1hY3Rpb24tYnV0dG9uXCJdYCkoKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGFjdGlvbkJ1dHRvbklzRGlzYWJsZWQoYWN0aW9uQnV0dG9uOiBUZXN0RWxlbWVudCwgdmlld1R5cGU6ICdsaXN0JyB8ICdncmlkJyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh2aWV3VHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aW9uQnV0dG9uLmdldFByb3BlcnR5KCdkaXNhYmxlZCcpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCBhY3Rpb25CdXR0b24uaGFzQ2xhc3MoJ3AtZGlzYWJsZWQnKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGhhc0Ftb3VudE9mQWN0aW9uQnV0dG9ucyhhY3Rpb25CdXR0b25UeXBlOiAnbGlzdCcgfCAnZ3JpZCcgfCAnZ3JpZC1oaWRkZW4nLCBhbW91bnQ6IG51bWJlcikge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRBY3Rpb25CdXR0b25zKGFjdGlvbkJ1dHRvblR5cGUpKS5sZW5ndGggPT09IGFtb3VudFxuICB9XG5cbiAgYXN5bmMgaGFzQW1vdW50T2ZEaXNhYmxlZEFjdGlvbkJ1dHRvbnModmlld1R5cGU6ICdsaXN0JyB8ICdncmlkJywgYW1vdW50OiBudW1iZXIpIHtcbiAgICBsZXQgZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQgPSAwXG4gICAgY29uc3QgYWN0aW9uQnV0dG9ucyA9IGF3YWl0IHRoaXMuZ2V0QWN0aW9uQnV0dG9ucyh2aWV3VHlwZSlcbiAgICBhd2FpdCBwYXJhbGxlbCgoKSA9PlxuICAgICAgYWN0aW9uQnV0dG9ucy5tYXAoYXN5bmMgKGFjdGlvbkJ1dHRvbikgPT4ge1xuICAgICAgICBpZiAoKGF3YWl0IHRoaXMuYWN0aW9uQnV0dG9uSXNEaXNhYmxlZChhY3Rpb25CdXR0b24sIHZpZXdUeXBlKSkgPT09IHRydWUpIHtcbiAgICAgICAgICBkaXNhYmxlZEFjdGlvbkJ1dHRvbnNDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiBkaXNhYmxlZEFjdGlvbkJ1dHRvbnNDb3VudCA9PT0gYW1vdW50XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ComponentHarness } from '@angular/cdk/testing';
|
|
2
2
|
import { ButtonHarness, DivHarness } from '@onecx/angular-testing';
|
|
3
|
+
import { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing';
|
|
3
4
|
export class DefaultListItemHarness extends ComponentHarness {
|
|
4
5
|
constructor() {
|
|
5
6
|
super(...arguments);
|
|
@@ -11,6 +12,7 @@ export class DefaultListItemHarness extends ComponentHarness {
|
|
|
11
12
|
}
|
|
12
13
|
static { this.hostSelector = '.data-list-items'; }
|
|
13
14
|
async getData() {
|
|
15
|
+
await waitForDeferredViewsToBeRendered(this);
|
|
14
16
|
const isDataListItemsDiv = await Promise.all((await this.getAllDivs()).map((innerDivHarness) => this.checkDivsHasClasses(innerDivHarness)));
|
|
15
17
|
const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataListItemsDiv[index]);
|
|
16
18
|
const getDivTexts = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()));
|
|
@@ -21,4 +23,4 @@ export class DefaultListItemHarness extends ComponentHarness {
|
|
|
21
23
|
return hasClass;
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1saXN0LWl0ZW0uaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci90ZXN0aW5nL2RlZmF1bHQtbGlzdC1pdGVtLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUV6RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsZ0JBQWdCO0lBQTVEOztRQUdFLHdCQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbEQsa0JBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM1RixrQkFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzVGLG9CQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFeEYsZUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUE7SUFnQnJELENBQUM7YUF2QlEsaUJBQVksR0FBRyxrQkFBa0IsQUFBckIsQ0FBcUI7SUFTeEMsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzVDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUMxQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FDOUYsQ0FBQTtRQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQy9GLE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQzdGLE9BQU8sV0FBVyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBaUI7UUFDekMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBQzVHLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnXG5pbXBvcnQgeyBCdXR0b25IYXJuZXNzLCBEaXZIYXJuZXNzIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItdGVzdGluZydcbmltcG9ydCB7IHdhaXRGb3JEZWZlcnJlZFZpZXdzVG9CZVJlbmRlcmVkIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItdGVzdGluZydcblxuZXhwb3J0IGNsYXNzIERlZmF1bHRMaXN0SXRlbUhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgc3RhdGljIGhvc3RTZWxlY3RvciA9ICcuZGF0YS1saXN0LWl0ZW1zJ1xuXG4gIGdldEFsbEFjdGlvbkJ1dHRvbnMgPSB0aGlzLmxvY2F0b3JGb3JBbGwoJ2J1dHRvbicpXG4gIGdldFZpZXdCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChCdXR0b25IYXJuZXNzLndpdGgoeyBjbGFzczogJ3ZpZXdMaXN0SXRlbUJ1dHRvbicgfSkpXG4gIGdldEVkaXRCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChCdXR0b25IYXJuZXNzLndpdGgoeyBjbGFzczogJ2VkaXRMaXN0SXRlbUJ1dHRvbicgfSkpXG4gIGdldERlbGV0ZUJ1dHRvbiA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKEJ1dHRvbkhhcm5lc3Mud2l0aCh7IGNsYXNzOiAnZGVsZXRlTGlzdEl0ZW1CdXR0b24nIH0pKVxuXG4gIHByaXZhdGUgZ2V0QWxsRGl2cyA9IHRoaXMubG9jYXRvckZvckFsbChEaXZIYXJuZXNzKVxuXG4gIGFzeW5jIGdldERhdGEoKSB7XG4gICAgYXdhaXQgd2FpdEZvckRlZmVycmVkVmlld3NUb0JlUmVuZGVyZWQodGhpcylcbiAgICBjb25zdCBpc0RhdGFMaXN0SXRlbXNEaXYgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIChhd2FpdCB0aGlzLmdldEFsbERpdnMoKSkubWFwKChpbm5lckRpdkhhcm5lc3MpID0+IHRoaXMuY2hlY2tEaXZzSGFzQ2xhc3Nlcyhpbm5lckRpdkhhcm5lc3MpKVxuICAgIClcbiAgICBjb25zdCBkaXZIYXJuZXNzZXMgPSAoYXdhaXQgdGhpcy5nZXRBbGxEaXZzKCkpLmZpbHRlcigoX3YsIGluZGV4KSA9PiBpc0RhdGFMaXN0SXRlbXNEaXZbaW5kZXhdKVxuICAgIGNvbnN0IGdldERpdlRleHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoZGl2SGFybmVzc2VzLm1hcCgoZGl2SGFybmVzcykgPT4gZGl2SGFybmVzcy5nZXRUZXh0KCkpKVxuICAgIHJldHVybiBnZXREaXZUZXh0c1xuICB9XG5cbiAgYXN5bmMgY2hlY2tEaXZzSGFzQ2xhc3Nlcyh2YWx1ZTogRGl2SGFybmVzcykge1xuICAgIGNvbnN0IGhhc0NsYXNzID0gKGF3YWl0IHZhbHVlLmNoZWNrSGFzQ2xhc3MoJ2l0ZW0tbmFtZS1yb3cnKSkgfHwgKGF3YWl0IHZhbHVlLmNoZWNrSGFzQ2xhc3MoJ3N1YnRpdGxlTGluZScpKVxuICAgIHJldHVybiBoYXNDbGFzc1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ensureIntersectionObserverMockExists } from '@onecx/angular-testing';
|
|
1
2
|
export * from './column-group-selection.harness';
|
|
2
3
|
export * from './custom-group-column-selector.harness';
|
|
3
4
|
export * from './data-layout-selection.harness';
|
|
@@ -17,4 +18,6 @@ export * from './search-header.harness';
|
|
|
17
18
|
export * from '@angular/cdk/testing';
|
|
18
19
|
export * from '@angular/cdk/testing/testbed';
|
|
19
20
|
export * from '@onecx/angular-testing';
|
|
20
|
-
|
|
21
|
+
ensureIntersectionObserverMockExists();
|
|
22
|
+
global.origin = '';
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3IvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUU3RSxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLHlCQUF5QixDQUFBO0FBRXZDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLHdCQUF3QixDQUFBO0FBRXRDLG9DQUFvQyxFQUFFLENBQUE7QUFFdEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVJbnRlcnNlY3Rpb25PYnNlcnZlck1vY2tFeGlzdHMgfSBmcm9tICdAb25lY3gvYW5ndWxhci10ZXN0aW5nJ1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi1ncm91cC1zZWxlY3Rpb24uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLWdyb3VwLWNvbHVtbi1zZWxlY3Rvci5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWxheW91dC1zZWxlY3Rpb24uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1saXN0LWdyaWQuaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS10YWJsZS5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXZpZXcuaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1ncmlkLWl0ZW0uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1saXN0LWl0ZW0uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vZGlhZ3JhbS5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItdmlldy5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cC1ieS1jb3VudC1kaWFncmFtLmhhcm5lc3MnXG5leHBvcnQgKiBmcm9tICcuL2ludGVyYWN0aXZlLWRhdGEtdmlldy5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9tb3JlLWFjdGlvbnMtbWVudS1idXR0b24uaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1oZWFkZXIuaGFybmVzcydcbmV4cG9ydCAqIGZyb20gJy4vc2xvdC5oYXJuZXNzJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtaGVhZGVyLmhhcm5lc3MnXG5cbmV4cG9ydCAqIGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuZXhwb3J0ICogZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcvdGVzdGJlZCdcbmV4cG9ydCAqIGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG5cbmVuc3VyZUludGVyc2VjdGlvbk9ic2VydmVyTW9ja0V4aXN0cygpXG5kZWNsYXJlIGxldCBnbG9iYWw6IGFueVxuZ2xvYmFsLm9yaWdpbiA9ICcnIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { PDropdownHarness, PButtonHarness, PDialogHarness, PPicklistHarness, PSelectButtonHarness, MenuItemHarness, DivHarness, ButtonHarness, waitForDeferredViewsToBeRendered, PPaginatorHarness, TableHeaderColumnHarness, TableRowHarness, PTableCheckboxHarness, PChartHarness, PBreadcrumbHarness, PMenuHarness, ensureIntersectionObserverMockExists } from '@onecx/angular-testing';
|
|
2
|
+
export * from '@onecx/angular-testing';
|
|
1
3
|
import { ComponentHarness, ContentContainerComponentHarness, parallel, HarnessPredicate, PButtonHarness as PButtonHarness$1, PChipHarness, SpanHarness } from '@angular/cdk/testing';
|
|
2
4
|
export * from '@angular/cdk/testing';
|
|
3
|
-
import { PDropdownHarness, PButtonHarness, PDialogHarness, PPicklistHarness, PSelectButtonHarness, MenuItemHarness, DivHarness, ButtonHarness, PPaginatorHarness, TableHeaderColumnHarness, TableRowHarness, PTableCheckboxHarness, PChartHarness, PBreadcrumbHarness, PMenuHarness } from '@onecx/angular-testing';
|
|
4
|
-
export * from '@onecx/angular-testing';
|
|
5
5
|
export * from '@angular/cdk/testing/testbed';
|
|
6
6
|
|
|
7
7
|
class ColumnGroupSelectionHarness extends ComponentHarness {
|
|
@@ -136,6 +136,7 @@ class DefaultListItemHarness extends ComponentHarness {
|
|
|
136
136
|
}
|
|
137
137
|
static { this.hostSelector = '.data-list-items'; }
|
|
138
138
|
async getData() {
|
|
139
|
+
await waitForDeferredViewsToBeRendered(this);
|
|
139
140
|
const isDataListItemsDiv = await Promise.all((await this.getAllDivs()).map((innerDivHarness) => this.checkDivsHasClasses(innerDivHarness)));
|
|
140
141
|
const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataListItemsDiv[index]);
|
|
141
142
|
const getDivTexts = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()));
|
|
@@ -151,11 +152,14 @@ class DataListGridHarness extends ContentContainerComponentHarness {
|
|
|
151
152
|
constructor() {
|
|
152
153
|
super(...arguments);
|
|
153
154
|
this.getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness);
|
|
154
|
-
this.getDefaultListItems = this.locatorForAll(DefaultListItemHarness);
|
|
155
155
|
this.getPaginator = this.locatorFor(PPaginatorHarness);
|
|
156
156
|
this.getMenuButton = this.locatorFor(`[name="data-grid-item-menu-button"]`);
|
|
157
157
|
}
|
|
158
158
|
static { this.hostSelector = 'ocx-data-list-grid'; }
|
|
159
|
+
async getDefaultListItems() {
|
|
160
|
+
await waitForDeferredViewsToBeRendered(this);
|
|
161
|
+
return await this.locatorForAll(DefaultListItemHarness)();
|
|
162
|
+
}
|
|
159
163
|
async getActionButtons(actionButtonType) {
|
|
160
164
|
if (actionButtonType === 'list') {
|
|
161
165
|
return await this.locatorForAll(`[name="data-list-action-button"]`)();
|
|
@@ -438,6 +442,9 @@ class SearchHeaderHarness extends ComponentHarness {
|
|
|
438
442
|
}
|
|
439
443
|
}
|
|
440
444
|
|
|
445
|
+
ensureIntersectionObserverMockExists();
|
|
446
|
+
global.origin = '';
|
|
447
|
+
|
|
441
448
|
/**
|
|
442
449
|
* Generated bundle index. Do not edit.
|
|
443
450
|
*/
|