@cqa-lib/cqa-ui 1.1.267 → 1.1.269

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 (28) hide show
  1. package/esm2020/lib/autocomplete/autocomplete.component.mjs +3 -3
  2. package/esm2020/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.mjs +31 -4
  3. package/esm2020/lib/test-case-details/ai-agent-step/ai-agent-step.component.mjs +3 -3
  4. package/esm2020/lib/test-case-details/ai-verify-step/ai-verify-step.component.mjs +3 -3
  5. package/esm2020/lib/test-case-details/api-step/api-step.component.mjs +3 -3
  6. package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +29 -3
  7. package/esm2020/lib/test-case-details/custom-code-step/custom-code-step.component.mjs +3 -3
  8. package/esm2020/lib/test-case-details/database-step/database-step.component.mjs +3 -3
  9. package/esm2020/lib/test-case-details/delete-steps/delete-steps.component.mjs +8 -3
  10. package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +34 -3
  11. package/esm2020/lib/test-case-details/normal-step/normal-step.component.mjs +3 -3
  12. package/esm2020/lib/test-case-details/restore-session-step/restore-session-step.component.mjs +3 -3
  13. package/esm2020/lib/test-case-details/screenshot-step/screenshot-step.component.mjs +3 -3
  14. package/esm2020/lib/test-case-details/scroll-step/scroll-step.component.mjs +3 -3
  15. package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +61 -15
  16. package/esm2020/lib/test-case-details/upload-step/upload-step.component.mjs +3 -3
  17. package/esm2020/lib/test-case-details/verify-url-step/verify-url-step.component.mjs +3 -3
  18. package/fesm2015/cqa-lib-cqa-ui.mjs +188 -47
  19. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  20. package/fesm2020/cqa-lib-cqa-ui.mjs +182 -47
  21. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  22. package/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.d.ts +9 -1
  23. package/lib/test-case-details/condition-step/condition-step.component.d.ts +4 -0
  24. package/lib/test-case-details/delete-steps/delete-steps.component.d.ts +5 -1
  25. package/lib/test-case-details/loop-step/loop-step.component.d.ts +6 -0
  26. package/lib/test-case-details/step-group/step-group.component.d.ts +15 -1
  27. package/package.json +1 -1
  28. package/styles.css +1 -1
@@ -21,6 +21,10 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
21
21
  typeOptions: SelectOption[];
22
22
  /** Options for environments dropdown */
23
23
  environmentOptions: SelectOption[];
24
+ /** Indicates if more environments are available for loading */
25
+ hasMoreEnvironments: boolean;
26
+ /** Loading state for environments */
27
+ isLoadingEnvironments: boolean;
24
28
  /** Options for retry count dropdown */
25
29
  retryCountOptions: SelectOption[];
26
30
  /** Options for iframe locator dropdown */
@@ -43,6 +47,10 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
43
47
  createStep: EventEmitter<AiAgentFormData>;
44
48
  /** Emit when cancelled */
45
49
  cancelled: EventEmitter<void>;
50
+ /** Emit when user searches for environments */
51
+ searchEnvironments: EventEmitter<string>;
52
+ /** Emit when user scrolls to load more environments */
53
+ loadMoreEnvironments: EventEmitter<void>;
46
54
  aiAgentForm: FormGroup;
47
55
  showAdvanced: boolean;
48
56
  private hasLoadedInitialData;
@@ -88,5 +96,5 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
88
96
  onCancel(): void;
89
97
  onCreateStep(): void;
90
98
  static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderAiAgentComponent, never>;
91
- static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderAiAgentComponent, "cqa-step-builder-ai-agent", never, { "typeOptions": "typeOptions"; "environmentOptions": "environmentOptions"; "retryCountOptions": "retryCountOptions"; "iframeLocatorOptions": "iframeLocatorOptions"; "otherLocatorsOptions": "otherLocatorsOptions"; "initialQuery": "initialQuery"; "initialType": "initialType"; "initialDescription": "initialDescription"; "initialEnvironments": "initialEnvironments"; "initialMetadata": "initialMetadata"; "initialDisabled": "initialDisabled"; "initialContinueOnError": "initialContinueOnError"; "initialRetryCount": "initialRetryCount"; "initialIframeLocator": "initialIframeLocator"; "initialOtherLocators": "initialOtherLocators"; "editMode": "editMode"; "advancedSettingsVariables": "advancedSettingsVariables"; }, { "createStep": "createStep"; "cancelled": "cancelled"; }, never, never>;
99
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderAiAgentComponent, "cqa-step-builder-ai-agent", never, { "typeOptions": "typeOptions"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "retryCountOptions": "retryCountOptions"; "iframeLocatorOptions": "iframeLocatorOptions"; "otherLocatorsOptions": "otherLocatorsOptions"; "initialQuery": "initialQuery"; "initialType": "initialType"; "initialDescription": "initialDescription"; "initialEnvironments": "initialEnvironments"; "initialMetadata": "initialMetadata"; "initialDisabled": "initialDisabled"; "initialContinueOnError": "initialContinueOnError"; "initialRetryCount": "initialRetryCount"; "initialIframeLocator": "initialIframeLocator"; "initialOtherLocators": "initialOtherLocators"; "editMode": "editMode"; "advancedSettingsVariables": "advancedSettingsVariables"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; }, never, never>;
92
100
  }
