@itwin/reports-config-widget-react 0.0.8 → 0.2.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 (317) hide show
  1. package/.rush/temp/package-deps_rebuild.json +46 -32
  2. package/.rush/temp/shrinkwrap-deps.json +14 -6
  3. package/CHANGELOG.json +27 -0
  4. package/CHANGELOG.md +16 -1
  5. package/coverage/clover.xml +648 -427
  6. package/coverage/coverage-final.json +28 -18
  7. package/coverage/lcov-report/index.html +34 -19
  8. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +10 -10
  9. package/coverage/lcov-report/src/index.html +1 -1
  10. package/coverage/lcov-report/src/test/index.html +1 -1
  11. package/coverage/lcov-report/src/test/test-utils.tsx.html +22 -22
  12. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +7 -7
  13. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +29 -41
  14. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +31 -37
  15. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +661 -0
  16. package/coverage/lcov-report/src/widget/components/Constants.ts.html +106 -0
  17. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +21 -21
  18. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +187 -0
  19. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +145 -0
  20. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +139 -0
  21. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +151 -0
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +190 -0
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +176 -0
  24. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +295 -0
  25. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
  26. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +77 -44
  27. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
  28. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +14 -20
  29. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +475 -0
  30. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
  31. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +184 -250
  32. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +180 -132
  33. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +10 -10
  34. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +11 -11
  35. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +31 -31
  36. package/coverage/lcov-report/src/widget/components/index.html +134 -59
  37. package/coverage/lcov-report/src/widget/components/utils.tsx.html +32 -32
  38. package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +8 -8
  39. package/coverage/lcov-report/src/widget/context/index.html +1 -1
  40. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  41. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +7 -7
  42. package/coverage/lcov-report/src/widget/index.html +1 -1
  43. package/coverage/lcov.info +1137 -738
  44. package/jest.config.js +7 -0
  45. package/lib/cjs/test/AddMappingModal.test.d.ts +2 -0
  46. package/lib/cjs/test/AddMappingModal.test.d.ts.map +1 -0
  47. package/lib/cjs/test/AddMappingModal.test.js +277 -0
  48. package/lib/cjs/test/AddMappingModal.test.js.map +1 -0
  49. package/lib/cjs/test/BulkExtractor.test.d.ts +2 -0
  50. package/lib/cjs/test/BulkExtractor.test.d.ts.map +1 -0
  51. package/lib/cjs/test/BulkExtractor.test.js +182 -0
  52. package/lib/cjs/test/BulkExtractor.test.js.map +1 -0
  53. package/lib/cjs/test/DeleteModal.test.d.ts +2 -0
  54. package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -0
  55. package/lib/cjs/test/DeleteModal.test.js +93 -0
  56. package/lib/cjs/test/DeleteModal.test.js.map +1 -0
  57. package/lib/cjs/test/ReportAction.test.js +2 -3
  58. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  59. package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts +2 -0
  60. package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
  61. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +340 -0
  62. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -0
  63. package/lib/cjs/test/ReportMappings.test.js +115 -267
  64. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  65. package/lib/cjs/test/Reports.test.js +1 -1
  66. package/lib/cjs/test/Reports.test.js.map +1 -1
  67. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  68. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  69. package/lib/cjs/widget/components/ActionPanel.js +4 -5
  70. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  71. package/lib/cjs/widget/components/AddMappingsModal.d.ts +2 -2
  72. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  73. package/lib/cjs/widget/components/AddMappingsModal.js +5 -4
  74. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  75. package/lib/cjs/widget/components/AddMappingsModal.scss +4 -3
  76. package/lib/cjs/widget/components/BulkExtractor.d.ts +37 -0
  77. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -0
  78. package/lib/cjs/widget/components/BulkExtractor.js +155 -0
  79. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -0
  80. package/lib/cjs/widget/components/Constants.d.ts +4 -0
  81. package/lib/cjs/widget/components/Constants.d.ts.map +1 -0
  82. package/lib/cjs/widget/components/Constants.js +11 -0
  83. package/lib/cjs/widget/components/Constants.js.map +1 -0
  84. package/lib/cjs/widget/components/DeleteModal.js +1 -1
  85. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  86. package/lib/cjs/widget/components/DeleteModal.scss +4 -3
  87. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts +8 -0
  88. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -0
  89. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js +23 -0
  90. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -0
  91. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts +3 -0
  92. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -0
  93. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js +18 -0
  94. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -0
  95. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts +3 -0
  96. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -0
  97. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +17 -0
  98. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -0
  99. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts +3 -0
  100. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -0
  101. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js +18 -0
  102. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -0
  103. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts +8 -0
  104. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -0
  105. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +23 -0
  106. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -0
  107. package/lib/cjs/widget/components/ExtractionStatus.d.ts +17 -0
  108. package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -0
  109. package/lib/cjs/widget/components/ExtractionStatus.js +76 -0
  110. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -0
  111. package/lib/cjs/widget/components/{Extraction.scss → ExtractionStatus.scss} +17 -15
  112. package/lib/cjs/widget/components/ExtractionToast.d.ts +11 -0
  113. package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -0
  114. package/lib/cjs/widget/components/ExtractionToast.js +33 -0
  115. package/lib/cjs/widget/components/ExtractionToast.js.map +1 -0
  116. package/lib/cjs/widget/components/HorizontalTile.d.ts +8 -7
  117. package/lib/cjs/widget/components/HorizontalTile.d.ts.map +1 -1
  118. package/lib/cjs/widget/components/HorizontalTile.js +10 -6
  119. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  120. package/lib/cjs/widget/components/HorizontalTile.scss +42 -22
  121. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  122. package/lib/cjs/widget/components/ReportAction.js +3 -3
  123. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  124. package/lib/cjs/widget/components/ReportAction.scss +2 -2
  125. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +16 -0
  126. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -0
  127. package/lib/cjs/widget/components/ReportHorizontalTile.js +71 -0
  128. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -0
  129. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
  130. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
  131. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +82 -0
  132. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -0
  133. package/lib/cjs/widget/components/ReportMappings.d.ts +3 -1
  134. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  135. package/lib/cjs/widget/components/ReportMappings.js +39 -40
  136. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  137. package/lib/cjs/widget/components/ReportMappings.scss +7 -7
  138. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  139. package/lib/cjs/widget/components/Reports.js +43 -28
  140. package/lib/cjs/widget/components/Reports.js.map +1 -1
  141. package/lib/cjs/widget/components/Reports.scss +8 -4
  142. package/lib/cjs/widget/components/ReportsContainer.js +1 -1
  143. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  144. package/lib/cjs/widget/components/ReportsContainer.scss +2 -2
  145. package/lib/cjs/widget/components/SearchBar.js +1 -1
  146. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  147. package/lib/cjs/widget/components/SearchBar.scss +6 -0
  148. package/lib/cjs/widget/components/SelectIModel.js +2 -2
  149. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  150. package/lib/cjs/widget/components/SelectIModel.scss +4 -3
  151. package/lib/cjs/widget/components/utils.js +1 -1
  152. package/lib/cjs/widget/components/utils.js.map +1 -1
  153. package/lib/cjs/widget/components/utils.scss +2 -2
  154. package/lib/esm/test/AddMappingModal.test.d.ts +2 -0
  155. package/lib/esm/test/AddMappingModal.test.d.ts.map +1 -0
  156. package/lib/esm/test/AddMappingModal.test.js +253 -0
  157. package/lib/esm/test/AddMappingModal.test.js.map +1 -0
  158. package/lib/esm/test/BulkExtractor.test.d.ts +2 -0
  159. package/lib/esm/test/BulkExtractor.test.d.ts.map +1 -0
  160. package/lib/esm/test/BulkExtractor.test.js +158 -0
  161. package/lib/esm/test/BulkExtractor.test.js.map +1 -0
  162. package/lib/esm/test/DeleteModal.test.d.ts +2 -0
  163. package/lib/esm/test/DeleteModal.test.d.ts.map +1 -0
  164. package/lib/esm/test/DeleteModal.test.js +69 -0
  165. package/lib/esm/test/DeleteModal.test.js.map +1 -0
  166. package/lib/esm/test/ReportAction.test.js +2 -3
  167. package/lib/esm/test/ReportAction.test.js.map +1 -1
  168. package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts +2 -0
  169. package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
  170. package/lib/esm/test/ReportMappingHorizontalTile.test.js +316 -0
  171. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -0
  172. package/lib/esm/test/ReportMappings.test.js +117 -269
  173. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  174. package/lib/esm/test/Reports.test.js +1 -1
  175. package/lib/esm/test/Reports.test.js.map +1 -1
  176. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  177. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  178. package/lib/esm/widget/components/ActionPanel.js +4 -5
  179. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  180. package/lib/esm/widget/components/AddMappingsModal.d.ts +2 -2
  181. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  182. package/lib/esm/widget/components/AddMappingsModal.js +4 -5
  183. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  184. package/lib/esm/widget/components/AddMappingsModal.scss +4 -3
  185. package/lib/esm/widget/components/BulkExtractor.d.ts +37 -0
  186. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -0
  187. package/lib/esm/widget/components/BulkExtractor.js +152 -0
  188. package/lib/esm/widget/components/BulkExtractor.js.map +1 -0
  189. package/lib/esm/widget/components/Constants.d.ts +4 -0
  190. package/lib/esm/widget/components/Constants.d.ts.map +1 -0
  191. package/lib/esm/widget/components/Constants.js +8 -0
  192. package/lib/esm/widget/components/Constants.js.map +1 -0
  193. package/lib/esm/widget/components/DeleteModal.js +1 -1
  194. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  195. package/lib/esm/widget/components/DeleteModal.scss +4 -3
  196. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts +8 -0
  197. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -0
  198. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js +16 -0
  199. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -0
  200. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts +3 -0
  201. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -0
  202. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js +11 -0
  203. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -0
  204. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts +3 -0
  205. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -0
  206. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +10 -0
  207. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -0
  208. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts +3 -0
  209. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -0
  210. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js +11 -0
  211. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -0
  212. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts +8 -0
  213. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -0
  214. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +16 -0
  215. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -0
  216. package/lib/esm/widget/components/ExtractionStatus.d.ts +17 -0
  217. package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -0
  218. package/lib/esm/widget/components/ExtractionStatus.js +53 -0
  219. package/lib/esm/widget/components/ExtractionStatus.js.map +1 -0
  220. package/{src/widget/components/Extraction.scss → lib/esm/widget/components/ExtractionStatus.scss} +17 -15
  221. package/lib/esm/widget/components/ExtractionToast.d.ts +11 -0
  222. package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -0
  223. package/lib/esm/widget/components/ExtractionToast.js +25 -0
  224. package/lib/esm/widget/components/ExtractionToast.js.map +1 -0
  225. package/lib/esm/widget/components/HorizontalTile.d.ts +8 -7
  226. package/lib/esm/widget/components/HorizontalTile.d.ts.map +1 -1
  227. package/lib/esm/widget/components/HorizontalTile.js +10 -6
  228. package/lib/esm/widget/components/HorizontalTile.js.map +1 -1
  229. package/lib/esm/widget/components/HorizontalTile.scss +42 -22
  230. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  231. package/lib/esm/widget/components/ReportAction.js +3 -3
  232. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  233. package/lib/esm/widget/components/ReportAction.scss +2 -2
  234. package/lib/esm/widget/components/ReportHorizontalTile.d.ts +16 -0
  235. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -0
  236. package/lib/esm/widget/components/ReportHorizontalTile.js +64 -0
  237. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -0
  238. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
  239. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
  240. package/lib/esm/widget/components/ReportMappingHorizontalTile.js +75 -0
  241. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -0
  242. package/lib/esm/widget/components/ReportMappings.d.ts +3 -1
  243. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  244. package/lib/esm/widget/components/ReportMappings.js +40 -41
  245. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  246. package/lib/esm/widget/components/ReportMappings.scss +7 -7
  247. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  248. package/lib/esm/widget/components/Reports.js +45 -30
  249. package/lib/esm/widget/components/Reports.js.map +1 -1
  250. package/lib/esm/widget/components/Reports.scss +8 -4
  251. package/lib/esm/widget/components/ReportsContainer.js +1 -1
  252. package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
  253. package/lib/esm/widget/components/ReportsContainer.scss +2 -2
  254. package/lib/esm/widget/components/SearchBar.js +1 -1
  255. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  256. package/lib/esm/widget/components/SearchBar.scss +6 -0
  257. package/lib/esm/widget/components/SelectIModel.js +2 -2
  258. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  259. package/lib/esm/widget/components/SelectIModel.scss +4 -3
  260. package/lib/esm/widget/components/utils.js +1 -1
  261. package/lib/esm/widget/components/utils.js.map +1 -1
  262. package/lib/esm/widget/components/utils.scss +2 -2
  263. package/lib/public/locales/en/ReportsConfigWidget.json +7 -1
  264. package/package.json +9 -3
  265. package/public/locales/en/ReportsConfigWidget.json +7 -1
  266. package/reports-config-widget-react.build.error.log +10 -6
  267. package/reports-config-widget-react.build.log +51 -36
  268. package/src/test/AddMappingModal.test.tsx +315 -0
  269. package/src/test/BulkExtractor.test.ts +301 -0
  270. package/src/test/DeleteModal.test.tsx +118 -0
  271. package/src/test/ReportAction.test.tsx +2 -4
  272. package/src/test/ReportMappingHorizontalTile.test.tsx +451 -0
  273. package/src/test/ReportMappings.test.tsx +154 -549
  274. package/src/test/Reports.test.tsx +1 -1
  275. package/src/widget/components/ActionPanel.tsx +19 -23
  276. package/src/widget/components/AddMappingsModal.scss +4 -3
  277. package/src/widget/components/AddMappingsModal.tsx +4 -6
  278. package/src/widget/components/BulkExtractor.ts +192 -0
  279. package/src/widget/components/Constants.ts +7 -0
  280. package/src/widget/components/DeleteModal.scss +4 -3
  281. package/src/widget/components/DeleteModal.tsx +1 -1
  282. package/src/widget/components/ExtractionStates/FailedExtractionState.tsx +34 -0
  283. package/src/widget/components/ExtractionStates/QueuedExtractionState.tsx +20 -0
  284. package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +18 -0
  285. package/src/widget/components/ExtractionStates/StartingExtractionState.tsx +22 -0
  286. package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +35 -0
  287. package/{lib/esm/widget/components/Extraction.scss → src/widget/components/ExtractionStatus.scss} +17 -15
  288. package/src/widget/components/ExtractionStatus.tsx +70 -0
  289. package/src/widget/components/ExtractionToast.tsx +41 -0
  290. package/src/widget/components/HorizontalTile.scss +42 -22
  291. package/src/widget/components/HorizontalTile.tsx +45 -34
  292. package/src/widget/components/ReportAction.scss +2 -2
  293. package/src/widget/components/ReportAction.tsx +1 -3
  294. package/src/widget/components/ReportHorizontalTile.tsx +130 -0
  295. package/src/widget/components/ReportMappingHorizontalTile.tsx +128 -0
  296. package/src/widget/components/ReportMappings.scss +7 -7
  297. package/src/widget/components/ReportMappings.tsx +91 -113
  298. package/src/widget/components/Reports.scss +8 -4
  299. package/src/widget/components/Reports.tsx +78 -62
  300. package/src/widget/components/ReportsContainer.scss +2 -2
  301. package/src/widget/components/ReportsContainer.tsx +1 -1
  302. package/src/widget/components/SearchBar.scss +6 -0
  303. package/src/widget/components/SearchBar.tsx +1 -1
  304. package/src/widget/components/SelectIModel.scss +4 -3
  305. package/src/widget/components/SelectIModel.tsx +2 -2
  306. package/src/widget/components/utils.scss +2 -2
  307. package/src/widget/components/utils.tsx +1 -1
  308. package/coverage/lcov-report/src/widget/components/Extraction.tsx.html +0 -1030
  309. package/lib/cjs/widget/components/Extraction.d.ts +0 -28
  310. package/lib/cjs/widget/components/Extraction.d.ts.map +0 -1
  311. package/lib/cjs/widget/components/Extraction.js +0 -190
  312. package/lib/cjs/widget/components/Extraction.js.map +0 -1
  313. package/lib/esm/widget/components/Extraction.d.ts +0 -28
  314. package/lib/esm/widget/components/Extraction.d.ts.map +0 -1
  315. package/lib/esm/widget/components/Extraction.js +0 -166
  316. package/lib/esm/widget/components/Extraction.js.map +0 -1
  317. package/src/widget/components/Extraction.tsx +0 -315
