@itwin/reports-config-widget-react 0.5.0 → 0.7.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 (386) hide show
  1. package/CHANGELOG.json +76 -1
  2. package/CHANGELOG.md +27 -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 +126 -0
  7. package/api/reports-config-widget-react.exports.csv +14 -0
  8. package/api/temp/reports-config-widget-react.api.md +126 -0
  9. package/coverage/clover.xml +521 -521
  10. package/coverage/coverage-final.json +32 -32
  11. package/coverage/lcov-report/index.html +31 -31
  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 +29 -86
  17. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +5 -38
  18. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +25 -121
  19. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +120 -96
  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 +88 -301
  36. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +42 -204
  37. package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +164 -50
  38. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +15 -63
  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 +10 -13
  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 +13 -13
  51. package/coverage/lcov.info +941 -919
  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.d.ts +1 -0
  58. package/lib/cjs/reports-config-widget-react.d.ts.map +1 -1
  59. package/lib/cjs/reports-config-widget-react.js +4 -3
  60. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  61. package/lib/cjs/test/AddMappingModal.test.js +11 -10
  62. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  63. package/lib/cjs/test/BulkExtractor.test.js +68 -43
  64. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  65. package/lib/cjs/test/DeleteModal.test.js +3 -3
  66. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  67. package/lib/cjs/test/ReportAction.test.js +6 -4
  68. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  69. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +64 -25
  70. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  71. package/lib/cjs/test/ReportMappings.test.js +39 -18
  72. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  73. package/lib/cjs/test/Reports.test.js +3 -3
  74. package/lib/cjs/test/Reports.test.js.map +1 -1
  75. package/lib/cjs/test/WidgetHeader.test.js +3 -3
  76. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  77. package/lib/cjs/test/test-utils.d.ts +8 -0
  78. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  79. package/lib/cjs/test/test-utils.js +16 -4
  80. package/lib/cjs/test/test-utils.js.map +1 -1
  81. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  82. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +10 -4
  83. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  84. package/lib/cjs/widget/ReportsConfigUiProvider.js +11 -7
  85. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  86. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  87. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  88. package/lib/cjs/widget/components/AddMappingsModal.d.ts +1 -1
  89. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  90. package/lib/cjs/widget/components/AddMappingsModal.js +7 -7
  91. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  92. package/lib/cjs/widget/components/AddMappingsModal.scss +1 -1
  93. package/lib/cjs/widget/components/BulkExtractor.d.ts +8 -5
  94. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  95. package/lib/cjs/widget/components/BulkExtractor.js +52 -35
  96. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  97. package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
  98. package/lib/cjs/widget/components/Constants.js +3 -3
  99. package/lib/cjs/widget/components/Constants.js.map +1 -1
  100. package/lib/cjs/widget/components/DeleteModal.d.ts +1 -1
  101. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  102. package/lib/cjs/widget/components/DeleteModal.js +5 -5
  103. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  104. package/lib/cjs/widget/components/DeleteModal.scss +2 -2
  105. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  106. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js +3 -3
  107. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -1
  108. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  109. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js +3 -3
  110. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -1
  111. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  112. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +3 -3
  113. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
  114. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  115. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js +3 -3
  116. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -1
  117. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  118. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +3 -3
  119. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
  120. package/lib/cjs/widget/components/ExtractionStatus.d.ts +1 -1
  121. package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -1
  122. package/lib/cjs/widget/components/ExtractionStatus.js +9 -9
  123. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  124. package/lib/cjs/widget/components/ExtractionStatus.scss +1 -1
  125. package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -1
  126. package/lib/cjs/widget/components/ExtractionToast.js +3 -3
  127. package/lib/cjs/widget/components/ExtractionToast.js.map +1 -1
  128. package/lib/cjs/widget/components/HorizontalTile.d.ts.map +1 -1
  129. package/lib/cjs/widget/components/HorizontalTile.js +1 -2
  130. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  131. package/lib/cjs/widget/components/HorizontalTile.scss +1 -4
  132. package/lib/cjs/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  133. package/lib/cjs/widget/components/LocalizedTablePaginator.js +1 -1
  134. package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
  135. package/lib/cjs/widget/components/ReportAction.d.ts +8 -0
  136. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  137. package/lib/cjs/widget/components/ReportAction.js +9 -7
  138. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  139. package/lib/cjs/widget/components/ReportAction.scss +1 -1
  140. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  141. package/lib/cjs/widget/components/ReportHorizontalTile.js +4 -4
  142. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  143. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  144. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +46 -45
  145. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  146. package/lib/cjs/widget/components/ReportMappings.d.ts +8 -0
  147. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  148. package/lib/cjs/widget/components/ReportMappings.js +25 -11
  149. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  150. package/lib/cjs/widget/components/Reports.d.ts +9 -1
  151. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  152. package/lib/cjs/widget/components/Reports.js +7 -8
  153. package/lib/cjs/widget/components/Reports.js.map +1 -1
  154. package/lib/cjs/widget/components/Reports.scss +0 -1
  155. package/lib/cjs/widget/components/ReportsConfigContext.d.ts +34 -4
  156. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -1
  157. package/lib/cjs/widget/components/ReportsConfigContext.js +27 -9
  158. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
  159. package/lib/cjs/widget/components/ReportsContainer.d.ts +3 -6
  160. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  161. package/lib/cjs/widget/components/ReportsContainer.js +7 -5
  162. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  163. package/lib/cjs/widget/components/ReportsContainer.scss +1 -1
  164. package/lib/cjs/widget/components/ReportsHeader.d.ts +1 -1
  165. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -1
  166. package/lib/cjs/widget/components/ReportsHeader.js +6 -7
  167. package/lib/cjs/widget/components/ReportsHeader.js.map +1 -1
  168. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -1
  169. package/lib/cjs/widget/components/ReportsRouter.js +3 -3
  170. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
  171. package/lib/cjs/widget/components/SearchBar.d.ts +1 -1
  172. package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
  173. package/lib/cjs/widget/components/SearchBar.js +4 -4
  174. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  175. package/lib/cjs/widget/components/SelectIModel.d.ts +1 -1
  176. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  177. package/lib/cjs/widget/components/SelectIModel.js +1 -1
  178. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  179. package/lib/cjs/widget/components/SelectIModel.scss +1 -1
  180. package/lib/cjs/widget/components/utils.d.ts +1 -1
  181. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  182. package/lib/cjs/widget/components/utils.js +5 -5
  183. package/lib/cjs/widget/components/utils.js.map +1 -1
  184. package/lib/cjs/widget/components/utils.scss +1 -1
  185. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -1
  186. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
  187. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +3 -3
  188. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  189. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
  190. package/lib/cjs/widget/hooks/useValidator.d.ts +1 -4
  191. package/lib/cjs/widget/hooks/useValidator.d.ts.map +1 -1
  192. package/lib/cjs/widget/hooks/useValidator.js +3 -3
  193. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  194. package/lib/esm/ReportsConfigWidget.d.ts +4 -0
  195. package/lib/esm/ReportsConfigWidget.d.ts.map +1 -1
  196. package/lib/esm/ReportsConfigWidget.js +4 -0
  197. package/lib/esm/ReportsConfigWidget.js.map +1 -1
  198. package/lib/esm/reports-config-widget-react.d.ts +1 -0
  199. package/lib/esm/reports-config-widget-react.d.ts.map +1 -1
  200. package/lib/esm/reports-config-widget-react.js +4 -3
  201. package/lib/esm/reports-config-widget-react.js.map +1 -1
  202. package/lib/esm/test/AddMappingModal.test.js +12 -11
  203. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  204. package/lib/esm/test/BulkExtractor.test.js +69 -44
  205. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  206. package/lib/esm/test/DeleteModal.test.js +4 -4
  207. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  208. package/lib/esm/test/ReportAction.test.js +7 -5
  209. package/lib/esm/test/ReportAction.test.js.map +1 -1
  210. package/lib/esm/test/ReportMappingHorizontalTile.test.js +65 -26
  211. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  212. package/lib/esm/test/ReportMappings.test.js +41 -20
  213. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  214. package/lib/esm/test/Reports.test.js +4 -4
  215. package/lib/esm/test/Reports.test.js.map +1 -1
  216. package/lib/esm/test/WidgetHeader.test.js +3 -3
  217. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  218. package/lib/esm/test/test-utils.d.ts +8 -0
  219. package/lib/esm/test/test-utils.d.ts.map +1 -1
  220. package/lib/esm/test/test-utils.js +15 -3
  221. package/lib/esm/test/test-utils.js.map +1 -1
  222. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  223. package/lib/esm/widget/ReportsConfigUiProvider.d.ts +10 -4
  224. package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  225. package/lib/esm/widget/ReportsConfigUiProvider.js +12 -8
  226. package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
  227. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  228. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  229. package/lib/esm/widget/components/AddMappingsModal.d.ts +1 -1
  230. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  231. package/lib/esm/widget/components/AddMappingsModal.js +7 -7
  232. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  233. package/lib/esm/widget/components/AddMappingsModal.scss +1 -1
  234. package/lib/esm/widget/components/BulkExtractor.d.ts +8 -5
  235. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  236. package/lib/esm/widget/components/BulkExtractor.js +53 -36
  237. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  238. package/lib/esm/widget/components/Constants.d.ts.map +1 -1
  239. package/lib/esm/widget/components/Constants.js +3 -3
  240. package/lib/esm/widget/components/Constants.js.map +1 -1
  241. package/lib/esm/widget/components/DeleteModal.d.ts +1 -1
  242. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  243. package/lib/esm/widget/components/DeleteModal.js +6 -6
  244. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  245. package/lib/esm/widget/components/DeleteModal.scss +2 -2
  246. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  247. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js +3 -3
  248. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -1
  249. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  250. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js +3 -3
  251. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -1
  252. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  253. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +3 -3
  254. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
  255. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  256. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js +3 -3
  257. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -1
  258. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  259. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +3 -3
  260. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
  261. package/lib/esm/widget/components/ExtractionStatus.d.ts +1 -1
  262. package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -1
  263. package/lib/esm/widget/components/ExtractionStatus.js +9 -9
  264. package/lib/esm/widget/components/ExtractionStatus.js.map +1 -1
  265. package/lib/esm/widget/components/ExtractionStatus.scss +1 -1
  266. package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -1
  267. package/lib/esm/widget/components/ExtractionToast.js +3 -3
  268. package/lib/esm/widget/components/ExtractionToast.js.map +1 -1
  269. package/lib/esm/widget/components/HorizontalTile.d.ts.map +1 -1
  270. package/lib/esm/widget/components/HorizontalTile.js +1 -2
  271. package/lib/esm/widget/components/HorizontalTile.js.map +1 -1
  272. package/lib/esm/widget/components/HorizontalTile.scss +1 -4
  273. package/lib/esm/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  274. package/lib/esm/widget/components/LocalizedTablePaginator.js +1 -1
  275. package/lib/esm/widget/components/LocalizedTablePaginator.js.map +1 -1
  276. package/lib/esm/widget/components/ReportAction.d.ts +8 -0
  277. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  278. package/lib/esm/widget/components/ReportAction.js +10 -8
  279. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  280. package/lib/esm/widget/components/ReportAction.scss +1 -1
  281. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  282. package/lib/esm/widget/components/ReportHorizontalTile.js +6 -6
  283. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  284. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  285. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +47 -46
  286. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  287. package/lib/esm/widget/components/ReportMappings.d.ts +8 -0
  288. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  289. package/lib/esm/widget/components/ReportMappings.js +28 -14
  290. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  291. package/lib/esm/widget/components/Reports.d.ts +9 -1
  292. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  293. package/lib/esm/widget/components/Reports.js +8 -9
  294. package/lib/esm/widget/components/Reports.js.map +1 -1
  295. package/lib/esm/widget/components/Reports.scss +0 -1
  296. package/lib/esm/widget/components/ReportsConfigContext.d.ts +34 -4
  297. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -1
  298. package/lib/esm/widget/components/ReportsConfigContext.js +28 -10
  299. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
  300. package/lib/esm/widget/components/ReportsContainer.d.ts +3 -6
  301. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  302. package/lib/esm/widget/components/ReportsContainer.js +7 -5
  303. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  304. package/lib/esm/widget/components/ReportsContainer.scss +1 -1
  305. package/lib/esm/widget/components/ReportsHeader.d.ts +1 -1
  306. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -1
  307. package/lib/esm/widget/components/ReportsHeader.js +6 -7
  308. package/lib/esm/widget/components/ReportsHeader.js.map +1 -1
  309. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -1
  310. package/lib/esm/widget/components/ReportsRouter.js +3 -3
  311. package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
  312. package/lib/esm/widget/components/SearchBar.d.ts +1 -1
  313. package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
  314. package/lib/esm/widget/components/SearchBar.js +4 -4
  315. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  316. package/lib/esm/widget/components/SelectIModel.d.ts +1 -1
  317. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  318. package/lib/esm/widget/components/SelectIModel.js +2 -2
  319. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  320. package/lib/esm/widget/components/SelectIModel.scss +1 -1
  321. package/lib/esm/widget/components/utils.d.ts +1 -1
  322. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  323. package/lib/esm/widget/components/utils.js +6 -6
  324. package/lib/esm/widget/components/utils.js.map +1 -1
  325. package/lib/esm/widget/components/utils.scss +1 -1
  326. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -1
  327. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -1
  328. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +3 -3
  329. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  330. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -1
  331. package/lib/esm/widget/hooks/useValidator.d.ts +1 -4
  332. package/lib/esm/widget/hooks/useValidator.d.ts.map +1 -1
  333. package/lib/esm/widget/hooks/useValidator.js +3 -3
  334. package/lib/esm/widget/hooks/useValidator.js.map +1 -1
  335. package/package.json +9 -4
  336. package/src/ReportsConfigWidget.ts +9 -9
  337. package/src/reports-config-widget-react.ts +4 -3
  338. package/src/test/AddMappingModal.test.tsx +45 -70
  339. package/src/test/BulkExtractor.test.ts +73 -118
  340. package/src/test/DeleteModal.test.tsx +6 -23
  341. package/src/test/ReportAction.test.tsx +20 -38
  342. package/src/test/ReportMappingHorizontalTile.test.tsx +137 -106
  343. package/src/test/ReportMappings.test.tsx +73 -88
  344. package/src/test/Reports.test.tsx +30 -64
  345. package/src/test/WidgetHeader.test.tsx +3 -3
  346. package/src/test/test-utils.tsx +18 -8
  347. package/src/widget/ReportsConfigUiProvider.tsx +18 -37
  348. package/src/widget/components/ActionPanel.tsx +3 -14
  349. package/src/widget/components/AddMappingsModal.scss +1 -1
  350. package/src/widget/components/AddMappingsModal.tsx +21 -53
  351. package/src/widget/components/BulkExtractor.ts +67 -59
  352. package/src/widget/components/Constants.ts +4 -4
  353. package/src/widget/components/DeleteModal.scss +2 -2
  354. package/src/widget/components/DeleteModal.tsx +11 -41
  355. package/src/widget/components/ExtractionStates/FailedExtractionState.tsx +4 -9
  356. package/src/widget/components/ExtractionStates/QueuedExtractionState.tsx +4 -9
  357. package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +4 -9
  358. package/src/widget/components/ExtractionStates/StartingExtractionState.tsx +4 -11
  359. package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +4 -9
  360. package/src/widget/components/ExtractionStatus.scss +1 -1
  361. package/src/widget/components/ExtractionStatus.tsx +9 -18
  362. package/src/widget/components/ExtractionToast.tsx +12 -9
  363. package/src/widget/components/HorizontalTile.scss +1 -4
  364. package/src/widget/components/HorizontalTile.tsx +12 -33
  365. package/src/widget/components/LocalizedTablePaginator.tsx +13 -44
  366. package/src/widget/components/ReportAction.scss +1 -1
  367. package/src/widget/components/ReportAction.tsx +26 -39
  368. package/src/widget/components/ReportHorizontalTile.tsx +45 -55
  369. package/src/widget/components/ReportMappingHorizontalTile.tsx +70 -78
  370. package/src/widget/components/ReportMappings.tsx +61 -132
  371. package/src/widget/components/Reports.scss +0 -1
  372. package/src/widget/components/Reports.tsx +30 -84
  373. package/src/widget/components/ReportsConfigContext.tsx +70 -32
  374. package/src/widget/components/ReportsContainer.scss +1 -1
  375. package/src/widget/components/ReportsContainer.tsx +12 -28
  376. package/src/widget/components/ReportsHeader.tsx +6 -19
  377. package/src/widget/components/ReportsRouter.tsx +4 -6
  378. package/src/widget/components/SearchBar.tsx +9 -13
  379. package/src/widget/components/SelectIModel.scss +1 -1
  380. package/src/widget/components/SelectIModel.tsx +9 -24
  381. package/src/widget/components/utils.scss +1 -1
  382. package/src/widget/components/utils.tsx +21 -69
  383. package/src/widget/context/BulkExtractorContext.tsx +4 -6
  384. package/src/widget/context/ReportsConfigApiContext.tsx +7 -8
  385. package/src/widget/hooks/useValidator.ts +10 -24
  386. package/tsconfig.json +11 -11
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.92% </span>
26
+ <span class="strong">93.45% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>92/99</span>
28
+ <span class='fraction'>100/107</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">90.47% </span>
33
+ <span class="strong">91.3% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>19/21</span>
35
+ <span class='fraction'>21/23</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>15/15</span>
42
+ <span class='fraction'>21/21</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.68% </span>
47
+ <span class="strong">93.81% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>89/95</span>
49
+ <span class='fraction'>91/97</span>
50
50
  </div>
