@itwin/reports-config-widget-react 0.5.0 → 0.6.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 (380) hide show
  1. package/CHANGELOG.json +47 -1
  2. package/CHANGELOG.md +14 -2
  3. package/LICENSE.md +9 -9
  4. package/README.md +38 -38
  5. package/__mocks__/fileMock.js +4 -4
  6. package/api/reports-config-widget-react.api.md +130 -0
  7. package/api/reports-config-widget-react.exports.csv +14 -0
  8. package/api/temp/reports-config-widget-react.api.md +130 -0
  9. package/coverage/clover.xml +505 -504
  10. package/coverage/coverage-final.json +32 -32
  11. package/coverage/lcov-report/index.html +24 -24
  12. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +15 -15
  13. package/coverage/lcov-report/src/index.html +1 -1
  14. package/coverage/lcov-report/src/test/index.html +11 -11
  15. package/coverage/lcov-report/src/test/test-utils.tsx.html +46 -16
  16. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +22 -64
  17. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +5 -38
  18. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +23 -119
  19. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +117 -90
  20. package/coverage/lcov-report/src/widget/components/Constants.ts.html +5 -5
  21. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +13 -103
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +6 -21
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +6 -21
  24. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +7 -22
  25. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +7 -28
  26. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +6 -21
  27. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +1 -1
  28. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +20 -47
  29. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +20 -11
  30. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +16 -79
  31. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +15 -108
  32. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +36 -75
  33. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +62 -92
  34. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +104 -128
  35. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +86 -299
  36. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +40 -202
  37. package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +59 -44
  38. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +10 -49
  39. package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +8 -47
  40. package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +6 -12
  41. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +13 -25
  42. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +11 -56
  43. package/coverage/lcov-report/src/widget/components/index.html +50 -50
  44. package/coverage/lcov-report/src/widget/components/utils.tsx.html +25 -169
  45. package/coverage/lcov-report/src/widget/context/BulkExtractorContext.tsx.html +6 -12
  46. package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +6 -12
  47. package/coverage/lcov-report/src/widget/context/index.html +1 -1
  48. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  49. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +12 -54
  50. package/coverage/lcov-report/src/widget/index.html +1 -1
  51. package/coverage/lcov.info +917 -893
  52. package/jest.config.js +14 -17
  53. package/lib/cjs/ReportsConfigWidget.d.ts +4 -0
  54. package/lib/cjs/ReportsConfigWidget.d.ts.map +1 -1
  55. package/lib/cjs/ReportsConfigWidget.js +4 -0
  56. package/lib/cjs/ReportsConfigWidget.js.map +1 -1
  57. package/lib/cjs/reports-config-widget-react.js +3 -3
  58. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  59. package/lib/cjs/test/AddMappingModal.test.js +11 -10
  60. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  61. package/lib/cjs/test/BulkExtractor.test.js +68 -43
  62. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  63. package/lib/cjs/test/DeleteModal.test.js +3 -3
  64. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  65. package/lib/cjs/test/ReportAction.test.js +6 -4
  66. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  67. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +64 -25
  68. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  69. package/lib/cjs/test/ReportMappings.test.js +39 -18
  70. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  71. package/lib/cjs/test/Reports.test.js +3 -3
  72. package/lib/cjs/test/Reports.test.js.map +1 -1
  73. package/lib/cjs/test/WidgetHeader.test.js +3 -3
  74. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  75. package/lib/cjs/test/test-utils.d.ts +8 -0
  76. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  77. package/lib/cjs/test/test-utils.js +16 -4
  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 +7 -0
  81. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  82. package/lib/cjs/widget/ReportsConfigUiProvider.js +8 -3
  83. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  84. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  85. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  86. package/lib/cjs/widget/components/AddMappingsModal.d.ts +1 -1
  87. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  88. package/lib/cjs/widget/components/AddMappingsModal.js +7 -7
  89. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  90. package/lib/cjs/widget/components/AddMappingsModal.scss +1 -1
  91. package/lib/cjs/widget/components/BulkExtractor.d.ts +7 -4
  92. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  93. package/lib/cjs/widget/components/BulkExtractor.js +52 -35
  94. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  95. package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
  96. package/lib/cjs/widget/components/Constants.js +3 -3
  97. package/lib/cjs/widget/components/Constants.js.map +1 -1
  98. package/lib/cjs/widget/components/DeleteModal.d.ts +1 -1
  99. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  100. package/lib/cjs/widget/components/DeleteModal.js +5 -5
  101. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  102. package/lib/cjs/widget/components/DeleteModal.scss +2 -2
  103. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  104. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js +3 -3
  105. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -1
  106. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  107. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js +3 -3
  108. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -1
  109. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  110. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +3 -3
  111. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
  112. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  113. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js +3 -3
  114. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -1
  115. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  116. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +3 -3
  117. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
  118. package/lib/cjs/widget/components/ExtractionStatus.d.ts +1 -1
  119. package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -1
  120. package/lib/cjs/widget/components/ExtractionStatus.js +9 -9
  121. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  122. package/lib/cjs/widget/components/ExtractionStatus.scss +1 -1
  123. package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -1
  124. package/lib/cjs/widget/components/ExtractionToast.js +3 -3
  125. package/lib/cjs/widget/components/ExtractionToast.js.map +1 -1
  126. package/lib/cjs/widget/components/HorizontalTile.d.ts.map +1 -1
  127. package/lib/cjs/widget/components/HorizontalTile.js +1 -2
  128. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  129. package/lib/cjs/widget/components/HorizontalTile.scss +1 -4
  130. package/lib/cjs/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  131. package/lib/cjs/widget/components/LocalizedTablePaginator.js +1 -1
  132. package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
  133. package/lib/cjs/widget/components/ReportAction.d.ts +8 -0
  134. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  135. package/lib/cjs/widget/components/ReportAction.js +9 -7
  136. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  137. package/lib/cjs/widget/components/ReportAction.scss +1 -1
  138. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  139. package/lib/cjs/widget/components/ReportHorizontalTile.js +4 -4
  140. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  141. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  142. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +46 -45
  143. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  144. package/lib/cjs/widget/components/ReportMappings.d.ts +8 -0
  145. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  146. package/lib/cjs/widget/components/ReportMappings.js +25 -11
  147. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  148. package/lib/cjs/widget/components/Reports.d.ts +9 -1
  149. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  150. package/lib/cjs/widget/components/Reports.js +7 -8
  151. package/lib/cjs/widget/components/Reports.js.map +1 -1
  152. package/lib/cjs/widget/components/Reports.scss +0 -1
  153. package/lib/cjs/widget/components/ReportsConfigContext.d.ts +8 -0
  154. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -1
  155. package/lib/cjs/widget/components/ReportsConfigContext.js +13 -5
  156. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
  157. package/lib/cjs/widget/components/ReportsContainer.d.ts +1 -1
  158. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  159. package/lib/cjs/widget/components/ReportsContainer.js +2 -4
  160. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  161. package/lib/cjs/widget/components/ReportsContainer.scss +1 -1
  162. package/lib/cjs/widget/components/ReportsHeader.d.ts +1 -1
  163. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -1
  164. package/lib/cjs/widget/components/ReportsHeader.js +6 -7
  165. package/lib/cjs/widget/components/ReportsHeader.js.map +1 -1
  166. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -1
  167. package/lib/cjs/widget/components/ReportsRouter.js +3 -3
  168. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
  169. package/lib/cjs/widget/components/SearchBar.d.ts +1 -1
  170. package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
  171. package/lib/cjs/widget/components/SearchBar.js +4 -4
  172. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  173. package/lib/cjs/widget/components/SelectIModel.d.ts +1 -1
  174. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  175. package/lib/cjs/widget/components/SelectIModel.js +1 -1
  176. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  177. package/lib/cjs/widget/components/SelectIModel.scss +1 -1
  178. package/lib/cjs/widget/components/utils.d.ts +1 -1
  179. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  180. package/lib/cjs/widget/components/utils.js +5 -5
  181. package/lib/cjs/widget/components/utils.js.map +1 -1
  182. package/lib/cjs/widget/components/utils.scss +1 -1
  183. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -1
  184. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
  185. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  186. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
  187. package/lib/cjs/widget/hooks/useValidator.d.ts +1 -4
  188. package/lib/cjs/widget/hooks/useValidator.d.ts.map +1 -1
  189. package/lib/cjs/widget/hooks/useValidator.js +3 -3
  190. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  191. package/lib/esm/ReportsConfigWidget.d.ts +4 -0
  192. package/lib/esm/ReportsConfigWidget.d.ts.map +1 -1
  193. package/lib/esm/ReportsConfigWidget.js +4 -0
  194. package/lib/esm/ReportsConfigWidget.js.map +1 -1
  195. package/lib/esm/reports-config-widget-react.js +3 -3
  196. package/lib/esm/reports-config-widget-react.js.map +1 -1
  197. package/lib/esm/test/AddMappingModal.test.js +12 -11
  198. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  199. package/lib/esm/test/BulkExtractor.test.js +69 -44
  200. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  201. package/lib/esm/test/DeleteModal.test.js +4 -4
  202. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  203. package/lib/esm/test/ReportAction.test.js +7 -5
  204. package/lib/esm/test/ReportAction.test.js.map +1 -1
  205. package/lib/esm/test/ReportMappingHorizontalTile.test.js +65 -26
  206. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  207. package/lib/esm/test/ReportMappings.test.js +41 -20
  208. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  209. package/lib/esm/test/Reports.test.js +4 -4
  210. package/lib/esm/test/Reports.test.js.map +1 -1
  211. package/lib/esm/test/WidgetHeader.test.js +3 -3
  212. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  213. package/lib/esm/test/test-utils.d.ts +8 -0
  214. package/lib/esm/test/test-utils.d.ts.map +1 -1
  215. package/lib/esm/test/test-utils.js +15 -3
  216. package/lib/esm/test/test-utils.js.map +1 -1
  217. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  218. package/lib/esm/widget/ReportsConfigUiProvider.d.ts +7 -0
  219. package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  220. package/lib/esm/widget/ReportsConfigUiProvider.js +9 -4
  221. package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
  222. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  223. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  224. package/lib/esm/widget/components/AddMappingsModal.d.ts +1 -1
  225. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  226. package/lib/esm/widget/components/AddMappingsModal.js +7 -7
  227. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  228. package/lib/esm/widget/components/AddMappingsModal.scss +1 -1
  229. package/lib/esm/widget/components/BulkExtractor.d.ts +7 -4
  230. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  231. package/lib/esm/widget/components/BulkExtractor.js +53 -36
  232. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  233. package/lib/esm/widget/components/Constants.d.ts.map +1 -1
  234. package/lib/esm/widget/components/Constants.js +3 -3
  235. package/lib/esm/widget/components/Constants.js.map +1 -1
  236. package/lib/esm/widget/components/DeleteModal.d.ts +1 -1
  237. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  238. package/lib/esm/widget/components/DeleteModal.js +6 -6
  239. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  240. package/lib/esm/widget/components/DeleteModal.scss +2 -2
  241. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  242. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js +3 -3
  243. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -1
  244. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  245. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js +3 -3
  246. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -1
  247. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  248. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +3 -3
  249. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
  250. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  251. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js +3 -3
  252. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -1
  253. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  254. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +3 -3
  255. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
  256. package/lib/esm/widget/components/ExtractionStatus.d.ts +1 -1
  257. package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -1
  258. package/lib/esm/widget/components/ExtractionStatus.js +9 -9
  259. package/lib/esm/widget/components/ExtractionStatus.js.map +1 -1
  260. package/lib/esm/widget/components/ExtractionStatus.scss +1 -1
  261. package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -1
  262. package/lib/esm/widget/components/ExtractionToast.js +3 -3
  263. package/lib/esm/widget/components/ExtractionToast.js.map +1 -1
  264. package/lib/esm/widget/components/HorizontalTile.d.ts.map +1 -1
  265. package/lib/esm/widget/components/HorizontalTile.js +1 -2
  266. package/lib/esm/widget/components/HorizontalTile.js.map +1 -1
  267. package/lib/esm/widget/components/HorizontalTile.scss +1 -4
  268. package/lib/esm/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  269. package/lib/esm/widget/components/LocalizedTablePaginator.js +1 -1
  270. package/lib/esm/widget/components/LocalizedTablePaginator.js.map +1 -1
  271. package/lib/esm/widget/components/ReportAction.d.ts +8 -0
  272. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  273. package/lib/esm/widget/components/ReportAction.js +10 -8
  274. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  275. package/lib/esm/widget/components/ReportAction.scss +1 -1
  276. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  277. package/lib/esm/widget/components/ReportHorizontalTile.js +6 -6
  278. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  279. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  280. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +47 -46
  281. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  282. package/lib/esm/widget/components/ReportMappings.d.ts +8 -0
  283. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  284. package/lib/esm/widget/components/ReportMappings.js +28 -14
  285. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  286. package/lib/esm/widget/components/Reports.d.ts +9 -1
  287. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  288. package/lib/esm/widget/components/Reports.js +8 -9
  289. package/lib/esm/widget/components/Reports.js.map +1 -1
  290. package/lib/esm/widget/components/Reports.scss +0 -1
  291. package/lib/esm/widget/components/ReportsConfigContext.d.ts +8 -0
  292. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -1
  293. package/lib/esm/widget/components/ReportsConfigContext.js +14 -6
  294. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
  295. package/lib/esm/widget/components/ReportsContainer.d.ts +1 -1
  296. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  297. package/lib/esm/widget/components/ReportsContainer.js +2 -4
  298. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  299. package/lib/esm/widget/components/ReportsContainer.scss +1 -1
  300. package/lib/esm/widget/components/ReportsHeader.d.ts +1 -1
  301. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -1
  302. package/lib/esm/widget/components/ReportsHeader.js +6 -7
  303. package/lib/esm/widget/components/ReportsHeader.js.map +1 -1
  304. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -1
  305. package/lib/esm/widget/components/ReportsRouter.js +3 -3
  306. package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
  307. package/lib/esm/widget/components/SearchBar.d.ts +1 -1
  308. package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
  309. package/lib/esm/widget/components/SearchBar.js +4 -4
  310. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  311. package/lib/esm/widget/components/SelectIModel.d.ts +1 -1
  312. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  313. package/lib/esm/widget/components/SelectIModel.js +2 -2
  314. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  315. package/lib/esm/widget/components/SelectIModel.scss +1 -1
  316. package/lib/esm/widget/components/utils.d.ts +1 -1
  317. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  318. package/lib/esm/widget/components/utils.js +6 -6
  319. package/lib/esm/widget/components/utils.js.map +1 -1
  320. package/lib/esm/widget/components/utils.scss +1 -1
  321. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -1
  322. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -1
  323. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  324. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -1
  325. package/lib/esm/widget/hooks/useValidator.d.ts +1 -4
  326. package/lib/esm/widget/hooks/useValidator.d.ts.map +1 -1
  327. package/lib/esm/widget/hooks/useValidator.js +3 -3
  328. package/lib/esm/widget/hooks/useValidator.js.map +1 -1
  329. package/package.json +9 -4
  330. package/src/ReportsConfigWidget.ts +9 -9
  331. package/src/reports-config-widget-react.ts +3 -3
  332. package/src/test/AddMappingModal.test.tsx +45 -70
  333. package/src/test/BulkExtractor.test.ts +73 -118
  334. package/src/test/DeleteModal.test.tsx +6 -23
  335. package/src/test/ReportAction.test.tsx +20 -38
  336. package/src/test/ReportMappingHorizontalTile.test.tsx +137 -106
  337. package/src/test/ReportMappings.test.tsx +73 -88
  338. package/src/test/Reports.test.tsx +30 -64
  339. package/src/test/WidgetHeader.test.tsx +3 -3
  340. package/src/test/test-utils.tsx +18 -8
  341. package/src/widget/ReportsConfigUiProvider.tsx +16 -30
  342. package/src/widget/components/ActionPanel.tsx +3 -14
  343. package/src/widget/components/AddMappingsModal.scss +1 -1
  344. package/src/widget/components/AddMappingsModal.tsx +19 -51
  345. package/src/widget/components/BulkExtractor.ts +63 -54
  346. package/src/widget/components/Constants.ts +4 -4
  347. package/src/widget/components/DeleteModal.scss +2 -2
  348. package/src/widget/components/DeleteModal.tsx +11 -41
  349. package/src/widget/components/ExtractionStates/FailedExtractionState.tsx +4 -9
  350. package/src/widget/components/ExtractionStates/QueuedExtractionState.tsx +4 -9
  351. package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +4 -9
  352. package/src/widget/components/ExtractionStates/StartingExtractionState.tsx +4 -11
  353. package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +4 -9
  354. package/src/widget/components/ExtractionStatus.scss +1 -1
  355. package/src/widget/components/ExtractionStatus.tsx +9 -18
  356. package/src/widget/components/ExtractionToast.tsx +12 -9
  357. package/src/widget/components/HorizontalTile.scss +1 -4
  358. package/src/widget/components/HorizontalTile.tsx +12 -33
  359. package/src/widget/components/LocalizedTablePaginator.tsx +13 -44
  360. package/src/widget/components/ReportAction.scss +1 -1
  361. package/src/widget/components/ReportAction.tsx +26 -39
  362. package/src/widget/components/ReportHorizontalTile.tsx +45 -55
  363. package/src/widget/components/ReportMappingHorizontalTile.tsx +70 -78
  364. package/src/widget/components/ReportMappings.tsx +59 -130
  365. package/src/widget/components/Reports.scss +0 -1
  366. package/src/widget/components/Reports.tsx +28 -82
  367. package/src/widget/components/ReportsConfigContext.tsx +30 -25
  368. package/src/widget/components/ReportsContainer.scss +1 -1
  369. package/src/widget/components/ReportsContainer.tsx +8 -21
  370. package/src/widget/components/ReportsHeader.tsx +6 -19
  371. package/src/widget/components/ReportsRouter.tsx +4 -6
  372. package/src/widget/components/SearchBar.tsx +9 -13
  373. package/src/widget/components/SelectIModel.scss +1 -1
  374. package/src/widget/components/SelectIModel.tsx +9 -24
  375. package/src/widget/components/utils.scss +1 -1
  376. package/src/widget/components/utils.tsx +21 -69
  377. package/src/widget/context/BulkExtractorContext.tsx +4 -6
  378. package/src/widget/context/ReportsConfigApiContext.tsx +4 -6
  379. package/src/widget/hooks/useValidator.ts +10 -24
  380. package/tsconfig.json +11 -11
