@itwin/reports-config-widget-react 0.0.8 → 0.2.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 (317) hide show
  1. package/.rush/temp/package-deps_rebuild.json +46 -32
  2. package/.rush/temp/shrinkwrap-deps.json +14 -6
  3. package/CHANGELOG.json +27 -0
  4. package/CHANGELOG.md +16 -1
  5. package/coverage/clover.xml +648 -427
  6. package/coverage/coverage-final.json +28 -18
  7. package/coverage/lcov-report/index.html +34 -19
  8. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +10 -10
  9. package/coverage/lcov-report/src/index.html +1 -1
  10. package/coverage/lcov-report/src/test/index.html +1 -1
  11. package/coverage/lcov-report/src/test/test-utils.tsx.html +22 -22
  12. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +7 -7
  13. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +29 -41
  14. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +31 -37
  15. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +661 -0
  16. package/coverage/lcov-report/src/widget/components/Constants.ts.html +106 -0
  17. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +21 -21
  18. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +187 -0
  19. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +145 -0
  20. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +139 -0
  21. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +151 -0
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +190 -0
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +176 -0
  24. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +295 -0
  25. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
  26. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +77 -44
  27. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
  28. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +14 -20
  29. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +475 -0
  30. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
  31. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +184 -250
  32. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +180 -132
  33. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +10 -10
  34. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +11 -11
  35. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +31 -31
  36. package/coverage/lcov-report/src/widget/components/index.html +134 -59
  37. package/coverage/lcov-report/src/widget/components/utils.tsx.html +32 -32
  38. package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +8 -8
  39. package/coverage/lcov-report/src/widget/context/index.html +1 -1
  40. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  41. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +7 -7
  42. package/coverage/lcov-report/src/widget/index.html +1 -1
  43. package/coverage/lcov.info +1137 -738
  44. package/jest.config.js +7 -0
  45. package/lib/cjs/test/AddMappingModal.test.d.ts +2 -0
  46. package/lib/cjs/test/AddMappingModal.test.d.ts.map +1 -0
  47. package/lib/cjs/test/AddMappingModal.test.js +277 -0
  48. package/lib/cjs/test/AddMappingModal.test.js.map +1 -0
  49. package/lib/cjs/test/BulkExtractor.test.d.ts +2 -0
  50. package/lib/cjs/test/BulkExtractor.test.d.ts.map +1 -0
  51. package/lib/cjs/test/BulkExtractor.test.js +182 -0
  52. package/lib/cjs/test/BulkExtractor.test.js.map +1 -0
  53. package/lib/cjs/test/DeleteModal.test.d.ts +2 -0
  54. package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -0
  55. package/lib/cjs/test/DeleteModal.test.js +93 -0
  56. package/lib/cjs/test/DeleteModal.test.js.map +1 -0
  57. package/lib/cjs/test/ReportAction.test.js +2 -3
  58. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  59. package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts +2 -0
  60. package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
  61. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +340 -0
  62. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -0
  63. package/lib/cjs/test/ReportMappings.test.js +115 -267
  64. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  65. package/lib/cjs/test/Reports.test.js +1 -1
  66. package/lib/cjs/test/Reports.test.js.map +1 -1
  67. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  68. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  69. package/lib/cjs/widget/components/ActionPanel.js +4 -5
  70. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  71. package/lib/cjs/widget/components/AddMappingsModal.d.ts +2 -2
  72. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  73. package/lib/cjs/widget/components/AddMappingsModal.js +5 -4
  74. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  75. package/lib/cjs/widget/components/AddMappingsModal.scss +4 -3
  76. package/lib/cjs/widget/components/BulkExtractor.d.ts +37 -0
  77. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -0
  78. package/lib/cjs/widget/components/BulkExtractor.js +155 -0
  79. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -0
  80. package/lib/cjs/widget/components/Constants.d.ts +4 -0
  81. package/lib/cjs/widget/components/Constants.d.ts.map +1 -0
  82. package/lib/cjs/widget/components/Constants.js +11 -0
  83. package/lib/cjs/widget/components/Constants.js.map +1 -0
  84. package/lib/cjs/widget/components/DeleteModal.js +1 -1
  85. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  86. package/lib/cjs/widget/components/DeleteModal.scss +4 -3
  87. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts +8 -0
  88. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -0
  89. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js +23 -0
  90. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -0
  91. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts +3 -0
  92. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -0
  93. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js +18 -0
  94. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -0
  95. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts +3 -0
  96. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -0
  97. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +17 -0
  98. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -0
  99. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts +3 -0
  100. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -0
  101. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js +18 -0
  102. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -0
  103. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts +8 -0
  104. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -0
  105. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +23 -0
  106. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -0
  107. package/lib/cjs/widget/components/ExtractionStatus.d.ts +17 -0
  108. package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -0
  109. package/lib/cjs/widget/components/ExtractionStatus.js +76 -0
  110. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -0
  111. package/lib/cjs/widget/components/{Extraction.scss → ExtractionStatus.scss} +17 -15
  112. package/lib/cjs/widget/components/ExtractionToast.d.ts +11 -0
  113. package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -0
  114. package/lib/cjs/widget/components/ExtractionToast.js +33 -0
  115. package/lib/cjs/widget/components/ExtractionToast.js.map +1 -0
  116. package/lib/cjs/widget/components/HorizontalTile.d.ts +8 -7
  117. package/lib/cjs/widget/components/HorizontalTile.d.ts.map +1 -1
  118. package/lib/cjs/widget/components/HorizontalTile.js +10 -6
  119. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  120. package/lib/cjs/widget/components/HorizontalTile.scss +42 -22
  121. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  122. package/lib/cjs/widget/components/ReportAction.js +3 -3
  123. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  124. package/lib/cjs/widget/components/ReportAction.scss +2 -2
  125. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +16 -0
  126. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -0
  127. package/lib/cjs/widget/components/ReportHorizontalTile.js +71 -0
  128. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -0
  129. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
  130. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
  131. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +82 -0
  132. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -0
  133. package/lib/cjs/widget/components/ReportMappings.d.ts +3 -1
  134. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  135. package/lib/cjs/widget/components/ReportMappings.js +39 -40
  136. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  137. package/lib/cjs/widget/components/ReportMappings.scss +7 -7
  138. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  139. package/lib/cjs/widget/components/Reports.js +43 -28
  140. package/lib/cjs/widget/components/Reports.js.map +1 -1
  141. package/lib/cjs/widget/components/Reports.scss +8 -4
  142. package/lib/cjs/widget/components/ReportsContainer.js +1 -1
  143. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  144. package/lib/cjs/widget/components/ReportsContainer.scss +2 -2
  145. package/lib/cjs/widget/components/SearchBar.js +1 -1
  146. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  147. package/lib/cjs/widget/components/SearchBar.scss +6 -0
  148. package/lib/cjs/widget/components/SelectIModel.js +2 -2
  149. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  150. package/lib/cjs/widget/components/SelectIModel.scss +4 -3
  151. package/lib/cjs/widget/components/utils.js +1 -1
  152. package/lib/cjs/widget/components/utils.js.map +1 -1
  153. package/lib/cjs/widget/components/utils.scss +2 -2
  154. package/lib/esm/test/AddMappingModal.test.d.ts +2 -0
  155. package/lib/esm/test/AddMappingModal.test.d.ts.map +1 -0
  156. package/lib/esm/test/AddMappingModal.test.js +253 -0
  157. package/lib/esm/test/AddMappingModal.test.js.map +1 -0
  158. package/lib/esm/test/BulkExtractor.test.d.ts +2 -0
  159. package/lib/esm/test/BulkExtractor.test.d.ts.map +1 -0
  160. package/lib/esm/test/BulkExtractor.test.js +158 -0
  161. package/lib/esm/test/BulkExtractor.test.js.map +1 -0
  162. package/lib/esm/test/DeleteModal.test.d.ts +2 -0
  163. package/lib/esm/test/DeleteModal.test.d.ts.map +1 -0
  164. package/lib/esm/test/DeleteModal.test.js +69 -0
  165. package/lib/esm/test/DeleteModal.test.js.map +1 -0
  166. package/lib/esm/test/ReportAction.test.js +2 -3
  167. package/lib/esm/test/ReportAction.test.js.map +1 -1
  168. package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts +2 -0
  169. package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
  170. package/lib/esm/test/ReportMappingHorizontalTile.test.js +316 -0
  171. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -0
  172. package/lib/esm/test/ReportMappings.test.js +117 -269
  173. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  174. package/lib/esm/test/Reports.test.js +1 -1
  175. package/lib/esm/test/Reports.test.js.map +1 -1
  176. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  177. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  178. package/lib/esm/widget/components/ActionPanel.js +4 -5
  179. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  180. package/lib/esm/widget/components/AddMappingsModal.d.ts +2 -2
  181. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  182. package/lib/esm/widget/components/AddMappingsModal.js +4 -5
  183. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  184. package/lib/esm/widget/components/AddMappingsModal.scss +4 -3
  185. package/lib/esm/widget/components/BulkExtractor.d.ts +37 -0
  186. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -0
  187. package/lib/esm/widget/components/BulkExtractor.js +152 -0
  188. package/lib/esm/widget/components/BulkExtractor.js.map +1 -0
  189. package/lib/esm/widget/components/Constants.d.ts +4 -0
  190. package/lib/esm/widget/components/Constants.d.ts.map +1 -0
  191. package/lib/esm/widget/components/Constants.js +8 -0
  192. package/lib/esm/widget/components/Constants.js.map +1 -0
  193. package/lib/esm/widget/components/DeleteModal.js +1 -1
  194. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  195. package/lib/esm/widget/components/DeleteModal.scss +4 -3
  196. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts +8 -0
  197. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -0
  198. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js +16 -0
  199. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -0
  200. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts +3 -0
  201. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -0
  202. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js +11 -0
  203. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -0
  204. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts +3 -0
  205. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -0
  206. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +10 -0
  207. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -0
  208. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts +3 -0
  209. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -0
  210. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js +11 -0
  211. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -0
  212. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts +8 -0
  213. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -0
  214. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +16 -0
  215. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -0
  216. package/lib/esm/widget/components/ExtractionStatus.d.ts +17 -0
  217. package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -0
  218. package/lib/esm/widget/components/ExtractionStatus.js +53 -0
  219. package/lib/esm/widget/components/ExtractionStatus.js.map +1 -0
  220. package/{src/widget/components/Extraction.scss → lib/esm/widget/components/ExtractionStatus.scss} +17 -15
  221. package/lib/esm/widget/components/ExtractionToast.d.ts +11 -0
  222. package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -0
  223. package/lib/esm/widget/components/ExtractionToast.js +25 -0
  224. package/lib/esm/widget/components/ExtractionToast.js.map +1 -0
  225. package/lib/esm/widget/components/HorizontalTile.d.ts +8 -7
  226. package/lib/esm/widget/components/HorizontalTile.d.ts.map +1 -1
  227. package/lib/esm/widget/components/HorizontalTile.js +10 -6
  228. package/lib/esm/widget/components/HorizontalTile.js.map +1 -1
  229. package/lib/esm/widget/components/HorizontalTile.scss +42 -22
  230. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  231. package/lib/esm/widget/components/ReportAction.js +3 -3
  232. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  233. package/lib/esm/widget/components/ReportAction.scss +2 -2
  234. package/lib/esm/widget/components/ReportHorizontalTile.d.ts +16 -0
  235. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -0
  236. package/lib/esm/widget/components/ReportHorizontalTile.js +64 -0
  237. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -0
  238. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
  239. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
  240. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +75 -0
  241. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -0
  242. package/lib/esm/widget/components/ReportMappings.d.ts +3 -1
  243. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  244. package/lib/esm/widget/components/ReportMappings.js +40 -41
  245. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  246. package/lib/esm/widget/components/ReportMappings.scss +7 -7
  247. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  248. package/lib/esm/widget/components/Reports.js +45 -30
  249. package/lib/esm/widget/components/Reports.js.map +1 -1
  250. package/lib/esm/widget/components/Reports.scss +8 -4
  251. package/lib/esm/widget/components/ReportsContainer.js +1 -1
  252. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  253. package/lib/esm/widget/components/ReportsContainer.scss +2 -2
  254. package/lib/esm/widget/components/SearchBar.js +1 -1
  255. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  256. package/lib/esm/widget/components/SearchBar.scss +6 -0
  257. package/lib/esm/widget/components/SelectIModel.js +2 -2
  258. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  259. package/lib/esm/widget/components/SelectIModel.scss +4 -3
  260. package/lib/esm/widget/components/utils.js +1 -1
  261. package/lib/esm/widget/components/utils.js.map +1 -1
  262. package/lib/esm/widget/components/utils.scss +2 -2
  263. package/lib/public/locales/en/ReportsConfigWidget.json +7 -1
  264. package/package.json +9 -3
  265. package/public/locales/en/ReportsConfigWidget.json +7 -1
  266. package/reports-config-widget-react.build.error.log +10 -6
  267. package/reports-config-widget-react.build.log +51 -36
  268. package/src/test/AddMappingModal.test.tsx +315 -0
  269. package/src/test/BulkExtractor.test.ts +301 -0
  270. package/src/test/DeleteModal.test.tsx +118 -0
  271. package/src/test/ReportAction.test.tsx +2 -4
  272. package/src/test/ReportMappingHorizontalTile.test.tsx +451 -0
  273. package/src/test/ReportMappings.test.tsx +154 -549
  274. package/src/test/Reports.test.tsx +1 -1
  275. package/src/widget/components/ActionPanel.tsx +19 -23
  276. package/src/widget/components/AddMappingsModal.scss +4 -3
  277. package/src/widget/components/AddMappingsModal.tsx +4 -6
  278. package/src/widget/components/BulkExtractor.ts +192 -0
  279. package/src/widget/components/Constants.ts +7 -0
  280. package/src/widget/components/DeleteModal.scss +4 -3
  281. package/src/widget/components/DeleteModal.tsx +1 -1
  282. package/src/widget/components/ExtractionStates/FailedExtractionState.tsx +34 -0
  283. package/src/widget/components/ExtractionStates/QueuedExtractionState.tsx +20 -0
  284. package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +18 -0
  285. package/src/widget/components/ExtractionStates/StartingExtractionState.tsx +22 -0
  286. package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +35 -0
  287. package/{lib/esm/widget/components/Extraction.scss → src/widget/components/ExtractionStatus.scss} +17 -15
  288. package/src/widget/components/ExtractionStatus.tsx +70 -0
  289. package/src/widget/components/ExtractionToast.tsx +41 -0
  290. package/src/widget/components/HorizontalTile.scss +42 -22
  291. package/src/widget/components/HorizontalTile.tsx +45 -34
  292. package/src/widget/components/ReportAction.scss +2 -2
  293. package/src/widget/components/ReportAction.tsx +1 -3
  294. package/src/widget/components/ReportHorizontalTile.tsx +130 -0
  295. package/src/widget/components/ReportMappingHorizontalTile.tsx +128 -0
  296. package/src/widget/components/ReportMappings.scss +7 -7
  297. package/src/widget/components/ReportMappings.tsx +91 -113
  298. package/src/widget/components/Reports.scss +8 -4
  299. package/src/widget/components/Reports.tsx +78 -62
  300. package/src/widget/components/ReportsContainer.scss +2 -2
  301. package/src/widget/components/ReportsContainer.tsx +1 -1
  302. package/src/widget/components/SearchBar.scss +6 -0
  303. package/src/widget/components/SearchBar.tsx +1 -1
  304. package/src/widget/components/SelectIModel.scss +4 -3
  305. package/src/widget/components/SelectIModel.tsx +2 -2
  306. package/src/widget/components/utils.scss +2 -2
  307. package/src/widget/components/utils.tsx +1 -1
  308. package/coverage/lcov-report/src/widget/components/Extraction.tsx.html +0 -1030
  309. package/lib/cjs/widget/components/Extraction.d.ts +0 -28
  310. package/lib/cjs/widget/components/Extraction.d.ts.map +0 -1
  311. package/lib/cjs/widget/components/Extraction.js +0 -190
  312. package/lib/cjs/widget/components/Extraction.js.map +0 -1
  313. package/lib/esm/widget/components/Extraction.d.ts +0 -28
  314. package/lib/esm/widget/components/Extraction.d.ts.map +0 -1
  315. package/lib/esm/widget/components/Extraction.js +0 -166
  316. package/lib/esm/widget/components/Extraction.js.map +0 -1
  317. package/src/widget/components/Extraction.tsx +0 -315
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">98.57% </span>
26
+ <span class="strong">90.21% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>69/70</span>
28
+ <span class='fraction'>83/92</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">78.94% </span>
33
+ <span class="strong">78.84% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>45/57</span>
35
+ <span class='fraction'>41/52</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">76% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/16</span>
42
+ <span class='fraction'>19/25</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">93.18% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>68/68</span>
49
+ <span class='fraction'>82/88</span>
50
50
  </div>
