@cqa-lib/cqa-ui 1.1.540 → 1.1.541-gamma.8

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/.github/workflows/README.md +8 -1
  2. package/esm2020/lib/compare-runs/compare-runs.component.mjs +1 -1
  3. package/esm2020/lib/execution-screen/condition-debug-step/condition-branch-editor.component.mjs +32 -3
  4. package/esm2020/lib/execution-screen/db-query-execution-item/db-query-execution-item.component.mjs +1 -1
  5. package/esm2020/lib/execution-screen/db-verification-step/db-verification-step.component.mjs +1 -1
  6. package/esm2020/lib/iterations-loop/iterations-loop.component.mjs +1 -1
  7. package/esm2020/lib/mixed-variable-input/mixed-variable-input.component.mjs +30 -10
  8. package/esm2020/lib/new-global-variable-dialog/global-variable-tags-input.component.mjs +129 -0
  9. package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.component.mjs +16 -5
  10. package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.models.mjs +1 -1
  11. package/esm2020/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.component.mjs +50 -51
  12. package/esm2020/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.models.mjs +1 -1
  13. package/esm2020/lib/segment-control/segment-control.component.mjs +12 -4
  14. package/esm2020/lib/step-builder/step-builder-action/step-builder-action.component.mjs +21 -3
  15. package/esm2020/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.mjs +47 -23
  16. package/esm2020/lib/step-builder/step-builder-condition/step-builder-condition.component.mjs +21 -3
  17. package/esm2020/lib/step-builder/step-builder-database/step-builder-database.component.mjs +76 -47
  18. package/esm2020/lib/step-builder/step-builder-loop/step-builder-loop.component.mjs +16 -3
  19. package/esm2020/lib/step-builder/template-variables-form/template-variables-form.component.mjs +326 -29
  20. package/esm2020/lib/templates/modular-table-template/folder-sidebar/folder-sidebar.component.mjs +3 -3
  21. package/esm2020/lib/templates/table-template.component.mjs +5 -3
  22. package/esm2020/lib/test-case-details/api-edit-step/api-edit-step.component.mjs +20 -7
  23. package/esm2020/lib/test-case-details/data-library-panel/data-library-panel.component.mjs +116 -0
  24. package/esm2020/lib/test-case-details/data-library-panel/data-library-panel.models.mjs +2 -0
  25. package/esm2020/lib/test-case-details/data-library-panel/element-card.component.mjs +36 -0
  26. package/esm2020/lib/test-case-details/data-library-panel/test-data-profile-card.component.mjs +38 -0
  27. package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +43 -4
  28. package/esm2020/lib/test-case-details/test-case-details.models.mjs +3 -1
  29. package/esm2020/lib/test-case-details/test-data-modal/test-data-modal-data.mjs +1 -1
  30. package/esm2020/lib/test-case-details/test-data-modal/test-data-modal.component.mjs +137 -7
  31. package/esm2020/lib/ui-kit.module.mjs +23 -3
  32. package/esm2020/public-api.mjs +6 -1
  33. package/fesm2015/cqa-lib-cqa-ui.mjs +1243 -260
  34. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  35. package/fesm2020/cqa-lib-cqa-ui.mjs +1154 -187
  36. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  37. package/lib/execution-screen/condition-debug-step/condition-branch-editor.component.d.ts +26 -1
  38. package/lib/new-global-variable-dialog/global-variable-tags-input.component.d.ts +39 -0
  39. package/lib/new-global-variable-dialog/new-global-variable-dialog.component.d.ts +5 -2
  40. package/lib/new-global-variable-dialog/new-global-variable-dialog.models.d.ts +8 -0
  41. package/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.component.d.ts +9 -10
  42. package/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.models.d.ts +1 -1
  43. package/lib/segment-control/segment-control.component.d.ts +3 -1
  44. package/lib/step-builder/step-builder-action/step-builder-action.component.d.ts +19 -1
  45. package/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.d.ts +16 -2
  46. package/lib/step-builder/step-builder-condition/step-builder-condition.component.d.ts +19 -1
  47. package/lib/step-builder/step-builder-database/step-builder-database.component.d.ts +33 -11
  48. package/lib/step-builder/step-builder-loop/step-builder-loop.component.d.ts +15 -1
  49. package/lib/step-builder/template-variables-form/template-variables-form.component.d.ts +75 -4
  50. package/lib/templates/table-template.component.d.ts +8 -1
  51. package/lib/test-case-details/api-edit-step/api-edit-step.component.d.ts +7 -1
  52. package/lib/test-case-details/data-library-panel/data-library-panel.component.d.ts +42 -0
  53. package/lib/test-case-details/data-library-panel/data-library-panel.models.d.ts +17 -0
  54. package/lib/test-case-details/data-library-panel/element-card.component.d.ts +13 -0
  55. package/lib/test-case-details/data-library-panel/test-data-profile-card.component.d.ts +13 -0
  56. package/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.d.ts +7 -0
  57. package/lib/test-case-details/test-case-details.models.d.ts +2 -0
  58. package/lib/test-case-details/test-data-modal/test-data-modal-data.d.ts +23 -1
  59. package/lib/test-case-details/test-data-modal/test-data-modal.component.d.ts +40 -6
  60. package/lib/ui-kit.module.d.ts +100 -96
  61. package/package.json +1 -1
  62. package/public-api.d.ts +5 -0
  63. package/styles.css +1 -1
@@ -58,6 +58,30 @@ export declare class ConditionBranchEditorComponent implements OnInit, OnChanges
58
58
  }[];
59
59
  hasMoreEnvironments: boolean;
60
60
  isLoadingEnvironments: boolean;