51
51
 
52
52
 
@@ -256,12 +256,19 @@
256
256
  <a name='L191'></a><a href='#L191'>191</a>
257
257
  <a name='L192'></a><a href='#L192'>192</a>
258
258
  <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
260
268
  <span class="cline-any cline-neutral">&nbsp;</span>
261
269
  <span class="cline-any cline-neutral">&nbsp;</span>
262
270
  <span class="cline-any cline-neutral">&nbsp;</span>
263
271
  <span class="cline-any cline-yes">8x</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
272
  <span class="cline-any cline-yes">8x</span>
266
273
  <span class="cline-any cline-yes">8x</span>
267
274
  <span class="cline-any cline-yes">8x</span>
@@ -273,11 +280,14 @@
273
280
  <span class="cline-any cline-neutral">&nbsp;</span>
274
281
  <span class="cline-any cline-neutral">&nbsp;</span>
275
282
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">8x</span>
277
283
  <span class="cline-any cline-neutral">&nbsp;</span>
278
284
  <span class="cline-any cline-neutral">&nbsp;</span>
279
285
  <span class="cline-any cline-neutral">&nbsp;</span>
280
286
  <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-yes">8x</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-neutral">&nbsp;</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
291
  <span class="cline-any cline-yes">68x</span>
282
292
  <span class="cline-any cline-yes">68x</span>
