@onecx/angular-accelerator 5.48.0 → 5.48.2

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.
@@ -1,54 +1,60 @@
1
- import { Directive, ElementRef, Inject, Input, Optional, Renderer2, TemplateRef, ViewContainerRef, } from '@angular/core';
1
+ import { Directive, Inject, Input, Optional, Renderer2, TemplateRef, ViewContainerRef, } from '@angular/core';
2
2
  import { UserService } from '@onecx/angular-integration-interface';
3
3
  import { HAS_PERMISSION_CHECKER } from '@onecx/angular-utils';
4
+ import { of, BehaviorSubject } from 'rxjs';
5
+ import { switchMap } from 'rxjs/operators';
4
6
  import * as i0 from "@angular/core";
5
7
  import * as i1 from "@onecx/angular-integration-interface";
6
8
  export class IfPermissionDirective {
9
+ set permission(value) {
10
+ this.permissionSubject$.next(value);
11
+ }
7
12
  set notPermission(value) {
8
- this.permission = value;
13
+ this.permissionSubject$.next(value);
9
14
  this.negate = true;
10
15
  }
16
+ set ocxIfNotPermissionOnMissingPermission(value) {
17
+ this.ocxIfPermissionOnMissingPermission = value;
18
+ }
11
19
  set ocxIfNotPermissionPermissions(value) {
12
20
  this.ocxIfPermissionPermissions = value;
13
21
  }
14
22
  set ocxIfNotPermissionElseTemplate(value) {
15
23
  this.ocxIfPermissionElseTemplate = value;
16
24
  }
17
- constructor(renderer, el, viewContainer, hasPermissionChecker, templateRef, userService) {
25
+ constructor(renderer, viewContainer, hasPermissionChecker, templateRef, userService) {
18
26
  this.renderer = renderer;
19
- this.el = el;
20
27
  this.viewContainer = viewContainer;
21
28
  this.hasPermissionChecker = hasPermissionChecker;
22
29
  this.templateRef = templateRef;
23
30
  this.userService = userService;
31
+ this.ocxIfPermissionOnMissingPermission = 'hide';
24
32
  this.onMissingPermission = 'hide';
33
+ this.permissionSubject$ = new BehaviorSubject(undefined);
34
+ this.isDisabled = false;
25
35
  this.negate = false;
26
- if (!(hasPermissionChecker || userService)) {
36
+ const validChecker = hasPermissionChecker || userService;
37
+ if (!validChecker) {
27
38
  throw 'IfPermission requires UserService or HasPermissionChecker to be provided!';
28
39
  }
29
- this.permissionChecker = hasPermissionChecker ?? userService;
40
+ this.permissionChecker = validChecker;
30
41
  }
31
42
  ngOnInit() {
32
- if ((this.permission &&
33
- this.negate === this.hasPermission(Array.isArray(this.permission) ? this.permission : [this.permission])) ||
34
- !this.permission) {
35
- if (this.ocxIfPermissionElseTemplate) {
36
- this.viewContainer.createEmbeddedView(this.ocxIfPermissionElseTemplate);
37
- }
38
- else {
39
- if (this.onMissingPermission === 'disable') {
40
- this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');
41
- }
42
- else {
43
- this.viewContainer.clear();
44
- }
43
+ this.permissionSubject$
44
+ .pipe(switchMap((permission) => {
45
+ if (!permission) {
46
+ return of(false);
45
47
  }
46
- }
47
- else {
48
- if (this.templateRef) {
49
- this.viewContainer.createEmbeddedView(this.templateRef);
48
+ const permissionsArray = Array.isArray(permission) ? permission : [permission];
49
+ return this.hasPermission(permissionsArray);
50
+ }))
51
+ .subscribe((hasPermission) => {
52
+ const shouldShowTemplate = this.negate ? !hasPermission : hasPermission;
53
+ if (shouldShowTemplate) {
54
+ return this.showTemplateOrClear();
50
55
  }
51
- }
56
+ return this.showElseTemplateOrDefaultView();
57
+ });
52
58
  }
53
59
  hasPermission(permission) {
54
60
  if (this.ocxIfPermissionPermissions) {
@@ -56,17 +62,56 @@ export class IfPermissionDirective {
56
62
  if (!result) {
57
63
  console.log('👮‍♀️ No permission in overwrites for: `', permission);
58
64
  }
59
- return result;
65
+ return of(result);
60
66
  }
61
- return permission.every((p) => this.permissionChecker?.hasPermission(p));
67
+ if (this.permissionChecker.getPermissions) {
68
+ return this.permissionChecker.getPermissions().pipe(switchMap((permissions) => {
69
+ const result = permission.every((p) => permissions.includes(p));
70
+ if (!result) {
71
+ console.log('👮‍♀️ No permission from permission checker for: `', permission);
72
+ }
73
+ return of(result);
74
+ }));
75
+ }
76
+ return of(this.permissionChecker.hasPermission(permission));
62
77
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IfPermissionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: HAS_PERMISSION_CHECKER, optional: true }, { token: i0.TemplateRef, optional: true }, { token: i1.UserService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: { permission: ["ocxIfPermission", "permission"], notPermission: ["ocxIfNotPermission", "notPermission"], onMissingPermission: "onMissingPermission", ocxIfPermissionPermissions: "ocxIfPermissionPermissions", ocxIfNotPermissionPermissions: "ocxIfNotPermissionPermissions", ocxIfPermissionElseTemplate: "ocxIfPermissionElseTemplate", ocxIfNotPermissionElseTemplate: "ocxIfNotPermissionElseTemplate" }, ngImport: i0 }); }
78
+ showTemplateOrClear() {
79
+ this.resetView();
80
+ if (this.templateRef) {
81
+ this.directiveContentRef = this.viewContainer.createEmbeddedView(this.templateRef);
82
+ }
83
+ }
84
+ showElseTemplateOrDefaultView() {
85
+ this.resetView();
86
+ if (this.ocxIfPermissionElseTemplate) {
87
+ this.viewContainer.createEmbeddedView(this.ocxIfPermissionElseTemplate);
88
+ return;
89
+ }
90
+ if (this.ocxIfPermissionOnMissingPermission === 'disable' && this.templateRef) {
91
+ this.directiveContentRef = this.viewContainer.createEmbeddedView(this.templateRef);
92
+ const el = this.getElement();
93
+ el && this.renderer.setAttribute(el, 'disabled', 'disabled');
94
+ this.isDisabled = true;
95
+ }
96
+ }
97
+ resetView() {
98
+ this.viewContainer.clear();
99
+ if (this.isDisabled) {
100
+ this.isDisabled = false;
101
+ const el = this.getElement();
102
+ el && this.renderer.removeAttribute(el, 'disabled');
103
+ }
104
+ }
105
+ getElement() {
106
+ return this.directiveContentRef?.rootNodes[0];
107
+ }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IfPermissionDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: HAS_PERMISSION_CHECKER, optional: true }, { token: i0.TemplateRef, optional: true }, { token: i1.UserService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
109
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: IfPermissionDirective, selector: "[ocxIfPermission], [ocxIfNotPermission]", inputs: { permission: ["ocxIfPermission", "permission"], notPermission: ["ocxIfNotPermission", "notPermission"], ocxIfPermissionOnMissingPermission: "ocxIfPermissionOnMissingPermission", ocxIfNotPermissionOnMissingPermission: "ocxIfNotPermissionOnMissingPermission", onMissingPermission: "onMissingPermission", ocxIfPermissionPermissions: "ocxIfPermissionPermissions", ocxIfNotPermissionPermissions: "ocxIfNotPermissionPermissions", ocxIfPermissionElseTemplate: "ocxIfPermissionElseTemplate", ocxIfNotPermissionElseTemplate: "ocxIfNotPermissionElseTemplate" }, ngImport: i0 }); }
65
110
  }