@@ -140,6 +140,8 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
140
140
  private updateConditionLeftSelectConfig;
141
141
  /** Options for the condition left autocomplete (IF_CONDITION natural text actions) */
142
142
  get conditionLeftAutocompleteOptions(): CqaAutocompleteOption[];
143
+ /** Display value for IF condition autocomplete: show natural text from option matching naturalTextActionId when available (including when form is empty on open), else form value. */
144
+ get conditionLeftDisplayValue(): string;
143
145
  onConditionLeftSelect(option: CqaAutocompleteOption & {
144
146
  template?: any;
145
147
  }): void;
@@ -191,6 +193,8 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
191
193
  isConditionStep(step: TestCaseStepConfig): step is ConditionStepConfig;
192
194
  isStepGroup(step: TestCaseStepConfig): step is StepGroupConfig;
193
195
  getBranchLabel(branch: ConditionBranch): string;
196
+ /** 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
+ getBranchDisplayNumber(branchIndex: number): number;
194
198
  getBranchColorClass(branch: ConditionBranch): string;
195
199
  getBranchTextColor(branch: ConditionBranch): string;
196
200
  onOpenExternal(): void;
@@ -11,6 +11,7 @@ export declare class DeleteStepsComponent {
11
11
  stepsToDelete?: TestCaseStepConfig[];
12
12
  contextLabel?: string;
13
13
  stepImages?: Map<string | number, string>;
14
+ stepLabels?: string[];
14
15
  };
15
16
  /** Steps that will be deleted (shown in the list). */
16
17
  stepsToDelete: TestCaseStepConfig[];
@@ -18,17 +19,20 @@ export declare class DeleteStepsComponent {
18
19
  contextLabel: string;
19
20
  /** Optional step images/screenshots map: stepId -> imageUrl */
20
21
  stepImages: Map<string | number, string>;
22
+ /** Pre-computed display labels from host (e.g. ts-portal-ui), same order as stepsToDelete. */
23
+ stepLabels: string[];
21
24
  constructor(data?: {
22
25
  stepsToDelete?: TestCaseStepConfig[];
23
26
  contextLabel?: string;
24
27
  stepImages?: Map<string | number, string>;
28
+ stepLabels?: string[];
25
29
  });
26
30
  confirmDelete: EventEmitter<void>;
27
31
  cancelled: EventEmitter<void>;
28
32
  get stepsCount(): number;
29
33
  get titleText(): string;
30
34
  get selectedStepsSubtitle(): string;
31
- /** Display label for a step in the list (same pattern as create-step-group). */
35
+ /** Display label: use stepLabels from host when provided, else compute from step. */
32
36
  getStepDisplayLabel(step: TestCaseStepConfig, index: number): string;
33
37
  private getNormalStepLabel;
34
38
  onCancel(): void;
@@ -147,6 +147,8 @@ export declare class TestCaseLoopStepComponent implements OnInit, OnChanges {
147
147
  get whileConditionAutocompleteOptions(): (CqaAutocompleteOption & {
148
148
  template?: any;
149
149
  })[];
150
+ /** Display value for while condition autocomplete: show natural text from option matching naturalTextActionId when available (including when form is empty on open), else form value. When user has selected a different option, show form value. */
151
+ get whileConditionDisplayValue(): string;
150
152
  onConditionSelect(option: CqaAutocompleteOption & {
151
153
  template?: any;
152
154
  }): void;
@@ -208,6 +210,10 @@ export declare class TestCaseLoopStepComponent implements OnInit, OnChanges {
208
210
  expanded: boolean;
209
211
  }, step: TestCaseStepConfig, index: number): void;
210
212
  onAddStep(): void;
213
+ /** Re-emit addStepForLoop from nested loop so N-level nesting works (empty-state add step). */
214
+ onAddStepForLoopFromNested(event: {
215
+ loopStepConfig: LoopStepConfig;
216
+ }): void;
211
217
  /** Called from empty-state plus only; same behaviour as add-step-between (parentId = loop step id, position = parent + 1). */
212
218
  onAddStepEmpty(): void;
213
219
  onDeleteStep(payloadOrIndex: any, index?: number): void;
@@ -15,6 +15,7 @@ export declare class TestCaseStepGroupComponent implements OnInit, OnChanges, Do
15
15
  expanded: boolean;
16
16
  isNested: boolean;
17
17
  isInsideLoop: boolean;
18
+ isInsideStepGroup: boolean;
18
19
  isReorder: boolean;
19
20
  selected: boolean;
20
21
  loading: boolean;
@@ -77,12 +78,25 @@ export declare class TestCaseStepGroupComponent implements OnInit, OnChanges, Do
77
78
  index: number;
78
79
  position: 'ABOVE' | 'BELOW';
79
80
  }>;
