@itwin/reports-config-widget-react 0.2.0 → 0.3.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 (288) 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 +36 -32
  4. package/.rush/temp/shrinkwrap-deps.json +90 -36
  5. package/CHANGELOG.json +33 -0
  6. package/CHANGELOG.md +18 -1
  7. package/lib/cjs/reports-config-widget-react.d.ts +5 -0
  8. package/lib/cjs/reports-config-widget-react.d.ts.map +1 -1
  9. package/lib/cjs/reports-config-widget-react.js +11 -0
  10. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  11. package/lib/cjs/test/AddMappingModal.test.js +15 -28
  12. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  13. package/lib/cjs/test/BulkExtractor.test.js +13 -19
  14. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  15. package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -1
  16. package/lib/cjs/test/DeleteModal.test.js +4 -62
  17. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  18. package/lib/cjs/test/ReportAction.test.js +13 -78
  19. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  20. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +2 -35
  21. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  22. package/lib/cjs/test/ReportMappings.test.d.ts.map +1 -1
  23. package/lib/cjs/test/ReportMappings.test.js +38 -91
  24. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  25. package/lib/cjs/test/Reports.test.js +19 -72
  26. package/lib/cjs/test/Reports.test.js.map +1 -1
  27. package/lib/cjs/test/test-utils.d.ts +3 -8
  28. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  29. package/lib/cjs/test/test-utils.js +8 -33
  30. package/lib/cjs/test/test-utils.js.map +1 -1
  31. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  32. package/lib/cjs/widget/components/ActionPanel.d.ts +1 -1
  33. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  34. package/lib/cjs/widget/components/ActionPanel.js +4 -4
  35. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  36. package/lib/cjs/widget/components/AddMappingsModal.d.ts +4 -4
  37. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  38. package/lib/cjs/widget/components/AddMappingsModal.js +23 -22
  39. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  40. package/lib/cjs/widget/components/BulkExtractor.d.ts +4 -4
  41. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  42. package/lib/cjs/widget/components/BulkExtractor.js +6 -6
  43. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  44. package/lib/cjs/widget/components/DeleteModal.d.ts +4 -5
  45. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  46. package/lib/cjs/widget/components/DeleteModal.js +9 -13
  47. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  48. package/lib/cjs/widget/components/HorizontalTile.scss +6 -3
  49. package/lib/cjs/widget/components/ReportAction.d.ts +4 -5
  50. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  51. package/lib/cjs/widget/components/ReportAction.js +15 -15
  52. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  53. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +4 -4
  54. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  55. package/lib/cjs/widget/components/ReportHorizontalTile.js +27 -12
  56. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  57. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
  58. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  59. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +24 -9
  60. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  61. package/lib/cjs/widget/components/ReportMappings.d.ts +4 -6
  62. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  63. package/lib/cjs/widget/components/ReportMappings.js +37 -47
  64. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  65. package/lib/cjs/widget/components/ReportMappings.scss +3 -3
  66. package/lib/cjs/widget/components/Reports.d.ts +6 -1
  67. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  68. package/lib/cjs/widget/components/Reports.js +42 -83
  69. package/lib/cjs/widget/components/Reports.js.map +1 -1
  70. package/lib/cjs/widget/components/ReportsConfigContext.d.ts +18 -0
  71. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -0
  72. package/lib/cjs/widget/components/ReportsConfigContext.js +87 -0
  73. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -0
  74. package/lib/cjs/widget/components/ReportsContainer.d.ts +14 -0
  75. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  76. package/lib/cjs/widget/components/ReportsContainer.js +28 -16
  77. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  78. package/lib/cjs/widget/components/ReportsHeader.d.ts +7 -0
  79. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -0
  80. package/lib/cjs/widget/components/ReportsHeader.js +20 -0
  81. package/lib/cjs/widget/components/ReportsHeader.js.map +1 -0
  82. package/lib/cjs/widget/components/ReportsRouter.d.ts +8 -0
  83. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -0
  84. package/lib/cjs/widget/components/ReportsRouter.js +52 -0
  85. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -0
  86. package/lib/cjs/widget/components/SearchBar.js +1 -2
  87. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  88. package/lib/cjs/widget/components/SearchBar.scss +1 -1
  89. package/lib/cjs/widget/components/SelectIModel.d.ts +3 -3
  90. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  91. package/lib/cjs/widget/components/SelectIModel.js +6 -26
  92. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  93. package/lib/cjs/widget/components/utils.d.ts +1 -1
  94. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  95. package/lib/cjs/widget/components/utils.js.map +1 -1
  96. package/lib/cjs/widget/context/BulkExtractorContext.d.ts +10 -0
  97. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -0
  98. package/lib/cjs/widget/context/{ReportsApiConfigContext.js → BulkExtractorContext.js} +7 -10
  99. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -0
  100. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +16 -0
  101. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
  102. package/lib/cjs/widget/context/ReportsConfigApiContext.js +43 -0
  103. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -0
  104. package/lib/esm/reports-config-widget-react.d.ts +5 -0
  105. package/lib/esm/reports-config-widget-react.d.ts.map +1 -1
  106. package/lib/esm/reports-config-widget-react.js +5 -0
  107. package/lib/esm/reports-config-widget-react.js.map +1 -1
  108. package/lib/esm/test/AddMappingModal.test.js +16 -29
  109. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  110. package/lib/esm/test/BulkExtractor.test.js +14 -17
  111. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  112. package/lib/esm/test/DeleteModal.test.d.ts.map +1 -1
  113. package/lib/esm/test/DeleteModal.test.js +5 -44
  114. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  115. package/lib/esm/test/ReportAction.test.js +14 -60
  116. package/lib/esm/test/ReportAction.test.js.map +1 -1
  117. package/lib/esm/test/ReportMappingHorizontalTile.test.js +3 -36
  118. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  119. package/lib/esm/test/ReportMappings.test.d.ts.map +1 -1
  120. package/lib/esm/test/ReportMappings.test.js +37 -90
  121. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  122. package/lib/esm/test/Reports.test.js +20 -54
  123. package/lib/esm/test/Reports.test.js.map +1 -1
  124. package/lib/esm/test/test-utils.d.ts +3 -8
  125. package/lib/esm/test/test-utils.d.ts.map +1 -1
  126. package/lib/esm/test/test-utils.js +7 -31
  127. package/lib/esm/test/test-utils.js.map +1 -1
  128. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  129. package/lib/esm/widget/components/ActionPanel.d.ts +1 -1
  130. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  131. package/lib/esm/widget/components/ActionPanel.js +4 -4
  132. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  133. package/lib/esm/widget/components/AddMappingsModal.d.ts +4 -4
  134. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  135. package/lib/esm/widget/components/AddMappingsModal.js +25 -24
  136. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  137. package/lib/esm/widget/components/BulkExtractor.d.ts +4 -4
  138. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  139. package/lib/esm/widget/components/BulkExtractor.js +7 -8
  140. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  141. package/lib/esm/widget/components/DeleteModal.d.ts +4 -5
  142. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  143. package/lib/esm/widget/components/DeleteModal.js +9 -13
  144. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  145. package/lib/esm/widget/components/HorizontalTile.scss +6 -3
  146. package/lib/esm/widget/components/ReportAction.d.ts +4 -5
  147. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  148. package/lib/esm/widget/components/ReportAction.js +14 -16
  149. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  150. package/lib/esm/widget/components/ReportHorizontalTile.d.ts +4 -4
  151. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  152. package/lib/esm/widget/components/ReportHorizontalTile.js +4 -5
  153. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  154. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
  155. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  156. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +1 -2
  157. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  158. package/lib/esm/widget/components/ReportMappings.d.ts +4 -6
  159. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  160. package/lib/esm/widget/components/ReportMappings.js +39 -49
  161. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  162. package/lib/esm/widget/components/ReportMappings.scss +3 -3
  163. package/lib/esm/widget/components/Reports.d.ts +6 -1
  164. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  165. package/lib/esm/widget/components/Reports.js +45 -86
  166. package/lib/esm/widget/components/Reports.js.map +1 -1
  167. package/lib/esm/widget/components/ReportsConfigContext.d.ts +18 -0
  168. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -0
  169. package/lib/esm/widget/components/ReportsConfigContext.js +64 -0
  170. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -0
  171. package/lib/esm/widget/components/ReportsContainer.d.ts +14 -0
  172. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  173. package/lib/esm/widget/components/ReportsContainer.js +28 -17
  174. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  175. package/lib/esm/widget/components/ReportsHeader.d.ts +7 -0
  176. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -0
  177. package/lib/esm/widget/components/ReportsHeader.js +13 -0
  178. package/lib/esm/widget/components/ReportsHeader.js.map +1 -0
  179. package/lib/esm/widget/components/ReportsRouter.d.ts +8 -0
  180. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -0
  181. package/lib/esm/widget/components/ReportsRouter.js +45 -0
  182. package/lib/esm/widget/components/ReportsRouter.js.map +1 -0
  183. package/lib/esm/widget/components/SearchBar.js +1 -2
  184. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  185. package/lib/esm/widget/components/SearchBar.scss +1 -1
  186. package/lib/esm/widget/components/SelectIModel.d.ts +3 -3
  187. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  188. package/lib/esm/widget/components/SelectIModel.js +7 -27
  189. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  190. package/lib/esm/widget/components/utils.d.ts +1 -1
  191. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  192. package/lib/esm/widget/components/utils.js.map +1 -1
  193. package/lib/esm/widget/context/BulkExtractorContext.d.ts +10 -0
  194. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -0
  195. package/lib/esm/widget/context/BulkExtractorContext.js +11 -0
  196. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -0
  197. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +16 -0
  198. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
  199. package/lib/esm/widget/context/ReportsConfigApiContext.js +20 -0
  200. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -0
  201. package/lib/public/locales/en/ReportsConfigWidget.json +2 -1
  202. package/package.json +4 -4
  203. package/public/locales/en/ReportsConfigWidget.json +2 -1
  204. package/reports-config-widget-react.build.error.log +1 -14
  205. package/reports-config-widget-react.build.log +2 -60
  206. package/src/reports-config-widget-react.ts +6 -0
  207. package/src/test/AddMappingModal.test.tsx +20 -37
  208. package/src/test/BulkExtractor.test.ts +15 -17
  209. package/src/test/DeleteModal.test.tsx +4 -73
  210. package/src/test/ReportAction.test.tsx +17 -90
  211. package/src/test/ReportMappingHorizontalTile.test.tsx +3 -54
  212. package/src/test/ReportMappings.test.tsx +50 -135
  213. package/src/test/Reports.test.tsx +21 -80
  214. package/src/test/test-utils.tsx +9 -49
  215. package/src/widget/components/ActionPanel.tsx +16 -14
  216. package/src/widget/components/AddMappingsModal.tsx +39 -39
  217. package/src/widget/components/BulkExtractor.ts +11 -10
  218. package/src/widget/components/DeleteModal.tsx +14 -20
  219. package/src/widget/components/HorizontalTile.scss +6 -3
  220. package/src/widget/components/ReportAction.tsx +15 -30
  221. package/src/widget/components/ReportHorizontalTile.tsx +10 -11
  222. package/src/widget/components/ReportMappingHorizontalTile.tsx +2 -3
  223. package/src/widget/components/ReportMappings.scss +3 -3
  224. package/src/widget/components/ReportMappings.tsx +66 -69
  225. package/src/widget/components/Reports.tsx +143 -187
  226. package/src/widget/components/ReportsConfigContext.tsx +95 -0
  227. package/src/widget/components/ReportsContainer.tsx +47 -21
  228. package/src/widget/components/ReportsHeader.tsx +27 -0
  229. package/src/widget/components/ReportsRouter.tsx +63 -0
  230. package/src/widget/components/SearchBar.scss +1 -1
  231. package/src/widget/components/SearchBar.tsx +2 -2
  232. package/src/widget/components/SelectIModel.tsx +11 -29
  233. package/src/widget/components/utils.tsx +1 -1
  234. package/src/widget/context/{ReportsApiConfigContext.tsx → BulkExtractorContext.tsx} +9 -10
  235. package/src/widget/context/ReportsConfigApiContext.tsx +39 -0
  236. package/coverage/clover.xml +0 -838
  237. package/coverage/coverage-final.json +0 -29
  238. package/coverage/lcov-report/base.css +0 -224
  239. package/coverage/lcov-report/block-navigation.js +0 -87
  240. package/coverage/lcov-report/favicon.png +0 -0
  241. package/coverage/lcov-report/index.html +0 -206
  242. package/coverage/lcov-report/prettify.css +0 -1
  243. package/coverage/lcov-report/prettify.js +0 -2
  244. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  245. package/coverage/lcov-report/sorter.js +0 -196
  246. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +0 -193
  247. package/coverage/lcov-report/src/index.html +0 -116
  248. package/coverage/lcov-report/src/test/index.html +0 -116
  249. package/coverage/lcov-report/src/test/test-utils.tsx.html +0 -316
  250. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +0 -286
  251. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +0 -241
  252. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +0 -604
  253. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +0 -661
  254. package/coverage/lcov-report/src/widget/components/Constants.ts.html +0 -106
  255. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +0 -385
  256. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +0 -187
  257. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +0 -145
  258. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +0 -139
  259. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +0 -151
  260. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +0 -190
  261. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +0 -176
  262. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +0 -295
  263. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +0 -208
  264. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +0 -289
  265. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +0 -262
  266. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +0 -517
  267. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +0 -475
  268. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +0 -469
  269. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +0 -1078
  270. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +0 -877
  271. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +0 -223
  272. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +0 -271
  273. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +0 -391
  274. package/coverage/lcov-report/src/widget/components/index.html +0 -371
  275. package/coverage/lcov-report/src/widget/components/utils.tsx.html +0 -562
  276. package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +0 -166
  277. package/coverage/lcov-report/src/widget/context/index.html +0 -116
  278. package/coverage/lcov-report/src/widget/hooks/index.html +0 -116
  279. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +0 -295
  280. package/coverage/lcov-report/src/widget/index.html +0 -116
  281. package/coverage/lcov.info +0 -1594
  282. package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts +0 -9
  283. package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
  284. package/lib/cjs/widget/context/ReportsApiConfigContext.js.map +0 -1
  285. package/lib/esm/widget/context/ReportsApiConfigContext.d.ts +0 -9
  286. package/lib/esm/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
  287. package/lib/esm/widget/context/ReportsApiConfigContext.js +0 -14
  288. package/lib/esm/widget/context/ReportsApiConfigContext.js.map +0 -1
