@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
@@ -0,0 +1,28 @@
1
+ import type { Localization, TranslationOptions } from "@itwin/core-common";
2
+ /** @public */
3
+ export interface GroupingMappingWidgetConfig {
4
+ localization?: Localization;
5
+ /** Override specific translation keys at runtime. Keys correspond to those in GroupingMappingWidget.json. */
6
+ localizationOverrides?: Map<string, string>;
7
+ }
8
+ /**
9
+ * Entry point for static initialization required by various components used in the package.
10
+ * @public
11
+ */
12
+ export declare class GroupingMappingWidget {
13
+ #private;
14
+ /**
15
+ * Called to initialize the Grouping & Mapping Widget localization.
16
+ * @param config - Optional configuration with custom localization service and overrides.
17
+ */
18
+ static initialize(config?: GroupingMappingWidgetConfig): Promise<void>;
19
+ /** Unregisters the GroupingMappingWidget internationalization service namespace */
20
+ static terminate(): void;
21
+ /** The internationalization service created by the IModelApp. */
22
+ static get i18n(): Localization;
23
+ /** The internationalization service namespace. */
24
+ static get i18nNamespace(): string;
25
+ /** Calls i18n.getLocalizedString with the "GroupingMappingWidget" namespace. Do NOT include the namespace in the key. */
26
+ static translate(key: string | string[], options?: TranslationOptions): string;
27
+ }
28
+ //# sourceMappingURL=GroupingMappingWidget.d.ts.map
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _a, _GroupingMappingWidget_i18n, _GroupingMappingWidget_initialized, _GroupingMappingWidget_localizationOverrides;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.GroupingMappingWidget = void 0;
16
+ /*---------------------------------------------------------------------------------------------
17
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
18
+ * See LICENSE.md in the project root for license terms and full copyright notice.
19
+ *--------------------------------------------------------------------------------------------*/
20
+ const core_bentley_1 = require("@itwin/core-bentley");
21
+ const core_frontend_1 = require("@itwin/core-frontend");
22
+ /**
23
+ * Entry point for static initialization required by various components used in the package.
24
+ * @public
25
+ */
26
+ class GroupingMappingWidget {
27
+ /**
28
+ * Called to initialize the Grouping & Mapping Widget localization.
29
+ * @param config - Optional configuration with custom localization service and overrides.
30
+ */
31
+ static async initialize(config) {
32
+ if (__classPrivateFieldGet(this, _a, "f", _GroupingMappingWidget_initialized)) {
33
+ return;
34
+ }
35
+ __classPrivateFieldSet(GroupingMappingWidget, _a, true, "f", _GroupingMappingWidget_initialized);
36
+ __classPrivateFieldSet(GroupingMappingWidget, _a, config?.localization ?? core_frontend_1.IModelApp.localization, "f", _GroupingMappingWidget_i18n);
37
+ __classPrivateFieldSet(GroupingMappingWidget, _a, config?.localizationOverrides, "f", _GroupingMappingWidget_localizationOverrides);
38
+ return __classPrivateFieldGet(GroupingMappingWidget, _a, "f", _GroupingMappingWidget_i18n).registerNamespace(GroupingMappingWidget.i18nNamespace);
39
+ }
40
+ /** Unregisters the GroupingMappingWidget internationalization service namespace */
41
+ static terminate() {
42
+ if (__classPrivateFieldGet(GroupingMappingWidget, _a, "f", _GroupingMappingWidget_i18n)) {
43
+ __classPrivateFieldGet(GroupingMappingWidget, _a, "f", _GroupingMappingWidget_i18n).unregisterNamespace(GroupingMappingWidget.i18nNamespace);
44
+ __classPrivateFieldSet(GroupingMappingWidget, _a, undefined, "f", _GroupingMappingWidget_i18n);
45
+ }
46
+ __classPrivateFieldSet(GroupingMappingWidget, _a, false, "f", _GroupingMappingWidget_initialized);
47
+ }
48
+ /** The internationalization service created by the IModelApp. */
49
+ static get i18n() {
50
+ if (!__classPrivateFieldGet(GroupingMappingWidget, _a, "f", _GroupingMappingWidget_i18n)) {
51
+ throw new core_bentley_1.BentleyError(core_bentley_1.BentleyStatus.ERROR, "GroupingMappingWidget not initialized");
52
+ }
53
+ return __classPrivateFieldGet(GroupingMappingWidget, _a, "f", _GroupingMappingWidget_i18n);
54
+ }
55
+ /** The internationalization service namespace. */
56
+ static get i18nNamespace() {
57
+ return "GroupingMappingWidget";
58
+ }
59
+ /** Calls i18n.getLocalizedString with the "GroupingMappingWidget" namespace. Do NOT include the namespace in the key. */
60
+ static translate(key, options) {
61
+ const keyStr = Array.isArray(key) ? key[0] : key;
62
+ return (__classPrivateFieldGet(GroupingMappingWidget, _a, "f", _GroupingMappingWidget_localizationOverrides)?.get(keyStr) ??
63
+ GroupingMappingWidget.i18n.getLocalizedString(`${GroupingMappingWidget.i18nNamespace}:${key}`, options));
64
+ }
65
+ }
66
+ exports.GroupingMappingWidget = GroupingMappingWidget;
67
+ _a = GroupingMappingWidget;
68
+ _GroupingMappingWidget_i18n = { value: void 0 };
69
+ _GroupingMappingWidget_initialized = { value: void 0 };
70
+ _GroupingMappingWidget_localizationOverrides = { value: void 0 };
71
+ //# sourceMappingURL=GroupingMappingWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupingMappingWidget.js","sourceRoot":"","sources":["../../src/GroupingMappingWidget.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;gGAGgG;AAChG,sDAAkE;AAClE,wDAAiD;AAWjD;;;GAGG;AACH,MAAa,qBAAqB;IAKhC;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAoC;QACjE,IAAI,uBAAA,IAAI,8CAAa,EAAE;YACrB,OAAO;SACR;QAED,uBAAA,qBAAqB,MAAgB,IAAI,0CAAA,CAAC;QAC1C,uBAAA,qBAAqB,MAAS,MAAM,EAAE,YAAY,IAAI,yBAAS,CAAC,YAAY,mCAAA,CAAC;QAC7E,uBAAA,qBAAqB,MAA0B,MAAM,EAAE,qBAAqB,oDAAA,CAAC;QAC7E,OAAO,uBAAA,qBAAqB,uCAAM,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAC5F,CAAC;IAED,mFAAmF;IAC5E,MAAM,CAAC,SAAS;QACrB,IAAI,uBAAA,qBAAqB,uCAAM,EAAE;YAC/B,uBAAA,qBAAqB,uCAAM,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YACrF,uBAAA,qBAAqB,MAAS,SAAS,mCAAA,CAAC;SACzC;QAED,uBAAA,qBAAqB,MAAgB,KAAK,0CAAA,CAAC;IAC7C,CAAC;IAED,iEAAiE;IAC1D,MAAM,KAAK,IAAI;QACpB,IAAI,CAAC,uBAAA,qBAAqB,uCAAM,EAAE;YAChC,MAAM,IAAI,2BAAY,CAAC,4BAAa,CAAC,KAAK,EAAE,uCAAuC,CAAC,CAAC;SACtF;QACD,OAAO,uBAAA,qBAAqB,uCAAM,CAAC;IACrC,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,aAAa;QAC7B,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,yHAAyH;IAClH,MAAM,CAAC,SAAS,CAAC,GAAsB,EAAE,OAA4B;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACjD,OAAO,CACL,uBAAA,qBAAqB,wDAAuB,EAAE,GAAG,CAAC,MAAM,CAAC;YACzD,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAC3C,GAAG,qBAAqB,CAAC,aAAa,IAAI,GAAG,EAAE,EAC/C,OAAO,CACR,CACF,CAAC;IACJ,CAAC;CACF;AAtDD,sDAsDC;;AArDC,+CAA4B,CAAA;AAC5B,sDAA8B,CAAA;AAC9B,gEAAoD,CAAA","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 { BentleyError, BentleyStatus } from \"@itwin/core-bentley\";\nimport { IModelApp } from \"@itwin/core-frontend\";\n\nimport type { Localization, TranslationOptions } from \"@itwin/core-common\";\n\n/** @public */\nexport interface GroupingMappingWidgetConfig {\n localization?: Localization;\n /** Override specific translation keys at runtime. Keys correspond to those in GroupingMappingWidget.json. */\n localizationOverrides?: Map<string, string>;\n}\n\n/**\n * Entry point for static initialization required by various components used in the package.\n * @public\n */\nexport class GroupingMappingWidget {\n static #i18n?: Localization;\n static #initialized?: boolean;\n static #localizationOverrides?: Map<string, string>;\n\n /**\n * Called to initialize the Grouping & Mapping Widget localization.\n * @param config - Optional configuration with custom localization service and overrides.\n */\n public static async initialize(config?: GroupingMappingWidgetConfig): Promise<void> {\n if (this.#initialized) {\n return;\n }\n\n GroupingMappingWidget.#initialized = true;\n GroupingMappingWidget.#i18n = config?.localization ?? IModelApp.localization;\n GroupingMappingWidget.#localizationOverrides = config?.localizationOverrides;\n return GroupingMappingWidget.#i18n.registerNamespace(GroupingMappingWidget.i18nNamespace);\n }\n\n /** Unregisters the GroupingMappingWidget internationalization service namespace */\n public static terminate() {\n if (GroupingMappingWidget.#i18n) {\n GroupingMappingWidget.#i18n.unregisterNamespace(GroupingMappingWidget.i18nNamespace);\n GroupingMappingWidget.#i18n = undefined;\n }\n\n GroupingMappingWidget.#initialized = false;\n }\n\n /** The internationalization service created by the IModelApp. */\n public static get i18n(): Localization {\n if (!GroupingMappingWidget.#i18n) {\n throw new BentleyError(BentleyStatus.ERROR, \"GroupingMappingWidget not initialized\");\n }\n return GroupingMappingWidget.#i18n;\n }\n\n /** The internationalization service namespace. */\n public static get i18nNamespace(): string {\n return \"GroupingMappingWidget\";\n }\n\n /** Calls i18n.getLocalizedString with the \"GroupingMappingWidget\" namespace. Do NOT include the namespace in the key. */\n public static translate(key: string | string[], options?: TranslationOptions): string {\n const keyStr = Array.isArray(key) ? key[0] : key;\n return (\n GroupingMappingWidget.#localizationOverrides?.get(keyStr) ??\n GroupingMappingWidget.i18n.getLocalizedString(\n `${GroupingMappingWidget.i18nNamespace}:${key}`,\n options\n )\n );\n }\n}\n"]}
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.RouteStep = void 0;
27
27
  const react_1 = __importStar(require("react"));