283
293
  <span class="cline-any cline-yes">68x</span>
@@ -304,11 +314,11 @@
304
314
  <span class="cline-any cline-neutral">&nbsp;</span>
305
315
  <span class="cline-any cline-neutral">&nbsp;</span>
306
316
  <span class="cline-any cline-yes">17x</span>
307
- <span class="cline-any cline-yes">20x</span>
308
- <span class="cline-any cline-yes">20x</span>
309
- <span class="cline-any cline-yes">4x</span>
317
+ <span class="cline-any cline-yes">21x</span>
318
+ <span class="cline-any cline-yes">21x</span>
319
+ <span class="cline-any cline-yes">5x</span>
310
320
  <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">20x</span>
321
+ <span class="cline-any cline-yes">21x</span>
312
322
  <span class="cline-any cline-neutral">&nbsp;</span>
313
323
  <span class="cline-any cline-neutral">&nbsp;</span>
314
324
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -353,25 +363,21 @@
353
363
  <span class="cline-any cline-neutral">&nbsp;</span>
354
364
  <span class="cline-any cline-neutral">&nbsp;</span>
355
365
  <span class="cline-any cline-yes">15x</span>
356
- <span class="cline-any cline-yes">2x</span>
357
366
  <span class="cline-any cline-neutral">&nbsp;</span>
