@itwin/reports-config-widget-react 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/CHANGELOG.json +47 -1
  2. package/CHANGELOG.md +14 -2
  3. package/LICENSE.md +9 -9
  4. package/README.md +38 -38
  5. package/__mocks__/fileMock.js +4 -4
  6. package/api/reports-config-widget-react.api.md +130 -0
  7. package/api/reports-config-widget-react.exports.csv +14 -0
  8. package/api/temp/reports-config-widget-react.api.md +130 -0
  9. package/coverage/clover.xml +505 -504
  10. package/coverage/coverage-final.json +32 -32
  11. package/coverage/lcov-report/index.html +24 -24
  12. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +15 -15
  13. package/coverage/lcov-report/src/index.html +1 -1
  14. package/coverage/lcov-report/src/test/index.html +11 -11
  15. package/coverage/lcov-report/src/test/test-utils.tsx.html +46 -16
  16. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +22 -64
  17. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +5 -38
  18. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +23 -119
  19. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +117 -90
  20. package/coverage/lcov-report/src/widget/components/Constants.ts.html +5 -5
  21. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +13 -103
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +6 -21
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +6 -21
  24. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +7 -22
  25. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +7 -28
  26. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +6 -21
  27. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +1 -1
  28. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +20 -47
  29. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +20 -11
  30. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +16 -79
  31. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +15 -108
  32. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +36 -75
  33. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +62 -92
  34. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +104 -128
  35. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +86 -299
  36. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +40 -202
  37. package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +59 -44
  38. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +10 -49
  39. package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +8 -47
  40. package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +6 -12
  41. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +13 -25
  42. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +11 -56
  43. package/coverage/lcov-report/src/widget/components/index.html +50 -50
  44. package/coverage/lcov-report/src/widget/components/utils.tsx.html +25 -169
  45. package/coverage/lcov-report/src/widget/context/BulkExtractorContext.tsx.html +6 -12
  46. package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +6 -12
  47. package/coverage/lcov-report/src/widget/context/index.html +1 -1
  48. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  49. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +12 -54
  50. package/coverage/lcov-report/src/widget/index.html +1 -1
  51. package/coverage/lcov.info +917 -893
  52. package/jest.config.js +14 -17
  53. package/lib/cjs/ReportsConfigWidget.d.ts +4 -0
  54. package/lib/cjs/ReportsConfigWidget.d.ts.map +1 -1
  55. package/lib/cjs/ReportsConfigWidget.js +4 -0
  56. package/lib/cjs/ReportsConfigWidget.js.map +1 -1
  57. package/lib/cjs/reports-config-widget-react.js +3 -3
  58. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  59. package/lib/cjs/test/AddMappingModal.test.js +11 -10
  60. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  61. package/lib/cjs/test/BulkExtractor.test.js +68 -43
  62. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  63. package/lib/cjs/test/DeleteModal.test.js +3 -3
  64. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  65. package/lib/cjs/test/ReportAction.test.js +6 -4
  66. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  67. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +64 -25
  68. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  69. package/lib/cjs/test/ReportMappings.test.js +39 -18
  70. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  71. package/lib/cjs/test/Reports.test.js +3 -3
  72. package/lib/cjs/test/Reports.test.js.map +1 -1
  73. package/lib/cjs/test/WidgetHeader.test.js +3 -3
  74. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  75. package/lib/cjs/test/test-utils.d.ts +8 -0
  76. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  77. package/lib/cjs/test/test-utils.js +16 -4
  78. package/lib/cjs/test/test-utils.js.map +1 -1
  79. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  80. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +7 -0
  81. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  82. package/lib/cjs/widget/ReportsConfigUiProvider.js +8 -3
  83. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  84. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  85. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  86. package/lib/cjs/widget/components/AddMappingsModal.d.ts +1 -1
  87. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  88. package/lib/cjs/widget/components/AddMappingsModal.js +7 -7
  89. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  90. package/lib/cjs/widget/components/AddMappingsModal.scss +1 -1
  91. package/lib/cjs/widget/components/BulkExtractor.d.ts +7 -4
  92. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  93. package/lib/cjs/widget/components/BulkExtractor.js +52 -35
  94. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  95. package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
  96. package/lib/cjs/widget/components/Constants.js +3 -3
  97. package/lib/cjs/widget/components/Constants.js.map +1 -1
  98. package/lib/cjs/widget/components/DeleteModal.d.ts +1 -1
  99. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  100. package/lib/cjs/widget/components/DeleteModal.js +5 -5
  101. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  102. package/lib/cjs/widget/components/DeleteModal.scss +2 -2
  103. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  104. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js +3 -3
  105. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -1
  106. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  107. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js +3 -3
  108. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -1
  109. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  110. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +3 -3
  111. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
  112. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  113. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js +3 -3
  114. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -1
  115. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  116. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +3 -3
  117. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
  118. package/lib/cjs/widget/components/ExtractionStatus.d.ts +1 -1
  119. package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -1
  120. package/lib/cjs/widget/components/ExtractionStatus.js +9 -9
  121. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  122. package/lib/cjs/widget/components/ExtractionStatus.scss +1 -1
  123. package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -1
  124. package/lib/cjs/widget/components/ExtractionToast.js +3 -3
  125. package/lib/cjs/widget/components/ExtractionToast.js.map +1 -1
  126. package/lib/cjs/widget/components/HorizontalTile.d.ts.map +1 -1
  127. package/lib/cjs/widget/components/HorizontalTile.js +1 -2
  128. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  129. package/lib/cjs/widget/components/HorizontalTile.scss +1 -4
  130. package/lib/cjs/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  131. package/lib/cjs/widget/components/LocalizedTablePaginator.js +1 -1
  132. package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
  133. package/lib/cjs/widget/components/ReportAction.d.ts +8 -0
  134. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  135. package/lib/cjs/widget/components/ReportAction.js +9 -7
  136. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  137. package/lib/cjs/widget/components/ReportAction.scss +1 -1
  138. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  139. package/lib/cjs/widget/components/ReportHorizontalTile.js +4 -4
  140. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  141. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  142. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +46 -45
  143. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  144. package/lib/cjs/widget/components/ReportMappings.d.ts +8 -0
  145. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  146. package/lib/cjs/widget/components/ReportMappings.js +25 -11
  147. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  148. package/lib/cjs/widget/components/Reports.d.ts +9 -1
  149. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  150. package/lib/cjs/widget/components/Reports.js +7 -8
  151. package/lib/cjs/widget/components/Reports.js.map +1 -1
  152. package/lib/cjs/widget/components/Reports.scss +0 -1
  153. package/lib/cjs/widget/components/ReportsConfigContext.d.ts +8 -0
  154. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -1
  155. package/lib/cjs/widget/components/ReportsConfigContext.js +13 -5
  156. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
  157. package/lib/cjs/widget/components/ReportsContainer.d.ts +1 -1
  158. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  159. package/lib/cjs/widget/components/ReportsContainer.js +2 -4
  160. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  161. package/lib/cjs/widget/components/ReportsContainer.scss +1 -1
  162. package/lib/cjs/widget/components/ReportsHeader.d.ts +1 -1
  163. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -1
  164. package/lib/cjs/widget/components/ReportsHeader.js +6 -7
  165. package/lib/cjs/widget/components/ReportsHeader.js.map +1 -1
  166. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -1
  167. package/lib/cjs/widget/components/ReportsRouter.js +3 -3
  168. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
  169. package/lib/cjs/widget/components/SearchBar.d.ts +1 -1
  170. package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
  171. package/lib/cjs/widget/components/SearchBar.js +4 -4
  172. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  173. package/lib/cjs/widget/components/SelectIModel.d.ts +1 -1
  174. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  175. package/lib/cjs/widget/components/SelectIModel.js +1 -1
  176. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  177. package/lib/cjs/widget/components/SelectIModel.scss +1 -1
  178. package/lib/cjs/widget/components/utils.d.ts +1 -1
  179. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  180. package/lib/cjs/widget/components/utils.js +5 -5
  181. package/lib/cjs/widget/components/utils.js.map +1 -1
  182. package/lib/cjs/widget/components/utils.scss +1 -1
  183. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -1
  184. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
  185. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  186. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
  187. package/lib/cjs/widget/hooks/useValidator.d.ts +1 -4
  188. package/lib/cjs/widget/hooks/useValidator.d.ts.map +1 -1
  189. package/lib/cjs/widget/hooks/useValidator.js +3 -3
  190. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  191. package/lib/esm/ReportsConfigWidget.d.ts +4 -0
  192. package/lib/esm/ReportsConfigWidget.d.ts.map +1 -1
  193. package/lib/esm/ReportsConfigWidget.js +4 -0
  194. package/lib/esm/ReportsConfigWidget.js.map +1 -1
  195. package/lib/esm/reports-config-widget-react.js +3 -3
  196. package/lib/esm/reports-config-widget-react.js.map +1 -1
  197. package/lib/esm/test/AddMappingModal.test.js +12 -11
  198. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  199. package/lib/esm/test/BulkExtractor.test.js +69 -44
  200. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  201. package/lib/esm/test/DeleteModal.test.js +4 -4
  202. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  203. package/lib/esm/test/ReportAction.test.js +7 -5
  204. package/lib/esm/test/ReportAction.test.js.map +1 -1
  205. package/lib/esm/test/ReportMappingHorizontalTile.test.js +65 -26
  206. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  207. package/lib/esm/test/ReportMappings.test.js +41 -20
  208. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  209. package/lib/esm/test/Reports.test.js +4 -4
  210. package/lib/esm/test/Reports.test.js.map +1 -1
  211. package/lib/esm/test/WidgetHeader.test.js +3 -3
  212. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  213. package/lib/esm/test/test-utils.d.ts +8 -0
  214. package/lib/esm/test/test-utils.d.ts.map +1 -1
  215. package/lib/esm/test/test-utils.js +15 -3
  216. package/lib/esm/test/test-utils.js.map +1 -1
  217. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  218. package/lib/esm/widget/ReportsConfigUiProvider.d.ts +7 -0
  219. package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  220. package/lib/esm/widget/ReportsConfigUiProvider.js +9 -4
  221. package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
  222. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  223. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  224. package/lib/esm/widget/components/AddMappingsModal.d.ts +1 -1
  225. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  226. package/lib/esm/widget/components/AddMappingsModal.js +7 -7
  227. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  228. package/lib/esm/widget/components/AddMappingsModal.scss +1 -1
  229. package/lib/esm/widget/components/BulkExtractor.d.ts +7 -4
  230. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  231. package/lib/esm/widget/components/BulkExtractor.js +53 -36
  232. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  233. package/lib/esm/widget/components/Constants.d.ts.map +1 -1
  234. package/lib/esm/widget/components/Constants.js +3 -3
  235. package/lib/esm/widget/components/Constants.js.map +1 -1
  236. package/lib/esm/widget/components/DeleteModal.d.ts +1 -1
  237. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  238. package/lib/esm/widget/components/DeleteModal.js +6 -6
  239. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  240. package/lib/esm/widget/components/DeleteModal.scss +2 -2
  241. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  242. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js +3 -3
  243. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -1
  244. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  245. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js +3 -3
  246. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -1
  247. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  248. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +3 -3
  249. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
  250. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  251. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js +3 -3
  252. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -1
  253. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  254. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +3 -3
  255. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
  256. package/lib/esm/widget/components/ExtractionStatus.d.ts +1 -1
  257. package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -1
  258. package/lib/esm/widget/components/ExtractionStatus.js +9 -9
  259. package/lib/esm/widget/components/ExtractionStatus.js.map +1 -1
  260. package/lib/esm/widget/components/ExtractionStatus.scss +1 -1
  261. package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -1
  262. package/lib/esm/widget/components/ExtractionToast.js +3 -3
  263. package/lib/esm/widget/components/ExtractionToast.js.map +1 -1
  264. package/lib/esm/widget/components/HorizontalTile.d.ts.map +1 -1
  265. package/lib/esm/widget/components/HorizontalTile.js +1 -2
  266. package/lib/esm/widget/components/HorizontalTile.js.map +1 -1
  267. package/lib/esm/widget/components/HorizontalTile.scss +1 -4
  268. package/lib/esm/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  269. package/lib/esm/widget/components/LocalizedTablePaginator.js +1 -1
  270. package/lib/esm/widget/components/LocalizedTablePaginator.js.map +1 -1
  271. package/lib/esm/widget/components/ReportAction.d.ts +8 -0
  272. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  273. package/lib/esm/widget/components/ReportAction.js +10 -8
  274. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  275. package/lib/esm/widget/components/ReportAction.scss +1 -1
  276. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  277. package/lib/esm/widget/components/ReportHorizontalTile.js +6 -6
  278. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  279. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  280. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +47 -46
  281. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  282. package/lib/esm/widget/components/ReportMappings.d.ts +8 -0
  283. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  284. package/lib/esm/widget/components/ReportMappings.js +28 -14
  285. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  286. package/lib/esm/widget/components/Reports.d.ts +9 -1
  287. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  288. package/lib/esm/widget/components/Reports.js +8 -9
  289. package/lib/esm/widget/components/Reports.js.map +1 -1
  290. package/lib/esm/widget/components/Reports.scss +0 -1
  291. package/lib/esm/widget/components/ReportsConfigContext.d.ts +8 -0
  292. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -1
  293. package/lib/esm/widget/components/ReportsConfigContext.js +14 -6
  294. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
  295. package/lib/esm/widget/components/ReportsContainer.d.ts +1 -1
  296. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  297. package/lib/esm/widget/components/ReportsContainer.js +2 -4
  298. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  299. package/lib/esm/widget/components/ReportsContainer.scss +1 -1
  300. package/lib/esm/widget/components/ReportsHeader.d.ts +1 -1
  301. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -1
  302. package/lib/esm/widget/components/ReportsHeader.js +6 -7
  303. package/lib/esm/widget/components/ReportsHeader.js.map +1 -1
  304. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -1
  305. package/lib/esm/widget/components/ReportsRouter.js +3 -3
  306. package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
  307. package/lib/esm/widget/components/SearchBar.d.ts +1 -1
  308. package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
  309. package/lib/esm/widget/components/SearchBar.js +4 -4
  310. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  311. package/lib/esm/widget/components/SelectIModel.d.ts +1 -1
  312. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  313. package/lib/esm/widget/components/SelectIModel.js +2 -2
  314. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  315. package/lib/esm/widget/components/SelectIModel.scss +1 -1
  316. package/lib/esm/widget/components/utils.d.ts +1 -1
  317. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  318. package/lib/esm/widget/components/utils.js +6 -6
  319. package/lib/esm/widget/components/utils.js.map +1 -1
  320. package/lib/esm/widget/components/utils.scss +1 -1
  321. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -1
  322. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -1
  323. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  324. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -1
  325. package/lib/esm/widget/hooks/useValidator.d.ts +1 -4
  326. package/lib/esm/widget/hooks/useValidator.d.ts.map +1 -1
  327. package/lib/esm/widget/hooks/useValidator.js +3 -3
  328. package/lib/esm/widget/hooks/useValidator.js.map +1 -1
  329. package/package.json +9 -4
  330. package/src/ReportsConfigWidget.ts +9 -9
  331. package/src/reports-config-widget-react.ts +3 -3
  332. package/src/test/AddMappingModal.test.tsx +45 -70
  333. package/src/test/BulkExtractor.test.ts +73 -118
  334. package/src/test/DeleteModal.test.tsx +6 -23
  335. package/src/test/ReportAction.test.tsx +20 -38
  336. package/src/test/ReportMappingHorizontalTile.test.tsx +137 -106
  337. package/src/test/ReportMappings.test.tsx +73 -88
  338. package/src/test/Reports.test.tsx +30 -64
  339. package/src/test/WidgetHeader.test.tsx +3 -3
  340. package/src/test/test-utils.tsx +18 -8
  341. package/src/widget/ReportsConfigUiProvider.tsx +16 -30
  342. package/src/widget/components/ActionPanel.tsx +3 -14
  343. package/src/widget/components/AddMappingsModal.scss +1 -1
  344. package/src/widget/components/AddMappingsModal.tsx +19 -51
  345. package/src/widget/components/BulkExtractor.ts +63 -54
  346. package/src/widget/components/Constants.ts +4 -4
  347. package/src/widget/components/DeleteModal.scss +2 -2
  348. package/src/widget/components/DeleteModal.tsx +11 -41
  349. package/src/widget/components/ExtractionStates/FailedExtractionState.tsx +4 -9
  350. package/src/widget/components/ExtractionStates/QueuedExtractionState.tsx +4 -9
  351. package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +4 -9
  352. package/src/widget/components/ExtractionStates/StartingExtractionState.tsx +4 -11
  353. package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +4 -9
  354. package/src/widget/components/ExtractionStatus.scss +1 -1
  355. package/src/widget/components/ExtractionStatus.tsx +9 -18
  356. package/src/widget/components/ExtractionToast.tsx +12 -9
  357. package/src/widget/components/HorizontalTile.scss +1 -4
  358. package/src/widget/components/HorizontalTile.tsx +12 -33
  359. package/src/widget/components/LocalizedTablePaginator.tsx +13 -44
  360. package/src/widget/components/ReportAction.scss +1 -1
  361. package/src/widget/components/ReportAction.tsx +26 -39
  362. package/src/widget/components/ReportHorizontalTile.tsx +45 -55
  363. package/src/widget/components/ReportMappingHorizontalTile.tsx +70 -78
  364. package/src/widget/components/ReportMappings.tsx +59 -130
  365. package/src/widget/components/Reports.scss +0 -1
  366. package/src/widget/components/Reports.tsx +28 -82
  367. package/src/widget/components/ReportsConfigContext.tsx +30 -25
  368. package/src/widget/components/ReportsContainer.scss +1 -1
  369. package/src/widget/components/ReportsContainer.tsx +8 -21
  370. package/src/widget/components/ReportsHeader.tsx +6 -19
  371. package/src/widget/components/ReportsRouter.tsx +4 -6
  372. package/src/widget/components/SearchBar.tsx +9 -13
  373. package/src/widget/components/SelectIModel.scss +1 -1
  374. package/src/widget/components/SelectIModel.tsx +9 -24
  375. package/src/widget/components/utils.scss +1 -1
  376. package/src/widget/components/utils.tsx +21 -69
  377. package/src/widget/context/BulkExtractorContext.tsx +4 -6
  378. package/src/widget/context/ReportsConfigApiContext.tsx +4 -6
  379. package/src/widget/hooks/useValidator.ts +10 -24
  380. package/tsconfig.json +11 -11
