@smartbit4all/playwright-qa 0.1.7 → 0.1.9

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/README.md CHANGED
@@ -134,11 +134,67 @@ The package ships reusable TestSteps for common smartbit4all UI patterns (grid,
134
134
  import { selectGridRow, navigateInTree } from '@smartbit4all/playwright-qa/steps';
135
135
  ```
136
136
 
137
+ ### Forms
138
+
139
+ ```typescript
140
+ import {
141
+ fillField, fillDate, fillDateTime,
142
+ selectOption, selectMultiple, selectRadio,
143
+ setCheckbox, setCheckboxGroup, setToggle,
144
+ addChip, removeChip, setChips,
145
+ uploadFile,
146
+ } from '@smartbit4all/playwright-qa/steps';
147
+
148
+ // Fill a text input or textarea — by data-testid (preferred) or label text (fallback)
149
+ await fillField(dialog, 'data.name', 'Teszt mappa'); // data-testid
150
+ await fillField(page, 'dossierContentData.name', 'Teszt dosszié'); // data-testid
151
+ await fillField(page, 'Megjegyzés', 'Ez egy megjegyzés'); // label fallback
152
+
153
+ // Date picker (ISO format YYYY-MM-DD)
154
+ await fillDate(dialog, 'dataSheet.startDate', '2026-04-15');
155
+
156
+ // Date-time picker (date + time)
157
+ await fillDateTime(dialog, 'data.deadline', '2026-04-15', '14:30');
158
+
159
+ // Select from a dropdown (mat-select / p-dropdown) — by data-testid or label
160
+ await selectOption(page, 'selectedDocumentTypeCategory', 'Ügyintézés'); // data-testid
161
+ await selectOption(dialog, 'Kategória', 'Ügyintézés'); // label fallback
162
+
163
+ // Multi-select dropdown
164
+ await selectMultiple(dialog, 'data.skills', ['Angular', 'React', 'Vue']);
165
+
166
+ // Select a radio button — by data-testid on the radio group or label
167
+ await selectRadio(dialog, 'data.canIncludeFiles', 'Nem'); // data-testid
168
+ await selectRadio(dialog, 'Tartalmazhat almappákat', 'Igen'); // label fallback
169
+
170
+ // Set a checkbox — by data-testid or label
171
+ await setCheckbox(dialog, 'Aktív', true);
172
+
173
+ // Checkbox group (CHECK_BOX_2) — set multiple checkboxes at once
174
+ await setCheckboxGroup(dialog, 'permissions', { 'Olvasás': true, 'Írás': true, 'Törlés': false });
175
+
176
+ // Toggle switch
177
+ await setToggle(dialog, 'data.isActive', true);
178
+
179
+ // Chips — add, remove, or set declaratively
180
+ await addChip(dialog, 'data.tags', 'urgent');
181
+ await removeChip(dialog, 'data.tags', 'draft');
182
+ await setChips(dialog, 'data.tags', ['urgent', 'review']);
183
+
184
+ // File upload
185
+ await uploadFile(dialog, 'data.attachment', '/path/to/file.pdf');
186
+ ```
187
+
188
+ All form utilities accept a `data-testid` value or a visible label text as identifier. When a `data-testid` match is found on the element, it takes priority; otherwise the function falls back to label text matching (`.smart-form-widget-label`, `h3`, `h4`, or `label`). They work with both Angular Material and PrimeNG components, and accept any `Locator` or `Page` as container — use `topDialog(page)` to scope to a dialog.
189
+
137
190
  ### Grid
138
191
 
139
192
  ```typescript
140
193
  import {
141
194
  selectGridRow,
195
+ checkGridRow,
196
+ checkGridRowsOnPage,
197
+ checkAllGridRows,
142
198
  filterAndSelectGridRow,
143
199
  applyGridFilters,
144
200
  clearGridFilters,
@@ -158,6 +214,16 @@ await selectGridRow(page, { 'Azonosító': 'DOC-001' }, true);
158
214
  await screenshot(page, 'grid-context-menu');
159
215
  await page.keyboard.press('Escape');
160
216
 
217
+ // Multi-select grid: check/uncheck a single row (paginates if needed)
218
+ await checkGridRow(page, { 'Cím': 'Dokumentátor' }, true);
219
+ await checkGridRow(page, { 'Cím': 'Dokumentátor' }, false);
220
+
221
+ // Check/uncheck all matching rows on the current page (no pagination)
222
+ await checkGridRowsOnPage(page, 'Admin', true);
223
+
224
+ // Select all / deselect all via header checkbox
225
+ await checkAllGridRows(page, true);
226
+
161
227
  // Use the filter form above the grid, then select the row
162
228
  await filterAndSelectGridRow(page, { 'Azonosító': 'DOC-001' });
163
229
 
@@ -166,6 +232,13 @@ await applyGridFilters(page, { 'Név': 'Teszt' });
166
232
  await clearGridFilters(page);
167
233
  ```
168
234
 
235
+ All grid functions accept `Page` or `Locator` as container — use a Locator to scope to a dialog or section:
236
+
237
+ ```typescript
238
+ const section = dialog.locator('smart-component-layout[data-testid="participants"]');
239
+ await checkGridRow(section, { 'Cím': 'Dokumentátor' }, true);
240
+ ```
241
+
169
242
  ### Navigation
170
243
 
171
244
  ```typescript
@@ -4,7 +4,7 @@ import type { Page, Locator } from '@playwright/test';
4
4
  */
5
5
  export declare function topDialog(page: Page): Locator;
6
6
  /**
7
- * Clicks a button inside the topmost dialog by data-testid or visible text.
7
+ * Clicks a button inside the topmost dialog (or a given container) by data-testid or visible text.
8
8
  */
9
- export declare function clickInDialog(page: Page, buttonText: string): Promise<void>;
9
+ export declare function clickInDialog(container: Page | Locator, buttonText: string): Promise<void>;
10
10
  //# sourceMappingURL=dialog.steps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.steps.d.ts","sourceRoot":"","sources":["../../src/steps/dialog.steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMtD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
1
+ {"version":3,"file":"dialog.steps.d.ts","sourceRoot":"","sources":["../../src/steps/dialog.steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMtD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhG"}
@@ -12,11 +12,12 @@ function topDialog(page) {
12
12
  return page.locator(DIALOG_SELECTOR).last();
13
13
  }
14
14
  /**
15
- * Clicks a button inside the topmost dialog by data-testid or visible text.
15
+ * Clicks a button inside the topmost dialog (or a given container) by data-testid or visible text.
16
16
  */
17
- async function clickInDialog(page, buttonText) {
18
- const dialog = topDialog(page);
19
- await (0, locators_1.findButton)(dialog, buttonText).click();
17
+ async function clickInDialog(container, buttonText) {
18
+ const page = 'page' in container ? container.page() : container;
19
+ const scope = 'page' in container ? container : topDialog(page);
20
+ await (0, locators_1.findButton)(scope, buttonText).click();
20
21
  await (0, wait_1.waitForAngularIdle)(page);
21
22
  }
22
23
  //# sourceMappingURL=dialog.steps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.steps.js","sourceRoot":"","sources":["../../src/steps/dialog.steps.ts"],"names":[],"mappings":";;AASA,8BAEC;AAKD,sCAIC;AAnBD,iCAA4C;AAC5C,yCAAwC;AAExC,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAE1D;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,IAAU,EAAE,UAAkB;IAChE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAA,qBAAU,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7C,MAAM,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"dialog.steps.js","sourceRoot":"","sources":["../../src/steps/dialog.steps.ts"],"names":[],"mappings":";;AASA,8BAEC;AAKD,sCAKC;AApBD,iCAA4C;AAC5C,yCAAwC;AAExC,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAE1D;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,SAAyB,EAAE,UAAkB;IAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAE,SAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAiB,CAAC;IACrF,MAAM,KAAK,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,IAAA,qBAAU,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5C,MAAM,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { Page, Locator } from '@playwright/test';
2
+ /**
3
+ * Fills a text input or textarea identified by data-testid or label text.
4
+ */
5
+ export declare function fillField(container: Locator | Page, identifier: string, value: string): Promise<void>;
6
+ /**
7
+ * Fills a date picker input with an ISO date string (YYYY-MM-DD).
8
+ * Identifier can be a data-testid or a label text.
9
+ */
10
+ export declare function fillDate(container: Locator | Page, identifier: string, date: string): Promise<void>;
11
+ /**
12
+ * Fills a date-time picker with date (YYYY-MM-DD) and time (HH:mm).
13
+ * PrimeNG: single input with combined value. Material: two separate inputs.
14
+ * Identifier can be a data-testid or a label text.
15
+ */
16
+ export declare function fillDateTime(container: Locator | Page, identifier: string, date: string, time: string): Promise<void>;
17
+ /**
18
+ * Selects an option from a dropdown (Angular Material mat-select or PrimeNG p-dropdown).
19
+ * Identifier can be a data-testid or a label text.
20
+ */
21
+ export declare function selectOption(container: Locator | Page, identifier: string, optionText: string): Promise<void>;
22
+ /**
23
+ * Selects multiple options from a multi-select dropdown.
24
+ * Identifier can be a data-testid or a label text.
25
+ */
26
+ export declare function selectMultiple(container: Locator | Page, identifier: string, options: string[]): Promise<void>;
27
+ /**
28
+ * Selects a radio button inside a radio group identified by data-testid or label text.
29
+ */
30
+ export declare function selectRadio(container: Locator | Page, identifier: string, value: string): Promise<void>;
31
+ /**
32
+ * Sets a checkbox to the desired state (checked/unchecked).
33
+ * Identifier can be a data-testid or a label text.
34
+ */
35
+ export declare function setCheckbox(container: Locator | Page, identifier: string, checked: boolean): Promise<void>;
36
+ /**
37
+ * Sets multiple checkboxes in a checkbox group (CHECK_BOX_2 widget).
38
+ * Identifier can be a data-testid or a label text.
39
+ * Selections is a map of checkbox label to desired state.
40
+ * Checkboxes not mentioned in selections are left unchanged.
41
+ */
42
+ export declare function setCheckboxGroup(container: Locator | Page, identifier: string, selections: Record<string, boolean>): Promise<void>;
43
+ /**
44
+ * Sets a toggle switch to the desired state.
45
+ * Identifier can be a data-testid or a label text.
46
+ */
47
+ export declare function setToggle(container: Locator | Page, identifier: string, on: boolean): Promise<void>;
48
+ /**
49
+ * Adds a chip to a chip input field.
50
+ * Identifier can be a data-testid or a label text.
51
+ */
52
+ export declare function addChip(container: Locator | Page, identifier: string, value: string): Promise<void>;
53
+ /**
54
+ * Removes a chip from a chip input field by its displayed text.
55
+ * Identifier can be a data-testid or a label text.
56
+ */
57
+ export declare function removeChip(container: Locator | Page, identifier: string, value: string): Promise<void>;
58
+ /**
59
+ * Sets the chips to the desired list of values.
60
+ * Removes chips not in the list, adds missing ones.
61
+ * Identifier can be a data-testid or a label text.
62
+ */
63
+ export declare function setChips(container: Locator | Page, identifier: string, values: string[]): Promise<void>;
64
+ /**
65
+ * Uploads a file to a file uploader widget.
66
+ * Identifier can be a data-testid or a label text.
67
+ */
68
+ export declare function uploadFile(container: Locator | Page, identifier: string, filePath: string): Promise<void>;
69
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AA8DtD;;GAEG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3G;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzG;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3H;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBnH;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBpH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7G;AAID;;;GAGG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAchH;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBxI;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAczG;AAID;;;GAGG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzG;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5G;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B7G;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS/G"}
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fillField = fillField;
4
+ exports.fillDate = fillDate;
5
+ exports.fillDateTime = fillDateTime;
6
+ exports.selectOption = selectOption;
7
+ exports.selectMultiple = selectMultiple;
8
+ exports.selectRadio = selectRadio;
9
+ exports.setCheckbox = setCheckbox;
10
+ exports.setCheckboxGroup = setCheckboxGroup;
11
+ exports.setToggle = setToggle;
12
+ exports.addChip = addChip;
13
+ exports.removeChip = removeChip;
14
+ exports.setChips = setChips;
15
+ exports.uploadFile = uploadFile;
16
+ /**
17
+ * Resolves a form widget container by data-testid or label text.
18
+ * If identifier matches a data-testid on a widget container or radio group, uses that.
19
+ * Otherwise falls back to label text matching.
20
+ */
21
+ function widgetByLabel(container, label) {
22
+ const page = getPage(container);
23
+ // First try: smartbit4all widget with .smart-form-widget-label class
24
+ const bySmartLabel = container.locator('.widgetContainer', {
25
+ has: page.locator(`.smart-form-widget-label:has-text("${label}")`),
26
+ }).first();
27
+ // Fallback: generic form field with h4/label
28
+ const byGenericLabel = container.locator('.widgetContainer, .form-field, .mat-mdc-form-field', {
29
+ has: page.locator(`h4:has-text("${label}"), label:has-text("${label}")`),
30
+ }).first();
31
+ return bySmartLabel.or(byGenericLabel).first();
32
+ }
33
+ /**
34
+ * Finds an input/textarea by data-testid first, falling back to label text strategies.
35
+ * Strategies are tried in priority order — first match wins.
36
+ */
37
+ async function resolveInput(container, identifier) {
38
+ const page = getPage(container);
39
+ const inputSelector = 'input:not([type=radio]):not([type=checkbox]):not([type=hidden]), textarea';
40
+ // Strategy 1: data-testid on the input itself
41
+ const byTestId = container.locator(`input[data-testid="${identifier}"], textarea[data-testid="${identifier}"]`).first();
42
+ if (await byTestId.count() > 0)
43
+ return byTestId;
44
+ // Strategy 2: smartform widget with .smart-form-widget-label
45
+ const bySmartLabel = container.locator('.widgetContainer', {
46
+ has: page.locator(`.smart-form-widget-label:has-text("${identifier}")`),
47
+ }).first().locator(inputSelector).first();
48
+ if (await bySmartLabel.count() > 0)
49
+ return bySmartLabel;
50
+ // Strategy 3: aria-label on the input
51
+ const byAriaLabel = container.locator(`input[aria-label*="${identifier}"], textarea[aria-label*="${identifier}"]`).first();
52
+ if (await byAriaLabel.count() > 0)
53
+ return byAriaLabel;
54
+ // Strategy 4: heading sibling containing the input
55
+ const byHeading = container.locator(`h3:has-text("${identifier}"), h4:has-text("${identifier}")`).first()
56
+ .locator('~ smartform, ~ div, ~ mat-form-field').first()
57
+ .locator(inputSelector).first();
58
+ return byHeading;
59
+ }
60
+ /**
61
+ * Finds the mat-chip-grid container for a chip input identified by data-testid or label.
62
+ */
63
+ function findChipGrid(container, identifier) {
64
+ const byTestId = container.locator(`input[data-testid="${identifier}"]`).first()
65
+ .locator('xpath=ancestor::mat-chip-grid');
66
+ const widget = widgetByLabel(container, identifier);
67
+ const byWidget = widget.locator('mat-chip-grid').first();
68
+ return byTestId.or(byWidget).first();
69
+ }
70
+ // --- Text input utilities ---
71
+ /**
72
+ * Fills a text input or textarea identified by data-testid or label text.
73
+ */
74
+ async function fillField(container, identifier, value) {
75
+ const input = await resolveInput(container, identifier);
76
+ await input.fill(value);
77
+ }
78
+ /**
79
+ * Fills a date picker input with an ISO date string (YYYY-MM-DD).
80
+ * Identifier can be a data-testid or a label text.
81
+ */
82
+ async function fillDate(container, identifier, date) {
83
+ const input = await resolveInput(container, identifier);
84
+ await input.fill(date);
85
+ }
86
+ /**
87
+ * Fills a date-time picker with date (YYYY-MM-DD) and time (HH:mm).
88
+ * PrimeNG: single input with combined value. Material: two separate inputs.
89
+ * Identifier can be a data-testid or a label text.
90
+ */
91
+ async function fillDateTime(container, identifier, date, time) {
92
+ const inputSelector = 'input:not([type=radio]):not([type=checkbox]):not([type=hidden])';
93
+ // Try data-testid on p-calendar (single input with showTime)
94
+ const primeCalendar = container.locator(`p-calendar[data-testid="${identifier}"]`).first();
95
+ if (await primeCalendar.count() > 0) {
96
+ const input = primeCalendar.locator('input').first();
97
+ await input.fill(`${date} ${time}`);
98
+ }
99
+ else {
100
+ // Material fallback: two separate inputs in the widget
101
+ const widget = widgetByLabel(container, identifier);
102
+ const inputs = widget.locator(inputSelector);
103
+ const dateInput = inputs.first();
104
+ const timeInput = inputs.nth(1);
105
+ await dateInput.fill(date);
106
+ await timeInput.fill(time);
107
+ }
108
+ }
109
+ // --- Selection utilities ---
110
+ /**
111
+ * Selects an option from a dropdown (Angular Material mat-select or PrimeNG p-dropdown).
112
+ * Identifier can be a data-testid or a label text.
113
+ */
114
+ async function selectOption(container, identifier, optionText) {
115
+ const page = getPage(container);
116
+ // Try data-testid first
117
+ const byTestId = container.locator(`mat-select[data-testid="${identifier}"], p-dropdown[data-testid="${identifier}"]`).first();
118
+ const widget = widgetByLabel(container, identifier);
119
+ const byWidget = widget.locator('mat-select, p-dropdown').first();
120
+ const target = byTestId.or(byWidget).first();
121
+ await target.click();
122
+ // mat-option and p-dropdown-item render in overlay (body level)
123
+ const matOption = page.locator('mat-option', { hasText: optionText });
124
+ const primeOption = page.locator('.p-dropdown-item', { hasText: optionText });
125
+ await matOption.or(primeOption).first().click();
126
+ }
127
+ /**
128
+ * Selects multiple options from a multi-select dropdown.
129
+ * Identifier can be a data-testid or a label text.
130
+ */
131
+ async function selectMultiple(container, identifier, options) {
132
+ const page = getPage(container);
133
+ // Try data-testid first
134
+ const byTestId = container.locator(`mat-select[data-testid="${identifier}"], p-multiSelect[data-testid="${identifier}"]`).first();
135
+ const widget = widgetByLabel(container, identifier);
136
+ const byWidget = widget.locator('mat-select, p-multiSelect').first();
137
+ const target = byTestId.or(byWidget).first();
138
+ await target.click();
139
+ for (const optionText of options) {
140
+ const matOption = page.locator('mat-option', { hasText: optionText });
141
+ const primeOption = page.locator('.p-multiselect-item', { hasText: optionText });
142
+ await matOption.or(primeOption).first().click();
143
+ }
144
+ // Close the dropdown
145
+ await page.keyboard.press('Escape');
146
+ }
147
+ /**
148
+ * Selects a radio button inside a radio group identified by data-testid or label text.
149
+ */
150
+ async function selectRadio(container, identifier, value) {
151
+ // Try data-testid on mat-radio-group / p-radiobutton parent
152
+ const byTestId = container.locator(`mat-radio-group[data-testid="${identifier}"]`).first();
153
+ const widget = widgetByLabel(container, identifier);
154
+ // Angular Material
155
+ const matRadioInTestId = byTestId.locator('mat-radio-button', { hasText: value });
156
+ const matRadioInWidget = widget.locator('mat-radio-button', { hasText: value });
157
+ const matRadio = matRadioInTestId.or(matRadioInWidget).first();
158
+ // PrimeNG
159
+ const primeRadio = widget.locator('p-radiobutton', { hasText: value });
160
+ if (await matRadio.count() > 0) {
161
+ await matRadio.click();
162
+ }
163
+ else if (await primeRadio.count() > 0) {
164
+ await primeRadio.click();
165
+ }
166
+ }
167
+ // --- Toggle & checkbox utilities ---
168
+ /**
169
+ * Sets a checkbox to the desired state (checked/unchecked).
170
+ * Identifier can be a data-testid or a label text.
171
+ */
172
+ async function setCheckbox(container, identifier, checked) {
173
+ const widget = widgetByLabel(container, identifier);
174
+ // Try data-testid first
175
+ const byTestId = container.locator(`mat-checkbox[data-testid="${identifier}"], p-checkbox[data-testid="${identifier}"]`).first();
176
+ const byWidget = widget.locator('mat-checkbox, p-checkbox').first();
177
+ const target = byTestId.or(byWidget).first();
178
+ const input = target.locator('input');
179
+ const isChecked = await input.isChecked();
180
+ if (isChecked !== checked) {
181
+ await target.click();
182
+ }
183
+ }
184
+ /**
185
+ * Sets multiple checkboxes in a checkbox group (CHECK_BOX_2 widget).
186
+ * Identifier can be a data-testid or a label text.
187
+ * Selections is a map of checkbox label to desired state.
188
+ * Checkboxes not mentioned in selections are left unchanged.
189
+ */
190
+ async function setCheckboxGroup(container, identifier, selections) {
191
+ // Try data-testid on wrapper div
192
+ const byTestId = container.locator(`div[data-testid="${identifier}"], .widgetContainer[data-testid="${identifier}"]`).first();
193
+ const widget = widgetByLabel(container, identifier);
194
+ const group = byTestId.or(widget).first();
195
+ for (const [label, desired] of Object.entries(selections)) {
196
+ // Angular Material
197
+ const matCb = group.locator('mat-checkbox', { hasText: label });
198
+ // PrimeNG
199
+ const primeCb = group.locator('p-checkbox', { hasText: label });
200
+ const target = matCb.or(primeCb).first();
201
+ const input = target.locator('input');
202
+ const isChecked = await input.isChecked();
203
+ if (isChecked !== desired) {
204
+ await target.click();
205
+ }
206
+ }
207
+ }
208
+ /**
209
+ * Sets a toggle switch to the desired state.
210
+ * Identifier can be a data-testid or a label text.
211
+ */
212
+ async function setToggle(container, identifier, on) {
213
+ const widget = widgetByLabel(container, identifier);
214
+ // Try data-testid first
215
+ const byTestId = container.locator(`mat-slide-toggle[data-testid="${identifier}"], p-inputSwitch[data-testid="${identifier}"]`).first();
216
+ const byWidget = widget.locator('mat-slide-toggle, p-inputSwitch').first();
217
+ const target = byTestId.or(byWidget).first();
218
+ const input = target.locator('input');
219
+ const isChecked = await input.isChecked();
220
+ if (isChecked !== on) {
221
+ await target.click();
222
+ }
223
+ }
224
+ // --- Chip utilities ---
225
+ /**
226
+ * Adds a chip to a chip input field.
227
+ * Identifier can be a data-testid or a label text.
228
+ */
229
+ async function addChip(container, identifier, value) {
230
+ const input = await resolveInput(container, identifier);
231
+ await input.fill(value);
232
+ await input.press('Enter');
233
+ }
234
+ /**
235
+ * Removes a chip from a chip input field by its displayed text.
236
+ * Identifier can be a data-testid or a label text.
237
+ */
238
+ async function removeChip(container, identifier, value) {
239
+ const chipGrid = findChipGrid(container, identifier);
240
+ const chip = chipGrid.locator('mat-chip-row', { hasText: value });
241
+ await chip.locator('button[matChipRemove]').click();
242
+ }
243
+ /**
244
+ * Sets the chips to the desired list of values.
245
+ * Removes chips not in the list, adds missing ones.
246
+ * Identifier can be a data-testid or a label text.
247
+ */
248
+ async function setChips(container, identifier, values) {
249
+ const chipGrid = findChipGrid(container, identifier);
250
+ // Read current chips
251
+ const chipRows = chipGrid.locator('mat-chip-row');
252
+ const count = await chipRows.count();
253
+ const currentChips = [];
254
+ for (let i = 0; i < count; i++) {
255
+ const text = await chipRows.nth(i).textContent();
256
+ if (text) {
257
+ // Chip text may contain the remove button icon text — strip it
258
+ currentChips.push(text.replace(/cancel/g, '').trim());
259
+ }
260
+ }
261
+ // Remove chips not in desired values
262
+ for (const chip of currentChips) {
263
+ if (!values.includes(chip)) {
264
+ await removeChip(container, identifier, chip);
265
+ }
266
+ }
267
+ // Add chips not yet present
268
+ for (const value of values) {
269
+ if (!currentChips.includes(value)) {
270
+ await addChip(container, identifier, value);
271
+ }
272
+ }
273
+ }
274
+ // --- File upload ---
275
+ /**
276
+ * Uploads a file to a file uploader widget.
277
+ * Identifier can be a data-testid or a label text.
278
+ */
279
+ async function uploadFile(container, identifier, filePath) {
280
+ // Try data-testid on smart-file-editor
281
+ const byTestId = container.locator(`smart-file-editor[data-testid="${identifier}"]`).first();
282
+ const widget = widgetByLabel(container, identifier);
283
+ const byWidget = widget.locator('smart-file-editor').first();
284
+ const editor = byTestId.or(byWidget).first();
285
+ const fileInput = editor.locator('input[type=file]');
286
+ await fileInput.setInputFiles(filePath);
287
+ }
288
+ // --- Internal helpers ---
289
+ /**
290
+ * Extracts the Page from a Locator or Page.
291
+ */
292
+ function getPage(container) {
293
+ if ('page' in container) {
294
+ return container.page();
295
+ }
296
+ return container;
297
+ }
298
+ //# sourceMappingURL=forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/steps/forms.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,41 @@
1
- import type { Page } from '@playwright/test';
1
+ import type { Page, Locator } from '@playwright/test';
2
2
  export type RowFilter = string | Record<string, string>;
3
3
  /**
4
4
  * Finds a row in the grid by content match (paginating if needed) and performs an action.
5
5
  * Does NOT use the filter form — searches through the actual table rows.
6
+ * Container can be a Page or a Locator (e.g., a dialog or section).
6
7
  */
7
- export declare function selectGridRow(page: Page, filter: RowFilter, action?: string | true): Promise<void>;
8
+ export declare function selectGridRow(container: Page | Locator, filter: RowFilter, action?: string | true): Promise<void>;
8
9
  /**
9
10
  * Uses the filter form above the grid to narrow results, then performs an action on the first match.
10
- * The filter keys must match the labels above the filter inputs (e.g. "Azonosito", "Nev").
11
+ * Container can be a Page or a Locator (e.g., a dialog or section).
11
12
  */
12
- export declare function filterAndSelectGridRow(page: Page, filter: Record<string, string>, action?: string | true): Promise<void>;
13
+ export declare function filterAndSelectGridRow(container: Page | Locator, filter: Record<string, string>, action?: string | true): Promise<void>;
13
14
  /**
14
15
  * Fills the filter form above the grid and clicks the search button.
16
+ * Container can be a Page or a Locator.
15
17
  */
16
- export declare function applyGridFilters(page: Page, filter: Record<string, string>): Promise<void>;
18
+ export declare function applyGridFilters(container: Page | Locator, filter: Record<string, string>): Promise<void>;
17
19
  /**
18
20
  * Clears all filter inputs and re-triggers search.
21
+ * Container can be a Page or a Locator.
19
22
  */
20
- export declare function clearGridFilters(page: Page): Promise<void>;
23
+ export declare function clearGridFilters(container: Page | Locator): Promise<void>;
24
+ /**
25
+ * Checks or unchecks the first row matching the filter in a multi-select grid.
26
+ * Paginates if needed (like selectGridRow).
27
+ * Container can be a Page or a Locator.
28
+ */
29
+ export declare function checkGridRow(container: Page | Locator, filter: RowFilter, checked: boolean): Promise<void>;
30
+ /**
31
+ * Checks or unchecks all rows matching the filter on the current grid page.
32
+ * Does NOT paginate — only affects visible rows.
33
+ * Container can be a Page or a Locator.
34
+ */
35
+ export declare function checkGridRowsOnPage(container: Page | Locator, filter: RowFilter, checked: boolean): Promise<void>;
36
+ /**
37
+ * Checks or unchecks all rows by clicking the header checkbox (select all / deselect all).
38
+ * Container can be a Page or a Locator.
39
+ */
40
+ export declare function checkAllGridRows(container: Page | Locator, checked: boolean): Promise<void>;
21
41
  //# sourceMappingURL=grid.steps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.steps.d.ts","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,kBAAkB,CAAC;AAKtD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhG;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE"}
1
+ {"version":3,"file":"grid.steps.d.ts","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKtD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AASxD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAa/G;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW/E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,IAAI,GAAG,OAAO,EACzB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAMf"}
@@ -4,15 +4,26 @@ exports.selectGridRow = selectGridRow;
4
4
  exports.filterAndSelectGridRow = filterAndSelectGridRow;
5
5
  exports.applyGridFilters = applyGridFilters;
6
6
  exports.clearGridFilters = clearGridFilters;
7
+ exports.checkGridRow = checkGridRow;
8
+ exports.checkGridRowsOnPage = checkGridRowsOnPage;
9
+ exports.checkAllGridRows = checkAllGridRows;
7
10
  const test_1 = require("@playwright/test");
8
11
  const wait_1 = require("./wait");
9
12
  const locators_1 = require("./locators");
13
+ function getPage(container) {
14
+ if ('page' in container) {
15
+ return container.page();
16
+ }
17
+ return container;
18
+ }
10
19
  /**
11
20
  * Finds a row in the grid by content match (paginating if needed) and performs an action.
12
21
  * Does NOT use the filter form — searches through the actual table rows.
22
+ * Container can be a Page or a Locator (e.g., a dialog or section).
13
23
  */
14
- async function selectGridRow(page, filter, action) {
15
- const table = page.locator('table');
24
+ async function selectGridRow(container, filter, action) {
25
+ const page = getPage(container);
26
+ const table = container.locator('table');
16
27
  await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
17
28
  const row = await findRowWithPagination(page, table, filter);
18
29
  if (!action || action === 'default') {
@@ -28,11 +39,12 @@ async function selectGridRow(page, filter, action) {
28
39
  }
29
40
  /**
30
41
  * Uses the filter form above the grid to narrow results, then performs an action on the first match.
31
- * The filter keys must match the labels above the filter inputs (e.g. "Azonosito", "Nev").
42
+ * Container can be a Page or a Locator (e.g., a dialog or section).
32
43
  */
33
- async function filterAndSelectGridRow(page, filter, action) {
34
- await applyGridFilters(page, filter);
35
- const table = page.locator('table');
44
+ async function filterAndSelectGridRow(container, filter, action) {
45
+ const page = getPage(container);
46
+ await applyGridFilters(container, filter);
47
+ const table = container.locator('table');
36
48
  await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
37
49
  const row = await findRow(page, table, filter);
38
50
  if (!action || action === 'default') {
@@ -48,31 +60,120 @@ async function filterAndSelectGridRow(page, filter, action) {
48
60
  }
49
61
  /**
50
62
  * Fills the filter form above the grid and clicks the search button.
63
+ * Container can be a Page or a Locator.
51
64
  */
52
- async function applyGridFilters(page, filter) {
65
+ async function applyGridFilters(container, filter) {
66
+ const page = getPage(container);
53
67
  for (const [header, value] of Object.entries(filter)) {
54
- const container = page.locator('div.container', {
68
+ const fieldContainer = container.locator('div.container', {
55
69
  has: page.locator('h4.smart-form-widget-label', { hasText: header }),
56
70
  });
57
- const filterInput = container.locator('input.mat-mdc-input-element');
71
+ const filterInput = fieldContainer.locator('input.mat-mdc-input-element');
58
72
  await filterInput.fill(value);
59
73
  }
60
- await page.locator('button', { has: page.locator('mat-icon', { hasText: 'search' }) }).click();
74
+ await container.locator('button', { has: page.locator('mat-icon', { hasText: 'search' }) }).click();
61
75
  await (0, wait_1.waitForAngularIdle)(page);
62
76
  }
63
77
  /**
64
78
  * Clears all filter inputs and re-triggers search.
79
+ * Container can be a Page or a Locator.
65
80
  */
66
- async function clearGridFilters(page) {
67
- const clearButtons = page.locator('.textFieldButtons button');
81
+ async function clearGridFilters(container) {
82
+ const page = getPage(container);
83
+ const clearButtons = container.locator('.textFieldButtons button');
68
84
  const count = await clearButtons.count();
69
85
  for (let i = 0; i < count; i++) {
70
86
  await clearButtons.nth(i).click();
71
87
  }
72
- await page.locator('button', { has: page.locator('mat-icon', { hasText: 'search' }) }).click();
88
+ await container.locator('button', { has: page.locator('mat-icon', { hasText: 'search' }) }).click();
73
89
  await (0, wait_1.waitForAngularIdle)(page);
74
90
  }
91
+ /**
92
+ * Checks or unchecks the first row matching the filter in a multi-select grid.
93
+ * Paginates if needed (like selectGridRow).
94
+ * Container can be a Page or a Locator.
95
+ */
96
+ async function checkGridRow(container, filter, checked) {
97
+ const page = getPage(container);
98
+ const table = container.locator('table');
99
+ await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
100
+ const row = await findRowWithPagination(page, table, filter);
101
+ await setRowCheckbox(row, checked);
102
+ }
103
+ /**
104
+ * Checks or unchecks all rows matching the filter on the current grid page.
105
+ * Does NOT paginate — only affects visible rows.
106
+ * Container can be a Page or a Locator.
107
+ */
108
+ async function checkGridRowsOnPage(container, filter, checked) {
109
+ const page = getPage(container);
110
+ const table = container.locator('table');
111
+ await table.locator('tbody tr').first().waitFor({ timeout: 15000 });
112
+ const rows = await findAllMatchingRows(page, table, filter);
113
+ for (const row of rows) {
114
+ await setRowCheckbox(row, checked);
115
+ }
116
+ }
117
+ /**
118
+ * Checks or unchecks all rows by clicking the header checkbox (select all / deselect all).
119
+ * Container can be a Page or a Locator.
120
+ */
121
+ async function checkAllGridRows(container, checked) {
122
+ const table = container.locator('table');
123
+ await table.locator('thead').waitFor({ timeout: 15000 });
124
+ const headerCell = table.locator('thead th').first();
125
+ await setRowCheckbox(headerCell, checked);
126
+ }
75
127
  // --- Private helpers ---
128
+ async function setRowCheckbox(rowOrCell, checked) {
129
+ const wrapper = rowOrCell.locator('mat-checkbox, p-checkbox').first();
130
+ const input = rowOrCell.locator('input[type=checkbox]').first();
131
+ const isChecked = await input.isChecked();
132
+ if (isChecked !== checked) {
133
+ if (await wrapper.count() > 0) {
134
+ await wrapper.click();
135
+ }
136
+ else {
137
+ await input.click();
138
+ }
139
+ }
140
+ }
141
+ async function findAllMatchingRows(page, table, filter) {
142
+ if (typeof filter === 'string') {
143
+ const rows = table.locator('tbody tr', { hasText: filter });
144
+ const count = await rows.count();
145
+ const result = [];
146
+ for (let i = 0; i < count; i++) {
147
+ result.push(rows.nth(i));
148
+ }
149
+ return result;
150
+ }
151
+ const columnMap = await buildColumnMap(table);
152
+ const entries = Object.entries(filter);
153
+ const firstEntry = entries[0];
154
+ const columnId = columnMap.get(firstEntry[0]);
155
+ if (!columnId) {
156
+ throw new Error(`Column "${firstEntry[0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
157
+ }
158
+ let rowLocator = table.locator('tbody tr', {
159
+ has: page.locator(`td.mat-column-${columnId}`, { hasText: firstEntry[1] }),
160
+ });
161
+ for (let i = 1; i < entries.length; i++) {
162
+ const colId = columnMap.get(entries[i][0]);
163
+ if (!colId) {
164
+ throw new Error(`Column "${entries[i][0]}" not found. Available: ${Array.from(columnMap.keys()).join(', ')}`);
165
+ }
166
+ rowLocator = rowLocator.filter({
167
+ has: page.locator(`td.mat-column-${colId}`, { hasText: entries[i][1] }),
168
+ });
169
+ }
170
+ const count = await rowLocator.count();
171
+ const result = [];
172
+ for (let i = 0; i < count; i++) {
173
+ result.push(rowLocator.nth(i));
174
+ }
175
+ return result;
176
+ }
76
177
  async function findRowWithPagination(page, table, filter) {
77
178
  const maxPages = 20;
78
179
  for (let pageNum = 0; pageNum < maxPages; pageNum++) {
@@ -1 +1 @@
1
- {"version":3,"file":"grid.steps.js","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid.steps.js","sourceRoot":"","sources":["../../src/steps/grid.steps.ts"],"names":[],"mappings":";;AAmBA,sCAmBC;AAMD,wDAqBC;AAMD,4CAaC;AAMD,4CAWC;AAOD,oCAWC;AAOD,kDAaC;AAMD,4CASC;AAzJD,2CAA0C;AAC1C,iCAA4C;AAC5C,yCAA0C;AAI1C,SAAS,OAAO,CAAC,SAAyB;IACxC,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,OAAQ,SAAqB,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,SAAiB,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,aAAa,CACjC,SAAyB,EACzB,MAAiB,EACjB,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE7D,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAA,uBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAC1C,SAAyB,EACzB,MAA8B,EAC9B,MAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE/C,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;SAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,IAAA,uBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAyB,EAAE,MAA8B;IAC9F,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE;YACxD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SACrE,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC1E,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpG,MAAM,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAAC,SAAyB;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpG,MAAM,IAAA,yBAAkB,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAChC,SAAyB,EACzB,MAAiB,EACjB,OAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,mBAAmB,CACvC,SAAyB,EACzB,MAAiB,EACjB,OAAgB;IAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEpE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CACpC,SAAyB,EACzB,OAAgB;IAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,MAAM,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,0BAA0B;AAE1B,KAAK,UAAU,cAAc,CAAC,SAAkB,EAAE,OAAgB;IAChE,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IACtE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEhE,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,KAAc,EAAE,MAAiB;IAC9E,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;QACzC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IACvC,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAU,EAAE,KAAc,EAAE,MAAiB;IAChF,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QAEpB,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QACnE,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;QACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,4BAA4B;IAC5B,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ;QAC3C,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,IAAI,KAAK,CAAC,kEAAkE,UAAU,EAAE,CAAC,CAAC;AAClG,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAAU,EAAE,KAAc,EAAE,MAAiB;IAC/E,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,OAAO,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;QACzC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,KAAc,EAAE,MAAiB;IAClE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE;QACzC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAA,aAAM,EAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,OAAO,UAAU,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,KAAc;IAC1C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CACtE,CAAC;QACF,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export { waitForAngularIdle } from './wait';
2
- export { selectGridRow, filterAndSelectGridRow, applyGridFilters, clearGridFilters, type RowFilter, } from './grid.steps';
2
+ export { selectGridRow, checkGridRow, checkGridRowsOnPage, checkAllGridRows, filterAndSelectGridRow, applyGridFilters, clearGridFilters, type RowFilter, } from './grid.steps';
3
3
  export { navigateToMain, navigateInTree, } from './navigation.steps';
4
4
  export { topDialog, clickInDialog, } from './dialog.steps';
5
5
  export { findButton, findPopupMenu, findMenuItem, } from './locators';
6
+ export { fillField, fillDate, fillDateTime, selectOption, selectMultiple, selectRadio, setCheckbox, setCheckboxGroup, setToggle, addChip, removeChip, setChips, uploadFile, } from './forms';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EACL,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,SAAS,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EACT,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,OAAO,EACP,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findMenuItem = exports.findPopupMenu = exports.findButton = exports.clickInDialog = exports.topDialog = exports.navigateInTree = exports.navigateToMain = exports.clearGridFilters = exports.applyGridFilters = exports.filterAndSelectGridRow = exports.selectGridRow = exports.waitForAngularIdle = void 0;
3
+ exports.uploadFile = exports.setChips = exports.removeChip = exports.addChip = exports.setToggle = exports.setCheckboxGroup = exports.setCheckbox = exports.selectRadio = exports.selectMultiple = exports.selectOption = exports.fillDateTime = exports.fillDate = exports.fillField = exports.findMenuItem = exports.findPopupMenu = exports.findButton = exports.clickInDialog = exports.topDialog = exports.navigateInTree = exports.navigateToMain = exports.clearGridFilters = exports.applyGridFilters = exports.filterAndSelectGridRow = exports.checkAllGridRows = exports.checkGridRowsOnPage = exports.checkGridRow = exports.selectGridRow = exports.waitForAngularIdle = void 0;
4
4
  var wait_1 = require("./wait");
5
5
  Object.defineProperty(exports, "waitForAngularIdle", { enumerable: true, get: function () { return wait_1.waitForAngularIdle; } });
6
6
  var grid_steps_1 = require("./grid.steps");
7
7
  Object.defineProperty(exports, "selectGridRow", { enumerable: true, get: function () { return grid_steps_1.selectGridRow; } });
8
+ Object.defineProperty(exports, "checkGridRow", { enumerable: true, get: function () { return grid_steps_1.checkGridRow; } });
9
+ Object.defineProperty(exports, "checkGridRowsOnPage", { enumerable: true, get: function () { return grid_steps_1.checkGridRowsOnPage; } });
10
+ Object.defineProperty(exports, "checkAllGridRows", { enumerable: true, get: function () { return grid_steps_1.checkAllGridRows; } });
8
11
  Object.defineProperty(exports, "filterAndSelectGridRow", { enumerable: true, get: function () { return grid_steps_1.filterAndSelectGridRow; } });
9
12
  Object.defineProperty(exports, "applyGridFilters", { enumerable: true, get: function () { return grid_steps_1.applyGridFilters; } });
10
13
  Object.defineProperty(exports, "clearGridFilters", { enumerable: true, get: function () { return grid_steps_1.clearGridFilters; } });
@@ -18,4 +21,18 @@ var locators_1 = require("./locators");
18
21
  Object.defineProperty(exports, "findButton", { enumerable: true, get: function () { return locators_1.findButton; } });
19
22
  Object.defineProperty(exports, "findPopupMenu", { enumerable: true, get: function () { return locators_1.findPopupMenu; } });
20
23
  Object.defineProperty(exports, "findMenuItem", { enumerable: true, get: function () { return locators_1.findMenuItem; } });
24
+ var forms_1 = require("./forms");
25
+ Object.defineProperty(exports, "fillField", { enumerable: true, get: function () { return forms_1.fillField; } });
26
+ Object.defineProperty(exports, "fillDate", { enumerable: true, get: function () { return forms_1.fillDate; } });
27
+ Object.defineProperty(exports, "fillDateTime", { enumerable: true, get: function () { return forms_1.fillDateTime; } });
28
+ Object.defineProperty(exports, "selectOption", { enumerable: true, get: function () { return forms_1.selectOption; } });
29
+ Object.defineProperty(exports, "selectMultiple", { enumerable: true, get: function () { return forms_1.selectMultiple; } });
30
+ Object.defineProperty(exports, "selectRadio", { enumerable: true, get: function () { return forms_1.selectRadio; } });
31
+ Object.defineProperty(exports, "setCheckbox", { enumerable: true, get: function () { return forms_1.setCheckbox; } });
32
+ Object.defineProperty(exports, "setCheckboxGroup", { enumerable: true, get: function () { return forms_1.setCheckboxGroup; } });
33
+ Object.defineProperty(exports, "setToggle", { enumerable: true, get: function () { return forms_1.setToggle; } });
34
+ Object.defineProperty(exports, "addChip", { enumerable: true, get: function () { return forms_1.addChip; } });
35
+ Object.defineProperty(exports, "removeChip", { enumerable: true, get: function () { return forms_1.removeChip; } });
36
+ Object.defineProperty(exports, "setChips", { enumerable: true, get: function () { return forms_1.setChips; } });
37
+ Object.defineProperty(exports, "uploadFile", { enumerable: true, get: function () { return forms_1.uploadFile; } });
21
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAE3B,2CAMsB;AALpB,2GAAA,aAAa,OAAA;AACb,oHAAA,sBAAsB,OAAA;AACtB,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAIlB,uDAG4B;AAF1B,kHAAA,cAAc,OAAA;AACd,kHAAA,cAAc,OAAA;AAGhB,+CAGwB;AAFtB,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AAGf,uCAIoB;AAHlB,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAE3B,2CASsB;AARpB,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,8GAAA,gBAAgB,OAAA;AAChB,oHAAA,sBAAsB,OAAA;AACtB,8GAAA,gBAAgB,OAAA;AAChB,8GAAA,gBAAgB,OAAA;AAIlB,uDAG4B;AAF1B,kHAAA,cAAc,OAAA;AACd,kHAAA,cAAc,OAAA;AAGhB,+CAGwB;AAFtB,yGAAA,SAAS,OAAA;AACT,6GAAA,aAAa,OAAA;AAGf,uCAIoB;AAHlB,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,wGAAA,YAAY,OAAA;AAGd,iCAciB;AAbf,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,uGAAA,cAAc,OAAA;AACd,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,yGAAA,gBAAgB,OAAA;AAChB,kGAAA,SAAS,OAAA;AACT,gGAAA,OAAO,OAAA;AACP,mGAAA,UAAU,OAAA;AACV,iGAAA,QAAQ,OAAA;AACR,mGAAA,UAAU,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartbit4all/playwright-qa",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "Playwright-based testing and documentation framework for smartbit4all projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",