@@ -3,30 +3,50 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  @import "~@itwin/itwinui-css/scss/variables";
6
+ @import "~@itwin/itwinui-css/scss/icon/index";
6
7
 
7
- .rcw-horizontal-tile-container {
8
- display: flex;
9
- justify-content: space-between;
10
- border-radius: 5px;
11
- background-color: var(--iui-color-background-2);
12
- height: $iui-baseline * 4;
13
- padding: 5.5px $iui-s;
14
- .body {
8
+ .rcw-horizontal-tile {
9
+ &-container {
15
10
  display: flex;
16
- flex-direction: column;
17
- min-width: 0;
18
- justify-content: center;
19
- &-text {
20
- overflow: hidden;
21
- white-space: nowrap;
22
- text-overflow: ellipsis;
11
+ justify-content: space-between;
12
+ border-radius: 5px;
13
+ background-color: var(--iui-color-background-2);
14
+ height: $iui-baseline * 4;
15
+ padding: 5.5px $iui-s;
16
+
17
+ .rcw-body-container {
18
+ display: flex;
19
+ min-width: 0;
20
+
21
+ .rcw-body {
22
+ display: flex;
23
+ flex-direction: column;
24
+ min-width: 0;
25
+ justify-content: center;
26
+
27
+ &-text {
28
+ overflow: hidden;
29
+ white-space: nowrap;
30
+ text-overflow: ellipsis;
31
+ }
32
+ }
33
+ }
34
+
35
+ .rcw-action-button {
36
+ margin-left: 0;
37
+ align-self: center;
38
+ min-width: 36px;
39
+ flex-shrink: 0;
40
+ display: flex;
23
41
  }
24
42
  }
25
- .action-button {
26
- margin-left: 0;
27
- align-self: center;
28
- min-width: 36px;
29
- margin-right: $iui-xs;
30
- flex-shrink: 0;
43
+
44
+ &-selected {
45
+ @include themed {
46
+ border: 1px solid t(iui-color-foreground-primary);
47
+ background: linear-gradient(rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6)),
48
+ rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6))),
49
+ linear-gradient(t(iui-color-background-1), t(iui-color-background-1));
50
+ }
31
51
  }
32
- }
52
+ }
@@ -6,51 +6,62 @@ import type { ReactNode } from "react";
6
6
  import React from "react";
