@cqa-lib/cqa-ui 1.1.271 → 1.1.273

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 (27) hide show
  1. package/esm2020/lib/badge/badge.component.mjs +25 -3
  2. package/esm2020/lib/dashboards/insight-card/insight-card.component.mjs +1 -1
  3. package/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +3 -1
  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/execution-screen/loop-step/loop-step.component.mjs +17 -31
  7. package/esm2020/lib/execution-screen/session-changes-modal/session-changes-modal.component.mjs +7 -4
  8. package/esm2020/lib/execution-screen/step-group/step-group.component.mjs +2 -2
  9. package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +4 -74
  10. package/esm2020/lib/run-history-card/run-history-card.component.mjs +1 -1
  11. package/esm2020/lib/step-builder/step-builder-database/step-builder-database.component.mjs +1 -1
  12. package/esm2020/lib/test-case-details/api-edit-step/api-edit-step.component.mjs +303 -72
  13. package/esm2020/lib/test-case-details/element-popup/element-popup.component.mjs +1 -1
  14. package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +40 -13
  15. package/esm2020/lib/test-case-details/test-case-details.component.mjs +7 -3
  16. package/fesm2015/cqa-lib-cqa-ui.mjs +418 -215
  17. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  18. package/fesm2020/cqa-lib-cqa-ui.mjs +405 -200
  19. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  20. package/lib/badge/badge.component.d.ts +6 -1
  21. package/lib/execution-screen/loop-step/loop-step.component.d.ts +1 -5
  22. package/lib/execution-screen/session-changes-modal/session-changes-modal.component.d.ts +3 -2
  23. package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +0 -4
  24. package/lib/test-case-details/api-edit-step/api-edit-step.component.d.ts +12 -1
  25. package/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.d.ts +4 -1
  26. package/lib/test-case-details/test-case-details.component.d.ts +3 -1
  27. package/package.json +1 -1
