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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/.rush/temp/operation/rebuild/all.log +9 -0
  2. package/.rush/temp/operation/rebuild/state.json +3 -0
  3. package/.rush/temp/package-deps_rebuild.json +48 -44
  4. package/.rush/temp/shrinkwrap-deps.json +228 -207
  5. package/CHANGELOG.json +44 -0
  6. package/CHANGELOG.md +24 -1
  7. package/coverage/clover.xml +562 -542
  8. package/coverage/coverage-final.json +24 -20
  9. package/coverage/lcov-report/index.html +51 -51
  10. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +22 -22
  11. package/coverage/lcov-report/src/index.html +21 -21
  12. package/coverage/lcov-report/src/test/index.html +11 -11
  13. package/coverage/lcov-report/src/test/test-utils.tsx.html +20 -140
  14. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +14 -35
  15. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +26 -20
  16. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +94 -109
  17. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +55 -52
  18. package/coverage/lcov-report/src/widget/components/Constants.ts.html +1 -1
  19. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +28 -46
  20. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +1 -1
  21. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +1 -1
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +1 -1
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +1 -1
  24. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +1 -1
  25. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +1 -1
  26. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +1 -1
  27. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +1 -1
  28. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +3 -3
  29. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
  30. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +36 -81
  31. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +38 -41
  32. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +46 -46
  33. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +127 -142
  34. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +189 -312
  35. package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +370 -0
  36. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +111 -33
  37. package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +166 -0
  38. package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +274 -0
  39. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +22 -7
  40. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +40 -94
  41. package/coverage/lcov-report/src/widget/components/index.html +142 -97
  42. package/coverage/lcov-report/src/widget/components/utils.tsx.html +22 -19
  43. package/coverage/lcov-report/src/widget/context/{ReportsApiConfigContext.tsx.html → BulkExtractorContext.tsx.html} +23 -26
  44. package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +202 -0
  45. package/coverage/lcov-report/src/widget/context/index.html +30 -15
  46. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  47. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +11 -11
  48. package/coverage/lcov-report/src/widget/index.html +13 -13
  49. package/coverage/lcov.info +1036 -1034
  50. package/jest.config.js +1 -0
  51. package/lib/cjs/ReportsConfigWidget.js +1 -1
  52. package/lib/cjs/ReportsConfigWidget.js.map +1 -1
  53. package/lib/cjs/reports-config-widget-react.d.ts +5 -0
  54. package/lib/cjs/reports-config-widget-react.d.ts.map +1 -1
  55. package/lib/cjs/reports-config-widget-react.js +11 -0
  56. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  57. package/lib/cjs/test/AddMappingModal.test.js +20 -34
  58. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  59. package/lib/cjs/test/BulkExtractor.test.js +13 -19
  60. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  61. package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -1
  62. package/lib/cjs/test/DeleteModal.test.js +4 -62
  63. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  64. package/lib/cjs/test/ReportAction.test.js +14 -79
  65. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  66. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +20 -54
  67. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  68. package/lib/cjs/test/ReportMappings.test.d.ts.map +1 -1
  69. package/lib/cjs/test/ReportMappings.test.js +51 -106
  70. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  71. package/lib/cjs/test/Reports.test.js +41 -96
  72. package/lib/cjs/test/Reports.test.js.map +1 -1
  73. package/lib/cjs/test/WidgetHeader.test.js +9 -3
  74. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  75. package/lib/cjs/test/test-utils.d.ts +3 -8
  76. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  77. package/lib/cjs/test/test-utils.js +6 -34
  78. package/lib/cjs/test/test-utils.js.map +1 -1
  79. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  80. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +3 -3
  81. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  82. package/lib/cjs/widget/ReportsConfigUiProvider.js +5 -7
  83. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  84. package/lib/cjs/widget/components/ActionPanel.d.ts +3 -3
  85. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  86. package/lib/cjs/widget/components/ActionPanel.js +4 -4
  87. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  88. package/lib/cjs/widget/components/ActionPanel.scss +2 -3
  89. package/lib/cjs/widget/components/AddMappingsModal.d.ts +4 -4
  90. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  91. package/lib/cjs/widget/components/AddMappingsModal.js +39 -43
  92. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  93. package/lib/cjs/widget/components/AddMappingsModal.scss +1 -2
  94. package/lib/cjs/widget/components/BulkExtractor.d.ts +4 -4
  95. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  96. package/lib/cjs/widget/components/BulkExtractor.js +8 -8
  97. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  98. package/lib/cjs/widget/components/DeleteModal.d.ts +4 -5
  99. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  100. package/lib/cjs/widget/components/DeleteModal.js +11 -15
  101. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  102. package/lib/cjs/widget/components/DeleteModal.scss +2 -3
  103. package/lib/cjs/widget/components/ExtractionStatus.js +2 -2
  104. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  105. package/lib/cjs/widget/components/ExtractionStatus.scss +6 -7
  106. package/lib/cjs/widget/components/HorizontalTile.js +2 -2
  107. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  108. package/lib/cjs/widget/components/HorizontalTile.scss +11 -14
  109. package/lib/cjs/widget/components/LocalizedTablePaginator.js +2 -2
  110. package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
  111. package/lib/cjs/widget/components/ReportAction.d.ts +4 -5
  112. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  113. package/lib/cjs/widget/components/ReportAction.js +24 -26
  114. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  115. package/lib/cjs/widget/components/ReportAction.scss +1 -2
  116. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +4 -4
  117. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  118. package/lib/cjs/widget/components/ReportHorizontalTile.js +33 -20
  119. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  120. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
  121. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  122. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +36 -21
  123. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  124. package/lib/cjs/widget/components/ReportMappings.d.ts +4 -6
  125. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  126. package/lib/cjs/widget/components/ReportMappings.js +50 -63
  127. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  128. package/lib/cjs/widget/components/ReportMappings.scss +10 -11
  129. package/lib/cjs/widget/components/Reports.d.ts +6 -1
  130. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  131. package/lib/cjs/widget/components/Reports.js +53 -94
  132. package/lib/cjs/widget/components/Reports.js.map +1 -1
  133. package/lib/cjs/widget/components/Reports.scss +15 -15
  134. package/lib/cjs/widget/components/ReportsConfigContext.d.ts +18 -0
  135. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -0
  136. package/lib/cjs/widget/components/ReportsConfigContext.js +79 -0
  137. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -0
  138. package/lib/cjs/widget/components/ReportsContainer.d.ts +14 -0
  139. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  140. package/lib/cjs/widget/components/ReportsContainer.js +27 -16
  141. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  142. package/lib/cjs/widget/components/ReportsContainer.scss +1 -3
  143. package/lib/cjs/widget/components/ReportsHeader.d.ts +7 -0
  144. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -0
  145. package/lib/cjs/widget/components/ReportsHeader.js +20 -0
  146. package/lib/cjs/widget/components/ReportsHeader.js.map +1 -0
  147. package/lib/cjs/widget/components/ReportsRouter.d.ts +8 -0
  148. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -0
  149. package/lib/cjs/widget/components/ReportsRouter.js +51 -0
  150. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -0
  151. package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
  152. package/lib/cjs/widget/components/SearchBar.js +4 -5
  153. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  154. package/lib/cjs/widget/components/SearchBar.scss +1 -2
  155. package/lib/cjs/widget/components/SelectIModel.d.ts +3 -3
  156. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  157. package/lib/cjs/widget/components/SelectIModel.js +10 -30
  158. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  159. package/lib/cjs/widget/components/SelectIModel.scss +2 -3
  160. package/lib/cjs/widget/components/utils.d.ts +1 -1
  161. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  162. package/lib/cjs/widget/components/utils.js +1 -1
  163. package/lib/cjs/widget/components/utils.js.map +1 -1
  164. package/lib/cjs/widget/components/utils.scss +16 -8
  165. package/lib/cjs/widget/context/BulkExtractorContext.d.ts +10 -0
  166. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -0
  167. package/lib/cjs/widget/context/{ReportsApiConfigContext.js → BulkExtractorContext.js} +7 -10
  168. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -0
  169. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +16 -0
  170. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
  171. package/lib/cjs/widget/context/ReportsConfigApiContext.js +43 -0
  172. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -0
  173. package/lib/cjs/widget/hooks/useValidator.js +1 -1
  174. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  175. package/lib/esm/ReportsConfigWidget.js +1 -1
  176. package/lib/esm/ReportsConfigWidget.js.map +1 -1
  177. package/lib/esm/reports-config-widget-react.d.ts +5 -0
  178. package/lib/esm/reports-config-widget-react.d.ts.map +1 -1
  179. package/lib/esm/reports-config-widget-react.js +5 -0
  180. package/lib/esm/reports-config-widget-react.js.map +1 -1
  181. package/lib/esm/test/AddMappingModal.test.js +17 -31
  182. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  183. package/lib/esm/test/BulkExtractor.test.js +14 -17
  184. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  185. package/lib/esm/test/DeleteModal.test.d.ts.map +1 -1
  186. package/lib/esm/test/DeleteModal.test.js +5 -44
  187. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  188. package/lib/esm/test/ReportAction.test.js +14 -60
  189. package/lib/esm/test/ReportAction.test.js.map +1 -1
  190. package/lib/esm/test/ReportMappingHorizontalTile.test.js +4 -38
  191. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  192. package/lib/esm/test/ReportMappings.test.d.ts.map +1 -1
  193. package/lib/esm/test/ReportMappings.test.js +43 -98
  194. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  195. package/lib/esm/test/Reports.test.js +24 -60
  196. package/lib/esm/test/Reports.test.js.map +1 -1
  197. package/lib/esm/test/WidgetHeader.test.js +8 -2
  198. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  199. package/lib/esm/test/test-utils.d.ts +3 -8
  200. package/lib/esm/test/test-utils.d.ts.map +1 -1
  201. package/lib/esm/test/test-utils.js +4 -31
  202. package/lib/esm/test/test-utils.js.map +1 -1
  203. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  204. package/lib/esm/widget/ReportsConfigUiProvider.d.ts +3 -3
  205. package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  206. package/lib/esm/widget/ReportsConfigUiProvider.js +2 -4
  207. package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
  208. package/lib/esm/widget/components/ActionPanel.d.ts +3 -3
  209. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  210. package/lib/esm/widget/components/ActionPanel.js +4 -4
  211. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  212. package/lib/esm/widget/components/ActionPanel.scss +2 -3
  213. package/lib/esm/widget/components/AddMappingsModal.d.ts +4 -4
  214. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  215. package/lib/esm/widget/components/AddMappingsModal.js +35 -39
  216. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  217. package/lib/esm/widget/components/AddMappingsModal.scss +1 -2
  218. package/lib/esm/widget/components/BulkExtractor.d.ts +4 -4
  219. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  220. package/lib/esm/widget/components/BulkExtractor.js +7 -8
  221. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  222. package/lib/esm/widget/components/DeleteModal.d.ts +4 -5
  223. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  224. package/lib/esm/widget/components/DeleteModal.js +11 -15
  225. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  226. package/lib/esm/widget/components/DeleteModal.scss +2 -3
  227. package/lib/esm/widget/components/ExtractionStatus.scss +6 -7
  228. package/lib/esm/widget/components/HorizontalTile.scss +11 -14
  229. package/lib/esm/widget/components/ReportAction.d.ts +4 -5
  230. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  231. package/lib/esm/widget/components/ReportAction.js +17 -21
  232. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  233. package/lib/esm/widget/components/ReportAction.scss +1 -2
  234. package/lib/esm/widget/components/ReportHorizontalTile.d.ts +4 -4
  235. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  236. package/lib/esm/widget/components/ReportHorizontalTile.js +6 -9
  237. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  238. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
  239. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  240. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +12 -13
  241. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  242. package/lib/esm/widget/components/ReportMappings.d.ts +4 -6
  243. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  244. package/lib/esm/widget/components/ReportMappings.js +43 -56
  245. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  246. package/lib/esm/widget/components/ReportMappings.scss +10 -11
  247. package/lib/esm/widget/components/Reports.d.ts +6 -1
  248. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  249. package/lib/esm/widget/components/Reports.js +46 -87
  250. package/lib/esm/widget/components/Reports.js.map +1 -1
  251. package/lib/esm/widget/components/Reports.scss +15 -15
  252. package/lib/esm/widget/components/ReportsConfigContext.d.ts +18 -0
  253. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -0
  254. package/lib/esm/widget/components/ReportsConfigContext.js +56 -0
  255. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -0
  256. package/lib/esm/widget/components/ReportsContainer.d.ts +14 -0
  257. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  258. package/lib/esm/widget/components/ReportsContainer.js +27 -17
  259. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  260. package/lib/esm/widget/components/ReportsContainer.scss +1 -3
  261. package/lib/esm/widget/components/ReportsHeader.d.ts +7 -0
  262. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -0
  263. package/lib/esm/widget/components/ReportsHeader.js +13 -0
  264. package/lib/esm/widget/components/ReportsHeader.js.map +1 -0
  265. package/lib/esm/widget/components/ReportsRouter.d.ts +8 -0
  266. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -0
  267. package/lib/esm/widget/components/ReportsRouter.js +44 -0
  268. package/lib/esm/widget/components/ReportsRouter.js.map +1 -0
  269. package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
  270. package/lib/esm/widget/components/SearchBar.js +2 -3
  271. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  272. package/lib/esm/widget/components/SearchBar.scss +1 -2
  273. package/lib/esm/widget/components/SelectIModel.d.ts +3 -3
  274. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  275. package/lib/esm/widget/components/SelectIModel.js +7 -27
  276. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  277. package/lib/esm/widget/components/SelectIModel.scss +2 -3
  278. package/lib/esm/widget/components/utils.d.ts +1 -1
  279. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  280. package/lib/esm/widget/components/utils.js +2 -2
  281. package/lib/esm/widget/components/utils.js.map +1 -1
  282. package/lib/esm/widget/components/utils.scss +16 -8
  283. package/lib/esm/widget/context/BulkExtractorContext.d.ts +10 -0
  284. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -0
  285. package/lib/esm/widget/context/BulkExtractorContext.js +11 -0
  286. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -0
  287. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +16 -0
  288. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
  289. package/lib/esm/widget/context/ReportsConfigApiContext.js +20 -0
  290. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -0
  291. package/lib/public/locales/en/ReportsConfigWidget.json +6 -1
  292. package/package.json +29 -29
  293. package/public/locales/en/ReportsConfigWidget.json +6 -1
  294. package/reports-config-widget-react.build.error.log +6 -6
  295. package/reports-config-widget-react.build.log +52 -49
  296. package/src/reports-config-widget-react.ts +6 -0
  297. package/src/test/AddMappingModal.test.tsx +20 -37
  298. package/src/test/BulkExtractor.test.ts +15 -17
  299. package/src/test/DeleteModal.test.tsx +4 -73
  300. package/src/test/ReportAction.test.tsx +17 -90
  301. package/src/test/ReportMappingHorizontalTile.test.tsx +3 -54
  302. package/src/test/ReportMappings.test.tsx +50 -135
  303. package/src/test/Reports.test.tsx +21 -80
  304. package/src/test/WidgetHeader.test.tsx +9 -2
  305. package/src/test/test-utils.tsx +9 -49
  306. package/src/widget/ReportsConfigUiProvider.tsx +7 -14
  307. package/src/widget/components/ActionPanel.scss +2 -3
  308. package/src/widget/components/ActionPanel.tsx +17 -15
  309. package/src/widget/components/AddMappingsModal.scss +1 -2
  310. package/src/widget/components/AddMappingsModal.tsx +55 -60
  311. package/src/widget/components/BulkExtractor.ts +11 -10
  312. package/src/widget/components/DeleteModal.scss +2 -3
  313. package/src/widget/components/DeleteModal.tsx +17 -23
  314. package/src/widget/components/ExtractionStatus.scss +6 -7
  315. package/src/widget/components/HorizontalTile.scss +11 -14
  316. package/src/widget/components/ReportAction.scss +1 -2
  317. package/src/widget/components/ReportAction.tsx +18 -33
  318. package/src/widget/components/ReportHorizontalTile.tsx +11 -12
  319. package/src/widget/components/ReportMappingHorizontalTile.tsx +30 -30
  320. package/src/widget/components/ReportMappings.scss +10 -11
  321. package/src/widget/components/ReportMappings.tsx +67 -72
  322. package/src/widget/components/Reports.scss +15 -15
  323. package/src/widget/components/Reports.tsx +140 -181
  324. package/src/widget/components/ReportsConfigContext.tsx +95 -0
  325. package/src/widget/components/ReportsContainer.scss +1 -3
  326. package/src/widget/components/ReportsContainer.tsx +47 -21
  327. package/src/widget/components/ReportsHeader.tsx +27 -0
  328. package/src/widget/components/ReportsRouter.tsx +63 -0
  329. package/src/widget/components/SearchBar.scss +1 -2
  330. package/src/widget/components/SearchBar.tsx +7 -2
  331. package/src/widget/components/SelectIModel.scss +2 -3
  332. package/src/widget/components/SelectIModel.tsx +11 -29
  333. package/src/widget/components/utils.scss +16 -8
  334. package/src/widget/components/utils.tsx +8 -7
  335. package/src/widget/context/{ReportsApiConfigContext.tsx → BulkExtractorContext.tsx} +9 -10
  336. package/src/widget/context/ReportsConfigApiContext.tsx +39 -0
  337. package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts +0 -9
  338. package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
  339. package/lib/cjs/widget/context/ReportsApiConfigContext.js.map +0 -1
  340. package/lib/esm/widget/context/ReportsApiConfigContext.d.ts +0 -9
  341. package/lib/esm/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
  342. package/lib/esm/widget/context/ReportsApiConfigContext.js +0 -14
  343. package/lib/esm/widget/context/ReportsApiConfigContext.js.map +0 -1
