@cqa-lib/cqa-ui 1.1.543 → 1.1.545
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/templates/modular-table-template/dialogs/delete-folder-dialog.component.mjs +7 -7
- package/esm2020/lib/templates/modular-table-template/dialogs/move-to-folder-dialog.component.mjs +23 -23
- package/esm2020/lib/templates/modular-table-template/dialogs/new-folder-dialog.component.mjs +2 -2
- package/esm2020/lib/templates/modular-table-template/directives/folder-drop.directive.mjs +2 -2
- package/esm2020/lib/templates/modular-table-template/folder-sidebar/folder-sidebar.component.mjs +10 -10
- package/esm2020/lib/templates/modular-table-template/modular-table-template.component.mjs +15 -15
- package/esm2020/lib/templates/modular-table-template/modular-table-template.models.mjs +8 -8
- package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +159 -7
- package/esm2020/lib/test-case-details/test-case-details.component.mjs +7 -3
- package/esm2020/lib/ui-kit.module.mjs +6 -1
- package/esm2020/lib/viewport-selector/viewport-selector.component.mjs +348 -0
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +583 -104
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +599 -101
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/templates/modular-table-template/dialogs/move-to-folder-dialog.component.d.ts +2 -2
- package/lib/templates/modular-table-template/dialogs/new-folder-dialog.component.d.ts +1 -1
- package/lib/templates/modular-table-template/directives/folder-drop.directive.d.ts +1 -1
- package/lib/templates/modular-table-template/folder-sidebar/folder-sidebar.component.d.ts +5 -5
- package/lib/templates/modular-table-template/modular-table-template.component.d.ts +8 -8
- package/lib/templates/modular-table-template/modular-table-template.models.d.ts +7 -7
- package/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.d.ts +30 -1
- package/lib/test-case-details/test-case-details.component.d.ts +8 -1
- package/lib/ui-kit.module.d.ts +189 -188
- package/lib/viewport-selector/viewport-selector.component.d.ts +74 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/styles.css +1 -1
|
@@ -37,7 +37,7 @@ export declare class MoveToFolderDialogComponent implements OnInit, OnChanges {
|
|
|
37
37
|
/** Folder ids to expand by default. If not provided, ancestors of `currentFolderId` (or
|
|
38
38
|
* `pickedFolderId`, when no current context exists) are expanded. */
|
|
39
39
|
initialExpandedIds?: number[];
|
|
40
|
-
/** Disables the top-level "
|
|
40
|
+
/** Disables the top-level "Unorganized / no folder" row. Decoupled from `currentFolderId`
|
|
41
41
|
* so consumers that reuse this picker for non-move flows (e.g. parent-folder selection
|
|
42
42
|
* inside the New Folder dialog) can keep the root option clickable. The move flows wire
|
|
43
43
|
* this to `currentFolderId == null`. */
|
|
@@ -57,7 +57,7 @@ export declare class MoveToFolderDialogComponent implements OnInit, OnChanges {
|
|
|
57
57
|
private collectAncestors;
|
|
58
58
|
get flatRows(): FlatFolderRow[];
|
|
59
59
|
isPicked(id: number | null): boolean;
|
|
60
|
-
get
|
|
60
|
+
get isUnorganizedDisabled(): boolean;
|
|
61
61
|
pick(id: number | null): void;
|
|
62
62
|
toggleExpanded(id: number, event: Event): void;
|
|
63
63
|
trackById: (_: number, row: FlatFolderRow) => number;
|
|
@@ -49,7 +49,7 @@ export declare class NewFolderDialogComponent {
|
|
|
49
49
|
}>;
|
|
50
50
|
cancelled: EventEmitter<void>;
|
|
51
51
|
/** Labels passed to the embedded tree picker. Re-uses the move-dialog surface but
|
|
52
|
-
* rewrites the root row's label so it reads "(no parent)" instead of "
|
|
52
|
+
* rewrites the root row's label so it reads "(no parent)" instead of "Unorganized"
|
|
53
53
|
* for the create-folder context. */
|
|
54
54
|
parentPickerLabels: ModularLabels;
|
|
55
55
|
constructor(cdr: ChangeDetectorRef);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class FolderDropDirective {
|
|
4
|
-
/** Folder id this drop target represents. `null` means "
|
|
4
|
+
/** Folder id this drop target represents. `null` means "unorganized / root". */
|
|
5
5
|
targetFolderId: number | null;
|
|
6
6
|
dropEnabled: boolean;
|
|
7
7
|
testsDropped: EventEmitter<{
|
|
@@ -17,7 +17,7 @@ export declare class FolderSidebarComponent implements OnDestroy {
|
|
|
17
17
|
folders: FolderNode[];
|
|
18
18
|
selectedFolderId: number | null;
|
|
19
19
|
expandedFolderIds: number[];
|
|
20
|
-
|
|
20
|
+
unorganizedCount: number;
|
|
21
21
|
allowCreate: boolean;
|
|
22
22
|
allowRename: boolean;
|
|
23
23
|
allowDelete: boolean;
|
|
@@ -90,7 +90,7 @@ export declare class FolderSidebarComponent implements OnDestroy {
|
|
|
90
90
|
testIds: Array<string | number>;
|
|
91
91
|
targetFolderId: number | null;
|
|
92
92
|
}>;
|
|
93
|
-
/** Fires when a folder row is dropped onto another folder (or the
|
|
93
|
+
/** Fires when a folder row is dropped onto another folder (or the Unorganized row). */
|
|
94
94
|
folderDropped: EventEmitter<{
|
|
95
95
|
id: number;
|
|
96
96
|
newParentId: number | null;
|
|
@@ -161,7 +161,7 @@ export declare class FolderSidebarComponent implements OnDestroy {
|
|
|
161
161
|
* are available on the backend. Suppressed during sidebar search. */
|
|
162
162
|
onTreeScroll(event: Event): void;
|
|
163
163
|
onSelect(n: FolderNode | null): void;
|
|
164
|
-
|
|
164
|
+
onSelectUnorganized(): void;
|
|
165
165
|
beginRename(n: FolderNode, event: Event): void;
|
|
166
166
|
/** True when the active rename draft passes the name rules (non-empty, within max length). */
|
|
167
167
|
get isRenameDraftValid(): boolean;
|
|
@@ -206,7 +206,7 @@ export declare class FolderSidebarComponent implements OnDestroy {
|
|
|
206
206
|
/**
|
|
207
207
|
* Drop target received a folder drag. Validate against self/descendant cycles and
|
|
208
208
|
* emit `folderDropped` if the move is legal. Called from the directive's
|
|
209
|
-
* `(folderDropped)` output on every row and on the
|
|
209
|
+
* `(folderDropped)` output on every row and on the Unorganized row.
|
|
210
210
|
*/
|
|
211
211
|
onFolderRowDropped(targetId: number | null, event: {
|
|
212
212
|
folderId: number;
|
|
@@ -233,6 +233,6 @@ export declare class FolderSidebarComponent implements OnDestroy {
|
|
|
233
233
|
*/
|
|
234
234
|
private focusRenameInput;
|
|
235
235
|
static ɵfac: i0.ɵɵFactoryDeclaration<FolderSidebarComponent, never>;
|
|
236
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FolderSidebarComponent, "cqa-folder-sidebar", never, { "folders": "folders"; "selectedFolderId": "selectedFolderId"; "expandedFolderIds": "expandedFolderIds"; "
|
|
236
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FolderSidebarComponent, "cqa-folder-sidebar", never, { "folders": "folders"; "selectedFolderId": "selectedFolderId"; "expandedFolderIds": "expandedFolderIds"; "unorganizedCount": "unorganizedCount"; "allowCreate": "allowCreate"; "allowRename": "allowRename"; "allowDelete": "allowDelete"; "allowMove": "allowMove"; "allowDuplicate": "allowDuplicate"; "allowDrop": "allowDrop"; "showCounts": "showCounts"; "collapsed": "collapsed"; "labels": "labels"; "serverSideSearch": "serverSideSearch"; "rootTotal": "rootTotal"; "folderSearchLoading": "folderSearchLoading"; "rootFoldersLoading": "rootFoldersLoading"; }, { "folderSelected": "folderSelected"; "folderExpansionToggled": "folderExpansionToggled"; "folderChildrenRequested": "folderChildrenRequested"; "folderLoadMoreRequested": "folderLoadMoreRequested"; "searchChange": "searchChange"; "rootLoadMoreRequested": "rootLoadMoreRequested"; "folderCreated": "folderCreated"; "folderCreateRequested": "folderCreateRequested"; "folderRenamed": "folderRenamed"; "folderDeleted": "folderDeleted"; "folderMoveRequested": "folderMoveRequested"; "folderDuplicateRequested": "folderDuplicateRequested"; "testsDropped": "testsDropped"; "folderDropped": "folderDropped"; "collapsedChange": "collapsedChange"; }, never, never>;
|
|
237
237
|
}
|
|
238
238
|
export {};
|
|
@@ -116,15 +116,15 @@ export declare class ModularTableTemplateComponent implements OnInit, OnChanges,
|
|
|
116
116
|
filteredRows: any[];
|
|
117
117
|
pagedRows: any[];
|
|
118
118
|
folders: FolderNode[];
|
|
119
|
-
/** Host-provided snapshot of root-level folders for the "
|
|
119
|
+
/** Host-provided snapshot of root-level folders for the "Organized" grid.
|
|
120
120
|
* When set, takes precedence over `this.folders` for `rootFolderTiles` so
|
|
121
|
-
* the
|
|
121
|
+
* the Organized section stays stable while sidebar search swaps `folders`
|
|
122
122
|
* to a filtered result set. Mirrors the host-driven fallback pattern used
|
|
123
123
|
* by `selectedFolderNode` (subfolders) and `selectedFolderTrail` (breadcrumb). */
|
|
124
124
|
rootFolders: FolderNode[] | null;
|
|
125
125
|
selectedFolderId: number | null;
|
|
126
126
|
expandedFolderIds: number[];
|
|
127
|
-
|
|
127
|
+
unorganizedCount: number;
|
|
128
128
|
folderIdAccessor: FolderIdAccessor;
|
|
129
129
|
modularConfig: ModularConfig;
|
|
130
130
|
modularLabels: ModularLabels;
|
|
@@ -141,7 +141,7 @@ export declare class ModularTableTemplateComponent implements OnInit, OnChanges,
|
|
|
141
141
|
folderSearchLoading: boolean;
|
|
142
142
|
/** Lazy-load: true while a root-page fetch is in flight (initial load OR
|
|
143
143
|
* the scroll-driven "load more" pagination). Drives the loading indicator
|
|
144
|
-
* the modular grid renders at the right edge of the
|
|
144
|
+
* the modular grid renders at the right edge of the Organized row, and is
|
|
145
145
|
* forwarded to the sidebar for its own loading affordance. */
|
|
146
146
|
rootFoldersLoading: boolean;
|
|
147
147
|
/** Override for the currently-selected folder node. Used as a fallback when
|
|
@@ -377,7 +377,7 @@ export declare class ModularTableTemplateComponent implements OnInit, OnChanges,
|
|
|
377
377
|
}>;
|
|
378
378
|
get arrowClasses(): string;
|
|
379
379
|
/**
|
|
380
|
-
* Flat list of root-level folders for the "
|
|
380
|
+
* Flat list of root-level folders for the "Organized" grid on the root view.
|
|
381
381
|
* Prefers the host-provided `rootFolders` snapshot when set — analogous to
|
|
382
382
|
* how `subfolderTiles` falls back to `selectedFolderNode` and `breadcrumbTrail`
|
|
383
383
|
* falls back to `selectedFolderTrail` when `folders` has been swapped to a
|
|
@@ -433,12 +433,12 @@ export declare class ModularTableTemplateComponent implements OnInit, OnChanges,
|
|
|
433
433
|
* reason as `lastRootGridLoadAt`. */
|
|
434
434
|
private lastSubfolderGridLoadAt;
|
|
435
435
|
private static readonly GRID_SCROLL_LOAD_THRESHOLD_PX;
|
|
436
|
-
/** Horizontal-scroll handler for the "
|
|
436
|
+
/** Horizontal-scroll handler for the "Organized" root tiles. Emits
|
|
437
437
|
* `rootLoadMoreRequested` when the user scrolls within
|
|
438
438
|
* `GRID_SCROLL_LOAD_THRESHOLD_PX` of the right edge AND more roots are
|
|
439
439
|
* available on the backend. Throttled by `lastRootGridLoadAt`.
|
|
440
440
|
* Uses `rootFolderTiles.length` (not `folders.length`) so the gate stays
|
|
441
|
-
* correct when `rootFolders` decouples the
|
|
441
|
+
* correct when `rootFolders` decouples the Organized grid from the
|
|
442
442
|
* search-filtered `folders` input. */
|
|
443
443
|
onRootGridScroll(event: Event): void;
|
|
444
444
|
/** Horizontal-scroll handler for the "Subfolders in X" tiles. Emits
|
|
@@ -533,5 +533,5 @@ export declare class ModularTableTemplateComponent implements OnInit, OnChanges,
|
|
|
533
533
|
*/
|
|
534
534
|
buildRowDragPayload: (row: any) => Array<string | number>;
|
|
535
535
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModularTableTemplateComponent, never>;
|
|
536
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModularTableTemplateComponent, "cqa-modular-table-template", never, { "searchPlaceholder": "searchPlaceholder"; "searchValue": "searchValue"; "showClear": "showClear"; "showSearchBar": "showSearchBar"; "showExportButton": "showExportButton"; "isExporting": "isExporting"; "filterConfig": "filterConfig"; "filterModel": "filterModel"; "showFilterPanel": "showFilterPanel"; "showFilterButton": "showFilterButton"; "otherButtons": "otherButtons"; "otherDropDownButtons": "otherDropDownButtons"; "otherSelectDropDownButtons": "otherSelectDropDownButtons"; "otherButtonLabel": "otherButtonLabel"; "otherButtonVariant": "otherButtonVariant"; "showOtherButton": "showOtherButton"; "showActionButton": "showActionButton"; "showSettingsButton": "showSettingsButton"; "showAutoRefreshButton": "showAutoRefreshButton"; "showViewModeToggle": "showViewModeToggle"; "viewMode": "viewMode"; "viewModeLabels": "viewModeLabels"; "data": "data"; "isEmptyState": "isEmptyState"; "emptyStateConfig": "emptyStateConfig"; "actions": "actions"; "chips": "chips"; "filterApplied": "filterApplied"; "columns": "columns"; "rowSelectable": "rowSelectable"; "selectedAutoRefreshInterval": "selectedAutoRefreshInterval"; "pageIndex": "pageIndex"; "pageSize": "pageSize"; "pageSizeOptions": "pageSizeOptions"; "pageSizeMenuDirection": "pageSizeMenuDirection"; "serverSidePagination": "serverSidePagination"; "totalElements": "totalElements"; "enableLocalSort": "enableLocalSort"; "isTableLoading": "isTableLoading"; "isTableDataLoading": "isTableDataLoading"; "cellJsonPathGetter": "cellJsonPathGetter"; "onJsonPathCopiedHandler": "onJsonPathCopiedHandler"; "selectedItems": "selectedItems"; "showSelectAllInToolbar": "showSelectAllInToolbar"; "showDismissInToolbar": "showDismissInToolbar"; "allSelectedInToolbar": "allSelectedInToolbar"; "folders": "folders"; "rootFolders": "rootFolders"; "selectedFolderId": "selectedFolderId"; "expandedFolderIds": "expandedFolderIds"; "
|
|
536
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModularTableTemplateComponent, "cqa-modular-table-template", never, { "searchPlaceholder": "searchPlaceholder"; "searchValue": "searchValue"; "showClear": "showClear"; "showSearchBar": "showSearchBar"; "showExportButton": "showExportButton"; "isExporting": "isExporting"; "filterConfig": "filterConfig"; "filterModel": "filterModel"; "showFilterPanel": "showFilterPanel"; "showFilterButton": "showFilterButton"; "otherButtons": "otherButtons"; "otherDropDownButtons": "otherDropDownButtons"; "otherSelectDropDownButtons": "otherSelectDropDownButtons"; "otherButtonLabel": "otherButtonLabel"; "otherButtonVariant": "otherButtonVariant"; "showOtherButton": "showOtherButton"; "showActionButton": "showActionButton"; "showSettingsButton": "showSettingsButton"; "showAutoRefreshButton": "showAutoRefreshButton"; "showViewModeToggle": "showViewModeToggle"; "viewMode": "viewMode"; "viewModeLabels": "viewModeLabels"; "data": "data"; "isEmptyState": "isEmptyState"; "emptyStateConfig": "emptyStateConfig"; "actions": "actions"; "chips": "chips"; "filterApplied": "filterApplied"; "columns": "columns"; "rowSelectable": "rowSelectable"; "selectedAutoRefreshInterval": "selectedAutoRefreshInterval"; "pageIndex": "pageIndex"; "pageSize": "pageSize"; "pageSizeOptions": "pageSizeOptions"; "pageSizeMenuDirection": "pageSizeMenuDirection"; "serverSidePagination": "serverSidePagination"; "totalElements": "totalElements"; "enableLocalSort": "enableLocalSort"; "isTableLoading": "isTableLoading"; "isTableDataLoading": "isTableDataLoading"; "cellJsonPathGetter": "cellJsonPathGetter"; "onJsonPathCopiedHandler": "onJsonPathCopiedHandler"; "selectedItems": "selectedItems"; "showSelectAllInToolbar": "showSelectAllInToolbar"; "showDismissInToolbar": "showDismissInToolbar"; "allSelectedInToolbar": "allSelectedInToolbar"; "folders": "folders"; "rootFolders": "rootFolders"; "selectedFolderId": "selectedFolderId"; "expandedFolderIds": "expandedFolderIds"; "unorganizedCount": "unorganizedCount"; "folderIdAccessor": "folderIdAccessor"; "modularConfig": "modularConfig"; "modularLabels": "modularLabels"; "bulkActions": "bulkActions"; "sidebarCollapsed": "sidebarCollapsed"; "serverSideSearch": "serverSideSearch"; "rootTotal": "rootTotal"; "folderSearchLoading": "folderSearchLoading"; "rootFoldersLoading": "rootFoldersLoading"; "selectedFolderNode": "selectedFolderNode"; "selectedFolderTrail": "selectedFolderTrail"; "useInternalDialogs": "useInternalDialogs"; "showReorderButton": "showReorderButton"; "reorderSaving": "reorderSaving"; "reorderLabels": "reorderLabels"; "columnVisibility": "columnVisibility"; }, { "onSearchChange": "onSearchChange"; "onExportClick": "onExportClick"; "onApplyFilterClick": "onApplyFilterClick"; "onResetFilterClick": "onResetFilterClick"; "onClearAll": "onClearAll"; "removeChip": "removeChip"; "viewModeChange": "viewModeChange"; "pageChange": "pageChange"; "sortChange": "sortChange"; "folderSelected": "folderSelected"; "folderExpansionToggled": "folderExpansionToggled"; "folderChildrenRequested": "folderChildrenRequested"; "folderLoadMoreRequested": "folderLoadMoreRequested"; "rootLoadMoreRequested": "rootLoadMoreRequested"; "folderSearchChange": "folderSearchChange"; "folderCreated": "folderCreated"; "folderCreateRequested": "folderCreateRequested"; "folderRenamed": "folderRenamed"; "folderDeleted": "folderDeleted"; "testsMoved": "testsMoved"; "bulkActionClick": "bulkActionClick"; "bulkSelectAllChange": "bulkSelectAllChange"; "bulkDismiss": "bulkDismiss"; "bulkActionInvoked": "bulkActionInvoked"; "sidebarCollapsedChange": "sidebarCollapsedChange"; "reorderStart": "reorderStart"; "reorderCancel": "reorderCancel"; "reorderSave": "reorderSave"; "moveRequested": "moveRequested"; "selectedItemsChange": "selectedItemsChange"; "folderDeleteRequested": "folderDeleteRequested"; "folderMoveRequested": "folderMoveRequested"; "folderMoved": "folderMoved"; "folderDuplicateRequested": "folderDuplicateRequested"; "onReload": "onReload"; "onAutoRefreshClick": "onAutoRefreshClick"; "columnVisibilityChange": "columnVisibilityChange"; "autoRefreshIntervalChange": "autoRefreshIntervalChange"; }, never, never>;
|
|
537
537
|
}
|
|
@@ -26,7 +26,7 @@ export interface ModularConfig {
|
|
|
26
26
|
showSidebar: boolean;
|
|
27
27
|
showBreadcrumb: boolean;
|
|
28
28
|
showFolderGrid: boolean;
|
|
29
|
-
|
|
29
|
+
showUnorganizedSection: boolean;
|
|
30
30
|
showSubfolderSection: boolean;
|
|
31
31
|
showCounts: boolean;
|
|
32
32
|
allowCreateFolder: boolean;
|
|
@@ -50,8 +50,8 @@ export declare const DEFAULT_MODULAR_CONFIG: ModularConfig;
|
|
|
50
50
|
export declare const FOLDER_COLUMN_FIELD_ID = "folder";
|
|
51
51
|
export interface ModularLabels {
|
|
52
52
|
folders: string;
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
organized: string;
|
|
54
|
+
unorganized: string;
|
|
55
55
|
newFolder: string;
|
|
56
56
|
searchFoldersPlaceholder: string;
|
|
57
57
|
allFolders: string;
|
|
@@ -96,16 +96,16 @@ export interface ModularLabels {
|
|
|
96
96
|
deleteFolderDialogBodyPlural: string;
|
|
97
97
|
deleteFolderDialogMoveToParentTitle: string;
|
|
98
98
|
deleteFolderDialogMoveToParentDescription: string;
|
|
99
|
-
|
|
100
|
-
|
|
99
|
+
deleteFolderDialogMoveToUnorganizedTitle: string;
|
|
100
|
+
deleteFolderDialogMoveToUnorganizedDescription: string;
|
|
101
101
|
deleteFolderDialogCancel: string;
|
|
102
102
|
deleteFolderDialogConfirm: string;
|
|
103
103
|
emptyNoTestsInFolderTitle: string;
|
|
104
104
|
emptyNoTestsInFolderDescription: string;
|
|
105
105
|
/** Header label for the auto-injected folder column. */
|
|
106
106
|
folderColumnLabel: string;
|
|
107
|
-
/** Cell label for rows with no folderId (i.e. the "
|
|
108
|
-
|
|
107
|
+
/** Cell label for rows with no folderId (i.e. the "Unorganized" bucket). */
|
|
108
|
+
unorganizedRowLabel: string;
|
|
109
109
|
/** Shown in the folder sidebar when the search input filters out every folder. */
|
|
110
110
|
noFoldersFound: string;
|
|
111
111
|
}
|
|
@@ -3,7 +3,9 @@ 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
5
|
import { DropdownOption } from '../../dropdown-button/dropdown-button.component';
|
|
6
|
+
import { RadioCardOption } from '../../radio-card-group/radio-card-option.model';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
8
|
+
declare type ViewportMode = 'desktop' | 'laptop' | 'tablet' | 'mobile' | 'custom';
|
|
7
9
|
/** Override config for a specific select. Use for server-side search, load more, custom options. */
|
|
8
10
|
export interface SelectConfigOverride {
|
|
9
11
|
/** Replace options (e.g. from API). Update when API returns. */
|
|
@@ -113,6 +115,13 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
|
|
|
113
115
|
apiMockingPercentText?: string;
|
|
114
116
|
/** Org-level default for Test Case Timeout (minutes). Used to flag the input as "ORG level" vs "Custom". */
|
|
115
117
|
orgLevelTestCaseTimeout?: string | number | null;
|
|
118
|
+
/** Viewport dropdown options per category from the API. Pass DESKTOP, LAPTOP, TABLET, MOBILE arrays. */
|
|
119
|
+
viewportCategoryOptions: {
|
|
120
|
+
DESKTOP?: SelectOption[];
|
|
121
|
+
LAPTOP?: SelectOption[];
|
|
122
|
+
TABLET?: SelectOption[];
|
|
123
|
+
MOBILE?: SelectOption[];
|
|
124
|
+
};
|
|
116
125
|
save: EventEmitter<TestCaseDetailsEditFormData>;
|
|
117
126
|
cancel: EventEmitter<void>;
|
|
118
127
|
/** Emitted when user searches in a select (serverSearch mode). Call API and update options via selectConfigOverrides. */
|
|
@@ -167,6 +176,19 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
|
|
|
167
176
|
mobileTestingEnabled: boolean;
|
|
168
177
|
extensionUseEnabled: boolean;
|
|
169
178
|
dataDrivenEnabled: boolean;
|
|
179
|
+
viewportMode: ViewportMode;
|
|
180
|
+
viewportDesktopDeviceForm: FormGroup;
|
|
181
|
+
viewportLaptopDeviceForm: FormGroup;
|
|
182
|
+
viewportTabletDeviceForm: FormGroup;
|
|
183
|
+
viewportMobileDeviceForm: FormGroup;
|
|
184
|
+
customViewportWidth: string;
|
|
185
|
+
customViewportHeight: string;
|
|
186
|
+
customViewportTags: string[];
|
|
187
|
+
readonly viewportModeOptions: RadioCardOption[];
|
|
188
|
+
desktopViewportConfig: DynamicSelectFieldConfig;
|
|
189
|
+
laptopViewportConfig: DynamicSelectFieldConfig;
|
|
190
|
+
tabletViewportConfig: DynamicSelectFieldConfig;
|
|
191
|
+
mobileViewportConfig: DynamicSelectFieldConfig;
|
|
170
192
|
readonly frequentlyUsedLabels: string[];
|
|
171
193
|
private _initialFormSnapshot;
|
|
172
194
|
/** FormGroup for cqa-dynamic-select bindings */
|
|
@@ -241,6 +263,12 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
|
|
|
241
263
|
/** Edit mode should show placeholder when dataset is not selected. */
|
|
242
264
|
private normalizeTestDataSetRawValue;
|
|
243
265
|
get hasPrerequisiteCaseConfig(): boolean;
|
|
266
|
+
private initViewportFromValue;
|
|
267
|
+
private buildViewportValue;
|
|
268
|
+
onViewportModeChange(mode: ViewportMode): void;
|
|
269
|
+
private applyViewportCategoryOptions;
|
|
270
|
+
addViewportCustomTag(): void;
|
|
271
|
+
removeViewportCustomTag(index: number): void;
|
|
244
272
|
ngOnInit(): void;
|
|
245
273
|
get hasUnsavedChanges(): boolean;
|
|
246
274
|
private buildSavePayload;
|
|
@@ -272,5 +300,6 @@ export declare class TestCaseDetailsEditComponent implements OnInit, OnChanges {
|
|
|
272
300
|
};
|
|
273
301
|
getLabelCloseIconColor(_label: string): string;
|
|
274
302
|
static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsEditComponent, never>;
|
|
275
|
-
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"; "configureApiMocking": "configureApiMocking"; }, never, never>;
|
|
303
|
+
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"; "viewportCategoryOptions": "viewportCategoryOptions"; }, { "save": "save"; "cancel": "cancel"; "selectSearch": "selectSearch"; "selectLoadMore": "selectLoadMore"; "selectOpened": "selectOpened"; "selectionChange": "selectionChange"; "labelAdded": "labelAdded"; "apiMockingRestoreMockChange": "apiMockingRestoreMockChange"; "apiMockingStoreMockChange": "apiMockingStoreMockChange"; "configureApiMocking": "configureApiMocking"; }, never, never>;
|
|
276
304
|
}
|
|
305
|
+
export {};
|
|
@@ -68,6 +68,13 @@ export declare class TestCaseDetailsComponent implements OnInit, OnChanges {
|
|
|
68
68
|
apiMockingConfigureButtonLabel: string;
|
|
69
69
|
/** Org-level default for Test Case Timeout (minutes). Forwarded to edit mode to toggle the "ORG level"/"Custom" badge. */
|
|
70
70
|
orgLevelTestCaseTimeout?: string | number | null;
|
|
71
|
+
/** Viewport dropdown options per category from the API. Forwarded to edit mode. */
|
|
72
|
+
viewportCategoryOptions: {
|
|
73
|
+
DESKTOP?: any[];
|
|
74
|
+
LAPTOP?: any[];
|
|
75
|
+
TABLET?: any[];
|
|
76
|
+
MOBILE?: any[];
|
|
77
|
+
};
|
|
71
78
|
/** Labels to filter out from metadata for step groups */
|
|
72
79
|
private readonly stepGroupExcludedMetadataLabels;
|
|
73
80
|
/** When true, description (view mode) is expanded; when false, clamped to 4 lines with Read more */
|
|
@@ -113,5 +120,5 @@ export declare class TestCaseDetailsComponent implements OnInit, OnChanges {
|
|
|
113
120
|
/** Text color for metadata value (e.g. red for critical priority) */
|
|
114
121
|
getValueTextClass(item: TestCaseDetailsMetadataItem): string;
|
|
115
122
|
static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsComponent, 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>;
|
|
123
|
+
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"; "viewportCategoryOptions": "viewportCategoryOptions"; }, { "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>;
|
|
117
124
|
}
|