51
51
 
52
52
 
@@ -311,55 +311,71 @@
311
311
  <a name='L246'></a><a href='#L246'>246</a>
312
312
  <a name='L247'></a><a href='#L247'>247</a>
313
313
  <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">4x</span>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
319
331
  <span class="cline-any cline-neutral">&nbsp;</span>
320
332
  <span class="cline-any cline-neutral">&nbsp;</span>
321
333
  <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-yes">7x</span>
322
335
  <span class="cline-any cline-neutral">&nbsp;</span>
323
336
  <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-yes">4x</span>
325
337
  <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-yes">7x</span>
326
339
  <span class="cline-any cline-neutral">&nbsp;</span>
327
340
  <span class="cline-any cline-neutral">&nbsp;</span>
328
341
  <span class="cline-any cline-neutral">&nbsp;</span>
329
342
  <span class="cline-any cline-neutral">&nbsp;</span>
330
343
  <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-yes">4x</span>
344
+ <span class="cline-any cline-yes">7x</span>
332
345
  <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">4x</span>
346
+ <span class="cline-any cline-yes">7x</span>
334
347
  <span class="cline-any cline-neutral">&nbsp;</span>
335
348
  <span class="cline-any cline-neutral">&nbsp;</span>
336
349
  <span class="cline-any cline-neutral">&nbsp;</span>
