@itwin/grouping-mapping-widget 0.35.4 → 0.36.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 (302) hide show
  1. package/lib/cjs/GroupingMappingWidget.d.ts +28 -0
  2. package/lib/cjs/GroupingMappingWidget.js +71 -0
  3. package/lib/cjs/GroupingMappingWidget.js.map +1 -0
  4. package/lib/cjs/WidgetShell/GroupingMapping.js +4 -3
  5. package/lib/cjs/WidgetShell/GroupingMapping.js.map +1 -1
  6. package/lib/cjs/WidgetShell/GroupingMappingWidget.js +2 -1
  7. package/lib/cjs/WidgetShell/GroupingMappingWidget.js.map +1 -1
  8. package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js +6 -5
  9. package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
  10. package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js +3 -2
  11. package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
  12. package/lib/cjs/common/utils.js +12 -11
  13. package/lib/cjs/common/utils.js.map +1 -1
  14. package/lib/cjs/components/GroupingMappingContext.js +3 -2
  15. package/lib/cjs/components/GroupingMappingContext.js.map +1 -1
  16. package/lib/cjs/components/Groups/Editing/GroupAction.d.ts +2 -2
  17. package/lib/cjs/components/Groups/Editing/GroupAction.js +8 -7
  18. package/lib/cjs/components/Groups/Editing/GroupAction.js.map +1 -1
  19. package/lib/cjs/components/Groups/Editing/GroupDetails.js +4 -3
  20. package/lib/cjs/components/Groups/Editing/GroupDetails.js.map +1 -1
  21. package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js +3 -2
  22. package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
  23. package/lib/cjs/components/Groups/Editing/GroupDetailsStep.d.ts +2 -2
  24. package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js +5 -4
  25. package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
  26. package/lib/cjs/components/Groups/GroupMenuActions.js +5 -4
  27. package/lib/cjs/components/Groups/GroupMenuActions.js.map +1 -1
  28. package/lib/cjs/components/Groups/GroupOverlapProgressBar.js +2 -1
  29. package/lib/cjs/components/Groups/GroupOverlapProgressBar.js.map +1 -1
  30. package/lib/cjs/components/Groups/GroupsAddButton.js +2 -1
  31. package/lib/cjs/components/Groups/GroupsAddButton.js.map +1 -1
  32. package/lib/cjs/components/Groups/GroupsShowHideButtons.js +2 -1
  33. package/lib/cjs/components/Groups/GroupsShowHideButtons.js.map +1 -1
  34. package/lib/cjs/components/Groups/GroupsView.js +4 -3
  35. package/lib/cjs/components/Groups/GroupsView.js.map +1 -1
  36. package/lib/cjs/components/Groups/GroupsVisualization.js +9 -6
  37. package/lib/cjs/components/Groups/GroupsVisualization.js.map +1 -1
  38. package/lib/cjs/components/Groups/GroupsVisualizationActions.js +3 -2
  39. package/lib/cjs/components/Groups/GroupsVisualizationActions.js.map +1 -1
  40. package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js +6 -5
  41. package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
  42. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js +4 -3
  43. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
  44. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +2 -1
  45. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
  46. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +2 -1
  47. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
  48. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.d.ts +2 -2
  49. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js +7 -6
  50. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
  51. package/lib/cjs/components/Groups/ToggleGroupVisibility.js +3 -2
  52. package/lib/cjs/components/Groups/ToggleGroupVisibility.js.map +1 -1
  53. package/lib/cjs/components/Groups/hooks/useVisualization.js +2 -1
  54. package/lib/cjs/components/Groups/hooks/useVisualization.js.map +1 -1
  55. package/lib/cjs/components/Mappings/Editing/MappingAction.d.ts +2 -2
  56. package/lib/cjs/components/Mappings/Editing/MappingAction.js +9 -8
  57. package/lib/cjs/components/Mappings/Editing/MappingAction.js.map +1 -1
  58. package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js +17 -6
  59. package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
  60. package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js +12 -11
  61. package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
  62. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +2 -1
  63. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
  64. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +2 -1
  65. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
  66. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +2 -1
  67. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
  68. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +2 -1
  69. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
  70. package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.d.ts +2 -2
  71. package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js +20 -19
  72. package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
  73. package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.d.ts +2 -2
  74. package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js +19 -18
  75. package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
  76. package/lib/cjs/components/Mappings/Import/SelectIModel.d.ts +2 -2
  77. package/lib/cjs/components/Mappings/Import/SelectIModel.js +9 -8
  78. package/lib/cjs/components/Mappings/Import/SelectIModel.js.map +1 -1
  79. package/lib/cjs/components/Mappings/Import/SelectITwin.d.ts +2 -2
  80. package/lib/cjs/components/Mappings/Import/SelectITwin.js +14 -13
  81. package/lib/cjs/components/Mappings/Import/SelectITwin.js.map +1 -1
  82. package/lib/cjs/components/Mappings/Import/SelectMappings.d.ts +2 -2
  83. package/lib/cjs/components/Mappings/Import/SelectMappings.js +10 -9
  84. package/lib/cjs/components/Mappings/Import/SelectMappings.js.map +1 -1
  85. package/lib/cjs/components/Mappings/MappingViewActionGroup.js +5 -4
  86. package/lib/cjs/components/Mappings/MappingViewActionGroup.js.map +1 -1
  87. package/lib/cjs/components/Mappings/Mappings.d.ts +2 -2
  88. package/lib/cjs/components/Mappings/Mappings.js.map +1 -1
  89. package/lib/cjs/components/Mappings/MappingsView.d.ts +2 -2
  90. package/lib/cjs/components/Mappings/MappingsView.js +17 -15
  91. package/lib/cjs/components/Mappings/MappingsView.js.map +1 -1
  92. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js +4 -3
  93. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
  94. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js +2 -1
  95. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
  96. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +3 -2
  97. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
  98. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +2 -1
  99. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
  100. package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +3 -2
  101. package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
  102. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js +4 -3
  103. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
  104. package/lib/cjs/components/Properties/GroupColorToggle.js +3 -2
  105. package/lib/cjs/components/Properties/GroupColorToggle.js.map +1 -1
  106. package/lib/cjs/components/Properties/GroupInformationPanel.js +3 -2
  107. package/lib/cjs/components/Properties/GroupInformationPanel.js.map +1 -1
  108. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.d.ts +1 -1
  109. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js +28 -26
  110. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
  111. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js +5 -4
  112. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
  113. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +12 -11
  114. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
  115. package/lib/cjs/components/Properties/GroupProperties/SaveModal.js +5 -4
  116. package/lib/cjs/components/Properties/GroupProperties/SaveModal.js.map +1 -1
  117. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js +2 -1
  118. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
  119. package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js +2 -1
  120. package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
  121. package/lib/cjs/components/Properties/PropertyTable.js +2 -1
  122. package/lib/cjs/components/Properties/PropertyTable.js.map +1 -1
  123. package/lib/cjs/components/Properties/PropertyTableToolbar.js +3 -5
  124. package/lib/cjs/components/Properties/PropertyTableToolbar.js.map +1 -1
  125. package/lib/cjs/components/Properties/hooks/useValidator.d.ts +2 -2
  126. package/lib/cjs/components/Properties/hooks/useValidator.js +12 -9
  127. package/lib/cjs/components/Properties/hooks/useValidator.js.map +1 -1
  128. package/lib/cjs/components/SharedComponents/ActionPanel.js +3 -2
  129. package/lib/cjs/components/SharedComponents/ActionPanel.js.map +1 -1
  130. package/lib/cjs/components/SharedComponents/DeleteModal.js +5 -4
  131. package/lib/cjs/components/SharedComponents/DeleteModal.js.map +1 -1
  132. package/lib/cjs/components/SharedComponents/LoadingOverlay.js +3 -2
  133. package/lib/cjs/components/SharedComponents/LoadingOverlay.js.map +1 -1
  134. package/lib/cjs/components/customUI/DefaultGroupingUI.d.ts +1 -1
  135. package/lib/cjs/components/customUI/DefaultGroupingUI.js +7 -5
  136. package/lib/cjs/components/customUI/DefaultGroupingUI.js.map +1 -1
  137. package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js +3 -2
  138. package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
  139. package/lib/cjs/components/customUI/ManualGroupingCustomUI.js +5 -4
  140. package/lib/cjs/components/customUI/ManualGroupingCustomUI.js.map +1 -1
  141. package/lib/cjs/components/customUI/SearchGroupingCustomUI.js +5 -4
  142. package/lib/cjs/components/customUI/SearchGroupingCustomUI.js.map +1 -1
  143. package/lib/cjs/grouping-mapping-widget.d.ts +3 -0
  144. package/lib/cjs/grouping-mapping-widget.js +4 -1
  145. package/lib/cjs/grouping-mapping-widget.js.map +1 -1
  146. package/lib/cjs/test/GroupingMappingCustomUI.test.js +5 -5
  147. package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
  148. package/lib/cjs/test/setup.d.ts +2 -0
  149. package/lib/cjs/test/setup.js +10 -0
  150. package/lib/cjs/test/setup.js.map +1 -0
  151. package/lib/esm/GroupingMappingWidget.d.ts +28 -0
  152. package/lib/esm/GroupingMappingWidget.js +67 -0
  153. package/lib/esm/GroupingMappingWidget.js.map +1 -0
  154. package/lib/esm/WidgetShell/GroupingMapping.js +5 -4
  155. package/lib/esm/WidgetShell/GroupingMapping.js.map +1 -1
  156. package/lib/esm/WidgetShell/GroupingMappingWidget.js +2 -1
  157. package/lib/esm/WidgetShell/GroupingMappingWidget.js.map +1 -1
  158. package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js +6 -5
  159. package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
  160. package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js +3 -2
  161. package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
  162. package/lib/esm/common/utils.js +12 -11
  163. package/lib/esm/common/utils.js.map +1 -1
  164. package/lib/esm/components/GroupingMappingContext.js +3 -2
  165. package/lib/esm/components/GroupingMappingContext.js.map +1 -1
  166. package/lib/esm/components/Groups/Editing/GroupAction.d.ts +2 -2
  167. package/lib/esm/components/Groups/Editing/GroupAction.js +8 -7
  168. package/lib/esm/components/Groups/Editing/GroupAction.js.map +1 -1
  169. package/lib/esm/components/Groups/Editing/GroupDetails.js +4 -3
  170. package/lib/esm/components/Groups/Editing/GroupDetails.js.map +1 -1
  171. package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js +3 -2
  172. package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
  173. package/lib/esm/components/Groups/Editing/GroupDetailsStep.d.ts +2 -2
  174. package/lib/esm/components/Groups/Editing/GroupDetailsStep.js +5 -4
  175. package/lib/esm/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
  176. package/lib/esm/components/Groups/GroupMenuActions.js +5 -4
  177. package/lib/esm/components/Groups/GroupMenuActions.js.map +1 -1
  178. package/lib/esm/components/Groups/GroupOverlapProgressBar.js +2 -1
  179. package/lib/esm/components/Groups/GroupOverlapProgressBar.js.map +1 -1
  180. package/lib/esm/components/Groups/GroupsAddButton.js +2 -1
  181. package/lib/esm/components/Groups/GroupsAddButton.js.map +1 -1
  182. package/lib/esm/components/Groups/GroupsShowHideButtons.js +2 -1
  183. package/lib/esm/components/Groups/GroupsShowHideButtons.js.map +1 -1
  184. package/lib/esm/components/Groups/GroupsView.js +4 -3
  185. package/lib/esm/components/Groups/GroupsView.js.map +1 -1
  186. package/lib/esm/components/Groups/GroupsVisualization.js +9 -6
  187. package/lib/esm/components/Groups/GroupsVisualization.js.map +1 -1
  188. package/lib/esm/components/Groups/GroupsVisualizationActions.js +3 -2
  189. package/lib/esm/components/Groups/GroupsVisualizationActions.js.map +1 -1
  190. package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js +6 -5
  191. package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
  192. package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js +4 -3
  193. package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
  194. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +2 -1
  195. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
  196. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +2 -1
  197. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
  198. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.d.ts +2 -2
  199. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js +7 -6
  200. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
  201. package/lib/esm/components/Groups/ToggleGroupVisibility.js +3 -2
  202. package/lib/esm/components/Groups/ToggleGroupVisibility.js.map +1 -1
  203. package/lib/esm/components/Groups/hooks/useVisualization.js +2 -1
  204. package/lib/esm/components/Groups/hooks/useVisualization.js.map +1 -1
  205. package/lib/esm/components/Mappings/Editing/MappingAction.d.ts +2 -2
  206. package/lib/esm/components/Mappings/Editing/MappingAction.js +9 -8
  207. package/lib/esm/components/Mappings/Editing/MappingAction.js.map +1 -1
  208. package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js +17 -6
  209. package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
  210. package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js +12 -11
  211. package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
  212. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +2 -1
  213. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
  214. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +2 -1
  215. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
  216. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +2 -1
  217. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
  218. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +2 -1
  219. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
  220. package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.d.ts +2 -2
  221. package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js +20 -19
  222. package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
  223. package/lib/esm/components/Mappings/Import/MappingImportWizardModal.d.ts +2 -2
  224. package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js +19 -18
  225. package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
  226. package/lib/esm/components/Mappings/Import/SelectIModel.d.ts +2 -2
  227. package/lib/esm/components/Mappings/Import/SelectIModel.js +9 -8
  228. package/lib/esm/components/Mappings/Import/SelectIModel.js.map +1 -1
  229. package/lib/esm/components/Mappings/Import/SelectITwin.d.ts +2 -2
  230. package/lib/esm/components/Mappings/Import/SelectITwin.js +14 -13
  231. package/lib/esm/components/Mappings/Import/SelectITwin.js.map +1 -1
  232. package/lib/esm/components/Mappings/Import/SelectMappings.d.ts +2 -2
  233. package/lib/esm/components/Mappings/Import/SelectMappings.js +10 -9
  234. package/lib/esm/components/Mappings/Import/SelectMappings.js.map +1 -1
  235. package/lib/esm/components/Mappings/MappingViewActionGroup.js +5 -4
  236. package/lib/esm/components/Mappings/MappingViewActionGroup.js.map +1 -1
  237. package/lib/esm/components/Mappings/Mappings.d.ts +2 -2
  238. package/lib/esm/components/Mappings/Mappings.js.map +1 -1
  239. package/lib/esm/components/Mappings/MappingsView.d.ts +2 -2
  240. package/lib/esm/components/Mappings/MappingsView.js +15 -14
  241. package/lib/esm/components/Mappings/MappingsView.js.map +1 -1
  242. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js +4 -3
  243. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
  244. package/lib/esm/components/Mappings/hooks/useMappingsOperations.js +2 -1
  245. package/lib/esm/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
  246. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +3 -2
  247. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
  248. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +2 -1
  249. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
  250. package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +3 -2
  251. package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
  252. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js +4 -3
  253. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
  254. package/lib/esm/components/Properties/GroupColorToggle.js +3 -2
  255. package/lib/esm/components/Properties/GroupColorToggle.js.map +1 -1
  256. package/lib/esm/components/Properties/GroupInformationPanel.js +3 -2
  257. package/lib/esm/components/Properties/GroupInformationPanel.js.map +1 -1
  258. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.d.ts +1 -1
  259. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js +26 -25
  260. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
  261. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js +5 -4
  262. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
  263. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +12 -11
  264. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
  265. package/lib/esm/components/Properties/GroupProperties/SaveModal.js +5 -4
  266. package/lib/esm/components/Properties/GroupProperties/SaveModal.js.map +1 -1
  267. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js +2 -1
  268. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
  269. package/lib/esm/components/Properties/PropertyMenuWithVisualization.js +2 -1
  270. package/lib/esm/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
  271. package/lib/esm/components/Properties/PropertyTable.js +2 -1
  272. package/lib/esm/components/Properties/PropertyTable.js.map +1 -1
  273. package/lib/esm/components/Properties/PropertyTableToolbar.js +3 -5
  274. package/lib/esm/components/Properties/PropertyTableToolbar.js.map +1 -1
  275. package/lib/esm/components/Properties/hooks/useValidator.d.ts +2 -2
  276. package/lib/esm/components/Properties/hooks/useValidator.js +9 -8
  277. package/lib/esm/components/Properties/hooks/useValidator.js.map +1 -1
  278. package/lib/esm/components/SharedComponents/ActionPanel.js +3 -2
  279. package/lib/esm/components/SharedComponents/ActionPanel.js.map +1 -1
  280. package/lib/esm/components/SharedComponents/DeleteModal.js +5 -4
  281. package/lib/esm/components/SharedComponents/DeleteModal.js.map +1 -1
  282. package/lib/esm/components/SharedComponents/LoadingOverlay.js +3 -2
  283. package/lib/esm/components/SharedComponents/LoadingOverlay.js.map +1 -1
  284. package/lib/esm/components/customUI/DefaultGroupingUI.d.ts +1 -1
  285. package/lib/esm/components/customUI/DefaultGroupingUI.js +5 -4
  286. package/lib/esm/components/customUI/DefaultGroupingUI.js.map +1 -1
  287. package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js +3 -2
  288. package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
  289. package/lib/esm/components/customUI/ManualGroupingCustomUI.js +5 -4
  290. package/lib/esm/components/customUI/ManualGroupingCustomUI.js.map +1 -1
  291. package/lib/esm/components/customUI/SearchGroupingCustomUI.js +5 -4
  292. package/lib/esm/components/customUI/SearchGroupingCustomUI.js.map +1 -1
  293. package/lib/esm/grouping-mapping-widget.d.ts +3 -0
  294. package/lib/esm/grouping-mapping-widget.js +2 -0
  295. package/lib/esm/grouping-mapping-widget.js.map +1 -1
  296. package/lib/esm/test/GroupingMappingCustomUI.test.js +5 -5
  297. package/lib/esm/test/GroupingMappingCustomUI.test.js.map +1 -1
  298. package/lib/esm/test/setup.d.ts +2 -0
  299. package/lib/esm/test/setup.js +8 -0
  300. package/lib/esm/test/setup.js.map +1 -0
  301. package/lib/public/locales/en/GroupingMappingWidget.json +220 -0
  302. package/package.json +3 -3