@@ -23,23 +23,23 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.66% </span>
26
+ <span class="strong">92% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>44/48</span>
28
+ <span class='fraction'>46/50</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.33% </span>
33
+ <span class="strong">80% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/6</span>
35
+ <span class='fraction'>4/5</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88.88% </span>
40
+ <span class="strong">90% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/9</span>
42
+ <span class='fraction'>9/10</span>
43
43
  </div>
44
44
 
45
45
 
@@ -231,45 +231,38 @@
231
231
  <a name='L166'></a><a href='#L166'>166</a>
232
232
  <a name='L167'></a><a href='#L167'>167</a>
233
233
  <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
234
+ <a name='L169'></a><a href='#L169'>169</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
240
235
  <span class="cline-any cline-neutral">&nbsp;</span>
241
236
  <span class="cline-any cline-neutral">&nbsp;</span>
242
237
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">5x</span>
244
- <span class="cline-any cline-yes">5x</span>
238
+ <span class="cline-any cline-yes">7x</span>
239
+ <span class="cline-any cline-yes">7x</span>
245
240
  <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-yes">5x</span>
247
- <span class="cline-any cline-yes">5x</span>
248
- <span class="cline-any cline-yes">5x</span>
249
- <span class="cline-any cline-yes">5x</span>
241
+ <span class="cline-any cline-yes">7x</span>
242
+ <span class="cline-any cline-yes">7x</span>
243
+ <span class="cline-any cline-yes">7x</span>
250
244
  <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-yes">7x</span>