@@ -182,17 +182,7 @@
182
182
  <a name='L117'></a><a href='#L117'>117</a>
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
184
  <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
185
+ <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
196
186
  <span class="cline-any cline-neutral">&nbsp;</span>
197
187
  <span class="cline-any cline-neutral">&nbsp;</span>
198
188
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -204,15 +194,7 @@
204
194
  <span class="cline-any cline-neutral">&nbsp;</span>
205
195
  <span class="cline-any cline-yes">7x</span>
206
196
  <span class="cline-any cline-yes">7x</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-neutral">&nbsp;</span>
211
197
  <span class="cline-any cline-yes">7x</span>
212
- <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
198
  <span class="cline-any cline-yes">7x</span>
217
199
  <span class="cline-any cline-neutral">&nbsp;</span>
218
200
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -227,26 +209,26 @@
227
209
  <span class="cline-any cline-neutral">&nbsp;</span>
228
210
  <span class="cline-any cline-neutral">&nbsp;</span>
229
211
  <span class="cline-any cline-yes">7x</span>
230
- <span class="cline-any cline-yes">144x</span>
231
- <span class="cline-any cline-yes">144x</span>
232
- <span class="cline-any cline-yes">144x</span>
212
+ <span class="cline-any cline-yes">143x</span>
213
+ <span class="cline-any cline-yes">143x</span>
214
+ <span class="cline-any cline-yes">143x</span>
233
215
  <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-yes">144x</span>