337
350
  <span class="cline-any cline-neutral">&nbsp;</span>
338
351
  <span class="cline-any cline-neutral">&nbsp;</span>
339
352
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-yes">4x</span>
341
- <span class="cline-any cline-yes">4x</span>
353
+ <span class="cline-any cline-yes">7x</span>
354
+ <span class="cline-any cline-yes">7x</span>
342
355
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">4x</span>
344
- <span class="cline-any cline-yes">4x</span>
345
- <span class="cline-any cline-yes">4x</span>
346
- <span class="cline-any cline-yes">4x</span>
347
- <span class="cline-any cline-yes">4x</span>
356
+ <span class="cline-any cline-yes">7x</span>
357
+ <span class="cline-any cline-yes">7x</span>
358
+ <span class="cline-any cline-yes">7x</span>
359
+ <span class="cline-any cline-yes">7x</span>
360
+ <span class="cline-any cline-yes">7x</span>
348
361
  <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-yes">4x</span>
350
- <span class="cline-any cline-yes">4x</span>
351
- <span class="cline-any cline-yes">4x</span>
362
+ <span class="cline-any cline-yes">7x</span>
363
+ <span class="cline-any cline-yes">7x</span>
364
+ <span class="cline-any cline-yes">7x</span>
365
+ <span class="cline-any cline-yes">7x</span>
366
+ <span class="cline-any cline-yes">7x</span>
367
+ <span class="cline-any cline-yes">7x</span>
352
368
  <span class="cline-any cline-neutral">&nbsp;</span>
