@cqa-lib/cqa-ui 1.1.169 → 1.1.171

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.
Files changed (63) hide show
  1. package/esm2020/lib/compare-runs/compare-runs.component.mjs +53 -13
  2. package/esm2020/lib/dynamic-select/dynamic-select-field.component.mjs +4 -4
  3. package/esm2020/lib/execution-screen/ai-action-step/ai-action-step.component.mjs +4 -8
  4. package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +4 -8
  5. package/esm2020/lib/execution-screen/api-step/api-step.component.mjs +29 -15
  6. package/esm2020/lib/execution-screen/basic-step/basic-step.component.mjs +4 -8
  7. package/esm2020/lib/execution-screen/condition-step/condition-step.component.mjs +4 -8
  8. package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +4 -8
  9. package/esm2020/lib/execution-screen/document-verification-step/document-verification-step.component.mjs +3 -3
  10. package/esm2020/lib/execution-screen/execution-step.models.mjs +1 -1
  11. package/esm2020/lib/execution-screen/file-download-step/file-download-step.component.mjs +3 -3
  12. package/esm2020/lib/execution-screen/live-execution-step/live-execution-step.component.mjs +3 -3
  13. package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +4 -8
  14. package/esm2020/lib/execution-screen/self-heal-analysis/self-heal-analysis.component.mjs +8 -6
  15. package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +3 -3
  16. package/esm2020/lib/pagination/pagination.component.mjs +6 -3
  17. package/esm2020/lib/segment-control/segment-control.component.mjs +6 -3
  18. package/esm2020/lib/simulator/simulator.component.mjs +21 -3
  19. package/esm2020/lib/step-builder/step-builder-loop/step-builder-loop.component.mjs +1 -1
  20. package/esm2020/lib/test-case-details/ai-verify-step/ai-verify-step.component.mjs +77 -0
  21. package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +3 -3
  22. package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +33 -3
  23. package/esm2020/lib/test-case-details/normal-step/normal-step.component.mjs +43 -3
  24. package/esm2020/lib/test-case-details/restore-session-step/restore-session-step.component.mjs +81 -0
  25. package/esm2020/lib/test-case-details/scroll-step/scroll-step.component.mjs +102 -0
  26. package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +11 -3
  27. package/esm2020/lib/test-case-details/test-case-details-renderer/test-case-details-renderer.component.mjs +10 -2
  28. package/esm2020/lib/test-case-details/test-case-step-components.token.mjs +1 -1
  29. package/esm2020/lib/test-case-details/test-case-step.models.mjs +17 -1
  30. package/esm2020/lib/test-case-details/verify-url-step/verify-url-step.component.mjs +85 -0
  31. package/esm2020/lib/ui-kit.module.mjs +27 -1
  32. package/esm2020/public-api.mjs +5 -1
  33. package/fesm2015/cqa-lib-cqa-ui.mjs +610 -108
  34. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  35. package/fesm2020/cqa-lib-cqa-ui.mjs +605 -100
  36. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  37. package/lib/compare-runs/compare-runs.component.d.ts +3 -0
  38. package/lib/dynamic-select/dynamic-select-field.component.d.ts +5 -0
  39. package/lib/execution-screen/ai-action-step/ai-action-step.component.d.ts +2 -5
  40. package/lib/execution-screen/ai-agent-step/ai-agent-step.component.d.ts +3 -6
  41. package/lib/execution-screen/api-step/api-step.component.d.ts +4 -6
  42. package/lib/execution-screen/basic-step/basic-step.component.d.ts +3 -6
  43. package/lib/execution-screen/condition-step/condition-step.component.d.ts +3 -6
  44. package/lib/execution-screen/db-verification-step/db-verification-step.component.d.ts +3 -6
  45. package/lib/execution-screen/execution-step.models.d.ts +2 -1
  46. package/lib/execution-screen/loop-step/loop-step.component.d.ts +3 -6
  47. package/lib/execution-screen/self-heal-analysis/self-heal-analysis.component.d.ts +4 -6
  48. package/lib/pagination/pagination.component.d.ts +1 -0
  49. package/lib/segment-control/segment-control.component.d.ts +2 -1
  50. package/lib/simulator/simulator.component.d.ts +3 -0
  51. package/lib/test-case-details/ai-verify-step/ai-verify-step.component.d.ts +31 -0
  52. package/lib/test-case-details/loop-step/loop-step.component.d.ts +6 -0
  53. package/lib/test-case-details/normal-step/normal-step.component.d.ts +5 -0
  54. package/lib/test-case-details/restore-session-step/restore-session-step.component.d.ts +31 -0
  55. package/lib/test-case-details/scroll-step/scroll-step.component.d.ts +41 -0
  56. package/lib/test-case-details/step-group/step-group.component.d.ts +2 -1
  57. package/lib/test-case-details/test-case-step-components.token.d.ts +4 -0
  58. package/lib/test-case-details/test-case-step.models.d.ts +36 -3
  59. package/lib/test-case-details/verify-url-step/verify-url-step.component.d.ts +32 -0
  60. package/lib/ui-kit.module.d.ts +30 -26
  61. package/package.json +1 -1
  62. package/public-api.d.ts +4 -0
  63. package/styles.css +1 -1