235
- <span class="cline-any cline-yes">26x</span>
216
+ <span class="cline-any cline-yes">143x</span>
217
+ <span class="cline-any cline-yes">27x</span>
236
218
  <span class="cline-any cline-no">&nbsp;</span>
237
219
  <span class="cline-any cline-no">&nbsp;</span>
238
220
  <span class="cline-any cline-no">&nbsp;</span>
239
221
  <span class="cline-any cline-neutral">&nbsp;</span>
240
222
  <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-yes">26x</span>
223
+ <span class="cline-any cline-yes">27x</span>
242
224
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-yes">26x</span>
244
- <span class="cline-any cline-yes">26x</span>
225
+ <span class="cline-any cline-yes">27x</span>
226
+ <span class="cline-any cline-yes">27x</span>
245
227
  <span class="cline-any cline-neutral">&nbsp;</span>
246
228
  <span class="cline-any cline-neutral">&nbsp;</span>
247
229
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">144x</span>
249
- <span class="cline-any cline-yes">26x</span>
230
+ <span class="cline-any cline-yes">143x</span>
231
+ <span class="cline-any cline-yes">27x</span>
250
232
  <span class="cline-any cline-no">&nbsp;</span>
251
233
  <span class="cline-any cline-no">&nbsp;</span>
252
234
  <span class="cline-any cline-no">&nbsp;</span>