358
367
  <span class="cline-any cline-yes">13x</span>
359
- <span class="cline-any cline-yes">5x</span>
360
368
  <span class="cline-any cline-neutral">&nbsp;</span>
361
369
  <span class="cline-any cline-yes">8x</span>
362
- <span class="cline-any cline-yes">6x</span>
363
370
  <span class="cline-any cline-neutral">&nbsp;</span>
364
371
  <span class="cline-any cline-yes">2x</span>
365
- <span class="cline-any cline-yes">2x</span>
366
372
  <span class="cline-any cline-neutral">&nbsp;</span>
367
373
  <span class="cline-any cline-no">&nbsp;</span>
368
374
  <span class="cline-any cline-neutral">&nbsp;</span>
369
375
  <span class="cline-any cline-neutral">&nbsp;</span>
370
376
  <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-yes">20x</span>
372
- <span class="cline-any cline-yes">20x</span>
373
- <span class="cline-any cline-yes">20x</span>
374
- <span class="cline-any cline-yes">20x</span>
377
+ <span class="cline-any cline-yes">21x</span>
378
+ <span class="cline-any cline-yes">21x</span>
379
+ <span class="cline-any cline-yes">21x</span>
380
+ <span class="cline-any cline-yes">21x</span>
375
381
  <span class="cline-any cline-neutral">&nbsp;</span>