@@ -5,6 +5,7 @@
5
5
  import {
6
6
  SvgAdd,
7
7
  SvgCopy,
8
+ SvgRefresh,
8
9
  } from "@itwin/itwinui-icons-react";
9
10
  import {
10
11
  Button,
@@ -21,27 +22,25 @@ import {
21
22
  generateUrl,
22
23
  handleError,
23
24
  LoadingOverlay,
24
- WidgetHeader,
25
+ LoadingSpinner,
25
26
  } from "./utils";
26
27
  import "./ReportMappings.scss";
27
28
  import DeleteModal from "./DeleteModal";
28
- import type { Report, ReportMapping } from "@itwin/insights-client";
29
- import { MappingsClient, REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
29
+ import type { MappingsClient, Report, ReportMapping, ReportsClient } from "@itwin/insights-client";
30
+ import { REPORTING_BASE_PATH } from "@itwin/insights-client";
30
31
  import { AddMappingsModal } from "./AddMappingsModal";
31
32
  import type {
32
33
  GetSingleIModelParams,
33
- IModelsClientOptions,
34
+ IModelsClient,
34
35
  } from "@itwin/imodels-client-management";
35
- import { Constants, IModelsClient } from "@itwin/imodels-client-management";
36
36
  import { AccessTokenAdapter } from "@itwin/imodels-access-frontend";
37
37
  import { SearchBar } from "./SearchBar";
38
- import type { ReportsApiConfig } from "../context/ReportsApiConfigContext";
39
- import { useReportsApiConfig } from "../context/ReportsApiConfigContext";
38
+ import { useReportsConfigApi } from "../context/ReportsConfigApiContext";
40
39
  import { ReportsConfigWidget } from "../../ReportsConfigWidget";
41
40
  import { ReportMappingHorizontalTile } from "./ReportMappingHorizontalTile";
42
- import type BulkExtractor from "./BulkExtractor";
41
+ import type { AccessToken } from "@itwin/core-bentley";
43
42
  import { BeEvent } from "@itwin/core-bentley";
44
- import { LoadingSpinner } from "./utils";
43
+ import { useBulkExtractor } from "../context/BulkExtractorContext";
45
44
 
46
45
  export type ReportMappingType = CreateTypeFromInterface<ReportMapping>;
47
46
 
@@ -51,35 +50,22 @@ export type ReportMappingAndMapping = ReportMappingType & {
51
50
  iModelName: string;
52
51
  };
53
52
 
54
- enum ReportMappingsView {
55
- REPORTMAPPINGS = "reportmappings",
56
- ADDING = "adding",
57
- }
58
-
59
53
  const fetchReportMappings = async (
60
54
  setReportMappings: (mappings: ReportMappingAndMapping[]) => void,
61
55
  reportId: string,
62
- setIsLoading: React.Dispatch<React.SetStateAction<boolean>>,
63
- apiContext: ReportsApiConfig
56
+ setIsLoading: (isLoading: boolean) => void,
57
+ reportsClient: ReportsClient,
58
+ mappingsClient: MappingsClient,
59
+ iModelsClient: IModelsClient,
60
+ getAccessToken: () => Promise<AccessToken>
64
61
  ) => {
65
62
  try {
66
63
  setIsLoading(true);
67
- const reportsClientApi = new ReportsClient(
68
- generateUrl(REPORTING_BASE_PATH, apiContext.baseUrl)
69
- );
70
- const mappingsClientApi = new MappingsClient(
71
- generateUrl(REPORTING_BASE_PATH, apiContext.baseUrl)
72
- );
73
- const accessToken = await apiContext.getAccessToken();
74
- const reportMappings = await reportsClientApi.getReportMappings(
64
+ const accessToken = await getAccessToken();
65
+ const reportMappings = await reportsClient.getReportMappings(
75
66
  accessToken,
76
67
  reportId
77
68
  );
78
- const iModelClientOptions: IModelsClientOptions = {
79
- api: { baseUrl: generateUrl(Constants.api.baseUrl, apiContext.baseUrl) },
80
- };
81
-
82
- const iModelsClient: IModelsClient = new IModelsClient(iModelClientOptions);
83
69
  const authorization =
84
70
  AccessTokenAdapter.toAuthorizationCallback(accessToken);
85
71
  const iModelNames = new Map<string, string>();
@@ -88,7 +74,7 @@ const fetchReportMappings = async (
88
74
  for (const reportMapping of reportMappings) {
89
75
  const iModelId = reportMapping.imodelId;
90
76
  let iModelName = "";
91
- const mapping = await mappingsClientApi.getMapping(
77
+ const mapping = await mappingsClient.getMapping(
92
78
  accessToken,
93
79
  iModelId,
94
80
  reportMapping.mappingId
@@ -121,23 +107,21 @@ const fetchReportMappings = async (
121
107
  }
122
108
  };
123
109
 
124
- interface ReportMappingsProps {
110
+ export interface ReportMappingsProps {
125
111
  report: Report;
126
- bulkExtractor: BulkExtractor;
127
- goBack: () => Promise<void>;
112
+ onClickClose: () => void;
113
+ defaultIModelId?: string;
128
114
  }
129
115
 
130
- export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappingsProps) => {
131
- const apiConfig = useReportsApiConfig();
132
- const [reportMappingsView, setReportMappingsView] =
133
- useState<ReportMappingsView>(ReportMappingsView.REPORTMAPPINGS);
134
- const [selectedReportMapping, setSelectedReportMapping] = useState<ReportMappingAndMapping | undefined>(undefined);
135
- const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false);
116
+ export const ReportMappings = ({ report, onClickClose, defaultIModelId }: ReportMappingsProps) => {
117
+ const { getAccessToken, reportsClient, iModelsClient, mappingsClient, baseUrl } = useReportsConfigApi();
118
+ const [showDeleteModal, setShowDeleteModal] = useState<ReportMappingAndMapping | undefined>(undefined);
119
+ const [showAddMapping, setShowAddMapping] = useState<boolean>(false);
120
+ const { bulkExtractor } = useBulkExtractor();
136
121
  const [isLoading, setIsLoading] = useState<boolean>(true);
137
122
  const [searchValue, setSearchValue] = useState<string>("");
138
123
  const [reportMappings, setReportMappings] = useState<ReportMappingAndMapping[]>([]);
139
124
  const [jobRunning, setJobRunning] = useState<boolean>(false);
140
-
141
125
  const jobStartEvent = useMemo(
142
126
  () => new BeEvent<(iModelId: string) => void>(),
143
127
  []
@@ -148,33 +132,39 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
148
132
  setReportMappings,
149
133
  report.id,
150
134
  setIsLoading,
151
- apiConfig
135
+ reportsClient,
136
+ mappingsClient,
137
+ iModelsClient,
138
+ getAccessToken
152
139
  );
153
- }, [apiConfig, report.id, setIsLoading]);
140
+ }, [getAccessToken, iModelsClient, mappingsClient, report.id, reportsClient, setIsLoading]);
154
141
 
155
142
  useEffect(() => {
143
+ if (!bulkExtractor) return;
156
144
  bulkExtractor.setHook(setJobRunning, reportMappings.map((x) => x.imodelId));
157
145
  }, [bulkExtractor, reportMappings]);
158
146
 
159
147
  const refresh = useCallback(async () => {
160
- setReportMappingsView(ReportMappingsView.REPORTMAPPINGS);
161
148
  await fetchReportMappings(
162
149
  setReportMappings,
163
150
  report.id,
164
151
  setIsLoading,
165
- apiConfig
152
+ reportsClient,
153
+ mappingsClient,
154
+ iModelsClient,
155
+ getAccessToken
166
156
  );
167
- }, [apiConfig, report.id, setReportMappings]);
168
-
169
- const addMapping = () => {
170
- setReportMappingsView(ReportMappingsView.ADDING);
171
- };
157
+ }, [getAccessToken, iModelsClient, mappingsClient, report.id, reportsClient]);
172
158
 
173
159
  const odataFeedUrl = `${generateUrl(
174
160
  REPORTING_BASE_PATH,
175
- apiConfig.baseUrl
161
+ baseUrl
176
162
  )}/odata/${report.id}`;
177
163
 
164
+ const addMapping = useCallback(() => {
165
+ setShowAddMapping(true);
166
+ }, []);
167
+
178
168
  const filteredReportMappings = useMemo(
179
169
  () =>
180
170
  reportMappings.filter((x) =>
@@ -186,10 +176,13 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
186
176
  [reportMappings, searchValue]
187
177
  );
188
178
 
179
+ const onAddMappingsModalClose = useCallback(async () => { await refresh(); setShowAddMapping(false); }, [refresh]);
180
+
181
+ if (!bulkExtractor) return null;
182
+
189
183
  return (
190
184
  <>
191
- <WidgetHeader title={report.displayName} returnFn={goBack} />
192
- <div className="rcw-report-mapping-misc">
185
+ <Surface className="rcw-report-mappings-container">
193
186
  <LabeledInput
194
187
  label={ReportsConfigWidget.localization.getLocalizedString(
195
188
  "ReportsConfigWidget:ODataFeedURL"
@@ -217,8 +210,6 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
217
210
  }
218
211
  iconDisplayStyle="inline"
219
212
  />
220
- </div>
221
- <Surface className="rcw-report-mappings-container">
222
213
  <div className="rcw-toolbar">
223
214
  <Button
224
215
  startIcon={<SvgAdd />}
@@ -230,6 +221,16 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
230
221
  )}
231
222
  </Button>
232
223
  <div className="rcw-search-bar-container" data-testid="rcw-search-bar">
224
+ <IconButton
225
+ title={ReportsConfigWidget.localization.getLocalizedString(
226
+ "ReportsConfigWidget:Refresh"
227
+ )}
228
+ onClick={refresh}
229
+ disabled={isLoading}
230
+ styleType='borderless'
231
+ >
232
+ <SvgRefresh />
233
+ </IconButton>
233
234
  <SearchBar
234
235
  searchValue={searchValue}
235
236
  setSearchValue={setSearchValue}
@@ -248,7 +249,7 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
248
249
  )}
249
250
  </Text>
250
251
  <div>
251
- <Button onClick={() => addMapping()} styleType="cta">
252
+ <Button onClick={addMapping} styleType="cta">
252
253
  {ReportsConfigWidget.localization.getLocalizedString(
253
254
  "ReportsConfigWidget:LetsAddSomeMappingsCTA"
254
255
  )}
@@ -264,8 +265,7 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
264
265
  bulkExtractor={bulkExtractor}
265
266
  mapping={mapping}
266
267
  onClickDelete={() => {
267
- setSelectedReportMapping(mapping);
268
- setShowDeleteModal(true);
268
+ setShowDeleteModal(mapping);
269
269
  }}
270
270
  odataFeedUrl={odataFeedUrl}
271
271
  jobStartEvent={jobStartEvent}
@@ -275,27 +275,24 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
275
275
  )}