353
369
  <span class="cline-any cline-neutral">&nbsp;</span>
354
370
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">4x</span>
356
- <span class="cline-any cline-yes">4x</span>
357
- <span class="cline-any cline-yes">4x</span>
358
- <span class="cline-any cline-yes">4x</span>
359
- <span class="cline-any cline-yes">4x</span>
371
+ <span class="cline-any cline-yes">7x</span>
372
+ <span class="cline-any cline-yes">7x</span>
373
+ <span class="cline-any cline-yes">7x</span>
374
+ <span class="cline-any cline-yes">7x</span>
375
+ <span class="cline-any cline-yes">7x</span>
360
376
  <span class="cline-any cline-neutral">&nbsp;</span>
361
377
  <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">4x</span>
378
+ <span class="cline-any cline-yes">7x</span>
363
379
  <span class="cline-any cline-neutral">&nbsp;</span>
364
380
  <span class="cline-any cline-neutral">&nbsp;</span>
365
381
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -381,83 +397,100 @@
381
397
  <span class="cline-any cline-neutral">&nbsp;</span>
382
398
  <span class="cline-any cline-neutral">&nbsp;</span>
383
399
  <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-yes">4x</span>
385
- <span class="cline-any cline-yes">67x</span>
386
- <span class="cline-any cline-yes">67x</span>
387
- <span class="cline-any cline-yes">67x</span>
388
- <span class="cline-any cline-yes">67x</span>
400
+ <span class="cline-any cline-yes">7x</span>
401
+ <span class="cline-any cline-yes">70x</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
389
403
  <span class="cline-any cline-neutral">&nbsp;</span>
390
404
  <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-yes">67x</span>
405
+ <span class="cline-any cline-yes">70x</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
392
407
  <span class="cline-any cline-neutral">&nbsp;</span>
393
408
  <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-yes">67x</span>
395
- <span class="cline-any cline-yes">67x</span>
396
- <span class="cline-any cline-yes">67x</span>
409
+ <span class="cline-any cline-yes">70x</span>
410
+ <span class="cline-any cline-yes">70x</span>
411
+ <span class="cline-any cline-yes">70x</span>
412
+ <span class="cline-any cline-yes">70x</span>
413
+ <span class="cline-any cline-yes">70x</span>
397
414
  <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-yes">67x</span>
399
- <span class="cline-any cline-yes">8x</span>
400
415
  <span class="cline-any cline-neutral">&nbsp;</span>
416
+ <span class="cline-any cline-yes">70x</span>
401
417
  <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-yes">67x</span>
403
- <span class="cline-any cline-yes">1x</span>
404
- <span class="cline-any cline-yes">1x</span>
405
- <span class="cline-any cline-yes">1x</span>
406
418
  <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-yes">67x</span>