@@ -4,6 +4,7 @@ exports.useVisualization = void 0;
4
4
  const itwinui_react_1 = require("@itwin/itwinui-react");
5
5
  const presentation_frontend_1 = require("@itwin/presentation-frontend");
6
6
  const react_1 = require("react");
7
+ const GroupingMappingWidget_1 = require("../../../GroupingMappingWidget");
7
8
  const GroupHilitedElementsContext_1 = require("../../context/GroupHilitedElementsContext");
8
9
  const groupsHelpers_1 = require("../groupsHelpers");
9
10
  const viewerUtils_1 = require("../../../common/viewerUtils");
@@ -48,7 +49,7 @@ const useVisualization = (shouldVisualize, iModelConnection, query, queryGenerat
48
49
  await (0, viewerUtils_1.zoomToElements)(resolvedHiliteIds);
49
50
  }
50
51
  catch {
51
- itwinui_react_1.toaster.negative("Sorry, we have failed to generate a valid query.");
52
+ itwinui_react_1.toaster.negative(GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.invalidQuery"));
52
53
  }
53
54
  finally {
54
55
  setIsRendering(false);
@@ -1 +1 @@
1
- {"version":3,"file":"useVisualization.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useVisualization.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport type { ISelectionProvider, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { visualizeGroupColors } from \"../groupsHelpers\";\nimport {\n clearEmphasizedElements,\n clearOverriddenElements,\n transparentOverriddenElements,\n visualizeElementsByQuery,\n zoomToElements,\n} from \"../../../common/viewerUtils\";\n\nexport const useVisualization = (shouldVisualize: boolean, iModelConnection: IModelConnection, query: string, queryGenerationType: string) => {\n const [isRendering, setIsRendering] = useState<boolean>(false);\n const {\n showGroupColor,\n hiddenGroupsIds,\n overlappedElementsMetadata: { overlappedElementGroupPairs },\n setNumberOfVisualizedGroups,\n } = useGroupHilitedElementsContext();\n const [simpleSelectionQuery, setSimpleSelectionQuery] = useState<string>(\"\");\n\n const resetView = useCallback(async () => {\n if (!shouldVisualize) return;\n if (showGroupColor) {\n await visualizeGroupColors(hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups);\n } else {\n clearOverriddenElements();\n }\n clearEmphasizedElements();\n }, [hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups, shouldVisualize, showGroupColor]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const removeListener = Presentation.selection.selectionChange.addListener(async (evt: SelectionChangeEventArgs, selectionProvider: ISelectionProvider) => {\n if (queryGenerationType === \"Selection\") {\n const selection = selectionProvider.getSelection(evt.imodel, evt.level);\n const query = selection.instanceKeys.size > 0 ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}` : \"\";\n setSimpleSelectionQuery(query);\n }\n });\n return removeListener;\n }, [iModelConnection, queryGenerationType, shouldVisualize]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const reemphasize = async () => {\n try {\n if (!query || query === \"\") {\n return;\n }\n setIsRendering(true);\n transparentOverriddenElements();\n const resolvedHiliteIds = await visualizeElementsByQuery(query, \"red\", iModelConnection);\n await zoomToElements(resolvedHiliteIds);\n } catch {\n toaster.negative(\"Sorry, we have failed to generate a valid query.\");\n } finally {\n setIsRendering(false);\n }\n };\n\n void reemphasize();\n }, [iModelConnection, query, shouldVisualize]);\n\n const clearPresentationSelection = useCallback(\n () => shouldVisualize && Presentation.selection.clearSelection(\"GroupingMappingWidget\", iModelConnection),\n [iModelConnection, shouldVisualize],\n );\n\n useEffect(() => {\n clearPresentationSelection();\n }, [clearPresentationSelection, iModelConnection]);\n\n return { isRendering, setIsRendering, simpleSelectionQuery, setSimpleSelectionQuery, clearPresentationSelection, resetView };\n};\n"]}
1
+ {"version":3,"file":"useVisualization.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useVisualization.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport type { ISelectionProvider, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { visualizeGroupColors } from \"../groupsHelpers\";\nimport {\n clearEmphasizedElements,\n clearOverriddenElements,\n transparentOverriddenElements,\n visualizeElementsByQuery,\n zoomToElements,\n} from \"../../../common/viewerUtils\";\n\nexport const useVisualization = (shouldVisualize: boolean, iModelConnection: IModelConnection, query: string, queryGenerationType: string) => {\n const [isRendering, setIsRendering] = useState<boolean>(false);\n const {\n showGroupColor,\n hiddenGroupsIds,\n overlappedElementsMetadata: { overlappedElementGroupPairs },\n setNumberOfVisualizedGroups,\n } = useGroupHilitedElementsContext();\n const [simpleSelectionQuery, setSimpleSelectionQuery] = useState<string>(\"\");\n\n const resetView = useCallback(async () => {\n if (!shouldVisualize) return;\n if (showGroupColor) {\n await visualizeGroupColors(hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups);\n } else {\n clearOverriddenElements();\n }\n clearEmphasizedElements();\n }, [hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups, shouldVisualize, showGroupColor]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const removeListener = Presentation.selection.selectionChange.addListener(async (evt: SelectionChangeEventArgs, selectionProvider: ISelectionProvider) => {\n if (queryGenerationType === \"Selection\") {\n const selection = selectionProvider.getSelection(evt.imodel, evt.level);\n const query = selection.instanceKeys.size > 0 ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}` : \"\";\n setSimpleSelectionQuery(query);\n }\n });\n return removeListener;\n }, [iModelConnection, queryGenerationType, shouldVisualize]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const reemphasize = async () => {\n try {\n if (!query || query === \"\") {\n return;\n }\n setIsRendering(true);\n transparentOverriddenElements();\n const resolvedHiliteIds = await visualizeElementsByQuery(query, \"red\", iModelConnection);\n await zoomToElements(resolvedHiliteIds);\n } catch {\n toaster.negative(GroupingMappingWidget.translate(\"errors.invalidQuery\"));\n } finally {\n setIsRendering(false);\n }\n };\n\n void reemphasize();\n }, [iModelConnection, query, shouldVisualize]);\n\n const clearPresentationSelection = useCallback(\n () => shouldVisualize && Presentation.selection.clearSelection(\"GroupingMappingWidget\", iModelConnection),\n [iModelConnection, shouldVisualize],\n );\n\n useEffect(() => {\n clearPresentationSelection();\n }, [clearPresentationSelection, iModelConnection]);\n\n return { isRendering, setIsRendering, simpleSelectionQuery, setSimpleSelectionQuery, clearPresentationSelection, resetView };\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import "./MappingAction.scss";
3
3
  import type { Mapping } from "@itwin/insights-client";
4
- declare const defaultDisplayStrings: {
4
+ declare const getDefaultDisplayStrings: () => {
5
5
  mappingDetails: string;
6
6
  };
7
7
  /**
@@ -12,7 +12,7 @@ export interface MappingActionProps {
12
12
  mapping?: Mapping;
13
13
  onSaveSuccess: () => void;
14
14
  onClickCancel?: () => void;
15
- displayStrings?: Partial<typeof defaultDisplayStrings>;
15
+ displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;
16
16
  }
17
17
  /**
18
18
  * Component to create or update a mapping.
@@ -33,6 +33,7 @@ exports.MappingAction = void 0;
33
33
  *--------------------------------------------------------------------------------------------*/
34
34
  const itwinui_react_1 = require("@itwin/itwinui-react");
35
35
  const react_1 = __importStar(require("react"));
36
+ const GroupingMappingWidget_1 = require("../../../GroupingMappingWidget");
36
37
  const ActionPanel_1 = __importDefault(require("../../SharedComponents/ActionPanel"));
37
38
  const useValidator_1 = __importStar(require("../../Properties/hooks/useValidator"));
38
39
  require("./MappingAction.scss");
@@ -40,9 +41,9 @@ const MappingClientContext_1 = require("../../context/MappingClientContext");
40
41
  const GroupingApiConfigContext_1 = require("../../context/GroupingApiConfigContext");
41
42
  const utils_1 = require("../../../common/utils");
42
43
  const react_query_1 = require("@tanstack/react-query");
43
- const defaultDisplayStrings = {
44
- mappingDetails: "Mapping Details",
45
- };
44
+ const getDefaultDisplayStrings = () => ({
45
+ mappingDetails: GroupingMappingWidget_1.GroupingMappingWidget.translate("mappings.mappingDetails"),
46
+ });
46
47
  /**
47
48
  * Component to create or update a mapping.
48
49
  * @public
@@ -57,7 +58,7 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
57
58
  });
58
59
  const [validator, showValidationMessage] = (0, useValidator_1.default)();
59
60
  const queryClient = (0, react_query_1.useQueryClient)();
60
- const displayStrings = react_1.default.useMemo(() => ({ ...defaultDisplayStrings, ...userDisplayStrings }), [userDisplayStrings]);
61
+ const displayStrings = react_1.default.useMemo(() => ({ ...getDefaultDisplayStrings(), ...userDisplayStrings }), [userDisplayStrings]);
61
62
  const { mutate: saveMutation, isLoading } = (0, react_query_1.useMutation)({
62
63
  mutationFn: async (newMapping) => {
63
64
  const accessToken = await getAccessToken();
@@ -83,8 +84,8 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
83
84
  return (react_1.default.createElement(react_1.default.Fragment, null,
84
85
  react_1.default.createElement("div", { className: "gmw-details-form-container" },
85
86
  react_1.default.createElement(itwinui_react_1.Fieldset, { legend: displayStrings.mappingDetails, className: "gmw-details-form" },
86
- react_1.default.createElement(itwinui_react_1.Text, { variant: "small", as: "small", className: "gmw-field-legend" }, "Asterisk * indicates mandatory fields."),
87
- react_1.default.createElement(itwinui_react_1.LabeledInput, { id: "name", name: "name", label: "Name", value: values.name, required: true, onChange: (event) => {
87
+ react_1.default.createElement(itwinui_react_1.Text, { variant: "small", as: "small", className: "gmw-field-legend" }, GroupingMappingWidget_1.GroupingMappingWidget.translate("common.mandatoryFields")),
88
+ react_1.default.createElement(itwinui_react_1.LabeledInput, { id: "name", name: "name", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("common.name"), value: values.name, required: true, onChange: (event) => {
88
89
  (0, utils_1.handleInputChange)(event, values, setValues);
89
90
  validator.showMessageFor("name");
90
91
  }, message: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS), status: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS) ? "negative" : undefined, onBlur: () => {
@@ -93,10 +94,10 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
93
94
  (0, utils_1.handleInputChange)(event, values, setValues);
94
95
  validator.showMessageFor("name");
95
96
  } }),
96
- react_1.default.createElement(itwinui_react_1.LabeledInput, { id: "description", name: "description", label: "Description", value: values.description, onChange: (event) => {
97
+ react_1.default.createElement(itwinui_react_1.LabeledInput, { id: "description", name: "description", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("common.description"), value: values.description, onChange: (event) => {
97
98
  (0, utils_1.handleInputChange)(event, values, setValues);
98
99
  } }),
99
- react_1.default.createElement(itwinui_react_1.ToggleSwitch, { id: "extractionEnabled", name: "extractionEnabled", label: "Extract data from iModel", labelPosition: "right", checked: values.extractionEnabled, onChange: (event) => {
100
+ react_1.default.createElement(itwinui_react_1.ToggleSwitch, { id: "extractionEnabled", name: "extractionEnabled", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("mappings.extractDataFromIModel"), labelPosition: "right", checked: values.extractionEnabled, onChange: (event) => {
100
101
  setValues({ ...values, extractionEnabled: event.currentTarget.checked });
101
102
  } }))),
102
103
  react_1.default.createElement(ActionPanel_1.default, { onSave: onSave, onCancel: onClickCancel, isSavingDisabled: !values.name, isLoading: isLoading })));
@@ -1 +1 @@
1
- {"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Editing/MappingAction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Text, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../../Properties/hooks/useValidator\";\nimport \"./MappingAction.scss\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { Mapping, MappingCreate } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { handleInputChange } from \"../../../common/utils\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nconst defaultDisplayStrings = {\n mappingDetails: \"Mapping Details\",\n};\n\n/**\n * Props for the {@link MappingAction} component.\n * @public\n */\nexport interface MappingActionProps {\n mapping?: Mapping;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n displayStrings?: Partial<typeof defaultDisplayStrings>;\n}\n\n/**\n * Component to create or update a mapping.\n * @public\n */\nexport const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }: MappingActionProps) => {\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n extractionEnabled: mapping?.extractionEnabled ?? true,\n });\n const [validator, showValidationMessage] = useValidator();\n const queryClient = useQueryClient();\n\n const displayStrings = React.useMemo(() => ({ ...defaultDisplayStrings, ...userDisplayStrings }), [userDisplayStrings]);\n\n const { mutate: saveMutation, isLoading } = useMutation({\n mutationFn: async (newMapping: MappingCreate) => {\n const accessToken = await getAccessToken();\n return mapping ? mappingClient.updateMapping(accessToken, mapping.id, newMapping) : mappingClient.createMapping(accessToken, newMapping);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: [\"mappings\"] });\n onSaveSuccess();\n },\n });\n\n const onSave = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n saveMutation({\n iModelId,\n mappingName: values.name,\n description: values.description,\n extractionEnabled: values.extractionEnabled,\n });\n };\n\n return (\n <>\n <div className=\"gmw-details-form-container\">\n <Fieldset legend={displayStrings.mappingDetails} className=\"gmw-details-form\">\n <Text variant=\"small\" as=\"small\" className=\"gmw-field-legend\">\n Asterisk * indicates mandatory fields.\n </Text>\n <LabeledInput\n id=\"name\"\n name=\"name\"\n label=\"Name\"\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={validator.message(\"name\", values.name, NAME_REQUIREMENTS) ? \"negative\" : undefined}\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id=\"description\"\n name=\"description\"\n label=\"Description\"\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n }}\n />\n <ToggleSwitch\n id=\"extractionEnabled\"\n name=\"extractionEnabled\"\n label=\"Extract data from iModel\"\n labelPosition=\"right\"\n checked={values.extractionEnabled}\n onChange={(event) => {\n setValues({ ...values, extractionEnabled: event.currentTarget.checked });\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel onSave={onSave} onCancel={onClickCancel} isSavingDisabled={!values.name} isLoading={isLoading} />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Editing/MappingAction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Text, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../../Properties/hooks/useValidator\";\nimport \"./MappingAction.scss\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { Mapping, MappingCreate } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { handleInputChange } from \"../../../common/utils\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nconst getDefaultDisplayStrings = () => ({\n mappingDetails: GroupingMappingWidget.translate(\"mappings.mappingDetails\"),\n});\n\n/**\n * Props for the {@link MappingAction} component.\n * @public\n */\nexport interface MappingActionProps {\n mapping?: Mapping;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;\n}\n\n/**\n * Component to create or update a mapping.\n * @public\n */\nexport const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }: MappingActionProps) => {\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n extractionEnabled: mapping?.extractionEnabled ?? true,\n });\n const [validator, showValidationMessage] = useValidator();\n const queryClient = useQueryClient();\n\n const displayStrings = React.useMemo(() => ({ ...getDefaultDisplayStrings(), ...userDisplayStrings }), [userDisplayStrings]);\n\n const { mutate: saveMutation, isLoading } = useMutation({\n mutationFn: async (newMapping: MappingCreate) => {\n const accessToken = await getAccessToken();\n return mapping ? mappingClient.updateMapping(accessToken, mapping.id, newMapping) : mappingClient.createMapping(accessToken, newMapping);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: [\"mappings\"] });\n onSaveSuccess();\n },\n });\n\n const onSave = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n saveMutation({\n iModelId,\n mappingName: values.name,\n description: values.description,\n extractionEnabled: values.extractionEnabled,\n });\n };\n\n return (\n <>\n <div className=\"gmw-details-form-container\">\n <Fieldset legend={displayStrings.mappingDetails} className=\"gmw-details-form\">\n <Text variant=\"small\" as=\"small\" className=\"gmw-field-legend\">\n {GroupingMappingWidget.translate(\"common.mandatoryFields\")}\n </Text>\n <LabeledInput\n id=\"name\"\n name=\"name\"\n label={GroupingMappingWidget.translate(\"common.name\")}\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={validator.message(\"name\", values.name, NAME_REQUIREMENTS) ? \"negative\" : undefined}\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id=\"description\"\n name=\"description\"\n label={GroupingMappingWidget.translate(\"common.description\")}\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n }}\n />\n <ToggleSwitch\n id=\"extractionEnabled\"\n name=\"extractionEnabled\"\n label={GroupingMappingWidget.translate(\"mappings.extractDataFromIModel\")}\n labelPosition=\"right\"\n checked={values.extractionEnabled}\n onChange={(event) => {\n setValues({ ...values, extractionEnabled: event.currentTarget.checked });\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel onSave={onSave} onCancel={onClickCancel} isSavingDisabled={!values.name} isLoading={isLoading} />\n </>\n );\n};\n"]}
@@ -26,20 +26,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ExtractionLogCustomFilter = void 0;
27
27
  const itwinui_react_1 = require("@itwin/itwinui-react");
28
28
  const react_1 = __importStar(require("react"));
29
+ const GroupingMappingWidget_1 = require("../../../GroupingMappingWidget");
29
30
  function ExtractionLogCustomFilter({ column, clearFilter, setFilter }) {
30
31
  const [value, setValue] = (0, react_1.useState)(column.filterValue);
31
32
  const translatedLabels = (0, react_1.useMemo)(() => ({
32
- filter: "Filter",
33
- clear: "Clear",
33
+ filter: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.filter"),
34
+ clear: GroupingMappingWidget_1.GroupingMappingWidget.translate("common.clear"),
34
35
  }), []);
35
36
  const filterOptionList = (0, react_1.useMemo)(() => {
36
- if (column.Header === "Category") {
37
- return ["GroupQuery", "NoMatchesForECProperties", "QueryTranslation", "QueryExecution"];
37
+ if (column.id === "category") {
38
+ return [
39
+ { value: "GroupQuery", label: "GroupQuery" },
40
+ { value: "NoMatchesForECProperties", label: "NoMatchesForECProperties" },
41
+ { value: "QueryTranslation", label: "QueryTranslation" },
42
+ { value: "QueryExecution", label: "QueryExecution" },
43
+ ];
38
44
  }
39
- return ["Info", "Warning", "Error", "Trace"];
45
+ return [
46
+ { value: "Info", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.info") },
47
+ { value: "Warning", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.warning") },
48
+ { value: "Error", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.error") },
49
+ { value: "Trace", label: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.trace") },
50
+ ];
40
51
  }, [column]);
41
52
  return (react_1.default.createElement(itwinui_react_1.BaseFilter, null,
42
- react_1.default.createElement(itwinui_react_1.InputGroup, { displayStyle: "default" }, filterOptionList.map((option, id) => (react_1.default.createElement(itwinui_react_1.Radio, { name: "filterOption", key: id, label: option, defaultChecked: option === value, onChange: () => setValue(option) })))),
53
+ react_1.default.createElement(itwinui_react_1.InputGroup, { displayStyle: "default" }, filterOptionList.map((option, id) => (react_1.default.createElement(itwinui_react_1.Radio, { name: "filterOption", key: id, label: option.label, defaultChecked: option.value === value, onChange: () => setValue(option.value) })))),
43
54
  react_1.default.createElement(itwinui_react_1.FilterButtonBar, { setFilter: () => setFilter(value), clearFilter: clearFilter, translatedLabels: translatedLabels })));
44
55
  }
45
56
  exports.ExtractionLogCustomFilter = ExtractionLogCustomFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractionLogCustomFilter.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionLogCustomFilter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAsF;AACtF,+CAAiD;AAEjD,SAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAA6C;IACrH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAqB,MAAM,CAAC,WAAiC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAC9B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;KACf,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;YAChC,OAAO,CAAC,YAAY,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;SACzF;QACD,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,8BAAC,0BAAU;QACT,8BAAC,0BAAU,IAAC,YAAY,EAAC,SAAS,IAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACpC,8BAAC,qBAAK,IAAC,IAAI,EAAC,cAAc,EAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAI,CAC1H,CAAC,CACS;QACb,8BAAC,+BAAe,IAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,GAAI,CACzG,CACd,CAAC;AACJ,CAAC;AAzBD,8DAyBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { TableFilterProps } from \"@itwin/itwinui-react\";\nimport { BaseFilter, FilterButtonBar, InputGroup, Radio } from \"@itwin/itwinui-react\";\nimport React, { useMemo, useState } from \"react\";\n\nexport function ExtractionLogCustomFilter({ column, clearFilter, setFilter }: TableFilterProps<Record<string, unknown>>): React.ReactElement {\n const [value, setValue] = useState<string | undefined>(column.filterValue as string | undefined);\n const translatedLabels = useMemo(\n () => ({\n filter: \"Filter\",\n clear: \"Clear\",\n }),\n [],\n );\n const filterOptionList = useMemo(() => {\n if (column.Header === \"Category\") {\n return [\"GroupQuery\", \"NoMatchesForECProperties\", \"QueryTranslation\", \"QueryExecution\"];\n }\n return [\"Info\", \"Warning\", \"Error\", \"Trace\"];\n }, [column]);\n return (\n <BaseFilter>\n <InputGroup displayStyle=\"default\">\n {filterOptionList.map((option, id) => (\n <Radio name=\"filterOption\" key={id} label={option} defaultChecked={option === value} onChange={() => setValue(option)} />\n ))}\n </InputGroup>\n <FilterButtonBar setFilter={() => setFilter(value)} clearFilter={clearFilter} translatedLabels={translatedLabels} />\n </BaseFilter>\n );\n}\n"]}
1
+ {"version":3,"file":"ExtractionLogCustomFilter.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionLogCustomFilter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAsF;AACtF,+CAAiD;AACjD,0EAAuE;AAEvE,SAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAA6C;IACrH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAqB,MAAM,CAAC,WAAiC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAC9B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,6CAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC;QAC5D,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,cAAc,CAAC;KACvD,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU,EAAE;YAC5B,OAAO;gBACL,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC5C,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,EAAE,0BAA0B,EAAE;gBACxE,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACxD,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE;aACrD,CAAC;SACH;QACD,OAAO;YACL,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;YAC5E,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE;YAClF,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;YAC9E,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;SAC/E,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,8BAAC,0BAAU;QACT,8BAAC,0BAAU,IAAC,YAAY,EAAC,SAAS,IAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACpC,8BAAC,qBAAK,IAAC,IAAI,EAAC,cAAc,EAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,CAC5I,CAAC,CACS;QACb,8BAAC,+BAAe,IAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,GAAI,CACzG,CACd,CAAC;AACJ,CAAC;AAnCD,8DAmCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { TableFilterProps } from \"@itwin/itwinui-react\";\nimport { BaseFilter, FilterButtonBar, InputGroup, Radio } from \"@itwin/itwinui-react\";\nimport React, { useMemo, useState } from \"react\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\n\nexport function ExtractionLogCustomFilter({ column, clearFilter, setFilter }: TableFilterProps<Record<string, unknown>>): React.ReactElement {\n const [value, setValue] = useState<string | undefined>(column.filterValue as string | undefined);\n const translatedLabels = useMemo(\n () => ({\n filter: GroupingMappingWidget.translate(\"extraction.filter\"),\n clear: GroupingMappingWidget.translate(\"common.clear\"),\n }),\n [],\n );\n const filterOptionList = useMemo(() => {\n if (column.id === \"category\") {\n return [\n { value: \"GroupQuery\", label: \"GroupQuery\" },\n { value: \"NoMatchesForECProperties\", label: \"NoMatchesForECProperties\" },\n { value: \"QueryTranslation\", label: \"QueryTranslation\" },\n { value: \"QueryExecution\", label: \"QueryExecution\" },\n ];\n }\n return [\n { value: \"Info\", label: GroupingMappingWidget.translate(\"extraction.info\") },\n { value: \"Warning\", label: GroupingMappingWidget.translate(\"extraction.warning\") },\n { value: \"Error\", label: GroupingMappingWidget.translate(\"extraction.error\") },\n { value: \"Trace\", label: GroupingMappingWidget.translate(\"extraction.trace\") },\n ];\n }, [column]);\n return (\n <BaseFilter>\n <InputGroup displayStyle=\"default\">\n {filterOptionList.map((option, id) => (\n <Radio name=\"filterOption\" key={id} label={option.label} defaultChecked={option.value === value} onChange={() => setValue(option.value)} />\n ))}\n </InputGroup>\n <FilterButtonBar setFilter={() => setFilter(value)} clearFilter={clearFilter} translatedLabels={translatedLabels} />\n </BaseFilter>\n );\n}\n"]}
@@ -41,6 +41,7 @@ const useMemoizedCollectionPick_1 = require("../../../common/hooks/useMemoizedCo
41
41
  const useFetchGroups_1 = require("../../Groups/hooks/useFetchGroups");
42
42
  const useFetchMappings_1 = require("../hooks/useFetchMappings");
43
43
  const GroupsClientContext_1 = require("../../context/GroupsClientContext");
44
+ const GroupingMappingWidget_1 = require("../../../GroupingMappingWidget");
44
45
  const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timestamp }) => {
45
46
  const [formattedExtractionMessage, setFormattedExtractionMessage] = (0, react_1.useState)(undefined);
46
47
  const groupingMappingApiConfig = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
@@ -88,10 +89,10 @@ const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timest
88
89
  const groupName = queryResult?.data?.groups?.find((group) => group.id === groupId)?.groupName;
89
90
  if (replacedMessage.includes("MappingId:")) {
90
91
  const mappingName = getMappingName(mappingId, mappings);
91
- replacedMessage = replacedMessage.replace(/MappingId: [\w-]+/, `Mapping: ${mappingName}`);
92
+ replacedMessage = replacedMessage.replace(/MappingId: [\w-]+/, GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.mappingLabel", { mappingName }));
92
93
  }
93
94
  if (replacedMessage.includes("GroupId:")) {
94
- replacedMessage = replacedMessage.replace(/GroupId: [\w-]+/, `Group: ${groupName ? groupName : "<Not Found>"}`);
95
+ replacedMessage = replacedMessage.replace(/GroupId: [\w-]+/, GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.groupLabel", { groupName: groupName ?? GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.notFound") }));
95
96
  }
96
97
  }
97
98
  return { ...extractionMessage, message: replacedMessage };
@@ -111,13 +112,13 @@ const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timest
111
112
  setFormattedTimestamp(newDateTime.toLocaleString(undefined, options));
112
113
  }, [timestamp]);