@@ -1,16 +1,12 @@
1
1
  /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
6
  import faker from "@faker-js/faker";
7
7
  import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
- import {
10
- render,
11
- screen,
12
- waitForElementToBeRemoved,
13
- } from "./test-utils";
9
+ import { render, screen, waitForElementToBeRemoved } from "./test-utils";
14
10
  import { ReportAction } from "../widget/components/ReportAction";
15
11
  import userEvent from "@testing-library/user-event";
16
12
  import { EmptyLocalization } from "@itwin/core-common";
@@ -55,12 +51,16 @@ describe("Reports Action", () => {
55
51
 
56
52
  const reportsClient = new ReportsClient();
57
53
 
58
- jest.spyOn(reportsClient, "createReport").mockImplementation(async () =>
59
- new Promise((resolve) => setTimeout(() => { resolve(mockReport); }, 100))
54
+ jest.spyOn(reportsClient, "createReport").mockImplementation(
55
+ async () =>
56
+ new Promise((resolve) =>
57
+ setTimeout(() => {
58
+ resolve(mockReport);
59
+ }, 100),
60
+ ),
60
61
  );
61
62
 
62
- const { user } = render(
63
- <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });
63
+ const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });
64
64
 
65
65
  const addButton = screen.getByRole("button", {
66
66
  name: /add/i,
@@ -86,9 +86,7 @@ describe("Reports Action", () => {
86
86
  expect(cancelButton).toBeDisabled();
87
87
  expect(nameInput).toBeDisabled();
88
88
 
89
- await waitForElementToBeRemoved(() =>
90
- screen.getByTestId(/loading\-spinner/i)
91
- );
89
+ await waitForElementToBeRemoved(() => screen.getByTestId(/loading\-spinner/i));
92
90
 
93
91
  expect(mockReturnFn).toHaveBeenCalledTimes(1);
94
92
  });
@@ -96,9 +94,7 @@ describe("Reports Action", () => {
96
94
  it("No duplicate underscores in the beginning of name", async () => {
97
95
  const mockReturnFn = jest.fn();
98
96
 
99
- const { user } = render(
100
- <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
101
- );
97
+ const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
102
98
 
103
99
  const addButton = screen.getByRole("button", {
104
100
  name: /add/i,
@@ -110,17 +106,13 @@ describe("Reports Action", () => {
110
106
 
111
107
  await userEvent.type(nameInput, "__testName");
112
108
  await user.click(addButton);
113
- expect(
114
- screen.getByText(/validators\.noduplicateunderscore/i)
115
- ).toBeInTheDocument();
109
+ expect(screen.getByText(/validators\.noduplicateunderscore/i)).toBeInTheDocument();
116
110
  });
117
111
 
118
112
  it("Only begin with letters or underscores of name", async () => {
119
113
  const mockReturnFn = jest.fn();
120
114
 
121
- const { user } = render(
122
- <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
123
- );
115
+ const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
124
116
 
125
117
  const addButton = screen.getByRole("button", {
126
118
  name: /add/i,
@@ -132,17 +124,13 @@ describe("Reports Action", () => {
132
124
 
133
125
  await userEvent.type(nameInput, "$testName");
134
126
  await user.click(addButton);
135
- expect(
136
- screen.getByText(/validators\.onlybeginswithletterorunderscore/i)
137
- ).toBeInTheDocument();
127
+ expect(screen.getByText(/validators\.onlybeginswithletterorunderscore/i)).toBeInTheDocument();
138
128
  });
139
129
 
140
130
  it("Only letters underscores and digits of name", async () => {
141
131
  const mockReturnFn = jest.fn();
142
132
 
143
- const { user } = render(
144
- <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
145
- );
133
+ const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
146
134
 
147
135
  const addButton = screen.getByRole("button", {
148
136
  name: /add/i,
@@ -154,19 +142,13 @@ describe("Reports Action", () => {
154
142
 
155
143
  await userEvent.type(nameInput, "_# ");
156
144
  await user.click(addButton);
157
- expect(
158
- screen.getByText(
159
- /validators\.FollowedByLettersUnderscoresSpacesAndDigits/i
160
- )
161
- ).toBeInTheDocument();
145
+ expect(screen.getByText(/validators\.FollowedByLettersUnderscoresSpacesAndDigits/i)).toBeInTheDocument();
162
146
  });
163
147
 
164
148
  it("check for character limits of name", async () => {
165
149
  const mockReturnFn = jest.fn();
166
150
 
167
- const { user } = render(
168
- <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
169
- );
151
+ const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
170
152
 
171
153
  const addButton = screen.getByRole("button", {
172
154
  name: /add/i,
@@ -1,26 +1,14 @@
1
1
  /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
6
  import faker from "@faker-js/faker";
7
7
  import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
- import {
10
- fireEvent,
11
- mockIModelId1,
12
- mockIModelsResponse,
13
- mockReportId,
14
- render,
15
- screen,
16
- waitFor,
17
- within,
18
- } from "./test-utils";
9
+ import { fireEvent, mockIModelId1, mockIModelsResponse, mockReportId, render, screen, waitFor, within } from "./test-utils";
19
10
  import * as moq from "typemoq";
20
- import type {
21
- MappingSingle,
22
- ReportMappingCollection,
23
- } from "@itwin/insights-client";
11
+ import type { MappingContainer, ReportMappingCollection } from "@itwin/insights-client";
24
12
  import type { ReportMappingAndMapping } from "../widget/components/ReportMappings";
25
13
  import type { GetSingleIModelParams } from "@itwin/imodels-client-management";
26
14
  import { BeEvent } from "@itwin/core-bentley";
@@ -89,29 +77,25 @@ const mockReportMappingsFactory = (): ReportMappingCollection => {
89
77
  };
90
78
  };
91
79
 
92
- const mockMappingsFactory = (
93
- mockReportMappings: ReportMappingCollection
94
- ): MappingSingle[] => {
95
- const mockMappings: MappingSingle[] = mockReportMappings.mappings.map(
96
- (mapping, index) => ({
97
- mapping: {
98
- id: mapping.mappingId,
99
- mappingName: `mOcKMaPpIngNaMe${index}`,
100
- description: `mOcKmApPInGDeScRiPtIoN${index}`,
101
- extractionEnabled: false,
102
- createdOn: "",
103
- createdBy: "",
104
- modifiedOn: "",
105
- modifiedBy: "",
106
- _links: {
107
- imodel: {
108
- // Tie the mapping to to the iModel Id
109
- href: mapping.imodelId,
110
- },
80
+ const mockMappingsFactory = (mockReportMappings: ReportMappingCollection): MappingContainer[] => {
81
+ const mockMappings: MappingContainer[] = mockReportMappings.mappings.map((mapping, index) => ({
82
+ mapping: {
83
+ id: mapping.mappingId,
84
+ mappingName: `mOcKMaPpIngNaMe${index}`,
85
+ description: `mOcKmApPInGDeScRiPtIoN${index}`,
86
+ extractionEnabled: false,
87
+ createdOn: "",
88
+ createdBy: "",
89
+ modifiedOn: "",
90
+ modifiedBy: "",
91
+ _links: {
92
+ iModel: {
93
+ // Tie the mapping to to the iModel Id
94
+ href: mapping.imodelId,
111
95
  },
112
96
  },
113
- })
114
- );
97
+ },
98
+ }));
115
99
 
116
100
  return mockMappings;
117
101
  };
@@ -119,18 +103,17 @@ const mockMappingsFactory = (
119
103
  const mockReportMappingsAndMappingsFactory = (): ReportMappingAndMapping[] => {
120
104
  const reportMappings = mockReportMappingsFactory();
121
105
  const mockMappings = mockMappingsFactory(reportMappings);
122
- const reportMappingsAndMapping =
123
- reportMappings.mappings.map((reportMapping) => {
124
- const mapping = mockMappings.find((x) => x.mapping.id === reportMapping.mappingId)!.mapping;
125
- const iModelName = mockProjectIModels.iModels.find((x) => x.id === reportMapping.imodelId)!.displayName;
126
- const reportMappingAndMapping: ReportMappingAndMapping = {
127
- ...reportMapping,
128
- iModelName,
129
- mappingName: mapping.mappingName,
130
- mappingDescription: mapping.description ?? "",
131
- };
132
- return reportMappingAndMapping;
133
- });
106
+ const reportMappingsAndMapping = reportMappings.mappings.map((reportMapping) => {
107
+ const mapping = mockMappings.find((x) => x.mapping.id === reportMapping.mappingId)!.mapping;
108
+ const iModelName = mockProjectIModels.iModels.find((x) => x.id === reportMapping.imodelId)!.displayName;
109
+ const reportMappingAndMapping: ReportMappingAndMapping = {
110
+ ...reportMapping,
111
+ iModelName,
112
+ mappingName: mapping.mappingName,
113
+ mappingDescription: mapping.description ?? "",
114
+ };
115
+ return reportMappingAndMapping;
116
+ });
134
117
  return reportMappingsAndMapping;
135
118
  };
136
119
 
@@ -158,16 +141,19 @@ describe("Report Mapping Horizontal Tile", () => {
158
141
  it("tile renders correctly", async () => {
159
142
  const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
160
143
 
161
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
144
+ mockBulkExtractor
145
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
162
146
  .returns(async () => ExtractionStates.None);
163
147
 
164
- render(<ReportMappingHorizontalTile
165
- jobStartEvent={new BeEvent()}
166
- mapping={firstMockMapping}
167
- onClickDelete={() => { }}
168
- bulkExtractor={mockBulkExtractor.object}
169
- odataFeedUrl={mockOdataFeedUrl}
170
- />);
148
+ render(
149
+ <ReportMappingHorizontalTile
150
+ jobStartEvent={new BeEvent()}
151
+ mapping={firstMockMapping}
152
+ onClickDelete={() => {}}
153
+ bulkExtractor={mockBulkExtractor.object}
154
+ odataFeedUrl={mockOdataFeedUrl}
155
+ />,
156
+ );
171
157
 
172
158
  mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());
173
159
  await waitFor(() => expect(screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
@@ -181,22 +167,32 @@ describe("Report Mapping Horizontal Tile", () => {
181
167
 
182
168
  it("starting extraction sends request", async () => {
183
169
  const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
184
-
185
- mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))
186
- .returns(async () => { return Promise.resolve(); });
187
-
188
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
170
+ const firstMockExtractionRequest = {
171
+ mappings: [{ id: firstMockMapping.mappingId }],
172
+ iModelId: firstMockMapping.imodelId,
173
+ };
174
+
175
+ mockBulkExtractor
176
+ .setup(async (x) => x.runIModelExtraction(firstMockExtractionRequest))
177
+ .returns(async () => {
178
+ return Promise.resolve();
179
+ });
180
+
181
+ mockBulkExtractor
182
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
189
183
  .returns(async () => ExtractionStates.None);
190
184
 
191
185
  const jobStartEvent = new BeEvent<(iModelId: string) => void>();
192
186
 
193
- const { user } = render(<ReportMappingHorizontalTile
194
- jobStartEvent={jobStartEvent}
195
- mapping={firstMockMapping}
196
- onClickDelete={() => { }}
197
- bulkExtractor={mockBulkExtractor.object}
198
- odataFeedUrl={mockOdataFeedUrl}
199
- />);
187
+ const { user } = render(
188
+ <ReportMappingHorizontalTile
189
+ jobStartEvent={jobStartEvent}
190
+ mapping={firstMockMapping}
191
+ onClickDelete={() => {}}
192
+ bulkExtractor={mockBulkExtractor.object}
193
+ odataFeedUrl={mockOdataFeedUrl}
194
+ />,
195
+ );
200
196
 
201
197
  mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());
202
198
  await waitFor(() => expect(screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
@@ -204,29 +200,39 @@ describe("Report Mapping Horizontal Tile", () => {
204
200
  const startExtractionButton = screen.getByRole("button", { name: /UpdateDataset/i });
205
201
  await user.click(startExtractionButton);
206
202
 
207
- mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());
203
+ mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockExtractionRequest), moq.Times.once());
208
204
  });
209
205
 
210
206
  it("on delete is called when remove is pressed", async () => {
211
207
  const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
212
-
213
- mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))
214
- .returns(async () => { return Promise.resolve(); });
215
-
216
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
208
+ const firstMockExtractionRequest = {
209
+ mappings: [{ id: firstMockMapping.mappingId }],
210
+ iModelId: firstMockMapping.imodelId,
211
+ };
212
+
213
+ mockBulkExtractor
214
+ .setup(async (x) => x.runIModelExtraction(firstMockExtractionRequest))
215
+ .returns(async () => {
216
+ return Promise.resolve();
217
+ });
218
+
219
+ mockBulkExtractor
220
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
217
221
  .returns(async () => ExtractionStates.None);
218
222
 
219
223
  const mockOnClickDelete = jest.fn();
220
224
 
221
225
  const jobStartEvent = new BeEvent<(iModelId: string) => void>();
222
226
 
223
- const { user } = render(<ReportMappingHorizontalTile
224
- jobStartEvent={jobStartEvent}
225
- mapping={firstMockMapping}
226
- onClickDelete={mockOnClickDelete}
227
- bulkExtractor={mockBulkExtractor.object}
228
- odataFeedUrl={mockOdataFeedUrl}
229
- />);
227
+ const { user } = render(
228
+ <ReportMappingHorizontalTile
229
+ jobStartEvent={jobStartEvent}
230
+ mapping={firstMockMapping}
231
+ onClickDelete={mockOnClickDelete}
232
+ bulkExtractor={mockBulkExtractor.object}
233
+ odataFeedUrl={mockOdataFeedUrl}
234
+ />,
235
+ );
230
236
 
231
237
  await waitFor(() => expect(screen.getByRole("button", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });
232
238
 
@@ -238,53 +244,68 @@ describe("Report Mapping Horizontal Tile", () => {
238
244
 
239
245
  it("full extraction status cycle", async () => {
240
246
  const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
247
+ const firstMockExtractionRequest = {
248
+ mappings: [{ id: firstMockMapping.mappingId }],
249
+ iModelId: firstMockMapping.imodelId,
250
+ };
241
251
 
242
- mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith<GetSingleIModelParams>({ iModelId: mockIModelId1 })))
252
+ mockIModelsClient
253
+ .setup(async (x) => x.getSingle(moq.It.isObjectWith<GetSingleIModelParams>({ iModelId: mockIModelId1 })))
243
254
  .returns(async () => mockIModelsResponse[0].iModel);
244
255
 
245
- mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))
246
- .returns(async () => { return Promise.resolve(); });
256
+ mockBulkExtractor
257
+ .setup(async (x) => x.runIModelExtraction(firstMockExtractionRequest))
258
+ .returns(async () => {
259
+ return Promise.resolve();
260
+ });
247
261
 
248
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
262
+ mockBulkExtractor
263
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
249
264
  .returns(async () => ExtractionStates.None);
250
265
 
251
266
  const mockOnClickDelete = jest.fn();
252
267
 
253
268
  const jobStartEvent = new BeEvent<(iModelId: string) => void>();
254
269
 
255
- const { user } = render(<ReportMappingHorizontalTile
256
- jobStartEvent={jobStartEvent}
257
- mapping={firstMockMapping}
258
- onClickDelete={mockOnClickDelete}
259
- bulkExtractor={mockBulkExtractor.object}
260
- odataFeedUrl={mockOdataFeedUrl}
261
- />);
270
+ const { user } = render(
271
+ <ReportMappingHorizontalTile
272
+ jobStartEvent={jobStartEvent}
273
+ mapping={firstMockMapping}
274
+ onClickDelete={mockOnClickDelete}
275
+ bulkExtractor={mockBulkExtractor.object}
276
+ odataFeedUrl={mockOdataFeedUrl}
277
+ />,
278
+ );
262
279
 
263
280
  await waitFor(() => expect(screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
264
281
 
265
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
282
+ mockBulkExtractor
283
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
266
284
  .returns(async () => ExtractionStates.Starting);
267
285
 
268
286
  const startExtractionButton = screen.getByRole("button", { name: /UpdateDataset/i });
269
287
  await user.click(startExtractionButton);
270
288
 
271
- mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());
289
+ mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockExtractionRequest), moq.Times.once());
272
290
 
273
291
  expect(screen.getByTitle(/Starting/i)).toBeInTheDocument();
274
292
 
275
293
  mockBulkExtractor.reset();
276
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
294
+ mockBulkExtractor
295
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
277
296
  .returns(async () => ExtractionStates.Queued);
278
297
 
279
298
  await waitFor(() => expect(screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
280
299
 
281
300
  mockBulkExtractor.reset();
282
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
301
+ mockBulkExtractor
302
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
283
303
  .returns(async () => ExtractionStates.Running);
284
304
  await waitFor(() => expect(screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });
285
305
 
286
306
  mockBulkExtractor.reset();
287
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
307
+ mockBulkExtractor
308
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
288
309
  .returns(async () => ExtractionStates.Succeeded);
289
310
  await waitFor(() => expect(screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });
290
311
 
@@ -297,8 +318,13 @@ describe("Report Mapping Horizontal Tile", () => {
297
318
  const mockReportMappingsAndMappings = mockReportMappingsAndMappingsFactory();
298
319
  const firstMockMapping = mockReportMappingsAndMappings[0];
299
320
  const secondMockMapping = mockReportMappingsAndMappings[1];
321
+ const firstMockExtractionRequest = {
322
+ mappings: [{ id: firstMockMapping.mappingId }],
323
+ iModelId: firstMockMapping.imodelId,
324
+ };
300
325
 
301
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
326
+ mockBulkExtractor
327
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
302
328
  .returns(async () => ExtractionStates.None);
303
329
 
304
330
  const jobStartEvent = new BeEvent<(iModelId: string) => void>();
@@ -308,18 +334,19 @@ describe("Report Mapping Horizontal Tile", () => {
308
334
  <ReportMappingHorizontalTile
309
335
  jobStartEvent={jobStartEvent}
310
336
  mapping={firstMockMapping}
311
- onClickDelete={() => { }}
337
+ onClickDelete={() => {}}
312
338
  bulkExtractor={mockBulkExtractor.object}
313
339
  odataFeedUrl={mockOdataFeedUrl}
314
340
  />
315
341
  <ReportMappingHorizontalTile
316
342
  jobStartEvent={jobStartEvent}
317
343
  mapping={secondMockMapping}
318
- onClickDelete={() => { }}
344
+ onClickDelete={() => {}}
319
345
  bulkExtractor={mockBulkExtractor.object}
320
346
  odataFeedUrl={mockOdataFeedUrl}
321
347
  />
322
- </div>);
348
+ </div>,
349
+ );
323
350
 
324
351
  const tiles = screen.getAllByTestId("horizontal-tile");
325
352
 
@@ -329,11 +356,15 @@ describe("Report Mapping Horizontal Tile", () => {
329
356
  }
330
357
 
331
358
  mockBulkExtractor.reset();
332
- mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
359
+ mockBulkExtractor
360
+ .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
333
361
  .returns(async () => ExtractionStates.Queued);
334
362
 
335
- mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))
336
- .returns(async () => { return Promise.resolve(); });
363
+ mockBulkExtractor
364
+ .setup(async (x) => x.runIModelExtraction(firstMockExtractionRequest))
365
+ .returns(async () => {
366
+ return Promise.resolve();
367
+ });
337
368
 
338
369
  const startExtractionButton = screen.getAllByRole("button", { name: /UpdateDataset/i })[0];
339
370
  await user.click(startExtractionButton);