7
7
  import { Text } from "@itwin/itwinui-react";
8
8
  import "./HorizontalTile.scss";
9
+ import classNames from "classnames";
9
10
 
10
- interface HorizontalTileProps {
11
+ export interface HorizontalTileProps extends React.ComponentPropsWithoutRef<"div"> {
11
12
  title: string;
12
- button: ReactNode;
13
- subText?: string;
14
- onClickTitle?: () => void;
15
- titleTooltip?: string;
13
+ actionGroup: ReactNode;
14
+ subText: string;
15
+ onClickTitle?: React.MouseEventHandler;
16
+ titleTooltip: string;
16
17
  subtextToolTip?: string;
18
+ selected?: boolean;
17
19
  }
18
20
 
19
- export const HorizontalTile = ({
20
- title,
21
- subText,
22
- onClickTitle,
23
- titleTooltip,
24
- subtextToolTip,
25
- button,
26
- }: HorizontalTileProps) => {
21
+ export const HorizontalTile = (props: HorizontalTileProps) => {
22
+ const {
23
+ title,
24
+ titleTooltip,
25
+ subText,
26
+ subtextToolTip,
27
+ actionGroup,
28
+ selected,
29
+ className,
30
+ onClickTitle,
31
+ ...rest
32
+ } = props;
33
+
27
34
  return (
28
35
  <div
29
- className="rcw-horizontal-tile-container"
36
+ className={classNames(
37
+ "rcw-horizontal-tile-container",
38
+ { "rcw-horizontal-tile-selected": selected },
39
+ className
40
+ )}
41
+ onClick={rest.onClick}
30
42
  data-testid="horizontal-tile"
31
43
  >
32
- <div className="body">
33
- <Text
34
- className={`body-text ${onClickTitle ? "iui-anchor" : ""}`}
35
- onClick={onClickTitle}
36
- variant="body"
37
- title={titleTooltip}
38
- >
39
- {title}
40
- </Text>
41
- {subText && (
42
- <Text
43
- className="body-text"
44
- isMuted={true}
45
- title={subtextToolTip}
46
- variant="small"
47
- >
48
- {subText}
44
+ <div className="rcw-body-container">
45
+ <div className="rcw-body">
46
+ <Text className={classNames("rcw-body-text", { "iui-anchor": !!onClickTitle })}
47
+ onClick={onClickTitle}
48
+ variant="body"
49
+ title={titleTooltip}>{title}
49
50
  </Text>
50
- )}
51
+ {
52
+ subText &&
53
+ <Text className="rcw-body-text"
54
+ isMuted={true}
55
+ title={subtextToolTip}
56
+ variant="small">{subText}
57
+ </Text>
58
+ }
59
+ </div>
51
60
  </div>
52
- <div className="action-button" data-testid="tile-action-button">
53
- {button}
61
+ <div
62
+ className="rcw-action-button"
63
+ data-testid="tile-action-button">
64
+ {actionGroup}
54
65
  </div>
55
66
  </div>
56
67
  );
@@ -8,9 +8,9 @@
8
8
  overflow-x: auto;
9
9
  height: 100%;
10
10
 
11
- .details-form {
11
+ .rcw-details-form {
12
12
  display: flex;
13
13
  flex-direction: column;
14
14
  gap: $iui-baseline;
15
15
  }
16
- }
16
+ }
@@ -82,7 +82,7 @@ const ReportAction = ({ iTwinId, report, returnFn }: ReportActionProps) => {
82
82
  legend={ReportsConfigWidget.localization.getLocalizedString(
83
83
  "ReportsConfigWidget:ReportDetails"
84
84
  )}
85
- className="details-form"
85
+ className="rcw-details-form"
86
86
  >
87
87
  <Small className="field-legend">
88
88
  {ReportsConfigWidget.localization.getLocalizedString(
@@ -90,7 +90,6 @@ const ReportAction = ({ iTwinId, report, returnFn }: ReportActionProps) => {
90
90
  )}
91
91
  </Small>
92
92
  <LabeledInput
93
- id="name"
94
93
  name="name"
95
94
  label={ReportsConfigWidget.localization.getLocalizedString(
96
95
  "ReportsConfigWidget:Name"
@@ -117,7 +116,6 @@ const ReportAction = ({ iTwinId, report, returnFn }: ReportActionProps) => {
117
116
  }}
118
117
  />
119
118
  <LabeledInput
120
- id="description"
121
119
  name="description"
122
120
  label={ReportsConfigWidget.localization.getLocalizedString(
123
121
  "ReportsConfigWidget:Description"
@@ -0,0 +1,130 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { useEffect, useRef, useState } from "react";
6
+ import React from "react";
7
+ import type BulkExtractor from "./BulkExtractor";
8
+ import { ExtractionStates, ExtractionStatus } from "./ExtractionStatus";
9
+ import type { BeEvent } from "@itwin/core-bentley";
10
+ import { STATUS_CHECK_INTERVAL } from "./Constants";
11
+ import type { Report } from "@itwin/insights-client";
12
+ import { ReportsConfigWidget } from "../../ReportsConfigWidget";
13
+ import {
14
+ DropdownMenu,
15
+ IconButton,
16
+ MenuItem,
17
+ } from "@itwin/itwinui-react";
18
+ import {
19
+ SvgDelete,
20
+ SvgEdit,
21
+ SvgMore,
22
+ } from "@itwin/itwinui-icons-react";
23
+ import { HorizontalTile } from "./HorizontalTile";
24
+ import type { HorizontalTileProps } from "./HorizontalTile";
25
+
26
+ export interface ReportHorizontalTileProps extends Pick<HorizontalTileProps, "onClickTitle"> {
27
+ selected: boolean;
28
+ onSelectionChange: (reportId: string, controlPressed: boolean) => void;
29
+ bulkExtractor: BulkExtractor;
30
+ jobStartEvent: BeEvent<(reportId: string) => void>;
31
+ report: Report;
32
+ onClickDelete: () => void;
33
+ onClickModify: () => void;
34
+ }
35
+
36
+ export const ReportHorizontalTile = (props: ReportHorizontalTileProps) => {
37
+ const [jobStarted, setJobStarted] = useState<boolean>(false);
38
+ const [extractionState, setExtractionState] = useState<ExtractionStates>(ExtractionStates.None);
39
+ const interval = useRef<number>();
40
+
41
+ useEffect(() => {
42
+ const listener = (startedReportId: string) => {
43
+ if (startedReportId === props.report.id) {
44
+ setExtractionState(ExtractionStates.Starting);
45
+ setJobStarted(true);
46
+ }
47
+ };
48
+ props.jobStartEvent.addListener(listener);
49
+
50
+ return () => {
51
+ props.jobStartEvent.removeListener(listener);
52
+ };
53
+ }, [props.jobStartEvent, props.report.id]);
54
+
55
+ useEffect(() => {
56
+ if (jobStarted) {
57
+ window.clearInterval(interval.current);
58
+ interval.current = window.setInterval(async () => {
59
+ const state = await props.bulkExtractor.getReportState(props.report.id);
60
+ if (state) {
61
+ setExtractionState(state);
62
+ if (state === ExtractionStates.Failed || state === ExtractionStates.Succeeded) {
63
+ setJobStarted(false);
64
+ }
65
+ }
66
+ }, STATUS_CHECK_INTERVAL);
67
+ }
68
+ return () => window.clearInterval(interval.current);
69
+ }, [props.report.id, props.bulkExtractor, jobStarted]);
70
+
71
+ const onClickTile = (e: React.MouseEvent) => {
72
+ if (e?.currentTarget.className?.toString().split(" ").includes("rcw-horizontal-tile-container")) {
73
+ props.onSelectionChange(props.report.id, e.ctrlKey);
74
+ }
75
+ };
76
+
77
+ return (
78
+ <HorizontalTile
79
+ title={props.report.displayName}
80
+ subText={props.report.description ?? ""}
81
+ subtextToolTip={props.report.description ?? ""}
82
+ titleTooltip={props.report.displayName}
83
+ onClick={onClickTile}
84
+ onClickTitle={props.onClickTitle}
85
+ selected={props.selected}
86
+ actionGroup={extractionState === ExtractionStates.None ? (
87
+ <div
88
+ className="rcw-action-button"
89
+ data-testid="tile-action-button">
90
+ <DropdownMenu
91
+ menuItems={(close: () => void) => [
92
+ <MenuItem
93
+ key={0}
94
+ onClick={props.onClickModify}
95
+ icon={<SvgEdit />}
96
+ >
97
+ {ReportsConfigWidget.localization.getLocalizedString(
98
+ "ReportsConfigWidget:Modify"
99
+ )}
100
+ </MenuItem>,
101
+ <MenuItem
102
+ key={1}
103
+ onClick={() => {
104
+ props.onClickDelete();
105
+ close();
106
+ }}
107
+ icon={<SvgDelete />}
108
+ >
109
+ {ReportsConfigWidget.localization.getLocalizedString(
110
+ "ReportsConfigWidget:Remove"
111
+ )}
112
+ </MenuItem>,
113
+ ]}
114
+ >
115
+ <IconButton styleType="borderless">
116
+ <SvgMore />
117
+ </IconButton>
118
+ </DropdownMenu>
119
+ </div>
120
+ ) : (
121
+ <ExtractionStatus
122
+ state={extractionState}
123
+ clearExtractionState={() => {
124
+ setExtractionState(ExtractionStates.None);
125
+ }}
126
+ ></ExtractionStatus>
127
+ )}
128
+ ></HorizontalTile>
129
+ );
130
+ };
@@ -0,0 +1,128 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { useCallback, useEffect, useRef, useState } from "react";
6
+ import React from "react";
7
+ import type BulkExtractor from "./BulkExtractor";
8
+ import { ExtractionStates, ExtractionStatus } from "./ExtractionStatus";
9
+ import type { BeEvent } from "@itwin/core-bentley";
10
+ import { STATUS_CHECK_INTERVAL } from "./Constants";
11
+ import { ReportsConfigWidget } from "../../ReportsConfigWidget";
12
+ import { IconButton } from "@itwin/itwinui-react";
13
+ import {
14
+ SvgDelete,
15
+ SvgRefresh,
16
+ } from "@itwin/itwinui-icons-react";
17
+ import { HorizontalTile } from "./HorizontalTile";
18
+ import type { ReportMappingAndMapping } from "./ReportMappings";
19
+
20
+ export interface ReportMappingHorizontalTileProps {
21
+ jobStartEvent: BeEvent<(iModelId: string) => void>;
22
+ mapping: ReportMappingAndMapping;
23
+ onClickDelete: () => void;
24
+ bulkExtractor: BulkExtractor;
25
+ odataFeedUrl: string;
26
+ }
27
+
28
+ export const ReportMappingHorizontalTile = (props: ReportMappingHorizontalTileProps) => {
29
+ const [extractionState, setExtractionState] = useState<ExtractionStates>(ExtractionStates.None);
30
+ const [jobStarted, setJobStarted] = useState<boolean>(true);
31
+ const interval = useRef<number>();
32
+ const initialLoad = useRef<boolean>(true);
33
+
34
+ useEffect(() => {
35
+ const listener = (startedIModelId: string) => {
36
+ if (startedIModelId === props.mapping.imodelId) {
37
+ setExtractionState(ExtractionStates.Starting);
38
+ setJobStarted(true);
39
+ }
40
+ };
41
+ props.jobStartEvent.addListener(listener);
42
+
43
+ return () => {
44
+ props.jobStartEvent.removeListener(listener);
45
+ };
46
+ }, [props.jobStartEvent, props.mapping]);
47
+
48
+ const getExtractionState = useCallback(async () => {
49
+ const state = await props.bulkExtractor.getIModelState(props.mapping.imodelId, props.mapping.iModelName, props.odataFeedUrl);
50
+ if (state === ExtractionStates.Failed || state === ExtractionStates.Succeeded || state === ExtractionStates.None) {
51
+ setJobStarted(false);
52
+ if (initialLoad.current) {
53
+ initialLoad.current = false;
54
+ setExtractionState(ExtractionStates.None);
55
+ return;
56
+ }
57
+ } else {
58
+ initialLoad.current = false;
59
+ }
60
+ setExtractionState(state);
61
+ }, [props.mapping, props.bulkExtractor, props.odataFeedUrl]);
62
+
63
+ useEffect(() => {
64
+ if (jobStarted) {
65
+ getExtractionState().catch((error) => {
66
+ setExtractionState(ExtractionStates.Failed);
67
+ setJobStarted(false);
68
+ /* eslint-disable no-console */
69
+ console.error(error);
70
+ });
71
+ window.clearInterval(interval.current);
72
+ interval.current = window.setInterval(async () => {
73
+ await getExtractionState();
74
+ }, STATUS_CHECK_INTERVAL);
75
+ }
76
+ return () => window.clearInterval(interval.current);
77
+ }, [jobStarted, getExtractionState]);
78
+
79
+ return (
80
+ <HorizontalTile
81
+ title={props.mapping.mappingName}
82
+ subText={props.mapping.iModelName}
83
+ titleTooltip={props.mapping.mappingDescription}
84
+ actionGroup={(
85
+ <div
86
+ className="rcw-action-button"
87
+ data-testid="tile-action-button">
88
+ {extractionState === ExtractionStates.None ?
89
+ (
90
+ <IconButton
91
+ styleType="borderless"
92
+ title={ReportsConfigWidget.localization.getLocalizedString(
93
+ "ReportsConfigWidget:UpdateDataset"
94
+ )}
95
+ onClick={async () => {
96
+ setExtractionState(ExtractionStates.Starting);
97
+ await props.bulkExtractor.runIModelExtraction(props.mapping.imodelId);
98
+ props.jobStartEvent.raiseEvent(props.mapping.imodelId);
99
+ }}
100
+ disabled={jobStarted}
101
+ >
102
+ <SvgRefresh />
103
+ </IconButton>
104
+ ) : (
105
+ <ExtractionStatus
106
+ state={extractionState}
107
+ clearExtractionState={() => {
108
+ setExtractionState(ExtractionStates.None);
109
+ }}
110
+ ></ExtractionStatus>
111
+ )}
112
+ <IconButton
113
+ styleType="borderless"
114
+ title={ReportsConfigWidget.localization.getLocalizedString(
115
+ "ReportsConfigWidget:Remove"
116
+ )}
117
+ onClick={() => {
118
+ props.onClickDelete();
119
+ }}
120
+ disabled={jobStarted}
121
+ >
122
+ <SvgDelete />
123
+ </IconButton>
124
+ </div >
125
+ )}
126
+ />
127
+ );
128
+ };
@@ -4,24 +4,24 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  @import "~@itwin/itwinui-css/scss/variables";
6
6
 
7
- .report-mapping-misc {
7
+ .rcw-report-mapping-misc {
8
8
  display: flex;
9
9
  flex-direction: column;
10
10
  gap: $iui-baseline;
11
11
  }
12
12
 
13
- .report-mappings-container {
13
+ .rcw-report-mappings-container {
14
14
  display: flex;
15
15
  flex-direction: column;
16
16
  flex-grow: 1;
17
17
  padding: $iui-baseline $iui-m;
18
18
  min-height: 0;
19
19
 
20
- .odata-url-input {
20
+ .rcw-odata-url-input {
21
21
  margin-bottom: $iui-baseline * 2;
22
22
  }
23
23
 
24
- .toolbar {
24
+ .rcw-toolbar {
25
25
  display: flex;
26
26
  justify-content: space-between;
27
27
  gap: $iui-s;
@@ -30,7 +30,7 @@
30
30
  flex-wrap: wrap;
31
31
  }
32
32
 
33
- .mapping-list {
33
+ .rcw-mapping-list {
34
34
  display: flex;
35
35
  flex-direction: column;
36
36
  overflow-y: overlay;
@@ -38,9 +38,9 @@
38
38
  margin-top: 7.5px;
39
39
  }
40
40
 
41
- .search-bar-container {
41
+ .rcw-search-bar-container {
42
42
  flex-basis: $iui-3xl;
43
43
  flex-shrink: 1;
44
44
  flex-grow: 1;
45
45
  }
46
- }
46
+ }