@@ -22,6 +22,11 @@ export declare class BadgeComponent {
22
22
  keyTextColor?: string;
23
23
  valueTextColor?: string;
24
24
  isLoading: boolean;
25
+ fullWidth: boolean;
26
+ centerContent: boolean;
27
+ get containerStyles(): {
28
+ [key: string]: string;
29
+ };
25
30
  get badgeClasses(): string;
26
31
  get badgeStyles(): {
27
32
  [key: string]: string;
@@ -35,5 +40,5 @@ export declare class BadgeComponent {
35
40
  [key: string]: string;
36
41
  };
37
42
  static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "cqa-badge", never, { "type": "type"; "label": "label"; "icon": "icon"; "iconLibrary": "iconLibrary"; "variant": "variant"; "size": "size"; "backgroundColor": "backgroundColor"; "textColor": "textColor"; "borderColor": "borderColor"; "iconBackgroundColor": "iconBackgroundColor"; "iconColor": "iconColor"; "iconSize": "iconSize"; "inlineStyles": "inlineStyles"; "key": "key"; "value": "value"; "keyTextColor": "keyTextColor"; "valueTextColor": "valueTextColor"; "isLoading": "isLoading"; }, {}, never, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "cqa-badge", never, { "type": "type"; "label": "label"; "icon": "icon"; "iconLibrary": "iconLibrary"; "variant": "variant"; "size": "size"; "backgroundColor": "backgroundColor"; "textColor": "textColor"; "borderColor": "borderColor"; "iconBackgroundColor": "iconBackgroundColor"; "iconColor": "iconColor"; "iconSize": "iconSize"; "inlineStyles": "inlineStyles"; "key": "key"; "value": "value"; "keyTextColor": "keyTextColor"; "valueTextColor": "valueTextColor"; "isLoading": "isLoading"; "fullWidth": "fullWidth"; "centerContent": "centerContent"; }, {}, never, never>;
39
44
  }
@@ -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;
@@ -99,6 +99,12 @@ export interface ParsedCurl {
99
99
  url: string;
100
100
  headers: ApiEditHeaderRow[];
101
101
  body: string;
102
+ /** Entries from -F / --form flags (multipart/form-data). */
103
+ formData: {
104
+ key: string;
105
+ type: 'text' | 'file';
106
+ value: string;
107
+ }[];
102
108
  }
103
109
  export declare class ApiEditStepComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {
104
110
  private readonly fb;
@@ -361,6 +367,11 @@ export declare class ApiEditStepComponent implements OnChanges, OnInit, AfterVie
361
367
  private parseQueryParamsFromUrl;
362
368
  /** Get base URL (without query/fragment) for building URL from params. Preserves relative URLs. */
363
369
  private getBaseUrl;
370
+ /**
371
+ * Set the payload format dropdown using the Content-Type header first, then
372
+ * fall back to inspecting the body content (JSON braces, XML tags, HTML doctype).
373
+ */
374
+ private applyBodyFormat;
364
375
  /** Parse application/x-www-form-urlencoded body (key=value&...) into key-value rows. */
365
376
  private parseFormUrlEncodedBody;
366
377
  /**
@@ -381,7 +392,7 @@ export declare class ApiEditStepComponent implements OnChanges, OnInit, AfterVie
381
392
  openImportCurlPanel(): void;
382
393
  /** Reset URL, method, headers, body, and params to empty/default before applying imported cURL. */
383
394
  private resetRequestFieldsBeforeCurlImport;
384
- /** Handler: parse cURL from control, bind to form fields, emit and close panel. Called when user clicks Import button. */
395
+ /** Handler: parse cURL from control, bind to form fields, emit and close panel. */
385
396
  onImportCurlConfirm(): void;
386
397
  /** Handler: emit cancel and close panel. Called when user clicks Cancel in import cURL panel. */
387
398
  onCancelImportCurl(): void;
@@ -65,6 +65,7 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
65
65
  configTitle: string;
66
66
  configSections: TestCaseDetailsConfigSection[];
67
67
  configSectionsRow2: TestCaseDetailsConfigSection[];
68
+ isSaving: boolean;
68
69
  /** Optional list of prerequisite test case options for the multi-select. If not provided, uses default sample options. */
69
70
  prerequisiteCaseOptions: {
70
71
  value: string;
@@ -182,6 +183,8 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
182
183
  /** Get value from Waits section - supports both 'Wait and retries' and 'Waits & Retries' titles */
183
184
  private getWaitsRetriesValue;
184
185
  private getPrerequisiteCasesFromConfig;
186
+ /** Edit mode should show placeholder when dataset is not selected. */
187
+ private normalizeTestDataSetRawValue;
185
188
  get hasPrerequisiteCaseConfig(): boolean;
186
189
  ngOnInit(): void;
187
190
  private resolveToOptionValue;
@@ -203,5 +206,5 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
203
206
  };
204
207
  getLabelCloseIconColor(_label: string): string;
205
208
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsEditComponent, never>;
206
- static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseDetailsEditComponent, "cqa-test-case-details-edit", never, { "descriptionTitle": "descriptionTitle"; "descriptionContent": "descriptionContent"; "enableMarkdown": "enableMarkdown"; "metadataItems": "metadataItems"; "labels": "labels"; "configTitle": "configTitle"; "configSections": "configSections"; "configSectionsRow2": "configSectionsRow2"; "prerequisiteCaseOptions": "prerequisiteCaseOptions"; "platform": "platform"; "isStepGroup": "isStepGroup"; "selectConfigOverrides": "selectConfigOverrides"; }, { "save": "save"; "cancel": "cancel"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; }, never, never>;
209
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseDetailsEditComponent, "cqa-test-case-details-edit", never, { "descriptionTitle": "descriptionTitle"; "descriptionContent": "descriptionContent"; "enableMarkdown": "enableMarkdown"; "metadataItems": "metadataItems"; "labels": "labels"; "configTitle": "configTitle"; "configSections": "configSections"; "configSectionsRow2": "configSectionsRow2"; "isSaving": "isSaving"; "prerequisiteCaseOptions": "prerequisiteCaseOptions"; "platform": "platform"; "isStepGroup": "isStepGroup"; "selectConfigOverrides": "selectConfigOverrides"; }, { "save": "save"; "cancel": "cancel"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; }, never, never>;
207
210
  }
@@ -38,6 +38,8 @@ export declare class TestCaseDetailsComponent implements OnInit {
38
38
  isStepGroup: boolean;
39
39
  /** Override config per select for API-driven options, server search, load more. */
40
40
  selectConfigOverrides: SelectConfigOverrides;
41
+ /** True while parent is saving changes. */
42
+ isSaving: boolean;
41
43
  /** Labels to filter out from metadata for step groups */
42
44
  private readonly stepGroupExcludedMetadataLabels;
43
45
  /** Filtered metadata items - excludes Priority and Type for step groups */
@@ -72,5 +74,5 @@ export declare class TestCaseDetailsComponent implements OnInit {
72
74
  /** Text color for metadata value (e.g. red for critical priority) */
73
75
  getValueTextClass(item: TestCaseDetailsMetadataItem): string;
74
76
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsComponent, never>;
75
- static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseDetailsComponent, "cqa-test-case-details", never, { "editing": "editing"; "startInEditMode": "startInEditMode"; "descriptionTitle": "descriptionTitle"; "descriptionContent": "descriptionContent"; "enableMarkdown": "enableMarkdown"; "showEditButton": "showEditButton"; "metadataItems": "metadataItems"; "labels": "labels"; "configTitle": "configTitle"; "configSections": "configSections"; "configSectionsRow2": "configSectionsRow2"; "platform": "platform"; "isStepGroup": "isStepGroup"; "selectConfigOverrides": "selectConfigOverrides"; }, { "editDescription": "editDescription"; "cancel": "cancel"; "saveChanges": "saveChanges"; "metadataLinkClick": "metadataLinkClick"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; }, never, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseDetailsComponent, "cqa-test-case-details", never, { "editing": "editing"; "startInEditMode": "startInEditMode"; "descriptionTitle": "descriptionTitle"; "descriptionContent": "descriptionContent"; "enableMarkdown": "enableMarkdown"; "showEditButton": "showEditButton"; "metadataItems": "metadataItems"; "labels": "labels"; "configTitle": "configTitle"; "configSections": "configSections"; "configSectionsRow2": "configSectionsRow2"; "platform": "platform"; "isStepGroup": "isStepGroup"; "selectConfigOverrides": "selectConfigOverrides"; "isSaving": "isSaving"; }, { "editDescription": "editDescription"; "cancel": "cancel"; "saveChanges": "saveChanges"; "metadataLinkClick": "metadataLinkClick"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; }, never, never>;
76
78
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cqa-lib/cqa-ui",
3
- "version": "1.1.271",
3
+ "version": "1.1.273",
4
4
  "description": "UI Kit library for Angular 13.4",
5
5
  "keywords": [
6
6
  "angular",