@@ -258,16 +240,16 @@
258
240
  <span class="cline-any cline-neutral">&nbsp;</span>
259
241
  <span class="cline-any cline-neutral">&nbsp;</span>
260
242
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">26x</span>
243
+ <span class="cline-any cline-yes">27x</span>
262
244
  <span class="cline-any cline-neutral">&nbsp;</span>
263
245
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">144x</span>
246
+ <span class="cline-any cline-yes">143x</span>
265
247
  <span class="cline-any cline-yes">4x</span>
266
248
  <span class="cline-any cline-yes">4x</span>
267
249
  <span class="cline-any cline-neutral">&nbsp;</span>
268
250
  <span class="cline-any cline-neutral">&nbsp;</span>
269
251
  <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">144x</span>
252
+ <span class="cline-any cline-yes">143x</span>
271
253
  <span class="cline-any cline-neutral">&nbsp;</span>
272
254
  <span class="cline-any cline-neutral">&nbsp;</span>
273
255
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -281,8 +263,7 @@
281
263
  <span class="cline-any cline-neutral">&nbsp;</span>
282
264
  <span class="cline-any cline-neutral">&nbsp;</span>
283
265
  <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-yes">144x</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-yes">143x</span>
286
267
  <span class="cline-any cline-neutral">&nbsp;</span>