113
114
  const translatedLabels = (0, react_1.useMemo)(() => ({
114
- filter: "Filter",
115
- clear: "Clear",
115
+ filter: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.filter"),
116
+ clear: GroupingMappingWidget_1.GroupingMappingWidget.translate("common.clear"),
116
117
  }), []);
117
118
  const columns = (0, react_1.useMemo)(() => [
118
119
  {
119
120
  id: "category",
120
- Header: "Category",
121
+ Header: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.category"),
121
122
  accessor: "category",
122
123
  fieldType: "text",
123
124
  Filter: ExtractionLogCustomFilter_1.ExtractionLogCustomFilter,
@@ -125,7 +126,7 @@ const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timest
125
126
  },
126
127
  {
127
128
  id: "level",
128
- Header: "Level",
129
+ Header: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.level"),
129
130
  accessor: "level",
130
131
  cellRenderer: ({ cellElementProps, cellProps }) => {
131
132
  const level = cellProps.row.original.level;
@@ -136,7 +137,7 @@ const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timest
136
137
  },
137
138
  {
138
139
  id: "message",
139
- Header: "Message",
140
+ Header: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.message"),
140
141
  accessor: "message",
141
142
  width: "25vw",
142
143
  fieldType: "text",
@@ -144,15 +145,15 @@ const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timest
144
145
  },
145
146
  ], [translatedLabels]);
146
147
  const isLoading = pickedResult.some((query) => query.isLoading) || isMappingsLoading;
147
- return (react_1.default.createElement(itwinui_react_1.Modal, { className: "gmw-message-modal-container", title: "Extraction Logs", isOpen: isOpen, onClose: onClose, closeOnExternalClick: false },
148
+ return (react_1.default.createElement(itwinui_react_1.Modal, { className: "gmw-message-modal-container", title: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.extractionLogs"), isOpen: isOpen, onClose: onClose, closeOnExternalClick: false },
148
149
  react_1.default.createElement(itwinui_react_1.ModalContent, null,
149
150
  react_1.default.createElement("div", { className: "gmw-timestamp-icon" },
150
- react_1.default.createElement(itwinui_react_1.Icon, { title: "Extraction Timestamp", size: "medium" },
151
+ react_1.default.createElement(itwinui_react_1.Icon, { title: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.extractionTimestamp"), size: "medium" },
151
152
  react_1.default.createElement(itwinui_icons_react_1.SvgClock, null)),
152
153
  react_1.default.createElement(itwinui_react_1.Text, null, formattedTimestamp)),
153
- react_1.default.createElement(itwinui_react_1.Table, { columns: columns, data: formattedExtractionMessage ?? [], emptyTableContent: "", emptyFilteredTableContent: "No results match filters.", className: "gmw-extraction-message-table-container", isLoading: isLoading })),
154
+ react_1.default.createElement(itwinui_react_1.Table, { columns: columns, data: formattedExtractionMessage ?? [], emptyTableContent: "", emptyFilteredTableContent: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.noResults"), className: "gmw-extraction-message-table-container", isLoading: isLoading })),
154
155
  react_1.default.createElement(itwinui_react_1.ModalButtonBar, null,
155
- react_1.default.createElement(itwinui_react_1.Button, { onClick: onClose, styleType: "high-visibility" }, "Close"))));
156
+ react_1.default.createElement(itwinui_react_1.Button, { onClick: onClose, styleType: "high-visibility" }, GroupingMappingWidget_1.GroupingMappingWidget.translate("common.close")))));
156
157
  };
157
158
  exports.ExtractionMessageModal = ExtractionMessageModal;
158
159
  //# sourceMappingURL=ExtractionMessageModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractionMessageModal.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionMessageModal.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Button, DefaultCell, Icon, Modal, ModalButtonBar, ModalContent, Table, tableFilters, Text } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { CreateTypeFromInterface } from \"../../../common/utils\";\nimport \"./ExtractionMessageModal.scss\";\nimport { SvgClock } from \"@itwin/itwinui-icons-react\";\nimport type { CellRendererProps, Column } from \"react-table\";\nimport { StatusIcon } from \"../../SharedComponents/StatusIcon\";\nimport { ExtractionLogCustomFilter } from \"./ExtractionLogCustomFilter\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { GroupMinimal, Mapping } from \"@itwin/insights-client\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { useMemoizedCollectionPick } from \"../../../common/hooks/useMemoizedCollectionPick\";\nimport { fetchGroups } from \"../../Groups/hooks/useFetchGroups\";\nimport { useFetchMappings } from \"../hooks/useFetchMappings\";\nimport { useGroupsClient } from \"../../context/GroupsClientContext\";\n\nexport interface ExtractionMessageData {\n date: string;\n category: string;\n level: string;\n message: string;\n}\n\nexport interface ExtractionMessageModalProps {\n isOpen: boolean;\n onClose: () => void;\n extractionMessageData: ExtractionMessageData[];\n timestamp: string;\n}\n\nexport const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timestamp }: ExtractionMessageModalProps) => {\n const [formattedExtractionMessage, setFormattedExtractionMessage] = useState<ExtractionMessageData[] | undefined>(undefined);\n const groupingMappingApiConfig = useGroupingMappingApiConfig();\n const { iModelId, getAccessToken } = groupingMappingApiConfig;\n const mappingClient = useMappingClient();\n const groupsClient = useGroupsClient();\n const { data: mappings, isLoading: isMappingsLoading } = useFetchMappings(iModelId, getAccessToken, mappingClient);\n const [formattedTimestamp, setFormattedTimestamp] = useState<string>(\"\");\n\n const getMappingName = useCallback((mappingId: string, mappings: Mapping[]) => {\n return mappings.find((mapping) => mapping.id === mappingId)?.mappingName ?? \"\";\n }, []);\n\n const extractionInfo = useMemo(() => {\n const infoMap = new Map<string, { mappingId: string; groupId: string }>();\n\n extractionMessageData.forEach((message) => {\n const splittedMessage = message.message.split(\" \");\n const mappingId = splittedMessage[splittedMessage.indexOf(\"MappingId:\") + 1]?.match(/^([^,]+),$/)?.[1];\n const groupId = splittedMessage[splittedMessage.indexOf(\"GroupId:\") + 1]?.match(/^([^,]+).$/)?.[1];\n\n if (mappingId && groupId) {\n infoMap.set(message.message, { mappingId, groupId });\n }\n });\n\n return infoMap;\n }, [extractionMessageData]);\n\n // useQueries to fetch all group names\n const groupQueriesResults = useQueries({\n queries: Array.from(extractionInfo.values()).map(({ mappingId }) => ({\n queryKey: [\"mapping\", \"groups\", mappingId],\n queryFn: async () => {\n const groups = await fetchGroups(mappingId, groupingMappingApiConfig.getAccessToken, groupsClient);\n // Return both mappingId and groups in the result\n return { mappingId, groups };\n },\n })),\n });\n\n // Workaround to get data from useQueries with more stability\n const pickedResult = useMemoizedCollectionPick(groupQueriesResults, [\"data\", \"error\", \"isLoading\", \"isSuccess\"]);\n\n useEffect(() => {\n if (pickedResult.every((query) => query.isSuccess) && mappings) {\n const formattedMessages = extractionMessageData.map((extractionMessage) => {\n let replacedMessage: string = extractionMessage.message;\n\n const info = extractionInfo.get(extractionMessage.message);\n if (info) {\n const { mappingId, groupId } = info;\n\n const queryResult = pickedResult.find((result) => result.data?.mappingId === mappingId);\n const groupName = queryResult?.data?.groups?.find((group: GroupMinimal) => group.id === groupId)?.groupName;\n\n if (replacedMessage.includes(\"MappingId:\")) {\n const mappingName = getMappingName(mappingId, mappings);\n replacedMessage = replacedMessage.replace(/MappingId: [\\w-]+/, `Mapping: ${mappingName}`);\n }\n\n if (replacedMessage.includes(\"GroupId:\")) {\n replacedMessage = replacedMessage.replace(/GroupId: [\\w-]+/, `Group: ${groupName ? groupName : \"<Not Found>\"}`);\n }\n }\n\n return { ...extractionMessage, message: replacedMessage };\n });\n\n setFormattedExtractionMessage(formattedMessages);\n }\n }, [extractionMessageData, mappings, extractionInfo, getMappingName, pickedResult]);\n\n useEffect(() => {\n const newDateTime: Date = new Date(timestamp);\n const options: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n setFormattedTimestamp(newDateTime.toLocaleString(undefined, options));\n }, [timestamp]);\n\n const translatedLabels = useMemo(\n () => ({\n filter: \"Filter\",\n clear: \"Clear\",\n }),\n [],\n );\n\n const columns = useMemo(\n (): Column<CreateTypeFromInterface<ExtractionMessageData>>[] => [\n {\n id: \"category\",\n Header: \"Category\",\n accessor: \"category\",\n fieldType: \"text\",\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"level\",\n Header: \"Level\",\n accessor: \"level\",\n cellRenderer: ({ cellElementProps, cellProps }: CellRendererProps<CreateTypeFromInterface<ExtractionMessageData>>) => {\n const level = cellProps.row.original.level;\n return (\n <DefaultCell\n cellElementProps={cellElementProps}\n cellProps={cellProps}\n startIcon={\n level === \"Error\" ? (\n <StatusIcon status=\"error\" />\n ) : level === \"Warning\" ? (\n <StatusIcon status=\"warning\" />\n ) : level === \"Info\" ? (\n <StatusIcon status=\"informational\" />\n ) : (\n <StatusIcon status=\"trace\" />\n )\n }\n >\n {level}\n </DefaultCell>\n );\n },\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"message\",\n Header: \"Message\",\n accessor: \"message\",\n width: \"25vw\",\n fieldType: \"text\",\n Filter: tableFilters.TextFilter(translatedLabels),\n },\n ],\n [translatedLabels],\n );\n const isLoading = pickedResult.some((query) => query.isLoading) || isMappingsLoading;\n\n return (\n <Modal className=\"gmw-message-modal-container\" title=\"Extraction Logs\" isOpen={isOpen} onClose={onClose} closeOnExternalClick={false}>\n <ModalContent>\n <div className=\"gmw-timestamp-icon\">\n <Icon title=\"Extraction Timestamp\" size=\"medium\">\n <SvgClock />\n </Icon>\n <Text>{formattedTimestamp}</Text>\n </div>\n <Table<CreateTypeFromInterface<ExtractionMessageData>>\n columns={columns}\n data={formattedExtractionMessage ?? []}\n emptyTableContent={\"\"}\n emptyFilteredTableContent=\"No results match filters.\"\n className=\"gmw-extraction-message-table-container\"\n isLoading={isLoading}\n />\n </ModalContent>\n <ModalButtonBar>\n <Button onClick={onClose} styleType=\"high-visibility\">\n Close\n </Button>\n </ModalButtonBar>\n </Modal>\n );\n};\n"]}
1
+ {"version":3,"file":"ExtractionMessageModal.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionMessageModal.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Button, DefaultCell, Icon, Modal, ModalButtonBar, ModalContent, Table, tableFilters, Text } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { CreateTypeFromInterface } from \"../../../common/utils\";\nimport \"./ExtractionMessageModal.scss\";\nimport { SvgClock } from \"@itwin/itwinui-icons-react\";\nimport type { CellRendererProps, Column } from \"react-table\";\nimport { StatusIcon } from \"../../SharedComponents/StatusIcon\";\nimport { ExtractionLogCustomFilter } from \"./ExtractionLogCustomFilter\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { GroupMinimal, Mapping } from \"@itwin/insights-client\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { useMemoizedCollectionPick } from \"../../../common/hooks/useMemoizedCollectionPick\";\nimport { fetchGroups } from \"../../Groups/hooks/useFetchGroups\";\nimport { useFetchMappings } from \"../hooks/useFetchMappings\";\nimport { useGroupsClient } from \"../../context/GroupsClientContext\";\nimport { GroupingMappingWidget } from \"../../../GroupingMappingWidget\";\n\nexport interface ExtractionMessageData {\n date: string;\n category: string;\n level: string;\n message: string;\n}\n\nexport interface ExtractionMessageModalProps {\n isOpen: boolean;\n onClose: () => void;\n extractionMessageData: ExtractionMessageData[];\n timestamp: string;\n}\n\nexport const ExtractionMessageModal = ({ isOpen, onClose, extractionMessageData, timestamp }: ExtractionMessageModalProps) => {\n const [formattedExtractionMessage, setFormattedExtractionMessage] = useState<ExtractionMessageData[] | undefined>(undefined);\n const groupingMappingApiConfig = useGroupingMappingApiConfig();\n const { iModelId, getAccessToken } = groupingMappingApiConfig;\n const mappingClient = useMappingClient();\n const groupsClient = useGroupsClient();\n const { data: mappings, isLoading: isMappingsLoading } = useFetchMappings(iModelId, getAccessToken, mappingClient);\n const [formattedTimestamp, setFormattedTimestamp] = useState<string>(\"\");\n\n const getMappingName = useCallback((mappingId: string, mappings: Mapping[]) => {\n return mappings.find((mapping) => mapping.id === mappingId)?.mappingName ?? \"\";\n }, []);\n\n const extractionInfo = useMemo(() => {\n const infoMap = new Map<string, { mappingId: string; groupId: string }>();\n\n extractionMessageData.forEach((message) => {\n const splittedMessage = message.message.split(\" \");\n const mappingId = splittedMessage[splittedMessage.indexOf(\"MappingId:\") + 1]?.match(/^([^,]+),$/)?.[1];\n const groupId = splittedMessage[splittedMessage.indexOf(\"GroupId:\") + 1]?.match(/^([^,]+).$/)?.[1];\n\n if (mappingId && groupId) {\n infoMap.set(message.message, { mappingId, groupId });\n }\n });\n\n return infoMap;\n }, [extractionMessageData]);\n\n // useQueries to fetch all group names\n const groupQueriesResults = useQueries({\n queries: Array.from(extractionInfo.values()).map(({ mappingId }) => ({\n queryKey: [\"mapping\", \"groups\", mappingId],\n queryFn: async () => {\n const groups = await fetchGroups(mappingId, groupingMappingApiConfig.getAccessToken, groupsClient);\n // Return both mappingId and groups in the result\n return { mappingId, groups };\n },\n })),\n });\n\n // Workaround to get data from useQueries with more stability\n const pickedResult = useMemoizedCollectionPick(groupQueriesResults, [\"data\", \"error\", \"isLoading\", \"isSuccess\"]);\n\n useEffect(() => {\n if (pickedResult.every((query) => query.isSuccess) && mappings) {\n const formattedMessages = extractionMessageData.map((extractionMessage) => {\n let replacedMessage: string = extractionMessage.message;\n\n const info = extractionInfo.get(extractionMessage.message);\n if (info) {\n const { mappingId, groupId } = info;\n\n const queryResult = pickedResult.find((result) => result.data?.mappingId === mappingId);\n const groupName = queryResult?.data?.groups?.find((group: GroupMinimal) => group.id === groupId)?.groupName;\n\n if (replacedMessage.includes(\"MappingId:\")) {\n const mappingName = getMappingName(mappingId, mappings);\n replacedMessage = replacedMessage.replace(/MappingId: [\\w-]+/, GroupingMappingWidget.translate(\"extraction.mappingLabel\", { mappingName }));\n }\n\n if (replacedMessage.includes(\"GroupId:\")) {\n replacedMessage = replacedMessage.replace(/GroupId: [\\w-]+/, GroupingMappingWidget.translate(\"extraction.groupLabel\", { groupName: groupName ?? GroupingMappingWidget.translate(\"extraction.notFound\") }));\n }\n }\n\n return { ...extractionMessage, message: replacedMessage };\n });\n\n setFormattedExtractionMessage(formattedMessages);\n }\n }, [extractionMessageData, mappings, extractionInfo, getMappingName, pickedResult]);\n\n useEffect(() => {\n const newDateTime: Date = new Date(timestamp);\n const options: Intl.DateTimeFormatOptions = {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n setFormattedTimestamp(newDateTime.toLocaleString(undefined, options));\n }, [timestamp]);\n\n const translatedLabels = useMemo(\n () => ({\n filter: GroupingMappingWidget.translate(\"extraction.filter\"),\n clear: GroupingMappingWidget.translate(\"common.clear\"),\n }),\n [],\n );\n\n const columns = useMemo(\n (): Column<CreateTypeFromInterface<ExtractionMessageData>>[] => [\n {\n id: \"category\",\n Header: GroupingMappingWidget.translate(\"extraction.category\"),\n accessor: \"category\",\n fieldType: \"text\",\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"level\",\n Header: GroupingMappingWidget.translate(\"extraction.level\"),\n accessor: \"level\",\n cellRenderer: ({ cellElementProps, cellProps }: CellRendererProps<CreateTypeFromInterface<ExtractionMessageData>>) => {\n const level = cellProps.row.original.level;\n return (\n <DefaultCell\n cellElementProps={cellElementProps}\n cellProps={cellProps}\n startIcon={\n level === \"Error\" ? (\n <StatusIcon status=\"error\" />\n ) : level === \"Warning\" ? (\n <StatusIcon status=\"warning\" />\n ) : level === \"Info\" ? (\n <StatusIcon status=\"informational\" />\n ) : (\n <StatusIcon status=\"trace\" />\n )\n }\n >\n {level}\n </DefaultCell>\n );\n },\n Filter: ExtractionLogCustomFilter,\n filter: \"equals\",\n },\n {\n id: \"message\",\n Header: GroupingMappingWidget.translate(\"extraction.message\"),\n accessor: \"message\",\n width: \"25vw\",\n fieldType: \"text\",\n Filter: tableFilters.TextFilter(translatedLabels),\n },\n ],\n [translatedLabels],\n );\n const isLoading = pickedResult.some((query) => query.isLoading) || isMappingsLoading;\n\n return (\n <Modal className=\"gmw-message-modal-container\" title={GroupingMappingWidget.translate(\"extraction.extractionLogs\")} isOpen={isOpen} onClose={onClose} closeOnExternalClick={false}>\n <ModalContent>\n <div className=\"gmw-timestamp-icon\">\n <Icon title={GroupingMappingWidget.translate(\"extraction.extractionTimestamp\")} size=\"medium\">\n <SvgClock />\n </Icon>\n <Text>{formattedTimestamp}</Text>\n </div>\n <Table<CreateTypeFromInterface<ExtractionMessageData>>\n columns={columns}\n data={formattedExtractionMessage ?? []}\n emptyTableContent={\"\"}\n emptyFilteredTableContent={GroupingMappingWidget.translate(\"extraction.noResults\")}\n className=\"gmw-extraction-message-table-container\"\n isLoading={isLoading}\n />\n </ModalContent>\n <ModalButtonBar>\n <Button onClick={onClose} styleType=\"high-visibility\">\n {GroupingMappingWidget.translate(\"common.close\")}\n </Button>\n </ModalButtonBar>\n </Modal>\n );\n};\n"]}
@@ -10,7 +10,8 @@ exports.QueuedExtractionState = void 0;
10
10
  *--------------------------------------------------------------------------------------------*/
11
11
  const react_1 = __importDefault(require("react"));
12
12
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
13
- const QueuedExtractionState = () => (react_1.default.createElement("div", { title: "Queued", className: "gmw-extraction-status" },
13
+ const GroupingMappingWidget_1 = require("../../../../GroupingMappingWidget");
14
+ const QueuedExtractionState = () => (react_1.default.createElement("div", { title: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.queued"), className: "gmw-extraction-status" },
14
15
  react_1.default.createElement("div", { className: "gmw-status-icon" },
15
16
  react_1.default.createElement(itwinui_icons_react_1.SvgStatusPending, null))));
16
17
  exports.QueuedExtractionState = QueuedExtractionState;
@@ -1 +1 @@
1
- {"version":3,"file":"QueuedExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,oEAA8D;AAEvD,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CACzC,uCAAK,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,uBAAuB;IACnD,uCAAK,SAAS,EAAC,iBAAiB;QAC9B,8BAAC,sCAAgB,OAAG,CAChB,CACF,CACP,CAAC;AANW,QAAA,qBAAqB,yBAMhC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusPending } from \"@itwin/itwinui-icons-react\";\n\nexport const QueuedExtractionState = () => (\n <div title=\"Queued\" className=\"gmw-extraction-status\">\n <div className=\"gmw-status-icon\">\n <SvgStatusPending />\n </div>\n </div>\n);\n"]}
1
+ {"version":3,"file":"QueuedExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,oEAA8D;AAC9D,6EAA0E;AAEnE,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CACzC,uCAAK,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAC,uBAAuB;IACjG,uCAAK,SAAS,EAAC,iBAAiB;QAC9B,8BAAC,sCAAgB,OAAG,CAChB,CACF,CACP,CAAC;AANW,QAAA,qBAAqB,yBAMhC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusPending } from \"@itwin/itwinui-icons-react\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\nexport const QueuedExtractionState = () => (\n <div title={GroupingMappingWidget.translate(\"extraction.queued\")} className=\"gmw-extraction-status\">\n <div className=\"gmw-status-icon\">\n <SvgStatusPending />\n </div>\n </div>\n);\n"]}
@@ -10,7 +10,8 @@ exports.RunningExtractionState = void 0;
10
10
  *--------------------------------------------------------------------------------------------*/
11
11
  const react_1 = __importDefault(require("react"));
12
12
  const itwinui_react_1 = require("@itwin/itwinui-react");
13
- const RunningExtractionState = () => (react_1.default.createElement("div", { title: "Running", className: "gmw-extraction-status-running" },
13
+ const GroupingMappingWidget_1 = require("../../../../GroupingMappingWidget");
14
+ const RunningExtractionState = () => (react_1.default.createElement("div", { title: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.running"), className: "gmw-extraction-status-running" },
14
15
  react_1.default.createElement(itwinui_react_1.ProgressRadial, { size: "x-small", indeterminate: true })));
15
16
  exports.RunningExtractionState = RunningExtractionState;
16
17
  //# sourceMappingURL=RunningExtractionState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunningExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,wDAAsD;AAE/C,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,CAC1C,uCAAK,KAAK,EAAC,SAAS,EAAC,SAAS,EAAC,+BAA+B;IAC5D,8BAAC,8BAAc,IAAC,IAAI,EAAC,SAAS,EAAC,aAAa,SAAG,CAC3C,CACP,CAAC;AAJW,QAAA,sBAAsB,0BAIjC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { ProgressRadial } from \"@itwin/itwinui-react\";\n\nexport const RunningExtractionState = () => (\n <div title=\"Running\" className=\"gmw-extraction-status-running\">\n <ProgressRadial size=\"x-small\" indeterminate />\n </div>\n);\n"]}
1
+ {"version":3,"file":"RunningExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,wDAAsD;AACtD,6EAA0E;AAEnE,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,CAC1C,uCAAK,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAC,+BAA+B;IAC1G,8BAAC,8BAAc,IAAC,IAAI,EAAC,SAAS,EAAC,aAAa,SAAG,CAC3C,CACP,CAAC;AAJW,QAAA,sBAAsB,0BAIjC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { ProgressRadial } from \"@itwin/itwinui-react\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\nexport const RunningExtractionState = () => (\n <div title={GroupingMappingWidget.translate(\"extraction.running\")} className=\"gmw-extraction-status-running\">\n <ProgressRadial size=\"x-small\" indeterminate />\n </div>\n);\n"]}
@@ -10,7 +10,8 @@ exports.StartingExtractionState = void 0;
10
10
  *--------------------------------------------------------------------------------------------*/
11
11
  const react_1 = __importDefault(require("react"));
12
12
  const itwinui_icons_color_react_1 = require("@itwin/itwinui-icons-color-react");
13
- const StartingExtractionState = () => (react_1.default.createElement("div", { title: "Starting", className: "gmw-extraction-status" },
13
+ const GroupingMappingWidget_1 = require("../../../../GroupingMappingWidget");
14
+ const StartingExtractionState = () => (react_1.default.createElement("div", { title: GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.starting"), className: "gmw-extraction-status" },
14
15
  react_1.default.createElement("div", { className: "gmw-status-icon" },
15
16
  react_1.default.createElement(itwinui_icons_color_react_1.SvgStatusPendingHollow, null))));
16
17
  exports.StartingExtractionState = StartingExtractionState;
@@ -1 +1 @@
1
- {"version":3,"file":"StartingExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,gFAA0E;AAEnE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAC3C,uCAAK,KAAK,EAAC,UAAU,EAAC,SAAS,EAAC,uBAAuB;IACrD,uCAAK,SAAS,EAAC,iBAAiB;QAC9B,8BAAC,kDAAsB,OAAG,CACtB,CACF,CACP,CAAC;AANW,QAAA,uBAAuB,2BAMlC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusPendingHollow } from \"@itwin/itwinui-icons-color-react\";\n\nexport const StartingExtractionState = () => (\n <div title=\"Starting\" className=\"gmw-extraction-status\">\n <div className=\"gmw-status-icon\">\n <SvgStatusPendingHollow />\n </div>\n </div>\n);\n"]}
1
+ {"version":3,"file":"StartingExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,gFAA0E;AAC1E,6EAA0E;AAEnE,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAC3C,uCAAK,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,SAAS,EAAC,uBAAuB;IACnG,uCAAK,SAAS,EAAC,iBAAiB;QAC9B,8BAAC,kDAAsB,OAAG,CACtB,CACF,CACP,CAAC;AANW,QAAA,uBAAuB,2BAMlC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusPendingHollow } from \"@itwin/itwinui-icons-color-react\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\nexport const StartingExtractionState = () => (\n <div title={GroupingMappingWidget.translate(\"extraction.starting\")} className=\"gmw-extraction-status\">\n <div className=\"gmw-status-icon\">\n <SvgStatusPendingHollow />\n </div>\n </div>\n);\n"]}
@@ -11,7 +11,8 @@ exports.TerminalExtractionState = void 0;
11
11
  const react_1 = __importDefault(require("react"));
12
12
  const itwinui_icons_color_react_1 = require("@itwin/itwinui-icons-color-react");
13
13
  const Constants_1 = require("../../../Constants");
14
- const TerminalExtractionState = ({ status, animation, onAnimationEnd }) => (react_1.default.createElement("div", { title: status, className: "gmw-extraction-status" },
14
+ const GroupingMappingWidget_1 = require("../../../../GroupingMappingWidget");
15
+ const TerminalExtractionState = ({ status, animation, onAnimationEnd }) => (react_1.default.createElement("div", { title: status === "Succeeded" ? GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.succeeded") : GroupingMappingWidget_1.GroupingMappingWidget.translate("extraction.failed"), className: "gmw-extraction-status" },
15
16
  react_1.default.createElement("div", { className: `gmw-status-icon`, style: {
16
17
  animationName: animation ? "gmw-fade-out" : "",
17
18
  animationDelay: Constants_1.ANIMATION_DELAY,
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,gFAAoF;AACpF,kDAAyE;AAQlE,MAAM,uBAAuB,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAwB,EAAE,EAAE,CAAC,CACtG,uCAAK,KAAK,EAAE,MAAM,EAAE,SAAS,EAAC,uBAAuB;IACnD,uCACE,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE;YACL,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YAC9C,cAAc,EAAE,2BAAe;YAC/B,iBAAiB,EAAE,8BAAkB;SACtC,EACD,cAAc,EAAE,cAAc,IAE7B,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,8BAAC,4CAAgB,OAAG,CAAC,CAAC,CAAC,8BAAC,0CAAc,OAAG,CAC/D,CACF,CACP,CAAC;AAdW,QAAA,uBAAuB,2BAclC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusError, SvgStatusSuccess } from \"@itwin/itwinui-icons-color-react\";\nimport { ANIMATION_DELAY, ANIMATION_DURATION } from \"../../../Constants\";\n\ninterface ExtractionStateProps {\n status: string;\n animation: boolean;\n onAnimationEnd: () => void;\n}\n\nexport const TerminalExtractionState = ({ status, animation, onAnimationEnd }: ExtractionStateProps) => (\n <div title={status} className=\"gmw-extraction-status\">\n <div\n className={`gmw-status-icon`}\n style={{\n animationName: animation ? \"gmw-fade-out\" : \"\",\n animationDelay: ANIMATION_DELAY,\n animationDuration: ANIMATION_DURATION,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n {status === \"Succeeded\" ? <SvgStatusSuccess /> : <SvgStatusError />}\n </div>\n </div>\n);\n"]}
1
+ {"version":3,"file":"TerminalExtractionState.js","sourceRoot":"","sources":["../../../../../../src/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,kDAA0B;AAC1B,gFAAoF;AACpF,kDAAyE;AACzE,6EAA0E;AAQnE,MAAM,uBAAuB,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAwB,EAAE,EAAE,CAAC,CACtG,uCAAK,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,6CAAqB,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,6CAAqB,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAC,uBAAuB;IACpL,uCACE,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE;YACL,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YAC9C,cAAc,EAAE,2BAAe;YAC/B,iBAAiB,EAAE,8BAAkB;SACtC,EACD,cAAc,EAAE,cAAc,IAE7B,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,8BAAC,4CAAgB,OAAG,CAAC,CAAC,CAAC,8BAAC,0CAAc,OAAG,CAC/D,CACF,CACP,CAAC;AAdW,QAAA,uBAAuB,2BAclC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { SvgStatusError, SvgStatusSuccess } from \"@itwin/itwinui-icons-color-react\";\nimport { ANIMATION_DELAY, ANIMATION_DURATION } from \"../../../Constants\";\nimport { GroupingMappingWidget } from \"../../../../GroupingMappingWidget\";\n\ninterface ExtractionStateProps {\n status: string;\n animation: boolean;\n onAnimationEnd: () => void;\n}\n\nexport const TerminalExtractionState = ({ status, animation, onAnimationEnd }: ExtractionStateProps) => (\n <div title={status === \"Succeeded\" ? GroupingMappingWidget.translate(\"extraction.succeeded\") : GroupingMappingWidget.translate(\"extraction.failed\")} className=\"gmw-extraction-status\">\n <div\n className={`gmw-status-icon`}\n style={{\n animationName: animation ? \"gmw-fade-out\" : \"\",\n animationDelay: ANIMATION_DELAY,\n animationDuration: ANIMATION_DURATION,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n {status === \"Succeeded\" ? <SvgStatusSuccess /> : <SvgStatusError />}\n </div>\n </div>\n);\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { IMappingTyped } from "../Mappings";
3
3
  import "./ConfirmMappingsImport.scss";
4
- declare const defaultDisplayStrings: {
4
+ declare const getDefaultDisplayStrings: () => {
5
5
  mappings: string;
6
6
  };
7
7
  interface ConfirmMappingImportProps {
@@ -12,7 +12,7 @@ interface ConfirmMappingImportProps {
12
12
  backFn: () => void;
13
13
  onCancel: () => void;
14
14
  onFinish: () => void;
15
- displayStrings?: Partial<typeof defaultDisplayStrings>;
15
+ displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;
16
16
  }
17
17
  declare const ConfirmMappingImport: ({ selectedMappings, importing, setImporting, setSelectedMappings, backFn, onCancel, onFinish, displayStrings: userDisplayStrings, }: ConfirmMappingImportProps) => JSX.Element;
18
18
  export default ConfirmMappingImport;