@cqa-lib/cqa-ui 1.1.507 → 1.1.509

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
- export declare type AiPromptCardOperation = 'created' | 'edited' | 'duplicated' | 'deleted';
2
+ export declare type AiPromptCardOperation = 'created' | 'edited' | 'duplicated' | 'deleted' | 'converted';
3
3
  export declare class AiPromptCardComponent {
4
4
  stepNumber: string;
5
5
  stepName: string;
@@ -1,4 +1,4 @@
1
- import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
1
+ import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
2
  import { MatRadioChange } from '@angular/material/radio';
3
3
  import { ButtonVariant } from '../button/button.component';
4
4
  import * as i0 from "@angular/core";
@@ -17,30 +17,91 @@ export interface SubStepsConfirmationOption {
17
17
  /** Variant for the primary CTA when this option is selected. Defaults to `filled`. */
18
18
  buttonVariant?: ButtonVariant;
19
19
  }
20
+ /** Single row rendered in the optional preview list above the radio group. */
21
+ export interface SubStepsConfirmationPreviewItem {
22
+ /** Bold primary text (e.g. action name). */
23
+ primary: string;
24
+ /** Optional secondary text appended after an em-dash (e.g. element label). */
25
+ secondary?: string;
26
+ }
20
27
  /**
21
- * Confirmation dialog shown before editing an AI-Agent step whose execution has
22
- * already generated sub-steps (CON-926). The caller supplies the option list
23
- * and copy; this component only renders the UI and emits the user's choice.
28
+ * Full configuration payload for the sub-steps confirmation dialog. Pass a new
29
+ * object reference whenever the content should change the component uses
30
+ * `OnPush` change detection and only reacts to reference changes.
24
31
  */
25
- export declare class SubStepsConfirmationDialogComponent implements OnChanges {
26
- isOpen: boolean;
27
- title: string;
28
- description: string;
32
+ export interface SubStepsConfirmationDialogConfig {
33
+ title?: string;
34
+ description?: string;
35
+ /** Optional subtitle shown under the title (e.g. action type / parent context). */
36
+ subtitle?: string;
29
37
  options: SubStepsConfirmationOption[];
30
38
  selectedValue?: string;
31
- cancelLabel: string;
32
- disableBackdropClose: boolean;
39
+ cancelLabel?: string;
40
+ disableBackdropClose?: boolean;
41
+ /** Hide the top-right close (X) button. */
42
+ hideCloseButton?: boolean;
43
+ /** Hide the Cancel button in the footer. CTA expands to full width when true. */
44
+ hideCancel?: boolean;
45
+ /** Amber warnings list rendered above the radio group. */
46
+ warnings?: string[];
47
+ /** Optional numbered preview list rendered between description and radio group. */
48
+ previewItems?: SubStepsConfirmationPreviewItem[];
49
+ /** If >0, render a "+ N more" row after the preview list. */
50
+ previewOverflowCount?: number;
51
+ /**
52
+ * If >0, show an `M:SS` countdown in the header. `timeoutExpired` fires once
53
+ * when the countdown reaches 0. Countdown restarts whenever `isOpen` flips
54
+ * to true or a new config reference is passed with a different `timeoutSeconds`.
55
+ */
56
+ timeoutSeconds?: number;
57
+ }
58
+ /**
59
+ * Confirmation dialog shown before editing an AI-Agent step whose execution has
60
+ * already generated sub-steps (CON-926). Also used by CON-1166 to review
61
+ * AI-generated steps before persisting.
62
+ *
63
+ * The caller supplies the whole payload via the `config` input (one object, one
64
+ * reference change = one re-render). `isOpen` stays separate so open/close
65
+ * transitions don't force callers to rebuild the payload.
66
+ */
67
+ export declare class SubStepsConfirmationDialogComponent implements OnChanges, OnDestroy {
68
+ private readonly cdr;
69
+ isOpen: boolean;
70
+ config: SubStepsConfirmationDialogConfig;
33
71
  selectionChange: EventEmitter<string>;
34
72
  confirm: EventEmitter<string>;
35
73
  closeModal: EventEmitter<void>;
74
+ timeoutExpired: EventEmitter<void>;
75
+ /** Local selection state. Seeded from `config.selectedValue` and user-driven thereafter. */
76
+ selectedValue?: string;
77
+ remainingSeconds: number;
78
+ private _tickIntervalId;
79
+ private _timeoutEmitted;
80
+ constructor(cdr: ChangeDetectorRef);
36
81
  ngOnChanges(changes: SimpleChanges): void;
82
+ ngOnDestroy(): void;
83
+ get title(): string;
84
+ get description(): string;
85
+ get subtitle(): string | undefined;
86
+ get options(): SubStepsConfirmationOption[];
87
+ get cancelLabel(): string;
88
+ get disableBackdropClose(): boolean;
89
+ get hideCloseButton(): boolean;
90
+ get hideCancel(): boolean;
91
+ get warnings(): string[];
92
+ get previewItems(): SubStepsConfirmationPreviewItem[];
93
+ get previewOverflowCount(): number;
37
94
  get currentOption(): SubStepsConfirmationOption | undefined;
95
+ get showCountdown(): boolean;
96
+ get countdownLabel(): string;
38
97
  isSelected(option: SubStepsConfirmationOption): boolean;
39
98
  onSelect(option: SubStepsConfirmationOption): void;
40
99
  onRadioChange(event: MatRadioChange): void;
41
100
  onBackdropClick(event: MouseEvent): void;
42
101
  onClose(): void;
43
102
  onConfirm(): void;
103
+ private _startCountdown;
104
+ private _stopCountdown;
44
105
  static ɵfac: i0.ɵɵFactoryDeclaration<SubStepsConfirmationDialogComponent, never>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<SubStepsConfirmationDialogComponent, "cqa-sub-steps-confirmation-dialog", never, { "isOpen": "isOpen"; "title": "title"; "description": "description"; "options": "options"; "selectedValue": "selectedValue"; "cancelLabel": "cancelLabel"; "disableBackdropClose": "disableBackdropClose"; }, { "selectionChange": "selectionChange"; "confirm": "confirm"; "closeModal": "closeModal"; }, never, never>;
106
+ static ɵcmp: i0.ɵɵComponentDeclaration<SubStepsConfirmationDialogComponent, "cqa-sub-steps-confirmation-dialog", never, { "isOpen": "isOpen"; "config": "config"; }, { "selectionChange": "selectionChange"; "confirm": "confirm"; "closeModal": "closeModal"; "timeoutExpired": "timeoutExpired"; }, never, never>;
46
107
  }
@@ -2,6 +2,7 @@ import { EventEmitter, ChangeDetectorRef, OnInit, OnChanges, SimpleChanges } fro
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { TestCaseDetailsConfigSection, TestCaseDetailsMetadataItem } from '../test-case-details.models';
4
4
  import { DynamicSelectFieldConfig, SelectOption } from '../../dynamic-select/dynamic-select-field.component';
5
+ import { DropdownOption } from '../../dropdown-button/dropdown-button.component';
5
6
  import * as i0 from "@angular/core";
6
7
  /** Override config for a specific select. Use for server-side search, load more, custom options. */
7
8
  export interface SelectConfigOverride {
@@ -110,6 +111,8 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
110
111
  apiMockingShowProgress: boolean;
111
112
  apiMockingSummaryText?: string;
112
113
  apiMockingPercentText?: string;
114
+ /** Org-level default for Test Case Timeout (minutes). Used to flag the input as "ORG level" vs "Custom". */
115
+ orgLevelTestCaseTimeout?: string | number | null;
113
116
  save: EventEmitter<TestCaseDetailsEditFormData>;
114
117
  cancel: EventEmitter<void>;
115
118
  /** Emitted when user searches in a select (serverSearch mode). Call API and update options via selectConfigOverrides. */
@@ -148,6 +151,8 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
148
151
  /** Local edit-mode mirror of the `storeMock` boolean. */
149
152
  editApiMockingStoreMock: boolean;
150
153
  testCaseTimeout: string;
154
+ /** 'org' → input disabled, payload sends null for testcaseTimeout; 'custom' → input enabled, payload sends the typed value. */
155
+ testCaseTimeoutMode: 'org' | 'custom';
151
156
  waitTimeoutLocators: string;
152
157
  autoWaitEnabled: boolean;
153
158
  retryFailedSteps: string;
@@ -220,6 +225,12 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
220
225
  private getWaitsRetriesValue;
221
226
  /** Strip trailing 's' from value (e.g. "10s" -> "10") for display in timeout inputs */
222
227
  private stripTrailingUnitS;
228
+ readonly testCaseTimeoutModeOptions: DropdownOption[];
229
+ /** Value shown in the disabled (org) or enabled (custom) Test Case Timeout input. */
230
+ get testCaseTimeoutDisplayValue(): string;
231
+ onTestCaseTimeoutModeChange(mode: 'org' | 'custom'): void;
232
+ /** True when the portal wrapped the Test Case Timeout value as "Org Level (...)", meaning the TC API returned null. */
233
+ private isTestCaseTimeoutFromOrg;
223
234
  /** Allow only digits; used for Retry Failed Steps, Test Case Timeout, Wait Timeout inputs */
224
235
  onlyDigits(val: string): string;
225
236
  /** For update: use "0" when value is empty so API gets a number */
@@ -259,5 +270,5 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
259
270
  };
260
271
  getLabelCloseIconColor(_label: string): string;
261
272
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsEditComponent, never>;
262
- 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"; "showApiMockingCard": "showApiMockingCard"; "apiMockingTitle": "apiMockingTitle"; "apiMockingStatusLabel": "apiMockingStatusLabel"; "apiMockingCaptureLabel": "apiMockingCaptureLabel"; "apiMockingCaptureHint": "apiMockingCaptureHint"; "apiMockingRenewLabel": "apiMockingRenewLabel"; "apiMockingRenewHint": "apiMockingRenewHint"; "apiMockingRestoreMock": "apiMockingRestoreMock"; "apiMockingStoreMock": "apiMockingStoreMock"; "apiMockingMockedApisCount": "apiMockingMockedApisCount"; "apiMockingTotalApisCount": "apiMockingTotalApisCount"; "apiMockingProgressPercent": "apiMockingProgressPercent"; "apiMockingShowProgress": "apiMockingShowProgress"; "apiMockingSummaryText": "apiMockingSummaryText"; "apiMockingPercentText": "apiMockingPercentText"; }, { "save": "save"; "cancel": "cancel"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; "apiMockingRestoreMockChange": "apiMockingRestoreMockChange"; "apiMockingStoreMockChange": "apiMockingStoreMockChange"; }, never, never>;
273
+ 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"; "showApiMockingCard": "showApiMockingCard"; "apiMockingTitle": "apiMockingTitle"; "apiMockingStatusLabel": "apiMockingStatusLabel"; "apiMockingCaptureLabel": "apiMockingCaptureLabel"; "apiMockingCaptureHint": "apiMockingCaptureHint"; "apiMockingRenewLabel": "apiMockingRenewLabel"; "apiMockingRenewHint": "apiMockingRenewHint"; "apiMockingRestoreMock": "apiMockingRestoreMock"; "apiMockingStoreMock": "apiMockingStoreMock"; "apiMockingMockedApisCount": "apiMockingMockedApisCount"; "apiMockingTotalApisCount": "apiMockingTotalApisCount"; "apiMockingProgressPercent": "apiMockingProgressPercent"; "apiMockingShowProgress": "apiMockingShowProgress"; "apiMockingSummaryText": "apiMockingSummaryText"; "apiMockingPercentText": "apiMockingPercentText"; "orgLevelTestCaseTimeout": "orgLevelTestCaseTimeout"; }, { "save": "save"; "cancel": "cancel"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; "apiMockingRestoreMockChange": "apiMockingRestoreMockChange"; "apiMockingStoreMockChange": "apiMockingStoreMockChange"; }, never, never>;
263
274
  }
@@ -66,6 +66,8 @@ export declare class TestCaseDetailsComponent implements OnInit, OnChanges {
66
66
  apiMockingSummaryText?: string;
67
67
  apiMockingPercentText?: string;
68
68
  apiMockingConfigureButtonLabel: string;
69
+ /** Org-level default for Test Case Timeout (minutes). Forwarded to edit mode to toggle the "ORG level"/"Custom" badge. */
70
+ orgLevelTestCaseTimeout?: string | number | null;
69
71
  /** Labels to filter out from metadata for step groups */
70
72
  private readonly stepGroupExcludedMetadataLabels;
71
73
  /** When true, description (view mode) is expanded; when false, clamped to 4 lines with Read more */
@@ -111,5 +113,5 @@ export declare class TestCaseDetailsComponent implements OnInit, OnChanges {
111
113
  /** Text color for metadata value (e.g. red for critical priority) */
112
114
  getValueTextClass(item: TestCaseDetailsMetadataItem): string;
113
115
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsComponent, never>;
114
- 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"; "showApiMockingCard": "showApiMockingCard"; "apiMockingTitle": "apiMockingTitle"; "apiMockingStatusLabel": "apiMockingStatusLabel"; "apiMockingCaptureLabel": "apiMockingCaptureLabel"; "apiMockingRenewLabel": "apiMockingRenewLabel"; "apiMockingCaptureHint": "apiMockingCaptureHint"; "apiMockingRenewHint": "apiMockingRenewHint"; "apiMockingRestoreMock": "apiMockingRestoreMock"; "apiMockingStoreMock": "apiMockingStoreMock"; "apiMockingMockedApisCount": "apiMockingMockedApisCount"; "apiMockingTotalApisCount": "apiMockingTotalApisCount"; "apiMockingProgressPercent": "apiMockingProgressPercent"; "apiMockingShowProgress": "apiMockingShowProgress"; "apiMockingSummaryText": "apiMockingSummaryText"; "apiMockingPercentText": "apiMockingPercentText"; "apiMockingConfigureButtonLabel": "apiMockingConfigureButtonLabel"; }, { "editDescription": "editDescription"; "cancel": "cancel"; "saveChanges": "saveChanges"; "metadataLinkClick": "metadataLinkClick"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; "configureApiMocking": "configureApiMocking"; "apiMockingRestoreMockChange": "apiMockingRestoreMockChange"; "apiMockingStoreMockChange": "apiMockingStoreMockChange"; }, never, never>;
116
+ 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"; "showApiMockingCard": "showApiMockingCard"; "apiMockingTitle": "apiMockingTitle"; "apiMockingStatusLabel": "apiMockingStatusLabel"; "apiMockingCaptureLabel": "apiMockingCaptureLabel"; "apiMockingRenewLabel": "apiMockingRenewLabel"; "apiMockingCaptureHint": "apiMockingCaptureHint"; "apiMockingRenewHint": "apiMockingRenewHint"; "apiMockingRestoreMock": "apiMockingRestoreMock"; "apiMockingStoreMock": "apiMockingStoreMock"; "apiMockingMockedApisCount": "apiMockingMockedApisCount"; "apiMockingTotalApisCount": "apiMockingTotalApisCount"; "apiMockingProgressPercent": "apiMockingProgressPercent"; "apiMockingShowProgress": "apiMockingShowProgress"; "apiMockingSummaryText": "apiMockingSummaryText"; "apiMockingPercentText": "apiMockingPercentText"; "apiMockingConfigureButtonLabel": "apiMockingConfigureButtonLabel"; "orgLevelTestCaseTimeout": "orgLevelTestCaseTimeout"; }, { "editDescription": "editDescription"; "cancel": "cancel"; "saveChanges": "saveChanges"; "metadataLinkClick": "metadataLinkClick"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; "configureApiMocking": "configureApiMocking"; "apiMockingRestoreMockChange": "apiMockingRestoreMockChange"; "apiMockingStoreMockChange": "apiMockingStoreMockChange"; }, never, never>;
115
117
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cqa-lib/cqa-ui",
3
- "version": "1.1.507",
3
+ "version": "1.1.509",
4
4
  "description": "UI Kit library for Angular 13.4",
5
5
  "keywords": [
6
6
  "angular",