287
268
  <span class="cline-any cline-yes">2x</span>
288
269
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -293,7 +274,6 @@
293
274
  <span class="cline-any cline-neutral">&nbsp;</span>
294
275
  <span class="cline-any cline-neutral">&nbsp;</span>
295
276
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
277
  <span class="cline-any cline-yes">1x</span>
298
278
  <span class="cline-any cline-yes">1x</span>
299
279
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -313,7 +293,6 @@
313
293
  <span class="cline-any cline-neutral">&nbsp;</span>
314
294
  <span class="cline-any cline-neutral">&nbsp;</span>
315
295
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
296
  <span class="cline-any cline-no">&nbsp;</span>
318
297
  <span class="cline-any cline-neutral">&nbsp;</span>
319
298
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -321,10 +300,11 @@
321
300
  <span class="cline-any cline-neutral">&nbsp;</span>
322
301
  <span class="cline-any cline-neutral">&nbsp;</span>
323
302
  <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
304
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
325
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
326
- * See LICENSE.md in the project root for license terms and full copyright notice.
327
- *--------------------------------------------------------------------------------------------*/
305
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
306
+ * See LICENSE.md in the project root for license terms and full copyright notice.
307
+ *--------------------------------------------------------------------------------------------*/
328
308
  import React, { useEffect, useRef, useState } from "react";
329
309
  import type { BulkExtractor } from "./BulkExtractor";
330
310
  import { ExtractionStates, ExtractionStatus } from "./ExtractionStatus";
@@ -332,16 +312,8 @@ import type { BeEvent } from "@itwin/core-bentley";
332
312
  import { STATUS_CHECK_INTERVAL } from "./Constants";
333
313
  import type { Report } from "@itwin/insights-client";
334
314
  import { ReportsConfigWidget } from "../../ReportsConfigWidget";
335
- import {
336
- DropdownMenu,
337
- IconButton,
338
- MenuItem,
339
- } from "@itwin/itwinui-react";
340
- import {
341
- SvgDelete,
342
- SvgEdit,
343
- SvgMore,
344
- } from "@itwin/itwinui-icons-react";
315
+ import { DropdownMenu, IconButton, MenuItem } from "@itwin/itwinui-react";
316
+ import { SvgDelete, SvgEdit, SvgMore } from "@itwin/itwinui-icons-react";
345
317
  import { HorizontalTile } from "./HorizontalTile";
346
318
  &nbsp;
