@thinkwise/testwise 0.1.12 → 0.1.63

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 (208) hide show
  1. package/Testwise.ts +5 -1
  2. package/components/filter/FilterForm.ts +1 -1
  3. package/components/filter/FindForm.ts +1 -1
  4. package/components/grid/Grid.ts +88 -12
  5. package/components/grid/GridObjects.ts +16 -8
  6. package/components/index.ts +7 -3
  7. package/components/pop-up/PopUpComponent.ts +1 -1
  8. package/components/tab/BaseTab.ts +42 -0
  9. package/components/tab/BaseTabObjects.ts +23 -0
  10. package/components/tab/ComponentTab.ts +35 -0
  11. package/components/tab/ComponentTabObjects.ts +14 -0
  12. package/components/tab/DetailTab.ts +20 -0
  13. package/components/tab/DetailTabObjects.ts +10 -0
  14. package/components/task/TaskBar.ts +29 -9
  15. package/components/task/TaskBarObjects.ts +24 -0
  16. package/components/task/TaskTile.ts +28 -0
  17. package/components/task/TaskTileObjects.ts +20 -0
  18. package/controls/LookupDropdown.ts +54 -0
  19. package/controls/index.ts +1 -0
  20. package/dist/Testwise.js +4 -2
  21. package/dist/Testwise.js.map +1 -1
  22. package/dist/biome.json +52 -0
  23. package/dist/components/filter/FilterForm.d.ts +5 -0
  24. package/dist/components/filter/FilterForm.js +10 -0
  25. package/dist/components/filter/FilterForm.js.map +1 -0
  26. package/dist/components/filter/FindForm.d.ts +5 -0
  27. package/dist/components/filter/FindForm.js +10 -0
  28. package/dist/components/filter/FindForm.js.map +1 -0
  29. package/dist/components/grid/Grid.d.ts +25 -6
  30. package/dist/components/grid/Grid.js +80 -16
  31. package/dist/components/grid/Grid.js.map +1 -1
  32. package/dist/components/grid/GridObjects.d.ts +5 -3
  33. package/dist/components/grid/GridObjects.js +9 -6
  34. package/dist/components/grid/GridObjects.js.map +1 -1
  35. package/dist/components/index.d.ts +7 -3
  36. package/dist/components/index.js +7 -3
  37. package/dist/components/index.js.map +1 -1
  38. package/dist/components/pop-up/PopUpComponent.js +1 -1
  39. package/dist/components/pop-up/PopUpComponent.js.map +1 -1
  40. package/dist/components/pop-up/{PopUpComponentModels.js → PopUpComponentObjects.js} +1 -1
  41. package/dist/components/pop-up/PopUpComponentObjects.js.map +1 -0
  42. package/dist/components/tab/BaseTab.d.ts +11 -0
  43. package/dist/components/tab/BaseTab.js +34 -0
  44. package/dist/components/tab/BaseTab.js.map +1 -0
  45. package/dist/components/tab/BaseTabObjects.d.ts +10 -0
  46. package/dist/components/tab/BaseTabObjects.js +14 -0
  47. package/dist/components/tab/BaseTabObjects.js.map +1 -0
  48. package/dist/components/tab/ComponentTab.d.ts +11 -0
  49. package/dist/components/tab/ComponentTab.js +27 -0
  50. package/dist/components/tab/ComponentTab.js.map +1 -0
  51. package/dist/components/tab/ComponentTabObjects.d.ts +7 -0
  52. package/dist/components/tab/ComponentTabObjects.js +10 -0
  53. package/dist/components/tab/ComponentTabObjects.js.map +1 -0
  54. package/dist/components/tab/DetailTab.d.ts +9 -0
  55. package/dist/components/tab/DetailTab.js +15 -0
  56. package/dist/components/tab/DetailTab.js.map +1 -0
  57. package/dist/components/tab/DetailTabObjects.d.ts +5 -0
  58. package/dist/components/tab/DetailTabObjects.js +7 -0
  59. package/dist/components/tab/DetailTabObjects.js.map +1 -0
  60. package/dist/components/task/TaskBar.d.ts +17 -0
  61. package/dist/components/task/TaskBar.js +23 -0
  62. package/dist/components/task/TaskBar.js.map +1 -0
  63. package/dist/components/task/TaskBarObjects.d.ts +17 -0
  64. package/dist/components/task/TaskBarObjects.js +19 -0
  65. package/dist/components/task/TaskBarObjects.js.map +1 -0
  66. package/dist/components/task/TaskTile.d.ts +14 -0
  67. package/dist/components/task/TaskTile.js +20 -0
  68. package/dist/components/task/TaskTile.js.map +1 -0
  69. package/dist/components/task/TaskTileObjects.d.ts +13 -0
  70. package/dist/components/task/TaskTileObjects.js +15 -0
  71. package/dist/components/task/TaskTileObjects.js.map +1 -0
  72. package/dist/config.json +10 -10
  73. package/dist/controls/LookupDropdown.d.ts +11 -0
  74. package/dist/controls/LookupDropdown.js +39 -0
  75. package/dist/controls/LookupDropdown.js.map +1 -0
  76. package/dist/controls/index.d.ts +1 -0
  77. package/dist/controls/index.js +2 -0
  78. package/dist/controls/index.js.map +1 -0
  79. package/dist/enums/LogLevel.d.ts +2 -3
  80. package/dist/enums/LogLevel.js +1 -2
  81. package/dist/enums/LogLevel.js.map +1 -1
  82. package/dist/enums/index.d.ts +1 -0
  83. package/dist/enums/index.js +2 -0
  84. package/dist/enums/index.js.map +1 -0
  85. package/dist/example-code/TestifyService.js +22 -12
  86. package/dist/example-code/TestifyService.js.map +1 -1
  87. package/dist/helpers/Ensure.d.ts +2 -0
  88. package/dist/helpers/Ensure.js +10 -0
  89. package/dist/helpers/Ensure.js.map +1 -0
  90. package/dist/helpers/FlightTracker.d.ts +6 -0
  91. package/dist/helpers/FlightTracker.js +25 -0
  92. package/dist/helpers/FlightTracker.js.map +1 -0
  93. package/dist/helpers/GlobalWaitEventHandler.d.ts +12 -0
  94. package/dist/helpers/GlobalWaitEventHandler.js +53 -0
  95. package/dist/helpers/GlobalWaitEventHandler.js.map +1 -0
  96. package/dist/helpers/LoginHelper.d.ts +3 -2
  97. package/dist/helpers/LoginHelper.js +14 -8
  98. package/dist/helpers/LoginHelper.js.map +1 -1
  99. package/dist/helpers/Poll.d.ts +2 -0
  100. package/dist/helpers/Poll.js +17 -0
  101. package/dist/helpers/Poll.js.map +1 -0
  102. package/dist/helpers/RegexHelper.d.ts +5 -0
  103. package/dist/helpers/RegexHelper.js +16 -0
  104. package/dist/helpers/RegexHelper.js.map +1 -0
  105. package/dist/helpers/UserSimulationHelper.d.ts +1 -1
  106. package/dist/helpers/UserSimulationHelper.js +10 -6
  107. package/dist/helpers/UserSimulationHelper.js.map +1 -1
  108. package/dist/helpers/index.d.ts +2 -0
  109. package/dist/helpers/index.js +3 -0
  110. package/dist/helpers/index.js.map +1 -0
  111. package/dist/index.d.ts +8 -12
  112. package/dist/index.js +9 -13
  113. package/dist/index.js.map +1 -1
  114. package/dist/package-lock.json +4087 -0
  115. package/dist/package.json +57 -0
  116. package/dist/page-extensions/GoToDeepLink.js +15 -1
  117. package/dist/page-extensions/GoToDeepLink.js.map +1 -1
  118. package/dist/page-extensions/LoginFeatures.d.ts +2 -1
  119. package/dist/page-extensions/LoginFeatures.js +3 -0
  120. package/dist/page-extensions/LoginFeatures.js.map +1 -1
  121. package/dist/page-extensions/WaitEventHandler.d.ts +12 -0
  122. package/dist/page-extensions/WaitEventHandler.js +15 -0
  123. package/dist/page-extensions/WaitEventHandler.js.map +1 -0
  124. package/dist/page-extensions/index.d.ts +3 -0
  125. package/dist/page-extensions/index.js +4 -0
  126. package/dist/page-extensions/index.js.map +1 -0
  127. package/dist/page-overrides/ClickOverride.d.ts +1 -0
  128. package/dist/page-overrides/ClickOverride.js +46 -25
  129. package/dist/page-overrides/ClickOverride.js.map +1 -1
  130. package/dist/page-overrides/FillOverride.d.ts +7 -0
  131. package/dist/page-overrides/FillOverride.js +106 -0
  132. package/dist/page-overrides/FillOverride.js.map +1 -0
  133. package/dist/page-overrides/index.d.ts +1 -0
  134. package/dist/page-overrides/index.js +2 -0
  135. package/dist/page-overrides/index.js.map +1 -0
  136. package/dist/scripts/Testwise.template.json +25 -0
  137. package/dist/services/ConfigBuilder.js +23 -1
  138. package/dist/services/ConfigBuilder.js.map +1 -1
  139. package/dist/services/Logger.d.ts +1 -2
  140. package/dist/services/Logger.js +69 -15
  141. package/dist/services/Logger.js.map +1 -1
  142. package/dist/services/index.d.ts +1 -0
  143. package/dist/services/index.js +2 -0
  144. package/dist/services/index.js.map +1 -0
  145. package/dist/tsconfig.json +20 -0
  146. package/dist/types/PollTypes.d.ts +6 -0
  147. package/dist/types/PollTypes.js +2 -0
  148. package/dist/types/PollTypes.js.map +1 -0
  149. package/dist/types/Universal.js +2 -0
  150. package/dist/types/Universal.js.map +1 -0
  151. package/dist/types/index.d.ts +2 -0
  152. package/dist/types/index.js +3 -0
  153. package/dist/types/index.js.map +1 -0
  154. package/enums/LogLevel.ts +2 -3
  155. package/enums/index.ts +1 -0
  156. package/example-code/TestifyService.ts +26 -12
  157. package/helpers/Ensure.ts +9 -0
  158. package/helpers/FlightTracker.ts +26 -0
  159. package/helpers/GlobalWaitEventHandler.ts +66 -0
  160. package/helpers/LoginHelper.ts +20 -8
  161. package/helpers/Poll.ts +19 -0
  162. package/helpers/RegexHelper.ts +17 -0
  163. package/helpers/UserSimulationHelper.ts +11 -6
  164. package/helpers/index.ts +2 -0
  165. package/index.ts +9 -13
  166. package/package.json +21 -6
  167. package/page-extensions/GoToDeepLink.ts +17 -1
  168. package/page-extensions/LoginFeatures.ts +6 -1
  169. package/page-extensions/WaitEventHandler.ts +26 -0
  170. package/page-extensions/index.ts +3 -0
  171. package/page-overrides/ClickOverride.ts +60 -26
  172. package/page-overrides/FillOverride.ts +133 -0
  173. package/page-overrides/index.ts +1 -0
  174. package/promptCredentials.js +41 -30
  175. package/scripts/Testwise.template.json +4 -1
  176. package/scripts/add-config.js +2 -2
  177. package/services/ConfigBuilder.ts +27 -1
  178. package/services/Logger.ts +73 -15
  179. package/services/index.ts +1 -0
  180. package/tsconfig.json +20 -0
  181. package/types/PollTypes.ts +6 -0
  182. package/types/index.ts +2 -0
  183. package/.ci/azure-pipelines.yaml +0 -80
  184. package/.eslintcache +0 -1
  185. package/.gitattributes +0 -3
  186. package/.gitconfig +0 -2
  187. package/.vscode/settings.json +0 -20
  188. package/components/tab/Tab.ts +0 -29
  189. package/components/task/TaskTiles.ts +0 -11
  190. package/dist/components/pop-up/PopUpComponentModels.js.map +0 -1
  191. package/dist/enums/ActionbarRegions.d.ts +0 -5
  192. package/dist/enums/ActionbarRegions.js +0 -7
  193. package/dist/enums/ActionbarRegions.js.map +0 -1
  194. package/dist/enums/ButtonEnums.d.ts +0 -24
  195. package/dist/enums/ButtonEnums.js +0 -29
  196. package/dist/enums/ButtonEnums.js.map +0 -1
  197. package/dist/helpers/InflightRequestTracker.d.ts +0 -10
  198. package/dist/helpers/InflightRequestTracker.js +0 -26
  199. package/dist/helpers/InflightRequestTracker.js.map +0 -1
  200. package/dist/types/universal.js +0 -2
  201. package/dist/types/universal.js.map +0 -1
  202. package/enums/ActionbarRegions.ts +0 -5
  203. package/enums/ButtonEnums.ts +0 -28
  204. package/helpers/InflightRequestTracker.ts +0 -33
  205. /package/components/pop-up/{PopUpComponentModels.ts → PopUpComponentObjects.ts} +0 -0
  206. /package/dist/components/pop-up/{PopUpComponentModels.d.ts → PopUpComponentObjects.d.ts} +0 -0
  207. /package/dist/types/{universal.d.ts → Universal.d.ts} +0 -0
  208. /package/types/{universal.ts → Universal.ts} +0 -0