376
382
  <span class="cline-any cline-no">&nbsp;</span>
377
383
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -379,7 +385,7 @@
379
385
  <span class="cline-any cline-neutral">&nbsp;</span>
380
386
  <span class="cline-any cline-neutral">&nbsp;</span>
381
387
  <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-yes">27x</span>
388
+ <span class="cline-any cline-yes">24x</span>
383
389
  <span class="cline-any cline-yes">13x</span>
384
390
  <span class="cline-any cline-yes">13x</span>
385
391
  <span class="cline-any cline-yes">8x</span>
@@ -396,24 +402,29 @@
396
402
  <span class="cline-any cline-yes">5x</span>
397
403
  <span class="cline-any cline-yes">5x</span>
398
404
  <span class="cline-any cline-yes">5x</span>
405
+ <span class="cline-any cline-yes">8x</span>
399
406
  <span class="cline-any cline-yes">5x</span>
400
407
  <span class="cline-any cline-yes">5x</span>
408
+ <span class="cline-any cline-yes">8x</span>
409
+ <span class="cline-any cline-yes">8x</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
411
  <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-yes">5x</span>
403
412
  <span class="cline-any cline-neutral">&nbsp;</span>
404
413
  <span class="cline-any cline-yes">5x</span>
405
- <span class="cline-any cline-yes">7x</span>
414
+ <span class="cline-any cline-yes">8x</span>
415
+ <span class="cline-any cline-yes">8x</span>
406
416
  <span class="cline-any cline-neutral">&nbsp;</span>
407
417
  <span class="cline-any cline-neutral">&nbsp;</span>
408
418
  <span class="cline-any cline-neutral">&nbsp;</span>
409
419
  <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-yes">12x</span>
411
- <span class="cline-any cline-yes">12x</span>
420
+ <span class="cline-any cline-yes">5x</span>
412
421
  <span class="cline-any cline-neutral">&nbsp;</span>
413
422
  <span class="cline-any cline-neutral">&nbsp;</span>
414
423
  <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-yes">12x</span>
416
- <span class="cline-any cline-yes">12x</span>
424
+ <span class="cline-any cline-yes">13x</span>
425
+ <span class="cline-any cline-yes">13x</span>
426
+ <span class="cline-any cline-yes">13x</span>
427
+ <span class="cline-any cline-yes">13x</span>
417
428
  <span class="cline-any cline-neutral">&nbsp;</span>
418
429
  <span class="cline-any cline-no">&nbsp;</span>
419
430
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -431,33 +442,38 @@
431
442
  <span class="cline-any cline-neutral">&nbsp;</span>
432
443
  <span class="cline-any cline-neutral">&nbsp;</span>
433
444
  <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-yes">11x</span>
435
- <span class="cline-any cline-yes">12x</span>
436
- <span class="cline-any cline-yes">12x</span>
437
- <span class="cline-any cline-yes">12x</span>
438
- <span class="cline-any cline-yes">12x</span>
445
+ <span class="cline-any cline-yes">9x</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-yes">13x</span>
448
+ <span class="cline-any cline-yes">13x</span>
449
+ <span class="cline-any cline-yes">13x</span>
450
+ <span class="cline-any cline-yes">13x</span>
439
451
  <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-yes">12x</span>
441
452
  <span class="cline-any cline-neutral">&nbsp;</span>
442
453
  <span class="cline-any cline-neutral">&nbsp;</span>
454
+ <span class="cline-any cline-yes">9x</span>
455
+ <span class="cline-any cline-neutral">&nbsp;</span>
443
456
  <span class="cline-any cline-neutral">&nbsp;</span>
444
457
  <span class="cline-any cline-neutral">&nbsp;</span>
445
458
  <span class="cline-any cline-yes">5x</span>
459
+ <span class="cline-any cline-yes">5x</span>
460
+ <span class="cline-any cline-yes">8x</span>
446
461
  <span class="cline-any cline-neutral">&nbsp;</span>
447
462
  <span class="cline-any cline-neutral">&nbsp;</span>
448
463
  <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-yes">8x</span>
464
+ <span class="cline-any cline-neutral">&nbsp;</span>
465
+ <span class="cline-any cline-yes">5x</span>
450
466
  <span class="cline-any cline-neutral">&nbsp;</span>
451
467
  <span class="cline-any cline-neutral">&nbsp;</span>