347
319
  export interface ReportHorizontalTileProps {
@@ -405,48 +377,46 @@ export const ReportHorizontalTile = (props: ReportHorizontalTileProps) =&gt; {
405
377
  onClick={onClickTile}
406
378
  onClickTitle={() =&gt; props.onClickTitle?.(props.report)}
407
379
  selected={props.selected}
408
- actionGroup={extractionState === ExtractionStates.None ? (
409
- &lt;div
410
- className="rcw-action-button"
411
- data-testid="tile-action-button"&gt;
412
- &lt;DropdownMenu
413
- menuItems={(close: () =&gt; void) =&gt; [
414
- props.onClickModify ? &lt;MenuItem
415
- key={0}
416
- onClick={() =&gt; props.onClickModify?.(props.report)}
417
- icon={&lt;SvgEdit /&gt;}
418
- &gt;
419
- {ReportsConfigWidget.localization.getLocalizedString(
420
- "ReportsConfigWidget:Modify"
421
- )}
422
- &lt;/MenuItem&gt; : [],
423
- &lt;MenuItem
424
- key={1}
425
- onClick={() =&gt; {
426
- props.onClickDelete();
427
- close();
428
- }}
429
- icon={&lt;SvgDelete /&gt;}
430
- &gt;
431
- {ReportsConfigWidget.localization.getLocalizedString(
432
- "ReportsConfigWidget:Remove"
433
- )}
434
- &lt;/MenuItem&gt;,
435
- ].flat()}
436
- &gt;
437
- &lt;IconButton styleType="borderless" title={ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportOptions")}&gt;
438
- &lt;SvgMore /&gt;
439
- &lt;/IconButton&gt;
440
- &lt;/DropdownMenu&gt;
441
- &lt;/div&gt;
442
- ) : (
443
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;ExtractionStatus</span>
444
- state={extractionState}
445
- clearExtractionState={<span class="fstat-no" title="function not covered" >() =</span>&gt; {
446
- <span class="cstat-no" title="statement not covered" > setExtractionState(ExtractionStates.None);</span>
447
- }}
448
- &gt;&lt;/ExtractionStatus&gt;
449
- )}
380
+ actionGroup={
381
+ extractionState === ExtractionStates.None ? (
382
+ &lt;div className="rcw-action-button" data-testid="tile-action-button"&gt;
383
+ &lt;DropdownMenu
384
+ menuItems={(close: () =&gt; void) =&gt;
385
+ [
386
+ props.onClickModify ? (
387
+ &lt;MenuItem key={0} onClick={() =&gt; props.onClickModify?.(props.report)} icon={&lt;SvgEdit /&gt;}&gt;
388
+ {ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Modify")}
389
+ &lt;/MenuItem&gt;
390
+ ) : (
391
+ []
392
+ ),
393
+ &lt;MenuItem
394
+ key={1}
395
+ onClick={() =&gt; {
396
+ props.onClickDelete();
397
+ close();
398
+ }}
399
+ icon={&lt;SvgDelete /&gt;}
400
+ &gt;
401
+ {ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Remove")}
402
+ &lt;/MenuItem&gt;,
403
+ ].flat()
404
+ }
405
+ &gt;
406
+ &lt;IconButton styleType="borderless" title={ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportOptions")}&gt;
407
+ &lt;SvgMore /&gt;
408
+ &lt;/IconButton&gt;
409
+ &lt;/DropdownMenu&gt;
410
+ &lt;/div&gt;
411
+ ) : (
412
+ <span class="branch-1 cbranch-no" title="branch not covered" > &lt;ExtractionStatus</span>
413
+ state={extractionState}
414
+ clearExtractionState={<span class="fstat-no" title="function not covered" >() =</span>&gt; {
415
+ <span class="cstat-no" title="statement not covered" > setExtractionState(ExtractionStates.None);</span>
416
+ }}
417
+ &gt;&lt;/ExtractionStatus&gt;
418
+ )
419
+ }
450
420
  &gt;&lt;/HorizontalTile&gt;
451
421
  );
452
422
  };
@@ -457,7 +427,7 @@ export const ReportHorizontalTile = (props: ReportHorizontalTileProps) =&gt; {
457
427
  <div class='footer quiet pad2 space-top1 center small'>
458
428
  Code coverage generated by
459
429
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
460
- at 2024-01-29T21:35:13.448Z
430
+ at 2024-06-10T17:38:17.498Z
461
431
  </div>
462
432
  <script src="../../../prettify.js"></script>
463
433
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.75% </span>
26
+ <span class="strong">95.55% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>45/48</span>
28
+ <span class='fraction'>43/45</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>10/10</span>
35
+ <span class='fraction'>9/9</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">91.66% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/12</span>
42
+ <span class='fraction'>12/12</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.47% </span>
47
+ <span class="strong">95.23% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>43/46</span>
49
+ <span class='fraction'>40/42</span>
50
50
  </div>
51
51
 
52
52
 
@@ -183,15 +183,7 @@
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
184
  <a name='L119'></a><a href='#L119'>119</a>
185
185
  <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
186
+ <a name='L121'></a><a href='#L121'>121</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
195
187
  <span class="cline-any cline-neutral">&nbsp;</span>
196
188
  <span class="cline-any cline-neutral">&nbsp;</span>
197
189
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -203,9 +195,6 @@
203
195
  <span class="cline-any cline-yes">6x</span>
204
196
  <span class="cline-any cline-yes">6x</span>
205
197
  <span class="cline-any cline-yes">6x</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
198
  <span class="cline-any cline-yes">6x</span>
210
199
  <span class="cline-any cline-neutral">&nbsp;</span>
211
200
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -217,17 +206,15 @@
217
206
  <span class="cline-any cline-neutral">&nbsp;</span>
218
207
  <span class="cline-any cline-neutral">&nbsp;</span>
219
208
  <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
210
  <span class="cline-any cline-yes">6x</span>
221
- <span class="cline-any cline-yes">38x</span>
222
- <span class="cline-any cline-yes">38x</span>
223
- <span class="cline-any cline-yes">38x</span>
224
- <span class="cline-any cline-yes">38x</span>
211
+ <span class="cline-any cline-yes">26x</span>
212
+ <span class="cline-any cline-yes">26x</span>
225
213
  <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-yes">38x</span>
214
+ <span class="cline-any cline-yes">26x</span>
227
215
  <span class="cline-any cline-yes">6x</span>
228
216
  <span class="cline-any cline-yes">4x</span>
229
217
  <span class="cline-any cline-yes">4x</span>
230
- <span class="cline-any cline-yes">4x</span>
231
218
  <span class="cline-any cline-neutral">&nbsp;</span>
232
219
  <span class="cline-any cline-neutral">&nbsp;</span>
233
220
  <span class="cline-any cline-yes">6x</span>
@@ -237,47 +224,47 @@
237
224
  <span class="cline-any cline-neutral">&nbsp;</span>
238
225
  <span class="cline-any cline-neutral">&nbsp;</span>
239
226
  <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">38x</span>
241
- <span class="cline-any cline-yes">13x</span>
242
- <span class="cline-any cline-yes">13x</span>
243
- <span class="cline-any cline-yes">7x</span>
244
- <span class="cline-any cline-yes">7x</span>
245
- <span class="cline-any cline-yes">6x</span>
246
- <span class="cline-any cline-yes">6x</span>
247
- <span class="cline-any cline-yes">6x</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-yes">26x</span>
228
+ <span class="cline-any cline-yes">21x</span>
229
+ <span class="cline-any cline-yes">21x</span>
230
+ <span class="cline-any cline-yes">21x</span>
231
+ <span class="cline-any cline-yes">2x</span>
232
+ <span class="cline-any cline-yes">1x</span>
249
233
  <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-yes">6x</span>
251
234
  <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-yes">7x</span>
235
+ <span class="cline-any cline-yes">19x</span>
253
236
  <span class="cline-any cline-neutral">&nbsp;</span>
254
237
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">38x</span>
256
- <span class="cline-any cline-yes">17x</span>
257
- <span class="cline-any cline-yes">10x</span>
258
- <span class="cline-any cline-no">&nbsp;</span>
259
238
  <span class="cline-any cline-no">&nbsp;</span>
260
239
  <span class="cline-any cline-neutral">&nbsp;</span>
261
240
  <span class="cline-any cline-no">&nbsp;</span>
262
241
  <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-yes">10x</span>
264
- <span class="cline-any cline-yes">10x</span>
265
- <span class="cline-any cline-yes">3x</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span>
267
242
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">17x</span>
269
243
  <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-yes">26x</span>
245
+ <span class="cline-any cline-yes">18x</span>
270
246
  <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-yes">38x</span>
272
247
  <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-yes">26x</span>
249
+ <span class="cline-any cline-yes">18x</span>
250
+ <span class="cline-any cline-yes">18x</span>
251
+ <span class="cline-any cline-yes">11x</span>
252
+ <span class="cline-any cline-yes">3x</span>
273
253
  <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-yes">11x</span>
274
255
  <span class="cline-any cline-neutral">&nbsp;</span>
275
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">26x</span>
258
+ <span class="cline-any cline-yes">3x</span>
259
+ <span class="cline-any cline-yes">3x</span>
276
260
  <span class="cline-any cline-neutral">&nbsp;</span>
277
261
  <span class="cline-any cline-neutral">&nbsp;</span>
278
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-yes">3x</span>
264
+ <span class="cline-any cline-yes">3x</span>
279
265
  <span class="cline-any cline-neutral">&nbsp;</span>
280
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">26x</span>
281
268
  <span class="cline-any cline-neutral">&nbsp;</span>
282
269
  <span class="cline-any cline-neutral">&nbsp;</span>
283
270
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -286,9 +273,6 @@
286
273
  <span class="cline-any cline-neutral">&nbsp;</span>
287
274
  <span class="cline-any cline-neutral">&nbsp;</span>
288
275
  <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-yes">3x</span>
290
- <span class="cline-any cline-yes">3x</span>
291
- <span class="cline-any cline-yes">3x</span>
292
276
  <span class="cline-any cline-neutral">&nbsp;</span>
293
277
  <span class="cline-any cline-neutral">&nbsp;</span>
294
278
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -320,9 +304,9 @@
320
304
  <span class="cline-any cline-neutral">&nbsp;</span>
321
305
  <span class="cline-any cline-neutral">&nbsp;</span>
322
306
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
323
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
324
- * See LICENSE.md in the project root for license terms and full copyright notice.
325
- *--------------------------------------------------------------------------------------------*/
307
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
308
+ * See LICENSE.md in the project root for license terms and full copyright notice.
309
+ *--------------------------------------------------------------------------------------------*/
326
310
  import React, { useCallback, useEffect, useRef, useState } from "react";
327
311
  import type { BulkExtractor } from "./BulkExtractor";
328
312
  import { ExtractionStates, ExtractionStatus } from "./ExtractionStatus";
@@ -330,12 +314,10 @@ import type { BeEvent } from "@itwin/core-bentley";
330
314
  import { STATUS_CHECK_INTERVAL } from "./Constants";
331
315
  import { ReportsConfigWidget } from "../../ReportsConfigWidget";
332
316
  import { IconButton } from "@itwin/itwinui-react";
333
- import {
334
- SvgDelete,
335
- SvgPlay,
336
- } from "@itwin/itwinui-icons-react";
317
+ import { SvgDelete, SvgPlay } from "@itwin/itwinui-icons-react";
337
318
  import { HorizontalTile } from "./HorizontalTile";
338
319
  import type { ReportMappingAndMapping } from "./ReportMappings";
320
+ import type { ExtractionRequestDetails } from "@itwin/insights-client";
339
321
  &nbsp;
340
322
  export interface ReportMappingHorizontalTileProps {
341
323
  jobStartEvent: BeEvent&lt;(iModelId: string) =&gt; void&gt;;
@@ -347,15 +329,12 @@ export interface ReportMappingHorizontalTileProps {
347
329
  &nbsp;
348
330
  export const ReportMappingHorizontalTile = (props: ReportMappingHorizontalTileProps) =&gt; {
349
331
  const [extractionState, setExtractionState] = useState&lt;ExtractionStates&gt;(ExtractionStates.None);
350
- const [jobStarted, setJobStarted] = useState&lt;boolean&gt;(true);
351
332
  const interval = useRef&lt;number&gt;();
352
- const initialLoad = useRef&lt;boolean&gt;(true);
353
333
  &nbsp;
354
334
  useEffect(() =&gt; {
355
335
  const listener = (startedIModelId: string) =&gt; {
356
336
  if (startedIModelId === props.mapping.imodelId) {
357
337
  setExtractionState(ExtractionStates.Starting);
358
- setJobStarted(true);
359
338
  }
360
339
  };
361
340
  props.jobStartEvent.addListener(listener);
@@ -363,87 +342,84 @@ export const ReportMappingHorizontalTile = (props: ReportMappingHorizontalTilePr
363
342
  return () =&gt; {
364
343
  props.jobStartEvent.removeListener(listener);
365
344
  };
366
- }, [props.jobStartEvent, props.mapping]);
345
+ }, [props.jobStartEvent, props.mapping.imodelId]);
367
346
  &nbsp;
368
- const getExtractionState = useCallback(async () =&gt; {
369
- const state = await props.bulkExtractor.getIModelState(props.mapping.imodelId, props.mapping.iModelName, props.odataFeedUrl);
370
- if (state === ExtractionStates.Failed || state === ExtractionStates.Succeeded || state === ExtractionStates.None) {
371
- setJobStarted(false);
372
- if (initialLoad.current) {
373
- initialLoad.current = false;
374
- setExtractionState(ExtractionStates.None);
375
- return;
347
+ const updateExtractionState = useCallback(async () =&gt; {
348
+ try {
349
+ const state = await props.bulkExtractor.getIModelState(props.mapping.imodelId, props.mapping.iModelName, props.odataFeedUrl);
350
+ if (state === ExtractionStates.Failed || state === ExtractionStates.Succeeded) {
351
+ if (extractionState === ExtractionStates.Running) {
352
+ setExtractionState(state);
353
+ }
354
+ } else {
355
+ setExtractionState(state);
376
356
  }
377
- } else {
378
- initialLoad.current = false;
357
+ } catch (error) {
358
+ <span class="cstat-no" title="statement not covered" > setExtractionState(ExtractionStates.Failed);</span>
359
+ /* eslint-disable no-console */
360
+ <span class="cstat-no" title="statement not covered" > console.error(error);</span>
379
361
  }
380
- setExtractionState(state);
381
- }, [props.mapping, props.bulkExtractor, props.odataFeedUrl]);
362
+ }, [props.bulkExtractor, props.mapping.imodelId, props.mapping.iModelName, props.odataFeedUrl, extractionState]);
382
363
  &nbsp;
383
364
  useEffect(() =&gt; {
384
- if (jobStarted) {
385
- getExtractionState().catch(<span class="fstat-no" title="function not covered" >(e</span>rror) =&gt; {
386
- <span class="cstat-no" title="statement not covered" > setExtractionState(ExtractionStates.Failed);</span>
387
- <span class="cstat-no" title="statement not covered" > setJobStarted(false);</span>
388
- /* eslint-disable no-console */
389
- <span class="cstat-no" title="statement not covered" > console.error(error);</span>
390
- });
391
- window.clearInterval(interval.current);
392
- interval.current = window.setInterval(async () =&gt; {
393
- await getExtractionState();
394
- }, STATUS_CHECK_INTERVAL);
395
- }
365
+ void updateExtractionState();
366
+ }, [extractionState, updateExtractionState]);
367
+ &nbsp;
368
+ useEffect(() =&gt; {
369
+ window.clearInterval(interval.current);
370
+ if (extractionState === ExtractionStates.None) return;
371
+ interval.current = window.setInterval(async () =&gt; {
372
+ await updateExtractionState();
373
+ }, STATUS_CHECK_INTERVAL);
396
374
  return () =&gt; window.clearInterval(interval.current);
397
- }, [jobStarted, getExtractionState]);
375
+ }, [extractionState, updateExtractionState]);
376
+ &nbsp;
377
+ const handleUpdateDataset = useCallback(async () =&gt; {
378
+ setExtractionState(ExtractionStates.Starting);
379
+ const extractionRequestDetails: ExtractionRequestDetails = {
380
+ iModelId: props.mapping.imodelId,
381
+ mappings: [{ id: props.mapping.mappingId }],
382
+ };
383
+ await props.bulkExtractor.runIModelExtraction(extractionRequestDetails);
384
+ props.jobStartEvent.raiseEvent(props.mapping.imodelId);
385
+ }, [props.bulkExtractor, props.jobStartEvent, props.mapping.imodelId, props.mapping.mappingId]);
398
386
  &nbsp;
399
387
  return (
400
388
  &lt;HorizontalTile
401
389
  title={props.mapping.mappingName}
402
390
  subText={props.mapping.iModelName}
403
391
  titleTooltip={props.mapping.mappingDescription}
404
- actionGroup={(
405
- &lt;div
406
- className="rcw-action-button"
407
- data-testid="tile-action-button"&gt;
408
- {extractionState === ExtractionStates.None ?
409
- (
410
- &lt;&gt;
411
- &lt;IconButton
412
- styleType="borderless"
413
- title={ReportsConfigWidget.localization.getLocalizedString(
414
- "ReportsConfigWidget:UpdateDataset"
415
- )}
416
- onClick={async () =&gt; {
417
- setExtractionState(ExtractionStates.Starting);
418
- await props.bulkExtractor.runIModelExtraction(props.mapping.imodelId);
419
- props.jobStartEvent.raiseEvent(props.mapping.imodelId);
420
- }}
421
- disabled={jobStarted}
422
- &gt;
423
- &lt;SvgPlay /&gt;
424
- &lt;/IconButton&gt;
425
- &lt;IconButton
426
- styleType="borderless"
427
- title={ReportsConfigWidget.localization.getLocalizedString(
428
- "ReportsConfigWidget:Remove"
429
- )}
430
- onClick={() =&gt; {
431
- props.onClickDelete();
432
- }}
433
- &gt;
434
- &lt;SvgDelete /&gt;
435
- &lt;/IconButton&gt;
436
- &lt;/&gt;
437
- ) : (
438
- &lt;ExtractionStatus
439
- state={extractionState}
440
- clearExtractionState={() =&gt; {
441
- setExtractionState(ExtractionStates.None);
392
+ actionGroup={
393
+ &lt;div className="rcw-action-button" data-testid="tile-action-button"&gt;
394
+ {extractionState === ExtractionStates.None ? (
395
+ &lt;&gt;
396
+ &lt;IconButton
397
+ styleType="borderless"
398
+ title={ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:UpdateDataset")}
399
+ onClick={handleUpdateDataset}
400
+ &gt;
401
+ &lt;SvgPlay /&gt;
402
+ &lt;/IconButton&gt;
403
+ &lt;IconButton
404
+ styleType="borderless"
405
+ title={ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Remove")}
406
+ onClick={() =&gt; {
407
+ props.onClickDelete();
442
408
  }}
443
- &gt;&lt;/ExtractionStatus&gt;
444
- )}
445
- &lt;/div &gt;
446
- )}
409
+ &gt;
410
+ &lt;SvgDelete /&gt;
411
+ &lt;/IconButton&gt;
412
+ &lt;/&gt;
413
+ ) : (
414
+ &lt;ExtractionStatus
415
+ state={extractionState}
416
+ clearExtractionState={() =&gt; {
417
+ setExtractionState(ExtractionStates.None);
418
+ }}
419
+ &gt;&lt;/ExtractionStatus&gt;
420
+ )}
421
+ &lt;/div&gt;
422
+ }
447
423
  /&gt;
448
424
  );
449
425
  };
@@ -454,7 +430,7 @@ export const ReportMappingHorizontalTile = (props: ReportMappingHorizontalTilePr
454
430
  <div class='footer quiet pad2 space-top1 center small'>
455
431
  Code coverage generated by
456
432
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
457
- at 2024-01-29T21:35:13.448Z
433
+ at 2024-06-10T17:38:17.498Z
458
434
  </div>
459
435
  <script src="../../../prettify.js"></script>
460
436
  <script>