61
+ /** Resolved test-case env name; drives banner + env-dropdown auto-select + lock in inner template-variables-form. */
62
+ testCaseEnvironmentName?: string;
63
+ /** Suffix on the env-name option label (e.g. '(default)'). Also locks the env dropdown. */
64
+ testCaseEnvironmentLabelSuffix?: string;
65
+ /** Italic note rendered under env dropdown in the inner form. */
66
+ environmentLegacyDeprecationMessage?: string;
67
+ /** Test case's TDP id — gates the Test Data Profile tab in the inner form. */
68
+ testCaseTestDataId?: number | null;
69
+ /** When true (or `isInsideForLoopStep` true), the inner form shows the Test
70
+ * Data Profile segment. Without this, the lib defaults the segment in,
71
+ * even though the test case has no TDP — which is what shows the tab in the
72
+ * debug-screen condition-branch editor. */
73
+ hasTestDataProfile: boolean;
74
+ /** True when this branch lives inside a FOR-loop step. */
75
+ isInsideForLoopStep: boolean;
76
+ /** Workspace-scoped global variables for the Global Data tab. */
77
+ globalVariableOptions: {
78
+ id: number | string;
79
+ name: string;
80
+ value: string;
81
+ type?: string;
82
+ readWriteMode?: string;
83
+ }[];
84
+ isLoadingGlobalVariables: boolean;
61
85
  defaultTestDataProfileId?: number;
62
86
  defaultTestDataStartIndex?: number;
63
87
  /** When provided, pre-populates the form for edit mode. shape: { templateId, templateVariables, action } */
@@ -90,6 +114,7 @@ export declare class ConditionBranchEditorComponent implements OnInit, OnChanges
90
114
  loadMoreParameters: EventEmitter<void>;
91
115
  searchEnvironments: EventEmitter<string>;
92
116
  loadMoreEnvironments: EventEmitter<void>;
117
+ searchGlobalVariables: EventEmitter<string>;
93
118
  conditionForm: FormGroup;
94
119
  private selectedTemplate;
95
120
  private templateVariables;
@@ -131,5 +156,5 @@ export declare class ConditionBranchEditorComponent implements OnInit, OnChanges
131
156
  onCancel(): void;
132
157
  onSave(): void;
133
158
  static ɵfac: i0.ɵɵFactoryDeclaration<ConditionBranchEditorComponent, never>;
