@cqa-lib/cqa-ui 1.1.199 → 1.1.201

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 (28) hide show
  1. package/esm2020/lib/custom-input/custom-input.component.mjs +3 -3
  2. package/esm2020/lib/test-case-details/condition-step/condition-step.component.mjs +7 -3
  3. package/esm2020/lib/test-case-details/element-list/element-list.component.mjs +67 -5
  4. package/esm2020/lib/test-case-details/element-popup/element-popup-data.mjs +1 -1
  5. package/esm2020/lib/test-case-details/element-popup/element-popup-form-data.mjs +2 -0
  6. package/esm2020/lib/test-case-details/element-popup/element-popup.component.mjs +289 -99
  7. package/esm2020/lib/test-case-details/loop-step/loop-step.component.mjs +7 -3
  8. package/esm2020/lib/test-case-details/normal-step/normal-step.component.mjs +26 -27
  9. package/esm2020/lib/test-case-details/step-group/step-group.component.mjs +1 -1
  10. package/esm2020/lib/test-case-details/test-case-details-renderer/test-case-details-renderer.component.mjs +24 -4
  11. package/esm2020/lib/test-case-details/test-case-step.models.mjs +1 -1
  12. package/esm2020/public-api.mjs +2 -1
  13. package/fesm2015/cqa-lib-cqa-ui.mjs +431 -140
  14. package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
  15. package/fesm2020/cqa-lib-cqa-ui.mjs +417 -138
  16. package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
  17. package/lib/test-case-details/condition-step/condition-step.component.d.ts +6 -1
  18. package/lib/test-case-details/element-list/element-list.component.d.ts +15 -3
  19. package/lib/test-case-details/element-popup/element-popup-data.d.ts +3 -0
  20. package/lib/test-case-details/element-popup/element-popup-form-data.d.ts +22 -0
  21. package/lib/test-case-details/element-popup/element-popup.component.d.ts +72 -19
  22. package/lib/test-case-details/loop-step/loop-step.component.d.ts +6 -1
  23. package/lib/test-case-details/normal-step/normal-step.component.d.ts +1 -0
  24. package/lib/test-case-details/test-case-details-renderer/test-case-details-renderer.component.d.ts +7 -2
  25. package/lib/test-case-details/test-case-step.models.d.ts +7 -0
  26. package/package.json +1 -1
  27. package/public-api.d.ts +1 -0
  28. package/styles.css +1 -1
@@ -92,6 +92,11 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
92
92
  searchDataProfiles: EventEmitter<string>;
93
93
  /** Emit when a nested step is updated (e.g., Apply button clicked in loop-step edit mode) */
94
94
  stepUpdate: EventEmitter<TestCaseStepConfig>;
95
+ /** Re-emit when a nested step (e.g. normal-step) emits clickAction (e.g. element/label click for popup) */
96
+ clickAction: EventEmitter<{
97
+ event: MouseEvent;
98
+ step: TestCaseStepConfig;
99
+ }>;
95
100
  onDndDrop(event: DndDropEvent, branch: ConditionBranch): void;
96
101
  constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
97
102
  ngOnInit(): void;
@@ -159,5 +164,5 @@ export declare class TestCaseConditionStepComponent implements OnInit, OnChanges
159
164
  /** Get select config for a template variable */
160
165
  getSelectConfigForVariable(variable: any, branchIdOrIsElse?: string | boolean): DynamicSelectFieldConfig;
