@thinkwise/testwise 0.2.67 → 0.2.99

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 (434) hide show
  1. package/Testwise.ts +35 -0
  2. package/artifact-builder/ArtifactManager.ts +25 -2
  3. package/artifact-builder/ComponentClassModelBuilder.ts +148 -0
  4. package/artifact-builder/InterfaceGenerator.ts +31 -33
  5. package/artifact-builder/ModelDataBuilder.ts +18 -20
  6. package/artifact-builder/ModelDataRefiner.ts +23 -3
  7. package/artifact-builder/SchemaGenerator.ts +45 -35
  8. package/artifact-builder/ScreenInterfaceRefiner.ts +25 -10
  9. package/artifact-builder/SelectorBuilder.ts +30 -24
  10. package/artifact-builder/SubjectClassModelBuilder.ts +209 -0
  11. package/artifact-builder/SubjectComponentGenerator.ts +67 -246
  12. package/artifact-builder/SubjectGenerator.ts +117 -230
  13. package/artifact-builder/SubjectRegistration.ts +41 -32
  14. package/artifact-builder/TsFileModel.ts +94 -0
  15. package/artifact-builder/TsFileSerializer.ts +247 -0
  16. package/artifact-builder/helpers/DataRetriever.ts +64 -27
  17. package/artifact-builder/helpers/NamingHandler.ts +23 -78
  18. package/artifact-builder/helpers/PipelinePaths.ts +123 -0
  19. package/artifact-builder/helpers/Stopwatch.ts +10 -0
  20. package/artifact-builder/helpers/index.ts +1 -0
  21. package/artifact-builder/index.ts +4 -0
  22. package/components/BaseComponentObjects.ts +17 -0
  23. package/components/action-bar/ActionBar.ts +35 -47
  24. package/components/action-bar/ActionBarObjects.ts +2 -0
  25. package/components/action-bar/CustomActionBar.ts +6 -0
  26. package/components/cardlist/Cardlist.ts +6 -0
  27. package/components/chart/Chart.ts +6 -0
  28. package/components/combined-filter/CombinedFilter.ts +9 -0
  29. package/components/cube-view-bar/CubeViewBar.ts +6 -0
  30. package/components/export/ExportComponent.ts +12 -0
  31. package/components/filter/ExcelStyleFilterPopup.ts +35 -2
  32. package/components/filter/FilterForm.ts +10 -0
  33. package/components/filter/FilterPopup.ts +30 -9
  34. package/components/filter/FilterPopupObjects.ts +10 -3
  35. package/components/filter/FindForm.ts +7 -0
  36. package/components/filter/ManagePrefilterPopup.ts +11 -0
  37. package/components/form/Form.ts +16 -0
  38. package/components/grid/Grid.ts +18 -1
  39. package/components/maps/Maps.ts +6 -0
  40. package/components/menu/ListBarMenuComponent.ts +10 -0
  41. package/components/pivot-grid/PivotGrid.ts +6 -0
  42. package/components/pivot-grid/PivotGridFieldList.ts +7 -0
  43. package/components/pop-up/AllRowsPopUp.ts +12 -0
  44. package/components/pop-up/PopUpComponent.ts +11 -0
  45. package/components/prefilter-list/PrefilterList.ts +9 -0
  46. package/components/preview/Preview.ts +6 -0
  47. package/components/report-bar/ReportBar.ts +6 -0
  48. package/components/report-tiles/ReportTiles.ts +6 -0
  49. package/components/scheduler/Scheduler.ts +6 -0
  50. package/components/snackbar/SnackBar.ts +12 -0
  51. package/components/splitter/Splitter.ts +6 -0
  52. package/components/tab/BaseTab.ts +5 -0
  53. package/components/tab/DetailTabPage.ts +11 -0
  54. package/components/tab/Tab.ts +10 -0
  55. package/components/task/TaskBar.ts +13 -3
  56. package/components/task/TaskTiles.ts +12 -3
  57. package/components/topbar/TopBar.ts +10 -0
  58. package/components/tree-view/TreeView.ts +9 -0
  59. package/controls/DateControl.ts +40 -1
  60. package/controls/FormComboBox.ts +30 -0
  61. package/controls/GridColumnControl.ts +34 -3
  62. package/controls/InputFieldControl.ts +49 -0
  63. package/controls/LookupDropdown.ts +29 -0
  64. package/dist/Testwise.js +35 -0
  65. package/dist/Testwise.js.map +1 -1
  66. package/dist/artifact-builder/ArtifactManager.d.ts +18 -1
  67. package/dist/artifact-builder/ArtifactManager.js +24 -2
  68. package/dist/artifact-builder/ArtifactManager.js.map +1 -1
  69. package/dist/artifact-builder/ComponentClassModelBuilder.d.ts +22 -0
  70. package/dist/artifact-builder/ComponentClassModelBuilder.js +115 -0
  71. package/dist/artifact-builder/ComponentClassModelBuilder.js.map +1 -0
  72. package/dist/artifact-builder/InterfaceGenerator.d.ts +15 -6
  73. package/dist/artifact-builder/InterfaceGenerator.js +27 -26
  74. package/dist/artifact-builder/InterfaceGenerator.js.map +1 -1
  75. package/dist/artifact-builder/ModelDataBuilder.d.ts +7 -0
  76. package/dist/artifact-builder/ModelDataBuilder.js +13 -5
  77. package/dist/artifact-builder/ModelDataBuilder.js.map +1 -1
  78. package/dist/artifact-builder/ModelDataRefiner.d.ts +18 -1
  79. package/dist/artifact-builder/ModelDataRefiner.js +18 -3
  80. package/dist/artifact-builder/ModelDataRefiner.js.map +1 -1
  81. package/dist/artifact-builder/SchemaGenerator.d.ts +21 -5
  82. package/dist/artifact-builder/SchemaGenerator.js +38 -26
  83. package/dist/artifact-builder/SchemaGenerator.js.map +1 -1
  84. package/dist/artifact-builder/ScreenInterfaceRefiner.d.ts +18 -1
  85. package/dist/artifact-builder/ScreenInterfaceRefiner.js +23 -9
  86. package/dist/artifact-builder/ScreenInterfaceRefiner.js.map +1 -1
  87. package/dist/artifact-builder/SelectorBuilder.d.ts +18 -5
  88. package/dist/artifact-builder/SelectorBuilder.js +29 -14
  89. package/dist/artifact-builder/SelectorBuilder.js.map +1 -1
  90. package/dist/artifact-builder/SubjectClassModelBuilder.d.ts +38 -0
  91. package/dist/artifact-builder/SubjectClassModelBuilder.js +158 -0
  92. package/dist/artifact-builder/SubjectClassModelBuilder.js.map +1 -0
  93. package/dist/artifact-builder/SubjectComponentGenerator.d.ts +25 -14
  94. package/dist/artifact-builder/SubjectComponentGenerator.js +65 -189
  95. package/dist/artifact-builder/SubjectComponentGenerator.js.map +1 -1
  96. package/dist/artifact-builder/SubjectGenerator.d.ts +32 -13
  97. package/dist/artifact-builder/SubjectGenerator.js +81 -165
  98. package/dist/artifact-builder/SubjectGenerator.js.map +1 -1
  99. package/dist/artifact-builder/SubjectRegistration.d.ts +22 -8
  100. package/dist/artifact-builder/SubjectRegistration.js +29 -14
  101. package/dist/artifact-builder/SubjectRegistration.js.map +1 -1
  102. package/dist/artifact-builder/TsFileModel.d.ts +86 -0
  103. package/dist/artifact-builder/TsFileModel.js +2 -0
  104. package/dist/artifact-builder/TsFileModel.js.map +1 -0
  105. package/dist/artifact-builder/TsFileSerializer.d.ts +19 -0
  106. package/dist/artifact-builder/TsFileSerializer.js +225 -0
  107. package/dist/artifact-builder/TsFileSerializer.js.map +1 -0
  108. package/dist/artifact-builder/helpers/DataRetriever.d.ts +22 -3
  109. package/dist/artifact-builder/helpers/DataRetriever.js +56 -26
  110. package/dist/artifact-builder/helpers/DataRetriever.js.map +1 -1
  111. package/dist/artifact-builder/helpers/NamingHandler.d.ts +18 -6
  112. package/dist/artifact-builder/helpers/NamingHandler.js +20 -61
  113. package/dist/artifact-builder/helpers/NamingHandler.js.map +1 -1
  114. package/dist/artifact-builder/helpers/PipelinePaths.d.ts +52 -0
  115. package/dist/artifact-builder/helpers/PipelinePaths.js +99 -0
  116. package/dist/artifact-builder/helpers/PipelinePaths.js.map +1 -0
  117. package/dist/artifact-builder/helpers/Stopwatch.d.ts +10 -0
  118. package/dist/artifact-builder/helpers/Stopwatch.js +10 -0
  119. package/dist/artifact-builder/helpers/Stopwatch.js.map +1 -1
  120. package/dist/artifact-builder/helpers/index.d.ts +1 -0
  121. package/dist/artifact-builder/helpers/index.js +1 -0
  122. package/dist/artifact-builder/helpers/index.js.map +1 -1
  123. package/dist/artifact-builder/index.d.ts +4 -0
  124. package/dist/artifact-builder/index.js +4 -0
  125. package/dist/artifact-builder/index.js.map +1 -1
  126. package/dist/components/BaseComponentObjects.d.ts +17 -0
  127. package/dist/components/BaseComponentObjects.js +17 -0
  128. package/dist/components/BaseComponentObjects.js.map +1 -1
  129. package/dist/components/action-bar/ActionBar.d.ts +21 -24
  130. package/dist/components/action-bar/ActionBar.js +31 -24
  131. package/dist/components/action-bar/ActionBar.js.map +1 -1
  132. package/dist/components/action-bar/ActionBarObjects.d.ts +1 -0
  133. package/dist/components/action-bar/ActionBarObjects.js +1 -0
  134. package/dist/components/action-bar/ActionBarObjects.js.map +1 -1
  135. package/dist/components/action-bar/CustomActionBar.d.ts +6 -0
  136. package/dist/components/action-bar/CustomActionBar.js +6 -0
  137. package/dist/components/action-bar/CustomActionBar.js.map +1 -1
  138. package/dist/components/cardlist/Cardlist.d.ts +6 -0
  139. package/dist/components/cardlist/Cardlist.js +6 -0
  140. package/dist/components/cardlist/Cardlist.js.map +1 -1
  141. package/dist/components/chart/Chart.d.ts +6 -0
  142. package/dist/components/chart/Chart.js +6 -0
  143. package/dist/components/chart/Chart.js.map +1 -1
  144. package/dist/components/combined-filter/CombinedFilter.d.ts +9 -0
  145. package/dist/components/combined-filter/CombinedFilter.js +9 -0
  146. package/dist/components/combined-filter/CombinedFilter.js.map +1 -1
  147. package/dist/components/cube-view-bar/CubeViewBar.d.ts +6 -0
  148. package/dist/components/cube-view-bar/CubeViewBar.js +6 -0
  149. package/dist/components/cube-view-bar/CubeViewBar.js.map +1 -1
  150. package/dist/components/export/ExportComponent.d.ts +12 -0
  151. package/dist/components/export/ExportComponent.js +12 -0
  152. package/dist/components/export/ExportComponent.js.map +1 -1
  153. package/dist/components/filter/ExcelStyleFilterPopup.d.ts +17 -4
  154. package/dist/components/filter/ExcelStyleFilterPopup.js +35 -23
  155. package/dist/components/filter/ExcelStyleFilterPopup.js.map +1 -1
  156. package/dist/components/filter/ExcelStyleFilterPopupObjects.d.ts +1 -1
  157. package/dist/components/filter/ExcelStyleFilterPopupObjects.js +2 -2
  158. package/dist/components/filter/ExcelStyleFilterPopupObjects.js.map +1 -1
  159. package/dist/components/filter/FilterForm.d.ts +10 -0
  160. package/dist/components/filter/FilterForm.js +10 -0
  161. package/dist/components/filter/FilterForm.js.map +1 -1
  162. package/dist/components/filter/FilterPopup.d.ts +22 -4
  163. package/dist/components/filter/FilterPopup.js +17 -9
  164. package/dist/components/filter/FilterPopup.js.map +1 -1
  165. package/dist/components/filter/FilterPopupObjects.d.ts +5 -2
  166. package/dist/components/filter/FilterPopupObjects.js +5 -2
  167. package/dist/components/filter/FilterPopupObjects.js.map +1 -1
  168. package/dist/components/filter/FindForm.d.ts +7 -0
  169. package/dist/components/filter/FindForm.js +7 -0
  170. package/dist/components/filter/FindForm.js.map +1 -1
  171. package/dist/components/filter/ManagePrefilterPopup.d.ts +11 -0
  172. package/dist/components/filter/ManagePrefilterPopup.js +11 -0
  173. package/dist/components/filter/ManagePrefilterPopup.js.map +1 -1
  174. package/dist/components/form/Form.d.ts +16 -0
  175. package/dist/components/form/Form.js +16 -0
  176. package/dist/components/form/Form.js.map +1 -1
  177. package/dist/components/grid/Grid.d.ts +17 -0
  178. package/dist/components/grid/Grid.js +18 -1
  179. package/dist/components/grid/Grid.js.map +1 -1
  180. package/dist/components/maps/Maps.d.ts +6 -0
  181. package/dist/components/maps/Maps.js +6 -0
  182. package/dist/components/maps/Maps.js.map +1 -1
  183. package/dist/components/menu/ListBarMenuComponent.d.ts +10 -0
  184. package/dist/components/menu/ListBarMenuComponent.js +10 -0
  185. package/dist/components/menu/ListBarMenuComponent.js.map +1 -1
  186. package/dist/components/pivot-grid/PivotGrid.d.ts +6 -0
  187. package/dist/components/pivot-grid/PivotGrid.js +6 -0
  188. package/dist/components/pivot-grid/PivotGrid.js.map +1 -1
  189. package/dist/components/pivot-grid/PivotGridFieldList.d.ts +7 -0
  190. package/dist/components/pivot-grid/PivotGridFieldList.js +7 -0
  191. package/dist/components/pivot-grid/PivotGridFieldList.js.map +1 -1
  192. package/dist/components/pop-up/AllRowsPopUp.d.ts +12 -0
  193. package/dist/components/pop-up/AllRowsPopUp.js +12 -0
  194. package/dist/components/pop-up/AllRowsPopUp.js.map +1 -1
  195. package/dist/components/pop-up/PopUpComponent.d.ts +11 -0
  196. package/dist/components/pop-up/PopUpComponent.js +11 -0
  197. package/dist/components/pop-up/PopUpComponent.js.map +1 -1
  198. package/dist/components/prefilter-list/PrefilterList.d.ts +9 -0
  199. package/dist/components/prefilter-list/PrefilterList.js +9 -0
  200. package/dist/components/prefilter-list/PrefilterList.js.map +1 -1
  201. package/dist/components/preview/Preview.d.ts +6 -0
  202. package/dist/components/preview/Preview.js +6 -0
  203. package/dist/components/preview/Preview.js.map +1 -1
  204. package/dist/components/report-bar/ReportBar.d.ts +6 -0
  205. package/dist/components/report-bar/ReportBar.js +6 -0
  206. package/dist/components/report-bar/ReportBar.js.map +1 -1
  207. package/dist/components/report-tiles/ReportTiles.d.ts +6 -0
  208. package/dist/components/report-tiles/ReportTiles.js +6 -0
  209. package/dist/components/report-tiles/ReportTiles.js.map +1 -1
  210. package/dist/components/scheduler/Scheduler.d.ts +6 -0
  211. package/dist/components/scheduler/Scheduler.js +6 -0
  212. package/dist/components/scheduler/Scheduler.js.map +1 -1
  213. package/dist/components/snackbar/SnackBar.d.ts +12 -0
  214. package/dist/components/snackbar/SnackBar.js +12 -0
  215. package/dist/components/snackbar/SnackBar.js.map +1 -1
  216. package/dist/components/splitter/Splitter.d.ts +6 -0
  217. package/dist/components/splitter/Splitter.js +6 -0
  218. package/dist/components/splitter/Splitter.js.map +1 -1
  219. package/dist/components/tab/BaseTab.d.ts +5 -0
  220. package/dist/components/tab/BaseTab.js +5 -0
  221. package/dist/components/tab/BaseTab.js.map +1 -1
  222. package/dist/components/tab/DetailTabPage.d.ts +11 -0
  223. package/dist/components/tab/DetailTabPage.js +11 -0
  224. package/dist/components/tab/DetailTabPage.js.map +1 -1
  225. package/dist/components/tab/Tab.d.ts +10 -0
  226. package/dist/components/tab/Tab.js +10 -0
  227. package/dist/components/tab/Tab.js.map +1 -1
  228. package/dist/components/task/TaskBar.d.ts +12 -2
  229. package/dist/components/task/TaskBar.js +13 -3
  230. package/dist/components/task/TaskBar.js.map +1 -1
  231. package/dist/components/task/TaskTiles.d.ts +11 -2
  232. package/dist/components/task/TaskTiles.js +12 -3
  233. package/dist/components/task/TaskTiles.js.map +1 -1
  234. package/dist/components/topbar/TopBar.d.ts +10 -0
  235. package/dist/components/topbar/TopBar.js +10 -0
  236. package/dist/components/topbar/TopBar.js.map +1 -1
  237. package/dist/components/tree-view/TreeView.d.ts +9 -0
  238. package/dist/components/tree-view/TreeView.js +9 -0
  239. package/dist/components/tree-view/TreeView.js.map +1 -1
  240. package/dist/controls/DateControl.d.ts +39 -0
  241. package/dist/controls/DateControl.js +18 -1
  242. package/dist/controls/DateControl.js.map +1 -1
  243. package/dist/controls/FormComboBox.d.ts +30 -0
  244. package/dist/controls/FormComboBox.js +8 -0
  245. package/dist/controls/FormComboBox.js.map +1 -1
  246. package/dist/controls/GridColumnControl.d.ts +30 -0
  247. package/dist/controls/GridColumnControl.js +12 -3
  248. package/dist/controls/GridColumnControl.js.map +1 -1
  249. package/dist/controls/InputFieldControl.d.ts +49 -0
  250. package/dist/controls/InputFieldControl.js +30 -0
  251. package/dist/controls/InputFieldControl.js.map +1 -1
  252. package/dist/controls/LookupDropdown.d.ts +29 -0
  253. package/dist/controls/LookupDropdown.js +8 -0
  254. package/dist/controls/LookupDropdown.js.map +1 -1
  255. package/dist/enums/ElementTypes.d.ts +18 -0
  256. package/dist/enums/ElementTypes.js +18 -0
  257. package/dist/enums/ElementTypes.js.map +1 -1
  258. package/dist/enums/ExportFormat.d.ts +8 -0
  259. package/dist/enums/ExportFormat.js +8 -0
  260. package/dist/enums/ExportFormat.js.map +1 -1
  261. package/dist/enums/LogLevel.d.ts +17 -0
  262. package/dist/enums/LogLevel.js +17 -1
  263. package/dist/enums/LogLevel.js.map +1 -1
  264. package/dist/enums/index.d.ts +1 -0
  265. package/dist/enums/index.js +1 -0
  266. package/dist/enums/index.js.map +1 -1
  267. package/dist/helpers/ConfigChecker.d.ts +13 -0
  268. package/dist/helpers/ConfigChecker.js +13 -0
  269. package/dist/helpers/ConfigChecker.js.map +1 -1
  270. package/dist/helpers/Ensure.d.ts +13 -0
  271. package/dist/helpers/Ensure.js +13 -0
  272. package/dist/helpers/Ensure.js.map +1 -1
  273. package/dist/helpers/FlightTracker.d.ts +13 -3
  274. package/dist/helpers/FlightTracker.js +103 -17
  275. package/dist/helpers/FlightTracker.js.map +1 -1
  276. package/dist/helpers/GlobalWaitEventHandler.d.ts +13 -0
  277. package/dist/helpers/GlobalWaitEventHandler.js +13 -0
  278. package/dist/helpers/GlobalWaitEventHandler.js.map +1 -1
  279. package/dist/helpers/LoginHelper.d.ts +35 -1
  280. package/dist/helpers/LoginHelper.js +46 -11
  281. package/dist/helpers/LoginHelper.js.map +1 -1
  282. package/dist/helpers/PathResolver.d.ts +22 -0
  283. package/dist/helpers/PathResolver.js +22 -0
  284. package/dist/helpers/PathResolver.js.map +1 -1
  285. package/dist/helpers/Poll.d.ts +13 -1
  286. package/dist/helpers/Poll.js +12 -0
  287. package/dist/helpers/Poll.js.map +1 -1
  288. package/dist/helpers/RegexHelper.d.ts +15 -0
  289. package/dist/helpers/RegexHelper.js +15 -3
  290. package/dist/helpers/RegexHelper.js.map +1 -1
  291. package/dist/helpers/SubjectNavigator.d.ts +26 -0
  292. package/dist/helpers/SubjectNavigator.js +51 -0
  293. package/dist/helpers/SubjectNavigator.js.map +1 -0
  294. package/dist/helpers/UserSimulationHelper.d.ts +14 -0
  295. package/dist/helpers/UserSimulationHelper.js +14 -0
  296. package/dist/helpers/UserSimulationHelper.js.map +1 -1
  297. package/dist/helpers/index.d.ts +1 -0
  298. package/dist/helpers/index.js +1 -0
  299. package/dist/helpers/index.js.map +1 -1
  300. package/dist/index.d.ts +6 -20
  301. package/dist/index.js +1 -0
  302. package/dist/index.js.map +1 -1
  303. package/dist/interfaces/IComponentObjects.d.ts +12 -0
  304. package/dist/interfaces/IComponentSchemaMeta.d.ts +15 -0
  305. package/dist/interfaces/IComponentSchemaMeta.js +2 -0
  306. package/dist/interfaces/IComponentSchemaMeta.js.map +1 -0
  307. package/dist/interfaces/IProperty.d.ts +13 -0
  308. package/dist/interfaces/IRegisteredSubjects.d.ts +12 -0
  309. package/dist/interfaces/ISeedSubjectDraft.d.ts +16 -0
  310. package/dist/interfaces/ISeedSubjectDraft.js +2 -0
  311. package/dist/interfaces/ISeedSubjectDraft.js.map +1 -0
  312. package/dist/interfaces/ISubject.d.ts +13 -0
  313. package/dist/interfaces/ISubjectDetail.d.ts +11 -0
  314. package/dist/interfaces/ISubjectDetail.js +2 -0
  315. package/dist/interfaces/ISubjectDetail.js.map +1 -0
  316. package/dist/mcp/ArtifactResolver.d.ts +152 -0
  317. package/dist/mcp/ArtifactResolver.js +232 -0
  318. package/dist/mcp/ArtifactResolver.js.map +1 -0
  319. package/dist/mcp/index.d.ts +2 -0
  320. package/dist/mcp/index.js +2 -0
  321. package/dist/mcp/index.js.map +1 -0
  322. package/dist/page-extensions/GlobalComponents.d.ts +30 -0
  323. package/dist/page-extensions/GlobalComponents.js +30 -0
  324. package/dist/page-extensions/GlobalComponents.js.map +1 -1
  325. package/dist/page-extensions/GoToDeepLink.d.ts +9 -0
  326. package/dist/page-extensions/GoToDeepLink.js +9 -0
  327. package/dist/page-extensions/GoToDeepLink.js.map +1 -1
  328. package/dist/page-extensions/LoginFeatures.d.ts +8 -0
  329. package/dist/page-extensions/LoginFeatures.js +8 -0
  330. package/dist/page-extensions/LoginFeatures.js.map +1 -1
  331. package/dist/page-extensions/SubjectRegistry.d.ts +31 -0
  332. package/dist/page-extensions/SubjectRegistry.js +31 -0
  333. package/dist/page-extensions/SubjectRegistry.js.map +1 -1
  334. package/dist/page-extensions/UserSimulation.d.ts +21 -0
  335. package/dist/page-extensions/UserSimulation.js +21 -0
  336. package/dist/page-extensions/UserSimulation.js.map +1 -1
  337. package/dist/page-extensions/WaitEventHandler.d.ts +20 -0
  338. package/dist/page-extensions/WaitEventHandler.js +20 -0
  339. package/dist/page-extensions/WaitEventHandler.js.map +1 -1
  340. package/dist/page-overrides/ClickOverride.d.ts +23 -2
  341. package/dist/page-overrides/ClickOverride.js +34 -50
  342. package/dist/page-overrides/ClickOverride.js.map +1 -1
  343. package/dist/page-overrides/FillOverride.d.ts +23 -0
  344. package/dist/page-overrides/FillOverride.js +46 -66
  345. package/dist/page-overrides/FillOverride.js.map +1 -1
  346. package/dist/services/ConfigBuilder.d.ts +24 -0
  347. package/dist/services/ConfigBuilder.js +24 -0
  348. package/dist/services/ConfigBuilder.js.map +1 -1
  349. package/dist/services/IndiciumApi.service.d.ts +26 -0
  350. package/dist/services/IndiciumApi.service.js +40 -5
  351. package/dist/services/IndiciumApi.service.js.map +1 -1
  352. package/dist/services/Logger.d.ts +13 -0
  353. package/dist/services/Logger.js +39 -0
  354. package/dist/services/Logger.js.map +1 -1
  355. package/dist/types/Components.d.ts +18 -1
  356. package/dist/types/Components.js +0 -1
  357. package/dist/types/Components.js.map +1 -1
  358. package/dist/types/LocatorType.d.ts +5 -0
  359. package/dist/types/LocatorType.js +2 -0
  360. package/dist/types/LocatorType.js.map +1 -0
  361. package/dist/types/PollTypes.d.ts +8 -0
  362. package/dist/types/Test.d.ts +18 -0
  363. package/dist/types/Universal.d.ts +12 -0
  364. package/dist/types/index.d.ts +2 -0
  365. package/dist/types/index.js +2 -0
  366. package/dist/types/index.js.map +1 -1
  367. package/enums/ElementTypes.ts +18 -0
  368. package/enums/ExportFormat.ts +8 -0
  369. package/enums/LogLevel.ts +17 -1
  370. package/enums/index.ts +1 -0
  371. package/helpers/ConfigChecker.ts +13 -0
  372. package/helpers/Ensure.ts +13 -0
  373. package/helpers/FlightTracker.ts +109 -20
  374. package/helpers/GlobalWaitEventHandler.ts +13 -0
  375. package/helpers/LoginHelper.ts +49 -12
  376. package/helpers/PathResolver.ts +22 -0
  377. package/helpers/Poll.ts +13 -1
  378. package/helpers/RegexHelper.ts +15 -3
  379. package/helpers/SubjectNavigator.ts +57 -0
  380. package/helpers/UserSimulationHelper.ts +14 -0
  381. package/helpers/index.ts +1 -0
  382. package/index.ts +1 -0
  383. package/interfaces/IComponentObjects.ts +12 -0
  384. package/interfaces/IComponentSchemaMeta.ts +17 -0
  385. package/interfaces/IProperty.ts +13 -0
  386. package/interfaces/IRegisteredSubjects.ts +12 -0
  387. package/interfaces/ISeedSubjectDraft.ts +17 -0
  388. package/interfaces/ISubject.ts +13 -0
  389. package/interfaces/ISubjectDetail.ts +12 -0
  390. package/mcp/ArtifactResolver.ts +296 -0
  391. package/mcp/index.ts +2 -0
  392. package/package.json +20 -8
  393. package/page-extensions/GlobalComponents.ts +30 -0
  394. package/page-extensions/GoToDeepLink.ts +9 -0
  395. package/page-extensions/LoginFeatures.ts +8 -0
  396. package/page-extensions/SubjectRegistry.ts +32 -0
  397. package/page-extensions/UserSimulation.ts +21 -0
  398. package/page-extensions/WaitEventHandler.ts +20 -0
  399. package/page-overrides/ClickOverride.ts +36 -55
  400. package/page-overrides/FillOverride.ts +59 -73
  401. package/promptCredentials.js +1 -1
  402. package/scripts/Testwise.template.json +1 -1
  403. package/scripts/diagram.js +2267 -0
  404. package/scripts/main.js +84 -63
  405. package/scripts/postinstall.js +55 -42
  406. package/scripts/setup.js +91 -37
  407. package/scripts/sync.js +767 -748
  408. package/services/ConfigBuilder.ts +24 -0
  409. package/services/IndiciumApi.service.ts +44 -6
  410. package/services/Logger.ts +40 -0
  411. package/templates/copilot-instructions.md +130 -0
  412. package/templates/mcp.json +9 -0
  413. package/templates/testwise-test-expert.agent.md +453 -0
  414. package/tests/tsconfig.json +12 -0
  415. package/tsconfig.json +6 -2
  416. package/types/Components.ts +17 -2
  417. package/types/LocatorType.ts +5 -0
  418. package/types/PollTypes.ts +8 -0
  419. package/types/Test.ts +18 -0
  420. package/types/Universal.ts +12 -0
  421. package/types/index.ts +2 -0
  422. package/dist/interfaces/IStoredTestResults.d.ts +0 -5
  423. package/dist/interfaces/IStoredTestResults.js +0 -2
  424. package/dist/interfaces/IStoredTestResults.js.map +0 -1
  425. package/dist/templates/test-artifacts/SubjectPageBase.d.ts +0 -5
  426. package/dist/templates/test-artifacts/SubjectPageBase.js +0 -6
  427. package/dist/templates/test-artifacts/SubjectPageBase.js.map +0 -1
  428. package/dist/templates/test-artifacts/screens/index.d.ts +0 -1
  429. package/dist/templates/test-artifacts/screens/index.js +0 -2
  430. package/dist/templates/test-artifacts/screens/index.js.map +0 -1
  431. package/dist/templates/test-artifacts/subjects/index.d.ts +0 -1
  432. package/dist/templates/test-artifacts/subjects/index.js +0 -2
  433. package/dist/templates/test-artifacts/subjects/index.js.map +0 -1
  434. package/interfaces/IStoredTestResults.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../components/tab/Tab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,GAAI,SAAQ,OAAO;IAG9B,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,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,UAAU,CAAC,WAAmB,IAAI;QACvC,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,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../components/tab/Tab.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAO;IAG9B,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,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,UAAU,CAAC,WAAmB,IAAI;QACvC,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,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,6DAA6D;IACtD,KAAK,CAAC,WAAW,CAAC,KAAa;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;CACF"}