81
+ /** Re-emit addStepForLoop from nested loops so N-level nesting works (empty loop add step). */
82
+ addStepForLoop: EventEmitter<{
83
+ loopStepConfig: LoopStepConfig;
84
+ }>;
80
85
  selectionChange: EventEmitter<boolean>;
81
86
  onDndDrop(event: DndDropEvent): void;
82
87
  ngOnInit(): void;
83
88
  ngOnChanges(changes: SimpleChanges): void;
84
89
  ngDoCheck(): void;
85
90
  private updateFromConfig;
91
+ /** True when this step group has at least one child step (used to hide "0 steps" badge). */
92
+ hasSteps(): boolean;
93
+ /** Max length for start/end step number in summary; beyond this use local indices (1 to count). */
94
+ private static readonly MAX_STEP_NUMBER_DISPLAY_LENGTH;
95
+ /**
96
+ * Step count is derived only from the child step array length.
97
+ * Runs on every render (no expand/collapse dependency). Used for initial load and all nesting levels.
98
+ * For deeply nested steps with long numbers, shows "Steps 1-N (N steps)" using local indices.
99
+ */
86
100
  getStepsSummary(): string;
87
101
  onToggleExpanded(): void;
88
102
  onGroupNameChange(value: string): void;
@@ -118,5 +132,5 @@ export declare class TestCaseStepGroupComponent implements OnInit, OnChanges, Do
118
132
  onNestedConditionAddBranch(nestedStep: ConditionStepConfig, index: number): void;
119
133
  onNestedConditionDeleteBranch(nestedStep: ConditionStepConfig, branch: any, index: number): void;
120
134
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseStepGroupComponent, never>;
121
- 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"; "selected": "selected"; "loading": "loading"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; "addStepBetweenAbove": "addStepBetweenAbove"; "addStepBetweenBelow": "addStepBetweenBelow"; "addStepBetween": "addStepBetween"; }, { "toggleExpanded": "toggleExpanded"; "groupNameChange": "groupNameChange"; "descriptionChange": "descriptionChange"; "reusableChange": "reusableChange"; "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "openExternal": "openExternal"; "edit": "edit"; "editInDepth": "editInDepth"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "viewDetails": "viewDetails"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; "addStepBetweenClick": "addStepBetweenClick"; "selectionChange": "selectionChange"; }, never, never>;
135
+ 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"; "isInsideStepGroup": "isInsideStepGroup"; "isReorder": "isReorder"; "selected": "selected"; "loading": "loading"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; "addStepBetweenAbove": "addStepBetweenAbove"; "addStepBetweenBelow": "addStepBetweenBelow"; "addStepBetween": "addStepBetween"; }, { "toggleExpanded": "toggleExpanded"; "groupNameChange": "groupNameChange"; "descriptionChange": "descriptionChange"; "reusableChange": "reusableChange"; "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "openExternal": "openExternal"; "edit": "edit"; "editInDepth": "editInDepth"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "viewDetails": "viewDetails"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; "addStepBetweenClick": "addStepBetweenClick"; "addStepForLoop": "addStepForLoop"; "selectionChange": "selectionChange"; }, never, never>;
122
136
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cqa-lib/cqa-ui",
3
- "version": "1.1.267",
3
+ "version": "1.1.269",
4
4
  "description": "UI Kit library for Angular 13.4",
5
5
  "keywords": [
6
6
  "angular",