@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.
- package/esm2020/lib/ai-prompt-card/ai-prompt-card.component.mjs +3 -1
- package/esm2020/lib/sub-steps-confirmation-dialog/sub-steps-confirmation-dialog.component.mjs +94 -31
- package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +40 -8
- package/esm2020/lib/test-case-details/test-case-details.component.mjs +5 -3
- package/fesm2015/cqa-lib-cqa-ui.mjs +134 -37
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +133 -35
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/ai-prompt-card/ai-prompt-card.component.d.ts +1 -1
- package/lib/sub-steps-confirmation-dialog/sub-steps-confirmation-dialog.component.d.ts +72 -11
- package/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.d.ts +12 -1
- package/lib/test-case-details/test-case-details.component.d.ts +3 -1
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -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
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
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
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
32
|
-
disableBackdropClose
|
|
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"; "
|
|
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
|
}
|