161
166
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseConditionStepComponent, never>;
162
- static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseConditionStepComponent, "cqa-test-case-condition-step", never, { "config": "config"; "id": "id"; "stepNumber": "stepNumber"; "condition": "condition"; "branches": "branches"; "expanded": "expanded"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; "setConditionTemplateVariables": "setConditionTemplateVariables"; }, { "toggleExpanded": "toggleExpanded"; "conditionChange": "conditionChange"; "branchStepChange": "branchStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "addBranch": "addBranch"; "addElse": "addElse"; "deleteBranch": "deleteBranch"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; }, never, never>;
167
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseConditionStepComponent, "cqa-test-case-condition-step", never, { "config": "config"; "id": "id"; "stepNumber": "stepNumber"; "condition": "condition"; "branches": "branches"; "expanded": "expanded"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; "setConditionTemplateVariables": "setConditionTemplateVariables"; }, { "toggleExpanded": "toggleExpanded"; "conditionChange": "conditionChange"; "branchStepChange": "branchStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "addBranch": "addBranch"; "addElse": "addElse"; "deleteBranch": "deleteBranch"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; "clickAction": "clickAction"; }, never, never>;
163
168
  }
@@ -1,6 +1,7 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, AfterViewInit, OnDestroy, ElementRef, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export declare class ElementListComponent {
3
+ export declare class ElementListComponent implements AfterViewInit, OnDestroy, OnChanges {
4
+ scrollContainer?: ElementRef<HTMLDivElement>;
4
5
  /** Array of items to display */
5
6
  items: any[];
6
7
  /** Key to access the title property from each item (default: 'title') */
@@ -11,8 +12,15 @@ export declare class ElementListComponent {
11
12
  labelsKey: string;
12
13
  /** Maximum height for the scrollable container (default: '200px') */
13
14
  maxHeight: string;
15
+ /** Whether more items can be loaded */
16
+ hasMore: boolean;
14
17
  /** Emitted when an item is clicked */
15
18
  itemClick: EventEmitter<any>;
19
+ /** Emitted when user scrolls near the bottom and more items should be loaded */
20
+ loadMore: EventEmitter<void>;
21
+ private scrollObserver?;
22
+ /** Skip the first intersection callback (fires immediately when observe() is called) to prevent duplicate API calls on load */
23
+ private skipNextIntersection;
16
24
  /**
17
25
  * Get the value from an item using the specified key
18
26
  */
@@ -21,6 +29,10 @@ export declare class ElementListComponent {
21
29
  * Handle item click
22
30
  */
23
31
  onItemClick(item: any): void;
32
+ ngAfterViewInit(): void;
33
+ ngOnChanges(changes: SimpleChanges): void;
34
+ ngOnDestroy(): void;
35
+ private setupScrollObserver;
24
36
  static ɵfac: i0.ɵɵFactoryDeclaration<ElementListComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<ElementListComponent, "cqa-element-list", never, { "items": "items"; "titleKey": "titleKey"; "selectorKey": "selectorKey"; "labelsKey": "labelsKey"; "maxHeight": "maxHeight"; }, { "itemClick": "itemClick"; }, never, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElementListComponent, "cqa-element-list", never, { "items": "items"; "titleKey": "titleKey"; "selectorKey": "selectorKey"; "labelsKey": "labelsKey"; "maxHeight": "maxHeight"; "hasMore": "hasMore"; }, { "itemClick": "itemClick"; "loadMore": "loadMore"; }, never, never>;
26
38
  }
@@ -10,6 +10,9 @@ export interface ElementPopupDataElements {
10
10
  labels: string[];
11
11
  title: string;
12
12
  selector?: string;
13
+ id?: number;
14
+ screenName?: string;
15
+ screenNameId?: number;
13
16
  }
14
17
  /** Sentinel returned from afterClosed() when user clicked "Edit in depth". */
15
18
  export declare const ELEMENT_POPUP_EDIT_IN_DEPTH: unique symbol;
@@ -0,0 +1,22 @@
1
+ /** Payload emitted when user creates a new element */
2
+ export interface ElementCreatePayload {
3
+ name: string;
4
+ screenNameId?: number;
5
+ screenNameName: string;
6
+ locatorValue: string;
7
+ labels: string[];
8
+ }
9
+ /** Payload emitted when user updates an existing element */
10
+ export interface ElementUpdatePayload {
11
+ elementId: number;
12
+ name: string;
13
+ screenNameId?: number;
14
+ screenNameName: string;
15
+ locatorValue: string;
16
+ labels: string[];
17
+ }
18
+ /** Screen name option for autocomplete */
19
+ export interface ScreenNameOption {
20
+ id?: number;
21
+ name: string;
22
+ }
@@ -1,11 +1,12 @@
1
1
  import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { ElementPopupData, ElementPopupDataElements } from './element-popup-data';
3
+ import { ElementCreatePayload, ElementUpdatePayload, ScreenNameOption } from './element-popup-form-data';
3
4
  import { ElementPopupRef } from './../element-popup/element-popup-ref';
4
5
  import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
5
6
  import { DynamicSelectFieldConfig } from '../../dynamic-select/dynamic-select-field.component';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class ElementPopupComponent implements OnInit, OnChanges {
8
- private ref;
9
+ private ref?;
9
10
  private readonly cdr?;
10
11
  value: string;
11
12
  helpUrl: string;
@@ -14,47 +15,99 @@ export declare class ElementPopupComponent implements OnInit, OnChanges {
14
15
  elements: ElementPopupDataElements[];
15
16
  enableForm: boolean;
16
17
  isOnRecord: boolean;
18
+ hasMoreElements: boolean;
19
+ /** Element ID when editing existing element */
20
+ elementId?: number;
21
+ /** Screen name options for autocomplete (from API) */
22
+ screenNameOptions: ScreenNameOption[];
23
+ /** Whether more screen names are available for infinite scroll */
24
+ hasMoreScreenNames: boolean;
25
+ /** True while parent is loading screen names (search or load more) */
26
+ isLoadingScreenNames: boolean;
27
+ /** Suggested tags from API for labels field */
28
+ suggestedTags: string[];
29
+ /** True while parent is fetching latest element data for edit (shows loading state) */
30
+ isElementLoading: boolean;
31
+ /** Recent searched items to display in Recent section */
32
+ recentSearchedItems: string[];
17
33
  apply: EventEmitter<string>;
18
34
  cancel: EventEmitter<void>;
19
35
  editInDepth: EventEmitter<void>;
20
- searchElement: EventEmitter<void>;
36
+ searchElement: EventEmitter<string>;
37
+ /** Emitted when user clicks on a recent searched item */
38
+ recentItemClick: EventEmitter<string>;
39
+ loadMoreElements: EventEmitter<void>;
40
+ /** Emitted when user creates a new element (parent should call API) */
41
+ createElement: EventEmitter<ElementCreatePayload>;
42
+ /** Emitted when user updates an element (parent should call API) */
43
+ updateElement: EventEmitter<ElementUpdatePayload>;
44
+ /** Emitted when user requests to create a new screen name */
45
+ createScreenNameRequest: EventEmitter<string>;
46
+ /** Emitted when user searches screen names (server search) */
47
+ searchScreenName: EventEmitter<string>;
48
+ /** Emitted when user scrolls to load more screen names (passes current search query) */
49
+ loadMoreScreenNames: EventEmitter<string>;
50
+ /** Emitted when Create or Edit form is opened - parent should fetch screen names and (for edit) latest element */
51
+ formOpenRequest: EventEmitter<{
52
+ mode: 'create' | 'edit';
53
+ elementId?: number;
54
+ }>;
55
+ /** Emitted when user selects an element from the list - parent should set element and editingElementId for Edit flow */
56
+ elementSelect: EventEmitter<ElementPopupDataElements>;
57
+ /** Emitted when user clicks Record - parent should check extension and call installPlugin or openSidePanelAndListSteps */
58
+ toggleRecord: EventEmitter<void>;
21
59
  form: FormGroup;
22
- /** Tooltip shown when hovering over the "Need help ?" icon and text */
23
60
  helpTooltipText: string;
24
- /** Whether the help tooltip is visible (custom tooltip for use inside overlay) */
25
61
  showHelpTooltip: boolean;
26
- /** Whether we're in edit mode (true) or create mode (false) */
27
62
  isEditMode: boolean;
63
+ /** Whether we're in create mode (no elementId) */
64
+ isCreateMode: boolean;
65
+ /** Labels (tags) as string array for multi-tag input */
66
+ formLabels: string[];
67
+ /** Current tag input value */
68
+ tagInputValue: string;
69
+ /** Current search input value (bound to search bar) */
70
+ searchValue: string;
71
+ /** Config for screen name dynamic-select (server search, allowCustomValue, infinite scroll) */
72
+ screenNameSelectConfig: DynamicSelectFieldConfig;
73
+ /** Whether we're saving (disable buttons) */
74
+ saving: boolean;
28
75
  private injectedData?;
29
76
  private fb;
30
- /** Cached select options to avoid recomputing on every change detection */
31
- private cachedSelectOptions;
32
- /** Cached select config to avoid recreating on every change detection */
33
- private cachedSelectConfig?;
34
- constructor(ref: ElementPopupRef, data?: ElementPopupData, fb?: FormBuilder, cdr?: ChangeDetectorRef);
77
+ constructor(ref?: ElementPopupRef, data?: ElementPopupData, fb?: FormBuilder, cdr?: ChangeDetectorRef);
35
78
  ngOnChanges(changes: SimpleChanges): void;
36
79
  ngOnInit(): void;
37
80
  private initializeForm;
81
+ private updateScreenNameSelectConfig;
38
82
  private populateFormForEdit;
83
+ private populateFormForCreateWithElement;
39
84
  private resetForm;
85
+ /** Called by parent when a new screen name was created (so we can set the selected value) */
86
+ setCreatedScreenName(opt: {
87
+ id: number;
88
+ name: string;
89
+ }): void;
40
90
  onApply(): void;
91
+ onCreateOrUpdateSuccess(): void;
92
+ onCreateOrUpdateError(): void;
41
93
  toggleForm(): void;
42
- /** Called when "Create New" button is clicked - explicitly sets create mode */
43
94
  openCreateForm(): void;
44
- toggleRecord(): void;
95
+ onToggleRecordClick(): void;
45
96
  onCancel(): void;
46
97
  onClose(): void;
47
98
  onEditInDepth(event: Event): void;
48
- search(event: any): void;
99
+ search(event: string): void;
49
100
  onHelp(event: Event): void;
50
- onVariableValueChange(variableName: string, value: any): void;
51
- /** Update cached select options when labels change */
52
- private updateSelectOptions;
53
- getSelectConfig(): DynamicSelectFieldConfig;
54
101
  getFormControl(controlName: string): FormControl;
55
102
  getFormControlValue(controlName: string): string;
56
103
  onFormControlChange(controlName: string, value: string): void;
104
+ /** Add a tag (label) */
105
+ addTag(tag?: string): void;
106
+ removeTag(tag: string): void;
107
+ onTagInputKeydown(event: KeyboardEvent): void;
57
108
  onElementClick(element: ElementPopupDataElements): void;
58
- static ɵfac: i0.ɵɵFactoryDeclaration<ElementPopupComponent, [null, { optional: true; }, { optional: true; }, { optional: true; }]>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<ElementPopupComponent, "cqa-element-popup", never, { "value": "value"; "helpUrl": "helpUrl"; "labels": "labels"; "element": "element"; "elements": "elements"; "enableForm": "enableForm"; "isOnRecord": "isOnRecord"; }, { "apply": "apply"; "cancel": "cancel"; "editInDepth": "editInDepth"; "searchElement": "searchElement"; }, never, never>;
109
+ onLoadMoreElements(): void;
110
+ onRecentItemClick(item: string): void;
111
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElementPopupComponent, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
112
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElementPopupComponent, "cqa-element-popup", never, { "value": "value"; "helpUrl": "helpUrl"; "labels": "labels"; "element": "element"; "elements": "elements"; "enableForm": "enableForm"; "isOnRecord": "isOnRecord"; "hasMoreElements": "hasMoreElements"; "elementId": "elementId"; "screenNameOptions": "screenNameOptions"; "hasMoreScreenNames": "hasMoreScreenNames"; "isLoadingScreenNames": "isLoadingScreenNames"; "suggestedTags": "suggestedTags"; "isElementLoading": "isElementLoading"; "recentSearchedItems": "recentSearchedItems"; }, { "apply": "apply"; "cancel": "cancel"; "editInDepth": "editInDepth"; "searchElement": "searchElement"; "recentItemClick": "recentItemClick"; "loadMoreElements": "loadMoreElements"; "createElement": "createElement"; "updateElement": "updateElement"; "createScreenNameRequest": "createScreenNameRequest"; "searchScreenName": "searchScreenName"; "loadMoreScreenNames": "loadMoreScreenNames"; "formOpenRequest": "formOpenRequest"; "elementSelect": "elementSelect"; "toggleRecord": "toggleRecord"; }, never, never>;
60
113
  }
@@ -58,6 +58,11 @@ export declare class TestCaseLoopStepComponent implements OnInit, OnChanges {
58
58
  searchDataProfiles: EventEmitter<string>;
59
59
  /** Emit when step is updated (Apply button clicked in edit mode) */
60
60
  stepUpdate: EventEmitter<LoopStepConfig>;
61
+ /** Re-emit when a nested step (e.g. normal-step) emits clickAction (e.g. element/label click for popup) */
62
+ clickAction: EventEmitter<{
63
+ event: MouseEvent;
64
+ step: TestCaseStepConfig;
65
+ }>;
61
66
  onDndDrop(event: DndDropEvent): void;
62
67
  /** Expose global constructors for template (Angular templates don't have String/Number) */
63
68
  readonly stringFn: StringConstructor;
@@ -135,5 +140,5 @@ export declare class TestCaseLoopStepComponent implements OnInit, OnChanges {
135
140
  onDelete(): void;
136
141
  onMoreOptions(): void;
137
142
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseLoopStepComponent, never>;
138
- static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseLoopStepComponent, "cqa-test-case-loop-step", never, { "config": "config"; "id": "id"; "loopType": "loopType"; "stepNumber": "stepNumber"; "condition": "condition"; "maxIterations": "maxIterations"; "testDataProfile": "testDataProfile"; "startStep": "startStep"; "endStep": "endStep"; "nestedSteps": "nestedSteps"; "expanded": "expanded"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; }, { "toggleExpanded": "toggleExpanded"; "testDataProfileChange": "testDataProfileChange"; "startStepChange": "startStepChange"; "endStepChange": "endStepChange"; "conditionChange": "conditionChange"; "maxIterationsChange": "maxIterationsChange"; "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "edit": "edit"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; }, never, never>;
143
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseLoopStepComponent, "cqa-test-case-loop-step", never, { "config": "config"; "id": "id"; "loopType": "loopType"; "stepNumber": "stepNumber"; "condition": "condition"; "maxIterations": "maxIterations"; "testDataProfile": "testDataProfile"; "startStep": "startStep"; "endStep": "endStep"; "nestedSteps": "nestedSteps"; "expanded": "expanded"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "isReorder": "isReorder"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; }, { "toggleExpanded": "toggleExpanded"; "testDataProfileChange": "testDataProfileChange"; "startStepChange": "startStepChange"; "endStepChange": "endStepChange"; "conditionChange": "conditionChange"; "maxIterationsChange": "maxIterationsChange"; "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "duplicate": "duplicate"; "delete": "delete"; "moreOptions": "moreOptions"; "edit": "edit"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; "clickAction": "clickAction"; }, never, never>;
139
144
  }
@@ -17,6 +17,7 @@ export declare class TestCaseNormalStepComponent implements OnInit {
17
17
  testDataTrigger?: ElementRef<HTMLElement>;
18
18
  editTrigger?: ElementRef<HTMLElement>;
19
19
  elementTrigger?: ElementRef<HTMLElement>;
20
+ clickElementTrigger?: ElementRef<HTMLElement>;
20
21
  config: NormalStepConfig;
21
22
  stepNumber: number | string;
22
23
  action: string;
@@ -15,6 +15,7 @@ export declare class TestCaseDetailsRendererComponent implements OnChanges, Afte
15
15
  /** When true, enables drag-and-drop reordering and shows drag handle icon instead of checkbox */
16
16
  isReorder: boolean;
17
17
  addStepBetween: boolean;
18
+ action?: string;
18
19
  nestedStepChange: EventEmitter<{
19
20
  step: TestCaseStepConfig;
20
21
  index: number;
@@ -67,7 +68,11 @@ export declare class TestCaseDetailsRendererComponent implements OnChanges, Afte
67
68
  maxIterationsChange: EventEmitter<number>;
68
69
  eventTypeChange: EventEmitter<any>;
69
70
  parameterChange: EventEmitter<any>;
70
- clickAction: EventEmitter<MouseEvent>;
71
+ /** Emits with step so parent (e.g. step-list) gets correct step when click is from nested step (e.g. inside loop). */
72
+ clickAction: EventEmitter<{
73
+ event: MouseEvent;
74
+ step: TestCaseStepConfig;
75
+ }>;
71
76
  /** Emitted when a step is dropped in a nested dropzone (step-group, loop, condition). Payload: { event, targetList }. */
72
77
  dndDropInZone: EventEmitter<{
73
78
  event: any;
@@ -102,5 +107,5 @@ export declare class TestCaseDetailsRendererComponent implements OnChanges, Afte
102
107
  private wireOutputs;
103
108
  ngOnDestroy(): void;
104
109
  static ɵfac: i0.ɵɵFactoryDeclaration<TestCaseDetailsRendererComponent, never>;
105
- static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseDetailsRendererComponent, "cqa-test-case-details-renderer", never, { "step": "step"; "index": "index"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "branch": "branch"; "isReorder": "isReorder"; "addStepBetween": "addStepBetween"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; "setConditionTemplateVariables": "setConditionTemplateVariables"; }, { "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "toggleExpanded": "toggleExpanded"; "groupNameChange": "groupNameChange"; "descriptionChange": "descriptionChange"; "reusableChange": "reusableChange"; "openExternal": "openExternal"; "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "viewDetails": "viewDetails"; "selectionChange": "selectionChange"; "conditionChange": "conditionChange"; "branchStepChange": "branchStepChange"; "addStepForBranch": "addStepForBranch"; "deleteStepWithBranch": "deleteStepWithBranch"; "addBranch": "addBranch"; "addElse": "addElse"; "deleteBranch": "deleteBranch"; "testDataProfileChange": "testDataProfileChange"; "startStepChange": "startStepChange"; "endStepChange": "endStepChange"; "maxIterationsChange": "maxIterationsChange"; "eventTypeChange": "eventTypeChange"; "parameterChange": "parameterChange"; "clickAction": "clickAction"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; "addStepBetweenClick": "addStepBetweenClick"; }, never, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<TestCaseDetailsRendererComponent, "cqa-test-case-details-renderer", never, { "step": "step"; "index": "index"; "isNested": "isNested"; "isInsideLoop": "isInsideLoop"; "branch": "branch"; "isReorder": "isReorder"; "addStepBetween": "addStepBetween"; "action": "action"; "dataProfileOptions": "dataProfileOptions"; "hasMoreDataProfiles": "hasMoreDataProfiles"; "isLoadingDataProfiles": "isLoadingDataProfiles"; "naturalTextActionsOptions": "naturalTextActionsOptions"; "setConditionTemplateVariables": "setConditionTemplateVariables"; }, { "nestedStepChange": "nestedStepChange"; "addStep": "addStep"; "deleteStep": "deleteStep"; "toggleExpanded": "toggleExpanded"; "groupNameChange": "groupNameChange"; "descriptionChange": "descriptionChange"; "reusableChange": "reusableChange"; "openExternal": "openExternal"; "edit": "edit"; "link": "link"; "duplicate": "duplicate"; "delete": "delete"; "viewDetails": "viewDetails"; "selectionChange": "selectionChange"; "conditionChange": "conditionChange"; "branchStepChange": "branchStepChange"; "addStepForBranch": "addStepForBranch"; "deleteStepWithBranch": "deleteStepWithBranch"; "addBranch": "addBranch"; "addElse": "addElse"; "deleteBranch": "deleteBranch"; "testDataProfileChange": "testDataProfileChange"; "startStepChange": "startStepChange"; "endStepChange": "endStepChange"; "maxIterationsChange": "maxIterationsChange"; "eventTypeChange": "eventTypeChange"; "parameterChange": "parameterChange"; "clickAction": "clickAction"; "dndDropInZone": "dndDropInZone"; "loadMoreDataProfiles": "loadMoreDataProfiles"; "searchDataProfiles": "searchDataProfiles"; "stepUpdate": "stepUpdate"; "addStepBetweenClick": "addStepBetweenClick"; }, never, never>;
106
111
  }
@@ -43,11 +43,18 @@ export interface BaseStepConfig {
43
43
  selected?: boolean;
44
44
  disabled?: boolean;
45
45
  expanded?: boolean;
46
+ event?: Record<string, unknown>;
46
47
  }
47
48
  export interface NormalStepConfig extends BaseStepConfig {
48
49
  stepType: StepTypes.NORMAL;
49
50
  eventType: TestCaseEventType;
50
51
  parameters: StepParameter[];
52
+ elementData?: {
53
+ label?: string;
54
+ selector?: string;
55
+ pwLocator?: string[];
56
+ labels?: string[];
57
+ };
51
58
  }
52
59
  /** API Step Configuration */
53
60
  export interface ApiStepConfig extends BaseStepConfig {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cqa-lib/cqa-ui",
3
- "version": "1.1.199",
3
+ "version": "1.1.201",
4
4
  "description": "UI Kit library for Angular 13.4",
5
5
  "keywords": [
6
6
  "angular",
package/public-api.d.ts CHANGED
@@ -122,6 +122,7 @@ export * from './lib/step-builder/step-builder-loop/step-builder-loop.component'
122
122
  export * from './lib/test-case-details/element-popup/element-popup.component';
123
123
  export * from './lib/test-case-details/element-popup/element-popup-ref';
124
124
  export * from './lib/test-case-details/element-popup/element-popup-data';
125
+ export * from './lib/test-case-details/element-popup/element-popup-form-data';
125
126
  export * from './lib/test-case-details/element-popup/element-popup.service';
126
127
  export * from './lib/step-builder/step-builder-condition/step-builder-condition.component';
127
128
  export * from './lib/step-builder/step-builder-database/step-builder-database.component';