246
+ <span class="cline-any cline-yes">7x</span>
251
247
  <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-yes">5x</span>
253
- <span class="cline-any cline-yes">5x</span>
248
+ <span class="cline-any cline-yes">7x</span>
249
+ <span class="cline-any cline-yes">7x</span>
254
250
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">5x</span>
256
- <span class="cline-any cline-yes">5x</span>
257
251
  <span class="cline-any cline-neutral">&nbsp;</span>
258
252
  <span class="cline-any cline-neutral">&nbsp;</span>
259
253
  <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-yes">5x</span>
261
254
  <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-yes">7x</span>
262
256
  <span class="cline-any cline-neutral">&nbsp;</span>
263
257
  <span class="cline-any cline-neutral">&nbsp;</span>
264
258
  <span class="cline-any cline-neutral">&nbsp;</span>
265
259
  <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">1x</span>
267
- <span class="cline-any cline-yes">1x</span>
268
- <span class="cline-any cline-yes">1x</span>
269
260
  <span class="cline-any cline-neutral">&nbsp;</span>
270
261
  <span class="cline-any cline-neutral">&nbsp;</span>
271
262
  <span class="cline-any cline-yes">1x</span>
272
263
  <span class="cline-any cline-yes">1x</span>
264
+ <span class="cline-any cline-yes">1x</span>
265
+ <span class="cline-any cline-yes">1x</span>
273
266
  <span class="cline-any cline-neutral">&nbsp;</span>