@@ -33,6 +33,7 @@ export interface TestCaseResultData {
33
33
  result: 'SUCCESS' | 'FAILURE' | 'ABORTED' | 'NOT_EXECUTED' | 'QUEUED' | 'STOPPED';
34
34
  status: 'STATUS_COMPLETED' | 'STATUS_IN_PROGRESS' | 'STATUS_QUEUED';
35
35
  startTime: number;
36
+ platform: string;
36
37
  endTime: number;
37
38
  duration: number;
38
39
  testDataSetName: string;
@@ -122,8 +123,10 @@ export declare class CompareRunsComponent implements OnInit, OnChanges {
122
123
  private updateSelectedRuns;
123
124
  private convertToRunData;
124
125
  private setupTableColumns;
126
+ private getRunColumnHeader;
125
127
  private renderStatusIcon;
126
128
  private formatDuration;
129
+ private getResultStatusColor;
127
130
  private handleComparisonData;
128
131
  onPageChange(event: {
129
132
  pageIndex: number;
@@ -7,6 +7,10 @@ export interface SelectOption {
7
7
  value?: any;
8
8
  name?: string;
9
9
  label?: string;
10
+ statusColor?: string;
11
+ durationFormatted?: string;
12
+ runNumberLabel?: string;
13
+ runDateLabel?: string;
10
14
  }
11
15
  export interface DynamicSelectFieldConfig {
12
16
  key: string;
@@ -45,6 +49,7 @@ export interface DynamicSelectFieldConfig {
45
49
  /** Optional regex pattern or function to highlight parts of option text. */
46
50
  highlightPattern?: RegExp | string | ((text: string) => string);
47
51
  options: SelectOption[];
52
+ isCompareRuns?: boolean;
48
53
  }
49
54
  export declare class DynamicSelectFieldComponent implements OnInit, OnChanges {
50
55
  readonly SELECT_ALL_VALUE: string;
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
2
- import { AIActionStepConfig, AIAgentAction, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, SelfHealAction, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
2
+ import { AIActionStepConfig, AIAgentAction, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
3
3
  import { BaseStepComponent } from '../base-step.component';
4
4
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
5
5
  import * as i0 from "@angular/core";
@@ -47,10 +47,7 @@ export declare class AIActionStepComponent extends BaseStepComponent implements
47
47
  onUploadBaseline(event: uploadBaselineEvent): void;
48
48
  onAnalyze(): void;
49
49
  onViewFullLogs(): void;
50
- onSelfHealAction(event: {
51
- type: SelfHealAction;
52
- healedLocator: string;
53
- }): void;
50
+ onSelfHealAction(event: SelfHealActionEvent): void;
54
51
  trackByActionId(index: number, action: AIAgentAction): string;
55
52
  get showViewMoreButton(): boolean;
56
53
  toggleHeader(event?: Event): void;
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, SimpleChanges } from '@angular/core';
2
- import { AIAgentStepConfig, AIAgentAction, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, SelfHealAction, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
2
+ import { AIAgentStepConfig, AIAgentAction, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
3
3
  import { BaseStepComponent } from '../base-step.component';
4
4
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
5
5
  import * as i0 from "@angular/core";
@@ -30,7 +30,7 @@ export declare class AIAgentStepComponent extends BaseStepComponent implements O
30
30
  };
31
31
  onStepClickHandler?: (step: ExecutionStepConfig, event?: Event) => void;
32
32
  isLive: boolean;
33
- step?: ExecutionStepConfig;
33
+ step?: any;
34
34
  showFailedStepDetails: boolean;
35
35
  makeCurrentBaseline: EventEmitter<makeCurrentBaselineEvent>;
36
36
  uploadBaseline: EventEmitter<uploadBaselineEvent>;
@@ -55,10 +55,7 @@ export declare class AIAgentStepComponent extends BaseStepComponent implements O
55
55
  onUploadBaseline(event: uploadBaselineEvent): void;
56
56
  onAnalyze(): void;
57
57
  onViewFullLogs(): void;
58
- onSelfHealAction(event: {
59
- type: SelfHealAction;
60
- healedLocator: string;
61
- }): void;
58
+ onSelfHealAction(event: SelfHealActionEvent): void;
62
59
  trackByActionId(index: number, action: AIAgentAction): string;
63
60
  get showViewMoreButton(): boolean;
64
61
  toggleHeader(event?: Event): void;
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
- import { ApiStepConfig, ApiAssertion, SubStep, StepStatus, TimingBreakdown, FailureDetails, SelfHealAnalysisData, SelfHealAction, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
2
+ import { ApiStepConfig, ApiAssertion, SubStep, StepStatus, TimingBreakdown, FailureDetails, SelfHealAnalysisData, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
3
3
  import { BaseStepComponent } from '../base-step.component';
4
4
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
5
5
  import * as i0 from "@angular/core";
@@ -39,7 +39,7 @@ export declare class ApiStepComponent extends BaseStepComponent implements OnIni
39
39
  path: string;
40
40
  source: 'requestBody' | 'responseBody' | 'requestHeaders' | 'responseHeaders';
41
41
  }) => void;
42
- step?: ExecutionStepConfig;
42
+ step?: any;
43
43
  makeCurrentBaseline: EventEmitter<makeCurrentBaselineEvent>;
44
44
  uploadBaseline: EventEmitter<uploadBaselineEvent>;
45
45
  analyze: EventEmitter<void>;
@@ -78,6 +78,7 @@ export declare class ApiStepComponent extends BaseStepComponent implements OnIni
78
78
  * Extracts JSON path from the clicked position in a formatted JSON string
79
79
  */
80
80
  private getJsonPathFromClick;
81
+ private normalizeJsonPath;
81
82
  /**
82
83
  * Copy JSON path on double-click
83
84
  */
@@ -89,10 +90,7 @@ export declare class ApiStepComponent extends BaseStepComponent implements OnIni
89
90
  onUploadBaseline(event: uploadBaselineEvent): void;
90
91
  onAnalyze(): void;
91
92
  onViewFullLogs(): void;
92
- onSelfHealAction(event: {
93
- type: SelfHealAction;
94
- healedLocator: string;
95
- }): void;
93
+ onSelfHealAction(event: SelfHealActionEvent): void;
96
94
  get showViewMoreButton(): boolean;
97
95
  toggleHeader(event?: Event): void;
98
96
  toggle(): void;
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
- import { BasicStepConfig, SelfHealAction, SubStep, StepStatus, TimingBreakdown, SelfHealAnalysisData, FailureDetails, ExecutionStepConfig, ConditionBranch, SelfHealActionEvent } from '../execution-step.models';
2
+ import { BasicStepConfig, SubStep, StepStatus, TimingBreakdown, SelfHealAnalysisData, FailureDetails, ExecutionStepConfig, ConditionBranch, SelfHealActionEvent } from '../execution-step.models';
3
3
  import { BaseStepComponent } from '../base-step.component';
4
4
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
5
5
  import * as i0 from "@angular/core";
@@ -67,7 +67,7 @@ export declare class BasicStepComponent extends BaseStepComponent implements OnI
67
67
  testStepResultId: string;
68
68
  }) => void;
69
69
  downloadingStepId: string | null;
70
- step?: ExecutionStepConfig;
70
+ step?: any;
71
71
  makeCurrentBaseline: EventEmitter<makeCurrentBaselineEvent>;
72
72
  uploadBaseline: EventEmitter<uploadBaselineEvent>;
73
73
  analyze: EventEmitter<void>;
@@ -80,10 +80,7 @@ export declare class BasicStepComponent extends BaseStepComponent implements OnI
80
80
  get hasSubSteps(): boolean;
81
81
  showFailedStepDetails: boolean;
82
82
  onViewMoreFailedStepClick(expanded: boolean): void;
83
- onSelfHealAction(event: {
84
- type: SelfHealAction;
85
- healedLocator: string;
86
- }): void;
83
+ onSelfHealAction(event: SelfHealActionEvent): void;
87
84
  onMakeCurrentBaseline(event: makeCurrentBaselineEvent): void;
88
85
  onUploadBaseline(event: uploadBaselineEvent): void;
89
86
  onAnalyze(): void;
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';
2
- import { ConditionStepConfig, ConditionBranch, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, SelfHealAction, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
2
+ import { ConditionStepConfig, ConditionBranch, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
3
3
  import { BaseStepComponent } from '../base-step.component';
4
4
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
5
5
  import * as i0 from "@angular/core";
@@ -66,7 +66,7 @@ export declare class ConditionStepComponent extends BaseStepComponent implements
66
66
  testStepResultId: string;
67
67
  }) => void;
68
68
  downloadingStepId: string | null;
69
- step?: ExecutionStepConfig;
69
+ step?: any;
70
70
  onBranchClickEvent: EventEmitter<ConditionBranch>;
71
71
  onExpand: EventEmitter<void>;
72
72
  isUploadingBaseline: {};
@@ -96,10 +96,7 @@ export declare class ConditionStepComponent extends BaseStepComponent implements
96
96
  onUploadBaseline(event: uploadBaselineEvent): void;
97
97
  onAnalyze(): void;
98
98
  onViewFullLogs(): void;
99
- onSelfHealAction(event: {
100
- type: SelfHealAction;
101
- healedLocator: string;
102
- }): void;
99
+ onSelfHealAction(event: SelfHealActionEvent): void;
103
100
  get showViewMoreButton(): boolean;
104
101
  toggleHeader(event?: Event): void;
105
102
  get hasExpandableContent(): boolean;
@@ -1,6 +1,6 @@
1
1
  import { OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
2
2
  import { BaseStepComponent } from '../base-step.component';
3
- import { DbVerificationStepConfig, DbTestResult, DbQueryResult, DbAssertionResult, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, SelfHealAction, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
3
+ import { DbVerificationStepConfig, DbTestResult, DbQueryResult, DbAssertionResult, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, ExecutionStepConfig, SelfHealActionEvent } from '../execution-step.models';
4
4
  import { DynamicTableColumn } from '../../table/dynamic-table/dynamic-table.component';
5
5
  import { EmptyStateConfig } from '../../empty-state/empty-state-config.interface';
6
6
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
@@ -32,7 +32,7 @@ export declare class DbVerificationStepComponent extends BaseStepComponent imple
32
32
  };
33
33
  onStepClickHandler?: (step: ExecutionStepConfig, event?: Event) => void;
34
34
  isLive: boolean;
35
- step?: ExecutionStepConfig;
35
+ step?: any;
36
36
  showFailedStepDetails: boolean;
37
37
  makeCurrentBaseline: EventEmitter<makeCurrentBaselineEvent>;
38
38
  uploadBaseline: EventEmitter<uploadBaselineEvent>;
@@ -92,10 +92,7 @@ export declare class DbVerificationStepComponent extends BaseStepComponent imple
92
92
  onUploadBaseline(event: uploadBaselineEvent): void;
93
93
  onAnalyze(): void;
94
94
  onViewFullLogs(): void;
95
- onSelfHealAction(event: {
96
- type: SelfHealAction;
97
- healedLocator: string;
98
- }): void;
95
+ onSelfHealAction(event: SelfHealActionEvent): void;
99
96
  static ɵfac: i0.ɵɵFactoryDeclaration<DbVerificationStepComponent, never>;
100
97
  static ɵcmp: i0.ɵɵComponentDeclaration<DbVerificationStepComponent, "cqa-db-verification-step", never, { "id": "id"; "testStepResultId": "testStepResultId"; "stepNumber": "stepNumber"; "title": "title"; "status": "status"; "duration": "duration"; "timingBreakdown": "timingBreakdown"; "expanded": "expanded"; "dbTestResult": "dbTestResult"; "dbConfig": "dbConfig"; "failureDetails": "failureDetails"; "reasoning": "reasoning"; "confidence": "confidence"; "stepDeleted": "stepDeleted"; "isUploadingBaseline": "isUploadingBaseline"; "isMakingCurrentBaseline": "isMakingCurrentBaseline"; "selfHealAnalysis": "selfHealAnalysis"; "getSelfHealLoadingStatesHandler": "getSelfHealLoadingStatesHandler"; "onStepClickHandler": "onStepClickHandler"; "isLive": "isLive"; "step": "step"; }, { "makeCurrentBaseline": "makeCurrentBaseline"; "uploadBaseline": "uploadBaseline"; "analyze": "analyze"; "viewFullLogs": "viewFullLogs"; "selfHealAction": "selfHealAction"; }, never, never>;
101
98
  }
@@ -72,8 +72,9 @@ export interface SelfHealAnalysisData {
72
72
  }
73
73
  export interface SelfHealActionEvent {
74
74
  type: SelfHealAction;
75
+ id: string;
75
76
  healedLocator: string;
76
- testStepId: number | undefined;
77
+ testStepId?: string;
77
78
  }
78
79
  export declare type SelfHealAction = 'accept' | 'reject' | 'modify-accept';
79
80
  export interface BasicStepConfig extends BaseStepConfig {
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
2
- import { LoopStepConfig, LoopIteration, ExecutionStepConfig, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, SelfHealAction, ConditionBranch, SelfHealActionEvent } from '../execution-step.models';
2
+ import { LoopStepConfig, LoopIteration, ExecutionStepConfig, StepStatus, TimingBreakdown, FailureDetails, SubStep, SelfHealAnalysisData, ConditionBranch, SelfHealActionEvent } from '../execution-step.models';
3
3
  import { BaseStepComponent } from '../base-step.component';
4
4
  import { makeCurrentBaselineEvent, uploadBaselineEvent } from '../visual-comparison/visual-comparison.component';
5
5
  import * as i0 from "@angular/core";
@@ -63,7 +63,7 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
63
63
  testStepResultId: string;
64
64
  }) => void;
65
65
  downloadingStepId: string | null;
66
- step?: ExecutionStepConfig;
66
+ step?: any;
67
67
  failureDetails?: FailureDetails;
68
68
  reasoning?: string[];
69
69
  confidence?: string;
@@ -105,10 +105,7 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
105
105
  onUploadBaseline(event: uploadBaselineEvent): void;
106
106
  onAnalyze(): void;
107
107
  onViewFullLogs(): void;
108
- onSelfHealAction(event: {
109
- type: SelfHealAction;
110
- healedLocator: string;
111
- }): void;
108
+ onSelfHealAction(event: SelfHealActionEvent): void;
112
109
  get showViewMoreButton(): boolean;
113
110
  toggleHeader(event?: Event): void;
114
111
  isNestedStepGroupWithChildren(step: ExecutionStepConfig): boolean;
@@ -1,22 +1,20 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
- import { SelfHealAnalysisData, SelfHealAction } from '../execution-step.models';
2
+ import { SelfHealAnalysisData, SelfHealActionEvent } from '../execution-step.models';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SelfHealAnalysisComponent implements OnInit {
5
+ id: string;
5
6
  originalLocator: string;
6
7
  healedLocator: string;
7
8
  confidence: number;
8
9
  healMethod: string;
9
10
  isLoadingAccept: boolean;
10
11
  isLoadingModifyAccept: boolean;
11
- action: EventEmitter<{
12
- type: SelfHealAction;
13
- healedLocator: string;
14
- }>;
12
+ action: EventEmitter<SelfHealActionEvent>;
15
13
  data: SelfHealAnalysisData;
16
14
  ngOnInit(): void;
17
15
  onAccept(): void;
18
16
  onReject(): void;
19
17
  onModifyAccept(): void;
20
18
  static ɵfac: i0.ɵɵFactoryDeclaration<SelfHealAnalysisComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<SelfHealAnalysisComponent, "cqa-self-heal-analysis", never, { "originalLocator": "originalLocator"; "healedLocator": "healedLocator"; "confidence": "confidence"; "healMethod": "healMethod"; "isLoadingAccept": "isLoadingAccept"; "isLoadingModifyAccept": "isLoadingModifyAccept"; }, { "action": "action"; }, never, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelfHealAnalysisComponent, "cqa-self-heal-analysis", never, { "id": "id"; "originalLocator": "originalLocator"; "healedLocator": "healedLocator"; "confidence": "confidence"; "healMethod": "healMethod"; "isLoadingAccept": "isLoadingAccept"; "isLoadingModifyAccept": "isLoadingModifyAccept"; }, { "action": "action"; }, never, never>;
22
20
  }
@@ -29,6 +29,7 @@ export declare class PaginationComponent {
29
29
  get computedTotalPages(): number;
30
30
  getStartItem(): number;
31
31
  getEndItem(): number;
32
+ get showRangeAndControls(): boolean;
32
33
  togglePageSizeMenu(): void;
33
34
  onDocumentClick(event: MouseEvent): void;
34
35
  selectPageSize(size: number): void;
@@ -14,6 +14,7 @@ export declare class SegmentControlComponent implements OnChanges, AfterViewInit
14
14
  */
15
15
  value?: string;
16
16
  disabled: boolean;
17
+ containerBgColor: string;
17
18
  valueChange: EventEmitter<string>;
18
19
  segmentButtons: QueryList<ElementRef<HTMLButtonElement>>;
19
20
  segmentContainer?: ElementRef<HTMLDivElement>;
@@ -41,6 +42,6 @@ export declare class SegmentControlComponent implements OnChanges, AfterViewInit
41
42
  private updateIndicator;
42
43
  get isIndicatorVisible(): boolean;
43
44
  static ɵfac: i0.ɵɵFactoryDeclaration<SegmentControlComponent, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<SegmentControlComponent, "cqa-segment-control", never, { "segments": "segments"; "value": "value"; "disabled": "disabled"; }, { "valueChange": "valueChange"; }, never, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<SegmentControlComponent, "cqa-segment-control", never, { "segments": "segments"; "value": "value"; "disabled": "disabled"; "containerBgColor": "containerBgColor"; }, { "valueChange": "valueChange"; }, never, never>;
45
46
  }
46
47
  export {};
@@ -49,8 +49,10 @@ export declare class SimulatorComponent implements AfterViewInit, OnDestroy, OnC
49
49
  isFullScreen: boolean;
50
50
  currentView: string;
51
51
  currentVideoIndex: number;
52
+ currentSpeed: string;
52
53
  get hasDeviceFrame(): boolean;
53
54
  segments: SegmentOption[];
55
+ speedSegments: SegmentOption[];
54
56
  private videoEventListenerCleanup;
55
57
  private lastSetDuration;
56
58
  private dragMouseMoveHandler;
@@ -108,6 +110,7 @@ export declare class SimulatorComponent implements AfterViewInit, OnDestroy, OnC
108
110
  private updateSafeTraceUrl;
109
111
  onTraceViewerLoad(): void;
110
112
  onTraceViewerError(): void;
113
+ onSpeedChange(value: string): void;
111
114
  private updateSegments;
112
115
  private onVideoElementReady;
113
116
  static ɵfac: i0.ɵɵFactoryDeclaration<SimulatorComponent, never>;
@@ -0,0 +1,31 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { AiVerifyStepConfig } from '../test-case-step.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TestCaseAiVerifyStepComponent implements OnInit {
5
+ config: AiVerifyStepConfig;
6
+ stepNumber: number | string;
7
+ instructions: string;
8
+ description?: string;
9
+ selected: boolean;
10
+ disabled: boolean;
11
+ isNested: boolean;
12
+ isInsideLoop: boolean;
13
+ isReorder: boolean;
14
+ edit: EventEmitter<void>;
15
+ link: EventEmitter<void>;
16
+ duplicate: EventEmitter<void>;
17
+ delete: EventEmitter<void>;
18
+ moreOptions: EventEmitter<void>;
19
+ viewDetails: EventEmitter<void>;
20
+ selectionChange: EventEmitter<boolean>;
21
+ ngOnInit(): void;
22
+ onEdit(): void;
23
+ onLink(): void;
24
+ onDuplicate(): void;
25
+ onDelete(): void;
26
+ onMoreOptions(): void;
27
+ onViewDetails(): void;
28
+ onSelectionChange(checked: boolean): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseAiVerifyStepComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseAiVerifyStepComponent, "cqa-test-case-ai-verify-step", never, { "config": "config"; "stepNumber": "stepNumber"; "instructions": "instructions"; "description": "description"; "selected": "selected"; "disabled": "disabled"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; }, { "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "viewDetails": "viewDetails"; "selectionChange": "selectionChange"; }, never, never>;
31
+ }
@@ -66,8 +66,14 @@ export declare class TestCaseLoopStepComponent implements OnInit {
66
66
  private buildSelectConfigs;
67
67
  onEditFormFieldChange(controlName: string, value: string | number): void;
68
68
  getLoopTypeLabel(): string;
69
+ isWhileLoop(): boolean;
70
+ isForLoop(): boolean;
69
71
  getEndLabel(): string;
70
72
  getStepsSummary(): string;
73
+ getStartStepLabel(): string;
74
+ getEndStepLabel(): string;
75
+ getTestDataProfileLabel(): string;
76
+ getConditionDisplay(): string;
71
77
  onToggleExpanded(): void;
72
78
  onTestDataProfileChange(value: string): void;
73
79
  onStartStepChange(value: number): void;
@@ -29,6 +29,11 @@ export declare class TestCaseNormalStepComponent implements OnInit {
29
29
  getCurrentEventTypeConfig(): EventTypeConfig;
30
30
  getActionDescription(): string;
31
31
  getActionSuffix(): string;
32
+ /**
33
+ * Get the URL parameter for navigate steps (old UI style - show only URL)
34
+ * Returns the first parameter with name 'url' or 'URL', or the first parameter if none found
35
+ */
36
+ getNavigateUrlParameter(): StepParameter | null;
32
37
  onEventTypeSelect(eventType: TestCaseEventType): void;
33
38
  onParameterChange(parameter: StepParameter, value: string): void;
34
39
  onEdit(): void;
@@ -0,0 +1,31 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { RestoreSessionStepConfig } from '../test-case-step.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TestCaseRestoreSessionStepComponent implements OnInit {
5
+ config: RestoreSessionStepConfig;
6
+ stepNumber: number | string;
7
+ action?: string;
8
+ selected: boolean;
9
+ disabled: boolean;
10
+ isNested: boolean;
11
+ isInsideLoop: boolean;
12
+ isReorder: boolean;
13
+ edit: EventEmitter<void>;
14
+ link: EventEmitter<void>;
15
+ duplicate: EventEmitter<void>;
16
+ delete: EventEmitter<void>;
17
+ moreOptions: EventEmitter<void>;
18
+ viewDetails: EventEmitter<void>;
19
+ selectionChange: EventEmitter<boolean>;
20
+ ngOnInit(): void;
21
+ getRestoreSessionDescription(): string;
22
+ onEdit(): void;
23
+ onLink(): void;
24
+ onDuplicate(): void;
25
+ onDelete(): void;
26
+ onMoreOptions(): void;
27
+ onViewDetails(): void;
28
+ onSelectionChange(checked: boolean): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseRestoreSessionStepComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseRestoreSessionStepComponent, "cqa-test-case-restore-session-step", never, { "config": "config"; "stepNumber": "stepNumber"; "action": "action"; "selected": "selected"; "disabled": "disabled"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; }, { "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "viewDetails": "viewDetails"; "selectionChange": "selectionChange"; }, never, never>;
31
+ }
@@ -0,0 +1,41 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { ScrollStepConfig } from '../test-case-step.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TestCaseScrollStepComponent implements OnInit {
5
+ config: ScrollStepConfig;
6
+ stepNumber: number | string;
7
+ selector: string;
8
+ direction?: 'top' | 'bottom' | 'up' | 'down' | 'left' | 'right';
9
+ description?: string;
10
+ selected: boolean;
11
+ disabled: boolean;
12
+ isNested: boolean;
13
+ isInsideLoop: boolean;
14
+ expanded: boolean;
15
+ isReorder: boolean;
16
+ edit: EventEmitter<void>;
17
+ link: EventEmitter<void>;
18
+ duplicate: EventEmitter<void>;
19
+ delete: EventEmitter<void>;
20
+ viewDetails: EventEmitter<void>;
21
+ selectionChange: EventEmitter<boolean>;
22
+ toggleExpanded: EventEmitter<{
23
+ config: ScrollStepConfig;
24
+ expanded: boolean;
25
+ }>;
26
+ selectorChange: EventEmitter<string>;
27
+ directionChange: EventEmitter<"left" | "right" | "top" | "down" | "up" | "bottom">;
28
+ ngOnInit(): void;
29
+ getDisplayText(): string;
30
+ onToggleExpanded(): void;
31
+ onEdit(): void;
32
+ onLink(): void;
33
+ onDuplicate(): void;
34
+ onDelete(): void;
35
+ onViewDetails(): void;
36
+ onSelectionChange(checked: boolean): void;
37
+ onSelectorChange(value: string): void;
38
+ onDirectionChange(value: 'top' | 'bottom' | 'up' | 'down' | 'left' | 'right'): void;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseScrollStepComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseScrollStepComponent, "cqa-test-case-scroll-step", never, { "config": "config"; "stepNumber": "stepNumber"; "selector": "selector"; "direction": "direction"; "description": "description"; "selected": "selected"; "disabled": "disabled"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "expanded": "expanded"; "isReorder": "isReorder"; }, { "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "viewDetails": "viewDetails"; "selectionChange": "selectionChange"; "toggleExpanded": "toggleExpanded"; "selectorChange": "selectorChange"; "directionChange": "directionChange"; }, never, never>;
41
+ }
@@ -15,6 +15,7 @@ export declare class TestCaseStepGroupComponent implements OnInit, OnChanges, Do
15
15
  isNested: boolean;
16
16
  isInsideLoop: boolean;
17
17
  isReorder: boolean;
18
+ loading: boolean;
18
19
  private previousNestedStepsLength;
19
20
  private previousNestedStepsReference;
20
21
  constructor(cdr: ChangeDetectorRef);
@@ -73,5 +74,5 @@ export declare class TestCaseStepGroupComponent implements OnInit, OnChanges, Do
73
74
  onNestedConditionAddBranch(nestedStep: ConditionStepConfig, index: number): void;
74
75
  onNestedConditionDeleteBranch(nestedStep: ConditionStepConfig, branch: any, index: number): void;
75
76
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseStepGroupComponent, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseStepGroupComponent, "cqa-test-case-step-group", never, { "config": "config"; "id": "id"; "stepNumber": "stepNumber"; "groupName": "groupName"; "description": "description"; "reusable": "reusable"; "nestedSteps": "nestedSteps"; "expanded": "expanded"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; }, { "toggleExpanded": "toggleExpanded"; "groupNameChange": "groupNameChange"; "descriptionChange": "descriptionChange"; "reusableChange": "reusableChange"; "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "openExternal": "openExternal"; "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "dndDropInZone": "dndDropInZone"; }, never, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseStepGroupComponent, "cqa-test-case-step-group", never, { "config": "config"; "id": "id"; "stepNumber": "stepNumber"; "groupName": "groupName"; "description": "description"; "reusable": "reusable"; "nestedSteps": "nestedSteps"; "expanded": "expanded"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; "loading": "loading"; }, { "toggleExpanded": "toggleExpanded"; "groupNameChange": "groupNameChange"; "descriptionChange": "descriptionChange"; "reusableChange": "reusableChange"; "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "openExternal": "openExternal"; "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "dndDropInZone": "dndDropInZone"; }, never, never>;
77
78
  }
@@ -8,8 +8,12 @@ export interface TestCaseStepComponentMap {
8
8
  apiStep: Type<unknown>;
9
9
  databaseStep: Type<unknown>;
10
10
  aiAgentStep: Type<unknown>;
11
+ aiVerifyStep: Type<unknown>;
11
12
  uploadStep: Type<unknown>;
12
13
  screenshotStep: Type<unknown>;
14
+ scrollStep: Type<unknown>;
15
+ verifyUrlStep: Type<unknown>;
16
+ restoreSessionStep: Type<unknown>;
13
17
  customCodeStep: Type<unknown>;
14
18
  }
15
19
  export declare const TEST_CASE_STEP_COMPONENT_MAP: InjectionToken<TestCaseStepComponentMap>;
@@ -1,21 +1,25 @@
1
1
  /**
2
2
  * Models and interfaces for test case details step components
3
3
  */
4
- export declare type TestCaseEventType = 'navigate' | 'custom' | 'ai-agent' | 'type' | 'click' | 'verify' | 'wait';
4
+ export declare type TestCaseEventType = 'navigate' | 'custom' | 'ai-agent' | 'type' | 'click' | 'doubleClick' | 'pressEnter' | 'enter' | 'verify' | 'wait';
5
5
  export declare enum StepTypes {
6
6
  NORMAL = "NORMAL",
7
7
  API = "API",
8
8
  DATABASE = "DATABASE",
9
9
  AI_AGENT = "AI_AGENT",
10
+ AI_VERIFY = "AI_VERIFY",
10
11
  UPLOAD = "UPLOAD",
11
12
  SCREENSHOT = "SCREENSHOT",
13
+ VERIFY_URL = "VERIFY_URL",
14
+ RESTORE_SESSION = "RESTORE_SESSION",
12
15
  CUSTOM_CODE = "CUSTOM_CODE",
13
16
  FOR_LOOP = "FOR_LOOP",
14
17
  WHILE_LOOP = "WHILE_LOOP",
15
18
  BREAK_LOOP = "BREAK_LOOP",
16
19
  CONTINUE_LOOP = "CONTINUE_LOOP",
17
20
  CONDITION_IF = "CONDITION_IF",
18
- STEP_GROUP = "STEP_GROUP"
21
+ STEP_GROUP = "STEP_GROUP",
22
+ SCROLL = "SCROLL"
19
23
  }
20
24
  export interface EventTypeConfig {
21
25
  type: TestCaseEventType;
@@ -70,6 +74,11 @@ export interface AiAgentStepConfig extends BaseStepConfig {
70
74
  stepType: StepTypes.AI_AGENT;
71
75
  instructions: string;
72
76
  }
77
+ /** AI Verify Step Configuration */
78
+ export interface AiVerifyStepConfig extends BaseStepConfig {
79
+ stepType: StepTypes.AI_VERIFY;
80
+ instructions: string;
81
+ }
73
82
  /** Upload Step Configuration */
74
83
  export interface UploadStepConfig extends BaseStepConfig {
75
84
  stepType: StepTypes.UPLOAD;
@@ -85,6 +94,24 @@ export interface ScreenshotStepConfig extends BaseStepConfig {
85
94
  fullPage?: boolean;
86
95
  selector?: string;
87
96
  }
97
+ /** Scroll Step Configuration */
98
+ export interface ScrollStepConfig extends BaseStepConfig {
99
+ stepType: StepTypes.SCROLL;
100
+ selector: string;
101
+ direction?: 'top' | 'bottom' | 'up' | 'down' | 'left' | 'right';
102
+ description?: string;
103
+ }
104
+ /** Verify URL Step Configuration */
105
+ export interface VerifyUrlStepConfig extends BaseStepConfig {
106
+ stepType: StepTypes.VERIFY_URL;
107
+ action?: string;
108
+ url?: string;
109
+ }
110
+ /** Restore Session Step Configuration */
111
+ export interface RestoreSessionStepConfig extends BaseStepConfig {
112
+ stepType: StepTypes.RESTORE_SESSION;
113
+ action?: string;
114
+ }
88
115
  /** Custom Code Step Configuration */
89
116
  export interface CustomCodeStepConfig extends BaseStepConfig {
90
117
  stepType: StepTypes.CUSTOM_CODE;
@@ -105,6 +132,7 @@ export interface ConditionBranch {
105
132
  type: 'if' | 'else' | 'else-if';
106
133
  stepType: StepTypes.CONDITION_IF;
107
134
  label: string;
135
+ action?: string;
108
136
  nestedSteps: TestCaseStepConfig[];
109
137
  }
110
138
  export interface ConditionStepConfig extends BaseStepConfig {
@@ -118,8 +146,9 @@ export interface StepGroupConfig extends BaseStepConfig {
118
146
  reusable?: boolean;
119
147
  stepType: StepTypes.STEP_GROUP;
120
148
  nestedSteps: TestCaseStepConfig[];
149
+ loading?: boolean;
121
150
  }
122
- export declare type TestCaseStepConfig = NormalStepConfig | LoopStepConfig | ConditionStepConfig | StepGroupConfig | ApiStepConfig | DatabaseStepConfig | AiAgentStepConfig | UploadStepConfig | ScreenshotStepConfig | CustomCodeStepConfig;
151
+ export declare type TestCaseStepConfig = NormalStepConfig | LoopStepConfig | ConditionStepConfig | StepGroupConfig | ApiStepConfig | DatabaseStepConfig | AiAgentStepConfig | AiVerifyStepConfig | UploadStepConfig | ScreenshotStepConfig | ScrollStepConfig | VerifyUrlStepConfig | RestoreSessionStepConfig | CustomCodeStepConfig;
123
152
  /** Type guards for dispatching step type (e.g. in test-case-details-renderer) */
124
153
  export declare function isNormalStepConfig(step: TestCaseStepConfig): step is NormalStepConfig;
125
154
  export declare function isLoopStepConfig(step: TestCaseStepConfig): step is LoopStepConfig;
@@ -128,6 +157,10 @@ export declare function isStepGroupConfig(step: TestCaseStepConfig): step is Ste
128
157
  export declare function isApiStepConfig(step: TestCaseStepConfig): step is ApiStepConfig;
129
158
  export declare function isDatabaseStepConfig(step: TestCaseStepConfig): step is DatabaseStepConfig;
130
159
  export declare function isAiAgentStepConfig(step: TestCaseStepConfig): step is AiAgentStepConfig;
160
+ export declare function isAiVerifyStepConfig(step: TestCaseStepConfig): step is AiVerifyStepConfig;
131
161
  export declare function isUploadStepConfig(step: TestCaseStepConfig): step is UploadStepConfig;
132
162
  export declare function isScreenshotStepConfig(step: TestCaseStepConfig): step is ScreenshotStepConfig;
163
+ export declare function isScrollStepConfig(step: TestCaseStepConfig): step is ScrollStepConfig;
164
+ export declare function isVerifyUrlStepConfig(step: TestCaseStepConfig): step is VerifyUrlStepConfig;
165
+ export declare function isRestoreSessionStepConfig(step: TestCaseStepConfig): step is RestoreSessionStepConfig;
133
166
  export declare function isCustomCodeStepConfig(step: TestCaseStepConfig): step is CustomCodeStepConfig;
@@ -0,0 +1,32 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { VerifyUrlStepConfig } from '../test-case-step.models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class TestCaseVerifyUrlStepComponent implements OnInit {
5
+ config: VerifyUrlStepConfig;
6
+ stepNumber: number | string;
7
+ action?: string;
8
+ url?: string;
9
+ selected: boolean;
10
+ disabled: boolean;
11
+ isNested: boolean;
12
+ isInsideLoop: boolean;
13
+ isReorder: boolean;
14
+ edit: EventEmitter<void>;
15
+ link: EventEmitter<void>;
16
+ duplicate: EventEmitter<void>;
17
+ delete: EventEmitter<void>;
18
+ moreOptions: EventEmitter<void>;
19
+ viewDetails: EventEmitter<void>;
20
+ selectionChange: EventEmitter<boolean>;
21
+ ngOnInit(): void;
22
+ getVerifyUrlDescription(): string;
23
+ onEdit(): void;
24
+ onLink(): void;
25
+ onDuplicate(): void;
26
+ onDelete(): void;
27
+ onMoreOptions(): void;
28
+ onViewDetails(): void;
29
+ onSelectionChange(checked: boolean): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseVerifyUrlStepComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseVerifyUrlStepComponent, "cqa-test-case-verify-url-step", never, { "config": "config"; "stepNumber": "stepNumber"; "action": "action"; "url": "url"; "selected": "selected"; "disabled": "disabled"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; }, { "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "viewDetails": "viewDetails"; "selectionChange": "selectionChange"; }, never, never>;
32
+ }