@cqa-lib/cqa-ui 1.1.272 → 1.1.274
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +3 -1
- package/esm2020/lib/execution-screen/loop-step/loop-step.component.mjs +17 -31
- package/esm2020/lib/execution-screen/session-changes-modal/session-changes-modal.component.mjs +7 -4
- package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +2 -2
- package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +4 -74
- package/esm2020/lib/step-builder/step-builder-document/step-builder-document.component.mjs +11 -4
- package/esm2020/lib/table-action-toolbar/table-action-toolbar.component.mjs +11 -1
- package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +76 -15
- package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +43 -4
- package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +3 -3
- package/esm2020/lib/test-case-details/test-case-step.models.mjs +1 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +176 -137
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +167 -129
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/loop-step/loop-step.component.d.ts +1 -5
- package/lib/execution-screen/session-changes-modal/session-changes-modal.component.d.ts +3 -2
- package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +0 -4
- package/lib/step-builder/step-builder-document/step-builder-document.component.d.ts +5 -1
- package/lib/table-action-toolbar/table-action-toolbar.component.d.ts +3 -0
- package/lib/test-case-details/condition-step/condition-step.component.d.ts +28 -2
- package/lib/test-case-details/loop-step/loop-step.component.d.ts +5 -0
- package/lib/test-case-details/test-case-step.models.d.ts +2 -0
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -113,8 +113,6 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
|
|
|
113
113
|
private userSelectedIterationId;
|
|
114
114
|
private previousStatus?;
|
|
115
115
|
private userManuallyClosed;
|
|
116
|
-
/** Tracks the array length seen last cycle so in-place pushes are detected without a reference change. */
|
|
117
|
-
private lastNestedStepsLength;
|
|
118
116
|
loadingSteps: Set<string>;
|
|
119
117
|
processedSubSteps: any[];
|
|
120
118
|
private lastProcessedIndex;
|
|
@@ -124,7 +122,6 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
|
|
|
124
122
|
processedSubStepsForRunResult: any[];
|
|
125
123
|
ngOnInit(): void;
|
|
126
124
|
ngOnChanges(changes: SimpleChanges): void;
|
|
127
|
-
ngDoCheck(): void;
|
|
128
125
|
private autoExpand;
|
|
129
126
|
get hasSubSteps(): boolean;
|
|
130
127
|
toggle(): void;
|
|
@@ -149,8 +146,6 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
|
|
|
149
146
|
onAddStepOptionSelect(option: AddStepMenuOption, event: Event): void;
|
|
150
147
|
onStepMoreOptionSelect(option: StepMoreMenuOption, event: Event): void;
|
|
151
148
|
toggleHeader(event?: Event): void;
|
|
152
|
-
/** trackBy for the nested-steps *ngFor — keeps existing views alive when a step gets a new object reference. */
|
|
153
|
-
trackNestedStep(_index: number, step: any): any;
|
|
154
149
|
isNestedStepGroupWithChildren(step: ExecutionStepConfig): boolean;
|
|
155
150
|
getGroupName(step: ExecutionStepConfig): string;
|
|
156
151
|
getSteps(step: ExecutionStepConfig): ExecutionStepConfig[];
|
|
@@ -182,6 +177,7 @@ export declare class LoopStepComponent extends BaseStepComponent implements OnIn
|
|
|
182
177
|
getLoopShowViewAllIterations(step: ExecutionStepConfig): boolean | undefined;
|
|
183
178
|
isStepLoading(): boolean;
|
|
184
179
|
onJumpToTimestamp(event: Event): void;
|
|
180
|
+
ngDoCheck(): void;
|
|
185
181
|
ngOnDestroy(): void;
|
|
186
182
|
private processLiveSubSteps;
|
|
187
183
|
private resetLiveProcessing;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare type SessionChangeType = 'added' | 'edited';
|
|
3
|
+
export declare type SessionChangeType = 'added' | 'edited' | 'deleted';
|
|
4
4
|
export interface SessionChangeStep {
|
|
5
5
|
id: string;
|
|
6
6
|
description: string;
|
|
@@ -12,6 +12,7 @@ export declare class SessionChangesModalComponent {
|
|
|
12
12
|
title: string;
|
|
13
13
|
addedSteps: SessionChangeStep[];
|
|
14
14
|
editedSteps: SessionChangeStep[];
|
|
15
|
+
deletedSteps: SessionChangeStep[];
|
|
15
16
|
saveButtonLabel: string;
|
|
16
17
|
saveButtonDisabled: boolean;
|
|
17
18
|
commitMessageTemplate: string;
|
|
@@ -30,5 +31,5 @@ export declare class SessionChangesModalComponent {
|
|
|
30
31
|
onEscape(): void;
|
|
31
32
|
trackByStepId(_index: number, step: SessionChangeStep): string;
|
|
32
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<SessionChangesModalComponent, never>;
|
|
33
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SessionChangesModalComponent, "cqa-session-changes-modal", never, { "isOpen": "isOpen"; "title": "title"; "addedSteps": "addedSteps"; "editedSteps": "editedSteps"; "saveButtonLabel": "saveButtonLabel"; "saveButtonDisabled": "saveButtonDisabled"; "commitMessageTemplate": "commitMessageTemplate"; }, { "closeModal": "closeModal"; "saveToTestCase": "saveToTestCase"; "removeStep": "removeStep"; }, never, never>;
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SessionChangesModalComponent, "cqa-session-changes-modal", never, { "isOpen": "isOpen"; "title": "title"; "addedSteps": "addedSteps"; "editedSteps": "editedSteps"; "deletedSteps": "deletedSteps"; "saveButtonLabel": "saveButtonLabel"; "saveButtonDisabled": "saveButtonDisabled"; "commitMessageTemplate": "commitMessageTemplate"; }, { "closeModal": "closeModal"; "saveToTestCase": "saveToTestCase"; "removeStep": "removeStep"; }, never, never>;
|
|
34
35
|
}
|
|
@@ -104,10 +104,6 @@ export declare class StepRendererComponent implements OnChanges, AfterViewInit,
|
|
|
104
104
|
private lastStepId;
|
|
105
105
|
private lastStepType;
|
|
106
106
|
private previousStepKey;
|
|
107
|
-
/** Tracks the last status seen during live execution so in-place mutations are detected in ngDoCheck. */
|
|
108
|
-
private lastTrackedStatus;
|
|
109
|
-
/** Tracks editable property values in debug mode so in-place mutations after dialog saves are propagated. */
|
|
110
|
-
private lastTrackedEditProps;
|
|
111
107
|
constructor(componentMap: Map<string, Type<any>>, cdr: ChangeDetectorRef);
|
|
112
108
|
ngOnChanges(changes: SimpleChanges): void;
|
|
113
109
|
ngAfterViewInit(): void;
|
|
@@ -16,6 +16,8 @@ export interface DocumentFormData {
|
|
|
16
16
|
seprator?: string;
|
|
17
17
|
delimeter?: string;
|
|
18
18
|
fileFormatHeader?: string;
|
|
19
|
+
/** Description for the document generation step */
|
|
20
|
+
description?: string;
|
|
19
21
|
templateSource: TemplateSourceType;
|
|
20
22
|
templateId?: string;
|
|
21
23
|
/** Uploaded template file when templateSource is 'upload' */
|
|
@@ -69,6 +71,8 @@ export declare class StepBuilderDocumentComponent implements OnInit, OnChanges {
|
|
|
69
71
|
initialDelimeter?: string;
|
|
70
72
|
/** Initial file format header for edit mode */
|
|
71
73
|
initialFileFormatHeader?: string;
|
|
74
|
+
/** Initial description for edit mode */
|
|
75
|
+
initialDescription?: string;
|
|
72
76
|
/** Whether in edit mode */
|
|
73
77
|
editMode?: boolean;
|
|
74
78
|
/** Whether the help tooltip is visible */
|
|
@@ -126,5 +130,5 @@ export declare class StepBuilderDocumentComponent implements OnInit, OnChanges {
|
|
|
126
130
|
onCreateStep(): void;
|
|
127
131
|
onMapperHelpClick(event: Event): void;
|
|
128
132
|
static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderDocumentComponent, never>;
|
|
129
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderDocumentComponent, "cqa-step-builder-document", never, { "documentTypeOptions": "documentTypeOptions"; "templateOptions": "templateOptions"; "valueTypeOptions": "valueTypeOptions"; "delimeterTypeOptions": "delimeterTypeOptions"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "template": "template"; "testStep": "testStep"; "mapperHelpUrl": "mapperHelpUrl"; "mapperHelpTooltipText": "mapperHelpTooltipText"; "initialDocumentType": "initialDocumentType"; "initialOutputVariable": "initialOutputVariable"; "initialTemplateSource": "initialTemplateSource"; "initialTemplateId": "initialTemplateId"; "initialTemplateName": "initialTemplateName"; "initialTemplateDescription": "initialTemplateDescription"; "initialMappings": "initialMappings"; "initialFileName": "initialFileName"; "initialSeprator": "initialSeprator"; "initialDelimeter": "initialDelimeter"; "initialFileFormatHeader": "initialFileFormatHeader"; "editMode": "editMode"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "createTemplate": "createTemplate"; }, never, never>;
|
|
133
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderDocumentComponent, "cqa-step-builder-document", never, { "documentTypeOptions": "documentTypeOptions"; "templateOptions": "templateOptions"; "valueTypeOptions": "valueTypeOptions"; "delimeterTypeOptions": "delimeterTypeOptions"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "template": "template"; "testStep": "testStep"; "mapperHelpUrl": "mapperHelpUrl"; "mapperHelpTooltipText": "mapperHelpTooltipText"; "initialDocumentType": "initialDocumentType"; "initialOutputVariable": "initialOutputVariable"; "initialTemplateSource": "initialTemplateSource"; "initialTemplateId": "initialTemplateId"; "initialTemplateName": "initialTemplateName"; "initialTemplateDescription": "initialTemplateDescription"; "initialMappings": "initialMappings"; "initialFileName": "initialFileName"; "initialSeprator": "initialSeprator"; "initialDelimeter": "initialDelimeter"; "initialFileFormatHeader": "initialFileFormatHeader"; "initialDescription": "initialDescription"; "editMode": "editMode"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "createTemplate": "createTemplate"; }, never, never>;
|
|
130
134
|
}
|
|
@@ -35,6 +35,9 @@ export declare class TableActionToolbarComponent {
|
|
|
35
35
|
}>;
|
|
36
36
|
selectAllChange: EventEmitter<boolean>;
|
|
37
37
|
dismiss: EventEmitter<void>;
|
|
38
|
+
/** Cooldown ms to prevent double-click from firing the same action twice */
|
|
39
|
+
private lastActionEmit;
|
|
40
|
+
private static readonly ACTION_COOLDOWN_MS;
|
|
38
41
|
get hasSelection(): boolean;
|
|
39
42
|
get isSingleSelection(): boolean;
|
|
40
43
|
get selectionLabel(): string;
|
|
@@ -36,8 +36,12 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
|
|
|
36
36
|
addStepBetweenBelow: boolean;
|
|
37
37
|
/** @deprecated Use addStepBetweenAbove and addStepBetweenBelow instead. If set, applies to both buttons. */
|
|
38
38
|
addStepBetween: boolean;
|
|
39
|
-
/** When
|
|
40
|
-
|
|
39
|
+
/** When non-null, edit mode is open: 'stepRow' = edit UI in step row only, 'branchRow' = edit UI in branch row only */
|
|
40
|
+
editContext: 'stepRow' | 'branchRow' | null;
|
|
41
|
+
/** Which branch index is being edited when editContext === 'branchRow' (0 = IF TRUE, 1+ = ELSE IF) */
|
|
42
|
+
editingBranchIndex: number;
|
|
43
|
+
/** True when editContext is set (either step row or branch row edit). */
|
|
44
|
+
get isEditing(): boolean;
|
|
41
45
|
/** Array of ELSE IF branches in edit mode */
|
|
42
46
|
elseIfBranches: Array<{
|
|
43
47
|
id: string;
|
|
@@ -159,6 +163,13 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
|
|
|
159
163
|
private buildConditionFromForm;
|
|
160
164
|
onEditFormFieldChange(controlName: string, value: string): void;
|
|
161
165
|
getStepsSummary(): string;
|
|
166
|
+
/** Branch type badges for step row: IF, ELSE IF (with count if multiple), ELSE */
|
|
167
|
+
getBranchTypeBadges(): {
|
|
168
|
+
label: string;
|
|
169
|
+
count?: number;
|
|
170
|
+
type: 'if' | 'else-if' | 'else';
|
|
171
|
+
badgeClass: string;
|
|
172
|
+
}[];
|
|
162
173
|
/** Event key-value pairs for display, excluding customEvent */
|
|
163
174
|
getEventDetailsForDisplay(): {
|
|
164
175
|
key: string;
|
|
@@ -193,11 +204,26 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
|
|
|
193
204
|
isConditionStep(step: TestCaseStepConfig): step is ConditionStepConfig;
|
|
194
205
|
isStepGroup(step: TestCaseStepConfig): step is StepGroupConfig;
|
|
195
206
|
getBranchLabel(branch: ConditionBranch): string;
|
|
207
|
+
/** Condition text for branch header display: IF uses main condition, ELSE IF/ELSE use branch.action */
|
|
208
|
+
getBranchConditionDisplay(branch: ConditionBranch): string;
|
|
209
|
+
/** Start marker label for each branch: START IF, START ELSE IF, or START ELSE */
|
|
210
|
+
getStartBranchLabel(branch: ConditionBranch): string;
|
|
211
|
+
/** End marker label for each branch: END IF, END ELSE IF, or END ELSE */
|
|
212
|
+
getEndBranchLabel(branch: ConditionBranch): string;
|
|
196
213
|
/** Branch display number: condition step number + branch index (e.g. step 3 → branches 3, 4, 5 to match nested 3.1, 4.1, 5.1). */
|
|
197
214
|
getBranchDisplayNumber(branchIndex: number): number;
|
|
198
215
|
getBranchColorClass(branch: ConditionBranch): string;
|
|
199
216
|
getBranchTextColor(branch: ConditionBranch): string;
|
|
217
|
+
/** True when condition already has an ELSE branch (disables Add ELSE IF / Add ELSE). */
|
|
218
|
+
get hasElseBranch(): boolean;
|
|
200
219
|
onOpenExternal(): void;
|
|
220
|
+
/** Shared init for edit mode; then call onEditFromStepRow or onEditFromBranchRow to set context. */
|
|
221
|
+
private initEditForm;
|
|
222
|
+
/** Edit from step row: edit UI appears in the step row only (first branch stays read-only). */
|
|
223
|
+
onEditFromStepRow(): void;
|
|
224
|
+
/** Edit from branch row: edit UI appears in that branch row (IF TRUE or ELSE IF). */
|
|
225
|
+
onEditFromBranchRow(branchIndex?: number): void;
|
|
226
|
+
/** @deprecated Use onEditFromStepRow or onEditFromBranchRow. Kept for compatibility. */
|
|
201
227
|
onEdit(): void;
|
|
202
228
|
onEditCancel(): void;
|
|
203
229
|
/**
|
|
@@ -176,6 +176,7 @@ export declare class TestCaseLoopStepComponent implements OnInit, OnChanges {
|
|
|
176
176
|
getLoopTypeLabel(): string;
|
|
177
177
|
isWhileLoop(): boolean;
|
|
178
178
|
isForLoop(): boolean;
|
|
179
|
+
getStartLabel(): string;
|
|
179
180
|
getEndLabel(): string;
|
|
180
181
|
/** Resolve display start index: prefer forLoopStartIndex from step (or dataMapJson/dataMapBean), else startStep, else from nested steps */
|
|
181
182
|
private getDisplayStartIndex;
|
|
@@ -197,6 +198,10 @@ export declare class TestCaseLoopStepComponent implements OnInit, OnChanges {
|
|
|
197
198
|
getStartStepLabel(): string;
|
|
198
199
|
getEndStepLabel(): string;
|
|
199
200
|
getTestDataProfileLabel(): string;
|
|
201
|
+
/** Combined display for for loop with HTML badges - supports test_data badges like condition step */
|
|
202
|
+
getForLoopDisplay(): string;
|
|
203
|
+
private escapeForLoopHtml;
|
|
204
|
+
/** Full display for while loop: "While element ".selector" exists (max N iterations)" - supports HTML badges via innerHTML */
|
|
200
205
|
getConditionDisplay(): string;
|
|
201
206
|
onToggleExpanded(): void;
|
|
202
207
|
onTestDataProfileChange(value: string): void;
|
|
@@ -140,6 +140,8 @@ export interface LoopStepConfig extends BaseStepConfig {
|
|
|
140
140
|
forLoopStartIndex?: number;
|
|
141
141
|
forLoopEndIndex?: number;
|
|
142
142
|
forLoopTestDataId?: number;
|
|
143
|
+
/** FOR loop: optional HTML string for display (e.g. with test_data badges). When set, used instead of building from values. */
|
|
144
|
+
forLoopDisplayHtml?: string;
|
|
143
145
|
nestedSteps: TestCaseStepConfig[];
|
|
144
146
|
childId?: string;
|
|
145
147
|
}
|