274
267
  <span class="cline-any cline-neutral">&nbsp;</span>
275
268
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -288,37 +281,34 @@
288
281
  <span class="cline-any cline-neutral">&nbsp;</span>
289
282
  <span class="cline-any cline-neutral">&nbsp;</span>
290
283
  <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-yes">5x</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
284
  <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">7x</span>
294
286
  <span class="cline-any cline-neutral">&nbsp;</span>
295
287
  <span class="cline-any cline-neutral">&nbsp;</span>
296
288
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-yes">8x</span>
298
- <span class="cline-any cline-yes">8x</span>
299
- <span class="cline-any cline-yes">8x</span>
300
- <span class="cline-any cline-yes">8x</span>
301
- <span class="cline-any cline-yes">8x</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-yes">8x</span>
304
- <span class="cline-any cline-yes">2x</span>
305
- <span class="cline-any cline-yes">1x</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
289
  <span class="cline-any cline-neutral">&nbsp;</span>
308
290
  <span class="cline-any cline-neutral">&nbsp;</span>
309
291
  <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-yes">6x</span>
293
+ <span class="cline-any cline-yes">6x</span>
294
+ <span class="cline-any cline-yes">6x</span>
295
+ <span class="cline-any cline-yes">6x</span>
296
+ <span class="cline-any cline-yes">6x</span>
310
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-yes">6x</span>
299
+ <span class="cline-any cline-yes">1x</span>
300
+ <span class="cline-any cline-yes">1x</span>
311
301
  <span class="cline-any cline-neutral">&nbsp;</span>
312
302
  <span class="cline-any cline-neutral">&nbsp;</span>
313
303
  <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-yes">8x</span>
315
- <span class="cline-any cline-yes">1x</span>
316
304
  <span class="cline-any cline-neutral">&nbsp;</span>
317
305
  <span class="cline-any cline-neutral">&nbsp;</span>
318
306
  <span class="cline-any cline-neutral">&nbsp;</span>
319
307
  <span class="cline-any cline-neutral">&nbsp;</span>
320
308
  <span class="cline-any cline-neutral">&nbsp;</span>
321
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-yes">6x</span>
311
+ <span class="cline-any cline-yes">1x</span>
322
312
  <span class="cline-any cline-neutral">&nbsp;</span>
323
313
  <span class="cline-any cline-neutral">&nbsp;</span>
324
314
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -338,14 +328,11 @@
338
328
  <span class="cline-any cline-neutral">&nbsp;</span>
339
329
  <span class="cline-any cline-neutral">&nbsp;</span>
340
330
  <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-yes">8x</span>
331
+ <span class="cline-any cline-yes">6x</span>
342
332
  <span class="cline-any cline-yes">1x</span>
