@itwin/reports-config-widget-react 0.2.1 → 0.4.0

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 (343) hide show
  1. package/.rush/temp/operation/rebuild/all.log +9 -0
  2. package/.rush/temp/operation/rebuild/state.json +3 -0
  3. package/.rush/temp/package-deps_rebuild.json +48 -44
  4. package/.rush/temp/shrinkwrap-deps.json +228 -207
  5. package/CHANGELOG.json +44 -0
  6. package/CHANGELOG.md +24 -1
  7. package/coverage/clover.xml +562 -542
  8. package/coverage/coverage-final.json +24 -20
  9. package/coverage/lcov-report/index.html +51 -51
  10. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +22 -22
  11. package/coverage/lcov-report/src/index.html +21 -21
  12. package/coverage/lcov-report/src/test/index.html +11 -11
  13. package/coverage/lcov-report/src/test/test-utils.tsx.html +20 -140
  14. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +14 -35
  15. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +26 -20
  16. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +94 -109
  17. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +55 -52
  18. package/coverage/lcov-report/src/widget/components/Constants.ts.html +1 -1
  19. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +28 -46
  20. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +1 -1
  21. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +1 -1
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +1 -1
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +1 -1
  24. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +1 -1
  25. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +1 -1
  26. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +1 -1
  27. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +1 -1
  28. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +3 -3
  29. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
  30. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +36 -81
  31. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +38 -41
  32. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +46 -46
  33. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +127 -142
  34. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +189 -312
  35. package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +370 -0
  36. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +111 -33
  37. package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +166 -0
  38. package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +274 -0
  39. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +22 -7
  40. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +40 -94
  41. package/coverage/lcov-report/src/widget/components/index.html +142 -97
  42. package/coverage/lcov-report/src/widget/components/utils.tsx.html +22 -19
  43. package/coverage/lcov-report/src/widget/context/{ReportsApiConfigContext.tsx.html → BulkExtractorContext.tsx.html} +23 -26
  44. package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +202 -0
  45. package/coverage/lcov-report/src/widget/context/index.html +30 -15
  46. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  47. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +11 -11
  48. package/coverage/lcov-report/src/widget/index.html +13 -13
  49. package/coverage/lcov.info +1036 -1034
  50. package/jest.config.js +1 -0
  51. package/lib/cjs/ReportsConfigWidget.js +1 -1
  52. package/lib/cjs/ReportsConfigWidget.js.map +1 -1
  53. package/lib/cjs/reports-config-widget-react.d.ts +5 -0
  54. package/lib/cjs/reports-config-widget-react.d.ts.map +1 -1
  55. package/lib/cjs/reports-config-widget-react.js +11 -0
  56. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  57. package/lib/cjs/test/AddMappingModal.test.js +20 -34
  58. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  59. package/lib/cjs/test/BulkExtractor.test.js +13 -19
  60. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  61. package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -1
  62. package/lib/cjs/test/DeleteModal.test.js +4 -62
  63. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  64. package/lib/cjs/test/ReportAction.test.js +14 -79
  65. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  66. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +20 -54
  67. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  68. package/lib/cjs/test/ReportMappings.test.d.ts.map +1 -1
  69. package/lib/cjs/test/ReportMappings.test.js +51 -106
  70. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  71. package/lib/cjs/test/Reports.test.js +41 -96
  72. package/lib/cjs/test/Reports.test.js.map +1 -1
  73. package/lib/cjs/test/WidgetHeader.test.js +9 -3
  74. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  75. package/lib/cjs/test/test-utils.d.ts +3 -8
  76. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  77. package/lib/cjs/test/test-utils.js +6 -34
  78. package/lib/cjs/test/test-utils.js.map +1 -1
  79. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  80. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +3 -3
  81. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  82. package/lib/cjs/widget/ReportsConfigUiProvider.js +5 -7
  83. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  84. package/lib/cjs/widget/components/ActionPanel.d.ts +3 -3
  85. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  86. package/lib/cjs/widget/components/ActionPanel.js +4 -4
  87. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  88. package/lib/cjs/widget/components/ActionPanel.scss +2 -3
  89. package/lib/cjs/widget/components/AddMappingsModal.d.ts +4 -4
  90. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  91. package/lib/cjs/widget/components/AddMappingsModal.js +39 -43
  92. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  93. package/lib/cjs/widget/components/AddMappingsModal.scss +1 -2
  94. package/lib/cjs/widget/components/BulkExtractor.d.ts +4 -4
  95. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  96. package/lib/cjs/widget/components/BulkExtractor.js +8 -8
  97. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  98. package/lib/cjs/widget/components/DeleteModal.d.ts +4 -5
  99. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  100. package/lib/cjs/widget/components/DeleteModal.js +11 -15
  101. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  102. package/lib/cjs/widget/components/DeleteModal.scss +2 -3
  103. package/lib/cjs/widget/components/ExtractionStatus.js +2 -2
  104. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  105. package/lib/cjs/widget/components/ExtractionStatus.scss +6 -7
  106. package/lib/cjs/widget/components/HorizontalTile.js +2 -2
  107. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  108. package/lib/cjs/widget/components/HorizontalTile.scss +11 -14
  109. package/lib/cjs/widget/components/LocalizedTablePaginator.js +2 -2
  110. package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
  111. package/lib/cjs/widget/components/ReportAction.d.ts +4 -5
  112. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  113. package/lib/cjs/widget/components/ReportAction.js +24 -26
  114. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  115. package/lib/cjs/widget/components/ReportAction.scss +1 -2
  116. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +4 -4
  117. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  118. package/lib/cjs/widget/components/ReportHorizontalTile.js +33 -20
  119. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  120. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
  121. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  122. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +36 -21
  123. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  124. package/lib/cjs/widget/components/ReportMappings.d.ts +4 -6
  125. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  126. package/lib/cjs/widget/components/ReportMappings.js +50 -63
  127. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  128. package/lib/cjs/widget/components/ReportMappings.scss +10 -11
  129. package/lib/cjs/widget/components/Reports.d.ts +6 -1
  130. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  131. package/lib/cjs/widget/components/Reports.js +53 -94
  132. package/lib/cjs/widget/components/Reports.js.map +1 -1
  133. package/lib/cjs/widget/components/Reports.scss +15 -15
  134. package/lib/cjs/widget/components/ReportsConfigContext.d.ts +18 -0
  135. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -0
  136. package/lib/cjs/widget/components/ReportsConfigContext.js +79 -0
  137. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -0
  138. package/lib/cjs/widget/components/ReportsContainer.d.ts +14 -0
  139. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  140. package/lib/cjs/widget/components/ReportsContainer.js +27 -16
  141. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  142. package/lib/cjs/widget/components/ReportsContainer.scss +1 -3
  143. package/lib/cjs/widget/components/ReportsHeader.d.ts +7 -0
  144. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -0
  145. package/lib/cjs/widget/components/ReportsHeader.js +20 -0
  146. package/lib/cjs/widget/components/ReportsHeader.js.map +1 -0
  147. package/lib/cjs/widget/components/ReportsRouter.d.ts +8 -0
  148. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -0
  149. package/lib/cjs/widget/components/ReportsRouter.js +51 -0
  150. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -0
  151. package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
  152. package/lib/cjs/widget/components/SearchBar.js +4 -5
  153. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  154. package/lib/cjs/widget/components/SearchBar.scss +1 -2
  155. package/lib/cjs/widget/components/SelectIModel.d.ts +3 -3
  156. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  157. package/lib/cjs/widget/components/SelectIModel.js +10 -30
  158. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  159. package/lib/cjs/widget/components/SelectIModel.scss +2 -3
  160. package/lib/cjs/widget/components/utils.d.ts +1 -1
  161. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  162. package/lib/cjs/widget/components/utils.js +1 -1
  163. package/lib/cjs/widget/components/utils.js.map +1 -1
  164. package/lib/cjs/widget/components/utils.scss +16 -8
  165. package/lib/cjs/widget/context/BulkExtractorContext.d.ts +10 -0
  166. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -0
  167. package/lib/cjs/widget/context/{ReportsApiConfigContext.js → BulkExtractorContext.js} +7 -10
  168. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -0
  169. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +16 -0
  170. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
  171. package/lib/cjs/widget/context/ReportsConfigApiContext.js +43 -0
  172. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -0
  173. package/lib/cjs/widget/hooks/useValidator.js +1 -1
  174. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  175. package/lib/esm/ReportsConfigWidget.js +1 -1
  176. package/lib/esm/ReportsConfigWidget.js.map +1 -1
  177. package/lib/esm/reports-config-widget-react.d.ts +5 -0
  178. package/lib/esm/reports-config-widget-react.d.ts.map +1 -1
  179. package/lib/esm/reports-config-widget-react.js +5 -0
  180. package/lib/esm/reports-config-widget-react.js.map +1 -1
  181. package/lib/esm/test/AddMappingModal.test.js +17 -31
  182. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  183. package/lib/esm/test/BulkExtractor.test.js +14 -17
  184. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  185. package/lib/esm/test/DeleteModal.test.d.ts.map +1 -1
  186. package/lib/esm/test/DeleteModal.test.js +5 -44
  187. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  188. package/lib/esm/test/ReportAction.test.js +14 -60
  189. package/lib/esm/test/ReportAction.test.js.map +1 -1
  190. package/lib/esm/test/ReportMappingHorizontalTile.test.js +4 -38
  191. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  192. package/lib/esm/test/ReportMappings.test.d.ts.map +1 -1
  193. package/lib/esm/test/ReportMappings.test.js +43 -98
  194. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  195. package/lib/esm/test/Reports.test.js +24 -60
  196. package/lib/esm/test/Reports.test.js.map +1 -1
  197. package/lib/esm/test/WidgetHeader.test.js +8 -2
  198. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  199. package/lib/esm/test/test-utils.d.ts +3 -8
  200. package/lib/esm/test/test-utils.d.ts.map +1 -1
  201. package/lib/esm/test/test-utils.js +4 -31
  202. package/lib/esm/test/test-utils.js.map +1 -1
  203. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  204. package/lib/esm/widget/ReportsConfigUiProvider.d.ts +3 -3
  205. package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  206. package/lib/esm/widget/ReportsConfigUiProvider.js +2 -4
  207. package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
  208. package/lib/esm/widget/components/ActionPanel.d.ts +3 -3
  209. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  210. package/lib/esm/widget/components/ActionPanel.js +4 -4
  211. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  212. package/lib/esm/widget/components/ActionPanel.scss +2 -3
  213. package/lib/esm/widget/components/AddMappingsModal.d.ts +4 -4
  214. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  215. package/lib/esm/widget/components/AddMappingsModal.js +35 -39
  216. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  217. package/lib/esm/widget/components/AddMappingsModal.scss +1 -2
  218. package/lib/esm/widget/components/BulkExtractor.d.ts +4 -4
  219. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  220. package/lib/esm/widget/components/BulkExtractor.js +7 -8
  221. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  222. package/lib/esm/widget/components/DeleteModal.d.ts +4 -5
  223. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  224. package/lib/esm/widget/components/DeleteModal.js +11 -15
  225. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  226. package/lib/esm/widget/components/DeleteModal.scss +2 -3
  227. package/lib/esm/widget/components/ExtractionStatus.scss +6 -7
  228. package/lib/esm/widget/components/HorizontalTile.scss +11 -14
  229. package/lib/esm/widget/components/ReportAction.d.ts +4 -5
  230. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  231. package/lib/esm/widget/components/ReportAction.js +17 -21
  232. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  233. package/lib/esm/widget/components/ReportAction.scss +1 -2
  234. package/lib/esm/widget/components/ReportHorizontalTile.d.ts +4 -4
  235. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  236. package/lib/esm/widget/components/ReportHorizontalTile.js +6 -9
  237. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  238. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
  239. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  240. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +12 -13
  241. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  242. package/lib/esm/widget/components/ReportMappings.d.ts +4 -6
  243. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  244. package/lib/esm/widget/components/ReportMappings.js +43 -56
  245. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  246. package/lib/esm/widget/components/ReportMappings.scss +10 -11
  247. package/lib/esm/widget/components/Reports.d.ts +6 -1
  248. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  249. package/lib/esm/widget/components/Reports.js +46 -87
  250. package/lib/esm/widget/components/Reports.js.map +1 -1
  251. package/lib/esm/widget/components/Reports.scss +15 -15
  252. package/lib/esm/widget/components/ReportsConfigContext.d.ts +18 -0
  253. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -0
  254. package/lib/esm/widget/components/ReportsConfigContext.js +56 -0
  255. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -0
  256. package/lib/esm/widget/components/ReportsContainer.d.ts +14 -0
  257. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  258. package/lib/esm/widget/components/ReportsContainer.js +27 -17
  259. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  260. package/lib/esm/widget/components/ReportsContainer.scss +1 -3
  261. package/lib/esm/widget/components/ReportsHeader.d.ts +7 -0
  262. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -0
  263. package/lib/esm/widget/components/ReportsHeader.js +13 -0
  264. package/lib/esm/widget/components/ReportsHeader.js.map +1 -0
  265. package/lib/esm/widget/components/ReportsRouter.d.ts +8 -0
  266. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -0
  267. package/lib/esm/widget/components/ReportsRouter.js +44 -0
  268. package/lib/esm/widget/components/ReportsRouter.js.map +1 -0
  269. package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
  270. package/lib/esm/widget/components/SearchBar.js +2 -3
  271. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  272. package/lib/esm/widget/components/SearchBar.scss +1 -2
  273. package/lib/esm/widget/components/SelectIModel.d.ts +3 -3
  274. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  275. package/lib/esm/widget/components/SelectIModel.js +7 -27
  276. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  277. package/lib/esm/widget/components/SelectIModel.scss +2 -3
  278. package/lib/esm/widget/components/utils.d.ts +1 -1
  279. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  280. package/lib/esm/widget/components/utils.js +2 -2
  281. package/lib/esm/widget/components/utils.js.map +1 -1
  282. package/lib/esm/widget/components/utils.scss +16 -8
  283. package/lib/esm/widget/context/BulkExtractorContext.d.ts +10 -0
  284. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -0
  285. package/lib/esm/widget/context/BulkExtractorContext.js +11 -0
  286. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -0
  287. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +16 -0
  288. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
  289. package/lib/esm/widget/context/ReportsConfigApiContext.js +20 -0
  290. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -0
  291. package/lib/public/locales/en/ReportsConfigWidget.json +6 -1
  292. package/package.json +29 -29
  293. package/public/locales/en/ReportsConfigWidget.json +6 -1
  294. package/reports-config-widget-react.build.error.log +6 -6
  295. package/reports-config-widget-react.build.log +52 -49
  296. package/src/reports-config-widget-react.ts +6 -0
  297. package/src/test/AddMappingModal.test.tsx +20 -37
  298. package/src/test/BulkExtractor.test.ts +15 -17
  299. package/src/test/DeleteModal.test.tsx +4 -73
  300. package/src/test/ReportAction.test.tsx +17 -90
  301. package/src/test/ReportMappingHorizontalTile.test.tsx +3 -54
  302. package/src/test/ReportMappings.test.tsx +50 -135
  303. package/src/test/Reports.test.tsx +21 -80
  304. package/src/test/WidgetHeader.test.tsx +9 -2
  305. package/src/test/test-utils.tsx +9 -49
  306. package/src/widget/ReportsConfigUiProvider.tsx +7 -14
  307. package/src/widget/components/ActionPanel.scss +2 -3
  308. package/src/widget/components/ActionPanel.tsx +17 -15
  309. package/src/widget/components/AddMappingsModal.scss +1 -2
  310. package/src/widget/components/AddMappingsModal.tsx +55 -60
  311. package/src/widget/components/BulkExtractor.ts +11 -10
  312. package/src/widget/components/DeleteModal.scss +2 -3
  313. package/src/widget/components/DeleteModal.tsx +17 -23
  314. package/src/widget/components/ExtractionStatus.scss +6 -7
  315. package/src/widget/components/HorizontalTile.scss +11 -14
  316. package/src/widget/components/ReportAction.scss +1 -2
  317. package/src/widget/components/ReportAction.tsx +18 -33
  318. package/src/widget/components/ReportHorizontalTile.tsx +11 -12
  319. package/src/widget/components/ReportMappingHorizontalTile.tsx +30 -30
  320. package/src/widget/components/ReportMappings.scss +10 -11
  321. package/src/widget/components/ReportMappings.tsx +67 -72
  322. package/src/widget/components/Reports.scss +15 -15
  323. package/src/widget/components/Reports.tsx +140 -181
  324. package/src/widget/components/ReportsConfigContext.tsx +95 -0
  325. package/src/widget/components/ReportsContainer.scss +1 -3
  326. package/src/widget/components/ReportsContainer.tsx +47 -21
  327. package/src/widget/components/ReportsHeader.tsx +27 -0
  328. package/src/widget/components/ReportsRouter.tsx +63 -0
  329. package/src/widget/components/SearchBar.scss +1 -2
  330. package/src/widget/components/SearchBar.tsx +7 -2
  331. package/src/widget/components/SelectIModel.scss +2 -3
  332. package/src/widget/components/SelectIModel.tsx +11 -29
  333. package/src/widget/components/utils.scss +16 -8
  334. package/src/widget/components/utils.tsx +8 -7
  335. package/src/widget/context/{ReportsApiConfigContext.tsx → BulkExtractorContext.tsx} +9 -10
  336. package/src/widget/context/ReportsConfigApiContext.tsx +39 -0
  337. package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts +0 -9
  338. package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
  339. package/lib/cjs/widget/context/ReportsApiConfigContext.js.map +0 -1
  340. package/lib/esm/widget/context/ReportsApiConfigContext.d.ts +0 -9
  341. package/lib/esm/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
  342. package/lib/esm/widget/context/ReportsApiConfigContext.js +0 -14
  343. package/lib/esm/widget/context/ReportsApiConfigContext.js.map +0 -1
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import BulkExtractor from "../widget/components/BulkExtractor";
5
+ import { BulkExtractor } from "../widget/components/BulkExtractor";
6
6
  import { ExtractionStates } from "../widget/components/ExtractionStatus";