276
276
  </Surface>
277
277
  <AddMappingsModal
278
- show={reportMappingsView === ReportMappingsView.ADDING}
278
+ show={showAddMapping}
279
279
  reportId={report.id}
280
280
  existingMappings={reportMappings}
281
- returnFn={refresh}
281
+ onClose={onAddMappingsModalClose}
282
+ defaultIModelId={defaultIModelId}
282
283
  />
283
284
  <DeleteModal
284
- entityName={selectedReportMapping?.mappingName ?? ""}
285
- show={showDeleteModal}
286
- setShow={setShowDeleteModal}
285
+ entityName={showDeleteModal?.mappingName ?? ""}
287
286
  onDelete={async () => {
288
- const reportsClientApi = new ReportsClient(
289
- generateUrl(REPORTING_BASE_PATH, apiConfig.baseUrl)
290
- );
291
- const accessToken = await apiConfig.getAccessToken();
292
- await reportsClientApi.deleteReportMapping(
287
+ const accessToken = await getAccessToken();
288
+ await reportsClient.deleteReportMapping(
293
289
  accessToken,
294
290
  report.id,
295
- selectedReportMapping?.mappingId ?? ""
291
+ showDeleteModal?.mappingId ?? ""
296
292
  );
297
293
  }}
298
294
  refresh={refresh}
295
+ onClose={() => setShowDeleteModal(undefined)}
299
296
  />
300
297
  <div className="rcw-action-panel">
301
298
  {isLoading && <LoadingSpinner />}
@@ -318,7 +315,7 @@ export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappings
318
315
  <Button
319
316
  styleType="default"
320
317
  type="button"
321
- onClick={goBack}
318
+ onClick={onClickClose}
322
319
  disabled={isLoading}
323
320
  >
324
321
  {ReportsConfigWidget.localization.getLocalizedString(