343
333
  <span class="cline-any cline-yes">1x</span>
344
334
  <span class="cline-any cline-yes">1x</span>
345
335
  <span class="cline-any cline-yes">1x</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-neutral">&nbsp;</span>
348
- <span class="cline-any cline-yes">1x</span>
349
336
  <span class="cline-any cline-yes">1x</span>
350
337
  <span class="cline-any cline-yes">1x</span>
351
338
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -361,18 +348,23 @@
361
348
  <span class="cline-any cline-neutral">&nbsp;</span>
362
349
  <span class="cline-any cline-neutral">&nbsp;</span>
363
350
  <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-yes">8x</span>
351
+ <span class="cline-any cline-yes">6x</span>
352
+ <span class="cline-any cline-yes">1x</span>
365
353
  <span class="cline-any cline-neutral">&nbsp;</span>
366
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-yes">6x</span>
356
+ <span class="cline-any cline-yes">6x</span>
357
+ <span class="cline-any cline-yes">132x</span>
367
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">6x</span>
368
360
  <span class="cline-any cline-neutral">&nbsp;</span>
369
361
  <span class="cline-any cline-neutral">&nbsp;</span>
370
362
  <span class="cline-any cline-neutral">&nbsp;</span>
371
363
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
373
364
  <span class="cline-any cline-neutral">&nbsp;</span>
374
365
  <span class="cline-any cline-neutral">&nbsp;</span>
375
366
  <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
376
368
  <span class="cline-any cline-neutral">&nbsp;</span>
377
369
  <span class="cline-any cline-neutral">&nbsp;</span>
378
370
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -389,10 +381,8 @@
389
381
  <span class="cline-any cline-neutral">&nbsp;</span>
390
382
  <span class="cline-any cline-neutral">&nbsp;</span>
391
383
  <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-yes">153x</span>
393
384
  <span class="cline-any cline-neutral">&nbsp;</span>
394
385
  <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-yes">1x</span>
396
386
  <span class="cline-any cline-neutral">&nbsp;</span>
397
387
  <span class="cline-any cline-neutral">&nbsp;</span>
398
388
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -414,35 +404,33 @@
414
404
  * See LICENSE.md in the project root for license terms and full copyright notice.
415
405
  *--------------------------------------------------------------------------------------------*/
416
406
  import { Modal, Table, tableFilters } from "@itwin/itwinui-react";