409
- <span class="cline-any cline-yes">2x</span>
419
+ <span class="cline-any cline-yes">70x</span>
420
+ <span class="cline-any cline-yes">70x</span>
421
+ <span class="cline-any cline-yes">70x</span>
422
+ <span class="cline-any cline-yes">70x</span>
423
+ <span class="cline-any cline-yes">8x</span>
410
424
  <span class="cline-any cline-neutral">&nbsp;</span>
411
425
  <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-yes">67x</span>
426
+ <span class="cline-any cline-yes">70x</span>
427
+ <span class="cline-any cline-yes">8x</span>
413
428
  <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">49x</span>
415
- <span class="cline-any cline-yes">131x</span>
416
429
  <span class="cline-any cline-neutral">&nbsp;</span>
417
430
  <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-yes">70x</span>
432
+ <span class="cline-any cline-yes">8x</span>
418
433
  <span class="cline-any cline-neutral">&nbsp;</span>
419
434
  <span class="cline-any cline-neutral">&nbsp;</span>
435
+ <span class="cline-any cline-yes">70x</span>
436
+ <span class="cline-any cline-yes">1x</span>
437
+ <span class="cline-any cline-yes">1x</span>
438
+ <span class="cline-any cline-yes">1x</span>
420
439
  <span class="cline-any cline-neutral">&nbsp;</span>
421
440
  <span class="cline-any cline-neutral">&nbsp;</span>
441
+ <span class="cline-any cline-yes">70x</span>
442
+ <span class="cline-any cline-yes">2x</span>
422
443
  <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-yes">67x</span>
424
444
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">2x</span>
445
+ <span class="cline-any cline-yes">70x</span>
426
446
  <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-yes">49x</span>
448
+ <span class="cline-any cline-yes">131x</span>
427
449
  <span class="cline-any cline-neutral">&nbsp;</span>
428
450
  <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-yes">2x</span>
430
451
  <span class="cline-any cline-neutral">&nbsp;</span>
431
452
  <span class="cline-any cline-neutral">&nbsp;</span>
432
453
  <span class="cline-any cline-neutral">&nbsp;</span>
433
454
  <span class="cline-any cline-neutral">&nbsp;</span>
434
455
  <span class="cline-any cline-neutral">&nbsp;</span>
456
+ <span class="cline-any cline-yes">70x</span>
457
+ <span class="cline-any cline-yes">4x</span>
458
+ <span class="cline-any cline-yes">4x</span>
435
459
  <span class="cline-any cline-neutral">&nbsp;</span>
460
+ <span class="cline-any cline-yes">4x</span>
461
+ <span class="cline-any cline-yes">4x</span>
436
462
  <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-yes">1x</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
438
464
  <span class="cline-any cline-neutral">&nbsp;</span>
439
465
  <span class="cline-any cline-neutral">&nbsp;</span>
440
466
  <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-yes">62x</span>
442
467
  <span class="cline-any cline-neutral">&nbsp;</span>
443
468
  <span class="cline-any cline-neutral">&nbsp;</span>
469
+ <span class="cline-any cline-yes">70x</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
471
+ <span class="cline-any cline-no">&nbsp;</span>
472
+ <span class="cline-any cline-no">&nbsp;</span>
444
473
  <span class="cline-any cline-neutral">&nbsp;</span>
445
474
  <span class="cline-any cline-neutral">&nbsp;</span>
475
+ <span class="cline-any cline-yes">70x</span>
446
476
  <span class="cline-any cline-neutral">&nbsp;</span>
477
+ <span class="cline-any cline-yes">2x</span>
447
478
  <span class="cline-any cline-neutral">&nbsp;</span>
448
479
  <span class="cline-any cline-neutral">&nbsp;</span>
449
480
  <span class="cline-any cline-neutral">&nbsp;</span>
481
+ <span class="cline-any cline-yes">2x</span>
450
482
  <span class="cline-any cline-neutral">&nbsp;</span>
451
483
  <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">1x</span>
453
484
  <span class="cline-any cline-neutral">&nbsp;</span>
454
485
  <span class="cline-any cline-neutral">&nbsp;</span>
455
486
  <span class="cline-any cline-neutral">&nbsp;</span>
456
487
  <span class="cline-any cline-neutral">&nbsp;</span>
457
488
  <span class="cline-any cline-neutral">&nbsp;</span>
489
+ <span class="cline-any cline-yes">1x</span>
458
490
  <span class="cline-any cline-neutral">&nbsp;</span>
459
491
  <span class="cline-any cline-neutral">&nbsp;</span>
460
492
  <span class="cline-any cline-neutral">&nbsp;</span>
493
+ <span class="cline-any cline-yes">65x</span>
461
494
  <span class="cline-any cline-neutral">&nbsp;</span>
462
495
  <span class="cline-any cline-neutral">&nbsp;</span>
463
496
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -468,12 +501,12 @@
468
501
  <span class="cline-any cline-neutral">&nbsp;</span>
469
502
  <span class="cline-any cline-neutral">&nbsp;</span>
470
503
  <span class="cline-any cline-neutral">&nbsp;</span>
504
+ <span class="cline-any cline-yes">1x</span>
471
505
  <span class="cline-any cline-neutral">&nbsp;</span>
472
506
  <span class="cline-any cline-neutral">&nbsp;</span>
473
507
  <span class="cline-any cline-neutral">&nbsp;</span>
474
508
  <span class="cline-any cline-neutral">&nbsp;</span>
475
509
  <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-yes">1x</span>
477
510
  <span class="cline-any cline-neutral">&nbsp;</span>
478
511
  <span class="cline-any cline-neutral">&nbsp;</span>
479
512
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -483,7 +516,6 @@
483
516
  <span class="cline-any cline-neutral">&nbsp;</span>
484
517
  <span class="cline-any cline-neutral">&nbsp;</span>
485
518
  <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-yes">142x</span>