@@ -1,10 +1,20 @@
1
1
  import type { Locator } from '@playwright/test';
2
+ /**
3
+ * Wraps the Thinkwise task-bar component that shows process/workflow task
4
+ * buttons in a horizontal bar at the bottom or top of a subject screen.
5
+ *
6
+ * In generated subject classes this is exposed as a typed `taskBar` property.
7
+ *
8
+ * @example
9
+ * await subject.taskBar.getTaskById('approve').click();
10
+ * const label = await subject.taskBar.getTaskByLabel('Approve').textContent();
11
+ */
2
12
  export declare class TaskBar {
3
13
  private _taskBarObjects;
4
14
  /**
5
- * @param taskBarContext the taskbar container element (same idea as Grid's context)
15
+ * @param context the taskbar container element (same idea as Grid's context)
6
16
  */
7
- constructor(taskBarContext: Locator);
17
+ constructor(context: Locator);
8
18
  /** returns all task buttons */
9
19
  tasks: () => Locator;
10
20
  /** returns a task button by its data-testid key */
@@ -1,9 +1,19 @@
1
1
  import { TaskBarObjects } from './TaskBarObjects.js';
2
+ /**
3
+ * Wraps the Thinkwise task-bar component that shows process/workflow task
4
+ * buttons in a horizontal bar at the bottom or top of a subject screen.
5
+ *
6
+ * In generated subject classes this is exposed as a typed `taskBar` property.
7
+ *
8
+ * @example
9
+ * await subject.taskBar.getTaskById('approve').click();
10
+ * const label = await subject.taskBar.getTaskByLabel('Approve').textContent();
11
+ */
2
12
  export class TaskBar {
3
13
  /**
4
- * @param taskBarContext the taskbar container element (same idea as Grid's context)
14
+ * @param context the taskbar container element (same idea as Grid's context)
5
15
  */
6
- constructor(taskBarContext) {
16
+ constructor(context) {
7
17
  /** returns all task buttons */
8
18
  this.tasks = () => this._taskBarObjects.tasks(); // matches Grid's "rows()" noun-style
9
19
  /** returns a task button by its data-testid key */
@@ -17,7 +27,7 @@ export class TaskBar {
17
27
  this.clickByLabel = async (label) => {
18
28
  await this.getTaskByLabel(label).click();
19
29
  };
20
- this._taskBarObjects = new TaskBarObjects(taskBarContext.page(), taskBarContext);
30
+ this._taskBarObjects = new TaskBarObjects(context.page(), context);
21
31
  }
22
32
  }
23
33
  //# sourceMappingURL=TaskBar.js.map
@@ -1 +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,cAAuB;QAInC,+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,cAAc,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;IACnF,CAAC;CAmBF"}
1
+ {"version":3,"file":"TaskBar.js","sourceRoot":"","sources":["../../../components/task/TaskBar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,OAAO,OAAO;IAGlB;;OAEG;IACH,YAAY,OAAgB;QAI5B,+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,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CAmBF"}
@@ -1,10 +1,19 @@
1
1
  import type { Locator } from '@playwright/test';
2
+ /**
3
+ * Wraps the Thinkwise task-tiles component that displays tasks as clickable
4
+ * tile buttons on a dashboard or process-flow screen.
5
+ *
6
+ * In generated subject classes this is exposed as a typed `taskTiles` property.
7
+ *
8
+ * @example
9
+ * await subject.taskTiles.getTileByLabel('Approve').click();
10
+ */
2
11
  export declare class TaskTiles {
3
12
  private _taskTilesObjects;
4
13
  /**
5
- * @param taskTilesContext the taskTiles container element
14
+ * @param context the taskTiles container element
6
15
  */
7
- constructor(taskTilesContext: Locator);
16
+ constructor(context: Locator);
8
17
  /** returns all task tile buttons */
9
18
  tasks: () => Locator;
10
19
  getTaskById: (key: string) => Locator;
@@ -1,9 +1,18 @@
1
1
  import { TaskTilesObjects } from './TaskTilesObjects.js';
2
+ /**
3
+ * Wraps the Thinkwise task-tiles component that displays tasks as clickable
4
+ * tile buttons on a dashboard or process-flow screen.
5
+ *
6
+ * In generated subject classes this is exposed as a typed `taskTiles` property.
7
+ *
8
+ * @example
9
+ * await subject.taskTiles.getTileByLabel('Approve').click();
10
+ */
2
11
  export class TaskTiles {
3
12
  /**
4
- * @param taskTilesContext the taskTiles container element
13
+ * @param context the taskTiles container element
5
14
  */
6
- constructor(taskTilesContext) {
15
+ constructor(context) {
7
16
  /** returns all task tile buttons */
8
17
  this.tasks = () => this._taskTilesObjects.tasks();
9
18
  this.getTaskById = (key) => this._taskTilesObjects.taskById(key);
@@ -14,7 +23,7 @@ export class TaskTiles {
14
23
  this.clickByLabel = async (label) => {
15
24
  await this.getTaskByLabel(label).click();
16
25
  };
17
- this._taskTilesObjects = new TaskTilesObjects(taskTilesContext.page(), taskTilesContext);
26
+ this._taskTilesObjects = new TaskTilesObjects(context.page(), context);
18
27
  }
19
28
  }
20
29
  //# sourceMappingURL=TaskTiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskTiles.js","sourceRoot":"","sources":["../../../components/task/TaskTiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,SAAS;IAGpB;;OAEG;IACH,YAAY,gBAAyB;QAIrC,oCAAoC;QAC7B,UAAK,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAEtD,gBAAW,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE7E,mBAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvF,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;QAhBA,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC3F,CAAC;CAgBF"}
1
+ {"version":3,"file":"TaskTiles.js","sourceRoot":"","sources":["../../../components/task/TaskTiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,OAAO,SAAS;IAGpB;;OAEG;IACH,YAAY,OAAgB;QAI5B,oCAAoC;QAC7B,UAAK,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAEtD,gBAAW,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE7E,mBAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvF,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;QAhBA,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;CAgBF"}
@@ -1,4 +1,14 @@
1
1
  import type { Locator, Page } from '@playwright/test';
2
+ /**
3
+ * Wraps the Thinkwise application top bar that shows the page title,
4
+ * breadcrumb trail, and the user/application menu.
5
+ *
6
+ * Access via `page.components.topBar` — no need to construct this yourself.
7
+ *
8
+ * @example
9
+ * const title = await page.components.topBar.getTopBarTitle().textContent();
10
+ * const breadcrumb = await page.components.topBar.getTopBarBreadcrumb().textContent();
11
+ */
2
12
  export declare class TopBarComponent {
3
13
  private _objects;
4
14
  constructor(page: Page, topbarContext?: Locator | null);
@@ -1,4 +1,14 @@
1
1
  import { TopBarObjects } from './TopBarObjects.js';
2
+ /**
3
+ * Wraps the Thinkwise application top bar that shows the page title,
4
+ * breadcrumb trail, and the user/application menu.
5
+ *
6
+ * Access via `page.components.topBar` — no need to construct this yourself.
7
+ *
8
+ * @example
9
+ * const title = await page.components.topBar.getTopBarTitle().textContent();
10
+ * const breadcrumb = await page.components.topBar.getTopBarBreadcrumb().textContent();
11
+ */
2
12
  export class TopBarComponent {
3
13
  constructor(page, topbarContext = null) {
4
14
  this.getTopBarTitle = () => this._objects.topBarTitle();
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar.js","sourceRoot":"","sources":["../../../components/topbar/TopBar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,eAAe;IAG1B,YAAY,IAAU,EAAE,gBAAgC,IAAI;QAIrD,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEnD,wBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAE7D,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAPpD,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;CAOF"}
1
+ {"version":3,"file":"TopBar.js","sourceRoot":"","sources":["../../../components/topbar/TopBar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAe;IAG1B,YAAY,IAAU,EAAE,gBAAgC,IAAI;QAIrD,mBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEnD,wBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QAE7D,kBAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAPpD,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACzD,CAAC;CAOF"}
@@ -1,5 +1,14 @@
1
1
  import type { Locator } from '@playwright/test';
2
2
  import { TreeViewObjects } from './TreeViewObjects.js';
3
+ /**
4
+ * Wraps the Thinkwise tree-view navigation component used to display
5
+ * hierarchical data structures (e.g. organisational trees, folder structures).
6
+ *
7
+ * In generated subject classes this is exposed as a typed `treeView` property.
8
+ *
9
+ * @example
10
+ * await subject.treeView.context.getByText('Europe').click();
11
+ */
3
12
  export declare class TreeView {
4
13
  treeViewObjects: TreeViewObjects;
5
14
  constructor(context: Locator);
@@ -1,4 +1,13 @@
1
1
  import { TreeViewObjects } from './TreeViewObjects.js';
2
+ /**
3
+ * Wraps the Thinkwise tree-view navigation component used to display
4
+ * hierarchical data structures (e.g. organisational trees, folder structures).
5
+ *
6
+ * In generated subject classes this is exposed as a typed `treeView` property.
7
+ *
8
+ * @example
9
+ * await subject.treeView.context.getByText('Europe').click();
10
+ */
2
11
  export class TreeView {
3
12
  constructor(context) {
4
13
  this.treeViewObjects = new TreeViewObjects(context.page(), context);
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../components/tree-view/TreeView.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,QAAQ;IAGnB,YAAY,OAAgB;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../../components/tree-view/TreeView.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAQ;IAGnB,YAAY,OAAgB;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;IACtC,CAAC;CACF"}
@@ -1,4 +1,26 @@
1
1
  import type { Locator } from '@playwright/test';
2
+ /**
3
+ * Typed proxy for a date-picker field (`control_type: "date_picker"`) on a
4
+ * Thinkwise form screen.
5
+ *
6
+ * **How to use:** You never construct this directly. Generated subject
7
+ * component classes expose properties of type `IDateControl` for each date
8
+ * field on the form:
9
+ *
10
+ * ```ts
11
+ * // Fill accepts any common date format — numbers are extracted and entered
12
+ * // sequentially so the date picker can apply its own formatting:
13
+ * await subject.form.hireDateField.fill('15-03-2025');
14
+ * await subject.form.hireDateField.fill('03/15/2025');
15
+ * await subject.form.hireDateField.fill('20250315'); // also works
16
+ *
17
+ * const raw = await subject.form.hireDateField.inputValue();
18
+ * await subject.form.hireDateField.clear();
19
+ * ```
20
+ *
21
+ * The returned value is a **Proxy** — it works as both a Playwright `Locator`
22
+ * and a typed date control.
23
+ */
2
24
  export type IDateControl = Locator & IDateControlCore;
3
25
  export type IDateControlCore = {
4
26
  fill(value: string): Promise<void>;
@@ -17,8 +39,25 @@ export declare class DateControl implements IDateControlCore {
17
39
  * @param value
18
40
  */
19
41
  fill(value: string): Promise<void>;
42
+ /**
43
+ * Clears the date input by filling it with an empty string.
44
+ */
20
45
  clear(): Promise<void>;
46
+ /**
47
+ * Returns the current raw string value from the underlying date input element.
48
+ */
21
49
  inputValue(): Promise<string>;
50
+ /**
51
+ * Returns the Playwright `Locator` for the underlying `<input>` element of the date field.
52
+ */
22
53
  inputElement(): Locator;
23
54
  }
55
+ /**
56
+ * Creates an `IDateControl` proxy that merges `DateControl` interaction methods with
57
+ * the underlying Playwright `Locator` for the `form-field__<id>` test ID.
58
+ * Use the returned value as both a typed date control and a regular Playwright locator.
59
+ * @param context - The parent locator to scope the control within.
60
+ * @param id - The field identifier used to locate `[data-testid="form-field__<id>"]`.
61
+ * @returns A proxy combining `IDateControlCore` methods and `Locator` capabilities.
62
+ */
24
63
  export declare function createDateControl(context: Locator, id: string): IDateControl;
@@ -12,19 +12,36 @@ export class DateControl {
12
12
  */
13
13
  async fill(value) {
14
14
  const numbersOnlyValue = value.replace(/\D/g, '');
15
- await this._objects.fieldInput().focus();
15
+ await this._objects.fieldInput().click();
16
16
  await this._objects.fieldInput().pressSequentially(numbersOnlyValue);
17
17
  }
18
+ /**
19
+ * Clears the date input by filling it with an empty string.
20
+ */
18
21
  async clear() {
19
22
  await this._objects.fieldInput().fill('');
20
23
  }
24
+ /**
25
+ * Returns the current raw string value from the underlying date input element.
26
+ */
21
27
  async inputValue() {
22
28
  return await this._objects.fieldInput().inputValue();
23
29
  }
30
+ /**
31
+ * Returns the Playwright `Locator` for the underlying `<input>` element of the date field.
32
+ */
24
33
  inputElement() {
25
34
  return this._objects.fieldInput();
26
35
  }
27
36
  }
37
+ /**
38
+ * Creates an `IDateControl` proxy that merges `DateControl` interaction methods with
39
+ * the underlying Playwright `Locator` for the `form-field__<id>` test ID.
40
+ * Use the returned value as both a typed date control and a regular Playwright locator.
41
+ * @param context - The parent locator to scope the control within.
42
+ * @param id - The field identifier used to locate `[data-testid="form-field__<id>"]`.
43
+ * @returns A proxy combining `IDateControlCore` methods and `Locator` capabilities.
44
+ */
28
45
  export function createDateControl(context, id) {
29
46
  const inputFieldControl = new DateControl(context, id);
30
47
  const locator = context.getByTestId(`form-field__${id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"DateControl.js","sourceRoot":"","sources":["../../controls/DateControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAW7D,MAAM,OAAO,WAAW;IAGtB,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,EAAU;IAC5D,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE;QAClC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAA4B,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"DateControl.js","sourceRoot":"","sources":["../../controls/DateControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAiC7D,MAAM,OAAO,WAAW;IAGtB,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAElD,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,EAAU;IAC5D,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE;QAClC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAA4B,CAAC;AAChC,CAAC"}
@@ -1,4 +1,26 @@
1
1
  import type { Locator } from '@playwright/test';
2
+ /**
3
+ * Typed proxy for a combo-box field (`control_type: "combo_box"`) on a
4
+ * Thinkwise form screen.
5
+ *
6
+ * **How to use:** You never construct this directly. Generated subject
7
+ * component classes expose properties of type `IFormComboBox` for each
8
+ * combo-box on the form:
9
+ *
10
+ * ```ts
11
+ * // Select an option by typing a prefix and picking from auto-complete:
12
+ * await subject.form.statusCombo.lookupSelect('Act');
13
+ *
14
+ * // Click to open the full list and select:
15
+ * await subject.form.statusCombo.selectOption('Active');
16
+ *
17
+ * // Clear the current selection:
18
+ * await subject.form.statusCombo.clearByClick();
19
+ * ```
20
+ *
21
+ * The returned value is a **Proxy** that acts as both a Playwright `Locator`
22
+ * and a typed combo-box control.
23
+ */
2
24
  export type IFormComboBox = Locator & IFormComboBoxCore;
3
25
  export type IFormComboBoxCore = {
4
26
  lookupSelect(optionToSelect: string): Promise<void>;
@@ -6,4 +28,12 @@ export type IFormComboBoxCore = {
6
28
  getValidationMessage(): Promise<string>;
7
29
  clearByClick(): Promise<void>;
8
30
  };
31
+ /**
32
+ * Creates an `IFormComboBox` proxy that merges `FormComboBox` interaction methods with
33
+ * the underlying Playwright `Locator` for the `form-field__<id>` test ID.
34
+ * Use the returned value as both a typed combo-box control and a regular Playwright locator.
35
+ * @param context - The parent locator to scope the control within.
36
+ * @param id - The field identifier used to locate `[data-testid="form-field__<id>"]`.
37
+ * @returns A proxy combining `IFormComboBoxCore` methods and `Locator` capabilities.
38
+ */
9
39
  export declare function createFormComboBox(context: Locator, id: string): IFormComboBox;
@@ -21,6 +21,14 @@ class FormComboBox {
21
21
  await this._objects.option(optionToSelect).click();
22
22
  }
23
23
  }
24
+ /**
25
+ * Creates an `IFormComboBox` proxy that merges `FormComboBox` interaction methods with
26
+ * the underlying Playwright `Locator` for the `form-field__<id>` test ID.
27
+ * Use the returned value as both a typed combo-box control and a regular Playwright locator.
28
+ * @param context - The parent locator to scope the control within.
29
+ * @param id - The field identifier used to locate `[data-testid="form-field__<id>"]`.
30
+ * @returns A proxy combining `IFormComboBoxCore` methods and `Locator` capabilities.
31
+ */
24
32
  export function createFormComboBox(context, id) {
25
33
  const comboBox = new FormComboBox(context, id);
26
34
  const locator = context.getByTestId(`form-field__${id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"FormComboBox.js","sourceRoot":"","sources":["../../controls/FormComboBox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAW/D,MAAM,YAAY;IAGhB,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,cAAsB;QACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;CACF;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,EAAU;IAC7D,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAA6B,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"FormComboBox.js","sourceRoot":"","sources":["../../controls/FormComboBox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAiC/D,MAAM,YAAY;IAGhB,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,cAAsB;QACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,EAAU;IAC7D,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAA6B,CAAC;AACjC,CAAC"}
@@ -1,4 +1,26 @@
1
1
  import type { Locator } from '@playwright/test';
2
+ /**
3
+ * Typed proxy for a single column in a Thinkwise `Grid` component.
4
+ *
5
+ * **How to use:** You never construct this directly. Generated subject
6
+ * component classes expose properties of type `IGridColumnControl` for each
7
+ * column in a grid:
8
+ *
9
+ * ```ts
10
+ * // Get all visible cell values in the column:
11
+ * const names = await subject.grid.employeeNameColumn.getCellValues();
12
+ *
13
+ * // Find a specific cell by its exact text:
14
+ * const cell = subject.grid.employeeNameColumn.getCellByExactValue('Jane Doe');
15
+ * await cell.click();
16
+ *
17
+ * // Filter the grid using the Excel-style filter popup:
18
+ * await subject.grid.statusColumn.filterByColumnValueExcelStyle('Active');
19
+ * ```
20
+ *
21
+ * The returned value is a **Proxy** — it works as both a Playwright `Locator`
22
+ * (pointing at the column header) and a typed column control.
23
+ */
2
24
  export type IGridColumnControl = Locator & IGridColumnControlCore;
3
25
  export type IGridColumnControlCore = {
4
26
  getColumnHeader(): Promise<Locator>;
@@ -7,4 +29,12 @@ export type IGridColumnControlCore = {
7
29
  filterByColumnValueExcelStyle(value: string, deselectAll?: boolean): Promise<void>;
8
30
  openExcelStyleFilterPopup(): Promise<void>;
9
31
  };
32
+ /**
33
+ * Creates an `IGridColumnControl` proxy for a specific grid column.
34
+ * Normalises the column `id` (replacing `-` with `_`), then returns a proxy that merges
35
+ * `GridColumnControl` interaction methods with the `[col-id="<id>"]` locator.
36
+ * @param gridContext - The parent `Locator` representing the grid element.
37
+ * @param id - The column identifier (hyphens are automatically converted to underscores).
38
+ * @returns A proxy combining `IGridColumnControlCore` methods and `Locator` capabilities.
39
+ */
10
40
  export declare function createGridColumnControl(gridContext: Locator, id: string): IGridColumnControl;
@@ -3,7 +3,7 @@ import { escapeRegex } from '../index.js';
3
3
  import { GridColumnControlObjects } from './GridColumnControlObjects.js';
4
4
  class GridColumnControl {
5
5
  constructor(gridContext, id) {
6
- this._id = id.replace(/-/g, '_');
6
+ this._id = id;
7
7
  this._objects = new GridColumnControlObjects(gridContext, this._id);
8
8
  this._grid = new Grid(gridContext);
9
9
  }
@@ -24,9 +24,18 @@ class GridColumnControl {
24
24
  await this._grid.filterByColumnValueExcelStyle(this._objects.columnHeader(), value, deselectAll);
25
25
  }
26
26
  }
27
+ /**
28
+ * Creates an `IGridColumnControl` proxy for a specific grid column.
29
+ * Normalises the column `id` (replacing `-` with `_`), then returns a proxy that merges
30
+ * `GridColumnControl` interaction methods with the `[col-id="<id>"]` locator.
31
+ * @param gridContext - The parent `Locator` representing the grid element.
32
+ * @param id - The column identifier (hyphens are automatically converted to underscores).
33
+ * @returns A proxy combining `IGridColumnControlCore` methods and `Locator` capabilities.
34
+ */
27
35
  export function createGridColumnControl(gridContext, id) {
28
- const columnControl = new GridColumnControl(gridContext, id);
29
- const locator = gridContext.locator(`[col-id="${id}"]`);
36
+ const processedId = id.replace(/-/g, '_');
37
+ const columnControl = new GridColumnControl(gridContext, processedId);
38
+ const locator = gridContext.locator(`[col-id="${processedId}"]`);
30
39
  return new Proxy(columnControl, {
31
40
  get(target, prop, receiver) {
32
41
  if (prop in target) {
@@ -1 +1 @@
1
- {"version":3,"file":"GridColumnControl.js","sourceRoot":"","sources":["../../controls/GridColumnControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAYzE,MAAM,iBAAiB;IAKrB,YAAY,WAAoB,EAAE,EAAU;QAC1C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAEM,mBAAmB,CAAC,KAAa;QACtC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,6BAA6B,CAAC,KAAa,EAAE,WAAqB;QAC7E,MAAM,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACnG,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAoB,EAAE,EAAU;IACtE,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAExD,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE;QAC9B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAkC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"GridColumnControl.js","sourceRoot":"","sources":["../../controls/GridColumnControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAkCzE,MAAM,iBAAiB;IAKrB,YAAY,WAAoB,EAAE,EAAU;QAC1C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,eAAe;QAC1B,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAEM,mBAAmB,CAAC,KAAa;QACtC,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,6BAA6B,CAAC,KAAa,EAAE,WAAqB;QAC7E,MAAM,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACnG,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAoB,EAAE,EAAU;IACtE,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC;IAEjE,OAAO,IAAI,KAAK,CAAC,aAAa,EAAE;QAC9B,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAkC,CAAC;AACtC,CAAC"}
@@ -1,5 +1,24 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: reason42 */
2
2
  import type { Locator } from '@playwright/test';
3
+ /**
4
+ * Typed proxy for a plain text input field (`control_type: "field"`) on a
5
+ * Thinkwise form screen.
6
+ *
7
+ * **How to use:** You never construct this directly. The generated subject
8
+ * component class exposes properties of type `IInputFieldControl` — one per
9
+ * field on the form. Use those properties in your test:
10
+ *
11
+ * ```ts
12
+ * // Generated subject exposes:
13
+ * // employeeName: IInputFieldControl;
14
+ * await subject.form.employeeName.fill('Jane Doe');
15
+ * const val = await subject.form.employeeName.inputValue();
16
+ * ```
17
+ *
18
+ * The returned value is a **Proxy** — it acts as both a Playwright `Locator`
19
+ * (so you can call `.waitFor()`, `.isVisible()`, etc.) and as a typed control
20
+ * with named interaction methods.
21
+ */
3
22
  export type IInputFieldControl = Locator & ICoreInputFieldControl;
4
23
  export type ICoreInputFieldControl = {
5
24
  getValidationMessage(): Promise<string>;
@@ -13,12 +32,42 @@ export type ICoreInputFieldControl = {
13
32
  export declare class InputFieldControl implements ICoreInputFieldControl {
14
33
  private _objects;
15
34
  constructor(context: Locator, id: string);
35
+ /**
36
+ * Waits for the field's validation message element to become visible, then returns its text.
37
+ */
16
38
  getValidationMessage(): Promise<string>;
39
+ /**
40
+ * Fills the input element with the given value.
41
+ * @param value - The string to enter into the field.
42
+ */
17
43
  fill(value: string): Promise<void>;
44
+ /**
45
+ * Clicks the underlying input element.
46
+ */
18
47
  click(): Promise<void>;
48
+ /**
49
+ * Clears the input field by filling it with an empty string.
50
+ */
19
51
  clear(): Promise<void>;
52
+ /**
53
+ * Returns the current string value from the underlying input element.
54
+ */
20
55
  inputValue(): Promise<string>;
56
+ /**
57
+ * Returns the Playwright `Locator` for the underlying `<input>` element of the field.
58
+ */
21
59
  inputElement(): Locator;
60
+ /**
61
+ * Returns the trimmed, whitespace-normalised text content of the field's label element.
62
+ */
22
63
  getLabelText(): Promise<string>;
23
64
  }
65
+ /**
66
+ * Creates an `IInputFieldControl` proxy that merges `InputFieldControl` interaction methods
67
+ * with the underlying Playwright `Locator` for the `form-field__<id>` test ID.
68
+ * Use the returned value as both a typed input control and a regular Playwright locator.
69
+ * @param context - The parent locator to scope the control within.
70
+ * @param id - The field identifier used to locate `[data-testid="form-field__<id>"]`.
71
+ * @returns A proxy combining `ICoreInputFieldControl` methods and `Locator` capabilities.
72
+ */
24
73
  export declare function createInputFieldControl(context: Locator, id: string): IInputFieldControl;
@@ -3,31 +3,61 @@ export class InputFieldControl {
3
3
  constructor(context, id) {
4
4
  this._objects = new InputFieldControlObjects(context, id);
5
5
  }
6
+ /**
7
+ * Waits for the field's validation message element to become visible, then returns its text.
8
+ */
6
9
  async getValidationMessage() {
7
10
  await this._objects.validationMessage().waitFor({ state: 'visible' });
8
11
  return await this._objects.validationMessage().innerText();
9
12
  }
13
+ /**
14
+ * Fills the input element with the given value.
15
+ * @param value - The string to enter into the field.
16
+ */
10
17
  async fill(value) {
11
18
  await this._objects.fieldInput().fill(value);
12
19
  }
20
+ /**
21
+ * Clicks the underlying input element.
22
+ */
13
23
  async click() {
14
24
  await this._objects.fieldInput().click();
15
25
  }
26
+ /**
27
+ * Clears the input field by filling it with an empty string.
28
+ */
16
29
  async clear() {
17
30
  await this._objects.fieldInput().fill('');
18
31
  }
32
+ /**
33
+ * Returns the current string value from the underlying input element.
34
+ */
19
35
  async inputValue() {
20
36
  return await this._objects.fieldInput().inputValue();
21
37
  }
38
+ /**
39
+ * Returns the Playwright `Locator` for the underlying `<input>` element of the field.
40
+ */
22
41
  inputElement() {
23
42
  return this._objects.fieldInput();
24
43
  }
44
+ /**
45
+ * Returns the trimmed, whitespace-normalised text content of the field's label element.
46
+ */
25
47
  async getLabelText() {
26
48
  let returnText = (await this._objects.fieldLabel().textContent()) || '';
27
49
  returnText = returnText.replace(/\s+/g, ' ').trim();
28
50
  return returnText;
29
51
  }
30
52
  }
53
+ /**
54
+ * Creates an `IInputFieldControl` proxy that merges `InputFieldControl` interaction methods
55
+ * with the underlying Playwright `Locator` for the `form-field__<id>` test ID.
56
+ * Use the returned value as both a typed input control and a regular Playwright locator.
57
+ * @param context - The parent locator to scope the control within.
58
+ * @param id - The field identifier used to locate `[data-testid="form-field__<id>"]`.
59
+ * @returns A proxy combining `ICoreInputFieldControl` methods and `Locator` capabilities.
60
+ */
31
61
  export function createInputFieldControl(context, id) {
32
62
  const inputFieldControl = new InputFieldControl(context, id);
33
63
  const locator = context.getByTestId(`form-field__${id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"InputFieldControl.js","sourceRoot":"","sources":["../../controls/InputFieldControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAczE,MAAM,OAAO,iBAAiB;IAG5B,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAEM,KAAK,CAAC,oBAAoB;QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,IAAI,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAExE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,EAAU;IAClE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE;QAClC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAkC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"InputFieldControl.js","sourceRoot":"","sources":["../../controls/InputFieldControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAiCzE,MAAM,OAAO,iBAAiB;IAG5B,YAAY,OAAgB,EAAE,EAAU;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,oBAAoB;QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,SAAS,EAAE,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY;QACvB,IAAI,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAExE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,EAAU;IAClE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAI,KAAK,CAAC,iBAAiB,EAAE;QAClC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAI,OAAe,CAAC,IAAI,CAAC,CAAC;YAErC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAkC,CAAC;AACtC,CAAC"}
@@ -1,5 +1,26 @@
1
1
  /** biome-ignore-all lint/suspicious/noExplicitAny: needed flexibility */
2
2
  import type { Locator } from '@playwright/test';
3
+ /**
4
+ * Typed proxy for a lookup or dropdown field (`control_type: "lookup"` or
5
+ * `"dropdown"`) on a Thinkwise form screen.
6
+ *
7
+ * **How to use:** You never construct this directly. The generated subject
8
+ * component class exposes properties of type `ILookupDropdown` for each
9
+ * lookup/dropdown on the form:
10
+ *
11
+ * ```ts
12
+ * // Two interaction styles:
13
+ *
14
+ * // 1. Type + pick from the auto-complete list:
15
+ * await subject.form.countryLookup.lookupSelect('Netherlands');
16
+ *
17
+ * // 2. Click to open the dropdown then pick:
18
+ * await subject.form.statusDropdown.selectOption('Active');
19
+ * ```
20
+ *
21
+ * The returned value is a **Proxy** — it works as both a Playwright `Locator`
22
+ * and a typed control with named helper methods.
23
+ */
3
24
  export type ILookupDropdown = Locator & ILookupDropdownCore;
4
25
  export type ILookupDropdownCore = {
5
26
  lookupSelect(optionToSelect: string): Promise<void>;
@@ -10,4 +31,12 @@ export type ILookupDropdownCore = {
10
31
  inputValue(): Promise<string>;
11
32
  clear(): Promise<void>;
12
33
  };
34
+ /**
35
+ * Creates an `ILookupDropdown` proxy that intercepts named `LookupDropdown` methods from
36
+ * the class prototype and falls back to the base `Locator` for everything else, effectively
37
+ * merging the typed dropdown interface with standard Playwright locator capabilities.
38
+ * @param context - The parent locator to scope the control within.
39
+ * @param id - The field identifier used to build the scoped locator.
40
+ * @returns A proxy combining `ILookupDropdownCore` methods and `Locator` capabilities.
41
+ */
13
42
  export declare function createLookupDropdown(context: Locator, id: string): ILookupDropdown;