417
- import React, { useEffect, useMemo, useState } from "react";
418
- import type { Mapping } from "@itwin/insights-client";
419
- import { MappingsClient, REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
407
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
408
+ import type { Mapping, MappingsClient } from "@itwin/insights-client";
420
409
  import ActionPanel from "./ActionPanel";
421
410
  import "./AddMappingsModal.scss";
422
411
  import { LocalizedTablePaginator } from "./LocalizedTablePaginator";
423
412
  import type { ReportMappingAndMapping } from "./ReportMappings";
424
- import type { ReportsApiConfig } from "../context/ReportsApiConfigContext";
425
- import { useReportsApiConfig } from "../context/ReportsApiConfigContext";
413
+ import { useReportsConfigApi } from "../context/ReportsConfigApiContext";
426
414
  import { SelectIModel } from "./SelectIModel";
427
415
  import type { CreateTypeFromInterface } from "./utils";
428
- import { generateUrl, handleError } from "./utils";
416
+ import { handleError } from "./utils";
429
417
  import { ReportsConfigWidget } from "../../ReportsConfigWidget";
418
+ import type { AccessToken } from "@itwin/core-bentley";
419
+ import type { Column } from "react-table";
430
420
  &nbsp;
431
421
  export type MappingType = CreateTypeFromInterface&lt;Mapping&gt;;
432
422
  &nbsp;
433
423
  const fetchMappings = async (
434
- setMappings: React.Dispatch&lt;React.SetStateAction&lt;Mapping[]&gt;&gt;,
424
+ setMappings: (mappings: Mapping[]) =&gt; void,
435
425
  iModelId: string,
436
- setIsLoading: React.Dispatch&lt;React.SetStateAction&lt;boolean&gt;&gt;,
437
- apiContext: ReportsApiConfig
426
+ setIsLoading: (isLoading: boolean) =&gt; void,
427
+ mappingsClient: MappingsClient,
428
+ getAccessToken: () =&gt; Promise&lt;AccessToken&gt;
438
429
  ) =&gt; {
439
430
  try {
440
431
  setIsLoading(true);
441
- const mappingsClientApi = new MappingsClient(
442
- generateUrl(REPORTING_BASE_PATH, apiContext.baseUrl)
443
- );
444
- const accessToken = await apiContext.getAccessToken();
445
- const mappings = await mappingsClientApi.getMappings(
432
+ const accessToken = await getAccessToken();
433
+ const mappings = await mappingsClient.getMappings(
446
434
  accessToken,
447
435
  iModelId
448
436
  );
@@ -454,24 +442,26 @@ const fetchMappings = async (
454
442
  }
455
443
  };
456
444
  &nbsp;
457
- interface AddMappingsModalProps {
445
+ export interface AddMappingsModalProps {
458
446
  reportId: string;
459
447
  existingMappings: ReportMappingAndMapping[];
460
448
  show: boolean;
461
- returnFn: () =&gt; Promise&lt;void&gt;;
449
+ onClose: () =&gt; Promise&lt;void&gt;;
450
+ defaultIModelId?: string;
462
451
  }
463
452
  &nbsp;
464
453
  export const AddMappingsModal = ({
465
454
  reportId,
466
455
  existingMappings,
467
456
  show,
468
- returnFn,
457
+ onClose,
458
+ defaultIModelId,
469
459
  }: AddMappingsModalProps) =&gt; {
470
460
  const [isLoading, setIsLoading] = useState&lt;boolean&gt;(false);
471
- const [selectedMappings, setSelectedMappings] = useState&lt;Mapping[]&gt;([]);
472
- const [selectedIModelId, setSelectediModelId] = useState&lt;string&gt;("");
461
+ const selectedMappings = useRef&lt;Mapping[]&gt;([]);
462
+ const [selectedIModelId, setSelectediModelId] = useState&lt;string | undefined&gt;(defaultIModelId);
473
463
  const [mappings, setMappings] = useState&lt;Mapping[]&gt;([]);
474
- const apiConfig = useReportsApiConfig();
464
+ const { getAccessToken, mappingsClient, reportsClient } = useReportsConfigApi();
475
465
  &nbsp;
476
466
  useEffect(() =&gt; {
477
467
  if (selectedIModelId) {
@@ -479,35 +469,30 @@ export const AddMappingsModal = ({
479
469
  setMappings,
480
470
  selectedIModelId,
481
471
  setIsLoading,
482
- apiConfig
472
+ mappingsClient,
473
+ getAccessToken
483
474
  );
484
475
  }
485
- }, [apiConfig, selectedIModelId, setIsLoading]);
476
+ }, [getAccessToken, mappingsClient, selectedIModelId, setIsLoading]);
486
477
  &nbsp;
487
478
  const mappingsColumns = useMemo(
488
- () =&gt; [
479
+ (): Column&lt;CreateTypeFromInterface&lt;Mapping&gt;&gt;[] =&gt; [
489
480
  {
490
- Header: "Table",
491
- columns: [
492
- {
493
- id: "mappingName",
494
- Header: ReportsConfigWidget.localization.getLocalizedString(
495
- "ReportsConfigWidget:MappingName"
496
- ),
497
- accessor: "mappingName",
498
- Filter: tableFilters.TextFilter(),
499
- },
500
- {
501
- id: "description",
502
- Header: ReportsConfigWidget.localization.getLocalizedString(
503
- "ReportsConfigWidget:Description"
504
- ),
505
- accessor: "description",
506
- Filter: tableFilters.TextFilter(),
507
- },
508
- ],
481
+ id: "mappingName",
482
+ Header: ReportsConfigWidget.localization.getLocalizedString(
483
+ "ReportsConfigWidget:MappingName"
484
+ ),
485
+ accessor: "mappingName",
486
+ Filter: tableFilters.TextFilter(),
509
487
  },
510
- ],
488
+ {
489
+ id: "description",
490
+ Header: ReportsConfigWidget.localization.getLocalizedString(
491
+ "ReportsConfigWidget:Description"
492
+ ),
493
+ accessor: "description",
494
+ Filter: tableFilters.TextFilter(),
495
+ }],
511
496
  []
512
497
  );
513
498
  &nbsp;
@@ -515,24 +500,29 @@ export const AddMappingsModal = ({
515
500
  try {
516
501
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!selectedIModelId) <span class="cstat-no" title="statement not covered" >return;</span>
517
502
  setIsLoading(true);
518
- const reportsClientApi = new ReportsClient(
519
- generateUrl(REPORTING_BASE_PATH, apiConfig.baseUrl)
520
- );
521
- const accessToken = await apiConfig.getAccessToken();
522
- for (const mapping of selectedMappings) {
523
- await reportsClientApi.createReportMapping(accessToken, reportId, {
503
+ const accessToken = await getAccessToken();
504
+ for (const mapping of selectedMappings.current) {
505
+ await reportsClient.createReportMapping(accessToken, reportId, {
524
506
  imodelId: selectedIModelId,
525
507
  mappingId: mapping.id,
526
508
  });
527
509
  }
528
510
  &nbsp;
529
- await returnFn();
511
+ await onClose();
530
512
  } catch (error: any) {
531
513
  <span class="cstat-no" title="statement not covered" > handleError(error.status);</span>
532
514
  } finally {
533
515
  setIsLoading(false);
534
516
  }
535
517
  };
518
+ &nbsp;
519
+ const onSelect = useCallback((selectData: Mapping[] | undefined) =&gt; {
520
+ if (selectData) selectedMappings.current = selectData;
521
+ }, []);
522
+ &nbsp;
523
+ const tableData = useMemo(() =&gt; isLoading ? [] : mappings, [isLoading, mappings]);
524
+ const isRowDisabled = useCallback((rowData: MappingType) =&gt;
525
+ existingMappings.some((v) =&gt; v.mappingId === rowData.id), [existingMappings]);
536
526
  &nbsp;
537
527
  return (
538
528
  &lt;Modal
@@ -542,7 +532,7 @@ export const AddMappingsModal = ({
542
532
  isOpen={show}
543
533
  isDismissible={!isLoading}
544
534
  onClose={<span class="fstat-no" title="function not covered" >async </span>() =&gt; {
545
- <span class="cstat-no" title="statement not covered" > await returnFn();</span>
535
+ <span class="cstat-no" title="statement not covered" > await onClose();</span>
546
536
  }}
547
537
  style={{ display: "flex", flexDirection: "column", maxHeight: "77vh" }}
548
538
  &gt;
@@ -552,7 +542,7 @@ export const AddMappingsModal = ({
552
542
  setSelectedIModelId={setSelectediModelId}
553
543
  /&gt;
554
544
  &lt;Table&lt;MappingType&gt;
555
- data={isLoading ? [] : mappings}
545
+ data={tableData}
556
546
  columns={mappingsColumns}
557
547
  className="rcw-add-mappings-table"
558
548
  emptyTableContent={ReportsConfigWidget.localization.getLocalizedString(
@@ -561,22 +551,17 @@ export const AddMappingsModal = ({
561
551
  isSortable
562
552
  isSelectable
563
553
  isLoading={isLoading}
564
- isRowDisabled={(rowData) =&gt;
565
- existingMappings.some((v) =&gt; v.mappingId === rowData.id)
566
- }
567
- onSelect={(selectData: Mapping[] | undefined) =&gt; {
568
- selectData &amp;&amp; setSelectedMappings(selectData);
569
- }}
554
+ isRowDisabled={isRowDisabled}
555
+ onSelect={onSelect}
570
556
  paginatorRenderer={LocalizedTablePaginator}
571
557
  /&gt;
572
558
  &lt;/div&gt;
559
+ {/* Add button permanently enabled as a workaround to the warning stating that the table and parent component are being rendered at the same time. */}
573
560
  &lt;ActionPanel
574
561
  actionLabel={ReportsConfigWidget.localization.getLocalizedString(
575
562
  "ReportsConfigWidget:Add"
576
563
  )}
577
564
  onAction={onSave}
578
- onCancel={returnFn}
579
- isSavingDisabled={selectedMappings.length === 0}
580
565
  isLoading={isLoading}
581
566
  /&gt;
582
567
  &lt;/Modal&gt;
@@ -589,7 +574,7 @@ export const AddMappingsModal = ({
589
574
  <div class='footer quiet pad2 space-top1 center small'>
590
575
  Code coverage generated by
591
576
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
592
- at Tue Mar 07 2023 15:47:40 GMT+0000 (Coordinated Universal Time)
577
+ at Thu Aug 17 2023 14:40:52 GMT+0000 (Coordinated Universal Time)
593
578
  </div>
594
579
  <script src="../../../prettify.js"></script>
595
580
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">85% </span>
26
+ <span class="strong">92.92% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>85/100</span>
28
+ <span class='fraction'>92/99</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">76.19% </span>
33
+ <span class="strong">90.47% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>16/21</span>
35
+ <span class='fraction'>19/21</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">86.66% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>13/15</span>
42
+ <span class='fraction'>15/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">85.41% </span>
47
+ <span class="strong">93.68% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/96</span>
49
+ <span class='fraction'>89/95</span>
50
50
  </div>
51
51
 
52
52
 
@@ -255,14 +255,14 @@
255
255
  <a name='L190'></a><a href='#L190'>190</a>
256
256
  <a name='L191'></a><a href='#L191'>191</a>
257
257
  <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
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
260
  <span class="cline-any cline-neutral">&nbsp;</span>
260
261
  <span class="cline-any cline-neutral">&nbsp;</span>
261
262
  <span class="cline-any cline-neutral">&nbsp;</span>
262
263
  <span class="cline-any cline-yes">8x</span>
263
264
  <span class="cline-any cline-neutral">&nbsp;</span>
264
265
  <span class="cline-any cline-yes">8x</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
266
  <span class="cline-any cline-yes">8x</span>
267
267
  <span class="cline-any cline-yes">8x</span>
268
268
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -272,32 +272,34 @@
272
272
  <span class="cline-any cline-neutral">&nbsp;</span>
273
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
276
  <span class="cline-any cline-yes">8x</span>
276
277
  <span class="cline-any cline-neutral">&nbsp;</span>
277
278
  <span class="cline-any cline-neutral">&nbsp;</span>
278
279
  <span class="cline-any cline-neutral">&nbsp;</span>
279
280
  <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-yes">19x</span>
281
- <span class="cline-any cline-yes">19x</span>
282
- <span class="cline-any cline-yes">19x</span>
283
- <span class="cline-any cline-yes">19x</span>
284
- <span class="cline-any cline-yes">19x</span>
281
+ <span class="cline-any cline-yes">68x</span>
282
+ <span class="cline-any cline-yes">68x</span>
283
+ <span class="cline-any cline-yes">68x</span>
284
+ <span class="cline-any cline-yes">68x</span>
285
+ <span class="cline-any cline-yes">68x</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
287
  <span class="cline-any cline-neutral">&nbsp;</span>
286
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">68x</span>
287
290
  <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-yes">19x</span>
289
291
  <span class="cline-any cline-neutral">&nbsp;</span>
290
292
  <span class="cline-any cline-neutral">&nbsp;</span>
291
293
  <span class="cline-any cline-neutral">&nbsp;</span>
292
294
  <span class="cline-any cline-neutral">&nbsp;</span>
293
295
  <span class="cline-any cline-neutral">&nbsp;</span>
294
296
  <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-yes">19x</span>
296
- <span class="cline-any cline-yes">19x</span>
297
- <span class="cline-any cline-yes">19x</span>
298
- <span class="cline-any cline-yes">19x</span>
299
- <span class="cline-any cline-yes">19x</span>
300
- <span class="cline-any cline-yes">19x</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-yes">68x</span>
299
+ <span class="cline-any cline-yes">68x</span>
300
+ <span class="cline-any cline-yes">68x</span>
301
+ <span class="cline-any cline-yes">68x</span>
302
+ <span class="cline-any cline-yes">68x</span>
301
303
  <span class="cline-any cline-neutral">&nbsp;</span>
302
304
  <span class="cline-any cline-neutral">&nbsp;</span>
303
305
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -377,16 +379,16 @@
377
379
  <span class="cline-any cline-neutral">&nbsp;</span>
378
380
  <span class="cline-any cline-neutral">&nbsp;</span>
379
381
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">14x</span>
381
- <span class="cline-any cline-no">&nbsp;</span>
382
- <span class="cline-any cline-no">&nbsp;</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
- <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-yes">27x</span>
383
+ <span class="cline-any cline-yes">13x</span>
384
+ <span class="cline-any cline-yes">13x</span>
385
+ <span class="cline-any cline-yes">8x</span>
386
+ <span class="cline-any cline-yes">8x</span>
385
387
  <span class="cline-any cline-no">&nbsp;</span>
386
388
  <span class="cline-any cline-neutral">&nbsp;</span>
387
389
  <span class="cline-any cline-neutral">&nbsp;</span>
388
390
  <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-no">&nbsp;</span>
391
+ <span class="cline-any cline-yes">13x</span>
390
392
  <span class="cline-any cline-neutral">&nbsp;</span>
391
393
  <span class="cline-any cline-neutral">&nbsp;</span>
392
394
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -423,9 +425,9 @@
423
425
  <span class="cline-any cline-neutral">&nbsp;</span>
424
426
  <span class="cline-any cline-neutral">&nbsp;</span>
425
427
  <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-no">&nbsp;</span>
427
- <span class="cline-any cline-no">&nbsp;</span>
428
- <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-yes">13x</span>
429
+ <span class="cline-any cline-yes">13x</span>
430
+ <span class="cline-any cline-yes">13x</span>
429
431
  <span class="cline-any cline-neutral">&nbsp;</span>
430
432
  <span class="cline-any cline-neutral">&nbsp;</span>
431
433
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -451,12 +453,12 @@
451
453
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
452
454
  * See LICENSE.md in the project root for license terms and full copyright notice.
453
455
  *--------------------------------------------------------------------------------------------*/
454
- import { ExtractionClient, ExtractorState, REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
455
- import type { ReportMapping } from "@itwin/insights-client";
456
- import { generateUrl, handleError } from "./utils";
457
- import type { ReportsApiConfig } from "../context/ReportsApiConfigContext";
456
+ import { ExtractorState } from "@itwin/insights-client";
457
+ import type { ExtractionClient, ReportMapping, ReportsClient } from "@itwin/insights-client";
458
+ import { handleError } from "./utils";
458
459
  import { ExtractionStates } from "./ExtractionStatus";
459
460
  import { STATUS_CHECK_INTERVAL } from "./Constants";
461
+ import type { AccessToken } from "@itwin/core-bentley";
460
462
  &nbsp;
461
463
  export type ReportMappingAndMapping = ReportMapping &amp; {
462
464
  mappingName: string;
@@ -464,7 +466,7 @@ export type ReportMappingAndMapping = ReportMapping &amp; {
464
466
  iModelName: string;
465
467
  };
466
468
  &nbsp;
467
- export default class BulkExtractor {
469
+ export class BulkExtractor {
468
470
  private _reportsClientApi: ReportsClient;
469
471
  private _extractionClientApi: ExtractionClient;
470
472
  private _accessToken: () =&gt; Promise&lt;string&gt;;
@@ -480,14 +482,15 @@ export default class BulkExtractor {
480
482
  private _iModels: string[] = [];
481
483
  &nbsp;
482
484
  constructor(
483
- apiConfig: ReportsApiConfig,
485
+ reportsClient: ReportsClient,
486
+ extractionClient: ExtractionClient,
487
+ getAccessToken: () =&gt; Promise&lt;AccessToken&gt;,
484
488
  successfulExtractionToast: (iModelName: string, odataFeedUrl: string) =&gt; void,
485
489
  failedExtractionToast: (iModelName: string) =&gt; void,
486
490
  ) {
487
- const url = generateUrl(REPORTING_BASE_PATH, apiConfig.baseUrl);
488
- this._reportsClientApi = new ReportsClient(url);
489
- this._extractionClientApi = new ExtractionClient(url);
490
- this._accessToken = apiConfig.getAccessToken;
491
+ this._reportsClientApi = reportsClient;
492
+ this._extractionClientApi = extractionClient;
493
+ this._accessToken = getAccessToken;
491
494
  this._successfulExtractionToast = successfulExtractionToast;
492
495
  this._failedExtractionToast = failedExtractionToast;
493
496
  }
@@ -569,16 +572,16 @@ export default class BulkExtractor {
569
572
  }
570
573
  &nbsp;
571
574
  private checkRunning(): void {
572
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this._setJobRunning) {
573
- let allFinished = <span class="cstat-no" title="statement not covered" >true;</span>
574
- <span class="cstat-no" title="statement not covered" > this._iModels.forEach(<span class="fstat-no" title="function not covered" >(i</span>ModelId) =&gt; {</span>
575
- const state = <span class="cstat-no" title="statement not covered" >this._iModelStates.get(iModelId);</span>
576
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (state === ExtractorState.Queued || state === ExtractorState.Running) {</span>
575
+ if (this._setJobRunning) {
576
+ let allFinished = true;
577
+ this._iModels.forEach((iModelId) =&gt; {
578
+ 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) {
577
580
  <span class="cstat-no" title="statement not covered" > allFinished = false;</span>
578
581
  }
579
582
  });
580
583
  &nbsp;
581
- <span class="cstat-no" title="statement not covered" > this._setJobRunning(!allFinished);</span>
584
+ this._setJobRunning(!allFinished);
582
585
  }
583
586
  }
584
587
  &nbsp;
@@ -614,10 +617,10 @@ export default class BulkExtractor {
614
617
  return this.runIModelExtractions([iModelId]);
615
618
  }
616
619
  &nbsp;
617
- public <span class="fstat-no" title="function not covered" >setHook(</span>setJobRunning: React.Dispatch&lt;React.SetStateAction&lt;boolean&gt;&gt;, iModels: string[]): void {
618
- <span class="cstat-no" title="statement not covered" > this._setJobRunning = setJobRunning;</span>
619
- <span class="cstat-no" title="statement not covered" > this._iModels = iModels;</span>
620
- <span class="cstat-no" title="statement not covered" > this.checkRunning();</span>
620
+ public setHook(setJobRunning: React.Dispatch&lt;React.SetStateAction&lt;boolean&gt;&gt;, iModels: string[]): void {
621
+ this._setJobRunning = setJobRunning;
622
+ this._iModels = iModels;
623
+ this.checkRunning();
621
624
  }
622
625
  &nbsp;
623
626
  public async runIModelExtractions(iModels: string[]): Promise&lt;void&gt; {
@@ -646,7 +649,7 @@ export default class BulkExtractor {
646
649
  <div class='footer quiet pad2 space-top1 center small'>
647
650
  Code coverage generated by
648
651
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
649
- at Tue Mar 07 2023 15:47:40 GMT+0000 (Coordinated Universal Time)
652
+ at Thu Aug 17 2023 14:40:52 GMT+0000 (Coordinated Universal Time)
650
653
  </div>
651
654
  <script src="../../../prettify.js"></script>
652
655
  <script>