487
519
  <span class="cline-any cline-neutral">&nbsp;</span>
488
520
  <span class="cline-any cline-neutral">&nbsp;</span>
489
521
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -491,17 +523,12 @@
491
523
  <span class="cline-any cline-neutral">&nbsp;</span>
492
524
  <span class="cline-any cline-neutral">&nbsp;</span>
493
525
  <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-yes">1x</span>
495
- <span class="cline-any cline-yes">1x</span>
496
526
  <span class="cline-any cline-neutral">&nbsp;</span>
497
527
  <span class="cline-any cline-neutral">&nbsp;</span>
498
528
  <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">142x</span>
500
529
  <span class="cline-any cline-neutral">&nbsp;</span>
501
530
  <span class="cline-any cline-neutral">&nbsp;</span>
502
531
  <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-yes">2x</span>
504
- <span class="cline-any cline-yes">2x</span>
505
532
  <span class="cline-any cline-neutral">&nbsp;</span>
506
533
  <span class="cline-any cline-neutral">&nbsp;</span>
507
534
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -512,9 +539,6 @@
512
539
  <span class="cline-any cline-neutral">&nbsp;</span>
513
540
  <span class="cline-any cline-neutral">&nbsp;</span>
514
541
  <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-yes">1x</span>
516
- <span class="cline-any cline-yes">1x</span>
517
- <span class="cline-any cline-yes">1x</span>
518
542
  <span class="cline-any cline-neutral">&nbsp;</span>
519
543
  <span class="cline-any cline-neutral">&nbsp;</span>
520
544
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -523,17 +547,25 @@
523
547
  <span class="cline-any cline-neutral">&nbsp;</span>
524
548
  <span class="cline-any cline-neutral">&nbsp;</span>
525
549
  <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-yes">155x</span>
526
551
  <span class="cline-any cline-neutral">&nbsp;</span>
527
552
  <span class="cline-any cline-neutral">&nbsp;</span>
528
553
  <span class="cline-any cline-neutral">&nbsp;</span>
554
+ <span class="cline-any cline-yes">1x</span>
555
+ <span class="cline-any cline-yes">1x</span>
529
556
  <span class="cline-any cline-neutral">&nbsp;</span>
530
557
  <span class="cline-any cline-neutral">&nbsp;</span>
531
558
  <span class="cline-any cline-neutral">&nbsp;</span>
532
559
  <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-yes">1x</span>
561
+ <span class="cline-any cline-yes">1x</span>
533
562
  <span class="cline-any cline-neutral">&nbsp;</span>
534
563
  <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-yes">2x</span>
565
+ <span class="cline-any cline-yes">2x</span>
535
566
  <span class="cline-any cline-neutral">&nbsp;</span>
536
567
  <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-yes">32x</span>
537
569
  <span class="cline-any cline-neutral">&nbsp;</span>
538
570
  <span class="cline-any cline-neutral">&nbsp;</span>
539
571
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -565,16 +597,13 @@
565
597
  *--------------------------------------------------------------------------------------------*/
566
598
  import {
567
599
  SvgAdd,
568
- SvgDelete,
569
- SvgEdit,
570
- SvgMore,
600
+ SvgPlay,
571
601
  } from "@itwin/itwinui-icons-react";
572
602
  import {
573
603
  Button,
574
- DropdownMenu,
575
604
  IconButton,
576
- MenuItem,
577
605
  Surface,
606
+ toaster,
578
607
  } from "@itwin/itwinui-react";
579
608
  import React, { useCallback, useEffect, useMemo, useState } from "react";
580
609
  import type { CreateTypeFromInterface } from "./utils";