134
- static ɵcmp: i0.ɵɵComponentDeclaration<ConditionBranchEditorComponent, "cqa-condition-branch-editor", never, { "mode": "mode"; "conditionTemplates": "conditionTemplates"; "setConditionTemplateVariables": "setConditionTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "initialConditionData": "initialConditionData"; "editTestStep": "editTestStep"; "branchLabel": "branchLabel"; "isSaving": "isSaving"; }, { "save": "save"; "cancelled": "cancelled"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; }, never, never>;
159
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConditionBranchEditorComponent, "cqa-condition-branch-editor", never, { "mode": "mode"; "conditionTemplates": "conditionTemplates"; "setConditionTemplateVariables": "setConditionTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "testCaseEnvironmentName": "testCaseEnvironmentName"; "testCaseEnvironmentLabelSuffix": "testCaseEnvironmentLabelSuffix"; "environmentLegacyDeprecationMessage": "environmentLegacyDeprecationMessage"; "testCaseTestDataId": "testCaseTestDataId"; "hasTestDataProfile": "hasTestDataProfile"; "isInsideForLoopStep": "isInsideForLoopStep"; "globalVariableOptions": "globalVariableOptions"; "isLoadingGlobalVariables": "isLoadingGlobalVariables"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "initialConditionData": "initialConditionData"; "editTestStep": "editTestStep"; "branchLabel": "branchLabel"; "isSaving": "isSaving"; }, { "save": "save"; "cancelled": "cancelled"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "searchGlobalVariables": "searchGlobalVariables"; }, never, never>;
135
160
  }
@@ -0,0 +1,39 @@
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
2
+ import { GlobalVariableTagOption } from './new-global-variable-dialog.models';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Tag chip-list + autocomplete used by the New / Edit Global Variable dialog.
6
+ * Mirrors the React `TagsEditor` block in
7
+ * `Environment and Data Management_CD Deisgns/src/Global.jsx:179-237`:
8
+ *
9
+ * [chip × …] [+ Add tag] ← inactive state
10
+ * [chip × …] [_input_ ↳ suggestions] ← active state
11
+ *
12
+ * Behavior:
13
+ * - Backspace on an empty input removes the last tag.
14
+ * - Enter commits the trimmed lowercase value (creates if not in available).
15
+ * - Escape exits the input without committing.
16
+ * - Suggestions are computed from `availableTags`, capped at 4.
17
+ */
18
+ export declare class GlobalVariableTagsInputComponent {
19
+ private readonly cdr;
20
+ tags: string[];
21
+ availableTags: GlobalVariableTagOption[];
22
+ tagsChange: EventEmitter<string[]>;
23
+ tagInputRef?: ElementRef<HTMLInputElement>;
24
+ adding: boolean;
25
+ draft: string;
26
+ constructor(cdr: ChangeDetectorRef);
27
+ get suggestions(): GlobalVariableTagOption[];
28
+ beginAdd(): void;
29
+ onDraftChange(next: string): void;
30
+ onKeyDown(event: KeyboardEvent): void;
31
+ onSuggestionMouseDown(event: MouseEvent, suggestion: GlobalVariableTagOption): void;
32
+ onBlur(): void;
33
+ removeAt(index: number): void;
34
+ private commitDraft;
35
+ private commit;
36
+ private cancelAdd;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<GlobalVariableTagsInputComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<GlobalVariableTagsInputComponent, "lib-global-variable-tags-input", never, { "tags": "tags"; "availableTags": "availableTags"; }, { "tagsChange": "tagsChange"; }, never, never>;
39
+ }
@@ -1,11 +1,12 @@
1
1
  import { ChangeDetectorRef, OnInit } from '@angular/core';
2
- import { GlobalVariableDialogValue, GlobalVariableUIPermission, GlobalVariableUIType } from './new-global-variable-dialog.models';
2
+ import { GlobalVariableDialogValue, GlobalVariableTagOption, GlobalVariableUIPermission, GlobalVariableUIType } from './new-global-variable-dialog.models';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class NewGlobalVariableDialogComponent implements OnInit {
5
5
  private readonly cdr;
6
6
  mode: 'create' | 'edit';
7
7
  initialValue?: Partial<GlobalVariableDialogValue>;
8
8
  existingNames: string[];
9
+ availableTags: GlobalVariableTagOption[];
9
10
  readonly typeOptions: GlobalVariableUIType[];
10
11
  readonly typeDropdownOptions: {
11
12
  label: string;
@@ -21,6 +22,7 @@ export declare class NewGlobalVariableDialogComponent implements OnInit {
21
22
  value: string;
22
23
  readWriteMode: GlobalVariableUIPermission;
23
24
  description: string;
25
+ tags: string[];
24
26
  passwordTouched: boolean;
25
27
  nameError: string | null;
26
28
  valueError: string | null;
@@ -50,6 +52,7 @@ export declare class NewGlobalVariableDialogComponent implements OnInit {
50
52
  onValueChange(next: string): void;
51
53
  onBooleanValueChange(next: string): void;
52
54
  onDescriptionChange(next: string): void;
55
+ onTagsChange(next: string[]): void;
53
56
  /**
54
57
  * Called by the host (via DialogRef.getComponentInstance()) when the primary
55
58
  * button is clicked. Returns the captured value when valid, or null when the
@@ -60,5 +63,5 @@ export declare class NewGlobalVariableDialogComponent implements OnInit {
60
63
  private isDuplicateName;
61
64
  private isValidNumber;
62
65
  static ɵfac: i0.ɵɵFactoryDeclaration<NewGlobalVariableDialogComponent, never>;
63
- static ɵcmp: i0.ɵɵComponentDeclaration<NewGlobalVariableDialogComponent, "cqa-new-global-variable-dialog", never, { "mode": "mode"; "initialValue": "initialValue"; "existingNames": "existingNames"; }, {}, never, never>;
66
+ static ɵcmp: i0.ɵɵComponentDeclaration<NewGlobalVariableDialogComponent, "cqa-new-global-variable-dialog", never, { "mode": "mode"; "initialValue": "initialValue"; "existingNames": "existingNames"; "availableTags": "availableTags"; }, {}, never, never>;
64
67
  }
@@ -6,9 +6,17 @@ export interface GlobalVariableDialogValue {
6
6
  value: string | null;
7
7
  readWriteMode: GlobalVariableUIPermission;
8
8
  description: string | null;
9
+ tags: string[];
10
+ }
11
+ /** A tag option for the dialog's autocomplete. `count` drives the small usage
12
+ * badge in the suggestion list; pass 0 (or omit) for newly-created entries. */
13
+ export interface GlobalVariableTagOption {
14
+ name: string;
15
+ count?: number;
9
16
  }
10
17
  export interface NewGlobalVariableDialogInputs {
11
18
  mode?: 'create' | 'edit';
12
19
  initialValue?: Partial<GlobalVariableDialogValue>;
13
20
  existingNames?: string[];
21
+ availableTags?: GlobalVariableTagOption[];
14
22
  }
@@ -5,39 +5,38 @@ import { TdpDialogPermission, TdpDialogValue, TdpEnvironmentOption } from './new
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class NewTestDataProfileDialogComponent implements OnInit {
7
7
  private readonly cdr;
8
+ private static readonly INTEGER_REGEX;
9
+ private static readonly MAX_DIM;
8
10
  mode: 'create' | 'edit';
9
11
  initialValue?: Partial<TdpDialogValue>;
10
12
  existingNames: string[];
11
13
  environments: TdpEnvironmentOption[];
12
- lockedColumns: string[];
13
14
  name: string;
14
15
  description: string;
15
16
  readWriteMode: TdpDialogPermission;
16
- columns: string[];
17
+ rowsInput: string;
18
+ columnsInput: string;
17
19
  readonly envForm: FormGroup;
18
20
  envConfig: DynamicSelectFieldConfig;
19
21
  nameError: string | null;
20
- columnsError: string | null;
22
+ matrixError: string | null;
21
23
  envsError: string | null;
22
- trackByIndex: (_: number, __: string) => number;
23
24
  constructor(cdr: ChangeDetectorRef);
24
25
  ngOnInit(): void;
25
26
  get title(): string;
26
27
  get subtitle(): string;
27
28
  get primaryButtonLabel(): string;
28
29
  get nameErrorsArray(): string[];
29
- get canAddColumn(): boolean;
30
30
  get selectedEnvIds(): number[];
31
31
  onNameChange(next: string): void;
32
32
  onDescriptionChange(next: string): void;
33
33
  onPermissionChange(next: string): void;
34
- onColumnChange(index: number, value: string): void;
35
- onAddColumn(): void;
36
- onRemoveColumn(index: number): void;
37
- isColumnLocked(col: string): boolean;
34
+ onRowsChange(next: string): void;
35
+ onColumnsChange(next: string): void;
38
36
  getValue(): TdpDialogValue | null;
37
+ private parseMatrix;
39
38
  private buildEnvConfig;
40
39
  private isDuplicateName;
41
40
  static ɵfac: i0.ɵɵFactoryDeclaration<NewTestDataProfileDialogComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<NewTestDataProfileDialogComponent, "cqa-new-test-data-profile-dialog", never, { "mode": "mode"; "initialValue": "initialValue"; "existingNames": "existingNames"; "environments": "environments"; "lockedColumns": "lockedColumns"; }, {}, never, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<NewTestDataProfileDialogComponent, "cqa-new-test-data-profile-dialog", never, { "mode": "mode"; "initialValue": "initialValue"; "existingNames": "existingNames"; "environments": "environments"; }, {}, never, never>;
43
42
  }
@@ -4,6 +4,7 @@ export interface TdpDialogValue {
4
4
  description: string | null;
5
5
  readWriteMode: TdpDialogPermission;
6
6
  columns: string[];
7
+ rows: string[];
7
8
  environmentIds: number[];
8
9
  }
9
10
  export interface TdpEnvironmentOption {
@@ -16,5 +17,4 @@ export interface NewTestDataProfileDialogInputs {
16
17
  initialValue?: Partial<TdpDialogValue>;
17
18
  existingNames?: string[];
18
19
  environments?: TdpEnvironmentOption[];
19
- lockedColumns?: string[];
20
20
  }
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnChanges, QueryList, SimpleChanges } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnChanges, QueryList, SimpleChanges } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare type SegmentOption = {
4
4
  label: string;
@@ -9,6 +9,7 @@ export declare type SegmentOption = {
9
9
  count?: number;
10
10
  };
11
11
  export declare class SegmentControlComponent implements OnChanges, AfterViewInit, OnDestroy {
12
+ private readonly cdr;
12
13
  segments: SegmentOption[];
13
14
  /**
14
15
  * The currently selected segment value.
@@ -28,6 +29,7 @@ export declare class SegmentControlComponent implements OnChanges, AfterViewInit
28
29
  indicatorStyle: Record<string, string>;
29
30
  indicatorVisible: boolean;
30
31
  private buttonChangesSub?;
32
+ constructor(cdr: ChangeDetectorRef);
31
33
  ngOnChanges(changes: SimpleChanges): void;
32
34
  ngAfterViewInit(): void;
33
35
  ngOnDestroy(): void;
@@ -110,6 +110,23 @@ export declare class StepBuilderActionComponent implements OnInit, OnChanges, On
110
110
  hasMoreEnvironments: boolean;
111
111
  /** True while parent is loading environments (search or load more) */
112
112
  isLoadingEnvironments: boolean;
113
+ /** Global Data variables (workspace-scoped) for the Global Data tab. */
114
+ globalVariableOptions: {
115
+ id: string;
116
+ name: string;
117
+ value: string;
118
+ type?: string;
119
+ readWriteMode?: string;
120
+ }[];
121
+ isLoadingGlobalVariables: boolean;
122
+ /** Resolved test-case environment name, used for the env banner subhead. */
123
+ testCaseEnvironmentName?: string;
124
+ /** Suffix appended to the env-name option label only (e.g. '(default)'); also locks the env dropdown. */
125
+ testCaseEnvironmentLabelSuffix?: string;
126
+ /** Italic note rendered under the env dropdown — used for legacy step-level env deprecation. */
127
+ environmentLegacyDeprecationMessage?: string;
128
+ /** Test case's TDP id (when set, lock the TDP picker in the parameter tab). */
129
+ testCaseTestDataId?: number | null;
113
130
  /** Default test data profile ID from test case (if available, profile and data set dropdowns will be disabled) */
114
131
  defaultTestDataProfileId?: number;
115
132
  /** Default test data start index from test case (data set index in the profile) */
@@ -140,6 +157,7 @@ export declare class StepBuilderActionComponent implements OnInit, OnChanges, On
140
157
  loadMoreUploads: EventEmitter<void>;
141
158
  searchEnvironments: EventEmitter<string>;
142
159
  loadMoreEnvironments: EventEmitter<void>;
160
+ searchGlobalVariables: EventEmitter<string>;
143
161
  /** Emit when step is created */
144
162
  createStep: EventEmitter<any>;
145
163
  /** Emit when cancelled */
@@ -232,6 +250,6 @@ export declare class StepBuilderActionComponent implements OnInit, OnChanges, On
232
250
  */
233
251
  get environmentVariableAvailable(): boolean;
234
252
  static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderActionComponent, never>;
235
- static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderActionComponent, "cqa-step-builder-action", never, { "showHeader": "showHeader"; "changeTemplateSignal": "changeTemplateSignal"; "cancelChangeTemplateSignal": "cancelChangeTemplateSignal"; "templates": "templates"; "initialTemplate": "initialTemplate"; "initialDescription": "initialDescription"; "initialMetadata": "initialMetadata"; "isDebug": "isDebug"; "editMode": "editMode"; "searchPlaceholder": "searchPlaceholder"; "setTemplateVariables": "setTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "preventSelectTemplate": "preventSelectTemplate"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "uploadOptions": "uploadOptions"; "hasMoreUploads": "hasMoreUploads"; "isLoadingUploads": "isLoadingUploads"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "defaultTestDataEndIndex": "defaultTestDataEndIndex"; "isInsideForLoopStep": "isInsideForLoopStep"; "hasTestDataProfile": "hasTestDataProfile"; "isCreatingStep": "isCreatingStep"; "elementScreenPrefill": "elementScreenPrefill"; }, { "templateChanged": "templateChanged"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchUploads": "searchUploads"; "loadMoreUploads": "loadMoreUploads"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "createStep": "createStep"; "cancelled": "cancelled"; "redirectToParameter": "redirectToParameter"; "redirectToEnvironment": "redirectToEnvironment"; }, never, never>;
253
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderActionComponent, "cqa-step-builder-action", never, { "showHeader": "showHeader"; "changeTemplateSignal": "changeTemplateSignal"; "cancelChangeTemplateSignal": "cancelChangeTemplateSignal"; "templates": "templates"; "initialTemplate": "initialTemplate"; "initialDescription": "initialDescription"; "initialMetadata": "initialMetadata"; "isDebug": "isDebug"; "editMode": "editMode"; "searchPlaceholder": "searchPlaceholder"; "setTemplateVariables": "setTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "preventSelectTemplate": "preventSelectTemplate"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "uploadOptions": "uploadOptions"; "hasMoreUploads": "hasMoreUploads"; "isLoadingUploads": "isLoadingUploads"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "globalVariableOptions": "globalVariableOptions"; "isLoadingGlobalVariables": "isLoadingGlobalVariables"; "testCaseEnvironmentName": "testCaseEnvironmentName"; "testCaseEnvironmentLabelSuffix": "testCaseEnvironmentLabelSuffix"; "environmentLegacyDeprecationMessage": "environmentLegacyDeprecationMessage"; "testCaseTestDataId": "testCaseTestDataId"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "defaultTestDataEndIndex": "defaultTestDataEndIndex"; "isInsideForLoopStep": "isInsideForLoopStep"; "hasTestDataProfile": "hasTestDataProfile"; "isCreatingStep": "isCreatingStep"; "elementScreenPrefill": "elementScreenPrefill"; }, { "templateChanged": "templateChanged"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchUploads": "searchUploads"; "loadMoreUploads": "loadMoreUploads"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "searchGlobalVariables": "searchGlobalVariables"; "createStep": "createStep"; "cancelled": "cancelled"; "redirectToParameter": "redirectToParameter"; "redirectToEnvironment": "redirectToEnvironment"; }, never, never>;
236
254
  }
237
255
  export {};
@@ -25,6 +25,12 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
25
25
  hasMoreEnvironments: boolean;
26
26
  /** Loading state for environments */
27
27
  isLoadingEnvironments: boolean;
28
+ /** Resolved test-case env name; drives banner + env-dropdown auto-select + lock. */
29
+ testCaseEnvironmentName?: string;
30
+ /** Suffix for env-name option label (e.g. '(default)'). Also locks the env dropdown. */
31
+ testCaseEnvironmentLabelSuffix?: string;
32
+ /** Italic note rendered under env dropdown (legacy step-env deprecation). */
33
+ environmentLegacyDeprecationMessage?: string;
28
34
  /** Options for retry count dropdown */
29
35
  retryCountOptions: SelectOption[];
30
36
  /** Options for iframe locator dropdown */
@@ -56,11 +62,20 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
56
62
  aiAgentForm: FormGroup;
57
63
  showAdvanced: boolean;
58
64
  private hasLoadedInitialData;
65
+ /**
66
+ * Cached env-select config. Method-call template bindings (`[config]="getEnvironmentConfig()"`)
67
+ * combined with a per-pass `.map()` over options creates a fresh `options` array
68
+ * each CD pass, which `cqa-dynamic-select` reacts to → re-emits → triggers parent
69
+ * CD → infinite loop. Holding the config as a field and rebuilding only inside
70
+ * `ngOnChanges` (or `ngOnInit`) avoids that.
71
+ */
72
+ environmentSelectConfig: DynamicSelectFieldConfig;
59
73
  advancedSettingsVariables: any[];
60
74
  advancedVariablesForm: FormArray;
61
75
  constructor(fb: FormBuilder);
62
76
  ngOnInit(): void;
63
77
  ngOnChanges(changes: SimpleChanges): void;
78
+ private rebuildEnvironmentSelectConfig;
64
79
  private hasInitialData;
65
80
  private loadInitialData;
66
81
  /**
@@ -82,7 +97,6 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
82
97
  */
83
98
  private buildAdvancedVariablesForm;
84
99
  getTypeConfig(): DynamicSelectFieldConfig;
85
- getEnvironmentConfig(): DynamicSelectFieldConfig;
86
100
  getRetryCountConfig(): DynamicSelectFieldConfig;
87
101
  getIframeLocatorConfig(): DynamicSelectFieldConfig;
88
102
  getOtherLocatorsConfig(): DynamicSelectFieldConfig;
@@ -98,5 +112,5 @@ export declare class StepBuilderAiAgentComponent implements OnInit, OnChanges {
98
112
  onCancel(): void;
99
113
  onCreateStep(): void;
100
114
  static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderAiAgentComponent, never>;
101
- 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"; "isCreatingStep": "isCreatingStep"; "advancedSettingsVariables": "advancedSettingsVariables"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; }, never, never>;
115
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderAiAgentComponent, "cqa-step-builder-ai-agent", never, { "typeOptions": "typeOptions"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "testCaseEnvironmentName": "testCaseEnvironmentName"; "testCaseEnvironmentLabelSuffix": "testCaseEnvironmentLabelSuffix"; "environmentLegacyDeprecationMessage": "environmentLegacyDeprecationMessage"; "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"; "isCreatingStep": "isCreatingStep"; "advancedSettingsVariables": "advancedSettingsVariables"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; }, never, never>;
102
116
  }
@@ -61,6 +61,23 @@ export declare class StepBuilderConditionComponent implements OnInit, OnChanges
61
61
  }[];
62
62
  hasMoreEnvironments: boolean;
63
63
  isLoadingEnvironments: boolean;
64
+ /** Global Data variables (workspace-scoped) for the Global Data tab. */
65
+ globalVariableOptions: {
66
+ id: string;
67
+ name: string;
68
+ value: string;
69
+ type?: string;
70
+ readWriteMode?: string;
71
+ }[];
72
+ isLoadingGlobalVariables: boolean;
73
+ /** Resolved test-case environment name, used for the env banner subhead. */
74
+ testCaseEnvironmentName?: string;
75
+ /** Suffix appended to the env-name option label only (e.g. '(default)'); also locks the env dropdown. */
76
+ testCaseEnvironmentLabelSuffix?: string;
77
+ /** Italic note rendered under the env dropdown — used for legacy step-level env deprecation. */
78
+ environmentLegacyDeprecationMessage?: string;
79
+ /** Test case's TDP id (when set, lock the TDP picker in the parameter tab). */
80
+ testCaseTestDataId?: number | null;
64
81
  /** Default test data profile properties */
65
82
  defaultTestDataProfileId?: number;
66
83
  defaultTestDataStartIndex?: number;
@@ -89,6 +106,7 @@ export declare class StepBuilderConditionComponent implements OnInit, OnChanges
89
106
  loadMoreEnvironments: EventEmitter<void>;
90
107
  redirectToParameter: EventEmitter<void>;
91
108
  redirectToEnvironment: EventEmitter<void>;
109
+ searchGlobalVariables: EventEmitter<string>;
92
110
  conditionForm: FormGroup;
93
111
  includeElse: boolean;
94
112
  private valueConfigCache;
@@ -157,6 +175,6 @@ export declare class StepBuilderConditionComponent implements OnInit, OnChanges
157
175
  isFormValid(): boolean;
158
176
  onCreateStep(): void;
159
177
  static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderConditionComponent, never>;
160
- static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderConditionComponent, "cqa-step-builder-condition", never, { "operatorOptions": "operatorOptions"; "conditionTemplates": "conditionTemplates"; "setConditionTemplateVariables": "setConditionTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "defaultTestDataEndIndex": "defaultTestDataEndIndex"; "isInsideForLoopStep": "isInsideForLoopStep"; "hasTestDataProfile": "hasTestDataProfile"; "isCreatingStep": "isCreatingStep"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "redirectToParameter": "redirectToParameter"; "redirectToEnvironment": "redirectToEnvironment"; }, never, never>;
178
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderConditionComponent, "cqa-step-builder-condition", never, { "operatorOptions": "operatorOptions"; "conditionTemplates": "conditionTemplates"; "setConditionTemplateVariables": "setConditionTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "globalVariableOptions": "globalVariableOptions"; "isLoadingGlobalVariables": "isLoadingGlobalVariables"; "testCaseEnvironmentName": "testCaseEnvironmentName"; "testCaseEnvironmentLabelSuffix": "testCaseEnvironmentLabelSuffix"; "environmentLegacyDeprecationMessage": "environmentLegacyDeprecationMessage"; "testCaseTestDataId": "testCaseTestDataId"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "defaultTestDataEndIndex": "defaultTestDataEndIndex"; "isInsideForLoopStep": "isInsideForLoopStep"; "hasTestDataProfile": "hasTestDataProfile"; "isCreatingStep": "isCreatingStep"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "redirectToParameter": "redirectToParameter"; "redirectToEnvironment": "redirectToEnvironment"; "searchGlobalVariables": "searchGlobalVariables"; }, never, never>;
161
179
  }
162
180
  export {};
@@ -13,7 +13,8 @@ export interface DatabaseQuery {
13
13
  queryResult?: any[];
14
14
  }
15
15
  export interface DatabaseFormData {
16
- dbEnvironment: string;
16
+ /** Selected DB Config id (env-attached). Replaces the legacy dbEnvironment field. */
17
+ dbConfigId: string;
17
18
  normalEnvironment?: string;
18
19
  queries: DatabaseQuery[];
19
20
  advancedSettingsVariables?: any[];
@@ -21,8 +22,13 @@ export interface DatabaseFormData {
21
22
  export declare class StepBuilderDatabaseComponent implements OnInit, OnChanges, OnDestroy {
22
23
  private fb;
23
24
  private cdr;
24
- /** Options for DB environment dropdown */
25
- dbEnvironmentOptions: SelectOption[];
25
+ /**
26
+ * Options for the DB Config dropdown — env-attached DB configs returned by
27
+ * `/environments/{envId}/db_configs`. Each `SelectOption.id` is the dbConfigId.
28
+ */
29
+ dbConfigOptions: SelectOption[];
30
+ /** True while the parent loads DB configs (initial / search). */
31
+ isLoadingDbConfigs: boolean;
26
32
  /** Options for Normal environment dropdown */
27
33
  normalEnvironmentOptions: SelectOption[];
28
34
  /** Initial queries list */
@@ -31,10 +37,16 @@ export declare class StepBuilderDatabaseComponent implements OnInit, OnChanges,
31
37
  queryResults: any[];
32
38
  /** Loading state */
33
39
  isLoading: boolean;
34
- /** Initial DB environment for edit mode */
35
- initialDbEnvironment?: string;
40
+ /** Initial DB Config id for edit mode (replaces initialDbEnvironment). */
41
+ initialDbConfigId?: string;
36
42
  /** Initial Normal environment for edit mode */
37
43
  initialNormalEnvironment?: string;
44
+ /** Resolved test-case env name; drives banner + Normal-Env auto-select + lock. */
45
+ testCaseEnvironmentName?: string;
46
+ /** Suffix for env-name option label (e.g. '(default)'). Also locks Normal Environment dropdown. */
47
+ testCaseEnvironmentLabelSuffix?: string;
48
+ /** Italic note rendered under Normal Environment dropdown — legacy step-env deprecation. */
49
+ environmentLegacyDeprecationMessage?: string;
38
50
  /** Whether in edit mode */
39
51
  editMode?: boolean;
40
52
  /** True while parent is creating the step (API in progress); show loader on Create/Update Step button */
@@ -48,11 +60,11 @@ export declare class StepBuilderDatabaseComponent implements OnInit, OnChanges,
48
60
  currentQuery: DatabaseQuery;
49
61
  query: string;
50
62
  variable: string;
51
- dbEnvironment: string;
63
+ dbConfigId: string;
52
64
  normalEnvironment?: string;
53
65
  }>;
54
- /** Emit when DB environment search is triggered */
55
- searchDbEnvironment: EventEmitter<string>;
66
+ /** Emit when DB Config search is triggered */
67
+ searchDbConfig: EventEmitter<string>;
56
68
  /** Emit when Normal environment search is triggered */
57
69
  searchNormalEnvironment: EventEmitter<string>;
58
70
  /** Emit when query is added */
@@ -71,6 +83,16 @@ export declare class StepBuilderDatabaseComponent implements OnInit, OnChanges,
71
83
  databaseForm: FormGroup;
72
84
  selectedTab: 'output' | 'verification' | 'advanced';
73
85
  selectedQueryIndex: number;
86
+ /**
87
+ * Cached select configs. Method-call template bindings (`[config]="getX()"`) build
88
+ * a fresh object each CD pass, and when the inner `options` array is also fresh
89
+ * (we map a copy to apply the suffix/decoration), `cqa-dynamic-select` detects
90
+ * a new options reference and re-emits, which retriggers parent CD → infinite
91
+ * loop. Holding the configs as fields and rebuilding only inside `ngOnChanges`
92
+ * (or `ngOnInit`) gives the dynamic-select a stable reference between CD passes.
93
+ */
94
+ dbConfigSelectConfig: DynamicSelectFieldConfig;
95
+ normalEnvSelectConfig: DynamicSelectFieldConfig;
74
96
  assertionsForms: Map<number, FormGroup>;
75
97
  displayedColumns: string[];
76
98
  defaultExpectedType: string;
@@ -81,13 +103,13 @@ export declare class StepBuilderDatabaseComponent implements OnInit, OnChanges,
81
103
  constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
82
104
  ngOnInit(): void;
83
105
  ngOnChanges(changes: SimpleChanges): void;
106
+ private rebuildDbConfigSelectConfig;
107
+ private rebuildNormalEnvSelectConfig;
84
108
  private initializeFormWithInitialValues;
85
109
  get queriesFormArray(): FormArray;
86
110
  addNewQuery(): void;
87
111
  private addQueryToForm;
88
112
  deleteQueryById(queryId: string): void;
89
- getDbEnvironmentConfig(): DynamicSelectFieldConfig;
90
- getNormalEnvironmentConfig(): DynamicSelectFieldConfig;
91
113
  getCurrentQuery(): DatabaseQuery | null;
92
114
  getCurrentQueryFormGroup(): FormGroup | null;
93
115
  onRunQuery(): void;
@@ -200,5 +222,5 @@ export declare class StepBuilderDatabaseComponent implements OnInit, OnChanges,
200
222
  */
201
223
  onAdvancedVariableValueChange(variableName: string, value: any): void;
202
224
  static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderDatabaseComponent, never>;
203
- static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderDatabaseComponent, "cqa-step-builder-database", never, { "dbEnvironmentOptions": "dbEnvironmentOptions"; "normalEnvironmentOptions": "normalEnvironmentOptions"; "queries": "queries"; "queryResults": "queryResults"; "isLoading": "isLoading"; "initialDbEnvironment": "initialDbEnvironment"; "initialNormalEnvironment": "initialNormalEnvironment"; "editMode": "editMode"; "isCreatingStep": "isCreatingStep"; "advancedSettingsVariables": "advancedSettingsVariables"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "runQuery": "runQuery"; "searchDbEnvironment": "searchDbEnvironment"; "searchNormalEnvironment": "searchNormalEnvironment"; "addQuery": "addQuery"; "deleteQuery": "deleteQuery"; "assertionDataChange": "assertionDataChange"; "selectedQueryIndexChange": "selectedQueryIndexChange"; "activeTabChange": "activeTabChange"; }, never, never>;
225
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderDatabaseComponent, "cqa-step-builder-database", never, { "dbConfigOptions": "dbConfigOptions"; "isLoadingDbConfigs": "isLoadingDbConfigs"; "normalEnvironmentOptions": "normalEnvironmentOptions"; "queries": "queries"; "queryResults": "queryResults"; "isLoading": "isLoading"; "initialDbConfigId": "initialDbConfigId"; "initialNormalEnvironment": "initialNormalEnvironment"; "testCaseEnvironmentName": "testCaseEnvironmentName"; "testCaseEnvironmentLabelSuffix": "testCaseEnvironmentLabelSuffix"; "environmentLegacyDeprecationMessage": "environmentLegacyDeprecationMessage"; "editMode": "editMode"; "isCreatingStep": "isCreatingStep"; "advancedSettingsVariables": "advancedSettingsVariables"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "runQuery": "runQuery"; "searchDbConfig": "searchDbConfig"; "searchNormalEnvironment": "searchNormalEnvironment"; "addQuery": "addQuery"; "deleteQuery": "deleteQuery"; "assertionDataChange": "assertionDataChange"; "selectedQueryIndexChange": "selectedQueryIndexChange"; "activeTabChange": "activeTabChange"; }, never, never>;
204
226
  }
@@ -90,6 +90,15 @@ export declare class StepBuilderLoopComponent implements OnInit, OnChanges {
90
90
  isDebug: boolean;
91
91
  /** Existing step when editing; used with isDebug to determine edit mode. */
92
92
  testStep?: any;
93
+ /**
94
+ * Resolved name of the test case's environment. Drives the env banner subhead
95
+ * shown above the form. Optional; when missing the banner is hidden.
96
+ */
97
+ testCaseEnvironmentName?: string;
98
+ /** Suffix appended to the env-name option label only (e.g. '(default)') — pass-through to nested action. */
99
+ testCaseEnvironmentLabelSuffix?: string;
100
+ /** Italic note rendered under env dropdown in the lib — pass-through to nested action. */
101
+ environmentLegacyDeprecationMessage?: string;
93
102
  get isEditMode(): boolean;
94
103
  loadMoreElements: EventEmitter<void>;
95
104
  searchElements: EventEmitter<string>;
@@ -108,6 +117,11 @@ export declare class StepBuilderLoopComponent implements OnInit, OnChanges {
108
117
  loadMoreEnvironments: EventEmitter<void>;
109
118
  redirectToParameter: EventEmitter<void>;
110
119
  redirectToEnvironment: EventEmitter<void>;
120
+ /**
121
+ * Emitted when the user clicks "Manage profiles" in the empty state. Host
122
+ * navigates to the Environment & Data Management screen for the active env.
123
+ */
124
+ manageProfilesClicked: EventEmitter<void>;
111
125
  selectedWhileTemplate: any;
112
126
  selectedWhileDescription: string;
113
127
  selectedWhileMetadata: string;
@@ -223,5 +237,5 @@ export declare class StepBuilderLoopComponent implements OnInit, OnChanges {
223
237
  filterWhileTemplates(query: string): void;
224
238
  selectWhileTemplate(template: any): void;
225
239
  static ɵfac: i0.ɵɵFactoryDeclaration<StepBuilderLoopComponent, never>;
226
- static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderLoopComponent, "cqa-step-builder-loop", never, { "loopType": "loopType"; "selectOptions": "selectOptions"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "isCreatingStep": "isCreatingStep"; "setWhileTemplateVariables": "setWhileTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "whileTemplates": "whileTemplates"; "whileSearchPlaceholder": "whileSearchPlaceholder"; "whileSearchValue": "whileSearchValue"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "defaultTestDataEndIndex": "defaultTestDataEndIndex"; "isInsideForLoopStep": "isInsideForLoopStep"; "hasTestDataProfile": "hasTestDataProfile"; "isDebug": "isDebug"; "testStep": "testStep"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "loopTypeChange": "loopTypeChange"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "cancelElementForm": "cancelElementForm"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "redirectToParameter": "redirectToParameter"; "redirectToEnvironment": "redirectToEnvironment"; }, never, never>;
240
+ static ɵcmp: i0.ɵɵComponentDeclaration<StepBuilderLoopComponent, "cqa-step-builder-loop", never, { "loopType": "loopType"; "selectOptions": "selectOptions"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "isCreatingStep": "isCreatingStep"; "setWhileTemplateVariables": "setWhileTemplateVariables"; "setAdvancedSettingsVariables": "setAdvancedSettingsVariables"; "computeHtmlGrammarFn": "computeHtmlGrammarFn"; "whileTemplates": "whileTemplates"; "whileSearchPlaceholder": "whileSearchPlaceholder"; "whileSearchValue": "whileSearchValue"; "elementOptions": "elementOptions"; "hasMoreElements": "hasMoreElements"; "isLoadingElements": "isLoadingElements"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "parameterOptions": "parameterOptions"; "hasMoreParameters": "hasMoreParameters"; "isLoadingParameters": "isLoadingParameters"; "environmentOptions": "environmentOptions"; "hasMoreEnvironments": "hasMoreEnvironments"; "isLoadingEnvironments": "isLoadingEnvironments"; "defaultTestDataProfileId": "defaultTestDataProfileId"; "defaultTestDataStartIndex": "defaultTestDataStartIndex"; "defaultTestDataEndIndex": "defaultTestDataEndIndex"; "isInsideForLoopStep": "isInsideForLoopStep"; "hasTestDataProfile": "hasTestDataProfile"; "isDebug": "isDebug"; "testStep": "testStep"; "testCaseEnvironmentName": "testCaseEnvironmentName"; "testCaseEnvironmentLabelSuffix": "testCaseEnvironmentLabelSuffix"; "environmentLegacyDeprecationMessage": "environmentLegacyDeprecationMessage"; }, { "createStep": "createStep"; "cancelled": "cancelled"; "loopTypeChange": "loopTypeChange"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "loadMoreElements": "loadMoreElements"; "searchElements": "searchElements"; "searchElementsByScreenName": "searchElementsByScreenName"; "createElement": "createElement"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "createScreenNameRequest": "createScreenNameRequest"; "cancelElementForm": "cancelElementForm"; "searchParameters": "searchParameters"; "loadMoreParameters": "loadMoreParameters"; "searchEnvironments": "searchEnvironments"; "loadMoreEnvironments": "loadMoreEnvironments"; "redirectToParameter": "redirectToParameter"; "redirectToEnvironment": "redirectToEnvironment"; "manageProfilesClicked": "manageProfilesClicked"; }, never, never>;
227
241
  }