66
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IfPermissionDirective, decorators: [{
67
112
  type: Directive,
68
113
  args: [{ selector: '[ocxIfPermission], [ocxIfNotPermission]' }]
69
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
114
+ }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
70
115
  type: Optional
71
116
  }, {
72
117
  type: Inject,
@@ -81,6 +126,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
81
126
  }], notPermission: [{
82
127
  type: Input,
83
128
  args: ['ocxIfNotPermission']
129
+ }], ocxIfPermissionOnMissingPermission: [{
130
+ type: Input
131
+ }], ocxIfNotPermissionOnMissingPermission: [{
132
+ type: Input
84
133
  }], onMissingPermission: [{
85
134
  type: Input
86
135
  }], ocxIfPermissionPermissions: [{
@@ -92,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
92
141
  }], ocxIfNotPermissionElseTemplate: [{
93
142
  type: Input
94
143
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLFNBQVMsRUFDVCxXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sc0JBQXNCLENBQUE7OztBQUduRixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLElBQWlDLGFBQWEsQ0FBQyxLQUFvQztRQUNqRixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBS0QsSUFDSSw2QkFBNkIsQ0FBQyxLQUEyQjtRQUMzRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFBO0lBQ3pDLENBQUM7SUFJRCxJQUNJLDhCQUE4QixDQUFDLEtBQW1DO1FBQ3BFLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUE7SUFDMUMsQ0FBQztJQUtELFlBQ1UsUUFBbUIsRUFDbkIsRUFBYyxFQUNkLGFBQStCLEVBRy9CLG9CQUEyQyxFQUMvQixXQUE4QixFQUM5QixXQUF5QjtRQVByQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFHL0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF1QjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFD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biAgRWxlbWVudFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgSEFTX1BFUk1JU1NJT05fQ0hFQ0tFUiwgSGFzUGVybWlzc2lvbkNoZWNrZXIgfSBmcm9tICdAb25lY3gvYW5ndWxhci11dGlscydcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW29jeElmUGVybWlzc2lvbl0sIFtvY3hJZk5vdFBlcm1pc3Npb25dJyB9KVxuZXhwb3J0IGNsYXNzIElmUGVybWlzc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnb2N4SWZQZXJtaXNzaW9uJykgcGVybWlzc2lvbjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgQElucHV0KCdvY3hJZk5vdFBlcm1pc3Npb24nKSBzZXQgbm90UGVybWlzc2lvbih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnBlcm1pc3Npb24gPSB2YWx1ZVxuICAgIHRoaXMubmVnYXRlID0gdHJ1ZVxuICB9XG5cbiAgQElucHV0KCkgb25NaXNzaW5nUGVybWlzc2lvbjogJ2hpZGUnIHwgJ2Rpc2FibGUnID0gJ2hpZGUnXG5cbiAgQElucHV0KCkgb2N4SWZQZXJtaXNzaW9uUGVybWlzc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHNldCBvY3hJZk5vdFBlcm1pc3Npb25QZXJtaXNzaW9ucyh2YWx1ZTogc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9jeElmUGVybWlzc2lvblBlcm1pc3Npb25zID0gdmFsdWVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG9jeElmUGVybWlzc2lvbkVsc2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBASW5wdXQoKVxuICBzZXQgb2N4SWZOb3RQZXJtaXNzaW9uRWxzZVRlbXBsYXRlKHZhbHVlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vY3hJZlBlcm1pc3Npb25FbHNlVGVtcGxhdGUgPSB2YWx1ZVxuICB9XG5cbiAgcHJpdmF0ZSBwZXJtaXNzaW9uQ2hlY2tlcjogSGFzUGVybWlzc2lvbkNoZWNrZXIgfCB1bmRlZmluZWRcbiAgbmVnYXRlID0gZmFsc2VcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEhBU19QRVJNSVNTSU9OX0NIRUNLRVIpXG4gICAgcHJpdmF0ZSBoYXNQZXJtaXNzaW9uQ2hlY2tlcj86IEhhc1Blcm1pc3Npb25DaGVja2VyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdXNlclNlcnZpY2U/OiBVc2VyU2VydmljZVxuICApIHtcbiAgICBpZiAoIShoYXNQZXJtaXNzaW9uQ2hlY2tlciB8fCB1c2VyU2VydmljZSkpIHtcbiAgICAgIHRocm93ICdJZlBlcm1pc3Npb24gcmVxdWlyZXMgVXNlclNlcnZpY2Ugb3IgSGFzUGVybWlzc2lvbkNoZWNrZXIgdG8gYmUgcHJvdmlkZWQhJ1xuICAgIH1cblxuICAgIHRoaXMucGVybWlzc2lvbkNoZWNrZXIgPSBoYXNQZXJtaXNzaW9uQ2hlY2tlciA/PyB1c2VyU2VydmljZVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKFxuICAgICAgKHRoaXMucGVybWlzc2lvbiAmJlxuICAgICAgICB0aGlzLm5lZ2F0ZSA9PT0gdGhpcy5oYXNQZXJtaXNzaW9uKEFycmF5LmlzQXJyYXkodGhpcy5wZXJtaXNzaW9uKSA/IHRoaXMucGVybWlzc2lvbiA6IFt0aGlzLnBlcm1pc3Npb25dKSkgfHxcbiAgICAgICF0aGlzLnBlcm1pc3Npb25cbiAgICApIHtcbiAgICAgIGlmICh0aGlzLm9jeElmUGVybWlzc2lvbkVsc2VUZW1wbGF0ZSkge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMub2N4SWZQZXJtaXNzaW9uRWxzZVRlbXBsYXRlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMub25NaXNzaW5nUGVybWlzc2lvbiA9PT0gJ2Rpc2FibGUnKSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMudGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbjogc3RyaW5nW10pIHtcbiAgICBpZiAodGhpcy5vY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9ucykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGVybWlzc2lvbi5ldmVyeSgocCkgPT4gdGhpcy5vY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9ucz8uaW5jbHVkZXMocCkpXG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICBjb25zb2xlLmxvZygn8J+RruKAjeKZgO+4jyBObyBwZXJtaXNzaW9uIGluIG92ZXJ3cml0ZXMgZm9yOiBgJywgcGVybWlzc2lvbilcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG4gICAgcmV0dXJuIHBlcm1pc3Npb24uZXZlcnkoKHApID0+IHRoaXMucGVybWlzc2lvbkNoZWNrZXI/Lmhhc1Blcm1pc3Npb24ocCkpXG4gIH1cbn1cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYtcGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9kaXJlY3RpdmVzL2lmLXBlcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFFTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBd0IsTUFBTSxzQkFBc0IsQ0FBQTtBQUNuRixPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQUcxQyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLElBQThCLFVBQVUsQ0FBQyxLQUFvQztRQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxJQUFpQyxhQUFhLENBQUMsS0FBb0M7UUFDakYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBR0QsSUFBYSxxQ0FBcUMsQ0FBQyxLQUF5QjtRQUMxRSxJQUFJLENBQUMsa0NBQWtDLEdBQUcsS0FBSyxDQUFBO0lBQ2pELENBQUM7SUFJRCxJQUNJLDZCQUE2QixDQUFDLEtBQTJCO1FBQzNELElBQUksQ0FBQywwQkFBMEIsR0FBRyxLQUFLLENBQUE7SUFDekMsQ0FBQztJQUlELElBQ0ksOEJBQThCLENBQUMsS0FB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QyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDMUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7WUFDdkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBQzVCLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQyxDQUFDOytHQXBJVSxxQkFBcUIsMkVBdUN0QixzQkFBc0I7bUdBdkNyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUseUNBQXlDLEVBQUU7OzBCQXVDN0QsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUU3QixRQUFROzswQkFDUixRQUFRO3lDQXpDbUIsVUFBVTtzQkFBdkMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSVMsYUFBYTtzQkFBN0MsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBS2xCLGtDQUFrQztzQkFBMUMsS0FBSztnQkFDTyxxQ0FBcUM7c0JBQWpELEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFFRiw2QkFBNkI7c0JBRGhDLEtBQUs7Z0JBTU4sMkJBQTJCO3NCQUQxQixLQUFLO2dCQUdGLDhCQUE4QjtzQkFEakMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICdAb25lY3gvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5pbXBvcnQgeyBIQVNfUEVSTUlTU0lPTl9DSEVDS0VSLCBIYXNQZXJtaXNzaW9uQ2hlY2tlciB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLXV0aWxzJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW29jeElmUGVybWlzc2lvbl0sIFtvY3hJZk5vdFBlcm1pc3Npb25dJyB9KVxuZXhwb3J0IGNsYXNzIElmUGVybWlzc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnb2N4SWZQZXJtaXNzaW9uJykgc2V0IHBlcm1pc3Npb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uU3ViamVjdCQubmV4dCh2YWx1ZSlcbiAgfVxuXG4gIEBJbnB1dCgnb2N4SWZOb3RQZXJtaXNzaW9uJykgc2V0IG5vdFBlcm1pc3Npb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uU3ViamVjdCQubmV4dCh2YWx1ZSlcbiAgICB0aGlzLm5lZ2F0ZSA9IHRydWVcbiAgfVxuXG4gIEBJbnB1dCgpIG9jeElmUGVybWlzc2lvbk9uTWlzc2luZ1Blcm1pc3Npb246ICdoaWRlJyB8ICdkaXNhYmxlJyA9ICdoaWRlJ1xuICBASW5wdXQoKSBzZXQgb2N4SWZOb3RQZXJtaXNzaW9uT25NaXNzaW5nUGVybWlzc2lvbih2YWx1ZTogJ2hpZGUnIHwgJ2Rpc2FibGUnKSB7XG4gICAgdGhpcy5vY3hJZlBlcm1pc3Npb25Pbk1pc3NpbmdQZXJtaXNzaW9uID0gdmFsdWVcbiAgfVxuICBASW5wdXQoKSBvbk1pc3NpbmdQZXJtaXNzaW9uOiAnaGlkZScgfCAnZGlzYWJsZScgPSAnaGlkZSdcblxuICBASW5wdXQoKSBvY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgc2V0IG9jeElmTm90UGVybWlzc2lvblBlcm1pc3Npb25zKHZhbHVlOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub2N4SWZQZXJtaXNzaW9uUGVybWlzc2lvbnMgPSB2YWx1ZVxuICB9XG5cbiAgQElucHV0KClcbiAgb2N4SWZQZXJtaXNzaW9uRWxzZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHNldCBvY3hJZk5vdFBlcm1pc3Npb25FbHNlVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9jeElmUGVybWlzc2lvbkVsc2VUZW1wbGF0ZSA9IHZhbHVlXG4gIH1cblxuICBwcml2YXRlIHBlcm1pc3Npb25DaGVja2VyOiBIYXNQZXJtaXNzaW9uQ2hlY2tlclxuICBwcml2YXRlIHBlcm1pc3Npb25TdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkID0gZmFsc2VcbiAgcHJpdmF0ZSBkaXJlY3RpdmVDb250ZW50UmVmOiBFbWJlZGRlZFZpZXdSZWY8YW55PiB8IHVuZGVmaW5lZFxuICBuZWdhdGUgPSBmYWxzZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEhBU19QRVJNSVNTSU9OX0NIRUNLRVIpXG4gICAgcHJpdmF0ZSBoYXNQZXJtaXNzaW9uQ2hlY2tlcj86IEhhc1Blcm1pc3Npb25DaGVja2VyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdXNlclNlcnZpY2U/OiBVc2VyU2VydmljZVxuICApIHtcbiAgICBjb25zdCB2YWxpZENoZWNrZXIgPSBoYXNQZXJtaXNzaW9uQ2hlY2tlciB8fCB1c2VyU2VydmljZVxuICAgIGlmICghdmFsaWRDaGVja2VyKSB7XG4gICAgICB0aHJvdyAnSWZQZXJtaXNzaW9uIHJlcXVpcmVzIFVzZXJTZXJ2aWNlIG9yIEhhc1Blcm1pc3Npb25DaGVja2VyIHRvIGJlIHByb3ZpZGVkISdcbiAgICB9XG5cbiAgICB0aGlzLnBlcm1pc3Npb25DaGVja2VyID0gdmFsaWRDaGVja2VyXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25TdWJqZWN0JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocGVybWlzc2lvbikgPT4ge1xuICAgICAgICAgIGlmICghcGVybWlzc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwZXJtaXNzaW9uc0FycmF5ID0gQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSA/IHBlcm1pc3Npb24gOiBbcGVybWlzc2lvbl1cbiAgICAgICAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9uKHBlcm1pc3Npb25zQXJyYXkpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChoYXNQZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHNob3VsZFNob3dUZW1wbGF0ZSA9IHRoaXMubmVnYXRlID8gIWhhc1Blcm1pc3Npb24gOiBoYXNQZXJtaXNzaW9uXG4gICAgICAgIGlmIChzaG91bGRTaG93VGVtcGxhdGUpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zaG93VGVtcGxhdGVPckNsZWFyKClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNob3dFbHNlVGVtcGxhdGVPckRlZmF1bHRWaWV3KClcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbjogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5vY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9ucykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGVybWlzc2lvbi5ldmVyeSgocCkgPT4gdGhpcy5vY3hJZlBlcm1pc3Npb25QZXJtaXNzaW9ucz8uaW5jbHVkZXMocCkpXG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICBjb25zb2xlLmxvZygn8J+RruKAjeKZgO+4jyBObyBwZXJtaXNzaW9uIGluIG92ZXJ3cml0ZXMgZm9yOiBgJywgcGVybWlzc2lvbilcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZihyZXN1bHQpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGVybWlzc2lvbkNoZWNrZXIuZ2V0UGVybWlzc2lvbnMpIHtcbiAgICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25DaGVja2VyLmdldFBlcm1pc3Npb25zKCkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChwZXJtaXNzaW9ucykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHBlcm1pc3Npb24uZXZlcnkoKHApID0+IHBlcm1pc3Npb25zLmluY2x1ZGVzKHApKVxuICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygn8J+RruKAjeKZgO+4jyBObyBwZXJtaXNzaW9uIGZyb20gcGVybWlzc2lvbiBjaGVja2VyIGZvcjogYCcsIHBlcm1pc3Npb24pXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKHRoaXMucGVybWlzc2lvbkNoZWNrZXIuaGFzUGVybWlzc2lvbihwZXJtaXNzaW9uKSlcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1RlbXBsYXRlT3JDbGVhcigpIHtcbiAgICB0aGlzLnJlc2V0VmlldygpXG5cbiAgICBpZiAodGhpcy50ZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5kaXJlY3RpdmVDb250ZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0Vsc2VUZW1wbGF0ZU9yRGVmYXVsdFZpZXcoKSB7XG4gICAgdGhpcy5yZXNldFZpZXcoKVxuICAgIGlmICh0aGlzLm9jeElmUGVybWlzc2lvbkVsc2VUZW1wbGF0ZSkge1xuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLm9jeElmUGVybWlzc2lvbkVsc2VUZW1wbGF0ZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLm9jeElmUGVybWlzc2lvbk9uTWlzc2luZ1Blcm1pc3Npb24gPT09ICdkaXNhYmxlJyAmJiB0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLmRpcmVjdGl2ZUNvbnRlbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpXG5cbiAgICAgIGNvbnN0IGVsID0gdGhpcy5nZXRFbGVtZW50KClcbiAgICAgIGVsICYmIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRWaWV3KCkge1xuICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpXG4gICAgaWYgKHRoaXMuaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZmFsc2VcbiAgICAgIGNvbnN0IGVsID0gdGhpcy5nZXRFbGVtZW50KClcbiAgICAgIGVsICYmIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKGVsLCAnZGlzYWJsZWQnKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudCgpOiBOb2RlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3RpdmVDb250ZW50UmVmPy5yb290Tm9kZXNbMF1cbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { ContentContainerComponentHarness, parallel } from '@angular/cdk/testing';
2
- import { PPaginatorHarness } from '@onecx/angular-testing';
2
+ import { PMenuHarness, PPaginatorHarness } from '@onecx/angular-testing';
3
3
  import { DefaultGridItemHarness } from './default-grid-item.harness';
4
4
  import { DefaultListItemHarness } from './default-list-item.harness';
5
5
  import { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing';
@@ -9,6 +9,8 @@ export class DataListGridHarness extends ContentContainerComponentHarness {
9
9
  this.getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness);
10
10
  this.getPaginator = this.locatorFor(PPaginatorHarness);
11
11
  this.getMenuButton = this.locatorFor(`[name="data-grid-item-menu-button"]`);
12
+ this.getListOverflowMenuButton = this.locatorFor(`[name="data-list-overflow-item-menu-button"]`);
13
+ this.getListOverflowMenu = this.locatorForOptional(PMenuHarness);
12
14
  }
13
15
  static { this.hostSelector = 'ocx-data-list-grid'; }
14
16
  async getDefaultListItems() {
@@ -26,6 +28,11 @@ export class DataListGridHarness extends ContentContainerComponentHarness {
26
28
  return await this.documentRootLocatorFactory().locatorForAll(`[data-automationid="data-grid-action-button"]`)();
27
29
  }
28
30
  }
31
+ async getListOverflowMenuItems() {
32
+ const menu = await this.getListOverflowMenu();
33
+ const menuItems = await menu?.getAllMenuItems();
34
+ return menuItems ?? [];
35
+ }
29
36
  async actionButtonIsDisabled(actionButton, viewType) {
30
37
  if (viewType === 'list') {
31
38
  return await actionButton.getProperty('disabled');
@@ -48,4 +55,4 @@ export class DataListGridHarness extends ContentContainerComponentHarness {
48
55
  return disabledActionButtonsCount === amount;
49
56
  }
50
57
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LWdyaWQuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci90ZXN0aW5nL2RhdGEtbGlzdC1ncmlkLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFlLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXpFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQ0FBZ0M7SUFBekU7O1FBR0Usd0JBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ2hFLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBQ2pELGtCQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0lBMkN4RSxDQUFDO2FBL0NRLGlCQUFZLEdBQUcsb0JBQW9CLEFBQXZCLENBQXVCO0lBTTFDLEtBQUssQ0FBQyxtQkFBbUI7UUFDdkIsTUFBTSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUE7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBaUQ7UUFDdEUsSUFBSSxnQkFBZ0IsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUE7UUFDdkUsQ0FBQzthQUFNLElBQUksZ0JBQWdCLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGFBQWEsQ0FDMUQsc0RBQXNELENBQ3ZELEVBQUUsQ0FBQTtRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGFBQWEsQ0FBQywrQ0FBK0MsQ0FBQyxFQUFFLENBQUE7UUFDakgsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsWUFBeUIsRUFBRSxRQUF5QjtRQUMvRSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLGdCQUFpRCxFQUFFLE1BQWM7UUFDOUYsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFBO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsUUFBeUIsRUFBRSxNQUFjO1FBQzlFLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNELE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNsQixhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3pFLDBCQUEwQixFQUFFLENBQUE7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxPQUFPLDBCQUEwQixLQUFLLE1BQU0sQ0FBQTtJQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3MsIFRlc3RFbGVtZW50LCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuaW1wb3J0IHsgUFBhZ2luYXRvckhhcm5lc3MgfSBmcm9tICdAb25lY3gvYW5ndWxhci10ZXN0aW5nJ1xuaW1wb3J0IHsgRGVmYXVsdEdyaWRJdGVtSGFybmVzcyB9IGZyb20gJy4vZGVmYXVsdC1ncmlkLWl0ZW0uaGFybmVzcydcbmltcG9ydCB7IERlZmF1bHRMaXN0SXRlbUhhcm5lc3MgfSBmcm9tICcuL2RlZmF1bHQtbGlzdC1pdGVtLmhhcm5lc3MnXG5pbXBvcnQgeyB3YWl0Rm9yRGVmZXJyZWRWaWV3c1RvQmVSZW5kZXJlZCB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG5cbmV4cG9ydCBjbGFzcyBEYXRhTGlzdEdyaWRIYXJuZXNzIGV4dGVuZHMgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ29jeC1kYXRhLWxpc3QtZ3JpZCdcblxuICBnZXREZWZhdWx0R3JpZEl0ZW1zID0gdGhpcy5sb2NhdG9yRm9yQWxsKERlZmF1bHRHcmlkSXRlbUhhcm5lc3MpXG4gIGdldFBhZ2luYXRvciA9IHRoaXMubG9jYXRvckZvcihQUGFnaW5hdG9ySGFybmVzcylcbiAgZ2V0TWVudUJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcihgW25hbWU9XCJkYXRhLWdyaWQtaXRlbS1tZW51LWJ1dHRvblwiXWApXG5cbiAgYXN5bmMgZ2V0RGVmYXVsdExpc3RJdGVtcygpIHtcbiAgICBhd2FpdCB3YWl0Rm9yRGVmZXJyZWRWaWV3c1RvQmVSZW5kZXJlZCh0aGlzKVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoRGVmYXVsdExpc3RJdGVtSGFybmVzcykoKVxuICB9XG5cbiAgYXN5bmMgZ2V0QWN0aW9uQnV0dG9ucyhhY3Rpb25CdXR0b25UeXBlOiAnbGlzdCcgfCAnZ3JpZCcgfCAnZ3JpZC1oaWRkZW4nKSB7XG4gICAgaWYgKGFjdGlvbkJ1dHRvblR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChgW25hbWU9XCJkYXRhLWxpc3QtYWN0aW9uLWJ1dHRvblwiXWApKClcbiAgICB9IGVsc2UgaWYgKGFjdGlvbkJ1dHRvblR5cGUgPT09ICdncmlkLWhpZGRlbicpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvckFsbChcbiAgICAgICAgYFtkYXRhLWF1dG9tYXRpb25pZD1cImRhdGEtZ3JpZC1hY3Rpb24tYnV0dG9uLWhpZGRlblwiXWBcbiAgICAgICkoKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpLmxvY2F0b3JGb3JBbGwoYFtkYXRhLWF1dG9tYXRpb25pZD1cImRhdGEtZ3JpZC1hY3Rpb24tYnV0dG9uXCJdYCkoKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGFjdGlvbkJ1dHRvbklzRGlzYWJsZWQoYWN0aW9uQnV0dG9uOiBUZXN0RWxlbWVudCwgdmlld1R5cGU6ICdsaXN0JyB8ICdncmlkJyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh2aWV3VHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aW9uQnV0dG9uLmdldFByb3BlcnR5KCdkaXNhYmxlZCcpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCBhY3Rpb25CdXR0b24uaGFzQ2xhc3MoJ3AtZGlzYWJsZWQnKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGhhc0Ftb3VudE9mQWN0aW9uQnV0dG9ucyhhY3Rpb25CdXR0b25UeXBlOiAnbGlzdCcgfCAnZ3JpZCcgfCAnZ3JpZC1oaWRkZW4nLCBhbW91bnQ6IG51bWJlcikge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRBY3Rpb25CdXR0b25zKGFjdGlvbkJ1dHRvblR5cGUpKS5sZW5ndGggPT09IGFtb3VudFxuICB9XG5cbiAgYXN5bmMgaGFzQW1vdW50T2ZEaXNhYmxlZEFjdGlvbkJ1dHRvbnModmlld1R5cGU6ICdsaXN0JyB8ICdncmlkJywgYW1vdW50OiBudW1iZXIpIHtcbiAgICBsZXQgZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQgPSAwXG4gICAgY29uc3QgYWN0aW9uQnV0dG9ucyA9IGF3YWl0IHRoaXMuZ2V0QWN0aW9uQnV0dG9ucyh2aWV3VHlwZSlcbiAgICBhd2FpdCBwYXJhbGxlbCgoKSA9PlxuICAgICAgYWN0aW9uQnV0dG9ucy5tYXAoYXN5bmMgKGFjdGlvbkJ1dHRvbikgPT4ge1xuICAgICAgICBpZiAoKGF3YWl0IHRoaXMuYWN0aW9uQnV0dG9uSXNEaXNhYmxlZChhY3Rpb25CdXR0b24sIHZpZXdUeXBlKSkgPT09IHRydWUpIHtcbiAgICAgICAgICBkaXNhYmxlZEFjdGlvbkJ1dHRvbnNDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiBkaXNhYmxlZEFjdGlvbkJ1dHRvbnNDb3VudCA9PT0gYW1vdW50XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LWdyaWQuaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NlbGVyYXRvci90ZXN0aW5nL2RhdGEtbGlzdC1ncmlkLmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdDQUFnQyxFQUFlLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNwRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUV6RSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0NBQWdDO0lBQXpFOztRQUdFLHdCQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtRQUNoRSxpQkFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUNqRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMscUNBQXFDLENBQUMsQ0FBQTtRQUN0RSw4QkFBeUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLDhDQUE4QyxDQUFDLENBQUE7UUFDM0Ysd0JBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFBO0lBaUQ3RCxDQUFDO2FBdkRRLGlCQUFZLEdBQUcsb0JBQW9CLEFBQXZCLENBQXVCO0lBUTFDLEtBQUssQ0FBQyxtQkFBbUI7UUFDdkIsTUFBTSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUE7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBaUQ7UUFDdEUsSUFBSSxnQkFBZ0IsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUE7UUFDdkUsQ0FBQzthQUFNLElBQUksZ0JBQWdCLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGFBQWEsQ0FDMUQsc0RBQXNELENBQ3ZELEVBQUUsQ0FBQTtRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxNQUFNLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDLGFBQWEsQ0FBQywrQ0FBK0MsQ0FBQyxFQUFFLENBQUE7UUFDakgsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCO1FBQzVCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDN0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLEVBQUUsZUFBZSxFQUFFLENBQUE7UUFDL0MsT0FBTyxTQUFTLElBQUksRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsWUFBeUIsRUFBRSxRQUF5QjtRQUMvRSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN4QixPQUFPLE1BQU0sWUFBWSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLGdCQUFpRCxFQUFFLE1BQWM7UUFDOUYsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFBO0lBQzFFLENBQUM7SUFFRCxLQUFLLENBQUMsZ0NBQWdDLENBQUMsUUFBeUIsRUFBRSxNQUFjO1FBQzlFLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFBO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNELE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNsQixhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3pFLDBCQUEwQixFQUFFLENBQUE7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxPQUFPLDBCQUEwQixLQUFLLE1BQU0sQ0FBQTtJQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3MsIFRlc3RFbGVtZW50LCBwYXJhbGxlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuaW1wb3J0IHsgUE1lbnVIYXJuZXNzLCBQUGFnaW5hdG9ySGFybmVzcyB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLXRlc3RpbmcnXG5pbXBvcnQgeyBEZWZhdWx0R3JpZEl0ZW1IYXJuZXNzIH0gZnJvbSAnLi9kZWZhdWx0LWdyaWQtaXRlbS5oYXJuZXNzJ1xuaW1wb3J0IHsgRGVmYXVsdExpc3RJdGVtSGFybmVzcyB9IGZyb20gJy4vZGVmYXVsdC1saXN0LWl0ZW0uaGFybmVzcydcbmltcG9ydCB7IHdhaXRGb3JEZWZlcnJlZFZpZXdzVG9CZVJlbmRlcmVkIH0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItdGVzdGluZydcblxuZXhwb3J0IGNsYXNzIERhdGFMaXN0R3JpZEhhcm5lc3MgZXh0ZW5kcyBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50SGFybmVzcyB7XG4gIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnb2N4LWRhdGEtbGlzdC1ncmlkJ1xuXG4gIGdldERlZmF1bHRHcmlkSXRlbXMgPSB0aGlzLmxvY2F0b3JGb3JBbGwoRGVmYXVsdEdyaWRJdGVtSGFybmVzcylcbiAgZ2V0UGFnaW5hdG9yID0gdGhpcy5sb2NhdG9yRm9yKFBQYWdpbmF0b3JIYXJuZXNzKVxuICBnZXRNZW51QnV0dG9uID0gdGhpcy5sb2NhdG9yRm9yKGBbbmFtZT1cImRhdGEtZ3JpZC1pdGVtLW1lbnUtYnV0dG9uXCJdYClcbiAgZ2V0TGlzdE92ZXJmbG93TWVudUJ1dHRvbiA9IHRoaXMubG9jYXRvckZvcihgW25hbWU9XCJkYXRhLWxpc3Qtb3ZlcmZsb3ctaXRlbS1tZW51LWJ1dHRvblwiXWApXG4gIGdldExpc3RPdmVyZmxvd01lbnUgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChQTWVudUhhcm5lc3MpXG5cbiAgYXN5bmMgZ2V0RGVmYXVsdExpc3RJdGVtcygpIHtcbiAgICBhd2FpdCB3YWl0Rm9yRGVmZXJyZWRWaWV3c1RvQmVSZW5kZXJlZCh0aGlzKVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoRGVmYXVsdExpc3RJdGVtSGFybmVzcykoKVxuICB9XG5cbiAgYXN5bmMgZ2V0QWN0aW9uQnV0dG9ucyhhY3Rpb25CdXR0b25UeXBlOiAnbGlzdCcgfCAnZ3JpZCcgfCAnZ3JpZC1oaWRkZW4nKSB7XG4gICAgaWYgKGFjdGlvbkJ1dHRvblR5cGUgPT09ICdsaXN0Jykge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChgW25hbWU9XCJkYXRhLWxpc3QtYWN0aW9uLWJ1dHRvblwiXWApKClcbiAgICB9IGVsc2UgaWYgKGFjdGlvbkJ1dHRvblR5cGUgPT09ICdncmlkLWhpZGRlbicpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmRvY3VtZW50Um9vdExvY2F0b3JGYWN0b3J5KCkubG9jYXRvckZvckFsbChcbiAgICAgICAgYFtkYXRhLWF1dG9tYXRpb25pZD1cImRhdGEtZ3JpZC1hY3Rpb24tYnV0dG9uLWhpZGRlblwiXWBcbiAgICAgICkoKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5kb2N1bWVudFJvb3RMb2NhdG9yRmFjdG9yeSgpLmxvY2F0b3JGb3JBbGwoYFtkYXRhLWF1dG9tYXRpb25pZD1cImRhdGEtZ3JpZC1hY3Rpb24tYnV0dG9uXCJdYCkoKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldExpc3RPdmVyZmxvd01lbnVJdGVtcygpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgdGhpcy5nZXRMaXN0T3ZlcmZsb3dNZW51KClcbiAgICBjb25zdCBtZW51SXRlbXMgPSBhd2FpdCBtZW51Py5nZXRBbGxNZW51SXRlbXMoKVxuICAgIHJldHVybiBtZW51SXRlbXMgPz8gW11cbiAgfVxuXG4gIGFzeW5jIGFjdGlvbkJ1dHRvbklzRGlzYWJsZWQoYWN0aW9uQnV0dG9uOiBUZXN0RWxlbWVudCwgdmlld1R5cGU6ICdsaXN0JyB8ICdncmlkJyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh2aWV3VHlwZSA9PT0gJ2xpc3QnKSB7XG4gICAgICByZXR1cm4gYXdhaXQgYWN0aW9uQnV0dG9uLmdldFByb3BlcnR5KCdkaXNhYmxlZCcpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBhd2FpdCBhY3Rpb25CdXR0b24uaGFzQ2xhc3MoJ3AtZGlzYWJsZWQnKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGhhc0Ftb3VudE9mQWN0aW9uQnV0dG9ucyhhY3Rpb25CdXR0b25UeXBlOiAnbGlzdCcgfCAnZ3JpZCcgfCAnZ3JpZC1oaWRkZW4nLCBhbW91bnQ6IG51bWJlcikge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRBY3Rpb25CdXR0b25zKGFjdGlvbkJ1dHRvblR5cGUpKS5sZW5ndGggPT09IGFtb3VudFxuICB9XG5cbiAgYXN5bmMgaGFzQW1vdW50T2ZEaXNhYmxlZEFjdGlvbkJ1dHRvbnModmlld1R5cGU6ICdsaXN0JyB8ICdncmlkJywgYW1vdW50OiBudW1iZXIpIHtcbiAgICBsZXQgZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQgPSAwXG4gICAgY29uc3QgYWN0aW9uQnV0dG9ucyA9IGF3YWl0IHRoaXMuZ2V0QWN0aW9uQnV0dG9ucyh2aWV3VHlwZSlcbiAgICBhd2FpdCBwYXJhbGxlbCgoKSA9PlxuICAgICAgYWN0aW9uQnV0dG9ucy5tYXAoYXN5bmMgKGFjdGlvbkJ1dHRvbikgPT4ge1xuICAgICAgICBpZiAoKGF3YWl0IHRoaXMuYWN0aW9uQnV0dG9uSXNEaXNhYmxlZChhY3Rpb25CdXR0b24sIHZpZXdUeXBlKSkgPT09IHRydWUpIHtcbiAgICAgICAgICBkaXNhYmxlZEFjdGlvbkJ1dHRvbnNDb3VudCsrXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiBkaXNhYmxlZEFjdGlvbkJ1dHRvbnNDb3VudCA9PT0gYW1vdW50XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,12 @@
1
1
  import { ContentContainerComponentHarness, HarnessPredicate, parallel, } from '@angular/cdk/testing';
2
- import { TableHeaderColumnHarness, TableRowHarness, PPaginatorHarness, PTableCheckboxHarness, } from '@onecx/angular-testing';
2
+ import { TableHeaderColumnHarness, TableRowHarness, PPaginatorHarness, PTableCheckboxHarness, PMenuHarness, } from '@onecx/angular-testing';
3
3
  export class DataTableHarness extends ContentContainerComponentHarness {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  this.getHeaderColumns = this.locatorForAll(TableHeaderColumnHarness);
7
7
  this.getRows = this.locatorForAll(TableRowHarness);
8
8
  this.getPaginator = this.locatorFor(PPaginatorHarness);
9
+ this.getOverflowMenu = this.locatorForOptional(PMenuHarness);
9
10
  }
10
11
  static { this.hostSelector = 'ocx-data-table'; }
11
12
  static with(options) {
@@ -42,6 +43,18 @@ export class DataTableHarness extends ContentContainerComponentHarness {
42
43
  async getActionButtons() {
43
44
  return await this.locatorForAll(`[name="data-table-action-button"]`)();
44
45
  }
46
+ async getOverflowActionMenuButton() {
47
+ return await this.locatorForOptional('[name="data-table-overflow-action-button"]')();
48
+ }
49
+ async getOverFlowMenuItems() {
50
+ const menu = await this.getOverflowMenu();
51
+ const menuItems = await menu?.getAllMenuItems();
52
+ return menuItems ?? [];
53
+ }
54
+ async getOverFlowMenuItem(itemText) {
55
+ const menu = await this.getOverflowMenu();
56
+ return await menu?.getMenuItem(itemText);
57
+ }
45
58
  async actionButtonIsDisabled(actionButton) {
46
59
  const isDisabled = await actionButton.getProperty('disabled');
47
60
  return isDisabled;
@@ -66,4 +79,4 @@ export class DataTableHarness extends ContentContainerComponentHarness {
66
79
  return await column.hasClass('p-frozen-column');
67
80
  }
68
81
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3Rlc3RpbmcvZGF0YS10YWJsZS5oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxnQ0FBZ0MsRUFDaEMsZ0JBQWdCLEVBRWhCLFFBQVEsR0FDVCxNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSx3QkFBd0IsQ0FBQTtBQU0vQixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZ0NBQWdDO0lBQXRFOztRQVNFLHFCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUMvRCxZQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUM3QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQWtFbkQsQ0FBQzthQTVFUSxpQkFBWSxHQUFHLGdCQUFnQixBQUFuQixDQUFtQjtJQUV0QyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQWdDO1FBQzFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FDakcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDcEQsQ0FBQTtJQUNILENBQUM7SUFNRCxLQUFLLENBQUMsS0FBSztRQUNULE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FB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LENBQUE7SUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VIYXJuZXNzRmlsdGVycyxcbiAgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3MsXG4gIEhhcm5lc3NQcmVkaWNhdGUsXG4gIFRlc3RFbGVtZW50LFxuICBwYXJhbGxlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnXG5pbXBvcnQge1xuICBUYWJsZUhlYWRlckNvbHVtbkhhcm5lc3MsXG4gIFRhYmxlUm93SGFybmVzcyxcbiAgUFBhZ2luYXRvckhhcm5lc3MsXG4gIFBUYWJsZUNoZWNrYm94SGFybmVzcyxcbn0gZnJvbSAnQG9uZWN4L2FuZ3VsYXItdGVzdGluZydcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVIYXJuZXNzRmlsdGVycyBleHRlbmRzIEJhc2VIYXJuZXNzRmlsdGVycyB7XG4gIGlkPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVIYXJuZXNzIGV4dGVuZHMgQ29udGVudENvbnRhaW5lckNvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ29jeC1kYXRhLXRhYmxlJ1xuXG4gIHN0YXRpYyB3aXRoKG9wdGlvbnM6IERhdGFUYWJsZUhhcm5lc3NGaWx0ZXJzKTogSGFybmVzc1ByZWRpY2F0ZTxEYXRhVGFibGVIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKERhdGFUYWJsZUhhcm5lc3MsIG9wdGlvbnMpLmFkZE9wdGlvbignaWQnLCBvcHRpb25zLmlkLCAoaGFybmVzcywgaWQpID0+XG4gICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzcy5nZXRJZCgpLCBpZClcbiAgICApXG4gIH1cblxuICBnZXRIZWFkZXJDb2x1bW5zID0gdGhpcy5sb2NhdG9yRm9yQWxsKFRhYmxlSGVhZGVyQ29sdW1uSGFybmVzcylcbiAgZ2V0Um93cyA9IHRoaXMubG9jYXRvckZvckFsbChUYWJsZVJvd0hhcm5lc3MpXG4gIGdldFBhZ2luYXRvciA9IHRoaXMubG9jYXRvckZvcihQUGFnaW5hdG9ySGFybmVzcylcblxuICBhc3luYyBnZXRJZCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuaG9zdCgpKS5nZXRBdHRyaWJ1dGUoJ2lkJylcbiAgfVxuXG4gIGFzeW5jIHJvd1NlbGVjdGlvbklzRW5hYmxlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwVGFibGVDaGVja2JveCA9IGF3YWl0IHRoaXMuZ2V0SGFybmVzc2VzRm9yQ2hlY2tib3hlcygnYWxsJylcbiAgICByZXR1cm4gcFRhYmxlQ2hlY2tib3gubGVuZ3RoID4gMFxuICB9XG5cbiAgYXN5bmMgZ2V0SGFybmVzc2VzRm9yQ2hlY2tib3hlcyh0eXBlOiAnYWxsJyB8ICdjaGVja2VkJyB8ICd1bmNoZWNrZWQnKTogUHJvbWlzZTxQVGFibGVDaGVja2JveEhhcm5lc3NbXT4ge1xuICAgIGxldCBjaGVja0JveEhhcm5lc3NlczogUFRhYmxlQ2hlY2tib3hIYXJuZXNzW11cbiAgICBpZiAodHlwZSA9PT0gJ2NoZWNrZWQnKSB7XG4gICAgICBjaGVja0JveEhhcm5lc3NlcyA9IGF3YWl0IHRoaXMuZ2V0QWxsSGFybmVzc2VzKFBUYWJsZUNoZWNrYm94SGFybmVzcy53aXRoKHsgaXNTZWxlY3RlZDogdHJ1ZSB9KSlcbiAgICAgIHJldHVybiBjaGVja0JveEhhcm5lc3Nlc1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ3VuY2hlY2tlZCcpIHtcbiAgICAgIGNoZWNrQm94SGFybmVzc2VzID0gYXdhaXQgdGhpcy5nZXRBbGxIYXJuZXNzZXMoUFRhYmxlQ2hlY2tib3hIYXJuZXNzLndpdGgoeyBpc1NlbGVjdGVkOiBmYWxzZSB9KSlcbiAgICAgIHJldHVybiBjaGVja0JveEhhcm5lc3Nlc1xuICAgIH0gZWxzZSB7XG4gICAgICBjaGVja0JveEhhcm5lc3NlcyA9IGF3YWl0IHRoaXMuZ2V0QWxsSGFybmVzc2VzKFBUYWJsZUNoZWNrYm94SGFybmVzcylcbiAgICAgIHJldHVybiBjaGVja0JveEhhcm5lc3Nlc1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEFjdGlvbkNvbHVtbkhlYWRlcihwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChgW25hbWU9XCJhY3Rpb24tY29sdW1uLWhlYWRlci0ke3Bvc2l0aW9ufVwiXWApKClcbiAgfVxuXG4gIGFzeW5jIGdldEFjdGlvbkNvbHVtbihwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChgW25hbWU9XCJhY3Rpb24tY29sdW1uLSR7cG9zaXRpb259XCJdYCkoKVxuICB9XG5cbiAgYXN5bmMgZ2V0QWN0aW9uQnV0dG9ucygpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yQWxsKGBbbmFtZT1cImRhdGEtdGFibGUtYWN0aW9uLWJ1dHRvblwiXWApKClcbiAgfVxuXG4gIGFzeW5jIGFjdGlvbkJ1dHRvbklzRGlzYWJsZWQoYWN0aW9uQnV0dG9uOiBUZXN0RWxlbWVudCkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBhd2FpdCBhY3Rpb25CdXR0b24uZ2V0UHJvcGVydHkoJ2Rpc2FibGVkJylcbiAgICByZXR1cm4gaXNEaXNhYmxlZFxuICB9XG5cbiAgYXN5bmMgaGFzQW1vdW50T2ZBY3Rpb25CdXR0b25zKGFtb3VudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEFjdGlvbkJ1dHRvbnMoKSkubGVuZ3RoID09PSBhbW91bnRcbiAgfVxuXG4gIGFzeW5jIGhhc0Ftb3VudE9mRGlzYWJsZWRBY3Rpb25CdXR0b25zKGFtb3VudDogbnVtYmVyKSB7XG4gICAgbGV0IGRpc2FibGVkQWN0aW9uQnV0dG9uc0NvdW50ID0gMFxuICAgIGNvbnN0IGFjdGlvbkJ1dHRvbnMgPSBhd2FpdCB0aGlzLmdldEFjdGlvbkJ1dHRvbnMoKVxuICAgIGF3YWl0IHBhcmFsbGVsKCgpID0+XG4gICAgICBhY3Rpb25CdXR0b25zLm1hcChhc3luYyAoYWN0aW9uQnV0dG9uKSA9PiB7XG4gICAgICAgIGlmICgoYXdhaXQgdGhpcy5hY3Rpb25CdXR0b25Jc0Rpc2FibGVkKGFjdGlvbkJ1dHRvbikpID09PSB0cnVlKSB7XG4gICAgICAgICAgZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQrK1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgICByZXR1cm4gZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQgPT09IGFtb3VudFxuICB9XG5cbiAgYXN5bmMgY29sdW1uSXNGcm96ZW4oY29sdW1uOiBUZXN0RWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoY29sdW1uID09PSBudWxsIHx8IGNvbHVtbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdmVuIGNvbHVtbiBpcyBudWxsJylcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IGNvbHVtbi5oYXNDbGFzcygncC1mcm96ZW4tY29sdW1uJylcbiAgfVxufVxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWFjY2VsZXJhdG9yL3Rlc3RpbmcvZGF0YS10YWJsZS5oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxnQ0FBZ0MsRUFDaEMsZ0JBQWdCLEVBRWhCLFFBQVEsR0FDVCxNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsWUFBWSxHQUViLE1BQU0sd0JBQXdCLENBQUE7QUFNL0IsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdDQUFnQztJQUF0RTs7UUFTRSxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLENBQUE7UUFDL0QsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDN0MsaUJBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFDakQsb0JBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUE7SUFpRnpELENBQUM7YUE1RlEsaUJBQVksR0FBRyxnQkFBZ0IsQUFBbkIsQ0FBbUI7SUFFdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFnQztRQUMxQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ2pHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQ3BELENBQUE7SUFDSCxDQUFDO0lBT0QsS0FBSyxDQUFDLEtBQUs7UUFDVCxPQUFP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QyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ25ELE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNsQixhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDL0QsMEJBQTBCLEVBQUUsQ0FBQTtZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNELE9BQU8sMEJBQTBCLEtBQUssTUFBTSxDQUFBO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQXNDO1FBQ3pELElBQUksTUFBTSxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7UUFDRCxPQUFPLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlSGFybmVzc0ZpbHRlcnMsXG4gIENvbnRlbnRDb250YWluZXJDb21wb25lbnRIYXJuZXNzLFxuICBIYXJuZXNzUHJlZGljYXRlLFxuICBUZXN0RWxlbWVudCxcbiAgcGFyYWxsZWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuaW1wb3J0IHtcbiAgVGFibGVIZWFkZXJDb2x1bW5IYXJuZXNzLFxuICBUYWJsZVJvd0hhcm5lc3MsXG4gIFBQYWdpbmF0b3JIYXJuZXNzLFxuICBQVGFibGVDaGVja2JveEhhcm5lc3MsXG4gIFBNZW51SGFybmVzcyxcbiAgTWVudUl0ZW1IYXJuZXNzLFxufSBmcm9tICdAb25lY3gvYW5ndWxhci10ZXN0aW5nJ1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZUhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgQmFzZUhhcm5lc3NGaWx0ZXJzIHtcbiAgaWQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUhhcm5lc3MgZXh0ZW5kcyBDb250ZW50Q29udGFpbmVyQ29tcG9uZW50SGFybmVzcyB7XG4gIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnb2N4LWRhdGEtdGFibGUnXG5cbiAgc3RhdGljIHdpdGgob3B0aW9uczogRGF0YVRhYmxlSGFybmVzc0ZpbHRlcnMpOiBIYXJuZXNzUHJlZGljYXRlPERhdGFUYWJsZUhhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoRGF0YVRhYmxlSGFybmVzcywgb3B0aW9ucykuYWRkT3B0aW9uKCdpZCcsIG9wdGlvbnMuaWQsIChoYXJuZXNzLCBpZCkgPT5cbiAgICAgIEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldElkKCksIGlkKVxuICAgIClcbiAgfVxuXG4gIGdldEhlYWRlckNvbHVtbnMgPSB0aGlzLmxvY2F0b3JGb3JBbGwoVGFibGVIZWFkZXJDb2x1bW5IYXJuZXNzKVxuICBnZXRSb3dzID0gdGhpcy5sb2NhdG9yRm9yQWxsKFRhYmxlUm93SGFybmVzcylcbiAgZ2V0UGFnaW5hdG9yID0gdGhpcy5sb2NhdG9yRm9yKFBQYWdpbmF0b3JIYXJuZXNzKVxuICBnZXRPdmVyZmxvd01lbnUgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChQTWVudUhhcm5lc3MpXG5cbiAgYXN5bmMgZ2V0SWQoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdpZCcpXG4gIH1cblxuICBhc3luYyByb3dTZWxlY3Rpb25Jc0VuYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcFRhYmxlQ2hlY2tib3ggPSBhd2FpdCB0aGlzLmdldEhhcm5lc3Nlc0ZvckNoZWNrYm94ZXMoJ2FsbCcpXG4gICAgcmV0dXJuIHBUYWJsZUNoZWNrYm94Lmxlbmd0aCA+IDBcbiAgfVxuXG4gIGFzeW5jIGdldEhhcm5lc3Nlc0ZvckNoZWNrYm94ZXModHlwZTogJ2FsbCcgfCAnY2hlY2tlZCcgfCAndW5jaGVja2VkJyk6IFByb21pc2U8UFRhYmxlQ2hlY2tib3hIYXJuZXNzW10+IHtcbiAgICBsZXQgY2hlY2tCb3hIYXJuZXNzZXM6IFBUYWJsZUNoZWNrYm94SGFybmVzc1tdXG4gICAgaWYgKHR5cGUgPT09ICdjaGVja2VkJykge1xuICAgICAgY2hlY2tCb3hIYXJuZXNzZXMgPSBhd2FpdCB0aGlzLmdldEFsbEhhcm5lc3NlcyhQVGFibGVDaGVja2JveEhhcm5lc3Mud2l0aCh7IGlzU2VsZWN0ZWQ6IHRydWUgfSkpXG4gICAgICByZXR1cm4gY2hlY2tCb3hIYXJuZXNzZXNcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICd1bmNoZWNrZWQnKSB7XG4gICAgICBjaGVja0JveEhhcm5lc3NlcyA9IGF3YWl0IHRoaXMuZ2V0QWxsSGFybmVzc2VzKFBUYWJsZUNoZWNrYm94SGFybmVzcy53aXRoKHsgaXNTZWxlY3RlZDogZmFsc2UgfSkpXG4gICAgICByZXR1cm4gY2hlY2tCb3hIYXJuZXNzZXNcbiAgICB9IGVsc2Uge1xuICAgICAgY2hlY2tCb3hIYXJuZXNzZXMgPSBhd2FpdCB0aGlzLmdldEFsbEhhcm5lc3NlcyhQVGFibGVDaGVja2JveEhhcm5lc3MpXG4gICAgICByZXR1cm4gY2hlY2tCb3hIYXJuZXNzZXNcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRBY3Rpb25Db2x1bW5IZWFkZXIocG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoYFtuYW1lPVwiYWN0aW9uLWNvbHVtbi1oZWFkZXItJHtwb3NpdGlvbn1cIl1gKSgpXG4gIH1cblxuICBhc3luYyBnZXRBY3Rpb25Db2x1bW4ocG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoYFtuYW1lPVwiYWN0aW9uLWNvbHVtbi0ke3Bvc2l0aW9ufVwiXWApKClcbiAgfVxuXG4gIGFzeW5jIGdldEFjdGlvbkJ1dHRvbnMoKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChgW25hbWU9XCJkYXRhLXRhYmxlLWFjdGlvbi1idXR0b25cIl1gKSgpXG4gIH1cblxuICBhc3luYyBnZXRPdmVyZmxvd0FjdGlvbk1lbnVCdXR0b24oKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdbbmFtZT1cImRhdGEtdGFibGUtb3ZlcmZsb3ctYWN0aW9uLWJ1dHRvblwiXScpKClcbiAgfVxuXG4gIGFzeW5jIGdldE92ZXJGbG93TWVudUl0ZW1zKCkge1xuICAgIGNvbnN0IG1lbnUgPSBhd2FpdCB0aGlzLmdldE92ZXJmbG93TWVudSgpXG4gICAgY29uc3QgbWVudUl0ZW1zID0gYXdhaXQgbWVudT8uZ2V0QWxsTWVudUl0ZW1zKClcbiAgICByZXR1cm4gbWVudUl0ZW1zID8/IFtdXG4gIH1cblxuICBhc3luYyBnZXRPdmVyRmxvd01lbnVJdGVtKGl0ZW1UZXh0OiBzdHJpbmcpOiBQcm9taXNlPE1lbnVJdGVtSGFybmVzcyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgdGhpcy5nZXRPdmVyZmxvd01lbnUoKVxuICAgIHJldHVybiBhd2FpdCBtZW51Py5nZXRNZW51SXRlbShpdGVtVGV4dClcbiAgfVxuXG4gIGFzeW5jIGFjdGlvbkJ1dHRvbklzRGlzYWJsZWQoYWN0aW9uQnV0dG9uOiBUZXN0RWxlbWVudCkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBhd2FpdCBhY3Rpb25CdXR0b24uZ2V0UHJvcGVydHkoJ2Rpc2FibGVkJylcbiAgICByZXR1cm4gaXNEaXNhYmxlZFxuICB9XG5cbiAgYXN5bmMgaGFzQW1vdW50T2ZBY3Rpb25CdXR0b25zKGFtb3VudDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEFjdGlvbkJ1dHRvbnMoKSkubGVuZ3RoID09PSBhbW91bnRcbiAgfVxuXG4gIGFzeW5jIGhhc0Ftb3VudE9mRGlzYWJsZWRBY3Rpb25CdXR0b25zKGFtb3VudDogbnVtYmVyKSB7XG4gICAgbGV0IGRpc2FibGVkQWN0aW9uQnV0dG9uc0NvdW50ID0gMFxuICAgIGNvbnN0IGFjdGlvbkJ1dHRvbnMgPSBhd2FpdCB0aGlzLmdldEFjdGlvbkJ1dHRvbnMoKVxuICAgIGF3YWl0IHBhcmFsbGVsKCgpID0+XG4gICAgICBhY3Rpb25CdXR0b25zLm1hcChhc3luYyAoYWN0aW9uQnV0dG9uKSA9PiB7XG4gICAgICAgIGlmICgoYXdhaXQgdGhpcy5hY3Rpb25CdXR0b25Jc0Rpc2FibGVkKGFjdGlvbkJ1dHRvbikpID09PSB0cnVlKSB7XG4gICAgICAgICAgZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQrK1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgICByZXR1cm4gZGlzYWJsZWRBY3Rpb25CdXR0b25zQ291bnQgPT09IGFtb3VudFxuICB9XG5cbiAgYXN5bmMgY29sdW1uSXNGcm96ZW4oY29sdW1uOiBUZXN0RWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoY29sdW1uID09PSBudWxsIHx8IGNvbHVtbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdmVuIGNvbHVtbiBpcyBudWxsJylcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IGNvbHVtbi5oYXNDbGFzcygncC1mcm96ZW4tY29sdW1uJylcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { PDropdownHarness, PButtonHarness, PDialogHarness, PPicklistHarness, PSelectButtonHarness, MenuItemHarness, DivHarness, ButtonHarness, waitForDeferredViewsToBeRendered, PPaginatorHarness, TableHeaderColumnHarness, TableRowHarness, PTableCheckboxHarness, PChartHarness, PChipHarness, SpanHarness, PBreadcrumbHarness, PMenuHarness, ensureIntersectionObserverMockExists, ensureOriginMockExists } from '@onecx/angular-testing';
1
+ import { PDropdownHarness, PButtonHarness, PDialogHarness, PPicklistHarness, PSelectButtonHarness, MenuItemHarness, DivHarness, ButtonHarness, waitForDeferredViewsToBeRendered, PPaginatorHarness, PMenuHarness, TableHeaderColumnHarness, TableRowHarness, PTableCheckboxHarness, PChartHarness, PChipHarness, SpanHarness, PBreadcrumbHarness, ensureIntersectionObserverMockExists, ensureOriginMockExists } from '@onecx/angular-testing';
2
2
  export * from '@onecx/angular-testing';
3
3
  import { ComponentHarness, ContentContainerComponentHarness, parallel, HarnessPredicate } from '@angular/cdk/testing';
4
4
  export * from '@angular/cdk/testing';
@@ -154,6 +154,8 @@ class DataListGridHarness extends ContentContainerComponentHarness {
154
154
  this.getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness);
155
155
  this.getPaginator = this.locatorFor(PPaginatorHarness);
156
156
  this.getMenuButton = this.locatorFor(`[name="data-grid-item-menu-button"]`);
157
+ this.getListOverflowMenuButton = this.locatorFor(`[name="data-list-overflow-item-menu-button"]`);
158
+ this.getListOverflowMenu = this.locatorForOptional(PMenuHarness);
157
159
  }
158
160
  static { this.hostSelector = 'ocx-data-list-grid'; }
159
161
  async getDefaultListItems() {
@@ -171,6 +173,11 @@ class DataListGridHarness extends ContentContainerComponentHarness {
171
173
  return await this.documentRootLocatorFactory().locatorForAll(`[data-automationid="data-grid-action-button"]`)();
172
174
  }
173
175
  }
176
+ async getListOverflowMenuItems() {
177
+ const menu = await this.getListOverflowMenu();
178
+ const menuItems = await menu?.getAllMenuItems();
179
+ return menuItems ?? [];
180
+ }
174
181
  async actionButtonIsDisabled(actionButton, viewType) {
175
182
  if (viewType === 'list') {
176
183
  return await actionButton.getProperty('disabled');
@@ -200,6 +207,7 @@ class DataTableHarness extends ContentContainerComponentHarness {
200
207
  this.getHeaderColumns = this.locatorForAll(TableHeaderColumnHarness);
201
208
  this.getRows = this.locatorForAll(TableRowHarness);
202
209
  this.getPaginator = this.locatorFor(PPaginatorHarness);
210
+ this.getOverflowMenu = this.locatorForOptional(PMenuHarness);
203
211
  }
204
212
  static { this.hostSelector = 'ocx-data-table'; }
205
213
  static with(options) {
@@ -236,6 +244,18 @@ class DataTableHarness extends ContentContainerComponentHarness {
236
244
  async getActionButtons() {
237
245
  return await this.locatorForAll(`[name="data-table-action-button"]`)();
238
246
  }
247
+ async getOverflowActionMenuButton() {
248
+ return await this.locatorForOptional('[name="data-table-overflow-action-button"]')();
249
+ }
250
+ async getOverFlowMenuItems() {
251
+ const menu = await this.getOverflowMenu();
252
+ const menuItems = await menu?.getAllMenuItems();
253
+ return menuItems ?? [];
254
+ }
255
+ async getOverFlowMenuItem(itemText) {
256
+ const menu = await this.getOverflowMenu();
257
+ return await menu?.getMenuItem(itemText);
258
+ }
239
259
  async actionButtonIsDisabled(actionButton) {
240
260
  const isDisabled = await actionButton.getProperty('disabled');
241
261
  return isDisabled;
@@ -1 +1 @@
1
- {"version":3,"file":"onecx-angular-accelerator-testing.mjs","sources":["../../../../libs/angular-accelerator/testing/column-group-selection.harness.ts","../../../../libs/angular-accelerator/testing/custom-group-column-selector.harness.ts","../../../../libs/angular-accelerator/testing/data-layout-selection.harness.ts","../../../../libs/angular-accelerator/testing/more-actions-menu-button.harness.ts","../../../../libs/angular-accelerator/testing/default-grid-item.harness.ts","../../../../libs/angular-accelerator/testing/default-list-item.harness.ts","../../../../libs/angular-accelerator/testing/data-list-grid.harness.ts","../../../../libs/angular-accelerator/testing/data-table.harness.ts","../../../../libs/angular-accelerator/testing/data-view.harness.ts","../../../../libs/angular-accelerator/testing/diagram.harness.ts","../../../../libs/angular-accelerator/testing/filter-view.harness.ts","../../../../libs/angular-accelerator/testing/group-by-count-diagram.harness.ts","../../../../libs/angular-accelerator/testing/slot.harness.ts","../../../../libs/angular-accelerator/testing/interactive-data-view.harness.ts","../../../../libs/angular-accelerator/testing/page-header.harness.ts","../../../../libs/angular-accelerator/testing/search-header.harness.ts","../../../../libs/angular-accelerator/testing/index.ts","../../../../libs/angular-accelerator/testing/onecx-angular-accelerator-testing.ts"],"sourcesContent":["import { ComponentHarness } from '@angular/cdk/testing'\nimport { PDropdownHarness } from '@onecx/angular-testing'\n\nexport class ColumnGroupSelectionHarness extends ComponentHarness {\n static hostSelector = 'ocx-column-group-selection'\n\n getPDropdown = this.locatorFor(PDropdownHarness)\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PDialogHarness, PPicklistHarness, PButtonHarness } from '@onecx/angular-testing'\n\nexport class CustomGroupColumnSelectorHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-custom-group-column-selector'\n\n getCustomGroupColumnSelectorButton = this.locatorFor(\n PButtonHarness.with({\n id: 'customGroupColumnSelectorButton',\n })\n )\n\n getDialog = this.locatorFor(PDialogHarness)\n getCancelButton = this.locatorFor(PButtonHarness.with({ id: 'cancelButton' }))\n getSaveButton = this.locatorFor(PButtonHarness.with({ id: 'saveButton' }))\n getPicklist = this.locatorFor(PPicklistHarness)\n getSelectButtons = this.locatorForOptional('[name]')\n\n async getFrozenActionColumnSelectButton() {\n return await this.locatorForAll(`[name=\"frozen-action-column-select-button\"] .p-button`)()\n }\n\n async getActionColumnPositionSelectButtons() {\n return await this.locatorForAll(`[name=\"action-column-position-select-button\"] .p-button`)()\n }\n\n async openCustomGroupColumnSelectorDialog() {\n if (!(await (await this.getDialog()).isVisible())) {\n await (await this.getCustomGroupColumnSelectorButton()).click()\n } else {\n console.warn('Unable to open CustomGroupColumnSelectionDialog, because it is already open.')\n }\n }\n}\n","import { ContentContainerComponentHarness, TestElement } from '@angular/cdk/testing'\nimport { PSelectButtonHarness } from '@onecx/angular-testing'\n\nexport class DataLayoutSelectionHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-layout-selection'\n\n async getAllSelectionButtons() {\n return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons()\n }\n\n async getListLayoutSelectionButton() {\n return await this.isDesiredButton(await this.getAllSelectionButtons(), 'ocx-data-layout-selection-list')\n }\n\n async getGridLayoutSelectionButton() {\n return await this.isDesiredButton(await this.getAllSelectionButtons(), 'ocx-data-layout-selection-grid')\n }\n\n async getTableLayoutSelectionButton() {\n return await this.isDesiredButton(await this.getAllSelectionButtons(), 'ocx-data-layout-selection-table')\n }\n\n async getCurrentLayout() {\n return await (await this.host()).getAttribute('ng-reflect-layout')\n }\n\n async selectListLayout() {\n await (await this.getListLayoutSelectionButton())?.click()\n }\n\n private async isDesiredButton(value: TestElement[], id: string) {\n for (let index = 0; index < value.length; index++) {\n if ((await value[index].getAttribute('aria-labelledby')) === id) {\n return value[index]\n }\n }\n return null\n }\n}\n","import { ContentContainerComponentHarness, HarnessLoader } from '@angular/cdk/testing'\nimport { MenuItemHarness } from '@onecx/angular-testing'\n\nexport class MoreActionsMenuButtonHarness extends ContentContainerComponentHarness {\n static hostSelector = '.more-actions-menu-button'\n\n async getHarnessLoaderForPMenuOverlay(): Promise<HarnessLoader | null> {\n return this.documentRootLocatorFactory().harnessLoaderForOptional('.p-menu-overlay')\n }\n\n async isOpen(): Promise<boolean> {\n return !!(await this.getHarnessLoaderForPMenuOverlay())\n }\n\n async open() {\n if (!(await this.isOpen())) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async close() {\n if (await this.isOpen()) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async getAllActionsMenuItems() {\n await this.open()\n if (await this.getHarnessLoaderForPMenuOverlay()) {\n return this.documentRootLocatorFactory().locatorForAll(MenuItemHarness)()\n }\n return []\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness } from '@onecx/angular-testing'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class DefaultGridItemHarness extends ComponentHarness {\n static hostSelector = '.data-grid-item'\n\n getMoreActionsButton = this.locatorFor(MoreActionsMenuButtonHarness)\n private getAllDivs = this.locatorForAll(DivHarness)\n private getGridImg = this.locatorFor('img')\n\n async getData() {\n const isDataGridItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((divHarness) => this.checkDivsHasClasses(divHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataGridItemsDiv[index])\n const getDivTexts: (string | null)[] = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n getDivTexts.unshift(await (await this.getGridImg()).getAttribute('src'))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { ButtonHarness, DivHarness } from '@onecx/angular-testing'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DefaultListItemHarness extends ComponentHarness {\n static hostSelector = '.data-list-items'\n\n getAllActionButtons = this.locatorForAll('button')\n getViewButton = this.locatorForOptional(ButtonHarness.with({ class: 'viewListItemButton' }))\n getEditButton = this.locatorForOptional(ButtonHarness.with({ class: 'editListItemButton' }))\n getDeleteButton = this.locatorForOptional(ButtonHarness.with({ class: 'deleteListItemButton' }))\n\n private getAllDivs = this.locatorForAll(DivHarness)\n\n async getData() {\n await waitForDeferredViewsToBeRendered(this)\n const isDataListItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((innerDivHarness) => this.checkDivsHasClasses(innerDivHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataListItemsDiv[index])\n const getDivTexts = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name-row')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ContentContainerComponentHarness, TestElement, parallel } from '@angular/cdk/testing'\nimport { PPaginatorHarness } from '@onecx/angular-testing'\nimport { DefaultGridItemHarness } from './default-grid-item.harness'\nimport { DefaultListItemHarness } from './default-list-item.harness'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DataListGridHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-list-grid'\n\n getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getMenuButton = this.locatorFor(`[name=\"data-grid-item-menu-button\"]`)\n\n async getDefaultListItems() {\n await waitForDeferredViewsToBeRendered(this)\n return await this.locatorForAll(DefaultListItemHarness)()\n }\n\n async getActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden') {\n if (actionButtonType === 'list') {\n return await this.locatorForAll(`[name=\"data-list-action-button\"]`)()\n } else if (actionButtonType === 'grid-hidden') {\n return await this.documentRootLocatorFactory().locatorForAll(\n `[data-automationid=\"data-grid-action-button-hidden\"]`\n )()\n } else {\n return await this.documentRootLocatorFactory().locatorForAll(`[data-automationid=\"data-grid-action-button\"]`)()\n }\n }\n\n async actionButtonIsDisabled(actionButton: TestElement, viewType: 'list' | 'grid'): Promise<boolean> {\n if (viewType === 'list') {\n return await actionButton.getProperty('disabled')\n } else {\n return await actionButton.hasClass('p-disabled')\n }\n }\n\n async hasAmountOfActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden', amount: number) {\n return (await this.getActionButtons(actionButtonType)).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(viewType: 'list' | 'grid', amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons(viewType)\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton, viewType)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n}\n","import {\n BaseHarnessFilters,\n ContentContainerComponentHarness,\n HarnessPredicate,\n TestElement,\n parallel,\n} from '@angular/cdk/testing'\nimport {\n TableHeaderColumnHarness,\n TableRowHarness,\n PPaginatorHarness,\n PTableCheckboxHarness,\n} from '@onecx/angular-testing'\n\nexport interface DataTableHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class DataTableHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-table'\n\n static with(options: DataTableHarnessFilters): HarnessPredicate<DataTableHarness> {\n return new HarnessPredicate(DataTableHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n getHeaderColumns = this.locatorForAll(TableHeaderColumnHarness)\n getRows = this.locatorForAll(TableRowHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async rowSelectionIsEnabled(): Promise<boolean> {\n const pTableCheckbox = await this.getHarnessesForCheckboxes('all')\n return pTableCheckbox.length > 0\n }\n\n async getHarnessesForCheckboxes(type: 'all' | 'checked' | 'unchecked'): Promise<PTableCheckboxHarness[]> {\n let checkBoxHarnesses: PTableCheckboxHarness[]\n if (type === 'checked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: true }))\n return checkBoxHarnesses\n }\n if (type === 'unchecked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: false }))\n return checkBoxHarnesses\n } else {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness)\n return checkBoxHarnesses\n }\n }\n\n async getActionColumnHeader(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-header-${position}\"]`)()\n }\n\n async getActionColumn(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-${position}\"]`)()\n }\n\n async getActionButtons() {\n return await this.locatorForAll(`[name=\"data-table-action-button\"]`)()\n }\n\n async actionButtonIsDisabled(actionButton: TestElement) {\n const isDisabled = await actionButton.getProperty('disabled')\n return isDisabled\n }\n\n async hasAmountOfActionButtons(amount: number) {\n return (await this.getActionButtons()).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons()\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n\n async columnIsFrozen(column: TestElement | null | undefined) {\n if (column === null || column === undefined) {\n throw new Error('Given column is null')\n }\n return await column.hasClass('p-frozen-column')\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataListGridHarness } from './data-list-grid.harness'\nimport { DataTableHarness } from './data-table.harness'\n\nexport class DataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-view'\n\n getDataTable = this.locatorForOptional(DataTableHarness)\n getDataListGrid = this.locatorForOptional(DataListGridHarness)\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PChartHarness, PSelectButtonHarness } from '@onecx/angular-testing'\n\nexport class DiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-diagram'\n\n getChart = this.locatorFor(PChartHarness)\n\n async getTotalNumberOfResults(): Promise<number | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"amountOfData\"]')())?.text().then((s) => Number(s))\n }\n\n async getSumLabel(): Promise<string | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"sumLabel\"]')())?.text()\n }\n\n async getDiagramTypeSelectButton() {\n return await this.locatorForOptional('p-selectbutton[name=\"diagram-type-select-button\"]')()\n }\n\n async getAllSelectionButtons() {\n return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons()\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataTableHarness } from './data-table.harness'\nimport { PButtonHarness, PChipHarness, SpanHarness } from '@onecx/angular-testing'\n\nexport class FilterViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-filter-view'\n\n getOverlayResetFiltersButton = this.documentRootLocatorFactory().locatorForOptional(\n PButtonHarness.with({ id: 'ocxFilterViewOverlayReset' })\n )\n getFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewManage' }))\n getChipsResetFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewReset' }))\n getChips = this.locatorForAll(PChipHarness)\n getNoFiltersMessage = this.locatorForOptional(SpanHarness.with({ id: 'ocxFilterViewNoFilters' }))\n\n async getDataTable() {\n return await this.documentRootLocatorFactory().locatorForOptional(\n DataTableHarness.with({ id: 'ocxFilterViewDataTable' })\n )()\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DiagramHarness } from './diagram.harness'\n\nexport class GroupByCountDiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-group-by-count-diagram'\n\n getDiagram = this.locatorFor(DiagramHarness)\n}","import { BaseHarnessFilters, ContentContainerComponentHarness } from '@angular/cdk/testing'\n\nexport interface SlotHarnessFilters extends BaseHarnessFilters {\n name?: string\n}\n\nexport class SlotHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-slot'\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PButtonHarness } from '@onecx/angular-testing'\nimport { PDropdownHarness } from '@onecx/angular-testing'\nimport { DataLayoutSelectionHarness } from './data-layout-selection.harness'\nimport { DataViewHarness } from './data-view.harness'\nimport { SlotHarness } from './slot.harness'\nimport { CustomGroupColumnSelectorHarness } from './custom-group-column-selector.harness'\n\nexport class InteractiveDataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-interactive-data-view'\n\n getDataLayoutSelection = this.locatorFor(DataLayoutSelectionHarness)\n getColumnGroupSelectionDropdown = this.locatorForOptional(\n PDropdownHarness.with({ id: 'columnGroupSelectionDropdown' })\n )\n getCustomGroupColumnSelector = this.locatorForOptional(CustomGroupColumnSelectorHarness)\n getCustomGroupColumnSelectorSlot = this.locatorForOptional(SlotHarness)\n getDataListGridSortingDropdown = this.locatorForOptional(PDropdownHarness.with({ id: 'dataListGridSortingDropdown' }))\n getDataListGridSortingButton = this.locatorForOptional(PButtonHarness.with({ id: 'dataListGridSortingButton' }))\n getDataView = this.locatorFor(DataViewHarness)\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport {\n ListItemHarness,\n MenuItemHarness,\n PBreadcrumbHarness,\n PButtonHarness,\n PMenuHarness,\n} from '@onecx/angular-testing'\n\nexport class PageHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-page-header'\n\n getPageHeaderWrapperHarness = this.locatorForAll('[name=\"ocx-page-header-wrapper\"]')\n getBreadcrumb = this.locatorForOptional(PBreadcrumbHarness)\n getMenu = this.locatorForOptional(PMenuHarness)\n\n async getElementByTitle(title: string) {\n return await this.locatorForOptional(`[title=\"${title}\"]`)()\n }\n\n async getElementByAriaLabel(ariaLabel: string) {\n return await this.locatorForOptional(`[aria-label=\"${ariaLabel}\"]`)()\n }\n\n async getObjectInfos() {\n return await this.locatorForAll(ObjectDetailItemHarness)()\n }\n\n async getObjectInfoByLabel(objectInfolabel: string) {\n return await this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))()\n }\n\n async getInlineActionButtons() {\n const inlineActionButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-button' })\n )()\n const inlineActionIconButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-icon-button' })\n )()\n return inlineActionButtons.concat(inlineActionIconButtons)\n }\n\n async getInlineActionButtonByLabel(buttonLabel: string) {\n return await this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))()\n }\n\n async getInlineActionButtonByIcon(buttonIcon: string) {\n return await this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"ocx-page-header-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async getBreadcrumbItem(itemText: string): Promise<ListItemHarness | undefined | null> {\n const breadcrumb = await this.getBreadcrumb()\n return await breadcrumb?.getBreadcrumbItem(itemText)\n }\n\n async getHeaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-header')())?.text()\n }\n\n async getSubheaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-subheader')())?.text()\n }\n}\n\ninterface ObjectDetailItemHarnessFilters extends BaseHarnessFilters {\n label?: string\n}\n\nclass ObjectDetailItemHarness extends ComponentHarness {\n static hostSelector = '.object-info'\n\n getLabelElement = this.locatorFor('[name=\"object-detail-label\"]')\n getValueElement = this.locatorForOptional('[name=\"object-detail-value\"]')\n getIconElement = this.locatorForOptional('[name=\"object-detail-icon\"]')\n\n static with(options: ObjectDetailItemHarnessFilters): HarnessPredicate<ObjectDetailItemHarness> {\n return new HarnessPredicate(ObjectDetailItemHarness, options).addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label)\n )\n }\n\n async getLabel() {\n return (await this.getLabelElement()).text()\n }\n\n async getValue() {\n return (await this.getValueElement())?.text()\n }\n\n async getValueStyles() {\n return (await this.getValueElement())?.getAttribute('class')\n }\n\n async getIcon() {\n return (await this.getIconElement())?.getAttribute('class')\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PButtonHarness } from '@onecx/angular-testing'\nimport { PageHeaderHarness } from './page-header.harness'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class SearchHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-search-header'\n\n getPageHeader = this.locatorFor(PageHeaderHarness)\n getSearchButton = this.locatorFor(\n PButtonHarness.with({\n id: 'searchButton',\n })\n )\n\n getResetButton = this.locatorFor(\n PButtonHarness.with({\n id: 'resetButton',\n })\n )\n\n getSimpleAdvancedButton = this.locatorForOptional(\n PButtonHarness.with({\n id: 'simpleAdvancedButton',\n })\n )\n\n getMoreActionsMenuButton = this.locatorForOptional(MoreActionsMenuButtonHarness)\n\n async clickResetButton() {\n await (await this.getResetButton()).click()\n }\n\n async clickSearchButton() {\n await (await this.getSearchButton()).click()\n }\n\n async toggleSimpleAdvanced() {\n if (await this.getSimpleAdvancedButton()) {\n await (await this.getSimpleAdvancedButton())?.click()\n } else {\n console.warn('No SimpleAdvancedButton is being displayed to toggle, because no advanced form field is defined.')\n }\n }\n}\n","import { ensureIntersectionObserverMockExists, ensureOriginMockExists } from '@onecx/angular-testing'\n\nexport * from './column-group-selection.harness'\nexport * from './custom-group-column-selector.harness'\nexport * from './data-layout-selection.harness'\nexport * from './data-list-grid.harness'\nexport * from './data-table.harness'\nexport * from './data-view.harness'\nexport * from './default-grid-item.harness'\nexport * from './default-list-item.harness'\nexport * from './diagram.harness'\nexport * from './filter-view.harness'\nexport * from './group-by-count-diagram.harness'\nexport * from './interactive-data-view.harness'\nexport * from './more-actions-menu-button.harness'\nexport * from './page-header.harness'\nexport * from './slot.harness'\nexport * from './search-header.harness'\n\nexport * from '@angular/cdk/testing'\nexport * from '@angular/cdk/testing/testbed'\nexport * from '@onecx/angular-testing'\n\nensureIntersectionObserverMockExists()\nensureOriginMockExists()\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onecx-angular-accelerator-testing.mjs","sources":["../../../../libs/angular-accelerator/testing/column-group-selection.harness.ts","../../../../libs/angular-accelerator/testing/custom-group-column-selector.harness.ts","../../../../libs/angular-accelerator/testing/data-layout-selection.harness.ts","../../../../libs/angular-accelerator/testing/more-actions-menu-button.harness.ts","../../../../libs/angular-accelerator/testing/default-grid-item.harness.ts","../../../../libs/angular-accelerator/testing/default-list-item.harness.ts","../../../../libs/angular-accelerator/testing/data-list-grid.harness.ts","../../../../libs/angular-accelerator/testing/data-table.harness.ts","../../../../libs/angular-accelerator/testing/data-view.harness.ts","../../../../libs/angular-accelerator/testing/diagram.harness.ts","../../../../libs/angular-accelerator/testing/filter-view.harness.ts","../../../../libs/angular-accelerator/testing/group-by-count-diagram.harness.ts","../../../../libs/angular-accelerator/testing/slot.harness.ts","../../../../libs/angular-accelerator/testing/interactive-data-view.harness.ts","../../../../libs/angular-accelerator/testing/page-header.harness.ts","../../../../libs/angular-accelerator/testing/search-header.harness.ts","../../../../libs/angular-accelerator/testing/index.ts","../../../../libs/angular-accelerator/testing/onecx-angular-accelerator-testing.ts"],"sourcesContent":["import { ComponentHarness } from '@angular/cdk/testing'\nimport { PDropdownHarness } from '@onecx/angular-testing'\n\nexport class ColumnGroupSelectionHarness extends ComponentHarness {\n static hostSelector = 'ocx-column-group-selection'\n\n getPDropdown = this.locatorFor(PDropdownHarness)\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PDialogHarness, PPicklistHarness, PButtonHarness } from '@onecx/angular-testing'\n\nexport class CustomGroupColumnSelectorHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-custom-group-column-selector'\n\n getCustomGroupColumnSelectorButton = this.locatorFor(\n PButtonHarness.with({\n id: 'customGroupColumnSelectorButton',\n })\n )\n\n getDialog = this.locatorFor(PDialogHarness)\n getCancelButton = this.locatorFor(PButtonHarness.with({ id: 'cancelButton' }))\n getSaveButton = this.locatorFor(PButtonHarness.with({ id: 'saveButton' }))\n getPicklist = this.locatorFor(PPicklistHarness)\n getSelectButtons = this.locatorForOptional('[name]')\n\n async getFrozenActionColumnSelectButton() {\n return await this.locatorForAll(`[name=\"frozen-action-column-select-button\"] .p-button`)()\n }\n\n async getActionColumnPositionSelectButtons() {\n return await this.locatorForAll(`[name=\"action-column-position-select-button\"] .p-button`)()\n }\n\n async openCustomGroupColumnSelectorDialog() {\n if (!(await (await this.getDialog()).isVisible())) {\n await (await this.getCustomGroupColumnSelectorButton()).click()\n } else {\n console.warn('Unable to open CustomGroupColumnSelectionDialog, because it is already open.')\n }\n }\n}\n","import { ContentContainerComponentHarness, TestElement } from '@angular/cdk/testing'\nimport { PSelectButtonHarness } from '@onecx/angular-testing'\n\nexport class DataLayoutSelectionHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-layout-selection'\n\n async getAllSelectionButtons() {\n return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons()\n }\n\n async getListLayoutSelectionButton() {\n return await this.isDesiredButton(await this.getAllSelectionButtons(), 'ocx-data-layout-selection-list')\n }\n\n async getGridLayoutSelectionButton() {\n return await this.isDesiredButton(await this.getAllSelectionButtons(), 'ocx-data-layout-selection-grid')\n }\n\n async getTableLayoutSelectionButton() {\n return await this.isDesiredButton(await this.getAllSelectionButtons(), 'ocx-data-layout-selection-table')\n }\n\n async getCurrentLayout() {\n return await (await this.host()).getAttribute('ng-reflect-layout')\n }\n\n async selectListLayout() {\n await (await this.getListLayoutSelectionButton())?.click()\n }\n\n private async isDesiredButton(value: TestElement[], id: string) {\n for (let index = 0; index < value.length; index++) {\n if ((await value[index].getAttribute('aria-labelledby')) === id) {\n return value[index]\n }\n }\n return null\n }\n}\n","import { ContentContainerComponentHarness, HarnessLoader } from '@angular/cdk/testing'\nimport { MenuItemHarness } from '@onecx/angular-testing'\n\nexport class MoreActionsMenuButtonHarness extends ContentContainerComponentHarness {\n static hostSelector = '.more-actions-menu-button'\n\n async getHarnessLoaderForPMenuOverlay(): Promise<HarnessLoader | null> {\n return this.documentRootLocatorFactory().harnessLoaderForOptional('.p-menu-overlay')\n }\n\n async isOpen(): Promise<boolean> {\n return !!(await this.getHarnessLoaderForPMenuOverlay())\n }\n\n async open() {\n if (!(await this.isOpen())) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async close() {\n if (await this.isOpen()) {\n await (await this.host()).click()\n } else {\n console.warn('Unable to open multiSelect, because it is already open.')\n }\n }\n\n async getAllActionsMenuItems() {\n await this.open()\n if (await this.getHarnessLoaderForPMenuOverlay()) {\n return this.documentRootLocatorFactory().locatorForAll(MenuItemHarness)()\n }\n return []\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DivHarness } from '@onecx/angular-testing'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class DefaultGridItemHarness extends ComponentHarness {\n static hostSelector = '.data-grid-item'\n\n getMoreActionsButton = this.locatorFor(MoreActionsMenuButtonHarness)\n private getAllDivs = this.locatorForAll(DivHarness)\n private getGridImg = this.locatorFor('img')\n\n async getData() {\n const isDataGridItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((divHarness) => this.checkDivsHasClasses(divHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataGridItemsDiv[index])\n const getDivTexts: (string | null)[] = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n getDivTexts.unshift(await (await this.getGridImg()).getAttribute('src'))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { ButtonHarness, DivHarness } from '@onecx/angular-testing'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DefaultListItemHarness extends ComponentHarness {\n static hostSelector = '.data-list-items'\n\n getAllActionButtons = this.locatorForAll('button')\n getViewButton = this.locatorForOptional(ButtonHarness.with({ class: 'viewListItemButton' }))\n getEditButton = this.locatorForOptional(ButtonHarness.with({ class: 'editListItemButton' }))\n getDeleteButton = this.locatorForOptional(ButtonHarness.with({ class: 'deleteListItemButton' }))\n\n private getAllDivs = this.locatorForAll(DivHarness)\n\n async getData() {\n await waitForDeferredViewsToBeRendered(this)\n const isDataListItemsDiv = await Promise.all(\n (await this.getAllDivs()).map((innerDivHarness) => this.checkDivsHasClasses(innerDivHarness))\n )\n const divHarnesses = (await this.getAllDivs()).filter((_v, index) => isDataListItemsDiv[index])\n const getDivTexts = await Promise.all(divHarnesses.map((divHarness) => divHarness.getText()))\n return getDivTexts\n }\n\n async checkDivsHasClasses(value: DivHarness) {\n const hasClass = (await value.checkHasClass('item-name-row')) || (await value.checkHasClass('subtitleLine'))\n return hasClass\n }\n}\n","import { ContentContainerComponentHarness, TestElement, parallel } from '@angular/cdk/testing'\nimport { PMenuHarness, PPaginatorHarness } from '@onecx/angular-testing'\nimport { DefaultGridItemHarness } from './default-grid-item.harness'\nimport { DefaultListItemHarness } from './default-list-item.harness'\nimport { waitForDeferredViewsToBeRendered } from '@onecx/angular-testing'\n\nexport class DataListGridHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-list-grid'\n\n getDefaultGridItems = this.locatorForAll(DefaultGridItemHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getMenuButton = this.locatorFor(`[name=\"data-grid-item-menu-button\"]`)\n getListOverflowMenuButton = this.locatorFor(`[name=\"data-list-overflow-item-menu-button\"]`)\n getListOverflowMenu = this.locatorForOptional(PMenuHarness)\n\n async getDefaultListItems() {\n await waitForDeferredViewsToBeRendered(this)\n return await this.locatorForAll(DefaultListItemHarness)()\n }\n\n async getActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden') {\n if (actionButtonType === 'list') {\n return await this.locatorForAll(`[name=\"data-list-action-button\"]`)()\n } else if (actionButtonType === 'grid-hidden') {\n return await this.documentRootLocatorFactory().locatorForAll(\n `[data-automationid=\"data-grid-action-button-hidden\"]`\n )()\n } else {\n return await this.documentRootLocatorFactory().locatorForAll(`[data-automationid=\"data-grid-action-button\"]`)()\n }\n }\n\n async getListOverflowMenuItems() {\n const menu = await this.getListOverflowMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async actionButtonIsDisabled(actionButton: TestElement, viewType: 'list' | 'grid'): Promise<boolean> {\n if (viewType === 'list') {\n return await actionButton.getProperty('disabled')\n } else {\n return await actionButton.hasClass('p-disabled')\n }\n }\n\n async hasAmountOfActionButtons(actionButtonType: 'list' | 'grid' | 'grid-hidden', amount: number) {\n return (await this.getActionButtons(actionButtonType)).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(viewType: 'list' | 'grid', amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons(viewType)\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton, viewType)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n}\n","import {\n BaseHarnessFilters,\n ContentContainerComponentHarness,\n HarnessPredicate,\n TestElement,\n parallel,\n} from '@angular/cdk/testing'\nimport {\n TableHeaderColumnHarness,\n TableRowHarness,\n PPaginatorHarness,\n PTableCheckboxHarness,\n PMenuHarness,\n MenuItemHarness,\n} from '@onecx/angular-testing'\n\nexport interface DataTableHarnessFilters extends BaseHarnessFilters {\n id?: string\n}\n\nexport class DataTableHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-table'\n\n static with(options: DataTableHarnessFilters): HarnessPredicate<DataTableHarness> {\n return new HarnessPredicate(DataTableHarness, options).addOption('id', options.id, (harness, id) =>\n HarnessPredicate.stringMatches(harness.getId(), id)\n )\n }\n\n getHeaderColumns = this.locatorForAll(TableHeaderColumnHarness)\n getRows = this.locatorForAll(TableRowHarness)\n getPaginator = this.locatorFor(PPaginatorHarness)\n getOverflowMenu = this.locatorForOptional(PMenuHarness)\n\n async getId(): Promise<string | null> {\n return await (await this.host()).getAttribute('id')\n }\n\n async rowSelectionIsEnabled(): Promise<boolean> {\n const pTableCheckbox = await this.getHarnessesForCheckboxes('all')\n return pTableCheckbox.length > 0\n }\n\n async getHarnessesForCheckboxes(type: 'all' | 'checked' | 'unchecked'): Promise<PTableCheckboxHarness[]> {\n let checkBoxHarnesses: PTableCheckboxHarness[]\n if (type === 'checked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: true }))\n return checkBoxHarnesses\n }\n if (type === 'unchecked') {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness.with({ isSelected: false }))\n return checkBoxHarnesses\n } else {\n checkBoxHarnesses = await this.getAllHarnesses(PTableCheckboxHarness)\n return checkBoxHarnesses\n }\n }\n\n async getActionColumnHeader(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-header-${position}\"]`)()\n }\n\n async getActionColumn(position: 'left' | 'right') {\n return await this.locatorForOptional(`[name=\"action-column-${position}\"]`)()\n }\n\n async getActionButtons() {\n return await this.locatorForAll(`[name=\"data-table-action-button\"]`)()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"data-table-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getOverflowMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getOverflowMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async actionButtonIsDisabled(actionButton: TestElement) {\n const isDisabled = await actionButton.getProperty('disabled')\n return isDisabled\n }\n\n async hasAmountOfActionButtons(amount: number) {\n return (await this.getActionButtons()).length === amount\n }\n\n async hasAmountOfDisabledActionButtons(amount: number) {\n let disabledActionButtonsCount = 0\n const actionButtons = await this.getActionButtons()\n await parallel(() =>\n actionButtons.map(async (actionButton) => {\n if ((await this.actionButtonIsDisabled(actionButton)) === true) {\n disabledActionButtonsCount++\n }\n })\n )\n return disabledActionButtonsCount === amount\n }\n\n async columnIsFrozen(column: TestElement | null | undefined) {\n if (column === null || column === undefined) {\n throw new Error('Given column is null')\n }\n return await column.hasClass('p-frozen-column')\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataListGridHarness } from './data-list-grid.harness'\nimport { DataTableHarness } from './data-table.harness'\n\nexport class DataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-data-view'\n\n getDataTable = this.locatorForOptional(DataTableHarness)\n getDataListGrid = this.locatorForOptional(DataListGridHarness)\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PChartHarness, PSelectButtonHarness } from '@onecx/angular-testing'\n\nexport class DiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-diagram'\n\n getChart = this.locatorFor(PChartHarness)\n\n async getTotalNumberOfResults(): Promise<number | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"amountOfData\"]')())?.text().then((s) => Number(s))\n }\n\n async getSumLabel(): Promise<string | undefined> {\n return (await this.locatorForOptional('.sumKey span[name=\"sumLabel\"]')())?.text()\n }\n\n async getDiagramTypeSelectButton() {\n return await this.locatorForOptional('p-selectbutton[name=\"diagram-type-select-button\"]')()\n }\n\n async getAllSelectionButtons() {\n return await (await this.locatorFor(PSelectButtonHarness)()).getAllButtons()\n }\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { DataTableHarness } from './data-table.harness'\nimport { PButtonHarness, PChipHarness, SpanHarness } from '@onecx/angular-testing'\n\nexport class FilterViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-filter-view'\n\n getOverlayResetFiltersButton = this.documentRootLocatorFactory().locatorForOptional(\n PButtonHarness.with({ id: 'ocxFilterViewOverlayReset' })\n )\n getFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewManage' }))\n getChipsResetFiltersButton = this.locatorForOptional(PButtonHarness.with({ id: 'ocxFilterViewReset' }))\n getChips = this.locatorForAll(PChipHarness)\n getNoFiltersMessage = this.locatorForOptional(SpanHarness.with({ id: 'ocxFilterViewNoFilters' }))\n\n async getDataTable() {\n return await this.documentRootLocatorFactory().locatorForOptional(\n DataTableHarness.with({ id: 'ocxFilterViewDataTable' })\n )()\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { DiagramHarness } from './diagram.harness'\n\nexport class GroupByCountDiagramHarness extends ComponentHarness {\n static hostSelector = 'ocx-group-by-count-diagram'\n\n getDiagram = this.locatorFor(DiagramHarness)\n}","import { BaseHarnessFilters, ContentContainerComponentHarness } from '@angular/cdk/testing'\n\nexport interface SlotHarnessFilters extends BaseHarnessFilters {\n name?: string\n}\n\nexport class SlotHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-slot'\n}\n","import { ContentContainerComponentHarness } from '@angular/cdk/testing'\nimport { PButtonHarness } from '@onecx/angular-testing'\nimport { PDropdownHarness } from '@onecx/angular-testing'\nimport { DataLayoutSelectionHarness } from './data-layout-selection.harness'\nimport { DataViewHarness } from './data-view.harness'\nimport { SlotHarness } from './slot.harness'\nimport { CustomGroupColumnSelectorHarness } from './custom-group-column-selector.harness'\n\nexport class InteractiveDataViewHarness extends ContentContainerComponentHarness {\n static hostSelector = 'ocx-interactive-data-view'\n\n getDataLayoutSelection = this.locatorFor(DataLayoutSelectionHarness)\n getColumnGroupSelectionDropdown = this.locatorForOptional(\n PDropdownHarness.with({ id: 'columnGroupSelectionDropdown' })\n )\n getCustomGroupColumnSelector = this.locatorForOptional(CustomGroupColumnSelectorHarness)\n getCustomGroupColumnSelectorSlot = this.locatorForOptional(SlotHarness)\n getDataListGridSortingDropdown = this.locatorForOptional(PDropdownHarness.with({ id: 'dataListGridSortingDropdown' }))\n getDataListGridSortingButton = this.locatorForOptional(PButtonHarness.with({ id: 'dataListGridSortingButton' }))\n getDataView = this.locatorFor(DataViewHarness)\n}\n","import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing'\nimport {\n ListItemHarness,\n MenuItemHarness,\n PBreadcrumbHarness,\n PButtonHarness,\n PMenuHarness,\n} from '@onecx/angular-testing'\n\nexport class PageHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-page-header'\n\n getPageHeaderWrapperHarness = this.locatorForAll('[name=\"ocx-page-header-wrapper\"]')\n getBreadcrumb = this.locatorForOptional(PBreadcrumbHarness)\n getMenu = this.locatorForOptional(PMenuHarness)\n\n async getElementByTitle(title: string) {\n return await this.locatorForOptional(`[title=\"${title}\"]`)()\n }\n\n async getElementByAriaLabel(ariaLabel: string) {\n return await this.locatorForOptional(`[aria-label=\"${ariaLabel}\"]`)()\n }\n\n async getObjectInfos() {\n return await this.locatorForAll(ObjectDetailItemHarness)()\n }\n\n async getObjectInfoByLabel(objectInfolabel: string) {\n return await this.locatorForOptional(ObjectDetailItemHarness.with({ label: objectInfolabel }))()\n }\n\n async getInlineActionButtons() {\n const inlineActionButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-button' })\n )()\n const inlineActionIconButtons = await this.locatorForAll(\n PButtonHarness.with({ name: 'ocx-page-header-inline-action-icon-button' })\n )()\n return inlineActionButtons.concat(inlineActionIconButtons)\n }\n\n async getInlineActionButtonByLabel(buttonLabel: string) {\n return await this.locatorForOptional(PButtonHarness.with({ label: buttonLabel }))()\n }\n\n async getInlineActionButtonByIcon(buttonIcon: string) {\n return await this.locatorForOptional(PButtonHarness.with({ icon: buttonIcon }))()\n }\n\n async getOverflowActionMenuButton() {\n return await this.locatorForOptional('[name=\"ocx-page-header-overflow-action-button\"]')()\n }\n\n async getOverFlowMenuItems() {\n const menu = await this.getMenu()\n const menuItems = await menu?.getAllMenuItems()\n return menuItems ?? []\n }\n\n async getOverFlowMenuItem(itemText: string): Promise<MenuItemHarness | undefined | null> {\n const menu = await this.getMenu()\n return await menu?.getMenuItem(itemText)\n }\n\n async getBreadcrumbItem(itemText: string): Promise<ListItemHarness | undefined | null> {\n const breadcrumb = await this.getBreadcrumb()\n return await breadcrumb?.getBreadcrumbItem(itemText)\n }\n\n async getHeaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-header')())?.text()\n }\n\n async getSubheaderText(): Promise<string | undefined> {\n return await (await this.locatorForOptional('#page-subheader')())?.text()\n }\n}\n\ninterface ObjectDetailItemHarnessFilters extends BaseHarnessFilters {\n label?: string\n}\n\nclass ObjectDetailItemHarness extends ComponentHarness {\n static hostSelector = '.object-info'\n\n getLabelElement = this.locatorFor('[name=\"object-detail-label\"]')\n getValueElement = this.locatorForOptional('[name=\"object-detail-value\"]')\n getIconElement = this.locatorForOptional('[name=\"object-detail-icon\"]')\n\n static with(options: ObjectDetailItemHarnessFilters): HarnessPredicate<ObjectDetailItemHarness> {\n return new HarnessPredicate(ObjectDetailItemHarness, options).addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label)\n )\n }\n\n async getLabel() {\n return (await this.getLabelElement()).text()\n }\n\n async getValue() {\n return (await this.getValueElement())?.text()\n }\n\n async getValueStyles() {\n return (await this.getValueElement())?.getAttribute('class')\n }\n\n async getIcon() {\n return (await this.getIconElement())?.getAttribute('class')\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing'\nimport { PButtonHarness } from '@onecx/angular-testing'\nimport { PageHeaderHarness } from './page-header.harness'\nimport { MoreActionsMenuButtonHarness } from './more-actions-menu-button.harness'\n\nexport class SearchHeaderHarness extends ComponentHarness {\n static hostSelector = 'ocx-search-header'\n\n getPageHeader = this.locatorFor(PageHeaderHarness)\n getSearchButton = this.locatorFor(\n PButtonHarness.with({\n id: 'searchButton',\n })\n )\n\n getResetButton = this.locatorFor(\n PButtonHarness.with({\n id: 'resetButton',\n })\n )\n\n getSimpleAdvancedButton = this.locatorForOptional(\n PButtonHarness.with({\n id: 'simpleAdvancedButton',\n })\n )\n\n getMoreActionsMenuButton = this.locatorForOptional(MoreActionsMenuButtonHarness)\n\n async clickResetButton() {\n await (await this.getResetButton()).click()\n }\n\n async clickSearchButton() {\n await (await this.getSearchButton()).click()\n }\n\n async toggleSimpleAdvanced() {\n if (await this.getSimpleAdvancedButton()) {\n await (await this.getSimpleAdvancedButton())?.click()\n } else {\n console.warn('No SimpleAdvancedButton is being displayed to toggle, because no advanced form field is defined.')\n }\n }\n}\n","import { ensureIntersectionObserverMockExists, ensureOriginMockExists } from '@onecx/angular-testing'\n\nexport * from './column-group-selection.harness'\nexport * from './custom-group-column-selector.harness'\nexport * from './data-layout-selection.harness'\nexport * from './data-list-grid.harness'\nexport * from './data-table.harness'\nexport * from './data-view.harness'\nexport * from './default-grid-item.harness'\nexport * from './default-list-item.harness'\nexport * from './diagram.harness'\nexport * from './filter-view.harness'\nexport * from './group-by-count-diagram.harness'\nexport * from './interactive-data-view.harness'\nexport * from './more-actions-menu-button.harness'\nexport * from './page-header.harness'\nexport * from './slot.harness'\nexport * from './search-header.harness'\n\nexport * from '@angular/cdk/testing'\nexport * from '@angular/cdk/testing/testbed'\nexport * from '@onecx/angular-testing'\n\nensureIntersectionObserverMockExists()\nensureOriginMockExists()\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}