452
468
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
453
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
454
- * See LICENSE.md in the project root for license terms and full copyright notice.
455
- *--------------------------------------------------------------------------------------------*/
456
- import { ExtractorState } from "@itwin/insights-client";
457
- import type { ExtractionClient, ReportMapping, ReportsClient } from "@itwin/insights-client";
469
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
470
+ * See LICENSE.md in the project root for license terms and full copyright notice.
471
+ *--------------------------------------------------------------------------------------------*/
472
+ import { ExtractionState } from "@itwin/insights-client";
458
473
  import { handleError } from "./utils";
459
474
  import { ExtractionStates } from "./ExtractionStatus";
460
475
  import { STATUS_CHECK_INTERVAL } from "./Constants";
476
+ import type { ExtractionMapping, ExtractionRequestDetails, IExtractionClient, IReportsClient, ReportMapping } from "@itwin/insights-client";
461
477
  import type { AccessToken } from "@itwin/core-bentley";
462
478
  &nbsp;
463
479
  export type ReportMappingAndMapping = ReportMapping &amp; {
@@ -466,13 +482,15 @@ export type ReportMappingAndMapping = ReportMapping &amp; {
466
482
  iModelName: string;
467
483
  };
468
484
  &nbsp;
485
+ /**
486
+ * @public
487
+ */
469
488
  export class BulkExtractor {
470
- private _reportsClientApi: ReportsClient;
471
- private _extractionClientApi: ExtractionClient;
489
+ private _reportsClientApi: IReportsClient;
490
+ private _extractionClientApi: IExtractionClient;
472
491
  private _accessToken: () =&gt; Promise&lt;string&gt;;
473
- &nbsp;
474
492
  private _reportIModels = new Map&lt;string, string[]&gt;(); // key: reportId, value: iModels
475
- private _iModelStates = new Map&lt;string, ExtractorState&gt;(); // key: iModelId, value: state
493
+ private _iModelStates = new Map&lt;string, ExtractionState&gt;(); // key: iModelId, value: state
476
494
  private _timeFetched = new Date();
477
495
  private _iModelRun = new Map&lt;string, string&gt;(); // key: iModelId, value: runId
478
496
  private _iModelToast = new Set&lt;string&gt;();
@@ -482,8 +500,8 @@ export class BulkExtractor {
482
500
  private _iModels: string[] = [];
483
501
  &nbsp;
484
502
  constructor(
485
- reportsClient: ReportsClient,
486
- extractionClient: ExtractionClient,
503
+ reportsClient: IReportsClient,
504
+ extractionClient: IExtractionClient,
487
505
  getAccessToken: () =&gt; Promise&lt;AccessToken&gt;,
488
506
  successfulExtractionToast: (iModelName: string, odataFeedUrl: string) =&gt; void,
489
507
  failedExtractionToast: (iModelName: string) =&gt; void,
@@ -498,7 +516,7 @@ export class BulkExtractor {
498
516
  private async fetchStates(): Promise&lt;void&gt; {
499
517
  for (const [iModelId, runId] of this._iModelRun) {
500
518
  const state = await this.getState(runId);
501
- if (state === ExtractorState.Succeeded || state === ExtractorState.Failed) {
519
+ if (state === ExtractionState.Succeeded || state === ExtractionState.Failed) {
502
520
  this._iModelRun.delete(iModelId);
503
521
  }
504
522
  this._iModelStates.set(iModelId, state);
@@ -506,14 +524,14 @@ export class BulkExtractor {
506
524
  }
507
525
  &nbsp;
508
526
  public async getReportState(reportId: string): Promise&lt;ExtractionStates&gt; {
509
- if ((new Date().getTime() - this._timeFetched.getTime()) &gt; STATUS_CHECK_INTERVAL) {
527
+ if (new Date().getTime() - this._timeFetched.getTime() &gt; STATUS_CHECK_INTERVAL) {
510
528
  this._timeFetched = new Date();
511
529
  await this.fetchStates();
512
530
  }
513
531
  &nbsp;
514
532
  const iModels = this._reportIModels.get(reportId);
515
533
  if (!iModels) return ExtractionStates.None;
516
- const states: ExtractorState[] = [];
534
+ const states: ExtractionState[] = [];
517
535
  for (const iModelId of iModels) {
518
536
  const state = this._iModelStates.get(iModelId);
519
537
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!state) <span class="cstat-no" title="statement not covered" >continue;</span>
@@ -523,7 +541,7 @@ export class BulkExtractor {
523
541
  }
524
542
  &nbsp;
525
543
  public async getIModelState(iModelId: string, iModelName: string, odataFeedUrl: string): Promise&lt;ExtractionStates&gt; {
526
- if ((new Date().getTime() - this._timeFetched.getTime()) &gt; STATUS_CHECK_INTERVAL) {
544
+ if (new Date().getTime() - this._timeFetched.getTime() &gt; STATUS_CHECK_INTERVAL) {
527
545
  this._timeFetched = new Date();
528
546
  await this.fetchStates();
529
547
  }
@@ -531,11 +549,11 @@ export class BulkExtractor {
531
549
  const state = this._iModelStates.get(iModelId);
532
550
  if (!state) return ExtractionStates.None;
533
551
  if (!this._iModelToast.has(iModelId)) {
534
- if (state === ExtractorState.Succeeded) {
552
+ if (state === ExtractionState.Succeeded) {
535
553
  this._successfulExtractionToast(iModelName, odataFeedUrl);
536
554
  this._iModelToast.add(iModelId);
537
555
  this.checkRunning();
538
- } else if (state === ExtractorState.Failed) {
556
+ } else if (state === ExtractionState.Failed) {
539
557
  this._failedExtractionToast(iModelName);
540
558
  this._iModelToast.add(iModelId);
541
559
  this.checkRunning();
@@ -544,23 +562,19 @@ export class BulkExtractor {
544
562
  return BulkExtractor.getFinalState([state]);
545
563
  }
546
564
  &nbsp;
547
- private static getFinalState(states: ExtractorState[]): ExtractionStates {
548
- if (states.includes(ExtractorState.Failed))
549
- return ExtractionStates.Failed;
565
+ private static getFinalState(states: ExtractionState[]): ExtractionStates {
566
+ if (states.includes(ExtractionState.Failed)) return ExtractionStates.Failed;
550
567
  &nbsp;
551
- if (states.includes(ExtractorState.Queued))
552
- return ExtractionStates.Queued;
568
+ if (states.includes(ExtractionState.Queued)) return ExtractionStates.Queued;
553
569
  &nbsp;
554
- if (states.includes(ExtractorState.Running))
555
- return ExtractionStates.Running;
570
+ if (states.includes(ExtractionState.Running)) return ExtractionStates.Running;
556
571
  &nbsp;
557
- if (states.includes(ExtractorState.Succeeded))
558
- return ExtractionStates.Succeeded;
572
+ if (states.includes(ExtractionState.Succeeded)) return ExtractionStates.Succeeded;
559
573
  &nbsp;
560
574
  <span class="cstat-no" title="statement not covered" > return ExtractionStates.Failed;</span>
561
575
  }
562
576
  &nbsp;
563
- private async getState(runId: string): Promise&lt;ExtractorState&gt; {
577
+ private async getState(runId: string): Promise&lt;ExtractionState&gt; {
564
578
  try {
565
579
  const accessToken = await this._accessToken();
566
580
  const response = await this._extractionClientApi.getExtractionStatus(accessToken, runId);
@@ -568,7 +582,7 @@ export class BulkExtractor {
568
582
  } catch (error: any) {
569
583
  <span class="cstat-no" title="statement not covered" > handleError(error.status);</span>
570
584
  }
571
- <span class="cstat-no" title="statement not covered" > return ExtractorState.Failed;</span>
585
+ <span class="cstat-no" title="statement not covered" > return ExtractionState.Failed;</span>
572
586
  }
573
587
  &nbsp;
574
588
  private checkRunning(): void {
@@ -576,7 +590,7 @@ export class BulkExtractor {
576
590
  let allFinished = true;
577
591
  this._iModels.forEach((iModelId) =&gt; {
578
592
  const state = this._iModelStates.get(iModelId);
579
- <span class="missing-if-branch" title="if path not taken" >I</span>if (state === ExtractorState.Queued || state === ExtractorState.Running) {
593
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (state === ExtractionState.Queued || state === ExtractionState.Running) {
580
594
  <span class="cstat-no" title="statement not covered" > allFinished = false;</span>
581
595
  }
582
596
  });
@@ -586,26 +600,31 @@ export class BulkExtractor {
586
600
  }
587
601
  &nbsp;
588
602
  public async runReportExtractions(reportIds: string[]): Promise&lt;void&gt; {
589
- const reportIModelIds = new Map&lt;string, string[]&gt;();
603
+ const extractionDetailsIModelIdMap = new Map&lt;string, ExtractionMapping[]&gt;();
590
604
  for (const reportId of reportIds) {
591
- const reportIModels = await this.fetchReportIModels(reportId);
592
- reportIModelIds.set(reportId, reportIModels);
605
+ const reportExtractionDetails = await this.fetchReportExtractionRequestDetails(reportId);
606
+ const reportIModels = reportExtractionDetails.map((reportExtractionDetail) =&gt; reportExtractionDetail.iModelId);
593
607
  this._reportIModels.set(reportId, reportIModels);
608
+ reportExtractionDetails.forEach((extractionDetail) =&gt; {
609
+ const existingMappings = extractionDetailsIModelIdMap.get(extractionDetail.iModelId) || [];
610
+ extractionDetailsIModelIdMap.set(extractionDetail.iModelId, [...existingMappings, ...extractionDetail.mappings]);
611
+ });
594
612
  }
595
- const iModels = new Set(Array.from(reportIModelIds.values()).flat());
596
613
  &nbsp;
597
- for (const iModel of iModels) {
598
- await this.runIModelExtractions([iModel]);
599
- }
614
+ const extractionDetails: ExtractionRequestDetails[] = Array.from(extractionDetailsIModelIdMap.entries()).map(([iModelId, mappings]) =&gt; {
615
+ const mappingSetArray: ExtractionMapping[] = Array.from(new Set(mappings.map((m) =&gt; m.id))).map((id) =&gt; ({ id }));
616
+ return {
617
+ iModelId,
618
+ mappings: mappingSetArray,
619
+ };
620
+ });
621
+ await this.runIModelExtractions(extractionDetails);
600
622
  }
601
623
  &nbsp;
602
- private async runExtraction(iModelId: string): Promise&lt;string | undefined&gt; {
624
+ private async runExtraction(extractionRequestDetails: ExtractionRequestDetails): Promise&lt;string | undefined&gt; {
603
625
  try {
604
- const response = await this._extractionClientApi.runExtraction(
605
- await this._accessToken(),
606
- iModelId
607
- );
608
- this._iModelToast.delete(iModelId);
626
+ const response = await this._extractionClientApi.runExtraction(await this._accessToken(), extractionRequestDetails);
627
+ this._iModelToast.delete(extractionRequestDetails.iModelId);
609
628
  return response.id;
610
629
  } catch (error: any) {
611
630
  <span class="cstat-no" title="statement not covered" > handleError(error.status);</span>
@@ -613,8 +632,8 @@ export class BulkExtractor {
613
632
  <span class="cstat-no" title="statement not covered" > return undefined;</span>
614
633
  }
615
634
  &nbsp;
616
- public async runIModelExtraction(iModelId: string): Promise&lt;void&gt; {
617
- return this.runIModelExtractions([iModelId]);
635
+ public async runIModelExtraction(extractionRequestDetails: ExtractionRequestDetails): Promise&lt;void&gt; {
636
+ return this.runIModelExtractions([extractionRequestDetails]);
618
637
  }
619
638
  &nbsp;
620
639
  public setHook(setJobRunning: React.Dispatch&lt;React.SetStateAction&lt;boolean&gt;&gt;, iModels: string[]): void {
@@ -623,23 +642,28 @@ export class BulkExtractor {
623
642
  this.checkRunning();
624
643
  }
625
644
  &nbsp;
626
- public async runIModelExtractions(iModels: string[]): Promise&lt;void&gt; {
627
- for (const iModelId of iModels) {
628
- const run = await this.runExtraction(iModelId);
629
- if (run) {
630
- this._iModelStates.set(iModelId, ExtractorState.Queued);
631
- this._iModelRun.set(iModelId, run);
632
- }
633
- this.checkRunning();
634
- }
645
+ public async runIModelExtractions(extractionRequestsDetails: ExtractionRequestDetails[]): Promise&lt;void&gt; {
646
+ await Promise.all(
647
+ extractionRequestsDetails.map(async (details) =&gt; {
648
+ const run = await this.runExtraction(details);
649
+ if (run) {
650
+ this._iModelStates.set(details.iModelId, ExtractionState.Queued);
651
+ this._iModelRun.set(details.iModelId, run);
652
+ }
653
+ }),
654
+ );
655
+ this.checkRunning();
635
656
  }
636
657
  &nbsp;
637
- private async fetchReportIModels(reportId: string): Promise&lt;string[]&gt; {
638
- const reportMappings = await this._reportsClientApi.getReportMappings(
639
- await this._accessToken(),
640
- reportId
641
- );
642
- return reportMappings.map((x) =&gt; x.imodelId);
658
+ private async fetchReportExtractionRequestDetails(reportId: string): Promise&lt;ExtractionRequestDetails[]&gt; {
659
+ const reportMappings = await this._reportsClientApi.getReportMappings(await this._accessToken(), reportId);
660
+ const extractionRequestDetails: ExtractionRequestDetails[] = reportMappings.map((reportMapping) =&gt; {
661
+ return {
662
+ iModelId: reportMapping.imodelId,
663
+ mappings: [{ id: reportMapping.mappingId }],
664
+ };
665
+ });
666
+ return extractionRequestDetails;
643
667
  }
644
668
  }
645
669
  &nbsp;</pre></td></tr></table></pre>
@@ -649,7 +673,7 @@ export class BulkExtractor {
649
673
  <div class='footer quiet pad2 space-top1 center small'>
650
674
  Code coverage generated by
651
675
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
652
- at 2024-01-29T21:35:13.448Z
676
+ at 2024-06-11T15:49:29.425Z
653
677
  </div>
654
678
  <script src="../../../prettify.js"></script>
655
679
  <script>
@@ -82,14 +82,14 @@
82
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
83
  <span class="cline-any cline-yes">7x</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
85
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
86
- * See LICENSE.md in the project root for license terms and full copyright notice.
87
- *--------------------------------------------------------------------------------------------*/
85
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
86
+ * See LICENSE.md in the project root for license terms and full copyright notice.
87
+ *--------------------------------------------------------------------------------------------*/
88
88
  export const STATUS_CHECK_INTERVAL = 5000;
89
89
  export const ANIMATION_DELAY = "5s";
90
90
  export const ANIMATION_DURATION = "1s";
91
91
  &nbsp;
92
- export const IMODELS_BASE_URL= "https://api.bentley.com/imodels";
92
+ export const IMODELS_BASE_URL = "https://api.bentley.com/imodels";
93
93
  &nbsp;</pre></td></tr></table></pre>
94
94
 
95
95
  <div class='push'></div><!-- for sticky footer -->
@@ -97,7 +97,7 @@ export const IMODELS_BASE_URL= "https://api.bentley.com/imodels";
97
97
  <div class='footer quiet pad2 space-top1 center small'>
98
98
  Code coverage generated by
99
99
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
100
- at 2024-01-29T21:35:13.448Z
100
+ at 2024-06-11T15:49:29.425Z
101
101
  </div>
102
102
  <script src="../../../prettify.js"></script>
103
103
  <script>