@cqa-lib/cqa-ui 1.1.548-gamma.20 → 1.1.548-gamma.21
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/custom-input/custom-input.component.mjs +20 -4
- package/esm2020/lib/dialogs/name-prompt-modal.component.mjs +1 -1
- package/esm2020/lib/export-code-modal/export-code-modal.component.mjs +1 -1
- package/esm2020/lib/manage-columns-dialog/manage-columns-dialog.component.mjs +1 -1
- package/esm2020/lib/new-db-config-dialog/new-db-config-dialog.component.mjs +1 -1
- package/esm2020/lib/new-environment-dialog/new-environment-dialog.component.mjs +1 -1
- package/esm2020/lib/new-environment-variable-dialog/new-environment-variable-dialog.component.mjs +5 -13
- package/esm2020/lib/new-global-variable-dialog/new-global-variable-dialog.component.mjs +1 -1
- package/esm2020/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.component.mjs +172 -13
- package/esm2020/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.models.mjs +1 -1
- package/esm2020/lib/questionnaire-list/questionnaire-list.component.mjs +1 -1
- package/esm2020/lib/step-builder/advanced-variables-form/advanced-variables-form.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-ai-agent/step-builder-ai-agent.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-custom-code/step-builder-custom-code.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-database/step-builder-database.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-document/step-builder-document.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-document-generation-template-step/step-builder-document-generation-template-step.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-group/step-builder-group.component.mjs +1 -1
- package/esm2020/lib/step-builder/step-builder-loop/step-builder-loop.component.mjs +1 -1
- package/esm2020/lib/step-builder/template-variables-form/template-variables-form.component.mjs +1 -1
- package/esm2020/lib/templates/modular-table-template/dialogs/new-folder-dialog.component.mjs +1 -1
- package/esm2020/lib/test-case-details/api-edit-step/api-edit-step.component.mjs +1 -1
- package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +1 -1
- package/esm2020/lib/test-case-details/create-step-group/create-step-group.component.mjs +1 -1
- package/esm2020/lib/test-case-details/data-library-panel/data-library-panel.component.mjs +3 -3
- package/esm2020/lib/test-case-details/element-popup/element-form/element-form.component.mjs +1 -1
- package/esm2020/lib/test-case-details/step-details-drawer/step-details-drawer.component.mjs +1 -1
- package/esm2020/lib/test-case-details/test-case-details-edit/test-case-details-edit.component.mjs +1 -1
- package/esm2020/lib/test-case-details/test-data-modal/test-data-modal.component.mjs +1 -1
- package/esm2020/lib/viewport-selector/viewport-selector.component.mjs +1 -1
- package/fesm2015/cqa-lib-cqa-ui.mjs +218 -53
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +217 -53
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/custom-input/custom-input.component.d.ts +6 -1
- package/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.component.d.ts +39 -5
- package/lib/new-test-data-profile-dialog/new-test-data-profile-dialog.models.d.ts +18 -0
- package/package.json +1 -1
- package/styles.css +1 -1
|
@@ -18,12 +18,17 @@ export declare class CustomInputComponent implements OnChanges {
|
|
|
18
18
|
showCharCount: boolean;
|
|
19
19
|
inputInlineStyle?: string;
|
|
20
20
|
labelInlineStyle?: string;
|
|
21
|
+
showPasswordToggle: boolean;
|
|
21
22
|
valueChange: EventEmitter<string>;
|
|
22
23
|
blurred: EventEmitter<FocusEvent>;
|
|
23
24
|
focused: EventEmitter<FocusEvent>;
|
|
24
25
|
enterPressed: EventEmitter<string>;
|
|
25
26
|
inputValue: string;
|
|
26
27
|
isFocused: boolean;
|
|
28
|
+
passwordVisible: boolean;
|
|
29
|
+
get effectiveType(): InputType;
|
|
30
|
+
get isPasswordToggleVisible(): boolean;
|
|
31
|
+
togglePasswordVisible(event: Event): void;
|
|
27
32
|
ngOnChanges(changes: SimpleChanges): void;
|
|
28
33
|
get hasError(): boolean;
|
|
29
34
|
get inputSizeClasses(): string;
|
|
@@ -35,6 +40,6 @@ export declare class CustomInputComponent implements OnChanges {
|
|
|
35
40
|
get inputStyles(): string;
|
|
36
41
|
get labelStyles(): string;
|
|
37
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<CustomInputComponent, never>;
|
|
38
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CustomInputComponent, "cqa-custom-input", never, { "inputId": "inputId"; "label": "label"; "type": "type"; "placeholder": "placeholder"; "value": "value"; "disabled": "disabled"; "errors": "errors"; "required": "required"; "ariaLabel": "ariaLabel"; "size": "size"; "fullWidth": "fullWidth"; "maxLength": "maxLength"; "showCharCount": "showCharCount"; "inputInlineStyle": "inputInlineStyle"; "labelInlineStyle": "labelInlineStyle"; }, { "valueChange": "valueChange"; "blurred": "blurred"; "focused": "focused"; "enterPressed": "enterPressed"; }, never, never>;
|
|
43
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CustomInputComponent, "cqa-custom-input", never, { "inputId": "inputId"; "label": "label"; "type": "type"; "placeholder": "placeholder"; "value": "value"; "disabled": "disabled"; "errors": "errors"; "required": "required"; "ariaLabel": "ariaLabel"; "size": "size"; "fullWidth": "fullWidth"; "maxLength": "maxLength"; "showCharCount": "showCharCount"; "inputInlineStyle": "inputInlineStyle"; "labelInlineStyle": "labelInlineStyle"; "showPasswordToggle": "showPasswordToggle"; }, { "valueChange": "valueChange"; "blurred": "blurred"; "focused": "focused"; "enterPressed": "enterPressed"; }, never, never>;
|
|
39
44
|
}
|
|
40
45
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectorRef, OnInit } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { FormGroup } from '@angular/forms';
|
|
3
3
|
import { DynamicSelectFieldConfig } from '../dynamic-select/dynamic-select-field.component';
|
|
4
|
-
import { TdpDialogPermission, TdpDialogValue, TdpEnvironmentOption } from './new-test-data-profile-dialog.models';
|
|
4
|
+
import { TdpDialogPermission, TdpDialogValue, TdpEnvSearchFn, TdpEnvironmentOption } from './new-test-data-profile-dialog.models';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class NewTestDataProfileDialogComponent implements OnInit {
|
|
6
|
+
export declare class NewTestDataProfileDialogComponent implements OnInit, OnDestroy {
|
|
7
7
|
private readonly cdr;
|
|
8
8
|
private static readonly INTEGER_REGEX;
|
|
9
9
|
private static readonly MAX_DIM;
|
|
@@ -11,6 +11,10 @@ export declare class NewTestDataProfileDialogComponent implements OnInit {
|
|
|
11
11
|
initialValue?: Partial<TdpDialogValue>;
|
|
12
12
|
existingNames: string[];
|
|
13
13
|
environments: TdpEnvironmentOption[];
|
|
14
|
+
/** When provided, the env dropdown uses paginated server-search instead of
|
|
15
|
+
* the static `environments` list. */
|
|
16
|
+
searchFn?: TdpEnvSearchFn;
|
|
17
|
+
pageSize: number;
|
|
14
18
|
name: string;
|
|
15
19
|
description: string;
|
|
16
20
|
readWriteMode: TdpDialogPermission;
|
|
@@ -21,8 +25,21 @@ export declare class NewTestDataProfileDialogComponent implements OnInit {
|
|
|
21
25
|
nameError: string | null;
|
|
22
26
|
matrixError: string | null;
|
|
23
27
|
envsError: string | null;
|
|
28
|
+
private currentEnvOptions;
|
|
29
|
+
private totalEnvElements;
|
|
30
|
+
private currentSearchTerm;
|
|
31
|
+
private currentPageIndex;
|
|
32
|
+
private isLoadingEnvs;
|
|
33
|
+
/** Cache of every env the user has selected at any point during this dialog
|
|
34
|
+
* session — keyed by id. Merged into the visible options on every page
|
|
35
|
+
* refresh so the multi-select trigger always shows the right names even
|
|
36
|
+
* after the user types a search that filters the selection out. */
|
|
37
|
+
private readonly selectedEnvCache;
|
|
38
|
+
private readonly searchInput$;
|
|
39
|
+
private readonly destroy$;
|
|
24
40
|
constructor(cdr: ChangeDetectorRef);
|
|
25
41
|
ngOnInit(): void;
|
|
42
|
+
ngOnDestroy(): void;
|
|
26
43
|
get title(): string;
|
|
27
44
|
get subtitle(): string;
|
|
28
45
|
get primaryButtonLabel(): string;
|
|
@@ -35,8 +52,25 @@ export declare class NewTestDataProfileDialogComponent implements OnInit {
|
|
|
35
52
|
onColumnsChange(next: string): void;
|
|
36
53
|
getValue(): TdpDialogValue | null;
|
|
37
54
|
private parseMatrix;
|
|
38
|
-
private
|
|
55
|
+
private buildStaticEnvConfig;
|
|
56
|
+
private buildServerSearchEnvConfig;
|
|
57
|
+
private onEnvLoadMore;
|
|
58
|
+
private runFetch;
|
|
59
|
+
private fetchPage;
|
|
60
|
+
private applyPage;
|
|
61
|
+
/** Merge cached selected options with the visible page so the multi-select
|
|
62
|
+
* trigger always shows the right names — even when the user types a query
|
|
63
|
+
* that filters previously selected envs out of view. Selected ones come
|
|
64
|
+
* first to keep the state visible. */
|
|
65
|
+
private mergeSelectedIntoOptions;
|
|
66
|
+
/** Update the selected-env cache from the FormControl value so the trigger
|
|
67
|
+
* display + future merges reflect the latest selection. We cache the full
|
|
68
|
+
* SelectOption (id + name) by looking up either the visible page or the
|
|
69
|
+
* prior cache. Selections are accumulated, never removed — even unselect →
|
|
70
|
+
* reselect works without a fresh fetch. */
|
|
71
|
+
private rememberSelectedEnvs;
|
|
72
|
+
private toSelectOption;
|
|
39
73
|
private isDuplicateName;
|
|
40
74
|
static ɵfac: i0.ɵɵFactoryDeclaration<NewTestDataProfileDialogComponent, never>;
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NewTestDataProfileDialogComponent, "cqa-new-test-data-profile-dialog", never, { "mode": "mode"; "initialValue": "initialValue"; "existingNames": "existingNames"; "environments": "environments"; }, {}, never, never>;
|
|
75
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NewTestDataProfileDialogComponent, "cqa-new-test-data-profile-dialog", never, { "mode": "mode"; "initialValue": "initialValue"; "existingNames": "existingNames"; "environments": "environments"; "searchFn": "searchFn"; "pageSize": "pageSize"; }, {}, never, never>;
|
|
42
76
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
1
2
|
export declare type TdpDialogPermission = 'RO' | 'RW';
|
|
2
3
|
export interface TdpDialogValue {
|
|
3
4
|
name: string;
|
|
@@ -12,9 +13,26 @@ export interface TdpEnvironmentOption {
|
|
|
12
13
|
name: string;
|
|
13
14
|
color?: string;
|
|
14
15
|
}
|
|
16
|
+
export interface TdpEnvSearchPage {
|
|
17
|
+
items: TdpEnvironmentOption[];
|
|
18
|
+
total: number;
|
|
19
|
+
}
|
|
20
|
+
/** Paginated, debounced server-search callback for the Assign-to-environments
|
|
21
|
+
* dropdown. The dialog calls `('', 0, pageSize)` on init and each panel open,
|
|
22
|
+
* again with a fresh term whenever the user types (debounced 300ms), and again
|
|
23
|
+
* on scroll-near-bottom for pagination. Caller wraps the workspace env list
|
|
24
|
+
* service. */
|
|
25
|
+
export declare type TdpEnvSearchFn = (term: string, page: number, size: number) => Observable<TdpEnvSearchPage>;
|
|
15
26
|
export interface NewTestDataProfileDialogInputs {
|
|
16
27
|
mode?: 'create' | 'edit';
|
|
17
28
|
initialValue?: Partial<TdpDialogValue>;
|
|
18
29
|
existingNames?: string[];
|
|
30
|
+
/** Static env list. Kept for backward compatibility — prefer `searchFn`
|
|
31
|
+
* for workspaces with more than a couple dozen environments. */
|
|
19
32
|
environments?: TdpEnvironmentOption[];
|
|
33
|
+
/** Server-search source. When provided, the env dropdown switches to
|
|
34
|
+
* paginated server-side search and `environments` is ignored. */
|
|
35
|
+
searchFn?: TdpEnvSearchFn;
|
|
36
|
+
/** Page size for `searchFn`. Defaults to 50. */
|
|
37
|
+
pageSize?: number;
|
|
20
38
|
}
|