7
7
  import { assert } from "chai";
8
8
  import * as moq from "typemoq";
9
- import { ExtractorState } from "@itwin/insights-client";
9
+ import { ExtractionClient, ExtractorState, ReportsClient } from "@itwin/insights-client";
10
10
  import type { AccessToken } from "@itwin/core-bentley";
11
11
 
12
12
  jest.mock("../widget/components/Constants.ts", () => ({
@@ -40,6 +40,8 @@ afterEach(() => {
40
40
 
41
41
  const mockToastCallback = jest.fn();
42
42
 
43
+ const mockGetAccessToken = async () => "mockAccessToken";
44
+
43
45
  const mockIModelId = "mockIModelId";
44
46
  const mockIModelId1 = "mockIModelId1";
45
47
  const mockReportId = "mockReportId";
@@ -47,13 +49,9 @@ const mockRunId = "mockRunId";
47
49
  const mockRunId1 = "mockRunId1";
48
50
 
49
51
  describe("BulkExtractor", () => {
50
- const mockApiConfig = {
51
- getAccessToken: async () => "mockAccessToken",
52
- baseUrl: "",
53
- };
54
52
 
55
53
  it("should return status none for unknown iModel", async () => {
56
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
54
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
57
55
  const result = await sut.getIModelState(mockIModelId, "", "");
58
56
  assert.strictEqual(result, ExtractionStates.None);
59
57
  });
@@ -67,7 +65,7 @@ describe("BulkExtractor", () => {
67
65
  async () => ({ state: ExtractorState.Running })
68
66
  );
69
67
 
70
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
68
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
71
69
  await sut.runIModelExtraction(mockIModelId);
72
70
  const result = await sut.getIModelState(mockIModelId, "", "");
73
71
  assert.strictEqual(result, ExtractionStates.Running);
@@ -82,7 +80,7 @@ describe("BulkExtractor", () => {
82
80
  async () => ({ state: ExtractorState.Failed })
83
81
  );
84
82
 
85
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
83
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
86
84
  await sut.runIModelExtraction(mockIModelId);
87
85
  const result = await sut.getIModelState(mockIModelId, "", "");
88
86
  assert.strictEqual(result, ExtractionStates.Failed);
@@ -105,7 +103,7 @@ describe("BulkExtractor", () => {
105
103
  async () => ({ state: ExtractorState.Succeeded })
106
104
  );
107
105
 
108
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
106
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
109
107
  await sut.runIModelExtraction(mockIModelId);
110
108
 
111
109
  let result = await sut.getIModelState(mockIModelId, "", "");
@@ -137,7 +135,7 @@ describe("BulkExtractor", () => {
137
135
  async () => ({ state: ExtractorState.Queued })
138
136
  );
139
137
 
140
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
138
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
141
139
 
142
140
  await sut.runIModelExtractions(mockIModelIds);
143
141
 
@@ -149,7 +147,7 @@ describe("BulkExtractor", () => {
149
147
  });
150
148
 
151
149
  it("should return status none for unknown report", async () => {
152
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
150
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
153
151
  const result = await sut.getReportState(mockReportId);
154
152
  assert.strictEqual(result, ExtractionStates.None);
155
153
  });
@@ -167,7 +165,7 @@ describe("BulkExtractor", () => {
167
165
  async () => ([{ imodelId: mockIModelId }])
168
166
  );
169
167
 
170
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
168
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
171
169
 
172
170
  await sut.runReportExtractions([mockReportId]);
173
171
 
@@ -196,7 +194,7 @@ describe("BulkExtractor", () => {
196
194
  async () => ([{ imodelId: mockIModelId }, { imodelId: mockIModelId1 }])
197
195
  );
198
196
 
199
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
197
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
200
198
 
201
199
  await sut.runReportExtractions([mockReportId]);
202
200
 
@@ -228,7 +226,7 @@ describe("BulkExtractor", () => {
228
226
  async () => ([{ imodelId: mockIModelId }, { imodelId: mockIModelId1 }])
229
227
  );
230
228
 
231
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
229
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
232
230
 
233
231
  await sut.runReportExtractions([mockReportId]);
234
232
 
@@ -257,7 +255,7 @@ describe("BulkExtractor", () => {
257
255
  async () => ([{ imodelId: mockIModelId1 }, { imodelId: mockIModelId1 }])
258
256
  );
259
257
 
260
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
258
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
261
259
 
262
260
  await sut.runReportExtractions([mockReportId]);
263
261
 
@@ -286,7 +284,7 @@ describe("BulkExtractor", () => {
286
284
  async () => ([{ imodelId: mockIModelId }])
287
285
  );
288
286
 
289
- const sut = new BulkExtractor(mockApiConfig, mockToastCallback, mockToastCallback);
287
+ const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
290
288
  await sut.runReportExtractions([mockReportId]);
291
289
 
292
290
  let result = await sut.getReportState(mockReportId);
@@ -3,67 +3,18 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
- import faker from "@faker-js/faker";
7
6
  import "@testing-library/jest-dom";
8
- import type {
9
- IModelConnection,
10
- SelectionSet,
11
- SelectionSetEvent,
12
- } from "@itwin/core-frontend";
13
- import { NoRenderApp } from "@itwin/core-frontend";
14
7
  import {
15
8
  render,
16
9
  screen,
17
- TestUtils,
18
10
  } from "./test-utils";
19
- import * as moq from "typemoq";
20
- import type {
21
- SelectionManager,
22
- SelectionScopesManager,
23
- } from "@itwin/presentation-frontend";
24
- import {
25
- Presentation,
26
- SelectionChangeEvent,
27
- } from "@itwin/presentation-frontend";
28
- import type { BeEvent } from "@itwin/core-bentley";
29
11
  import DeleteModal from "../widget/components/DeleteModal";
30
12
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
31
13
  import { EmptyLocalization } from "@itwin/core-common";
32
14
 
33
- const mockITwinId = faker.datatype.uuid();
34
- const mockIModelId1 = faker.datatype.uuid();
35
-
36
- const connectionMock = moq.Mock.ofType<IModelConnection>();
37
- const selectionManagerMock = moq.Mock.ofType<SelectionManager>();
38
- const selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();
39
-
40
15
  beforeAll(async () => {
41
- await NoRenderApp.startup({localization: new EmptyLocalization()});
42
- await Presentation.initialize();
43
- const selectionSet = moq.Mock.ofType<SelectionSet>();
44
- const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();
45
- selectionSet.setup((x) => x.elements).returns(() => new Set([]));
46
- selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
47
- connectionMock
48
- .setup((x) => x.selectionSet)
49
- .returns(() => selectionSet.object);
50
- connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId1);
51
- connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
52
-
53
- selectionManagerMock
54
- .setup((x) => x.selectionChange)
55
- .returns(() => new SelectionChangeEvent());
56
-
57
- selectionScopesManagerMock
58
- .setup(async (x) => x.getSelectionScopes(connectionMock.object))
59
- .returns(async () => []);
60
- selectionManagerMock
61
- .setup((x) => x.scopes)
62
- .returns(() => selectionScopesManagerMock.object);
63
-
64
- Presentation.setSelectionManager(selectionManagerMock.object);
65
- await TestUtils.initializeUiFramework(connectionMock.object);
66
- await ReportsConfigWidget.initialize();
16
+ const localization = new EmptyLocalization();
17
+ await ReportsConfigWidget.initialize(localization);
67
18
  });
68
19
 
69
20
  describe("Delete modal", () => {
@@ -71,10 +22,9 @@ describe("Delete modal", () => {
71
22
  const { container } = render(
72
23
  <DeleteModal
73
24
  entityName="test"
74
- show={true}
75
- setShow={jest.fn()}
76
25
  onDelete={jest.fn()}
77
26
  refresh={jest.fn()}
27
+ onClose={jest.fn()}
78
28
  />
79
29
  );
80
30
  expect(container).toBeTruthy();
@@ -85,10 +35,9 @@ describe("Delete modal", () => {
85
35
  const { user } = render(
86
36
  <DeleteModal
87
37
  entityName="test"
88
- show={true}
89
- setShow={jest.fn()}
90
38
  onDelete={onDelete}
91
39
  refresh={jest.fn()}
40
+ onClose={jest.fn()}
92
41
  />
93
42
  );
94
43
  const deleteButton = screen.getByRole("button", {
@@ -97,22 +46,4 @@ describe("Delete modal", () => {
97
46
  await user.click(deleteButton);
98
47
  expect(onDelete).toHaveBeenCalled();
99
48
  });
100
-
101
- it("should call setShow when cancel button is clicked", async () => {
102
- const setShow = jest.fn();
103
- const { user } = render(
104
- <DeleteModal
105
- entityName="test"
106
- show={true}
107
- setShow={setShow}
108
- onDelete={jest.fn()}
109
- refresh={jest.fn()}
110
- />
111
- );
112
- const cancelButton = screen.getByRole("button", {
113
- name: /cancel/i,
114
- });
115
- await user.click(cancelButton);
116
- expect(setShow).toHaveBeenCalled();
117
- });
118
49
  });
@@ -5,97 +5,28 @@
5
5
  import React from "react";
6
6
  import faker from "@faker-js/faker";
7
7
  import "@testing-library/jest-dom";
8
- import type {
9
- IModelConnection,
10
- SelectionSet,
11
- SelectionSetEvent,
12
- } from "@itwin/core-frontend";
13
- import { NoRenderApp } from "@itwin/core-frontend";
14
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
15
- import { setupServer } from "msw/node";
16
9
  import {
17
10
  render,
18
11
  screen,
19
- TestUtils,
20
12
  waitForElementToBeRemoved,
21
13
  } from "./test-utils";
22
- import ReportAction from "../widget/components/ReportAction";
14
+ import { ReportAction } from "../widget/components/ReportAction";
23
15
  import userEvent from "@testing-library/user-event";
24
- import { rest } from "msw";
25
- import type { Report } from "@itwin/insights-client";
26
- import * as moq from "typemoq";
27
- import { REPORTS_CONFIG_BASE_URL } from "../widget/ReportsConfigUiProvider";
28
- import type {
29
- SelectionManager,
30
- SelectionScopesManager,
31
- } from "@itwin/presentation-frontend";
32
- import {
33
- Presentation,
34
- SelectionChangeEvent,
35
- } from "@itwin/presentation-frontend";
36
- import type { BeEvent } from "@itwin/core-bentley";
37
16
  import { EmptyLocalization } from "@itwin/core-common";
38
-
39
- const mockITwinId = faker.datatype.uuid();
40
- const mockIModelId = faker.datatype.uuid();
41
-
42
- const connectionMock = moq.Mock.ofType<IModelConnection>();
43
- const selectionManagerMock = moq.Mock.ofType<SelectionManager>();
44
- const selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();
45
-
46
- jest.mock("../widget/components/ReportMappings", () => ({
47
- ReportMappings: () => "MockReportMappings",
48
- }));
49
-
50
- jest.mock("@itwin/appui-react", () => ({
51
- ...jest.requireActual("@itwin/appui-react"),
52
- useActiveIModelConnection: () => connectionMock.object,
53
- }));
54
-
55
- const server = setupServer();
17
+ import type { Report } from "@itwin/insights-client";
18
+ import { ReportsClient } from "@itwin/insights-client";
56
19
 
57
20
  beforeAll(async () => {
58
- await NoRenderApp.startup({localization: new EmptyLocalization()});
59
- await Presentation.initialize();
60
- const selectionSet = moq.Mock.ofType<SelectionSet>();
61
- const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();
62
- selectionSet.setup((x) => x.elements).returns(() => new Set([]));
63
- selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
64
- connectionMock
65
- .setup((x) => x.selectionSet)
66
- .returns(() => selectionSet.object);
67
- connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);
68
- connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
69
-
70
- selectionManagerMock
71
- .setup((x) => x.selectionChange)
72
- .returns(() => new SelectionChangeEvent());
73
-
74
- selectionScopesManagerMock
75
- .setup(async (x) => x.getSelectionScopes(connectionMock.object))
76
- .returns(async () => []);
77
- selectionManagerMock
78
- .setup((x) => x.scopes)
79
- .returns(() => selectionScopesManagerMock.object);
80
-
81
- Presentation.setSelectionManager(selectionManagerMock.object);
82
- await TestUtils.initializeUiFramework(connectionMock.object);
83
- await ReportsConfigWidget.initialize();
84
- server.listen();
85
- });
86
-
87
- afterAll(() => {
88
- TestUtils.terminateUiFramework();
89
- server.close();
21
+ const localization = new EmptyLocalization();
22
+ await ReportsConfigWidget.initialize(localization);
90
23
  });
91
24
 
92
- afterEach(() => server.resetHandlers());
93
-
94
25
  describe("Reports Action", () => {
95
26
  it("required fields should be filled out", async () => {
96
27
  const mockReturnFn = jest.fn();
97
28
 
98
- render(<ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />);
29
+ render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
99
30
 
100
31
  const addButton = screen.getByRole("button", {
101
32
  name: /add/i,
@@ -109,6 +40,7 @@ describe("Reports Action", () => {
109
40
  });
110
41
 
111
42
  it("should be able to add report", async () => {
43
+ const mockReturnFn = jest.fn();
112
44
  const mockReport: Report = {
113
45
  id: faker.datatype.uuid(),
114
46
  displayName: "mOcKRePoRt1",
@@ -120,21 +52,16 @@ describe("Reports Action", () => {
120
52
  },
121
53
  },
122
54
  };
123
- server.use(
124
- rest.post(
125
- `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,
126
- async (_req, res, ctx) => {
127
- return res(ctx.delay(400), ctx.status(200), ctx.json(mockReport));
128
- }
129
- )
130
- );
131
55
 
132
- const mockReturnFn = jest.fn();
56
+ const reportsClient = new ReportsClient();
133
57
 
134
- const { user } = render(
135
- <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />
58
+ jest.spyOn(reportsClient, "createReport").mockImplementation(async () =>
59
+ new Promise((resolve) => setTimeout(() => { resolve(mockReport); }, 100))
136
60
  );
137
61
 
62
+ const { user } = render(
63
+ <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });
64
+
138
65
  const addButton = screen.getByRole("button", {
139
66
  name: /add/i,
140
67
  });
@@ -170,7 +97,7 @@ describe("Reports Action", () => {
170
97
  const mockReturnFn = jest.fn();
171
98
 
172
99
  const { user } = render(
173
- <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />
100
+ <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
174
101
  );
175
102
 
176
103
  const addButton = screen.getByRole("button", {
@@ -192,7 +119,7 @@ describe("Reports Action", () => {
192
119
  const mockReturnFn = jest.fn();
193
120
 
194
121
  const { user } = render(
195
- <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />
122
+ <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
196
123
  );
197
124
 
198
125
  const addButton = screen.getByRole("button", {
@@ -214,7 +141,7 @@ describe("Reports Action", () => {
214
141
  const mockReturnFn = jest.fn();
215
142
 
216
143
  const { user } = render(
217
- <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />
144
+ <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
218
145
  );
219
146
 
220
147
  const addButton = screen.getByRole("button", {
@@ -238,7 +165,7 @@ describe("Reports Action", () => {
238
165
  const mockReturnFn = jest.fn();
239
166
 
240
167
  const { user } = render(
241
- <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />
168
+ <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
242
169
  );
243
170
 
244
171
  const addButton = screen.getByRole("button", {
@@ -5,18 +5,11 @@
5
5
  import React from "react";
6
6
  import faker from "@faker-js/faker";
7
7
  import "@testing-library/jest-dom";
8
- import type {
9
- IModelConnection,
10
- SelectionSet,
11
- SelectionSetEvent,
12
- } from "@itwin/core-frontend";
13
- import { NoRenderApp } from "@itwin/core-frontend";
14
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
15
9
  import {
16
10
  fireEvent,
17
11
  render,
18
12
  screen,
19
- TestUtils,
20
13
  waitFor,
21
14
  within,
22
15
  } from "./test-utils";
@@ -28,19 +21,11 @@ import type {
28
21
  import type { ReportMappingAndMapping } from "../widget/components/ReportMappings";
29
22
  import type { GetSingleIModelParams, IModelOperations, OperationOptions } from "@itwin/imodels-client-management";
30
23
  import { IModelState } from "@itwin/imodels-client-management";
31
- import type {
32
- SelectionManager,
33
- SelectionScopesManager,
34
- } from "@itwin/presentation-frontend";
35
- import {
36
- Presentation,
37
- SelectionChangeEvent,
38
- } from "@itwin/presentation-frontend";
39
24
  import { BeEvent } from "@itwin/core-bentley";
40
- import type BulkExtractor from "../widget/components/BulkExtractor";
41
25
  import { ExtractionStates } from "../widget/components/ExtractionStatus";
42
26
  import { ReportMappingHorizontalTile } from "../widget/components/ReportMappingHorizontalTile";
43
27
  import { EmptyLocalization } from "@itwin/core-common";
28
+ import type { BulkExtractor } from "../widget/components/BulkExtractor";
44
29
 
45
30
  const mockITwinId = faker.datatype.uuid();
46
31
  // Lets work with two iModels for now.
@@ -202,54 +187,18 @@ const mockReportMappingsAndMappingsFactory = (): ReportMappingAndMapping[] => {
202
187
  return reportMappingsAndMapping;
203
188
  };
204
189
 
205
- const connectionMock = moq.Mock.ofType<IModelConnection>();
206
190
  const mockBulkExtractor = moq.Mock.ofType<BulkExtractor>();
207
- const selectionManagerMock = moq.Mock.ofType<SelectionManager>();
208
- const selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();
209
191
  const mockIModelsClient = moq.Mock.ofType<IModelOperations<OperationOptions>>();
210
192
 
211
193
  jest.mock("../widget/components/Constants.ts", () => ({
212
194
  STATUS_CHECK_INTERVAL: 10,
213
195
  }));
214
196
 
215
- jest.mock("@itwin/appui-react", () => ({
216
- ...jest.requireActual("@itwin/appui-react"),
217
- useActiveIModelConnection: () => connectionMock.object,
218
- }));
219
-
220
197
  const mockOdataFeedUrl = "mockOdataFeedUrl";
221
198
 
222
199
  beforeAll(async () => {
223
- await NoRenderApp.startup({localization: new EmptyLocalization()});
224
- await Presentation.initialize();
225
- const selectionSet = moq.Mock.ofType<SelectionSet>();
226
- const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();
227
- selectionSet.setup((x) => x.elements).returns(() => new Set([]));
228
- selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
229
- connectionMock
230
- .setup((x) => x.selectionSet)
231
- .returns(() => selectionSet.object);
232
- connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId1);
233
- connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
234
-
235
- selectionManagerMock
236
- .setup((x) => x.selectionChange)
237
- .returns(() => new SelectionChangeEvent());
238
-
239
- selectionScopesManagerMock
240
- .setup(async (x) => x.getSelectionScopes(connectionMock.object))
241
- .returns(async () => []);
242
- selectionManagerMock
243
- .setup((x) => x.scopes)
244
- .returns(() => selectionScopesManagerMock.object);
245
-
246
- Presentation.setSelectionManager(selectionManagerMock.object);
247
- await TestUtils.initializeUiFramework(connectionMock.object);
248
- await ReportsConfigWidget.initialize();
249
- });
250
-
251
- afterAll(() => {
252
- TestUtils.terminateUiFramework();
200
+ const localization = new EmptyLocalization();
201
+ await ReportsConfigWidget.initialize(localization);
253
202
  });
254
203
 
255
204
  afterEach(() => {