@@ -591,12 +620,15 @@ import type { Report } from "@itwin/insights-client";
591
620
  import { REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
592
621
  import ReportAction from "./ReportAction";
593
622
  import { ReportMappings } from "./ReportMappings";
594
- import { HorizontalTile } from "./HorizontalTile";
623
+ import { ReportHorizontalTile } from "./ReportHorizontalTile";
595
624
  import { SearchBar } from "./SearchBar";
596
625
  import type { ReportsApiConfig } from "../context/ReportsApiConfigContext";
597
626
  import { useReportsApiConfig } from "../context/ReportsApiConfigContext";
598
627
  import { ReportsConfigWidget } from "../../ReportsConfigWidget";
599
628
  import { useActiveIModelConnection } from "@itwin/appui-react";
629
+ import BulkExtractor from "./BulkExtractor";
630
+ import { BeEvent } from "@itwin/core-bentley";
631
+ import { FailedExtractionToast, SuccessfulExtractionToast } from "./ExtractionToast";
600
632
  &nbsp;
601
633
  export type ReportType = CreateTypeFromInterface&lt;Report&gt;;
602
634
  &nbsp;
@@ -630,8 +662,17 @@ const fetchReports = async (
630
662
  };
631
663
  &nbsp;
632
664
  export const Reports = () =&gt; {
665
+ const successfulExtractionToast = <span class="fstat-no" title="function not covered" >(i</span>ModelName: string, odataFeedUrl: string) =&gt; {
666
+ <span class="cstat-no" title="statement not covered" > toaster.positive(&lt;SuccessfulExtractionToast iModelName={iModelName} odataFeedUrl={odataFeedUrl} /&gt;);</span>
667
+ };
668
+ &nbsp;
669
+ const failedExtractionToast = <span class="fstat-no" title="function not covered" >(i</span>ModelName: string) =&gt; {
670
+ <span class="cstat-no" title="statement not covered" > toaster.negative(&lt;FailedExtractionToast iModelName={iModelName} /&gt;);</span>
671
+ };
672
+ &nbsp;
633
673
  const iTwinId = useActiveIModelConnection()<span class="branch-0 cbranch-no" title="branch not covered" >?.i</span>TwinId ?? <span class="branch-1 cbranch-no" title="branch not covered" >"";</span>
634
674
  const apiConfig = useReportsApiConfig();
675
+ const [selectedReportIds, setSelectedReportIds] = useState&lt;string[]&gt;([]);
635
676
  const [showDeleteModal, setShowDeleteModal] = useState&lt;boolean&gt;(false);
636
677
  const [reportsView, setReportsView] = useState&lt;ReportsView&gt;(
637
678
  ReportsView.REPORTS
@@ -642,6 +683,14 @@ export const Reports = () =&gt; {
642
683
  const [isLoading, setIsLoading] = useState&lt;boolean&gt;(true);
643
684
  const [searchValue, setSearchValue] = useState&lt;string&gt;("");
644
685
  const [reports, setReports] = useState&lt;Report[]&gt;([]);
686
+ const bulkExtractor = useMemo(
687
+ () =&gt; new BulkExtractor(apiConfig, successfulExtractionToast, failedExtractionToast),
688
+ [apiConfig]
689
+ );
690
+ const jobStartEvent = useMemo(
691
+ () =&gt; new BeEvent&lt;(reportId: string) =&gt; void&gt;(),
692
+ []
693
+ );
645
694
  &nbsp;
646
695
  useEffect(() =&gt; {
647
696
  void fetchReports(setReports, iTwinId, setIsLoading, apiConfig);
@@ -667,6 +716,25 @@ export const Reports = () =&gt; {
667
716
  ),
668
717
  [reports, searchValue]
669
718
  );
719
+ &nbsp;
720
+ const onSelectionChange = (reportId: string, control: boolean) =&gt; {
721
+ if (!control)
722
+ setSelectedReportIds([]);
723
+ &nbsp;
724
+ setSelectedReportIds((sr) =&gt;
725
+ sr.some(<span class="fstat-no" title="function not covered" >(r</span>) =&gt; <span class="cstat-no" title="statement not covered" >reportId === r)</span>
726
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >sr.filter(</span>
727
+ <span class="fstat-no" title="function not covered" > (r</span>) =&gt; <span class="cstat-no" title="statement not covered" >reportId !== r</span>
728
+ )
729
+ : [...sr, reportId]
730
+ );
731
+ };
732
+ &nbsp;
733
+ const updateDatasets = useCallback(<span class="fstat-no" title="function not covered" >async </span>() =&gt; {
734
+ <span class="cstat-no" title="statement not covered" > await bulkExtractor.runReportExtractions(selectedReportIds);</span>
735
+ <span class="cstat-no" title="statement not covered" > selectedReportIds.map(<span class="fstat-no" title="function not covered" >(r</span>eportId) =&gt; <span class="cstat-no" title="statement not covered" >jobStartEvent.raiseEvent(reportId))</span>;</span>
736
+ <span class="cstat-no" title="statement not covered" > setSelectedReportIds([]);</span>
737
+ }, [selectedReportIds, jobStartEvent, bulkExtractor]);
670
738
  &nbsp;
671
739
  switch (reportsView) {
672
740
  case ReportsView.ADDING:
@@ -683,7 +751,7 @@ export const Reports = () =&gt; {
683
751
  ) : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
684
752
  case ReportsView.REPORTSMAPPING:
685
753
  return selectedReport ? (
686
- &lt;ReportMappings report={selectedReport} goBack={refresh} /&gt;
754
+ &lt;ReportMappings report={selectedReport} bulkExtractor={bulkExtractor} goBack={refresh} /&gt;
687
755
  ) : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
688
756
  default:
689
757
  return (
@@ -693,8 +761,8 @@ export const Reports = () =&gt; {
693
761
  "ReportsConfigWidget:ITwinReports"
694
762
  )}
695
763
  /&gt;
696
- &lt;Surface className="reports-list-container"&gt;
697
- &lt;div className="toolbar"&gt;
764
+ &lt;Surface className="rcw-reports-list-container"&gt;
765
+ &lt;div className="rcw-toolbar"&gt;
698
766
  &lt;Button
699
767
  startIcon={&lt;SvgAdd /&gt;}
700
768
  onClick={() =&gt; addReport()}
@@ -704,12 +772,23 @@ export const Reports = () =&gt; {
704
772
  "ReportsConfigWidget:New"
705
773
  )}
706
774
  &lt;/Button&gt;
707
- &lt;div className="search-bar-container" data-testid="search-bar"&gt;
708
- &lt;SearchBar
709
- searchValue={searchValue}
710
- setSearchValue={setSearchValue}
711
- disabled={isLoading}
712
- /&gt;
775
+ &lt;IconButton
776
+ title={ReportsConfigWidget.localization.getLocalizedString(
777
+ "ReportsConfigWidget:UpdateDatasets"
778
+ )}
779
+ onClick={updateDatasets}
780
+ disabled={selectedReportIds.length === 0}
781
+ &gt;
782
+ &lt;SvgPlay /&gt;
783
+ &lt;/IconButton&gt;
784
+ &lt;div className="rcw-search-bar-container" data-testid="rcw-search-bar"&gt;
785
+ &lt;div className="rcw-search-button"&gt;
786
+ &lt;SearchBar
787
+ searchValue={searchValue}
788
+ setSearchValue={setSearchValue}
789
+ disabled={isLoading}
790
+ /&gt;
791
+ &lt;/div&gt;
713
792
  &lt;/div&gt;
714
793
  &lt;/div&gt;
715
794
  {isLoading ? (
@@ -721,7 +800,7 @@ export const Reports = () =&gt; {
721
800
  "ReportsConfigWidget:NoReports"
722
801
  )}
723
802
  &lt;div&gt;
724
- &lt;Button onClick={() =&gt; addReport()} styleType="cta"&gt;
803
+ &lt;Button onClick={addReport} styleType="cta"&gt;
725
804
  {ReportsConfigWidget.localization.getLocalizedString(
726
805
  "ReportsConfigWidget:CreateOneReportCTA"
727
806
  )}
@@ -730,58 +809,27 @@ export const Reports = () =&gt; {
730
809
  &lt;/&gt;
731
810
  &lt;/EmptyMessage&gt;
732
811
  ) : (
733
- &lt;div className="reports-list"&gt;
812
+ &lt;div className="rcw-reports-list"&gt;
734
813
  {filteredReports.map((report) =&gt; (
735
- &lt;HorizontalTile
814
+ &lt;ReportHorizontalTile
736
815
  key={report.id}
737
- title={report.displayName}
738
- subText={report.description ?? <span class="branch-1 cbranch-no" title="branch not covered" >""}</span>
739
- subtextToolTip={report.description ?? <span class="branch-1 cbranch-no" title="branch not covered" >""}</span>
740
- titleTooltip={report.displayName}
816
+ report={report}
741
817
  onClickTitle={() =&gt; {
742
818
  setSelectedReport(report);
743
819
  setReportsView(ReportsView.REPORTSMAPPING);
744
820
  }}
745
- button={
746
- &lt;DropdownMenu
747
- menuItems={(close: () =&gt; void) =&gt; [
748
- &lt;MenuItem
749
- key={0}
750
- onClick={() =&gt; {
751
- setSelectedReport(report);
752
- setReportsView(ReportsView.MODIFYING);
753
- }}
754
- icon={&lt;SvgEdit /&gt;}
755
- &gt;
756
- {ReportsConfigWidget.localization.getLocalizedString(
757
- "ReportsConfigWidget:Modify"
758
- )}
759
- &lt;/MenuItem&gt;,
760
- &lt;MenuItem
761
- key={1}
762
- onClick={() =&gt; {
763
- setSelectedReport(report);
764
- setShowDeleteModal(true);
765
- close();
766
- }}
767
- icon={&lt;SvgDelete /&gt;}
768
- &gt;
769
- {ReportsConfigWidget.localization.getLocalizedString(
770
- "ReportsConfigWidget:Remove"
771
- )}
772
- &lt;/MenuItem&gt;,
773
- ]}
774
- &gt;
775
- &lt;IconButton styleType="borderless"&gt;
776
- &lt;SvgMore
777
- style={{
778
- width: "16px",
779
- height: "16px",
780
- }}
781
- /&gt;
782
- &lt;/IconButton&gt;
783
- &lt;/DropdownMenu&gt;
784
- }
821
+ jobStartEvent={jobStartEvent}
822
+ bulkExtractor={bulkExtractor}
823
+ onClickDelete={() =&gt; {
824
+ setSelectedReport(report);
825
+ setShowDeleteModal(true);
826
+ }}
827
+ onClickModify={() =&gt; {
828
+ setSelectedReport(report);
829
+ setReportsView(ReportsView.MODIFYING);
830
+ }}
831
+ onSelectionChange={onSelectionChange}
832
+ selected={selectedReportIds.some((reportId) =&gt; report.id === reportId)}
785
833
  /&gt;
786
834
  ))}
787
835
  &lt;/div&gt;
@@ -814,7 +862,7 @@ export const Reports = () =&gt; {
814
862
  <div class='footer quiet pad2 space-top1 center small'>
815
863
  Code coverage generated by
816
864
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
817
- at Thu Sep 29 2022 19:04:40 GMT+0000 (Coordinated Universal Time)
865
+ at Thu Jan 19 2023 10:29:16 GMT+0000 (Coordinated Universal Time)
818
866
  </div>
819
867
  <script src="../../../prettify.js"></script>
820
868
  <script>
@@ -114,22 +114,22 @@
114
114
  <span class="cline-any cline-neutral">&nbsp;</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
116
116
  <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-yes">4x</span>
118
- <span class="cline-any cline-yes">4x</span>
119
- <span class="cline-any cline-yes">4x</span>
117
+ <span class="cline-any cline-yes">7x</span>
118
+ <span class="cline-any cline-yes">7x</span>
119
+ <span class="cline-any cline-yes">7x</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">4x</span>
122
- <span class="cline-any cline-yes">4x</span>
121
+ <span class="cline-any cline-yes">7x</span>
122
+ <span class="cline-any cline-yes">7x</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
124
  <span class="cline-any cline-neutral">&nbsp;</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">4x</span>
129
+ <span class="cline-any cline-yes">7x</span>
130
130
  <span class="cline-any cline-no">&nbsp;</span>
131
131
  <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-yes">4x</span>
132
+ <span class="cline-any cline-yes">7x</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -154,7 +154,7 @@
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-yes">4x</span>
157
+ <span class="cline-any cline-yes">7x</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
159
159
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
160
160
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -193,7 +193,7 @@ const ReportsContainer = <span class="fstat-no" title="function not covered" >({
193
193
  &nbsp;
194
194
  <span class="cstat-no" title="statement not covered" > return (</span>
195
195
  &lt;ReportsApiConfigContext.Provider value={apiConfig}&gt;
196
- &lt;div className="reports-container"&gt;
196
+ &lt;div className="rcw-reports-container"&gt;
197
197
  &lt;Reports /&gt;
198
198
  &lt;/div&gt;
199
199
  &lt;/ReportsApiConfigContext.Provider&gt;
@@ -208,7 +208,7 @@ export default ReportsContainer;
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
211
- at Thu Sep 29 2022 19:04:40 GMT+0000 (Coordinated Universal Time)
211
+ at Thu Jan 19 2023 10:29:16 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  <script src="../../../prettify.js"></script>
214
214
  <script>