@@ -0,0 +1,5 @@
1
+ import type { Locator } from '@playwright/test';
2
+ import { BaseComponent } from '../BaseComponent.js';
3
+ export declare class FindForm extends BaseComponent {
4
+ getLocator(context?: Locator): Promise<Locator>;
5
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseComponent } from '../BaseComponent.js';
2
+ export class FindForm extends BaseComponent {
3
+ async getLocator(context) {
4
+ if (context) {
5
+ return context.getByTestId(this.id);
6
+ }
7
+ return this.page.getByTestId(this.id);
8
+ }
9
+ }
10
+ //# sourceMappingURL=FindForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindForm.js","sourceRoot":"","sources":["../../../components/filter/FindForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,QAAS,SAAQ,aAAa;IAClC,KAAK,CAAC,UAAU,CAAC,OAAiB;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;CACF"}
@@ -20,7 +20,7 @@ export declare class Grid {
20
20
  * @param value - The exact text value of the cell to retrieve.
21
21
  * @returns A Locator for the cell containing the specified value.
22
22
  */
23
- getCellByExactValue: (value: string) => Locator;
23
+ getCellByExactValue(value: string): Locator;
24
24
  /**
25
25
  * Opens the Excel-style filter popup for the specified grid column.
26
26
  *
@@ -83,11 +83,30 @@ export declare class Grid {
83
83
  */
84
84
  getColumnHeaderValues(): Promise<string[]>;
85
85
  /**
86
- * Filters a column in an Excel-style grid by selecting a specific value.
86
+ * Filters a grid column using the Excel-style filter popup.
87
87
  *
88
- * @param columnName - The name of the column to filter.
89
- * @param valueToSelect - The value to select in the filter dropdown.
90
- * @returns A promise that resolves when the filtering operation is complete.
88
+ * @param columnName - The column to filter
89
+ * @param valueToSelect - The value to select
90
+ * @param deselectAll - If true, clears existing selections first (default: true)
91
+ *
92
+ * @example
93
+ * await grid.filterByColumnValueExcelStyle('Status', 'Active');
94
+ * await grid.filterByColumnValueExcelStyle('Status', 'Pending', false);
95
+ */
96
+ filterByColumnValueExcelStyle(columnName: string, valueToSelect: string, deselectAll?: boolean): Promise<void>;
97
+ /**
98
+ * Returns a Locator for all rows in the grid.
99
+ * @returns {Locator} Locator for grid rows.
100
+ */
101
+ rows(): Locator;
102
+ /**
103
+ * Verifies the number of rows in the grid and checks for "No result" overlay if zero.
104
+ * @param expectedRowCount The expected number of rows.
105
+ */
106
+ verifyNumberOfRowsInGrid(expectedRowCount: number): Promise<void>;
107
+ /**
108
+ * Verifies if the "No result" overlay is visible in the grid.
109
+ * @returns A promise that resolves to true if the overlay is visible, otherwise false.
91
110
  */
92
- filterByColumnValueExcelStyle(columnName: string, valueToSelect: string): Promise<void>;
111
+ hasNoRowsOverlay(): Promise<boolean>;
93
112
  }
