@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
@@ -1,1078 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/widget/components/ReportMappings.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/widget/components</a> ReportMappings.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">92.13% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>82/89</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">56.75% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>21/37</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">85% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>17/20</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">91.86% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>79/86</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
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>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
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>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-yes">5x</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-yes">5x</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-yes">5x</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-yes">5x</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-yes">5x</span>
423
- <span class="cline-any cline-yes">5x</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">5x</span>
426
- <span class="cline-any cline-yes">5x</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-yes">5x</span>
432
- <span class="cline-any cline-yes">5x</span>
433
- <span class="cline-any cline-yes">5x</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-yes">5x</span>
436
- <span class="cline-any cline-yes">5x</span>
437
- <span class="cline-any cline-yes">5x</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-yes">5x</span>
440
- <span class="cline-any cline-yes">5x</span>
441
- <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-yes">5x</span>
451
- <span class="cline-any cline-yes">5x</span>
452
- <span class="cline-any cline-yes">5x</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-yes">5x</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-yes">6x</span>
462
- <span class="cline-any cline-yes">6x</span>
463
- <span class="cline-any cline-yes">6x</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-yes">6x</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">6x</span>
470
- <span class="cline-any cline-yes">6x</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">6x</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-neutral">&nbsp;</span>
478
- <span class="cline-any cline-yes">6x</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-yes">6x</span>
481
- <span class="cline-any cline-yes">6x</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-yes">6x</span>
484
- <span class="cline-any cline-yes">6x</span>
485
- <span class="cline-any cline-yes">8x</span>
486
- <span class="cline-any cline-yes">8x</span>
487
- <span class="cline-any cline-yes">8x</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-yes">8x</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-yes">8x</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">8x</span>
500
- <span class="cline-any cline-yes">8x</span>
501
- <span class="cline-any cline-yes">8x</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-yes">8x</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-yes">8x</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-yes">4x</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-yes">2x</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-yes">6x</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-yes">5x</span>
527
- <span class="cline-any cline-yes">77x</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-yes">77x</span>
530
- <span class="cline-any cline-yes">77x</span>
531
- <span class="cline-any cline-yes">77x</span>
532
- <span class="cline-any cline-yes">77x</span>
533
- <span class="cline-any cline-yes">77x</span>
534
- <span class="cline-any cline-yes">77x</span>
535
- <span class="cline-any cline-yes">77x</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">77x</span>
538
- <span class="cline-any cline-yes">5x</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">77x</span>
543
- <span class="cline-any cline-yes">5x</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-yes">77x</span>
552
- <span class="cline-any cline-yes">9x</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-yes">77x</span>
556
- <span class="cline-any cline-yes">1x</span>
557
- <span class="cline-any cline-yes">1x</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-yes">77x</span>
566
- <span class="cline-any cline-yes">1x</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">77x</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-yes">77x</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-yes">68x</span>
577
- <span class="cline-any cline-yes">126x</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-yes">77x</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-neutral">&nbsp;</span>
597
- <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-neutral">&nbsp;</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-yes">1x</span>
604
- <span class="cline-any cline-yes">1x</span>
605
- <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-yes">1x</span>
622
- <span class="cline-any cline-neutral">&nbsp;</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-no">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-yes">129x</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-no">&nbsp;</span>
664
- <span class="cline-any cline-no">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-no">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-no">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-neutral">&nbsp;</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-yes">1x</span>
703
- <span class="cline-any cline-yes">2x</span>
704
- <span class="cline-any cline-yes">1x</span>
705
- <span class="cline-any cline-yes">1x</span>
706
- <span class="cline-any cline-yes">2x</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span>
709
- <span class="cline-any cline-neutral">&nbsp;</span>
710
- <span class="cline-any cline-neutral">&nbsp;</span>
711
- <span class="cline-any cline-neutral">&nbsp;</span>
712
- <span class="cline-any cline-neutral">&nbsp;</span>
713
- <span class="cline-any cline-neutral">&nbsp;</span>
714
- <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-neutral">&nbsp;</span>
716
- <span class="cline-any cline-neutral">&nbsp;</span>
717
- <span class="cline-any cline-neutral">&nbsp;</span>
718
- <span class="cline-any cline-neutral">&nbsp;</span>
719
- <span class="cline-any cline-neutral">&nbsp;</span>
720
- <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-neutral">&nbsp;</span>
723
- <span class="cline-any cline-neutral">&nbsp;</span>
724
- <span class="cline-any cline-neutral">&nbsp;</span>
725
- <span class="cline-any cline-neutral">&nbsp;</span>
726
- <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
729
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
730
- * See LICENSE.md in the project root for license terms and full copyright notice.
731
- *--------------------------------------------------------------------------------------------*/
732
- import {
733
- SvgAdd,
734
- SvgCopy,
735
- } from "@itwin/itwinui-icons-react";
736
- import {
737
- Button,
738
- IconButton,
739
- LabeledInput,
740
- Surface,
741
- Text,
742
- toaster,
743
- } from "@itwin/itwinui-react";
744
- import React, { useCallback, useEffect, useMemo, useState } from "react";
745
- import type { CreateTypeFromInterface } from "./utils";
746
- import {
747
- EmptyMessage,
748
- generateUrl,
749
- handleError,
750
- LoadingOverlay,
751
- WidgetHeader,
752
- } from "./utils";
753
- import "./ReportMappings.scss";
754
- import DeleteModal from "./DeleteModal";
755
- import type { Report, ReportMapping } from "@itwin/insights-client";
756
- import { MappingsClient, REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
757
- import { AddMappingsModal } from "./AddMappingsModal";
758
- import type {
759
- GetSingleIModelParams,
760
- IModelsClientOptions,
761
- } from "@itwin/imodels-client-management";
762
- import { Constants, IModelsClient } from "@itwin/imodels-client-management";
763
- import { AccessTokenAdapter } from "@itwin/imodels-access-frontend";
764
- import { SearchBar } from "./SearchBar";
765
- import type { ReportsApiConfig } from "../context/ReportsApiConfigContext";
766
- import { useReportsApiConfig } from "../context/ReportsApiConfigContext";
767
- import { ReportsConfigWidget } from "../../ReportsConfigWidget";
768
- import { ReportMappingHorizontalTile } from "./ReportMappingHorizontalTile";
769
- import type BulkExtractor from "./BulkExtractor";
770
- import { BeEvent } from "@itwin/core-bentley";
771
- import { LoadingSpinner } from "./utils";
772
- &nbsp;
773
- export type ReportMappingType = CreateTypeFromInterface&lt;ReportMapping&gt;;
774
- &nbsp;
775
- export type ReportMappingAndMapping = ReportMappingType &amp; {
776
- mappingName: string;
777
- mappingDescription: string;
778
- iModelName: string;
779
- };
780
- &nbsp;
781
- enum ReportMappingsView {
782
- REPORTMAPPINGS = "reportmappings",
783
- ADDING = "adding",
784
- }
785
- &nbsp;
786
- const fetchReportMappings = async (
787
- setReportMappings: (mappings: ReportMappingAndMapping[]) =&gt; void,
788
- reportId: string,
789
- setIsLoading: React.Dispatch&lt;React.SetStateAction&lt;boolean&gt;&gt;,
790
- apiContext: ReportsApiConfig
791
- ) =&gt; {
792
- try {
793
- setIsLoading(true);
794
- const reportsClientApi = new ReportsClient(
795
- generateUrl(REPORTING_BASE_PATH, apiContext.baseUrl)
796
- );
797
- const mappingsClientApi = new MappingsClient(
798
- generateUrl(REPORTING_BASE_PATH, apiContext.baseUrl)
799
- );
800
- const accessToken = await apiContext.getAccessToken();
801
- const reportMappings = await reportsClientApi.getReportMappings(
802
- accessToken,
803
- reportId
804
- );
805
- const iModelClientOptions: IModelsClientOptions = {
806
- api: { baseUrl: generateUrl(Constants.api.baseUrl, apiContext.baseUrl) },
807
- };
808
- &nbsp;
809
- const iModelsClient: IModelsClient = new IModelsClient(iModelClientOptions);
810
- const authorization =
811
- AccessTokenAdapter.toAuthorizationCallback(accessToken);
812
- const iModelNames = new Map&lt;string, string&gt;();
813
- &nbsp;
814
- const reportMappingsAndMappings = [];
815
- for (const reportMapping of reportMappings) {
816
- const iModelId = reportMapping.imodelId;
817
- let iModelName = "";
818
- const mapping = await mappingsClientApi.getMapping(
819
- accessToken,
820
- iModelId,
821
- reportMapping.mappingId
822
- );
823
- <span class="missing-if-branch" title="if path not taken" >I</span>if (iModelNames.has(iModelId)) {
824
- <span class="cstat-no" title="statement not covered" > iModelName = iModelNames.get(iModelId) ?? "";</span>
825
- } else {
826
- const getSingleParams: GetSingleIModelParams = {
827
- authorization,
828
- iModelId,
829
- };
830
- const iModel = await iModelsClient.iModels.getSingle(getSingleParams);
831
- iModelName = iModel.displayName;
832
- iModelNames.set(iModelId, iModelName);
833
- }
834
- const reportMappingAndMapping: ReportMappingAndMapping = {
835
- ...reportMapping,
836
- iModelName,
837
- mappingName: mapping.mappingName,
838
- mappingDescription: mapping.description ?? <span class="branch-1 cbranch-no" title="branch not covered" >"",</span>
839
- };
840
- reportMappingsAndMappings.push(reportMappingAndMapping);
841
- }
842
- &nbsp;
843
- setReportMappings(reportMappingsAndMappings);
844
- } catch (error: any) {
845
- handleError(error.status);
846
- } finally {
847
- setIsLoading(false);
848
- }
849
- };
850
- &nbsp;
851
- interface ReportMappingsProps {
852
- report: Report;
853
- bulkExtractor: BulkExtractor;
854
- goBack: () =&gt; Promise&lt;void&gt;;
855
- }
856
- &nbsp;
857
- export const ReportMappings = ({ report, bulkExtractor, goBack }: ReportMappingsProps) =&gt; {
858
- const apiConfig = useReportsApiConfig();
859
- const [reportMappingsView, setReportMappingsView] =
860
- useState&lt;ReportMappingsView&gt;(ReportMappingsView.REPORTMAPPINGS);
861
- const [selectedReportMapping, setSelectedReportMapping] = useState&lt;ReportMappingAndMapping | undefined&gt;(undefined);
862
- const [showDeleteModal, setShowDeleteModal] = useState&lt;boolean&gt;(false);
863
- const [isLoading, setIsLoading] = useState&lt;boolean&gt;(true);
864
- const [searchValue, setSearchValue] = useState&lt;string&gt;("");
865
- const [reportMappings, setReportMappings] = useState&lt;ReportMappingAndMapping[]&gt;([]);
866
- const [jobRunning, setJobRunning] = useState&lt;boolean&gt;(false);
867
- &nbsp;
868
- const jobStartEvent = useMemo(
869
- () =&gt; new BeEvent&lt;(iModelId: string) =&gt; void&gt;(),
870
- []
871
- );
872
- &nbsp;
873
- useEffect(() =&gt; {
874
- void fetchReportMappings(
875
- setReportMappings,
876
- report.id,
877
- setIsLoading,
878
- apiConfig
879
- );
880
- }, [apiConfig, report.id, setIsLoading]);
881
- &nbsp;
882
- useEffect(() =&gt; {
883
- bulkExtractor.setHook(setJobRunning, reportMappings.map((x) =&gt; x.imodelId));
884
- }, [bulkExtractor, reportMappings]);
885
- &nbsp;
886
- const refresh = useCallback(async () =&gt; {
887
- setReportMappingsView(ReportMappingsView.REPORTMAPPINGS);
888
- await fetchReportMappings(
889
- setReportMappings,
890
- report.id,
891
- setIsLoading,
892
- apiConfig
893
- );
894
- }, [apiConfig, report.id, setReportMappings]);
895
- &nbsp;
896
- const addMapping = () =&gt; {
897
- setReportMappingsView(ReportMappingsView.ADDING);
898
- };
899
- &nbsp;
900
- const odataFeedUrl = `${generateUrl(
901
- REPORTING_BASE_PATH,
902
- apiConfig.baseUrl
903
- )}/odata/${report.id}`;
904
- &nbsp;
905
- const filteredReportMappings = useMemo(
906
- () =&gt;
907
- reportMappings.filter((x) =&gt;
908
- [x.iModelName, x.mappingName, x.mappingDescription]
909
- .join(" ")
910
- .toLowerCase()
911
- .includes(searchValue.toLowerCase())
912
- ),
913
- [reportMappings, searchValue]
914
- );
915
- &nbsp;
916
- return (
917
- &lt;&gt;
918
- &lt;WidgetHeader title={report.displayName} returnFn={goBack} /&gt;
919
- &lt;div className="rcw-report-mapping-misc"&gt;
920
- &lt;LabeledInput
921
- label={ReportsConfigWidget.localization.getLocalizedString(
922
- "ReportsConfigWidget:ODataFeedURL"
923
- )}
924
- className="rcw-odata-url-input"
925
- readOnly={true}
926
- value={odataFeedUrl}
927
- svgIcon={
928
- &lt;IconButton
929
- title={ReportsConfigWidget.localization.getLocalizedString(
930
- "ReportsConfigWidget:Copy"
931
- )}
932
- styleType="borderless"
933
- onClick={async (_) =&gt; {
934
- await navigator.clipboard.writeText(odataFeedUrl);
935
- toaster.positive(
936
- ReportsConfigWidget.localization.getLocalizedString(
937
- "ReportsConfigWidget:CopiedToClipboard"
938
- )
939
- );
940
- }}
941
- &gt;
942
- &lt;SvgCopy /&gt;
943
- &lt;/IconButton&gt;
944
- }
945
- iconDisplayStyle="inline"
946
- /&gt;
947
- &lt;/div&gt;
948
- &lt;Surface className="rcw-report-mappings-container"&gt;
949
- &lt;div className="rcw-toolbar"&gt;
950
- &lt;Button
951
- startIcon={&lt;SvgAdd /&gt;}
952
- onClick={() =&gt; addMapping()}
953
- styleType="high-visibility"
954
- &gt;
955
- {ReportsConfigWidget.localization.getLocalizedString(
956
- "ReportsConfigWidget:AddMapping"
957
- )}
958
- &lt;/Button&gt;
959
- &lt;div className="rcw-search-bar-container" data-testid="rcw-search-bar"&gt;
960
- &lt;SearchBar
961
- searchValue={searchValue}
962
- setSearchValue={setSearchValue}
963
- disabled={isLoading}
964
- /&gt;
965
- &lt;/div&gt;
966
- &lt;/div&gt;
967
- {isLoading ? (
968
- &lt;LoadingOverlay /&gt;
969
- ) : reportMappings.length === 0 ? (
970
- &lt;EmptyMessage&gt;
971
- &lt;&gt;
972
- &lt;Text&gt;
973
- {ReportsConfigWidget.localization.getLocalizedString(
974
- "ReportsConfigWidget:NoReportMappings"
975
- )}
976
- &lt;/Text&gt;
977
- &lt;div&gt;
978
- &lt;Button onClick={<span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >addMapping()}</span> styleType="cta"&gt;
979
- {ReportsConfigWidget.localization.getLocalizedString(
980
- "ReportsConfigWidget:LetsAddSomeMappingsCTA"
981
- )}
982
- &lt;/Button&gt;
983
- &lt;/div&gt;
984
- &lt;/&gt;
985
- &lt;/EmptyMessage&gt;
986
- ) : (
987
- &lt;div className="rcw-mapping-list"&gt;
988
- {filteredReportMappings.map((mapping) =&gt; (
989
- &lt;ReportMappingHorizontalTile
990
- key={mapping.mappingId}
991
- bulkExtractor={bulkExtractor}
992
- mapping={mapping}
993
- onClickDelete={<span class="fstat-no" title="function not covered" >() =</span>&gt; {
994
- <span class="cstat-no" title="statement not covered" > setSelectedReportMapping(mapping);</span>
995
- <span class="cstat-no" title="statement not covered" > setShowDeleteModal(true);</span>
996
- }}
997
- odataFeedUrl={odataFeedUrl}
998
- jobStartEvent={jobStartEvent}
999
- /&gt;
1000
- ))}
1001
- &lt;/div&gt;
1002
- )}
1003
- &lt;/Surface&gt;
1004
- &lt;AddMappingsModal
1005
- show={reportMappingsView === ReportMappingsView.ADDING}
1006
- reportId={report.id}
1007
- existingMappings={reportMappings}
1008
- returnFn={refresh}
1009
- /&gt;
1010
- &lt;DeleteModal
1011
- entityName={<span class="branch-1 cbranch-no" title="branch not covered" >selectedReportMapping?.mappingName<span class="branch-0 cbranch-no" title="branch not covered" > </span>?? "</span>"}
1012
- show={showDeleteModal}
1013
- setShow={setShowDeleteModal}
1014
- onDelete={<span class="fstat-no" title="function not covered" >async </span>() =&gt; {
1015
- const reportsClientApi = <span class="cstat-no" title="statement not covered" >new ReportsClient(</span>
1016
- generateUrl(REPORTING_BASE_PATH, apiConfig.baseUrl)
1017
- );
1018
- const accessToken = <span class="cstat-no" title="statement not covered" >await apiConfig.getAccessToken();</span>
1019
- <span class="cstat-no" title="statement not covered" > await reportsClientApi.deleteReportMapping(</span>
1020
- accessToken,
1021
- report.id,
1022
- selectedReportMapping?.mappingId ?? ""
1023
- );
1024
- }}
1025
- refresh={refresh}
1026
- /&gt;
1027
- &lt;div className="rcw-action-panel"&gt;
1028
- {isLoading &amp;&amp; &lt;LoadingSpinner /&gt;}
1029
- &lt;Button
1030
- disabled={isLoading || jobRunning || reportMappings.length === 0}
1031
- styleType="high-visibility"
1032
- onClick={async () =&gt; {
1033
- setJobRunning(true);
1034
- const uniqueIModels = Array.from(new Set(reportMappings.map((x) =&gt; x.imodelId)));
1035
- await bulkExtractor.runIModelExtractions(uniqueIModels);
1036
- reportMappings.forEach((reportMapping) =&gt; {
1037
- jobStartEvent.raiseEvent(reportMapping.imodelId);
1038
- });
1039
- }}
1040
- &gt;
1041
- {ReportsConfigWidget.localization.getLocalizedString(
1042
- "ReportsConfigWidget:UpdateAllDatasets"
1043
- )}
1044
- &lt;/Button&gt;
1045
- &lt;Button
1046
- styleType="default"
1047
- type="button"
1048
- onClick={goBack}
1049
- disabled={isLoading}
1050
- &gt;
1051
- {ReportsConfigWidget.localization.getLocalizedString(
1052
- "ReportsConfigWidget:Close"
1053
- )}
1054
- &lt;/Button&gt;
1055
- &lt;/div&gt;
1056
- &lt;/&gt;
1057
- );
1058
- };
1059
- &nbsp;</pre></td></tr></table></pre>
1060
-
1061
- <div class='push'></div><!-- for sticky footer -->
1062
- </div><!-- /wrapper -->
1063
- <div class='footer quiet pad2 space-top1 center small'>
1064
- Code coverage generated by
1065
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1066
- at Thu Jan 19 2023 10:29:16 GMT+0000 (Coordinated Universal Time)
1067
- </div>
1068
- <script src="../../../prettify.js"></script>
1069
- <script>
1070
- window.onload = function () {
1071
- prettyPrint();
1072
- };
1073
- </script>
1074
- <script src="../../../sorter.js"></script>
1075
- <script src="../../../block-navigation.js"></script>
1076
- </body>
1077
- </html>
1078
-