28
+ const GroupingMappingWidget_1 = require("../GroupingMappingWidget");
28
29
  const GroupingMappingContext_1 = require("../components/GroupingMappingContext");
29
30
  require("./GroupingMapping.scss");
30
31
  const appui_react_1 = require("@itwin/appui-react");
@@ -46,7 +47,7 @@ var RouteStep;
46
47
  RouteStep[RouteStep["CustomCalculationPropertyAction"] = 8] = "CustomCalculationPropertyAction";
47
48
  })(RouteStep = exports.RouteStep || (exports.RouteStep = {}));
48
49
  const GroupingMapping = (props) => {
49
- const [routingHistory, setRoutingHistory] = (0, react_1.useState)([{ step: RouteStep.Mappings, title: "Mapping", groupingRouteFields: {} }]);
50
+ const [routingHistory, setRoutingHistory] = (0, react_1.useState)([{ step: RouteStep.Mappings, title: GroupingMappingWidget_1.GroupingMappingWidget.translate("mappings.mappings"), groupingRouteFields: {} }]);
50
51
  const currentRoute = routingHistory[routingHistory.length - 1];
51
52
  const activeIModelConnection = (0, appui_react_1.useActiveIModelConnection)();
52
53
  const iModelConnection = props.iModelConnection ?? activeIModelConnection;
@@ -63,7 +64,7 @@ const GroupingMapping = (props) => {
63
64
  const injectedCustomUI = (0, react_1.useMemo)(() => [
64
65
  {
65
66
  name: "Properties",
66
- displayLabel: "Properties",
67
+ displayLabel: GroupingMappingWidget_1.GroupingMappingWidget.translate("customUI.properties"),
67
68
  type: GroupingMappingCustomUI_1.GroupingMappingCustomUIType.Context,
68
69
  icon: react_1.default.createElement(itwinui_icons_react_1.SvgList, null),
69
70
  onClick: (group) => navigateTo((prev) => ({
@@ -73,7 +74,7 @@ const GroupingMapping = (props) => {
73
74
  })),
74
75
  },
75
76
  // No group UI's provided means the widget provides its own
76
- ...(props.customUIs ?? DefaultGroupingUI_1.defaultGroupingUI),
77
+ ...(props.customUIs ?? (0, DefaultGroupingUI_1.getDefaultGroupingUI)()),
77
78
  ], [props.customUIs, navigateTo]);
78
79
  return (react_1.default.createElement(GroupingMappingContext_1.GroupingMappingContext, { iModelId: iModelId, changeSetId: changeSetId, ...props, customUIs: injectedCustomUI },
79
80
  react_1.default.createElement("div", { className: "gmw-group-mapping-container" },
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMapping.js","sourceRoot":"","sources":["../../../src/WidgetShell/GroupingMapping.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 type { GroupMinimal, Mapping, Property } from \"@itwin/insights-client\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport type { GroupingMappingContextProps } from \"../components/GroupingMappingContext\";\nimport { GroupingMappingContext } from \"../components/GroupingMappingContext\";\nimport \"./GroupingMapping.scss\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport type { ContextCustomUI, GroupingMappingCustomUI } from \"../components/customUI/GroupingMappingCustomUI\";\nimport { GroupingMappingCustomUIType } from \"../components/customUI/GroupingMappingCustomUI\";\nimport { SvgList } from \"@itwin/itwinui-icons-react\";\nimport { GroupingMappingContent } from \"./GroupingMappingContent\";\nimport { GroupingMappingHeader } from \"./GroupingMappingHeader\";\nimport { defaultGroupingUI } from \"../components/customUI/DefaultGroupingUI\";\n\nexport type GroupingMappingProps = Omit<GroupingMappingContextProps, \"iModelId\" | \"changesetId\"> & {\n hideRefreshIcon?: boolean;\n groupsAction?: JSX.Element;\n};\n\nexport enum RouteStep {\n Mappings,\n MappingsAction,\n Groups,\n GroupAction,\n GroupContextCustomUI,\n Properties,\n PropertyAction,\n CalculatedPropertyAction,\n CustomCalculationPropertyAction,\n}\n\nexport interface Route {\n step: RouteStep;\n title: string;\n groupingRouteFields: GroupingRouteFields;\n}\n\nexport interface GroupingRouteFields {\n mapping?: Mapping;\n group?: GroupMinimal;\n property?: Property;\n calculatedProperty?: Property;\n customCalculation?: Property;\n // Optional prop but cannot be declared undefined.\n groupContextCustomUI?: Exclude<ContextCustomUI[\"uiComponent\"], undefined>;\n queryGenerationType?: string;\n}\n\nconst GroupingMapping = (props: GroupingMappingProps) => {\n const [routingHistory, setRoutingHistory] = useState<Route[]>([{ step: RouteStep.Mappings, title: \"Mapping\", groupingRouteFields: {} }]);\n const currentRoute = routingHistory[routingHistory.length - 1];\n const activeIModelConnection = useActiveIModelConnection();\n const iModelConnection = props.iModelConnection ?? activeIModelConnection;\n const iModelId = iModelConnection?.iModelId ?? \"\";\n const changeSetId = iModelConnection?.changeset.id ?? \"\";\n const navigateTo = useCallback((toRoute: (prev: Route | undefined) => Route) => {\n setRoutingHistory((r) => [...r, toRoute(r[r.length - 1])]);\n }, []);\n\n const goBack = useCallback(() => {\n const updatedRouting = [...routingHistory];\n updatedRouting.pop();\n setRoutingHistory(updatedRouting);\n }, [routingHistory]);\n\n const injectedCustomUI = useMemo<GroupingMappingCustomUI[]>(\n () => [\n {\n name: \"Properties\",\n displayLabel: \"Properties\",\n type: GroupingMappingCustomUIType.Context,\n icon: <SvgList />,\n onClick: (group) =>\n navigateTo((prev) => ({\n step: RouteStep.Properties,\n title: group.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group },\n })),\n },\n // No group UI's provided means the widget provides its own\n ...(props.customUIs ?? defaultGroupingUI),\n ],\n [props.customUIs, navigateTo],\n );\n\n return (\n <GroupingMappingContext iModelId={iModelId} changeSetId={changeSetId} {...props} customUIs={injectedCustomUI}>\n <div className=\"gmw-group-mapping-container\">\n <GroupingMappingHeader goBack={goBack} currentRoute={currentRoute} />\n <GroupingMappingContent\n routingHistory={routingHistory}\n navigateTo={navigateTo}\n goBack={goBack}\n hideRefreshIcon={props.hideRefreshIcon}\n groupsAction={props.groupsAction}\n />\n </div>\n </GroupingMappingContext>\n );\n};\n\nexport default GroupingMapping;\n"]}
1
+ {"version":3,"file":"GroupingMapping.js","sourceRoot":"","sources":["../../../src/WidgetShell/GroupingMapping.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 type { GroupMinimal, Mapping, Property } from \"@itwin/insights-client\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport { GroupingMappingWidget } from \"../GroupingMappingWidget\";\nimport type { GroupingMappingContextProps } from \"../components/GroupingMappingContext\";\nimport { GroupingMappingContext } from \"../components/GroupingMappingContext\";\nimport \"./GroupingMapping.scss\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport type { ContextCustomUI, GroupingMappingCustomUI } from \"../components/customUI/GroupingMappingCustomUI\";\nimport { GroupingMappingCustomUIType } from \"../components/customUI/GroupingMappingCustomUI\";\nimport { SvgList } from \"@itwin/itwinui-icons-react\";\nimport { GroupingMappingContent } from \"./GroupingMappingContent\";\nimport { GroupingMappingHeader } from \"./GroupingMappingHeader\";\nimport { getDefaultGroupingUI } from \"../components/customUI/DefaultGroupingUI\";\n\nexport type GroupingMappingProps = Omit<GroupingMappingContextProps, \"iModelId\" | \"changesetId\"> & {\n hideRefreshIcon?: boolean;\n groupsAction?: JSX.Element;\n};\n\nexport enum RouteStep {\n Mappings,\n MappingsAction,\n Groups,\n GroupAction,\n GroupContextCustomUI,\n Properties,\n PropertyAction,\n CalculatedPropertyAction,\n CustomCalculationPropertyAction,\n}\n\nexport interface Route {\n step: RouteStep;\n title: string;\n groupingRouteFields: GroupingRouteFields;\n}\n\nexport interface GroupingRouteFields {\n mapping?: Mapping;\n group?: GroupMinimal;\n property?: Property;\n calculatedProperty?: Property;\n customCalculation?: Property;\n // Optional prop but cannot be declared undefined.\n groupContextCustomUI?: Exclude<ContextCustomUI[\"uiComponent\"], undefined>;\n queryGenerationType?: string;\n}\n\nconst GroupingMapping = (props: GroupingMappingProps) => {\n const [routingHistory, setRoutingHistory] = useState<Route[]>([{ step: RouteStep.Mappings, title: GroupingMappingWidget.translate(\"mappings.mappings\"), groupingRouteFields: {} }]);\n const currentRoute = routingHistory[routingHistory.length - 1];\n const activeIModelConnection = useActiveIModelConnection();\n const iModelConnection = props.iModelConnection ?? activeIModelConnection;\n const iModelId = iModelConnection?.iModelId ?? \"\";\n const changeSetId = iModelConnection?.changeset.id ?? \"\";\n const navigateTo = useCallback((toRoute: (prev: Route | undefined) => Route) => {\n setRoutingHistory((r) => [...r, toRoute(r[r.length - 1])]);\n }, []);\n\n const goBack = useCallback(() => {\n const updatedRouting = [...routingHistory];\n updatedRouting.pop();\n setRoutingHistory(updatedRouting);\n }, [routingHistory]);\n\n const injectedCustomUI = useMemo<GroupingMappingCustomUI[]>(\n () => [\n {\n name: \"Properties\",\n displayLabel: GroupingMappingWidget.translate(\"customUI.properties\"),\n type: GroupingMappingCustomUIType.Context,\n icon: <SvgList />,\n onClick: (group) =>\n navigateTo((prev) => ({\n step: RouteStep.Properties,\n title: group.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group },\n })),\n },\n // No group UI's provided means the widget provides its own\n ...(props.customUIs ?? getDefaultGroupingUI()),\n ],\n [props.customUIs, navigateTo],\n );\n\n return (\n <GroupingMappingContext iModelId={iModelId} changeSetId={changeSetId} {...props} customUIs={injectedCustomUI}>\n <div className=\"gmw-group-mapping-container\">\n <GroupingMappingHeader goBack={goBack} currentRoute={currentRoute} />\n <GroupingMappingContent\n routingHistory={routingHistory}\n navigateTo={navigateTo}\n goBack={goBack}\n hideRefreshIcon={props.hideRefreshIcon}\n groupsAction={props.groupsAction}\n />\n </div>\n </GroupingMappingContext>\n );\n};\n\nexport default GroupingMapping;\n"]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GroupingMappingProvider = void 0;
7
7
  const appui_react_1 = require("@itwin/appui-react");
8
8
  const react_1 = __importDefault(require("react"));
9
+ const GroupingMappingWidget_1 = require("../GroupingMappingWidget");
9
10
  const GroupingMapping_1 = __importDefault(require("./GroupingMapping"));
10
11
  /**
11
12
  * UI Provider for Grouping & Mapping Widget
@@ -21,7 +22,7 @@ class GroupingMappingProvider {
21
22
  if (location === appui_react_1.StagePanelLocation.Left && section === appui_react_1.StagePanelSection.Start && stageUsage === appui_react_1.StageUsage.General) {
22
23
  const GroupingMappingWidget = {
23
24
  id: "GroupingMappingWidget",
24
- label: "Grouping & Mapping",
25
+ label: GroupingMappingWidget_1.GroupingMappingWidget.translate("widget.label"),
25
26
  content: react_1.default.createElement(GroupingMapping_1.default, { ...this._props }),
26
27
  };
27
28
  widgets.push(GroupingMappingWidget);
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMappingWidget.js","sourceRoot":"","sources":["../../../src/WidgetShell/GroupingMappingWidget.tsx"],"names":[],"mappings":";;;;;;AAKA,oDAAuF;AACvF,kDAA0B;AAE1B,wEAAgD;AAEhD;;;GAGG;AACH,MAAa,uBAAuB;IAGlC,YAA6B,SAA+B,EAAE;QAAjC,WAAM,GAAN,MAAM,CAA2B;QAF9C,OAAE,GAAG,yBAAyB,CAAC;IAEkB,CAAC;IAE3D,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAA2B;QACnH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,KAAK,gCAAkB,CAAC,IAAI,IAAI,OAAO,KAAK,+BAAiB,CAAC,KAAK,IAAI,UAAU,KAAK,wBAAU,CAAC,OAAO,EAAE;YACpH,MAAM,qBAAqB,GAAW;gBACpC,EAAE,EAAE,uBAAuB;gBAC3B,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EAAE,8BAAC,yBAAe,OAAK,IAAI,CAAC,MAAM,GAAI;aAC9C,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACrC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAnBD,0DAmBC","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 { UiItemsProvider, Widget } from \"@itwin/appui-react\";\nimport { StagePanelLocation, StagePanelSection, StageUsage } from \"@itwin/appui-react\";\nimport React from \"react\";\nimport type { GroupingMappingProps } from \"./GroupingMapping\";\nimport GroupingMapping from \"./GroupingMapping\";\n\n/**\n * UI Provider for Grouping & Mapping Widget\n * @public\n */\nexport class GroupingMappingProvider implements UiItemsProvider {\n public readonly id = \"GroupingMappingProvider\";\n\n constructor(private readonly _props: GroupingMappingProps = {}) {}\n\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<Widget> {\n const widgets: Widget[] = [];\n if (location === StagePanelLocation.Left && section === StagePanelSection.Start && stageUsage === StageUsage.General) {\n const GroupingMappingWidget: Widget = {\n id: \"GroupingMappingWidget\",\n label: \"Grouping & Mapping\",\n content: <GroupingMapping {...this._props} />,\n };\n\n widgets.push(GroupingMappingWidget);\n }\n\n return widgets;\n }\n}\n"]}
1
+ {"version":3,"file":"GroupingMappingWidget.js","sourceRoot":"","sources":["../../../src/WidgetShell/GroupingMappingWidget.tsx"],"names":[],"mappings":";;;;;;AAKA,oDAAuF;AACvF,kDAA0B;AAC1B,oEAA6E;AAE7E,wEAAgD;AAEhD;;;GAGG;AACH,MAAa,uBAAuB;IAGlC,YAA6B,SAA+B,EAAE;QAAjC,WAAM,GAAN,MAAM,CAA2B;QAF9C,OAAE,GAAG,yBAAyB,CAAC;IAEkB,CAAC;IAE3D,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAA2B;QACnH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,KAAK,gCAAkB,CAAC,IAAI,IAAI,OAAO,KAAK,+BAAiB,CAAC,KAAK,IAAI,UAAU,KAAK,wBAAU,CAAC,OAAO,EAAE;YACpH,MAAM,qBAAqB,GAAW;gBACpC,EAAE,EAAE,uBAAuB;gBAC3B,KAAK,EAAE,6CAAQ,CAAC,SAAS,CAAC,cAAc,CAAC;gBACzC,OAAO,EAAE,8BAAC,yBAAe,OAAK,IAAI,CAAC,MAAM,GAAI;aAC9C,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACrC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAnBD,0DAmBC","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 { UiItemsProvider, Widget } from \"@itwin/appui-react\";\nimport { StagePanelLocation, StagePanelSection, StageUsage } from \"@itwin/appui-react\";\nimport React from \"react\";\nimport { GroupingMappingWidget as GMWidget } from \"../GroupingMappingWidget\";\nimport type { GroupingMappingProps } from \"./GroupingMapping\";\nimport GroupingMapping from \"./GroupingMapping\";\n\n/**\n * UI Provider for Grouping & Mapping Widget\n * @public\n */\nexport class GroupingMappingProvider implements UiItemsProvider {\n public readonly id = \"GroupingMappingProvider\";\n\n constructor(private readonly _props: GroupingMappingProps = {}) {}\n\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<Widget> {\n const widgets: Widget[] = [];\n if (location === StagePanelLocation.Left && section === StagePanelSection.Start && stageUsage === StageUsage.General) {\n const GroupingMappingWidget: Widget = {\n id: \"GroupingMappingWidget\",\n label: GMWidget.translate(\"widget.label\"),\n content: <GroupingMapping {...this._props} />,\n };\n\n widgets.push(GroupingMappingWidget);\n }\n\n return widgets;\n }\n}\n"]}
@@ -18,13 +18,14 @@ const MappingAction_1 = require("../../components/Mappings/Editing/MappingAction
18
18
  const PropertyMenuWithVisualization_1 = require("../../components/Properties/PropertyMenuWithVisualization");
19
19
  const GroupsVisualization_1 = require("../../components/Groups/GroupsVisualization");
20
20
  const GroupHilitedElementsContext_1 = require("../../components/context/GroupHilitedElementsContext");
21
+ const GroupingMappingWidget_1 = require("../../GroupingMappingWidget");
21
22
  const GroupingMappingRouter = ({ currentRoute, navigateTo, goBack, hideRefreshIcon, groupsAction, }) => {
22
23
  const { iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
23
24
  const { mapping, group, property, groupContextCustomUI, queryGenerationType } = currentRoute.groupingRouteFields;
24
25
  const { showGroupColor, groupColors } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
25
26
  switch (currentRoute.step) {
26
27
  case GroupingMapping_1.RouteStep.Mappings:
27
- return (react_1.default.createElement(Mappings_1.Mappings, { onClickAddMapping: () => navigateTo(() => ({ step: GroupingMapping_1.RouteStep.MappingsAction, title: "Add Mapping", groupingRouteFields: {} })), onClickMappingTitle: (mapping) => {
28
+ return (react_1.default.createElement(Mappings_1.Mappings, { onClickAddMapping: () => navigateTo(() => ({ step: GroupingMapping_1.RouteStep.MappingsAction, title: GroupingMappingWidget_1.GroupingMappingWidget.translate("mappings.addMapping"), groupingRouteFields: {} })), onClickMappingTitle: (mapping) => {
28
29
  navigateTo(() => ({
29
30
  step: GroupingMapping_1.RouteStep.Groups,
30
31
  groupingRouteFields: { mapping },
@@ -44,7 +45,7 @@ const GroupingMappingRouter = ({ currentRoute, navigateTo, goBack, hideRefreshIc
44
45
  return (react_1.default.createElement(GroupsVisualization_1.GroupsVisualization, { mapping: mapping, onClickAddGroup: (qType) => navigateTo((prev) => ({
45
46
  step: GroupingMapping_1.RouteStep.GroupAction,
46
47
  groupingRouteFields: { ...prev?.groupingRouteFields, queryGenerationType: qType },
47
- title: "Add Group",
48
+ title: GroupingMappingWidget_1.GroupingMappingWidget.translate("groups.addGroup"),
48
49
  })), onClickGroupTitle: (g) => navigateTo((prev) => ({
49
50
  step: GroupingMapping_1.RouteStep.Properties,
50
51
  title: g.groupName,
@@ -78,13 +79,13 @@ const GroupingMappingRouter = ({ currentRoute, navigateTo, goBack, hideRefreshIc
78
79
  return null;
79
80
  case GroupingMapping_1.RouteStep.Properties:
80
81
  if (mapping && group) {
81
- return (react_1.default.createElement(PropertyMenuWithVisualization_1.PropertyMenuWithVisualization, { mapping: mapping, group: group, color: showGroupColor ? groupColors.get(group.id) ?? "red" : "red", onClickAddGroupProperty: () => navigateTo((prev) => ({ step: GroupingMapping_1.RouteStep.PropertyAction, title: "Add Property", groupingRouteFields: { ...prev?.groupingRouteFields } })), onClickModifyGroupProperty: (gp) => navigateTo((prev) => ({
82
+ return (react_1.default.createElement(PropertyMenuWithVisualization_1.PropertyMenuWithVisualization, { mapping: mapping, group: group, color: showGroupColor ? groupColors.get(group.id) ?? "red" : "red", onClickAddGroupProperty: () => navigateTo((prev) => ({ step: GroupingMapping_1.RouteStep.PropertyAction, title: GroupingMappingWidget_1.GroupingMappingWidget.translate("properties.addPropertyTitle"), groupingRouteFields: { ...prev?.groupingRouteFields } })), onClickModifyGroupProperty: (gp) => navigateTo((prev) => ({
82
83
  step: GroupingMapping_1.RouteStep.PropertyAction,
83
84
  title: gp.propertyName,
84
85
  groupingRouteFields: { ...prev?.groupingRouteFields, property: gp },
85
86
  })), onClickAddCalculatedProperty: () => navigateTo((prev) => ({
86
87
  step: GroupingMapping_1.RouteStep.CalculatedPropertyAction,
87
- title: "Create Calculated Property",
88
+ title: GroupingMappingWidget_1.GroupingMappingWidget.translate("properties.createCalculatedProperty"),
88
89
  groupingRouteFields: { ...prev?.groupingRouteFields },
89
90
  })), onClickModifyCalculatedProperty: (cp) => navigateTo((prev) => ({
90
91
  step: GroupingMapping_1.RouteStep.CalculatedPropertyAction,
@@ -92,7 +93,7 @@ const GroupingMappingRouter = ({ currentRoute, navigateTo, goBack, hideRefreshIc
92
93
  groupingRouteFields: { ...prev?.groupingRouteFields, calculatedProperty: cp },
93
94
  })), onClickAddCustomCalculationProperty: () => navigateTo((prev) => ({
94
95
  step: GroupingMapping_1.RouteStep.CustomCalculationPropertyAction,
95
- title: "Create Custom Calculation",
96
+ title: GroupingMappingWidget_1.GroupingMappingWidget.translate("properties.createCustomCalculation"),
96
97
  groupingRouteFields: { ...prev?.groupingRouteFields },
97
98
  })), onClickModifyCustomCalculation: (cc) => navigateTo((prev) => ({
98
99
  step: GroupingMapping_1.RouteStep.CustomCalculationPropertyAction,
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMappingRouter.js","sourceRoot":"","sources":["../../../../src/WidgetShell/Router/GroupingMappingRouter.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 React from \"react\";\nimport { useGroupingMappingApiConfig } from \"../../components/context/GroupingApiConfigContext\";\nimport { GroupAction } from \"../../components/Groups/Editing/GroupAction\";\nimport type { Route } from \"../GroupingMapping\";\nimport { RouteStep } from \"../GroupingMapping\";\nimport { GroupPropertyAction } from \"../../components/Properties/GroupProperties/GroupPropertyAction\";\nimport { Mappings } from \"../../components/Mappings/Mappings\";\nimport { MappingAction } from \"../../components/Mappings/Editing/MappingAction\";\nimport { PropertyMenuWithVisualization } from \"../../components/Properties/PropertyMenuWithVisualization\";\nimport { GroupsVisualization } from \"../../components/Groups/GroupsVisualization\";\nimport { useGroupHilitedElementsContext } from \"../../components/context/GroupHilitedElementsContext\";\n\nexport const GroupingMappingRouter = ({\n currentRoute,\n navigateTo,\n goBack,\n hideRefreshIcon,\n groupsAction,\n}: {\n currentRoute: Route;\n navigateTo: (toRoute: (prev: Route | undefined) => Route) => void;\n goBack: () => void;\n hideRefreshIcon?: boolean;\n groupsAction?: JSX.Element;\n}) => {\n const { iModelId } = useGroupingMappingApiConfig();\n const { mapping, group, property, groupContextCustomUI, queryGenerationType } = currentRoute.groupingRouteFields;\n const { showGroupColor, groupColors } = useGroupHilitedElementsContext();\n\n switch (currentRoute.step) {\n case RouteStep.Mappings:\n return (\n <Mappings\n onClickAddMapping={() => navigateTo(() => ({ step: RouteStep.MappingsAction, title: \"Add Mapping\", groupingRouteFields: {} }))}\n onClickMappingTitle={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.Groups,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n onClickMappingModify={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.MappingsAction,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n hideRefreshIcon={hideRefreshIcon}\n />\n );\n case RouteStep.MappingsAction:\n return <MappingAction mapping={mapping} onClickCancel={goBack} onSaveSuccess={goBack} />;\n case RouteStep.Groups:\n if (mapping) {\n return (\n <GroupsVisualization\n mapping={mapping}\n onClickAddGroup={(qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n groupingRouteFields: { ...prev?.groupingRouteFields, queryGenerationType: qType },\n title: \"Add Group\",\n }))\n }\n onClickGroupTitle={(g) =>\n navigateTo((prev) => ({\n step: RouteStep.Properties,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g },\n }))\n }\n onClickGroupModify={(g, qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, queryGenerationType: qType },\n }))\n }\n onClickRenderContextCustomUI={(ccUI, g, displayLabel) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupContextCustomUI,\n title: displayLabel,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, groupContextCustomUI: ccUI },\n }))\n }\n hideRefreshIcon={hideRefreshIcon}\n groupsAction={groupsAction}\n />\n );\n }\n return null;\n case RouteStep.GroupAction:\n if (mapping) {\n if (queryGenerationType) {\n return (\n <GroupAction\n shouldVisualize\n mappingId={mapping.id}\n group={group}\n onClickCancel={goBack}\n onSaveSuccess={goBack}\n queryGenerationType={queryGenerationType}\n />\n );\n }\n }\n return null;\n case RouteStep.GroupContextCustomUI:\n if (mapping && group && groupContextCustomUI) {\n return React.createElement(groupContextCustomUI, {\n iModelId,\n mappingId: mapping.id,\n groupId: group.id,\n });\n }\n return null;\n case RouteStep.Properties:\n if (mapping && group) {\n return (\n <PropertyMenuWithVisualization\n mapping={mapping}\n group={group}\n color={showGroupColor ? groupColors.get(group.id) ?? \"red\" : \"red\"}\n onClickAddGroupProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.PropertyAction, title: \"Add Property\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyGroupProperty={(gp) =>\n navigateTo((prev) => ({\n step: RouteStep.PropertyAction,\n title: gp.propertyName,\n groupingRouteFields: { ...prev?.groupingRouteFields, property: gp },\n }))\n }\n onClickAddCalculatedProperty={() =>\n navigateTo((prev) => ({\n step: RouteStep.CalculatedPropertyAction,\n title: \"Create Calculated Property\",\n groupingRouteFields: { ...prev?.groupingRouteFields },\n }))\n }\n onClickModifyCalculatedProperty={(cp) =>\n navigateTo((prev) => ({\n step: RouteStep.CalculatedPropertyAction,\n title: cp.propertyName,\n groupingRouteFields: { ...prev?.groupingRouteFields, calculatedProperty: cp },\n }))\n }\n onClickAddCustomCalculationProperty={() =>\n navigateTo((prev) => ({\n step: RouteStep.CustomCalculationPropertyAction,\n title: \"Create Custom Calculation\",\n groupingRouteFields: { ...prev?.groupingRouteFields },\n }))\n }\n onClickModifyCustomCalculation={(cc) =>\n navigateTo((prev) => ({\n step: RouteStep.CustomCalculationPropertyAction,\n title: cc.propertyName,\n groupingRouteFields: { ...prev?.groupingRouteFields, customCalculation: cc },\n }))\n }\n hideRefreshIcon={hideRefreshIcon}\n />\n );\n }\n return null;\n case RouteStep.PropertyAction: {\n if (mapping && group) {\n return <GroupPropertyAction mappingId={mapping.id} group={group} groupProperty={property} onSaveSuccess={goBack} onClickCancel={goBack} />;\n }\n return null;\n }\n default:\n return null;\n }\n};\n"]}
1
+ {"version":3,"file":"GroupingMappingRouter.js","sourceRoot":"","sources":["../../../../src/WidgetShell/Router/GroupingMappingRouter.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 React from \"react\";\nimport { useGroupingMappingApiConfig } from \"../../components/context/GroupingApiConfigContext\";\nimport { GroupAction } from \"../../components/Groups/Editing/GroupAction\";\nimport type { Route } from \"../GroupingMapping\";\nimport { RouteStep } from \"../GroupingMapping\";\nimport { GroupPropertyAction } from \"../../components/Properties/GroupProperties/GroupPropertyAction\";\nimport { Mappings } from \"../../components/Mappings/Mappings\";\nimport { MappingAction } from \"../../components/Mappings/Editing/MappingAction\";\nimport { PropertyMenuWithVisualization } from \"../../components/Properties/PropertyMenuWithVisualization\";\nimport { GroupsVisualization } from \"../../components/Groups/GroupsVisualization\";\nimport { useGroupHilitedElementsContext } from \"../../components/context/GroupHilitedElementsContext\";\nimport { GroupingMappingWidget as GMWidget } from \"../../GroupingMappingWidget\";\n\nexport const GroupingMappingRouter = ({\n currentRoute,\n navigateTo,\n goBack,\n hideRefreshIcon,\n groupsAction,\n}: {\n currentRoute: Route;\n navigateTo: (toRoute: (prev: Route | undefined) => Route) => void;\n goBack: () => void;\n hideRefreshIcon?: boolean;\n groupsAction?: JSX.Element;\n}) => {\n const { iModelId } = useGroupingMappingApiConfig();\n const { mapping, group, property, groupContextCustomUI, queryGenerationType } = currentRoute.groupingRouteFields;\n const { showGroupColor, groupColors } = useGroupHilitedElementsContext();\n\n switch (currentRoute.step) {\n case RouteStep.Mappings:\n return (\n <Mappings\n onClickAddMapping={() => navigateTo(() => ({ step: RouteStep.MappingsAction, title: GMWidget.translate(\"mappings.addMapping\"), groupingRouteFields: {} }))}\n onClickMappingTitle={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.Groups,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n onClickMappingModify={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.MappingsAction,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n hideRefreshIcon={hideRefreshIcon}\n />\n );\n case RouteStep.MappingsAction:\n return <MappingAction mapping={mapping} onClickCancel={goBack} onSaveSuccess={goBack} />;\n case RouteStep.Groups:\n if (mapping) {\n return (\n <GroupsVisualization\n mapping={mapping}\n onClickAddGroup={(qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n groupingRouteFields: { ...prev?.groupingRouteFields, queryGenerationType: qType },\n title: GMWidget.translate(\"groups.addGroup\"),\n }))\n }\n onClickGroupTitle={(g) =>\n navigateTo((prev) => ({\n step: RouteStep.Properties,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g },\n }))\n }\n onClickGroupModify={(g, qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, queryGenerationType: qType },\n }))\n }\n onClickRenderContextCustomUI={(ccUI, g, displayLabel) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupContextCustomUI,\n title: displayLabel,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, groupContextCustomUI: ccUI },\n }))\n }\n hideRefreshIcon={hideRefreshIcon}\n groupsAction={groupsAction}\n />\n );\n }\n return null;\n case RouteStep.GroupAction:\n if (mapping) {\n if (queryGenerationType) {\n return (\n <GroupAction\n shouldVisualize\n mappingId={mapping.id}\n group={group}\n onClickCancel={goBack}\n onSaveSuccess={goBack}\n queryGenerationType={queryGenerationType}\n />\n );\n }\n }\n return null;\n case RouteStep.GroupContextCustomUI:\n if (mapping && group && groupContextCustomUI) {\n return React.createElement(groupContextCustomUI, {\n iModelId,\n mappingId: mapping.id,\n groupId: group.id,\n });\n }\n return null;\n case RouteStep.Properties:\n if (mapping && group) {\n return (\n <PropertyMenuWithVisualization\n mapping={mapping}\n group={group}\n color={showGroupColor ? groupColors.get(group.id) ?? \"red\" : \"red\"}\n onClickAddGroupProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.PropertyAction, title: GMWidget.translate(\"properties.addPropertyTitle\"), groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyGroupProperty={(gp) =>\n navigateTo((prev) => ({\n step: RouteStep.PropertyAction,\n title: gp.propertyName,\n groupingRouteFields: { ...prev?.groupingRouteFields, property: gp },\n }))\n }\n onClickAddCalculatedProperty={() =>\n navigateTo((prev) => ({\n step: RouteStep.CalculatedPropertyAction,\n title: GMWidget.translate(\"properties.createCalculatedProperty\"),\n groupingRouteFields: { ...prev?.groupingRouteFields },\n }))\n }\n onClickModifyCalculatedProperty={(cp) =>\n navigateTo((prev) => ({\n step: RouteStep.CalculatedPropertyAction,\n title: cp.propertyName,\n groupingRouteFields: { ...prev?.groupingRouteFields, calculatedProperty: cp },\n }))\n }\n onClickAddCustomCalculationProperty={() =>\n navigateTo((prev) => ({\n step: RouteStep.CustomCalculationPropertyAction,\n title: GMWidget.translate(\"properties.createCustomCalculation\"),\n groupingRouteFields: { ...prev?.groupingRouteFields },\n }))\n }\n onClickModifyCustomCalculation={(cc) =>\n navigateTo((prev) => ({\n step: RouteStep.CustomCalculationPropertyAction,\n title: cc.propertyName,\n groupingRouteFields: { ...prev?.groupingRouteFields, customCalculation: cc },\n }))\n }\n hideRefreshIcon={hideRefreshIcon}\n />\n );\n }\n return null;\n case RouteStep.PropertyAction: {\n if (mapping && group) {\n return <GroupPropertyAction mappingId={mapping.id} group={group} groupProperty={property} onSaveSuccess={goBack} onClickCancel={goBack} />;\n }\n return null;\n }\n default:\n return null;\n }\n};\n"]}
@@ -10,11 +10,12 @@ exports.WidgetHeader = void 0;
10
10
  *--------------------------------------------------------------------------------------------*/
11
11
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
12
12
  const itwinui_react_1 = require("@itwin/itwinui-react");
13
- require("./WidgetHeader.scss");
14
13
  const react_1 = __importDefault(require("react"));
14
+ const GroupingMappingWidget_1 = require("../../GroupingMappingWidget");
15
+ require("./WidgetHeader.scss");
15
16
  const WidgetHeader = ({ title, disabled = false, returnFn }) => {
16
17
  return (react_1.default.createElement("div", { className: "gmw-widget-header-container" },
17
- returnFn && (react_1.default.createElement(itwinui_react_1.Icon, { className: `${disabled ? "gmw-chevron-disabled" : "gmw-chevron"}`, size: "large", onClick: disabled ? undefined : returnFn, title: "Back" },
18
+ returnFn && (react_1.default.createElement(itwinui_react_1.Icon, { className: `${disabled ? "gmw-chevron-disabled" : "gmw-chevron"}`, size: "large", onClick: disabled ? undefined : returnFn, title: GroupingMappingWidget_1.GroupingMappingWidget.translate("common.back") },
18
19
  react_1.default.createElement(itwinui_icons_react_1.SvgChevronLeft, null))),
19
20
  react_1.default.createElement(itwinui_react_1.Text, { className: "gmw-title", variant: "title" }, title)));
20
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetHeader.js","sourceRoot":"","sources":["../../../../src/WidgetShell/WidgetHeader/WidgetHeader.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,oEAA4D;AAC5D,wDAAkD;AAClD,+BAA6B;AAC7B,kDAA0B;AAQnB,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACvF,OAAO,CACL,uCAAK,SAAS,EAAC,6BAA6B;QACzC,QAAQ,IAAI,CACX,8BAAC,oBAAI,IAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM;YAC1I,8BAAC,oCAAc,OAAG,CACb,CACR;QACD,8BAAC,oBAAI,IAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,IACxC,KAAK,CACD,CACH,CACP,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,YAAY,gBAavB","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 { SvgChevronLeft } from \"@itwin/itwinui-icons-react\";\nimport { Icon, Text } from \"@itwin/itwinui-react\";\nimport \"./WidgetHeader.scss\";\nimport React from \"react\";\n\nexport interface WidgetHeaderProps {\n title: string;\n disabled?: boolean;\n returnFn?: () => void;\n}\n\nexport const WidgetHeader = ({ title, disabled = false, returnFn }: WidgetHeaderProps) => {\n return (\n <div className=\"gmw-widget-header-container\">\n {returnFn && (\n <Icon className={`${disabled ? \"gmw-chevron-disabled\" : \"gmw-chevron\"}`} size=\"large\" onClick={disabled ? undefined : returnFn} title=\"Back\">\n <SvgChevronLeft />\n </Icon>\n )}\n <Text className=\"gmw-title\" variant=\"title\">\n {title}\n </Text>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"WidgetHeader.js","sourceRoot":"","sources":["../../../../src/WidgetShell/WidgetHeader/WidgetHeader.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,oEAA4D;AAC5D,wDAAkD;AAClD,kDAA0B;AAC1B,uEAAoE;AACpE,+BAA6B;AAQtB,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACvF,OAAO,CACL,uCAAK,SAAS,EAAC,6BAA6B;QACzC,QAAQ,IAAI,CACX,8BAAC,oBAAI,IAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,6CAAqB,CAAC,SAAS,CAAC,aAAa,CAAC;YACnL,8BAAC,oCAAc,OAAG,CACb,CACR;QACD,8BAAC,oBAAI,IAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAC,OAAO,IACxC,KAAK,CACD,CACH,CACP,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,YAAY,gBAavB","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 { SvgChevronLeft } from \"@itwin/itwinui-icons-react\";\nimport { Icon, Text } from \"@itwin/itwinui-react\";\nimport React from \"react\";\nimport { GroupingMappingWidget } from \"../../GroupingMappingWidget\";\nimport \"./WidgetHeader.scss\";\n\nexport interface WidgetHeaderProps {\n title: string;\n disabled?: boolean;\n returnFn?: () => void;\n}\n\nexport const WidgetHeader = ({ title, disabled = false, returnFn }: WidgetHeaderProps) => {\n return (\n <div className=\"gmw-widget-header-container\">\n {returnFn && (\n <Icon className={`${disabled ? \"gmw-chevron-disabled\" : \"gmw-chevron\"}`} size=\"large\" onClick={disabled ? undefined : returnFn} title={GroupingMappingWidget.translate(\"common.back\")}>\n <SvgChevronLeft />\n </Icon>\n )}\n <Text className=\"gmw-title\" variant=\"title\">\n {title}\n </Text>\n </div>\n );\n};\n"]}
@@ -8,6 +8,7 @@ exports.getLocalizedStringPresentation = exports.enableExperimentalFeatures = ex
8
8
  const core_common_1 = require("@itwin/core-common");
9
9
  const core_frontend_1 = require("@itwin/core-frontend");
10
10
  const itwinui_react_1 = require("@itwin/itwinui-react");
11
+ const GroupingMappingWidget_1 = require("../GroupingMappingWidget");
11
12
  function debounce(f, delay) {
12
13
  let timer;
13
14
  return (...args) => {
@@ -45,30 +46,30 @@ exports.fetchIdsFromQuery = fetchIdsFromQuery;
45
46
  const getErrorMessage = (errorStatus) => {
46
47
  switch (errorStatus) {
47
48
  case 401:
48
- return "You are unauthorized to do this operation.";
49
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.unauthorized");
49
50
  case 403:
50
- return "You don't have permission to access the requested resource.";
51
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.forbidden");
51
52
  case 404:
52
- return "The requested resource was not found.";
53
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.notFound");
53
54
  case 409:
54
- return "This property name is already being used.";
55
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.conflict");
55
56
  case 422:
56
- return "Unable to process the request.";
57
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.unprocessable");
57
58
  case 429:
58
- return "Too many requests.";
59
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.tooManyRequests");
59
60
  case 500:
60
- return "Internal server error.";
61
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.internalServerError");
61
62
  case 502:
62
- return "Bad gateway.";
63
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.badGateway");
63
64
  case 503:
64
- return "Service unavailable.";
65
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.serviceUnavailable");
65
66
  default:
66
- return "Something went wrong!";
67
+ return GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.generic");
67
68
  }
68
69
  };
69
70
  exports.getErrorMessage = getErrorMessage;
70
71
  const handleError = (errorStatus) => {
71
- const baseErrorMessage = "Error!";
72
+ const baseErrorMessage = GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.errorPrefix");
72
73
  const specificErrorMessage = (0, exports.getErrorMessage)(errorStatus);
73
74
  const fullErrorMessage = `${baseErrorMessage} ${specificErrorMessage}`;
74
75
  itwinui_react_1.toaster.negative(fullErrorMessage);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/common/utils.ts"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG,oDAAoD;AAEpD,wDAAiD;AACjD,wDAA+C;AAM/C,SAAgB,QAAQ,CAAqC,CAAI,EAAE,KAAa;IAC9E,IAAI,KAAyB,CAAC;IAC9B,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;QACxB,KAAK,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAND,4BAMC;AAEM,MAAM,iBAAiB,GAAG,KAAK,EAAE,KAAa,EAAE,gBAAkC,EAAE,EAAE;IAC3F,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE;QAC3D,SAAS,EAAE,4BAAc,CAAC,kBAAkB;KAC7C,CAAC,CAAC;IACH,OAAO,IAAI,EAAE;QACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,IAAI,EAAE;YACR,MAAM;SACP;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACpB;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YACpD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;SAC/B;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACtD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9B;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAtBW,QAAA,iBAAiB,qBAsB5B;AAEK,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAU,EAAE;IAC7D,QAAQ,WAAW,EAAE;QACnB,KAAK,GAAG;YACN,OAAO,4CAA4C,CAAC;QACtD,KAAK,GAAG;YACN,OAAO,6DAA6D,CAAC;QACvE,KAAK,GAAG;YACN,OAAO,uCAAuC,CAAC;QACjD,KAAK,GAAG;YACN,OAAO,2CAA2C,CAAC;QACrD,KAAK,GAAG;YACN,OAAO,gCAAgC,CAAC;QAC1C,KAAK,GAAG;YACN,OAAO,oBAAoB,CAAC;QAC9B,KAAK,GAAG;YACN,OAAO,wBAAwB,CAAC;QAClC,KAAK,GAAG;YACN,OAAO,cAAc,CAAC;QACxB,KAAK,GAAG;YACN,OAAO,sBAAsB,CAAC;QAChC;YACE,OAAO,uBAAuB,CAAC;KAClC;AACH,CAAC,CAAC;AAvBW,QAAA,eAAe,mBAuB1B;AAEK,MAAM,WAAW,GAAG,CAAC,WAAmB,EAAE,EAAE;IACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IAClC,MAAM,oBAAoB,GAAG,IAAA,uBAAe,EAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,GAAG,gBAAgB,IAAI,oBAAoB,EAAE,CAAC;IAEvE,uBAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACrC,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEK,MAAM,iBAAiB,GAAG,CAAI,CAAsC,EAAE,MAAS,EAAE,SAAiC,EAAE,EAAE;IAC3H,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;IAEjC,SAAS,CAAC;QACR,GAAG,MAAM;QACT,CAAC,IAAI,CAAC,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC,CAAC;AAPW,QAAA,iBAAiB,qBAO5B;AAEK,MAAM,0BAA0B,GAAG,KAAK,EAAE,gBAAkC,EAAE,EAAE;IACrF,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,2CAA2C,CAAC,CAAC;IAC/F,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC,CAAC;AAHW,QAAA,0BAA0B,8BAGrC;AAEK,MAAM,8BAA8B,GAAG,CAAC,KAAa,EAAU,EAAE;IACtE,8DAA8D;IAC9D,+CAA+C;IAC/C,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAChD,sDAAsD;QACtD,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE3D,OAAO,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;KACjE;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAXW,QAAA,8BAA8B,kCAWzC","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 { QueryRowFormat } from \"@itwin/core-common\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\n\nexport type CreateTypeFromInterface<Interface> = {\n [Property in keyof Interface]: Interface[Property];\n};\n\nexport function debounce<F extends (...args: any[]) => void>(f: F, delay: number) {\n let timer: number | undefined;\n return (...args: any[]) => {\n timer && window.clearTimeout(timer);\n timer = window.setTimeout(f, delay, ...args);\n };\n}\n\nexport const fetchIdsFromQuery = async (query: string, iModelConnection: IModelConnection) => {\n if (query === \"\") {\n return [];\n }\n const ids: string[] = [];\n const rowIterator = iModelConnection.query(query, undefined, {\n rowFormat: QueryRowFormat.UseJsPropertyNames,\n });\n while (true) {\n const { done, value } = await rowIterator.next();\n if (done) {\n break;\n }\n if (Object.keys(value).includes(\"id\")) {\n ids.push(value.id);\n } else if (Object.keys(value).includes(\"element.id\")) {\n ids.push(value[\"element.id\"]);\n } else if (Object.keys(value).includes(\"eCInstanceId\")) {\n ids.push(value.eCInstanceId);\n }\n }\n return ids;\n};\n\nexport const getErrorMessage = (errorStatus: number): string => {\n switch (errorStatus) {\n case 401:\n return \"You are unauthorized to do this operation.\";\n case 403:\n return \"You don't have permission to access the requested resource.\";\n case 404:\n return \"The requested resource was not found.\";\n case 409:\n return \"This property name is already being used.\";\n case 422:\n return \"Unable to process the request.\";\n case 429:\n return \"Too many requests.\";\n case 500:\n return \"Internal server error.\";\n case 502:\n return \"Bad gateway.\";\n case 503:\n return \"Service unavailable.\";\n default:\n return \"Something went wrong!\";\n }\n};\n\nexport const handleError = (errorStatus: number) => {\n const baseErrorMessage = \"Error!\";\n const specificErrorMessage = getErrorMessage(errorStatus);\n const fullErrorMessage = `${baseErrorMessage} ${specificErrorMessage}`;\n\n toaster.negative(fullErrorMessage);\n};\n\nexport const handleInputChange = <T>(e: React.ChangeEvent<HTMLInputElement>, values: T, setValues: (newValues: T) => void) => {\n const { name, value } = e.target;\n\n setValues({\n ...values,\n [name]: value,\n });\n};\n\nexport const enableExperimentalFeatures = async (iModelConnection: IModelConnection) => {\n const reader = iModelConnection.createQueryReader(\"PRAGMA experimental_features_enabled=true\");\n await reader.step();\n};\n\nexport const getLocalizedStringPresentation = (input: string): string => {\n // https://www.itwinjs.org/presentation/advanced/localization/\n // Check if the string starts and ends with \"@\"\n if (input.startsWith(\"@\") && input.endsWith(\"@\")) {\n // Remove the leading and trailing \"@\" from the string\n const trimmedString = input.substring(1, input.length - 1);\n\n return IModelApp.localization.getLocalizedString(trimmedString);\n }\n\n return input;\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/common/utils.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 { QueryRowFormat } from \"@itwin/core-common\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport { GroupingMappingWidget } from \"../GroupingMappingWidget\";\n\nexport type CreateTypeFromInterface<Interface> = {\n [Property in keyof Interface]: Interface[Property];\n};\n\nexport function debounce<F extends (...args: any[]) => void>(f: F, delay: number) {\n let timer: number | undefined;\n return (...args: any[]) => {\n timer && window.clearTimeout(timer);\n timer = window.setTimeout(f, delay, ...args);\n };\n}\n\nexport const fetchIdsFromQuery = async (query: string, iModelConnection: IModelConnection) => {\n if (query === \"\") {\n return [];\n }\n const ids: string[] = [];\n const rowIterator = iModelConnection.query(query, undefined, {\n rowFormat: QueryRowFormat.UseJsPropertyNames,\n });\n while (true) {\n const { done, value } = await rowIterator.next();\n if (done) {\n break;\n }\n if (Object.keys(value).includes(\"id\")) {\n ids.push(value.id);\n } else if (Object.keys(value).includes(\"element.id\")) {\n ids.push(value[\"element.id\"]);\n } else if (Object.keys(value).includes(\"eCInstanceId\")) {\n ids.push(value.eCInstanceId);\n }\n }\n return ids;\n};\n\nexport const getErrorMessage = (errorStatus: number): string => {\n switch (errorStatus) {\n case 401:\n return GroupingMappingWidget.translate(\"errors.unauthorized\");\n case 403:\n return GroupingMappingWidget.translate(\"errors.forbidden\");\n case 404:\n return GroupingMappingWidget.translate(\"errors.notFound\");\n case 409:\n return GroupingMappingWidget.translate(\"errors.conflict\");\n case 422:\n return GroupingMappingWidget.translate(\"errors.unprocessable\");\n case 429:\n return GroupingMappingWidget.translate(\"errors.tooManyRequests\");\n case 500:\n return GroupingMappingWidget.translate(\"errors.internalServerError\");\n case 502:\n return GroupingMappingWidget.translate(\"errors.badGateway\");\n case 503:\n return GroupingMappingWidget.translate(\"errors.serviceUnavailable\");\n default:\n return GroupingMappingWidget.translate(\"errors.generic\");\n }\n};\n\nexport const handleError = (errorStatus: number) => {\n const baseErrorMessage = GroupingMappingWidget.translate(\"errors.errorPrefix\");\n const specificErrorMessage = getErrorMessage(errorStatus);\n const fullErrorMessage = `${baseErrorMessage} ${specificErrorMessage}`;\n\n toaster.negative(fullErrorMessage);\n};\n\nexport const handleInputChange = <T>(e: React.ChangeEvent<HTMLInputElement>, values: T, setValues: (newValues: T) => void) => {\n const { name, value } = e.target;\n\n setValues({\n ...values,\n [name]: value,\n });\n};\n\nexport const enableExperimentalFeatures = async (iModelConnection: IModelConnection) => {\n const reader = iModelConnection.createQueryReader(\"PRAGMA experimental_features_enabled=true\");\n await reader.step();\n};\n\nexport const getLocalizedStringPresentation = (input: string): string => {\n // https://www.itwinjs.org/presentation/advanced/localization/\n // Check if the string starts and ends with \"@\"\n if (input.startsWith(\"@\") && input.endsWith(\"@\")) {\n // Remove the leading and trailing \"@\" from the string\n const trimmedString = input.substring(1, input.length - 1);\n\n return IModelApp.localization.getLocalizedString(trimmedString);\n }\n\n return input;\n};\n"]}
@@ -44,6 +44,7 @@ const Constants_1 = require("./Constants");
44
44
  const ExtractionStateJobContext_1 = require("./context/ExtractionStateJobContext");
45
45
  const GroupsClientContext_1 = require("./context/GroupsClientContext");
46
46
  const PropertiesClientContext_1 = require("./context/PropertiesClientContext");
47
+ const GroupingMappingWidget_1 = require("../GroupingMappingWidget");
47
48
  const authorizationClientGetAccessToken = async () => (await core_frontend_1.IModelApp.authorizationClient?.getAccessToken()) ?? "";
48
49
  const defaultQueryClient = new react_query_1.QueryClient({
49
50
  defaultOptions: {
@@ -62,7 +63,7 @@ const defaultQueryClient = new react_query_1.QueryClient({
62
63
  if (error.status)
63
64
  itwinui_react_1.toaster.negative((0, utils_1.getErrorMessage)(error.status));
64
65
  else
65
- itwinui_react_1.toaster.negative("An error occurred while fetching data.");
66
+ itwinui_react_1.toaster.negative(GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.fetchError"));
66
67
  }
67
68
  }
68
69
  },
@@ -72,7 +73,7 @@ const defaultQueryClient = new react_query_1.QueryClient({
72
73
  if (error.status)
73
74
  itwinui_react_1.toaster.negative((0, utils_1.getErrorMessage)(error.status));
74
75
  else
75
- itwinui_react_1.toaster.negative("A network error occured while processing this action.");
76
+ itwinui_react_1.toaster.negative(GroupingMappingWidget_1.GroupingMappingWidget.translate("errors.networkError"));
76
77
  },
77
78
  }),
78
79
  });
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMappingContext.js","sourceRoot":"","sources":["../../../src/components/GroupingMappingContext.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 React, { useEffect, useMemo, useState } from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { ClientPrefix, GetAccessTokenFn, GroupingMappingApiConfig } from \"./context/GroupingApiConfigContext\";\nimport { GroupingMappingApiConfigContext } from \"./context/GroupingApiConfigContext\";\nimport { createMappingClient, MappingClientContext } from \"./context/MappingClientContext\";\nimport type { Group, IExtractionClient, IGroupsClient, IMappingsClient, IPropertiesClient } from \"@itwin/insights-client\";\nimport { createGroupingMappingCustomUI, GroupingMappingCustomUIContext } from \"./context/GroupingMappingCustomUIContext\";\nimport type { GroupingMappingCustomUI } from \"./customUI/GroupingMappingCustomUI\";\nimport type { OverlappedElementsMetadata } from \"./context/GroupHilitedElementsContext\";\nimport { GroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\nimport { PropertiesGroupColorContext } from \"./context/PropertiesGroupColorContext\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { createExtractionClient, ExtractionClientContext } from \"./context/ExtractionClientContext\";\nimport type { Query } from \"@tanstack/react-query\";\nimport { MutationCache, QueryCache, QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport { getErrorMessage } from \"../common/utils\";\nimport { TErrCodes } from \"./Constants\";\nimport { ExtractionStatusJobContext } from \"./context/ExtractionStateJobContext\";\nimport { createGroupsClient, GroupsClientContext } from \"./context/GroupsClientContext\";\nimport { createPropertiesClient, PropertiesClientContext } from \"./context/PropertiesClientContext\";\n\n/**\n * Props for the {@link GroupingMappingContext} component.\n * @public\n */\nexport interface GroupingMappingContextProps {\n /**\n * Custom callback to retrieve access token.\n */\n getAccessToken?: GetAccessTokenFn;\n /**\n * The iTwin iModel Id.\n */\n iModelId: string;\n /**\n * Used for iTwin and iModel APIs.\n * Also used for Mapping API if a custom IMappingsClient is not provided.\n */\n changeSetId?: string;\n prefix?: ClientPrefix;\n /**\n * A custom implementation of MappingClient.\n */\n mappingsClient?: IMappingsClient;\n /**\n * A custom implementation of GroupsClient.\n */\n groupsClient?: IGroupsClient;\n /**\n * A custom implementation of PropertiesClient.\n */\n propertiesClient?: IPropertiesClient;\n /**\n * A custom implementation of ExtractionClient.\n */\n extractionClient?: IExtractionClient;\n /**\n * Custom UI to add and update groups or provide additional group context capabilities.\n */\n customUIs?: GroupingMappingCustomUI[];\n /**\n * A custom iModelConnection to use instead of the active iModelConnection from UiFramework.\n */\n iModelConnection?: IModelConnection;\n /**\n * A custom QueryClient. If not provided, a default QueryClient will be used.\n */\n queryClient?: QueryClient;\n children?: React.ReactNode;\n}\n\nconst authorizationClientGetAccessToken = async () => (await IModelApp.authorizationClient?.getAccessToken()) ?? \"\";\n\nconst defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n staleTime: 20 * 60 * 1000, // 20 minutes\n },\n },\n queryCache: new QueryCache({\n onError: (error: any, query: Query) => {\n switch (query.meta?.errorCode) {\n case TErrCodes.QUERY_HILITE_FETCH_FAILED:\n toaster.negative(query.meta?.message as string);\n break;\n default: {\n if (error.status) toaster.negative(getErrorMessage(error.status));\n else toaster.negative(\"An error occurred while fetching data.\");\n }\n }\n },\n }),\n mutationCache: new MutationCache({\n onError: (error: any) => {\n if (error.status) toaster.negative(getErrorMessage(error.status));\n else toaster.negative(\"A network error occured while processing this action.\");\n },\n }),\n});\n\n/**\n * Grouping and Mapping Context providers required for all components.\n * @public\n */\nexport const GroupingMappingContext = (props: GroupingMappingContextProps) => {\n const activeIModelConnection = useActiveIModelConnection();\n const mappingsClientProp: IMappingsClient | ClientPrefix = props.mappingsClient ?? props.prefix;\n const groupsClientProp: IGroupsClient | ClientPrefix = props.groupsClient ?? props.prefix;\n const propertiesClientProp: IPropertiesClient | ClientPrefix = props.propertiesClient ?? props.prefix;\n const extractionClientProp: IExtractionClient | ClientPrefix = props.extractionClient ?? props.prefix;\n const [mappingClient, setMappingClient] = useState<IMappingsClient>(createMappingClient(mappingsClientProp));\n const [groupsClient, setGroupsClient] = useState<IGroupsClient>(createGroupsClient(groupsClientProp));\n const [propertiesClient, setPropertiesClient] = useState<IPropertiesClient>(createPropertiesClient(propertiesClientProp));\n const [extractionClient, setExtractionClient] = useState<IExtractionClient>(createExtractionClient(extractionClientProp));\n const [customUIs, setCustomUIs] = useState<GroupingMappingCustomUI[]>(createGroupingMappingCustomUI(props.customUIs));\n const [apiConfig, setApiConfig] = useState<GroupingMappingApiConfig>({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelId: props.iModelId,\n prefix: props.prefix,\n changeSetId: props.changeSetId,\n });\n const [hiddenGroupsIds, setHiddenGroupsIds] = useState<Set<string>>(new Set());\n const [showGroupColor, setShowGroupColor] = useState<boolean>(false);\n const [propertiesShowGroup, setPropertiesShowGroup] = useState<boolean>(false);\n const [groupColors, setGroupColors] = useState<Map<string, string>>(new Map());\n const [groups, setGroups] = useState<Group[]>([]);\n const [numberOfVisualizedGroups, setNumberOfVisualizedGroups] = useState(0);\n const [isOverlappedColored, setIsOverlappedColored] = useState<boolean>(false);\n const [currentHilitedGroups, setCurrentHilitedGroups] = useState<number>(1);\n const [isVisualizationsEnabled, setIsVisualizationsEnabled] = useState<boolean>(false);\n const [overlappedElementsMetadata, setOverlappedElementsMetadata] = useState<OverlappedElementsMetadata>({\n overlappedElementsInfo: new Map(),\n groupElementsInfo: new Map(),\n overlappedElementGroupPairs: [],\n });\n const queryClient = props.queryClient ?? defaultQueryClient;\n const [mappingIdJobInfo, setMappingIdJobInfo] = useState<Map<string, string>>(new Map());\n\n useEffect(() => {\n setApiConfig(() => ({\n prefix: props.prefix,\n iModelId: props.iModelId,\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelConnection: props.iModelConnection ?? activeIModelConnection,\n changeSetId: props.changeSetId,\n }));\n }, [activeIModelConnection, props.changeSetId, props.getAccessToken, props.iModelConnection, props.iModelId, props.prefix]);\n\n useEffect(() => {\n setMappingClient(createMappingClient(mappingsClientProp));\n }, [mappingsClientProp]);\n\n useEffect(() => {\n setGroupsClient(createGroupsClient(groupsClientProp));\n }, [groupsClientProp]);\n\n useEffect(() => {\n setPropertiesClient(createPropertiesClient(propertiesClientProp));\n }, [propertiesClientProp]);\n\n useEffect(() => {\n setExtractionClient(createExtractionClient(extractionClientProp));\n }, [extractionClientProp]);\n\n useEffect(() => {\n setCustomUIs(createGroupingMappingCustomUI(props.customUIs));\n }, [props.customUIs]);\n\n const hilitedElementsContextValue = useMemo(\n () => ({\n showGroupColor,\n setShowGroupColor,\n hiddenGroupsIds,\n setHiddenGroupsIds,\n groups,\n setGroups,\n numberOfVisualizedGroups,\n setNumberOfVisualizedGroups,\n isOverlappedColored,\n setIsOverlappedColored,\n currentHilitedGroups,\n setCurrentHilitedGroups,\n isVisualizationsEnabled,\n setIsVisualizationsEnabled,\n overlappedElementsMetadata,\n setOverlappedElementsMetadata,\n groupColors,\n setGroupColors,\n }),\n [\n showGroupColor,\n hiddenGroupsIds,\n groups,\n numberOfVisualizedGroups,\n isOverlappedColored,\n currentHilitedGroups,\n isVisualizationsEnabled,\n overlappedElementsMetadata,\n groupColors,\n setGroupColors,\n ],\n );\n\n const propertiesContextValue = useMemo(\n () => ({\n showGroupColor: propertiesShowGroup,\n setShowGroupColor: setPropertiesShowGroup,\n }),\n [propertiesShowGroup],\n );\n\n const customUIContextValue = useMemo(\n () => ({\n customUIs,\n setCustomUIs,\n }),\n [customUIs],\n );\n\n const extractionStateJobContextValue = useMemo(\n () => ({\n mappingIdJobInfo,\n setMappingIdJobInfo,\n }),\n [mappingIdJobInfo],\n );\n\n return (\n <QueryClientProvider client={queryClient}>\n <GroupingMappingApiConfigContext.Provider value={apiConfig}>\n <MappingClientContext.Provider value={mappingClient}>\n <GroupsClientContext.Provider value={groupsClient}>\n <PropertiesClientContext.Provider value={propertiesClient}>\n <ExtractionClientContext.Provider value={extractionClient}>\n <ExtractionStatusJobContext.Provider value={extractionStateJobContextValue}>\n <GroupingMappingCustomUIContext.Provider value={customUIContextValue}>\n <GroupHilitedElementsContext.Provider value={hilitedElementsContextValue}>\n <PropertiesGroupColorContext.Provider value={propertiesContextValue}>{props.children}</PropertiesGroupColorContext.Provider>\n </GroupHilitedElementsContext.Provider>\n </GroupingMappingCustomUIContext.Provider>\n </ExtractionStatusJobContext.Provider>\n </ExtractionClientContext.Provider>\n </PropertiesClientContext.Provider>\n </GroupsClientContext.Provider>\n </MappingClientContext.Provider>\n </GroupingMappingApiConfigContext.Provider>\n </QueryClientProvider>\n );\n};\n"]}
1
+ {"version":3,"file":"GroupingMappingContext.js","sourceRoot":"","sources":["../../../src/components/GroupingMappingContext.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 React, { useEffect, useMemo, useState } from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type { ClientPrefix, GetAccessTokenFn, GroupingMappingApiConfig } from \"./context/GroupingApiConfigContext\";\nimport { GroupingMappingApiConfigContext } from \"./context/GroupingApiConfigContext\";\nimport { createMappingClient, MappingClientContext } from \"./context/MappingClientContext\";\nimport type { Group, IExtractionClient, IGroupsClient, IMappingsClient, IPropertiesClient } from \"@itwin/insights-client\";\nimport { createGroupingMappingCustomUI, GroupingMappingCustomUIContext } from \"./context/GroupingMappingCustomUIContext\";\nimport type { GroupingMappingCustomUI } from \"./customUI/GroupingMappingCustomUI\";\nimport type { OverlappedElementsMetadata } from \"./context/GroupHilitedElementsContext\";\nimport { GroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\nimport { PropertiesGroupColorContext } from \"./context/PropertiesGroupColorContext\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { createExtractionClient, ExtractionClientContext } from \"./context/ExtractionClientContext\";\nimport type { Query } from \"@tanstack/react-query\";\nimport { MutationCache, QueryCache, QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport { getErrorMessage } from \"../common/utils\";\nimport { TErrCodes } from \"./Constants\";\nimport { ExtractionStatusJobContext } from \"./context/ExtractionStateJobContext\";\nimport { createGroupsClient, GroupsClientContext } from \"./context/GroupsClientContext\";\nimport { createPropertiesClient, PropertiesClientContext } from \"./context/PropertiesClientContext\";\nimport { GroupingMappingWidget } from \"../GroupingMappingWidget\";\n\n/**\n * Props for the {@link GroupingMappingContext} component.\n * @public\n */\nexport interface GroupingMappingContextProps {\n /**\n * Custom callback to retrieve access token.\n */\n getAccessToken?: GetAccessTokenFn;\n /**\n * The iTwin iModel Id.\n */\n iModelId: string;\n /**\n * Used for iTwin and iModel APIs.\n * Also used for Mapping API if a custom IMappingsClient is not provided.\n */\n changeSetId?: string;\n prefix?: ClientPrefix;\n /**\n * A custom implementation of MappingClient.\n */\n mappingsClient?: IMappingsClient;\n /**\n * A custom implementation of GroupsClient.\n */\n groupsClient?: IGroupsClient;\n /**\n * A custom implementation of PropertiesClient.\n */\n propertiesClient?: IPropertiesClient;\n /**\n * A custom implementation of ExtractionClient.\n */\n extractionClient?: IExtractionClient;\n /**\n * Custom UI to add and update groups or provide additional group context capabilities.\n */\n customUIs?: GroupingMappingCustomUI[];\n /**\n * A custom iModelConnection to use instead of the active iModelConnection from UiFramework.\n */\n iModelConnection?: IModelConnection;\n /**\n * A custom QueryClient. If not provided, a default QueryClient will be used.\n */\n queryClient?: QueryClient;\n children?: React.ReactNode;\n}\n\nconst authorizationClientGetAccessToken = async () => (await IModelApp.authorizationClient?.getAccessToken()) ?? \"\";\n\nconst defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n staleTime: 20 * 60 * 1000, // 20 minutes\n },\n },\n queryCache: new QueryCache({\n onError: (error: any, query: Query) => {\n switch (query.meta?.errorCode) {\n case TErrCodes.QUERY_HILITE_FETCH_FAILED:\n toaster.negative(query.meta?.message as string);\n break;\n default: {\n if (error.status) toaster.negative(getErrorMessage(error.status));\n else toaster.negative(GroupingMappingWidget.translate(\"errors.fetchError\"));\n }\n }\n },\n }),\n mutationCache: new MutationCache({\n onError: (error: any) => {\n if (error.status) toaster.negative(getErrorMessage(error.status));\n else toaster.negative(GroupingMappingWidget.translate(\"errors.networkError\"));\n },\n }),\n});\n\n/**\n * Grouping and Mapping Context providers required for all components.\n * @public\n */\nexport const GroupingMappingContext = (props: GroupingMappingContextProps) => {\n const activeIModelConnection = useActiveIModelConnection();\n const mappingsClientProp: IMappingsClient | ClientPrefix = props.mappingsClient ?? props.prefix;\n const groupsClientProp: IGroupsClient | ClientPrefix = props.groupsClient ?? props.prefix;\n const propertiesClientProp: IPropertiesClient | ClientPrefix = props.propertiesClient ?? props.prefix;\n const extractionClientProp: IExtractionClient | ClientPrefix = props.extractionClient ?? props.prefix;\n const [mappingClient, setMappingClient] = useState<IMappingsClient>(createMappingClient(mappingsClientProp));\n const [groupsClient, setGroupsClient] = useState<IGroupsClient>(createGroupsClient(groupsClientProp));\n const [propertiesClient, setPropertiesClient] = useState<IPropertiesClient>(createPropertiesClient(propertiesClientProp));\n const [extractionClient, setExtractionClient] = useState<IExtractionClient>(createExtractionClient(extractionClientProp));\n const [customUIs, setCustomUIs] = useState<GroupingMappingCustomUI[]>(createGroupingMappingCustomUI(props.customUIs));\n const [apiConfig, setApiConfig] = useState<GroupingMappingApiConfig>({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelId: props.iModelId,\n prefix: props.prefix,\n changeSetId: props.changeSetId,\n });\n const [hiddenGroupsIds, setHiddenGroupsIds] = useState<Set<string>>(new Set());\n const [showGroupColor, setShowGroupColor] = useState<boolean>(false);\n const [propertiesShowGroup, setPropertiesShowGroup] = useState<boolean>(false);\n const [groupColors, setGroupColors] = useState<Map<string, string>>(new Map());\n const [groups, setGroups] = useState<Group[]>([]);\n const [numberOfVisualizedGroups, setNumberOfVisualizedGroups] = useState(0);\n const [isOverlappedColored, setIsOverlappedColored] = useState<boolean>(false);\n const [currentHilitedGroups, setCurrentHilitedGroups] = useState<number>(1);\n const [isVisualizationsEnabled, setIsVisualizationsEnabled] = useState<boolean>(false);\n const [overlappedElementsMetadata, setOverlappedElementsMetadata] = useState<OverlappedElementsMetadata>({\n overlappedElementsInfo: new Map(),\n groupElementsInfo: new Map(),\n overlappedElementGroupPairs: [],\n });\n const queryClient = props.queryClient ?? defaultQueryClient;\n const [mappingIdJobInfo, setMappingIdJobInfo] = useState<Map<string, string>>(new Map());\n\n useEffect(() => {\n setApiConfig(() => ({\n prefix: props.prefix,\n iModelId: props.iModelId,\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelConnection: props.iModelConnection ?? activeIModelConnection,\n changeSetId: props.changeSetId,\n }));\n }, [activeIModelConnection, props.changeSetId, props.getAccessToken, props.iModelConnection, props.iModelId, props.prefix]);\n\n useEffect(() => {\n setMappingClient(createMappingClient(mappingsClientProp));\n }, [mappingsClientProp]);\n\n useEffect(() => {\n setGroupsClient(createGroupsClient(groupsClientProp));\n }, [groupsClientProp]);\n\n useEffect(() => {\n setPropertiesClient(createPropertiesClient(propertiesClientProp));\n }, [propertiesClientProp]);\n\n useEffect(() => {\n setExtractionClient(createExtractionClient(extractionClientProp));\n }, [extractionClientProp]);\n\n useEffect(() => {\n setCustomUIs(createGroupingMappingCustomUI(props.customUIs));\n }, [props.customUIs]);\n\n const hilitedElementsContextValue = useMemo(\n () => ({\n showGroupColor,\n setShowGroupColor,\n hiddenGroupsIds,\n setHiddenGroupsIds,\n groups,\n setGroups,\n numberOfVisualizedGroups,\n setNumberOfVisualizedGroups,\n isOverlappedColored,\n setIsOverlappedColored,\n currentHilitedGroups,\n setCurrentHilitedGroups,\n isVisualizationsEnabled,\n setIsVisualizationsEnabled,\n overlappedElementsMetadata,\n setOverlappedElementsMetadata,\n groupColors,\n setGroupColors,\n }),\n [\n showGroupColor,\n hiddenGroupsIds,\n groups,\n numberOfVisualizedGroups,\n isOverlappedColored,\n currentHilitedGroups,\n isVisualizationsEnabled,\n overlappedElementsMetadata,\n groupColors,\n setGroupColors,\n ],\n );\n\n const propertiesContextValue = useMemo(\n () => ({\n showGroupColor: propertiesShowGroup,\n setShowGroupColor: setPropertiesShowGroup,\n }),\n [propertiesShowGroup],\n );\n\n const customUIContextValue = useMemo(\n () => ({\n customUIs,\n setCustomUIs,\n }),\n [customUIs],\n );\n\n const extractionStateJobContextValue = useMemo(\n () => ({\n mappingIdJobInfo,\n setMappingIdJobInfo,\n }),\n [mappingIdJobInfo],\n );\n\n return (\n <QueryClientProvider client={queryClient}>\n <GroupingMappingApiConfigContext.Provider value={apiConfig}>\n <MappingClientContext.Provider value={mappingClient}>\n <GroupsClientContext.Provider value={groupsClient}>\n <PropertiesClientContext.Provider value={propertiesClient}>\n <ExtractionClientContext.Provider value={extractionClient}>\n <ExtractionStatusJobContext.Provider value={extractionStateJobContextValue}>\n <GroupingMappingCustomUIContext.Provider value={customUIContextValue}>\n <GroupHilitedElementsContext.Provider value={hilitedElementsContextValue}>\n <PropertiesGroupColorContext.Provider value={propertiesContextValue}>{props.children}</PropertiesGroupColorContext.Provider>\n </GroupHilitedElementsContext.Provider>\n </GroupingMappingCustomUIContext.Provider>\n </ExtractionStatusJobContext.Provider>\n </ExtractionClientContext.Provider>\n </PropertiesClientContext.Provider>\n </GroupsClientContext.Provider>\n </MappingClientContext.Provider>\n </GroupingMappingApiConfigContext.Provider>\n </QueryClientProvider>\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import "./GroupAction.scss";
3
3
  import type { GroupMinimal } from "@itwin/insights-client";
4
- declare const defaultDisplayStrings: {
4
+ declare const getDefaultDisplayStrings: () => {
5
5
  groupDetails: string;
6
6
  groupBy: string;
7
7
  };
@@ -16,7 +16,7 @@ export interface GroupActionProps {
16
16
  queryGenerationType: string;
17
17
  onSaveSuccess: () => void;
18
18
  onClickCancel?: () => void;
19
- displayStrings?: Partial<typeof defaultDisplayStrings>;
19
+ displayStrings?: Partial<ReturnType<typeof getDefaultDisplayStrings>>;
20
20
  }
21
21
  /**
22
22
  * Component to create or update a group.