@@ -1,3 +1,5 @@
1
+ import { pollUntil } from '../../helpers/Poll.js';
2
+ import { escapeRegex } from '../../helpers/RegexHelper.js';
1
3
  import { GridObjects } from './GridObjects.js';
2
4
  export class Grid {
3
5
  constructor(page, gridContext = null) {
@@ -13,12 +15,6 @@ export class Grid {
13
15
  * @returns A Locator for the specified row.
14
16
  */
15
17
  this.getRowByIndex = (rowIndex) => this._gridObjects.rowByIndex(rowIndex);
16
- /**
17
- * Retrieves a cell element by its exact text value.
18
- * @param value - The exact text value of the cell to retrieve.
19
- * @returns A Locator for the cell containing the specified value.
20
- */
21
- this.getCellByExactValue = (value) => this._gridObjects.cellByValue(value);
22
18
  /**
23
19
  * Opens the Excel-style filter popup for the specified grid column.
24
20
  *
@@ -32,6 +28,15 @@ export class Grid {
32
28
  this._gridObjects = new GridObjects(page, gridContext);
33
29
  this._page = page;
34
30
  }
31
+ /**
32
+ * Retrieves a cell element by its exact text value.
33
+ * @param value - The exact text value of the cell to retrieve.
34
+ * @returns A Locator for the cell containing the specified value.
35
+ */
36
+ getCellByExactValue(value) {
37
+ const valueToFindRegex = new RegExp(`^${escapeRegex(value)}$`);
38
+ return this._gridObjects.cellByValue(valueToFindRegex);
39
+ }
35
40
  /**
36
41
  * Retrieves all rows in the grid that match a specific column value.
37
42
  * @param colIdToMatchOn
@@ -41,7 +46,10 @@ export class Grid {
41
46
  async getRowsByColValue(colIdToMatchOn, valueToMatch) {
42
47
  const allRows = await this._gridObjects.rows().all();
43
48
  const filteredRows = await Promise.all(allRows.map(async (row) => {
44
- const text = await row.locator(`[col-id="${colIdToMatchOn}"]`).textContent();
49
+ const cellLocator = row.locator(`[col-id="${colIdToMatchOn}"]`);
50
+ if ((await cellLocator.count()) === 0)
51
+ return null; // Cell not found, skip row
52
+ const text = await cellLocator.textContent();
45
53
  return text === valueToMatch ? row : null;
46
54
  }));
47
55
  return filteredRows.filter((row) => row !== null);
@@ -163,21 +171,77 @@ export class Grid {
163
171
  return Array.from(collected);
164
172
  }
165
173
  /**
166
- * Filters a column in an Excel-style grid by selecting a specific value.
174
+ * Filters a grid column using the Excel-style filter popup.
175
+ *
176
+ * @param columnName - The column to filter
177
+ * @param valueToSelect - The value to select
178
+ * @param deselectAll - If true, clears existing selections first (default: true)
167
179
  *
168
- * @param columnName - The name of the column to filter.
169
- * @param valueToSelect - The value to select in the filter dropdown.
170
- * @returns A promise that resolves when the filtering operation is complete.
180
+ * @example
181
+ * await grid.filterByColumnValueExcelStyle('Status', 'Active');
182
+ * await grid.filterByColumnValueExcelStyle('Status', 'Pending', false);
171
183
  */
172
- async filterByColumnValueExcelStyle(columnName, valueToSelect) {
184
+ async filterByColumnValueExcelStyle(columnName, valueToSelect, deselectAll = true) {
173
185
  await this.openExcelStyleFilterPopup(columnName);
174
- const popup = this._gridObjects.excelStyleFilterPopup();
186
+ // Get column ID from header and normalize it (snake_case -> kebab-case)
187
+ const header = this._gridObjects.columnHeaderByName(columnName);
188
+ const rawColumnId = await header.getAttribute('col-id');
189
+ if (!rawColumnId) {
190
+ throw new Error(`Could not find col-id for column "${columnName}"`);
191
+ }
192
+ const columnId = rawColumnId.toLowerCase().replace(/_/g, '-');
193
+ const popup = this._gridObjects.excelStyleFilterPopup(columnId);
175
194
  await popup.waitFor({ state: 'visible' });
176
- const checkbox = this._gridObjects.excelStyleFilterPopupOptionByText(valueToSelect);
177
- await checkbox.check();
178
- // Click outside the popup to close it
195
+ if (deselectAll) {
196
+ await this._gridObjects.excelStyleFilterSelectAllCheckbox(columnId).uncheck();
197
+ }
198
+ const valueRegex = new RegExp(`^${escapeRegex(valueToSelect)}$`, 'i');
199
+ const optionButton = this._gridObjects.excelStyleFilterPopupOptionByText(columnId, valueRegex);
200
+ await optionButton.locator('input[type="checkbox"]').check();
179
201
  await this._gridObjects.gridCell().first().click();
180
202
  await popup.waitFor({ state: 'detached' });
181
203
  }
204
+ /**
205
+ * Returns a Locator for all rows in the grid.
206
+ * @returns {Locator} Locator for grid rows.
207
+ */
208
+ rows() {
209
+ return this._gridObjects.rows();
210
+ }
211
+ /**
212
+ * Verifies the number of rows in the grid and checks for "No result" overlay if zero.
213
+ * @param expectedRowCount The expected number of rows.
214
+ */
215
+ async verifyNumberOfRowsInGrid(expectedRowCount) {
216
+ if (expectedRowCount === 0) {
217
+ if (await this.hasNoRowsOverlay()) {
218
+ return;
219
+ }
220
+ else {
221
+ throw new Error('Expected "No result" overlay to be visible');
222
+ }
223
+ }
224
+ await pollUntil(() => this.rows().count(), {
225
+ predicate: (n) => n === expectedRowCount
226
+ });
227
+ }
228
+ /**
229
+ * Verifies if the "No result" overlay is visible in the grid.
230
+ * @returns A promise that resolves to true if the overlay is visible, otherwise false.
231
+ */
232
+ async hasNoRowsOverlay() {
233
+ try {
234
+ const overlay = this._gridObjects.noRowsOverlay();
235
+ await pollUntil(async () => {
236
+ const txt = (await overlay.textContent())?.trim() ?? '';
237
+ return txt.includes('No result');
238
+ }, { predicate: Boolean });
239
+ }
240
+ catch {
241
+ console.error('The "No result" overlay is not displaying the expected text.');
242
+ return false;
243
+ }
244
+ return await this._gridObjects.noRowsOverlay().isVisible();
245
+ }
182
246
  }
183
247
  //# sourceMappingURL=Grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../../components/grid/Grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Grid.js","sourceRoot":"","sources":["../../../components/grid/Grid.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,15 @@ export declare class GridObjects extends BaseComponentObjects {
8
8
  columnHeaderByName: (columnName: string) => Locator;
9
9
  menuIconByColumnHeaderName: (columnName: string) => Locator;
10
10
  rowByIndex: (row: number) => Locator;
11
- cellByValue: (value: string) => Locator;
11
+ cellByValue: (value: RegExp) => Locator;
12
12
  rows: () => Locator;
13
13
  verticalScrollbar: () => Locator;
14
14
  horizontalScrollbar: () => Locator;
15
15
  cellsByColumnId: (colId: string) => Locator;
16
16
  columnByRowLocator: (rowLocator: Locator) => Locator;
17
- excelStyleFilterPopup: () => Locator;
18
- excelStyleFilterPopupOptionByText: (optionText: string) => Locator;
17
+ excelStyleFilterPopup: (columnId: string) => Locator;
18
+ excelStyleFilterSelectAllCheckbox: (columnId: string) => Locator;
19
+ excelStyleFilterPopupOptionByText: (columnId: string, optionText: RegExp) => Locator;
19
20
  gridCell: () => Locator;
21
+ noRowsOverlay: () => Locator;
20
22
  }
@@ -7,18 +7,21 @@ export class GridObjects extends BaseComponentObjects {
7
7
  this.columnHeaderByName = (columnName) => this.context.getByRole('columnheader', { name: columnName });
8
8
  this.menuIconByColumnHeaderName = (columnName) => this.columnHeaderByName(columnName).getByTestId('grid__custom__menu__icon');
9
9
  this.rowByIndex = (row) => this.context.locator(`[role="row"][row-index="${row}"]`);
10
- this.cellByValue = (value) => this.context.locator('[role="button"]', { hasText: new RegExp(`^${value}$`) });
10
+ this.cellByValue = (value) => this.context.locator('[role="button"]', {
11
+ hasText: value
12
+ });
11
13
  this.rows = () => this.context.locator('[role="row"]');
12
14
  this.verticalScrollbar = () => this.context.locator('.ag-body-vertical-scroll-viewport');
13
15
  this.horizontalScrollbar = () => this.context.locator('.ag-body-horizontal-scroll-viewport');
14
16
  this.cellsByColumnId = (colId) => this.context.locator(`[col-id="${colId}"] .value-renderer`);
15
17
  this.columnByRowLocator = (rowLocator) => rowLocator.locator('.ag-cell');
16
- this.excelStyleFilterPopup = () => this._page.locator('.ag-popup-child[role="dialog"]');
17
- this.excelStyleFilterPopupOptionByText = (optionText) => this.excelStyleFilterPopup()
18
- .locator('[data-testid$="list-option-name"]', { hasText: optionText })
19
- .locator('xpath=..')
20
- .locator('input[type="checkbox"]');
18
+ this.excelStyleFilterPopup = (columnId) => this._page.getByTestId(`lookup-excel-filter__${columnId}__list`);
19
+ this.excelStyleFilterSelectAllCheckbox = (columnId) => this._page.locator(`[data-testid="lookup-excel-filter__${columnId}__list-item-select-all-checkbox"] input[type="checkbox"]`);
20
+ this.excelStyleFilterPopupOptionByText = (columnId, optionText) => this._page
21
+ .locator(`[data-testid^="lookup-excel-filter__${columnId}__list-item-button__"]`)
22
+ .filter({ hasText: optionText });
21
23
  this.gridCell = () => this.context.locator('[role="gridcell"]');
24
+ this.noRowsOverlay = () => this.context.locator('.ag-overlay-no-rows-center');
22
25
  this._page = page;
23
26
  }
24
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GridObjects.js","sourceRoot":"","sources":["../../../components/grid/GridObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,WAAY,SAAQ,oBAAoB;IAGnD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,uBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAExG,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEpE,uBAAkB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1G,+BAA0B,GAAG,CAAC,UAAkB,EAAE,EAAE,CACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;QAEvE,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;QAEvF,gBAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QAE1E,SAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAElD,sBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAEpF,wBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAExF,oBAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;QAEjG,uBAAkB,GAAG,CAAC,UAAmB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7E,0BAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAEnF,sCAAiC,GAAG,CAAC,UAAkB,EAAE,EAAE,CAChE,IAAI,CAAC,qBAAqB,EAAE;aACzB,OAAO,CAAC,mCAAmC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;aACrE,OAAO,CAAC,UAAU,CAAC;aACnB,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAEhC,aAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAnChE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CAmCF"}
1
+ {"version":3,"file":"GridObjects.js","sourceRoot":"","sources":["../../../components/grid/GridObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,WAAY,SAAQ,oBAAoB;IAGnD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,uBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAExG,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAEpE,uBAAkB,GAAG,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QAE1G,+BAA0B,GAAG,CAAC,UAAkB,EAAE,EAAE,CACzD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;QAEvE,eAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC;QAEvF,gBAAW,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACtC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEE,SAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAElD,sBAAiB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAEpF,wBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAExF,oBAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,oBAAoB,CAAC,CAAC;QAEjG,uBAAkB,GAAG,CAAC,UAAmB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7E,0BAAqB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,QAAQ,QAAQ,CAAC,CAAC;QAE/G,sCAAiC,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAChB,sCAAsC,QAAQ,0DAA0D,CACzG,CAAC;QAEG,sCAAiC,GAAG,CAAC,QAAgB,EAAE,UAAkB,EAAE,EAAE,CAClF,IAAI,CAAC,KAAK;aACP,OAAO,CAAC,uCAAuC,QAAQ,wBAAwB,CAAC;aAChF,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAE9B,aAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAE3D,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QA3C9E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CA2CF"}
@@ -1,6 +1,10 @@
1
- export * from './form/Form.js';
2
- export * from './grid/Grid.js';
3
- export * from './Splitter.js';
4
1
  export * from './actionbar/Actionbar.js';
5
2
  export * from './export/ExportComponent.js';
3
+ export * from './form/Form.js';
4
+ export * from './grid/Grid.js';
6
5
  export * from './pop-up/PopUpComponent.js';
6
+ export * from './Splitter.js';
7
+ export * from './tab/ComponentTab.js';
8
+ export * from './tab/DetailTab.js';
9
+ export * from './task/TaskBar.js';
10
+ export * from './task/TaskTile.js';
@@ -1,7 +1,11 @@
1
- export * from './form/Form.js';
2
- export * from './grid/Grid.js';
3
- export * from './Splitter.js';
4
1
  export * from './actionbar/Actionbar.js';
5
2
  export * from './export/ExportComponent.js';
3
+ export * from './form/Form.js';
4
+ export * from './grid/Grid.js';
6
5
  export * from './pop-up/PopUpComponent.js';
6
+ export * from './Splitter.js';
7
+ export * from './tab/ComponentTab.js';
8
+ export * from './tab/DetailTab.js';
9
+ export * from './task/TaskBar.js';
10
+ export * from './task/TaskTile.js';
7
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { PopUpComponentObjects } from './PopUpComponentModels.js';
1
+ import { PopUpComponentObjects } from './PopUpComponentObjects.js';
2
2
  export class PopUpComponent {
3
3
  constructor(page) {
4
4
  this.confirmYes = async () => await this._objects.actionYesButton().click();
@@ -1 +1 @@
1
- {"version":3,"file":"PopUpComponent.js","sourceRoot":"","sources":["../../../components/pop-up/PopUpComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,MAAM,OAAO,cAAc;IAGzB,YAAY,IAAU;QAIf,eAAU,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;QAEvE,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC;QAErE,sBAAiB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;QAEnF,qBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAT9E,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CASF"}
1
+ {"version":3,"file":"PopUpComponent.js","sourceRoot":"","sources":["../../../components/pop-up/PopUpComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,cAAc;IAGzB,YAAY,IAAU;QAIf,eAAU,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;QAEvE,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC;QAErE,sBAAiB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,WAAW,EAAE,CAAC;QAEnF,qBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;QAT9E,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CASF"}
@@ -7,4 +7,4 @@ export class PopUpComponentObjects {
7
7
  this._page = page;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=PopUpComponentModels.js.map
10
+ //# sourceMappingURL=PopUpComponentObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopUpComponentObjects.js","sourceRoot":"","sources":["../../../components/pop-up/PopUpComponentObjects.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IAGhC,YAAY,IAAU;QAIf,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;QAEtF,oBAAe,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC;QAExF,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnG,gBAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;QATrF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CASF"}
@@ -0,0 +1,11 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ import { BaseTabObjects } from './BaseTabObjects.js';
3
+ export declare class BaseTab {
4
+ protected _objects: BaseTabObjects;
5
+ constructor(page: Page, context?: Locator | null);
6
+ openById(name: string): Promise<void>;
7
+ openByIndex(index: number): Promise<void>;
8
+ getTabById(name: string): Promise<Locator>;
9
+ getTabByIndex(index: number): Promise<Locator>;
10
+ getBadgeCount(name: string): Promise<number>;
11
+ }
@@ -0,0 +1,34 @@
1
+ import { BaseTabObjects } from './BaseTabObjects.js';
2
+ export class BaseTab {
3
+ constructor(page, context = null) {
4
+ this._objects = new BaseTabObjects(page, context);
5
+ }
6
+ // --- Common actions ---
7
+ // Clicks a tab by its tabstrip test id prefix (e.g., "form", "users", "list").
8
+ // Uses the role="tab" element with data-testid^="tabstrip__tab__{name}".
9
+ async openById(name) {
10
+ await this._objects.tabByTestId(name).click();
11
+ }
12
+ // Clicks a tab by index within the scoped tablist context.
13
+ async openByIndex(index) {
14
+ await this._objects.tabByIndex(index).click();
15
+ }
16
+ // --- Useful getters ---
17
+ async getTabById(name) {
18
+ return this._objects.tabByTestId(name);
19
+ }
20
+ async getTabByIndex(index) {
21
+ return this._objects.tabByIndex(index);
22
+ }
23
+ // Reads the badge value on a tab. Non-visible/invalid → 0.
24
+ async getBadgeCount(name) {
25
+ const badge = this._objects.badgeByName(name);
26
+ const visible = await badge.isVisible().catch(() => false);
27
+ if (!visible)
28
+ return 0;
29
+ const txt = (await badge.textContent())?.trim() ?? '0';
30
+ const n = Number.parseInt(txt, 10);
31
+ return Number.isNaN(n) ? 0 : n;
32
+ }
33
+ }
34
+ //# sourceMappingURL=BaseTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTab.js","sourceRoot":"","sources":["../../../components/tab/BaseTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,OAAO;IAGlB,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,yBAAyB;IAEzB,+EAA+E;IAC/E,yEAAyE;IAClE,KAAK,CAAC,QAAQ,CAAC,IAAY;QAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,yBAAyB;IAClB,KAAK,CAAC,UAAU,CAAC,IAAY;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAa;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,2DAA2D;IACpD,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;QACvD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ import { BaseComponentObjects } from '../BaseComponentObjects.js';
3
+ export declare class BaseTabObjects extends BaseComponentObjects {
4
+ protected _page: Page;
5
+ constructor(page: Page, context?: Locator | null);
6
+ tabList: () => Locator;
7
+ tabByTestId: (name: string) => Locator;
8
+ tabByIndex: (index: number) => Locator;
9
+ badgeByName: (name: string) => Locator;
10
+ }
@@ -0,0 +1,14 @@
1
+ import { BaseComponentObjects } from '../BaseComponentObjects.js';
2
+ export class BaseTabObjects extends BaseComponentObjects {
3
+ constructor(page, context = null) {
4
+ super(page, context);
5
+ this.tabList = () => this.context.getByRole('tablist');
6
+ this.tabByTestId = (name) => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}__"]`);
7
+ // use role for generic index-based selection
8
+ this.tabByIndex = (index) => this.tabList().getByRole('tab').nth(index);
9
+ // badge: leave as a CSS anchor on the tab testid
10
+ this.badgeByName = (name) => this._page.locator(`[role="tab"][data-testid^="tabstrip__tab__${name.toLowerCase()}"] [data-testid$="__badge"]`);
11
+ this._page = page;
12
+ }
13
+ }
14
+ //# sourceMappingURL=BaseTabObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTabObjects.js","sourceRoot":"","sources":["../../../components/tab/BaseTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IAGtD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAIhB,YAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3D,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEhG,6CAA6C;QACtC,eAAU,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAE3F,iDAAiD;QAC1C,gBAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,6CAA6C,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QAbjH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CAaF"}
@@ -0,0 +1,11 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ import { BaseTab } from './BaseTab.js';
3
+ import { ComponentTabObjects } from './ComponentTabObjects.js';
4
+ export declare class ComponentTab extends BaseTab {
5
+ protected _objects: ComponentTabObjects;
6
+ constructor(page: Page, context?: Locator | null);
7
+ openListTab(tabindex?: string): Promise<void>;
8
+ getListTab(tabindex?: string): Promise<Locator>;
9
+ openFormTab(): Promise<void>;
10
+ getFormTab(): Promise<Locator>;
11
+ }
@@ -0,0 +1,27 @@
1
+ import { BaseTab } from './BaseTab.js';
2
+ import { ComponentTabObjects } from './ComponentTabObjects.js';
3
+ export class ComponentTab extends BaseTab {
4
+ constructor(page, context = null) {
5
+ super(page, context);
6
+ this._objects = new ComponentTabObjects(page, context);
7
+ }
8
+ // --- Component-specific helpers ---
9
+ // Opens the “List” tab in this tabstrip (default tabindex = -1 for master).
10
+ // If tabindex is left empty, the default is "-1" which is the master/base list tabindex
11
+ async openListTab(tabindex = '-1') {
12
+ await this._objects.listTab(tabindex).click();
13
+ }
14
+ // Returns the “List” tab locator (scoped).
15
+ async getListTab(tabindex = '-1') {
16
+ return this._objects.listTab(tabindex);
17
+ }
18
+ // Opens the “Form” tab in this tabstrip (scoped).
19
+ async openFormTab() {
20
+ await this._objects.formTab().click();
21
+ }
22
+ // Returns the “Form” tab locator (scoped).
23
+ async getFormTab() {
24
+ return this._objects.formTab();
25
+ }
26
+ }
27
+ //# sourceMappingURL=ComponentTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentTab.js","sourceRoot":"","sources":["../../../components/tab/ComponentTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,YAAa,SAAQ,OAAO;IAGvC,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,qCAAqC;IAErC,4EAA4E;IAC5E,wFAAwF;IACjF,KAAK,CAAC,WAAW,CAAC,WAAmB,IAAI;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,2CAA2C;IACpC,KAAK,CAAC,UAAU,CAAC,WAAmB,IAAI;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,WAAW;QACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,2CAA2C;IACpC,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ import { BaseTabObjects } from './BaseTabObjects.js';
3
+ export declare class ComponentTabObjects extends BaseTabObjects {
4
+ constructor(page: Page, context?: Locator | null);
5
+ listTab: (tabindex: string) => Locator;
6
+ formTab: () => Locator;
7
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseTabObjects } from './BaseTabObjects.js';
2
+ export class ComponentTabObjects extends BaseTabObjects {
3
+ constructor(page, context = null) {
4
+ super(page, context);
5
+ // Component-specific selectors
6
+ this.listTab = (tabindex) => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__list"][tabindex="${tabindex}"]`);
7
+ this.formTab = () => this.tabList().locator(`[role="tab"][data-testid^="tabstrip__tab__form"]`);
8
+ }
9
+ }
10
+ //# sourceMappingURL=ComponentTabObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentTabObjects.js","sourceRoot":"","sources":["../../../components/tab/ComponentTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAGvB,+BAA+B;QACxB,YAAO,GAAG,CAAC,QAAgB,EAAW,EAAE,CAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,8DAA8D,QAAQ,IAAI,CAAC,CAAC;QAE9F,YAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IAN3G,CAAC;CAOF"}
@@ -0,0 +1,9 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ import { BaseTab } from './BaseTab.js';
3
+ import { DetailTabObjects } from './DetailTabObjects.js';
4
+ export declare class DetailTab extends BaseTab {
5
+ protected _objects: DetailTabObjects;
6
+ constructor(page: Page, context?: Locator | null);
7
+ getDetailTabById(name: string): Promise<Locator>;
8
+ getDetailTabByIndex(index: number): Promise<Locator>;
9
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseTab } from './BaseTab.js';
2
+ import { DetailTabObjects } from './DetailTabObjects.js';
3
+ export class DetailTab extends BaseTab {
4
+ constructor(page, context = null) {
5
+ super(page, context);
6
+ this._objects = new DetailTabObjects(page, context);
7
+ }
8
+ async getDetailTabById(name) {
9
+ return this._objects.tabByTestId(name);
10
+ }
11
+ async getDetailTabByIndex(index) {
12
+ return this._objects.tabByIndex(index);
13
+ }
14
+ }
15
+ //# sourceMappingURL=DetailTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailTab.js","sourceRoot":"","sources":["../../../components/tab/DetailTab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,SAAU,SAAQ,OAAO;IAGpC,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ import { BaseTabObjects } from './BaseTabObjects.js';
3
+ export declare class DetailTabObjects extends BaseTabObjects {
4
+ constructor(page: Page, context?: Locator | null);
5
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseTabObjects } from './BaseTabObjects.js';
2
+ export class DetailTabObjects extends BaseTabObjects {
3
+ constructor(page, context = null) {
4
+ super(page, context);
5
+ }
6
+ }
7
+ //# sourceMappingURL=DetailTabObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailTabObjects.js","sourceRoot":"","sources":["../../../components/tab/DetailTabObjects.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD,YAAY,IAAU,EAAE,UAA0B,IAAI;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvB,CAAC;CAGF"}
@@ -0,0 +1,17 @@
1
+ import type { Locator, Page } from '@playwright/test';
2
+ export declare class TaskBar {
3
+ private _taskBarObjects;
4
+ /**
5
+ * @param taskBarContext the taskbar container element (same idea as Grid's context)
6
+ */
7
+ constructor(page: Page, taskBarContext?: Locator | null);
8
+ /** returns all task buttons */
9
+ tasks: () => Locator;
10
+ /** returns a task button by its data-testid key */
11
+ getTaskById: (key: string) => Locator;
12
+ /** returns a task button by its visible label */
13
+ getTaskByLabel: (label: string) => Locator;
14
+ /** light action sugar (keep assertions in tests) */
15
+ clickById: (key: string) => Promise<void>;
16
+ clickByLabel: (label: string) => Promise<void>;
17
+ }
@@ -0,0 +1,23 @@
1
+ import { TaskBarObjects } from './TaskBarObjects.js';
2
+ export class TaskBar {
3
+ /**
4
+ * @param taskBarContext the taskbar container element (same idea as Grid's context)
5
+ */
6
+ constructor(page, taskBarContext = null) {
7
+ /** returns all task buttons */
8
+ this.tasks = () => this._taskBarObjects.tasks(); // matches Grid's "rows()" noun-style
9
+ /** returns a task button by its data-testid key */
10
+ this.getTaskById = (key) => this._taskBarObjects.taskById(key);
11
+ /** returns a task button by its visible label */
12
+ this.getTaskByLabel = (label) => this._taskBarObjects.taskByLabel(label);
13
+ /** light action sugar (keep assertions in tests) */
14
+ this.clickById = async (key) => {
15
+ await this.getTaskById(key).click();
16
+ };
17
+ this.clickByLabel = async (label) => {
18
+ await this.getTaskByLabel(label).click();
19
+ };
20
+ this._taskBarObjects = new TaskBarObjects(page, taskBarContext);
21
+ }
22
+ }
23
+ //# sourceMappingURL=TaskBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskBar.js","sourceRoot":"","sources":["../../../components/task/TaskBar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,OAAO,OAAO;IAGlB;;OAEG;IACH,YAAY,IAAU,EAAE,iBAAiC,IAAI;QAI7D,+BAA+B;QACxB,UAAK,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,qCAAqC;QAEjG,mDAAmD;QAC5C,gBAAW,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAElF,iDAAiD;QAC1C,mBAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5F,oDAAoD;QAC7C,cAAS,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YACtD,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC,CAAC;QAEK,iBAAY,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;YAC3D,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAC;QAnBA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAClE,CAAC;CAmBF"}