@itwin/grouping-mapping-widget 0.25.2 → 0.26.1

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 (689) hide show
  1. package/LICENSE.md +9 -9
  2. package/README.md +115 -115
  3. package/lib/cjs/WidgetShell/GroupingMapping.d.ts +5 -5
  4. package/lib/cjs/WidgetShell/GroupingMapping.js +2 -4
  5. package/lib/cjs/WidgetShell/GroupingMapping.js.map +1 -1
  6. package/lib/cjs/WidgetShell/GroupingMappingContent.js +4 -4
  7. package/lib/cjs/WidgetShell/GroupingMappingContent.js.map +1 -1
  8. package/lib/cjs/WidgetShell/GroupingMappingHeader.d.ts +1 -1
  9. package/lib/cjs/WidgetShell/GroupingMappingHeader.js +5 -5
  10. package/lib/cjs/WidgetShell/GroupingMappingHeader.js.map +1 -1
  11. package/lib/cjs/WidgetShell/GroupingMappingWidget.d.ts +4 -0
  12. package/lib/cjs/WidgetShell/GroupingMappingWidget.js +5 -3
  13. package/lib/cjs/WidgetShell/GroupingMappingWidget.js.map +1 -1
  14. package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js +28 -8
  15. package/lib/cjs/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
  16. package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.d.ts +1 -1
  17. package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js +7 -7
  18. package/lib/cjs/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
  19. package/lib/cjs/common/hooks/useIsMounted.js +3 -3
  20. package/lib/cjs/common/hooks/useIsMounted.js.map +1 -1
  21. package/lib/cjs/common/hooks/useMemoizedCollectionPick.js +3 -3
  22. package/lib/cjs/common/hooks/useMemoizedCollectionPick.js.map +1 -1
  23. package/lib/cjs/common/utils.js +3 -3
  24. package/lib/cjs/common/utils.js.map +1 -1
  25. package/lib/cjs/common/viewerUtils.js +2 -2
  26. package/lib/cjs/common/viewerUtils.js.map +1 -1
  27. package/lib/cjs/components/Constants.js +4 -4
  28. package/lib/cjs/components/Constants.js.map +1 -1
  29. package/lib/cjs/components/GroupingMappingContext.d.ts +19 -3
  30. package/lib/cjs/components/GroupingMappingContext.js +40 -13
  31. package/lib/cjs/components/GroupingMappingContext.js.map +1 -1
  32. package/lib/cjs/components/Groups/Editing/GroupAction.d.ts +10 -2
  33. package/lib/cjs/components/Groups/Editing/GroupAction.js +16 -14
  34. package/lib/cjs/components/Groups/Editing/GroupAction.js.map +1 -1
  35. package/lib/cjs/components/Groups/Editing/GroupDetails.d.ts +1 -1
  36. package/lib/cjs/components/Groups/Editing/GroupDetails.js +5 -7
  37. package/lib/cjs/components/Groups/Editing/GroupDetails.js.map +1 -1
  38. package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.d.ts +1 -1
  39. package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js +4 -4
  40. package/lib/cjs/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
  41. package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js +4 -4
  42. package/lib/cjs/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
  43. package/lib/cjs/components/Groups/GroupColorLegend.d.ts +3 -3
  44. package/lib/cjs/components/Groups/GroupColorLegend.js +3 -3
  45. package/lib/cjs/components/Groups/GroupColorLegend.js.map +1 -1
  46. package/lib/cjs/components/Groups/GroupListItem.d.ts +4 -4
  47. package/lib/cjs/components/Groups/GroupListItem.js +6 -4
  48. package/lib/cjs/components/Groups/GroupListItem.js.map +1 -1
  49. package/lib/cjs/components/Groups/GroupListItem.scss +14 -0
  50. package/lib/cjs/components/Groups/GroupMenuActions.d.ts +4 -4
  51. package/lib/cjs/components/Groups/GroupMenuActions.js +17 -6
  52. package/lib/cjs/components/Groups/GroupMenuActions.js.map +1 -1
  53. package/lib/cjs/components/Groups/GroupMenuActions.scss +2 -0
  54. package/lib/cjs/components/Groups/GroupOverlapProgressBar.d.ts +2 -2
  55. package/lib/cjs/components/Groups/GroupOverlapProgressBar.js.map +1 -1
  56. package/lib/cjs/components/Groups/Groups.d.ts +12 -4
  57. package/lib/cjs/components/Groups/Groups.js +7 -3
  58. package/lib/cjs/components/Groups/Groups.js.map +1 -1
  59. package/lib/cjs/components/Groups/GroupsAddButton.d.ts +1 -1
  60. package/lib/cjs/components/Groups/GroupsAddButton.js +4 -4
  61. package/lib/cjs/components/Groups/GroupsAddButton.js.map +1 -1
  62. package/lib/cjs/components/Groups/GroupsAddButton.scss +1 -1
  63. package/lib/cjs/components/Groups/GroupsShowHideButtons.d.ts +5 -5
  64. package/lib/cjs/components/Groups/GroupsShowHideButtons.js +2 -2
  65. package/lib/cjs/components/Groups/GroupsShowHideButtons.js.map +1 -1
  66. package/lib/cjs/components/Groups/GroupsView.d.ts +19 -11
  67. package/lib/cjs/components/Groups/GroupsView.js +12 -10
  68. package/lib/cjs/components/Groups/GroupsView.js.map +1 -1
  69. package/lib/cjs/components/Groups/GroupsView.scss +1 -1
  70. package/lib/cjs/components/Groups/GroupsVisualization.d.ts +8 -0
  71. package/lib/cjs/components/Groups/GroupsVisualization.js +27 -24
  72. package/lib/cjs/components/Groups/GroupsVisualization.js.map +1 -1
  73. package/lib/cjs/components/Groups/GroupsVisualizationActions.js +4 -4
  74. package/lib/cjs/components/Groups/GroupsVisualizationActions.js.map +1 -1
  75. package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.d.ts +4 -4
  76. package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js +4 -4
  77. package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
  78. package/lib/cjs/components/Groups/OverlappedElementsInformationPanel.scss +7 -7
  79. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js +13 -35
  80. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
  81. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +4 -4
  82. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
  83. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.d.ts +3 -3
  84. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +4 -4
  85. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
  86. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js +4 -4
  87. package/lib/cjs/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
  88. package/lib/cjs/components/Groups/ToggleGroupVisibility.js +3 -3
  89. package/lib/cjs/components/Groups/ToggleGroupVisibility.js.map +1 -1
  90. package/lib/cjs/components/Groups/groupsHelpers.d.ts +2 -2
  91. package/lib/cjs/components/Groups/groupsHelpers.js +8 -4
  92. package/lib/cjs/components/Groups/groupsHelpers.js.map +1 -1
  93. package/lib/cjs/components/Groups/hooks/useFetchGroups.d.ts +3 -3
  94. package/lib/cjs/components/Groups/hooks/useFetchGroups.js +6 -5
  95. package/lib/cjs/components/Groups/hooks/useFetchGroups.js.map +1 -1
  96. package/lib/cjs/components/Groups/hooks/useGroupsOperations.d.ts +16 -8
  97. package/lib/cjs/components/Groups/hooks/useGroupsOperations.js +14 -10
  98. package/lib/cjs/components/Groups/hooks/useGroupsOperations.js.map +1 -1
  99. package/lib/cjs/components/Groups/hooks/useKeySetHiliteQueries.d.ts +4 -4
  100. package/lib/cjs/components/Groups/hooks/useKeySetHiliteQueries.js.map +1 -1
  101. package/lib/cjs/components/Groups/hooks/useVisualization.js +2 -4
  102. package/lib/cjs/components/Groups/hooks/useVisualization.js.map +1 -1
  103. package/lib/cjs/components/Mappings/BlockingOverlay.js +3 -3
  104. package/lib/cjs/components/Mappings/BlockingOverlay.js.map +1 -1
  105. package/lib/cjs/components/Mappings/Editing/MappingAction.d.ts +8 -0
  106. package/lib/cjs/components/Mappings/Editing/MappingAction.js +16 -15
  107. package/lib/cjs/components/Mappings/Editing/MappingAction.js.map +1 -1
  108. package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.d.ts +1 -1
  109. package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js +1 -1
  110. package/lib/cjs/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
  111. package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js +12 -7
  112. package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
  113. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +3 -3
  114. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
  115. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +3 -3
  116. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
  117. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +3 -3
  118. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
  119. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +3 -3
  120. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
  121. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.d.ts +1 -1
  122. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.js +9 -9
  123. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.js.map +1 -1
  124. package/lib/cjs/components/Mappings/Extraction/ExtractionStatusIcon.js +4 -4
  125. package/lib/cjs/components/Mappings/Extraction/ExtractionStatusIcon.js.map +1 -1
  126. package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.d.ts +1 -2
  127. package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js +30 -33
  128. package/lib/cjs/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
  129. package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.d.ts +1 -1
  130. package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js +4 -4
  131. package/lib/cjs/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
  132. package/lib/cjs/components/Mappings/Import/SelectIModel.d.ts +1 -1
  133. package/lib/cjs/components/Mappings/Import/SelectIModel.js +5 -5
  134. package/lib/cjs/components/Mappings/Import/SelectIModel.js.map +1 -1
  135. package/lib/cjs/components/Mappings/Import/SelectITwin.js +2 -2
  136. package/lib/cjs/components/Mappings/Import/SelectITwin.js.map +1 -1
  137. package/lib/cjs/components/Mappings/Import/SelectITwin.scss +1 -1
  138. package/lib/cjs/components/Mappings/Import/SelectMappings.d.ts +1 -1
  139. package/lib/cjs/components/Mappings/Import/SelectMappings.js +7 -7
  140. package/lib/cjs/components/Mappings/Import/SelectMappings.js.map +1 -1
  141. package/lib/cjs/components/Mappings/MappingListItem.js.map +1 -1
  142. package/lib/cjs/components/Mappings/MappingViewActionGroup.d.ts +1 -1
  143. package/lib/cjs/components/Mappings/MappingViewActionGroup.js +6 -6
  144. package/lib/cjs/components/Mappings/MappingViewActionGroup.js.map +1 -1
  145. package/lib/cjs/components/Mappings/Mappings.d.ts +8 -0
  146. package/lib/cjs/components/Mappings/Mappings.js +7 -3
  147. package/lib/cjs/components/Mappings/Mappings.js.map +1 -1
  148. package/lib/cjs/components/Mappings/MappingsView.d.ts +7 -0
  149. package/lib/cjs/components/Mappings/MappingsView.js +17 -15
  150. package/lib/cjs/components/Mappings/MappingsView.js.map +1 -1
  151. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.d.ts +1 -2
  152. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js +11 -8
  153. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
  154. package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.d.ts +1 -1
  155. package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.js +8 -7
  156. package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.js.map +1 -1
  157. package/lib/cjs/components/Mappings/hooks/useFetchMappings.js +2 -2
  158. package/lib/cjs/components/Mappings/hooks/useFetchMappings.js.map +1 -1
  159. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.d.ts +9 -2
  160. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js +44 -22
  161. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
  162. package/lib/cjs/components/Mappings/hooks/useRunExtraction.d.ts +2 -2
  163. package/lib/cjs/components/Mappings/hooks/useRunExtraction.js +27 -19
  164. package/lib/cjs/components/Mappings/hooks/useRunExtraction.js.map +1 -1
  165. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.d.ts +11 -3
  166. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +28 -15
  167. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
  168. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.d.ts +11 -3
  169. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +30 -20
  170. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
  171. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.d.ts +3 -3
  172. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.js +7 -5
  173. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.js.map +1 -1
  174. package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +4 -6
  175. package/lib/cjs/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
  176. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.d.ts +11 -3
  177. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js +74 -50
  178. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
  179. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.scss +1 -1
  180. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.d.ts +3 -3
  181. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.js +21 -15
  182. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.js.map +1 -1
  183. package/lib/cjs/components/Properties/GroupColorToggle.d.ts +2 -2
  184. package/lib/cjs/components/Properties/GroupColorToggle.js +4 -4
  185. package/lib/cjs/components/Properties/GroupColorToggle.js.map +1 -1
  186. package/lib/cjs/components/Properties/GroupInformationPanel.js +3 -3
  187. package/lib/cjs/components/Properties/GroupInformationPanel.js.map +1 -1
  188. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.d.ts +13 -5
  189. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js +41 -42
  190. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
  191. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.d.ts +1 -1
  192. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.js +5 -5
  193. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.js.map +1 -1
  194. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.d.ts +4 -4
  195. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js +20 -16
  196. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
  197. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.d.ts +3 -5
  198. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.js +20 -65
  199. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.js.map +1 -1
  200. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +20 -29
  201. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
  202. package/lib/cjs/components/Properties/GroupProperties/SaveModal.d.ts +1 -1
  203. package/lib/cjs/components/Properties/GroupProperties/SaveModal.js +7 -7
  204. package/lib/cjs/components/Properties/GroupProperties/SaveModal.js.map +1 -1
  205. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js +4 -4
  206. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
  207. package/lib/cjs/components/Properties/PropertyAction.js +9 -21
  208. package/lib/cjs/components/Properties/PropertyAction.js.map +1 -1
  209. package/lib/cjs/components/Properties/PropertyMenu.d.ts +13 -5
  210. package/lib/cjs/components/Properties/PropertyMenu.js +16 -18
  211. package/lib/cjs/components/Properties/PropertyMenu.js.map +1 -1
  212. package/lib/cjs/components/Properties/PropertyMenuWithVisualization.d.ts +8 -0
  213. package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js +9 -5
  214. package/lib/cjs/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
  215. package/lib/cjs/components/Properties/PropertyNameCell.d.ts +1 -1
  216. package/lib/cjs/components/Properties/PropertyNameCell.js +4 -4
  217. package/lib/cjs/components/Properties/PropertyNameCell.js.map +1 -1
  218. package/lib/cjs/components/Properties/PropertyTable.js +5 -6
  219. package/lib/cjs/components/Properties/PropertyTable.js.map +1 -1
  220. package/lib/cjs/components/Properties/PropertyTableToolbar.d.ts +1 -1
  221. package/lib/cjs/components/Properties/PropertyTableToolbar.js +4 -4
  222. package/lib/cjs/components/Properties/PropertyTableToolbar.js.map +1 -1
  223. package/lib/cjs/components/Properties/hooks/useFormulaValidation.d.ts +2 -1
  224. package/lib/cjs/components/Properties/hooks/useFormulaValidation.js +11 -7
  225. package/lib/cjs/components/Properties/hooks/useFormulaValidation.js.map +1 -1
  226. package/lib/cjs/components/Properties/hooks/usePropertiesQuery.d.ts +4 -0
  227. package/lib/cjs/components/Properties/hooks/usePropertiesQuery.js +12 -0
  228. package/lib/cjs/components/Properties/hooks/usePropertiesQuery.js.map +1 -0
  229. package/lib/cjs/components/Properties/hooks/useValidator.js +4 -4
  230. package/lib/cjs/components/Properties/hooks/useValidator.js.map +1 -1
  231. package/lib/cjs/components/SharedComponents/ActionPanel.d.ts +1 -1
  232. package/lib/cjs/components/SharedComponents/ActionPanel.js +9 -10
  233. package/lib/cjs/components/SharedComponents/ActionPanel.js.map +1 -1
  234. package/lib/cjs/components/SharedComponents/DeleteModal.d.ts +1 -1
  235. package/lib/cjs/components/SharedComponents/DeleteModal.js +9 -10
  236. package/lib/cjs/components/SharedComponents/DeleteModal.js.map +1 -1
  237. package/lib/cjs/components/SharedComponents/EmptyMessage.js +4 -4
  238. package/lib/cjs/components/SharedComponents/EmptyMessage.js.map +1 -1
  239. package/lib/cjs/components/SharedComponents/LoadingOverlay.js +4 -4
  240. package/lib/cjs/components/SharedComponents/LoadingOverlay.js.map +1 -1
  241. package/lib/cjs/components/SharedComponents/LoadingSpinner.js +3 -3
  242. package/lib/cjs/components/SharedComponents/LoadingSpinner.js.map +1 -1
  243. package/lib/cjs/components/SharedComponents/StatusIcon.js +3 -3
  244. package/lib/cjs/components/SharedComponents/StatusIcon.js.map +1 -1
  245. package/lib/cjs/components/context/ExtractionClientContext.js +3 -3
  246. package/lib/cjs/components/context/ExtractionClientContext.js.map +1 -1
  247. package/lib/cjs/components/context/ExtractionStateJobContext.js +3 -3
  248. package/lib/cjs/components/context/ExtractionStateJobContext.js.map +1 -1
  249. package/lib/cjs/components/context/GroupHilitedElementsContext.js +3 -3
  250. package/lib/cjs/components/context/GroupHilitedElementsContext.js.map +1 -1
  251. package/lib/cjs/components/context/GroupingApiConfigContext.d.ts +16 -0
  252. package/lib/cjs/components/context/GroupingApiConfigContext.js +7 -0
  253. package/lib/cjs/components/context/GroupingApiConfigContext.js.map +1 -1
  254. package/lib/cjs/components/context/GroupingMappingCustomUIContext.js +3 -3
  255. package/lib/cjs/components/context/GroupingMappingCustomUIContext.js.map +1 -1
  256. package/lib/cjs/components/context/GroupsClientContext.d.ts +20 -0
  257. package/lib/cjs/components/context/GroupsClientContext.js +45 -0
  258. package/lib/cjs/components/context/GroupsClientContext.js.map +1 -0
  259. package/lib/cjs/components/context/IModelsClientContext.js.map +1 -1
  260. package/lib/cjs/components/context/ITwinsClientContext.js +3 -3
  261. package/lib/cjs/components/context/ITwinsClientContext.js.map +1 -1
  262. package/lib/cjs/components/context/MappingClientContext.d.ts +12 -0
  263. package/lib/cjs/components/context/MappingClientContext.js +14 -2
  264. package/lib/cjs/components/context/MappingClientContext.js.map +1 -1
  265. package/lib/cjs/components/context/PropertiesClientContext.d.ts +20 -0
  266. package/lib/cjs/components/context/PropertiesClientContext.js +45 -0
  267. package/lib/cjs/components/context/PropertiesClientContext.js.map +1 -0
  268. package/lib/cjs/components/context/PropertiesGroupColorContext.js +3 -3
  269. package/lib/cjs/components/context/PropertiesGroupColorContext.js.map +1 -1
  270. package/lib/cjs/components/context/PropertyGridWrapperContext.js +3 -3
  271. package/lib/cjs/components/context/PropertyGridWrapperContext.js.map +1 -1
  272. package/lib/cjs/components/customUI/DefaultGroupingUI.js +3 -3
  273. package/lib/cjs/components/customUI/DefaultGroupingUI.js.map +1 -1
  274. package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.d.ts +5 -1
  275. package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js +17 -18
  276. package/lib/cjs/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
  277. package/lib/cjs/components/customUI/GroupingMappingCustomUI.d.ts +15 -3
  278. package/lib/cjs/components/customUI/GroupingMappingCustomUI.js +3 -0
  279. package/lib/cjs/components/customUI/GroupingMappingCustomUI.js.map +1 -1
  280. package/lib/cjs/components/customUI/ManualGroupingCustomUI.d.ts +5 -1
  281. package/lib/cjs/components/customUI/ManualGroupingCustomUI.js +12 -8
  282. package/lib/cjs/components/customUI/ManualGroupingCustomUI.js.map +1 -1
  283. package/lib/cjs/components/customUI/SearchGroupingCustomUI.d.ts +5 -1
  284. package/lib/cjs/components/customUI/SearchGroupingCustomUI.js +20 -45
  285. package/lib/cjs/components/customUI/SearchGroupingCustomUI.js.map +1 -1
  286. package/lib/cjs/decorators/BboxDimensionsDecorator.js +3 -10
  287. package/lib/cjs/decorators/BboxDimensionsDecorator.js.map +1 -1
  288. package/lib/cjs/formula/FormulaDataTypeResolver.d.ts +1 -0
  289. package/lib/cjs/formula/FormulaDataTypeResolver.js +4 -3
  290. package/lib/cjs/formula/FormulaDataTypeResolver.js.map +1 -1
  291. package/lib/cjs/formula/FormulaFunctionProvider.js +146 -65
  292. package/lib/cjs/formula/FormulaFunctionProvider.js.map +1 -1
  293. package/lib/cjs/formula/FormulaOperatorsProvider.js +139 -45
  294. package/lib/cjs/formula/FormulaOperatorsProvider.js.map +1 -1
  295. package/lib/cjs/formula/FormulaSplitter.js +63 -13
  296. package/lib/cjs/formula/FormulaSplitter.js.map +1 -1
  297. package/lib/cjs/formula/FormulaTokensDataTypeResolver.js +9 -16
  298. package/lib/cjs/formula/FormulaTokensDataTypeResolver.js.map +1 -1
  299. package/lib/cjs/formula/IResult.d.ts +3 -0
  300. package/lib/cjs/formula/IResult.js.map +1 -1
  301. package/lib/cjs/formula/InfixToPostfixConverter.js +4 -4
  302. package/lib/cjs/formula/InfixToPostfixConverter.js.map +1 -1
  303. package/lib/cjs/formula/InputStream.js +3 -3
  304. package/lib/cjs/formula/InputStream.js.map +1 -1
  305. package/lib/cjs/formula/ParenthesisValidator.js +3 -3
  306. package/lib/cjs/formula/ParenthesisValidator.js.map +1 -1
  307. package/lib/cjs/formula/Queue.js +3 -3
  308. package/lib/cjs/formula/Queue.js.map +1 -1
  309. package/lib/cjs/formula/Stack.js +3 -3
  310. package/lib/cjs/formula/Stack.js.map +1 -1
  311. package/lib/cjs/formula/StringBuilder.js +3 -3
  312. package/lib/cjs/formula/StringBuilder.js.map +1 -1
  313. package/lib/cjs/formula/Types.d.ts +16 -1
  314. package/lib/cjs/formula/Types.js.map +1 -1
  315. package/lib/cjs/formula/Utils.js +4 -4
  316. package/lib/cjs/formula/Utils.js.map +1 -1
  317. package/lib/cjs/grouping-mapping-widget.d.ts +5 -3
  318. package/lib/cjs/grouping-mapping-widget.js +14 -4
  319. package/lib/cjs/grouping-mapping-widget.js.map +1 -1
  320. package/lib/cjs/test/GroupPropertyUtils.test.js +27 -65
  321. package/lib/cjs/test/GroupPropertyUtils.test.js.map +1 -1
  322. package/lib/cjs/test/GroupingMappingCustomUI.test.js +21 -12
  323. package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
  324. package/lib/cjs/test/MockFactory.js +3 -3
  325. package/lib/cjs/test/MockFactory.js.map +1 -1
  326. package/lib/cjs/test/PropertyFieldsHelpers.js +3 -3
  327. package/lib/cjs/test/PropertyFieldsHelpers.js.map +1 -1
  328. package/lib/cjs/test/QueryBuilder.test.js +3 -3
  329. package/lib/cjs/test/QueryBuilder.test.js.map +1 -1
  330. package/lib/cjs/test/QueryBuilder.testdata.js +3 -3
  331. package/lib/cjs/test/QueryBuilder.testdata.js.map +1 -1
  332. package/lib/cjs/test/QueryBuilderTestData.js.map +1 -1
  333. package/lib/cjs/test/WidgetHeader.test.js +3 -3
  334. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  335. package/lib/cjs/test/test-utils.js +4 -4
  336. package/lib/cjs/test/test-utils.js.map +1 -1
  337. package/lib/esm/WidgetShell/GroupingMapping.d.ts +5 -5
  338. package/lib/esm/WidgetShell/GroupingMapping.js +3 -5
  339. package/lib/esm/WidgetShell/GroupingMapping.js.map +1 -1
  340. package/lib/esm/WidgetShell/GroupingMappingContent.js +4 -4
  341. package/lib/esm/WidgetShell/GroupingMappingContent.js.map +1 -1
  342. package/lib/esm/WidgetShell/GroupingMappingHeader.d.ts +1 -1
  343. package/lib/esm/WidgetShell/GroupingMappingHeader.js +5 -5
  344. package/lib/esm/WidgetShell/GroupingMappingHeader.js.map +1 -1
  345. package/lib/esm/WidgetShell/GroupingMappingWidget.d.ts +4 -0
  346. package/lib/esm/WidgetShell/GroupingMappingWidget.js +6 -4
  347. package/lib/esm/WidgetShell/GroupingMappingWidget.js.map +1 -1
  348. package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js +28 -8
  349. package/lib/esm/WidgetShell/Router/GroupingMappingRouter.js.map +1 -1
  350. package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.d.ts +1 -1
  351. package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js +7 -7
  352. package/lib/esm/WidgetShell/WidgetHeader/WidgetHeader.js.map +1 -1
  353. package/lib/esm/common/hooks/useIsMounted.js +3 -3
  354. package/lib/esm/common/hooks/useIsMounted.js.map +1 -1
  355. package/lib/esm/common/hooks/useMemoizedCollectionPick.js +3 -3
  356. package/lib/esm/common/hooks/useMemoizedCollectionPick.js.map +1 -1
  357. package/lib/esm/common/utils.js +3 -3
  358. package/lib/esm/common/utils.js.map +1 -1
  359. package/lib/esm/common/viewerUtils.js +2 -2
  360. package/lib/esm/common/viewerUtils.js.map +1 -1
  361. package/lib/esm/components/Constants.js +4 -4
  362. package/lib/esm/components/Constants.js.map +1 -1
  363. package/lib/esm/components/GroupingMappingContext.d.ts +19 -3
  364. package/lib/esm/components/GroupingMappingContext.js +41 -14
  365. package/lib/esm/components/GroupingMappingContext.js.map +1 -1
  366. package/lib/esm/components/Groups/Editing/GroupAction.d.ts +10 -2
  367. package/lib/esm/components/Groups/Editing/GroupAction.js +17 -15
  368. package/lib/esm/components/Groups/Editing/GroupAction.js.map +1 -1
  369. package/lib/esm/components/Groups/Editing/GroupDetails.d.ts +1 -1
  370. package/lib/esm/components/Groups/Editing/GroupDetails.js +5 -7
  371. package/lib/esm/components/Groups/Editing/GroupDetails.js.map +1 -1
  372. package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.d.ts +1 -1
  373. package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js +4 -4
  374. package/lib/esm/components/Groups/Editing/GroupDetailsActionPanel.js.map +1 -1
  375. package/lib/esm/components/Groups/Editing/GroupDetailsStep.js +4 -4
  376. package/lib/esm/components/Groups/Editing/GroupDetailsStep.js.map +1 -1
  377. package/lib/esm/components/Groups/GroupColorLegend.d.ts +3 -3
  378. package/lib/esm/components/Groups/GroupColorLegend.js +3 -3
  379. package/lib/esm/components/Groups/GroupColorLegend.js.map +1 -1
  380. package/lib/esm/components/Groups/GroupListItem.d.ts +4 -4
  381. package/lib/esm/components/Groups/GroupListItem.js +6 -4
  382. package/lib/esm/components/Groups/GroupListItem.js.map +1 -1
  383. package/lib/esm/components/Groups/GroupListItem.scss +14 -0
  384. package/lib/esm/components/Groups/GroupMenuActions.d.ts +4 -4
  385. package/lib/esm/components/Groups/GroupMenuActions.js +17 -6
  386. package/lib/esm/components/Groups/GroupMenuActions.js.map +1 -1
  387. package/lib/esm/components/Groups/GroupMenuActions.scss +2 -0
  388. package/lib/esm/components/Groups/GroupOverlapProgressBar.d.ts +2 -2
  389. package/lib/esm/components/Groups/GroupOverlapProgressBar.js.map +1 -1
  390. package/lib/esm/components/Groups/Groups.d.ts +12 -4
  391. package/lib/esm/components/Groups/Groups.js +7 -3
  392. package/lib/esm/components/Groups/Groups.js.map +1 -1
  393. package/lib/esm/components/Groups/GroupsAddButton.d.ts +1 -1
  394. package/lib/esm/components/Groups/GroupsAddButton.js +4 -4
  395. package/lib/esm/components/Groups/GroupsAddButton.js.map +1 -1
  396. package/lib/esm/components/Groups/GroupsAddButton.scss +1 -1
  397. package/lib/esm/components/Groups/GroupsShowHideButtons.d.ts +5 -5
  398. package/lib/esm/components/Groups/GroupsShowHideButtons.js +2 -2
  399. package/lib/esm/components/Groups/GroupsShowHideButtons.js.map +1 -1
  400. package/lib/esm/components/Groups/GroupsView.d.ts +19 -11
  401. package/lib/esm/components/Groups/GroupsView.js +14 -12
  402. package/lib/esm/components/Groups/GroupsView.js.map +1 -1
  403. package/lib/esm/components/Groups/GroupsView.scss +1 -1
  404. package/lib/esm/components/Groups/GroupsVisualization.d.ts +8 -0
  405. package/lib/esm/components/Groups/GroupsVisualization.js +29 -26
  406. package/lib/esm/components/Groups/GroupsVisualization.js.map +1 -1
  407. package/lib/esm/components/Groups/GroupsVisualizationActions.js +4 -4
  408. package/lib/esm/components/Groups/GroupsVisualizationActions.js.map +1 -1
  409. package/lib/esm/components/Groups/OverlappedElementsInformationPanel.d.ts +4 -4
  410. package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js +5 -5
  411. package/lib/esm/components/Groups/OverlappedElementsInformationPanel.js.map +1 -1
  412. package/lib/esm/components/Groups/OverlappedElementsInformationPanel.scss +7 -7
  413. package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js +13 -35
  414. package/lib/esm/components/Groups/QueryBuilder/QueryBuilder.js.map +1 -1
  415. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js +4 -4
  416. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderActionPanel.js.map +1 -1
  417. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.d.ts +3 -3
  418. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js +4 -4
  419. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderCustomUI.js.map +1 -1
  420. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js +4 -4
  421. package/lib/esm/components/Groups/QueryBuilder/QueryBuilderStep.js.map +1 -1
  422. package/lib/esm/components/Groups/ToggleGroupVisibility.js +3 -3
  423. package/lib/esm/components/Groups/ToggleGroupVisibility.js.map +1 -1
  424. package/lib/esm/components/Groups/groupsHelpers.d.ts +2 -2
  425. package/lib/esm/components/Groups/groupsHelpers.js +9 -5
  426. package/lib/esm/components/Groups/groupsHelpers.js.map +1 -1
  427. package/lib/esm/components/Groups/hooks/useFetchGroups.d.ts +3 -3
  428. package/lib/esm/components/Groups/hooks/useFetchGroups.js +6 -5
  429. package/lib/esm/components/Groups/hooks/useFetchGroups.js.map +1 -1
  430. package/lib/esm/components/Groups/hooks/useGroupsOperations.d.ts +16 -8
  431. package/lib/esm/components/Groups/hooks/useGroupsOperations.js +14 -10
  432. package/lib/esm/components/Groups/hooks/useGroupsOperations.js.map +1 -1
  433. package/lib/esm/components/Groups/hooks/useKeySetHiliteQueries.d.ts +4 -4
  434. package/lib/esm/components/Groups/hooks/useKeySetHiliteQueries.js.map +1 -1
  435. package/lib/esm/components/Groups/hooks/useVisualization.js +3 -5
  436. package/lib/esm/components/Groups/hooks/useVisualization.js.map +1 -1
  437. package/lib/esm/components/Mappings/BlockingOverlay.js +3 -3
  438. package/lib/esm/components/Mappings/BlockingOverlay.js.map +1 -1
  439. package/lib/esm/components/Mappings/Editing/MappingAction.d.ts +8 -0
  440. package/lib/esm/components/Mappings/Editing/MappingAction.js +16 -15
  441. package/lib/esm/components/Mappings/Editing/MappingAction.js.map +1 -1
  442. package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.d.ts +1 -1
  443. package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js +1 -1
  444. package/lib/esm/components/Mappings/Extraction/ExtractionLogCustomFilter.js.map +1 -1
  445. package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js +12 -7
  446. package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
  447. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +3 -3
  448. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -1
  449. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +3 -3
  450. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -1
  451. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +3 -3
  452. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -1
  453. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +3 -3
  454. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -1
  455. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.d.ts +1 -1
  456. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.js +9 -9
  457. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.js.map +1 -1
  458. package/lib/esm/components/Mappings/Extraction/ExtractionStatusIcon.js +4 -4
  459. package/lib/esm/components/Mappings/Extraction/ExtractionStatusIcon.js.map +1 -1
  460. package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.d.ts +1 -2
  461. package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js +31 -34
  462. package/lib/esm/components/Mappings/Import/ConfirmMappingsImport.js.map +1 -1
  463. package/lib/esm/components/Mappings/Import/MappingImportWizardModal.d.ts +1 -1
  464. package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js +4 -4
  465. package/lib/esm/components/Mappings/Import/MappingImportWizardModal.js.map +1 -1
  466. package/lib/esm/components/Mappings/Import/SelectIModel.d.ts +1 -1
  467. package/lib/esm/components/Mappings/Import/SelectIModel.js +5 -5
  468. package/lib/esm/components/Mappings/Import/SelectIModel.js.map +1 -1
  469. package/lib/esm/components/Mappings/Import/SelectITwin.js +2 -2
  470. package/lib/esm/components/Mappings/Import/SelectITwin.js.map +1 -1
  471. package/lib/esm/components/Mappings/Import/SelectITwin.scss +1 -1
  472. package/lib/esm/components/Mappings/Import/SelectMappings.d.ts +1 -1
  473. package/lib/esm/components/Mappings/Import/SelectMappings.js +8 -8
  474. package/lib/esm/components/Mappings/Import/SelectMappings.js.map +1 -1
  475. package/lib/esm/components/Mappings/MappingListItem.js.map +1 -1
  476. package/lib/esm/components/Mappings/MappingViewActionGroup.d.ts +1 -1
  477. package/lib/esm/components/Mappings/MappingViewActionGroup.js +8 -8
  478. package/lib/esm/components/Mappings/MappingViewActionGroup.js.map +1 -1
  479. package/lib/esm/components/Mappings/Mappings.d.ts +8 -0
  480. package/lib/esm/components/Mappings/Mappings.js +7 -3
  481. package/lib/esm/components/Mappings/Mappings.js.map +1 -1
  482. package/lib/esm/components/Mappings/MappingsView.d.ts +7 -0
  483. package/lib/esm/components/Mappings/MappingsView.js +19 -17
  484. package/lib/esm/components/Mappings/MappingsView.js.map +1 -1
  485. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.d.ts +1 -2
  486. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js +11 -8
  487. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
  488. package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.d.ts +1 -1
  489. package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.js +9 -8
  490. package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.js.map +1 -1
  491. package/lib/esm/components/Mappings/hooks/useFetchMappings.js +2 -2
  492. package/lib/esm/components/Mappings/hooks/useFetchMappings.js.map +1 -1
  493. package/lib/esm/components/Mappings/hooks/useMappingsOperations.d.ts +9 -2
  494. package/lib/esm/components/Mappings/hooks/useMappingsOperations.js +45 -23
  495. package/lib/esm/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
  496. package/lib/esm/components/Mappings/hooks/useRunExtraction.d.ts +2 -2
  497. package/lib/esm/components/Mappings/hooks/useRunExtraction.js +27 -19
  498. package/lib/esm/components/Mappings/hooks/useRunExtraction.js.map +1 -1
  499. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.d.ts +11 -3
  500. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +30 -17
  501. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
  502. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.d.ts +11 -3
  503. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +33 -23
  504. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
  505. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.d.ts +3 -3
  506. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.js +8 -6
  507. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.js.map +1 -1
  508. package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js +5 -7
  509. package/lib/esm/components/Properties/CalculatedProperties/SharedCalculatedPropertyForms.js.map +1 -1
  510. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.d.ts +11 -3
  511. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js +76 -52
  512. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
  513. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.scss +1 -1
  514. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.d.ts +3 -3
  515. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.js +23 -17
  516. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.js.map +1 -1
  517. package/lib/esm/components/Properties/GroupColorToggle.d.ts +2 -2
  518. package/lib/esm/components/Properties/GroupColorToggle.js +4 -4
  519. package/lib/esm/components/Properties/GroupColorToggle.js.map +1 -1
  520. package/lib/esm/components/Properties/GroupInformationPanel.js +3 -3
  521. package/lib/esm/components/Properties/GroupInformationPanel.js.map +1 -1
  522. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.d.ts +13 -5
  523. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js +43 -44
  524. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
  525. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.d.ts +1 -1
  526. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.js +5 -5
  527. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.js.map +1 -1
  528. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.d.ts +4 -4
  529. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js +22 -18
  530. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
  531. package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.d.ts +3 -5
  532. package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.js +21 -66
  533. package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.js.map +1 -1
  534. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +26 -35
  535. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -1
  536. package/lib/esm/components/Properties/GroupProperties/SaveModal.d.ts +1 -1
  537. package/lib/esm/components/Properties/GroupProperties/SaveModal.js +8 -8
  538. package/lib/esm/components/Properties/GroupProperties/SaveModal.js.map +1 -1
  539. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js +4 -4
  540. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
  541. package/lib/esm/components/Properties/PropertyAction.js +9 -21
  542. package/lib/esm/components/Properties/PropertyAction.js.map +1 -1
  543. package/lib/esm/components/Properties/PropertyMenu.d.ts +13 -5
  544. package/lib/esm/components/Properties/PropertyMenu.js +16 -18
  545. package/lib/esm/components/Properties/PropertyMenu.js.map +1 -1
  546. package/lib/esm/components/Properties/PropertyMenuWithVisualization.d.ts +8 -0
  547. package/lib/esm/components/Properties/PropertyMenuWithVisualization.js +9 -5
  548. package/lib/esm/components/Properties/PropertyMenuWithVisualization.js.map +1 -1
  549. package/lib/esm/components/Properties/PropertyNameCell.d.ts +1 -1
  550. package/lib/esm/components/Properties/PropertyNameCell.js +4 -4
  551. package/lib/esm/components/Properties/PropertyNameCell.js.map +1 -1
  552. package/lib/esm/components/Properties/PropertyTable.js +5 -6
  553. package/lib/esm/components/Properties/PropertyTable.js.map +1 -1
  554. package/lib/esm/components/Properties/PropertyTableToolbar.d.ts +1 -1
  555. package/lib/esm/components/Properties/PropertyTableToolbar.js +4 -4
  556. package/lib/esm/components/Properties/PropertyTableToolbar.js.map +1 -1
  557. package/lib/esm/components/Properties/hooks/useFormulaValidation.d.ts +2 -1
  558. package/lib/esm/components/Properties/hooks/useFormulaValidation.js +11 -7
  559. package/lib/esm/components/Properties/hooks/useFormulaValidation.js.map +1 -1
  560. package/lib/esm/components/Properties/hooks/usePropertiesQuery.d.ts +4 -0
  561. package/lib/esm/components/Properties/hooks/usePropertiesQuery.js +8 -0
  562. package/lib/esm/components/Properties/hooks/usePropertiesQuery.js.map +1 -0
  563. package/lib/esm/components/Properties/hooks/useValidator.js +4 -4
  564. package/lib/esm/components/Properties/hooks/useValidator.js.map +1 -1
  565. package/lib/esm/components/SharedComponents/ActionPanel.d.ts +1 -1
  566. package/lib/esm/components/SharedComponents/ActionPanel.js +9 -10
  567. package/lib/esm/components/SharedComponents/ActionPanel.js.map +1 -1
  568. package/lib/esm/components/SharedComponents/DeleteModal.d.ts +1 -1
  569. package/lib/esm/components/SharedComponents/DeleteModal.js +10 -11
  570. package/lib/esm/components/SharedComponents/DeleteModal.js.map +1 -1
  571. package/lib/esm/components/SharedComponents/EmptyMessage.js +4 -4
  572. package/lib/esm/components/SharedComponents/EmptyMessage.js.map +1 -1
  573. package/lib/esm/components/SharedComponents/LoadingOverlay.js +4 -4
  574. package/lib/esm/components/SharedComponents/LoadingOverlay.js.map +1 -1
  575. package/lib/esm/components/SharedComponents/LoadingSpinner.js +3 -3
  576. package/lib/esm/components/SharedComponents/LoadingSpinner.js.map +1 -1
  577. package/lib/esm/components/SharedComponents/StatusIcon.js +3 -3
  578. package/lib/esm/components/SharedComponents/StatusIcon.js.map +1 -1
  579. package/lib/esm/components/context/ExtractionClientContext.js +3 -3
  580. package/lib/esm/components/context/ExtractionClientContext.js.map +1 -1
  581. package/lib/esm/components/context/ExtractionStateJobContext.js +3 -3
  582. package/lib/esm/components/context/ExtractionStateJobContext.js.map +1 -1
  583. package/lib/esm/components/context/GroupHilitedElementsContext.js +3 -3
  584. package/lib/esm/components/context/GroupHilitedElementsContext.js.map +1 -1
  585. package/lib/esm/components/context/GroupingApiConfigContext.d.ts +16 -0
  586. package/lib/esm/components/context/GroupingApiConfigContext.js +7 -0
  587. package/lib/esm/components/context/GroupingApiConfigContext.js.map +1 -1
  588. package/lib/esm/components/context/GroupingMappingCustomUIContext.js +3 -3
  589. package/lib/esm/components/context/GroupingMappingCustomUIContext.js.map +1 -1
  590. package/lib/esm/components/context/GroupsClientContext.d.ts +20 -0
  591. package/lib/esm/components/context/GroupsClientContext.js +39 -0
  592. package/lib/esm/components/context/GroupsClientContext.js.map +1 -0
  593. package/lib/esm/components/context/IModelsClientContext.js.map +1 -1
  594. package/lib/esm/components/context/ITwinsClientContext.js +3 -3
  595. package/lib/esm/components/context/ITwinsClientContext.js.map +1 -1
  596. package/lib/esm/components/context/MappingClientContext.d.ts +12 -0
  597. package/lib/esm/components/context/MappingClientContext.js +15 -3
  598. package/lib/esm/components/context/MappingClientContext.js.map +1 -1
  599. package/lib/esm/components/context/PropertiesClientContext.d.ts +20 -0
  600. package/lib/esm/components/context/PropertiesClientContext.js +39 -0
  601. package/lib/esm/components/context/PropertiesClientContext.js.map +1 -0
  602. package/lib/esm/components/context/PropertiesGroupColorContext.js +3 -3
  603. package/lib/esm/components/context/PropertiesGroupColorContext.js.map +1 -1
  604. package/lib/esm/components/context/PropertyGridWrapperContext.js +3 -3
  605. package/lib/esm/components/context/PropertyGridWrapperContext.js.map +1 -1
  606. package/lib/esm/components/customUI/DefaultGroupingUI.js +3 -3
  607. package/lib/esm/components/customUI/DefaultGroupingUI.js.map +1 -1
  608. package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.d.ts +5 -1
  609. package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js +18 -19
  610. package/lib/esm/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
  611. package/lib/esm/components/customUI/GroupingMappingCustomUI.d.ts +15 -3
  612. package/lib/esm/components/customUI/GroupingMappingCustomUI.js +3 -0
  613. package/lib/esm/components/customUI/GroupingMappingCustomUI.js.map +1 -1
  614. package/lib/esm/components/customUI/ManualGroupingCustomUI.d.ts +5 -1
  615. package/lib/esm/components/customUI/ManualGroupingCustomUI.js +12 -8
  616. package/lib/esm/components/customUI/ManualGroupingCustomUI.js.map +1 -1
  617. package/lib/esm/components/customUI/SearchGroupingCustomUI.d.ts +5 -1
  618. package/lib/esm/components/customUI/SearchGroupingCustomUI.js +20 -45
  619. package/lib/esm/components/customUI/SearchGroupingCustomUI.js.map +1 -1
  620. package/lib/esm/decorators/BboxDimensionsDecorator.js +5 -12
  621. package/lib/esm/decorators/BboxDimensionsDecorator.js.map +1 -1
  622. package/lib/esm/formula/FormulaDataTypeResolver.d.ts +1 -0
  623. package/lib/esm/formula/FormulaDataTypeResolver.js +4 -3
  624. package/lib/esm/formula/FormulaDataTypeResolver.js.map +1 -1
  625. package/lib/esm/formula/FormulaFunctionProvider.js +146 -65
  626. package/lib/esm/formula/FormulaFunctionProvider.js.map +1 -1
  627. package/lib/esm/formula/FormulaOperatorsProvider.js +139 -45
  628. package/lib/esm/formula/FormulaOperatorsProvider.js.map +1 -1
  629. package/lib/esm/formula/FormulaSplitter.js +63 -13
  630. package/lib/esm/formula/FormulaSplitter.js.map +1 -1
  631. package/lib/esm/formula/FormulaTokensDataTypeResolver.js +9 -16
  632. package/lib/esm/formula/FormulaTokensDataTypeResolver.js.map +1 -1
  633. package/lib/esm/formula/IResult.d.ts +3 -0
  634. package/lib/esm/formula/IResult.js.map +1 -1
  635. package/lib/esm/formula/InfixToPostfixConverter.js +5 -5
  636. package/lib/esm/formula/InfixToPostfixConverter.js.map +1 -1
  637. package/lib/esm/formula/InputStream.js +3 -3
  638. package/lib/esm/formula/InputStream.js.map +1 -1
  639. package/lib/esm/formula/ParenthesisValidator.js +3 -3
  640. package/lib/esm/formula/ParenthesisValidator.js.map +1 -1
  641. package/lib/esm/formula/Queue.js +3 -3
  642. package/lib/esm/formula/Queue.js.map +1 -1
  643. package/lib/esm/formula/Stack.js +3 -3
  644. package/lib/esm/formula/Stack.js.map +1 -1
  645. package/lib/esm/formula/StringBuilder.js +3 -3
  646. package/lib/esm/formula/StringBuilder.js.map +1 -1
  647. package/lib/esm/formula/Types.d.ts +16 -1
  648. package/lib/esm/formula/Types.js.map +1 -1
  649. package/lib/esm/formula/Utils.js +4 -4
  650. package/lib/esm/formula/Utils.js.map +1 -1
  651. package/lib/esm/grouping-mapping-widget.d.ts +5 -3
  652. package/lib/esm/grouping-mapping-widget.js +8 -6
  653. package/lib/esm/grouping-mapping-widget.js.map +1 -1
  654. package/lib/esm/test/GroupPropertyUtils.test.js +28 -66
  655. package/lib/esm/test/GroupPropertyUtils.test.js.map +1 -1
  656. package/lib/esm/test/GroupingMappingCustomUI.test.js +21 -12
  657. package/lib/esm/test/GroupingMappingCustomUI.test.js.map +1 -1
  658. package/lib/esm/test/MockFactory.js +3 -3
  659. package/lib/esm/test/MockFactory.js.map +1 -1
  660. package/lib/esm/test/PropertyFieldsHelpers.js +3 -3
  661. package/lib/esm/test/PropertyFieldsHelpers.js.map +1 -1
  662. package/lib/esm/test/QueryBuilder.test.js +3 -3
  663. package/lib/esm/test/QueryBuilder.test.js.map +1 -1
  664. package/lib/esm/test/QueryBuilder.testdata.js +3 -3
  665. package/lib/esm/test/QueryBuilder.testdata.js.map +1 -1
  666. package/lib/esm/test/QueryBuilderTestData.js.map +1 -1
  667. package/lib/esm/test/WidgetHeader.test.js +3 -3
  668. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  669. package/lib/esm/test/test-utils.js +4 -4
  670. package/lib/esm/test/test-utils.js.map +1 -1
  671. package/package.json +10 -5
  672. package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.d.ts +0 -4
  673. package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.js +0 -12
  674. package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.js.map +0 -1
  675. package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.d.ts +0 -4
  676. package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.js +0 -12
  677. package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.js.map +0 -1
  678. package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.d.ts +0 -4
  679. package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.js +0 -12
  680. package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.js.map +0 -1
  681. package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.d.ts +0 -4
  682. package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.js +0 -8
  683. package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.js.map +0 -1
  684. package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.d.ts +0 -4
  685. package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.js +0 -8
  686. package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.js.map +0 -1
  687. package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.d.ts +0 -4
  688. package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.js +0 -8
  689. package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"groupsHelpers.js","sourceRoot":"","sources":["../../../../src/components/Groups/groupsHelpers.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 { FeatureOverrideType } from \"@itwin/core-common\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { Group } from \"@itwin/insights-client\";\nimport type { OverlappedElementGroupPairs, OverlappedInfo } from \"../context/GroupHilitedElementsContext\";\nimport { clearEmphasizedOverriddenElements, clearHiddenElements, emphasizeElements, getHiliteIds, hideElements, overrideElements } from \"../../common/viewerUtils\";\n\nconst GOLDEN_ANGLE_MULTIPLIER = 1.5; // Multiplier to spread colors more uniformly.\nconst BASE_HUE_OFFSET = 60; // Initial hue offset to avoid certain colors e.g 0 offset would begin with red.\nconst HUE_ADJUSTMENT_STEP = 15; // Step to adjust the hue to avoid the red spectrum.\nconst RED_HUE_LOWER_BOUND = 330; // Lower bound of the red hue spectrum to avoid.\nconst RED_HUE_UPPER_BOUND = 30; // Upper bound of the red hue spectrum to avoid.\nconst GOLDENANGLE = 180 * (3 - Math.sqrt(5));\n\nconst generateHSL = (hue: number, saturation: number = 100, lightness: number = 50) => {\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`;\n};\n\nexport const getGroupColor = (index: number) => {\n let hue = (index * GOLDENANGLE * GOLDEN_ANGLE_MULTIPLIER + BASE_HUE_OFFSET) % 360;\n\n while (hue >= RED_HUE_LOWER_BOUND || hue <= RED_HUE_UPPER_BOUND) {\n hue = (hue + HUE_ADJUSTMENT_STEP) % 360;\n }\n\n return generateHSL(hue);\n};\n\nconst processGroupVisualization = async (\n overlappedElementGroupPairs: OverlappedElementGroupPairs,\n hiddenGroupsIds: Set<string>,\n doEmphasizeElements: boolean,\n color: string,\n replace: boolean,\n setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void,\n) => {\n const hilitedIds = Array.from(overlappedElementGroupPairs.elementIds);\n\n overrideElements(hilitedIds, color, FeatureOverrideType.ColorAndAlpha, replace);\n setNumberOfVisualizedGroups((numberOfVisualizedGroups) => numberOfVisualizedGroups + 1);\n\n doEmphasizeElements && emphasizeElements(hilitedIds, undefined);\n\n for (const id of overlappedElementGroupPairs.groupIds) {\n if (hiddenGroupsIds.has(id)) {\n return [];\n }\n }\n return hilitedIds;\n};\n\nexport type GroupsElementIds = {\n groupId: string;\n elementIds: string[];\n}[];\n\nexport const hideGroupIds = (hiddenGroupIds: Set<string>, groupsWithGroupedOverlaps: OverlappedElementGroupPairs[] ) => {\n hiddenGroupIds.forEach((groupId) => {\n hideGroupConsideringOverlaps(groupsWithGroupedOverlaps, groupId, hiddenGroupIds);\n });\n};\n\nexport const visualizeGroupColors = async (\n hiddenGroupsIds: Set<string>,\n groupsWithGroupedOverlaps: OverlappedElementGroupPairs[],\n setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void,\n doEmphasizeElements: boolean = true,\n) => {\n clearEmphasizedOverriddenElements();\n\n const singleGroupPromises = groupsWithGroupedOverlaps\n .filter((group) => group.groupIds.size === 1)\n .map(async (group, index) =>\n processGroupVisualization(\n group,\n hiddenGroupsIds,\n doEmphasizeElements,\n getGroupColor(index), // color for single group\n false, // Shouldn't matter as replacement only accounts for same colored overrides.\n setNumberOfVisualizedGroups,\n )\n );\n\n const overlappedGroupPromises = groupsWithGroupedOverlaps\n .filter((group) => group.groupIds.size !== 1)\n .map(async (group) =>\n processGroupVisualization(\n group,\n hiddenGroupsIds,\n doEmphasizeElements,\n generateHSL(0), // color for group of overlapped elements\n false,\n setNumberOfVisualizedGroups,\n )\n );\n\n clearHiddenElements();\n\n const allPromises = [...singleGroupPromises, ...overlappedGroupPromises];\n\n const allIds = (await Promise.all(allPromises)).flat();\n return allIds;\n};\n\nexport const getHiliteIdsAndKeysetFromGroup = async (\n iModelConnection: IModelConnection,\n group: Group,\n) => {\n const query = group.query;\n const result = await getHiliteIds(query, iModelConnection);\n return {query, result};\n\n};\n\nconst getOverlappedElementsInfo = (overlappedElements: OverlappedElementGroupPairs[]) => {\n const overlappedElementsInfo: Map<string, OverlappedInfo[]> = new Map();\n\n overlappedElements.forEach((elementGroup) => {\n const { elementIds, groupIds } = elementGroup;\n\n groupIds.forEach((group) => {\n const otherGroups = Array.from(groupIds).filter((grp) => grp !== group);\n const overlappedInfoArray = overlappedElementsInfo.get(group) ?? [];\n overlappedInfoArray.push({ groupIds: otherGroups, elements: Array.from(elementIds) });\n overlappedElementsInfo.set(group, overlappedInfoArray);\n });\n });\n return overlappedElementsInfo;\n};\n\nconst mergeElementsByGroup = (elems: Map<string, Set<string>>) => {\n const mergedList: Map<string, OverlappedElementGroupPairs> = new Map();\n elems.forEach((groupIds, elementId) => {\n const sortedGroups = Array.from(groupIds).sort();\n const key = sortedGroups.join(\"-\");\n const overlap = mergedList.get(key);\n if (overlap) {\n overlap.elementIds.add(elementId);\n } else {\n mergedList.set(key, { elementIds: new Set([elementId]), groupIds });\n }\n });\n return mergedList;\n};\n\nexport const generateOverlappedGroups = (\n groupsElementIds: GroupsElementIds,\n) => {\n const elems: Map<string, Set<string>> = new Map();\n const groupElementCount: Map<string, number> = new Map();\n\n // Build the elems map for associations between elements and their groups.\n for (const groupInfo of groupsElementIds) {\n for (const elem of groupInfo.elementIds) {\n const elemGroups = elems.get(elem) || new Set<string>();\n elemGroups.add(groupInfo.groupId);\n elems.set(elem, elemGroups);\n }\n groupElementCount.set(groupInfo.groupId, groupInfo.elementIds.length);\n }\n\n // Construct the unique list of all groups and their overlapped groups combinations\n const allGroups: OverlappedElementGroupPairs[] = groupsElementIds.map((groupInfo) => {\n const nonOverlappingElements = Array.from(new Set(groupInfo.elementIds)).filter((elem) => elems.get(elem)!.size === 1);\n groupElementCount.set(groupInfo.groupId, groupInfo.elementIds.length);\n return { elementIds: new Set(nonOverlappingElements), groupIds: new Set([groupInfo.groupId]) };\n });\n\n const mergedList = mergeElementsByGroup(elems);\n const overlappedGroupsInformation: OverlappedElementGroupPairs[] = Array.from(mergedList.values()).filter((value) => value.groupIds.size > 1);\n\n return { groupsWithGroupedOverlaps: [...allGroups, ...overlappedGroupsInformation], overlappedElementsInfo: getOverlappedElementsInfo(overlappedGroupsInformation), numberOfElementsInGroups: groupElementCount };\n};\n\nexport const hideGroupConsideringOverlaps = (\n overlappedElementGroupPairs: OverlappedElementGroupPairs[],\n groupIdToHide: string,\n hiddenGroupsIds: Set<string>\n) => {\n const elementsToPotentiallyHide = new Set<string>();\n\n // Check each entry in overlappedElementGroupPairs\n for (const entry of overlappedElementGroupPairs) {\n // If the groupToHide is part of this entry\n if (entry.groupIds.has(groupIdToHide)) {\n // If this is a unique entry (no overlaps for this group), add all its elements to hide list\n if (entry.groupIds.size === 1) {\n for (const elem of entry.elementIds) {\n elementsToPotentiallyHide.add(elem);\n }\n } else {\n // If there are overlaps, only hide if all overlapping groups are hidden\n const allOtherGroupsHidden = Array.from(entry.groupIds).every(\n (groupId) =>\n groupId === groupIdToHide || hiddenGroupsIds.has(groupId)\n );\n if (allOtherGroupsHidden) {\n for (const elem of entry.elementIds) {\n elementsToPotentiallyHide.add(elem);\n }\n }\n }\n }\n }\n\n // Now hide all elements in elementsToPotentiallyHide\n hideElements(Array.from(elementsToPotentiallyHide));\n};\n"]}
1
+ {"version":3,"file":"groupsHelpers.js","sourceRoot":"","sources":["../../../../src/components/Groups/groupsHelpers.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 { FeatureOverrideType } from \"@itwin/core-common\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { GroupMinimal } from \"@itwin/insights-client\";\nimport type { OverlappedElementGroupPairs, OverlappedInfo } from \"../context/GroupHilitedElementsContext\";\nimport {\n clearEmphasizedOverriddenElements,\n clearHiddenElements,\n emphasizeElements,\n getHiliteIds,\n hideElements,\n overrideElements,\n} from \"../../common/viewerUtils\";\n\nconst GOLDEN_ANGLE_MULTIPLIER = 1.5; // Multiplier to spread colors more uniformly.\nconst BASE_HUE_OFFSET = 60; // Initial hue offset to avoid certain colors e.g 0 offset would begin with red.\nconst HUE_ADJUSTMENT_STEP = 15; // Step to adjust the hue to avoid the red spectrum.\nconst RED_HUE_LOWER_BOUND = 330; // Lower bound of the red hue spectrum to avoid.\nconst RED_HUE_UPPER_BOUND = 30; // Upper bound of the red hue spectrum to avoid.\nconst GOLDENANGLE = 180 * (3 - Math.sqrt(5));\n\nconst generateHSL = (hue: number, saturation: number = 100, lightness: number = 50) => {\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`;\n};\n\nexport const getGroupColor = (index: number) => {\n let hue = (index * GOLDENANGLE * GOLDEN_ANGLE_MULTIPLIER + BASE_HUE_OFFSET) % 360;\n\n while (hue >= RED_HUE_LOWER_BOUND || hue <= RED_HUE_UPPER_BOUND) {\n hue = (hue + HUE_ADJUSTMENT_STEP) % 360;\n }\n\n return generateHSL(hue);\n};\n\nconst processGroupVisualization = async (\n overlappedElementGroupPairs: OverlappedElementGroupPairs,\n hiddenGroupsIds: Set<string>,\n doEmphasizeElements: boolean,\n color: string,\n replace: boolean,\n setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void,\n) => {\n const hilitedIds = Array.from(overlappedElementGroupPairs.elementIds);\n\n overrideElements(hilitedIds, color, FeatureOverrideType.ColorAndAlpha, replace);\n setNumberOfVisualizedGroups((numberOfVisualizedGroups) => numberOfVisualizedGroups + 1);\n\n doEmphasizeElements && emphasizeElements(hilitedIds, undefined);\n\n for (const id of overlappedElementGroupPairs.groupIds) {\n if (hiddenGroupsIds.has(id)) {\n return [];\n }\n }\n return hilitedIds;\n};\n\nexport type GroupsElementIds = {\n groupId: string;\n elementIds: string[];\n}[];\n\nexport const hideGroupIds = (hiddenGroupIds: Set<string>, groupsWithGroupedOverlaps: OverlappedElementGroupPairs[]) => {\n hiddenGroupIds.forEach((groupId) => {\n hideGroupConsideringOverlaps(groupsWithGroupedOverlaps, groupId, hiddenGroupIds);\n });\n};\n\nexport const visualizeGroupColors = async (\n hiddenGroupsIds: Set<string>,\n groupsWithGroupedOverlaps: OverlappedElementGroupPairs[],\n setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void,\n doEmphasizeElements: boolean = true,\n) => {\n clearEmphasizedOverriddenElements();\n\n const singleGroupPromises = groupsWithGroupedOverlaps\n .filter((group) => group.groupIds.size === 1)\n .map(async (group, index) =>\n processGroupVisualization(\n group,\n hiddenGroupsIds,\n doEmphasizeElements,\n getGroupColor(index), // color for single group\n false, // Shouldn't matter as replacement only accounts for same colored overrides.\n setNumberOfVisualizedGroups,\n ),\n );\n\n const overlappedGroupPromises = groupsWithGroupedOverlaps\n .filter((group) => group.groupIds.size !== 1)\n .map(async (group) =>\n processGroupVisualization(\n group,\n hiddenGroupsIds,\n doEmphasizeElements,\n generateHSL(0), // color for group of overlapped elements\n false,\n setNumberOfVisualizedGroups,\n ),\n );\n\n clearHiddenElements();\n\n const allPromises = [...singleGroupPromises, ...overlappedGroupPromises];\n\n const allIds = (await Promise.all(allPromises)).flat();\n return allIds;\n};\n\nexport const getHiliteIdsAndKeysetFromGroup = async (iModelConnection: IModelConnection, group: GroupMinimal) => {\n const query = group.query;\n const result = await getHiliteIds(query, iModelConnection);\n return { query, result };\n};\n\nconst getOverlappedElementsInfo = (overlappedElements: OverlappedElementGroupPairs[]) => {\n const overlappedElementsInfo: Map<string, OverlappedInfo[]> = new Map();\n\n overlappedElements.forEach((elementGroup) => {\n const { elementIds, groupIds } = elementGroup;\n\n groupIds.forEach((group) => {\n const otherGroups = Array.from(groupIds).filter((grp) => grp !== group);\n const overlappedInfoArray = overlappedElementsInfo.get(group) ?? [];\n overlappedInfoArray.push({ groupIds: otherGroups, elements: Array.from(elementIds) });\n overlappedElementsInfo.set(group, overlappedInfoArray);\n });\n });\n return overlappedElementsInfo;\n};\n\nconst mergeElementsByGroup = (elems: Map<string, Set<string>>) => {\n const mergedList: Map<string, OverlappedElementGroupPairs> = new Map();\n elems.forEach((groupIds, elementId) => {\n const sortedGroups = Array.from(groupIds).sort();\n const key = sortedGroups.join(\"-\");\n const overlap = mergedList.get(key);\n if (overlap) {\n overlap.elementIds.add(elementId);\n } else {\n mergedList.set(key, { elementIds: new Set([elementId]), groupIds });\n }\n });\n return mergedList;\n};\n\nexport const generateOverlappedGroups = (groupsElementIds: GroupsElementIds) => {\n const elems: Map<string, Set<string>> = new Map();\n const groupElementCount: Map<string, number> = new Map();\n\n // Build the elems map for associations between elements and their groups.\n for (const groupInfo of groupsElementIds) {\n for (const elem of groupInfo.elementIds) {\n const elemGroups = elems.get(elem) || new Set<string>();\n elemGroups.add(groupInfo.groupId);\n elems.set(elem, elemGroups);\n }\n groupElementCount.set(groupInfo.groupId, groupInfo.elementIds.length);\n }\n\n // Construct the unique list of all groups and their overlapped groups combinations\n const allGroups: OverlappedElementGroupPairs[] = groupsElementIds.map((groupInfo) => {\n const nonOverlappingElements = Array.from(new Set(groupInfo.elementIds)).filter((elem) => elems.get(elem)!.size === 1);\n groupElementCount.set(groupInfo.groupId, groupInfo.elementIds.length);\n return { elementIds: new Set(nonOverlappingElements), groupIds: new Set([groupInfo.groupId]) };\n });\n\n const mergedList = mergeElementsByGroup(elems);\n const overlappedGroupsInformation: OverlappedElementGroupPairs[] = Array.from(mergedList.values()).filter((value) => value.groupIds.size > 1);\n\n return {\n groupsWithGroupedOverlaps: [...allGroups, ...overlappedGroupsInformation],\n overlappedElementsInfo: getOverlappedElementsInfo(overlappedGroupsInformation),\n numberOfElementsInGroups: groupElementCount,\n };\n};\n\nexport const hideGroupConsideringOverlaps = (\n overlappedElementGroupPairs: OverlappedElementGroupPairs[],\n groupIdToHide: string,\n hiddenGroupsIds: Set<string>,\n) => {\n const elementsToPotentiallyHide = new Set<string>();\n\n // Check each entry in overlappedElementGroupPairs\n for (const entry of overlappedElementGroupPairs) {\n // If the groupToHide is part of this entry\n if (entry.groupIds.has(groupIdToHide)) {\n // If this is a unique entry (no overlaps for this group), add all its elements to hide list\n if (entry.groupIds.size === 1) {\n for (const elem of entry.elementIds) {\n elementsToPotentiallyHide.add(elem);\n }\n } else {\n // If there are overlaps, only hide if all overlapping groups are hidden\n const allOtherGroupsHidden = Array.from(entry.groupIds).every((groupId) => groupId === groupIdToHide || hiddenGroupsIds.has(groupId));\n if (allOtherGroupsHidden) {\n for (const elem of entry.elementIds) {\n elementsToPotentiallyHide.add(elem);\n }\n }\n }\n }\n }\n\n // Now hide all elements in elementsToPotentiallyHide\n hideElements(Array.from(elementsToPotentiallyHide));\n};\n"]}
@@ -1,5 +1,5 @@
1
- import type { IMappingsClient } from "@itwin/insights-client";
1
+ import type { IGroupsClient } from "@itwin/insights-client";
2
2
  import type { GetAccessTokenFn } from "../../context/GroupingApiConfigContext";
3
- export declare const fetchGroups: (iModelId: string, mappingId: string, getAccessToken: GetAccessTokenFn, mappingsClient: IMappingsClient) => Promise<import("@itwin/insights-client").Group[]>;
4
- export declare const useFetchGroups: (iModelId: string, mappingId: string, getAccessToken: GetAccessTokenFn, mappingsClient: IMappingsClient) => import("@tanstack/react-query").UseQueryResult<import("@itwin/insights-client").Group[], unknown>;
3
+ export declare const fetchGroups: (mappingId: string, getAccessToken: GetAccessTokenFn, groupsClient: IGroupsClient) => Promise<import("@itwin/insights-client").GroupMinimal[]>;
4
+ export declare const useFetchGroups: (mappingId: string, getAccessToken: GetAccessTokenFn, groupsClient: IGroupsClient) => import("@tanstack/react-query").UseQueryResult<import("@itwin/insights-client").GroupMinimal[], unknown>;
5
5
  //# sourceMappingURL=useFetchGroups.d.ts.map
@@ -1,17 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useFetchGroups = exports.fetchGroups = void 0;
4
+ const insights_client_1 = require("@itwin/insights-client");
4
5
  const react_query_1 = require("@tanstack/react-query");
5
- const fetchGroups = async (iModelId, mappingId, getAccessToken, mappingsClient) => {
6
+ const fetchGroups = async (mappingId, getAccessToken, groupsClient) => {
6
7
  const accessToken = await getAccessToken();
7
- const groups = await mappingsClient.getGroups(accessToken, iModelId, mappingId);
8
- return groups;
8
+ const groupsList = await groupsClient.getGroups(accessToken, mappingId, insights_client_1.PreferReturn.Minimal);
9
+ return groupsList.groups;
9
10
  };
10
11
  exports.fetchGroups = fetchGroups;
11
- const useFetchGroups = (iModelId, mappingId, getAccessToken, mappingsClient) => {
12
+ const useFetchGroups = (mappingId, getAccessToken, groupsClient) => {
12
13
  return (0, react_query_1.useQuery)({
13
14
  queryKey: ["groups", mappingId],
14
- queryFn: async () => (0, exports.fetchGroups)(iModelId, mappingId, getAccessToken, mappingsClient),
15
+ queryFn: async () => (0, exports.fetchGroups)(mappingId, getAccessToken, groupsClient),
15
16
  });
16
17
  };
17
18
  exports.useFetchGroups = useFetchGroups;
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchGroups.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useFetchGroups.ts"],"names":[],"mappings":";;;AAKA,uDAAiD;AAG1C,MAAM,WAAW,GAAG,KAAK,EAC9B,QAAgB,EAChB,SAAiB,EACjB,cAAgC,EAChC,cAA+B,EAChC,EAAE;IACD,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,WAAW,eAStB;AAEK,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,cAAgC,EAAE,cAA+B,EAAE,EAAE;IACvI,OAAO,IAAA,sBAAQ,EAAC;QACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC/B,OAAO,EAAG,KAAK,IAAI,EAAE,CAAC,IAAA,mBAAW,EAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC;KACvF,CAAC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB","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 { IMappingsClient } from \"@itwin/insights-client\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport type { GetAccessTokenFn } from \"../../context/GroupingApiConfigContext\";\n\nexport const fetchGroups = async (\n iModelId: string,\n mappingId: string,\n getAccessToken: GetAccessTokenFn,\n mappingsClient: IMappingsClient\n)=> {\n const accessToken = await getAccessToken();\n const groups = await mappingsClient.getGroups(accessToken, iModelId, mappingId);\n return groups;\n};\n\nexport const useFetchGroups = (iModelId: string, mappingId: string, getAccessToken: GetAccessTokenFn, mappingsClient: IMappingsClient) => {\n return useQuery({\n queryKey: [\"groups\", mappingId],\n queryFn: async () => fetchGroups(iModelId, mappingId, getAccessToken, mappingsClient),\n });\n};\n"]}
1
+ {"version":3,"file":"useFetchGroups.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useFetchGroups.ts"],"names":[],"mappings":";;;AAKA,4DAAsD;AACtD,uDAAiD;AAG1C,MAAM,WAAW,GAAG,KAAK,EAAE,SAAiB,EAAE,cAAgC,EAAE,YAA2B,EAAE,EAAE;IACpH,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,8BAAY,CAAC,OAAO,CAAC,CAAC;IAC9F,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB;AAEK,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAE,cAAgC,EAAE,YAA2B,EAAE,EAAE;IACjH,OAAO,IAAA,sBAAQ,EAAC;QACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC/B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,mBAAW,EAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB","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 { IGroupsClient } from \"@itwin/insights-client\";\nimport { PreferReturn } from \"@itwin/insights-client\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport type { GetAccessTokenFn } from \"../../context/GroupingApiConfigContext\";\n\nexport const fetchGroups = async (mappingId: string, getAccessToken: GetAccessTokenFn, groupsClient: IGroupsClient) => {\n const accessToken = await getAccessToken();\n const groupsList = await groupsClient.getGroups(accessToken, mappingId, PreferReturn.Minimal);\n return groupsList.groups;\n};\n\nexport const useFetchGroups = (mappingId: string, getAccessToken: GetAccessTokenFn, groupsClient: IGroupsClient) => {\n return useQuery({\n queryKey: [\"groups\", mappingId],\n queryFn: async () => fetchGroups(mappingId, getAccessToken, groupsClient),\n });\n};\n"]}
@@ -1,22 +1,30 @@
1
1
  /// <reference types="react" />
2
- import type { Group } from "@itwin/insights-client";
2
+ import type { GroupMinimal } from "@itwin/insights-client";
3
3
  import type { ContextCustomUI, GroupingCustomUI } from "../../customUI/GroupingMappingCustomUI";
4
+ /**
5
+ * Props for the {@link useGroupsOperations} hook.
6
+ * @internal
7
+ */
4
8
  export interface GroupsOperationsProps {
5
9
  mappingId: string;
6
10
  }
7
- export declare const useGroupsOperations: ({ mappingId, }: GroupsOperationsProps) => {
8
- groups: Group[] | undefined;
11
+ /**
12
+ * Custom hook to handle group operations.
13
+ * @internal
14
+ */
15
+ export declare const useGroupsOperations: ({ mappingId }: GroupsOperationsProps) => {
16
+ groups: GroupMinimal[] | undefined;
9
17
  isLoading: boolean;
10
18
  refresh: () => Promise<void>;
11
- onDeleteGroup: (group: Group) => Promise<void>;
12
- setShowDeleteModal: import("react").Dispatch<import("react").SetStateAction<Group | undefined>>;
13
- showDeleteModal: Group | undefined;
19
+ onDeleteGroup: (group: GroupMinimal) => Promise<void>;
20
+ setShowDeleteModal: import("react").Dispatch<import("react").SetStateAction<GroupMinimal | undefined>>;
21
+ showDeleteModal: GroupMinimal | undefined;
14
22
  groupUIs: GroupingCustomUI[];
15
23
  contextUIs: ContextCustomUI[];
16
24
  errorMessage: string | undefined;
17
25
  setErrorMessage: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
18
- activeOverlapInfoPanelGroup: Group | undefined;
19
- setActiveOverlapInfoPanelGroup: import("react").Dispatch<import("react").SetStateAction<Group | undefined>>;
26
+ activeOverlapInfoPanelGroup: GroupMinimal | undefined;
27
+ setActiveOverlapInfoPanelGroup: import("react").Dispatch<import("react").SetStateAction<GroupMinimal | undefined>>;
20
28
  overlappedElementsInfo: Map<string, import("../../context/GroupHilitedElementsContext").OverlappedInfo[]>;
21
29
  };
22
30
  //# sourceMappingURL=useGroupsOperations.d.ts.map
@@ -2,35 +2,39 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useGroupsOperations = void 0;
4
4
  /*---------------------------------------------------------------------------------------------
5
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
- * See LICENSE.md in the project root for license terms and full copyright notice.
7
- *--------------------------------------------------------------------------------------------*/
5
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
+ * See LICENSE.md in the project root for license terms and full copyright notice.
7
+ *--------------------------------------------------------------------------------------------*/
8
8
  const react_1 = require("react");
9
9
  const GroupingApiConfigContext_1 = require("../../context/GroupingApiConfigContext");
10
10
  const GroupingMappingCustomUI_1 = require("../../customUI/GroupingMappingCustomUI");
11
11
  const GroupingMappingCustomUIContext_1 = require("../../context/GroupingMappingCustomUIContext");
12
12
  const GroupHilitedElementsContext_1 = require("../../context/GroupHilitedElementsContext");
13
- const MappingClientContext_1 = require("../../context/MappingClientContext");
14
13
  const react_query_1 = require("@tanstack/react-query");
15
14
  const useFetchGroups_1 = require("./useFetchGroups");
16
- const useGroupsOperations = ({ mappingId, }) => {
17
- const { getAccessToken, iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
18
- const { overlappedElementsMetadata: { overlappedElementsInfo } } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
19
- const mappingClient = (0, MappingClientContext_1.useMappingClient)();
15
+ const GroupsClientContext_1 = require("../../context/GroupsClientContext");
16
+ /**
17
+ * Custom hook to handle group operations.
18
+ * @internal
19
+ */
20
+ const useGroupsOperations = ({ mappingId }) => {
21
+ const { getAccessToken } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
22
+ const { overlappedElementsMetadata: { overlappedElementsInfo }, } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
23
+ const groupsClient = (0, GroupsClientContext_1.useGroupsClient)();
20
24
  const groupUIs = (0, GroupingMappingCustomUIContext_1.useGroupingMappingCustomUI)().customUIs.filter((p) => p.type === GroupingMappingCustomUI_1.GroupingMappingCustomUIType.Grouping);
21
25
  const contextUIs = (0, GroupingMappingCustomUIContext_1.useGroupingMappingCustomUI)().customUIs.filter((p) => p.type === GroupingMappingCustomUI_1.GroupingMappingCustomUIType.Context);
22
26
  const [showDeleteModal, setShowDeleteModal] = (0, react_1.useState)(undefined);
23
27
  const [errorMessage, setErrorMessage] = (0, react_1.useState)(undefined);
24
28
  const [activeOverlapInfoPanelGroup, setActiveOverlapInfoPanelGroup] = (0, react_1.useState)(undefined);
25
29
  const queryClient = (0, react_query_1.useQueryClient)();
26
- const { data: groups, isLoading } = (0, useFetchGroups_1.useFetchGroups)(iModelId, mappingId, getAccessToken, mappingClient);
30
+ const { data: groups, isLoading } = (0, useFetchGroups_1.useFetchGroups)(mappingId, getAccessToken, groupsClient);
27
31
  const refresh = (0, react_1.useCallback)(async () => {
28
32
  await queryClient.invalidateQueries({ queryKey: ["groups", mappingId] });
29
33
  }, [mappingId, queryClient]);
30
34
  const deleteGroupMutation = (0, react_query_1.useMutation)({
31
35
  mutationFn: async (group) => {
32
36
  const accessToken = await getAccessToken();
33
- await mappingClient.deleteGroup(accessToken, iModelId, mappingId, group.id);
37
+ await groupsClient.deleteGroup(accessToken, mappingId, group.id);
34
38
  },
35
39
  onSuccess: refresh,
36
40
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useGroupsOperations.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useGroupsOperations.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,iCAA8C;AAE9C,qFAAqF;AAErF,oFAAqF;AACrF,iGAA0F;AAC1F,2FAA2F;AAC3F,6EAAsE;AACtE,uDAAoE;AACpE,qDAAkD;AAM3C,MAAM,mBAAmB,GAAG,CAAC,EAClC,SAAS,GACa,EAAE,EAAE;IAC1B,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACnE,MAAM,EAAE,0BAA0B,EAAE,EAAG,sBAAsB,EAAE,EAAE,GAAG,IAAA,4DAA8B,GAAE,CAAC;IAErG,MAAM,aAAa,GAAG,IAAA,uCAAgB,GAAE,CAAC;IACzC,MAAM,QAAQ,GACZ,IAAA,2DAA0B,GAAE,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qDAA2B,CAAC,QAAQ,CACjC,CAAC;IAC1B,MAAM,UAAU,GACd,IAAA,2DAA0B,GAAE,CAAC,SAAS,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qDAA2B,CAAC,OAAO,CACjC,CAAC;IACzB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EACpD,SAAS,CACV,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAqB,SAAS,CAAC,CAAC;IAChF,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GAAG,IAAA,gBAAQ,EAAoB,SAAS,CAAC,CAAC;IAC7G,MAAM,WAAW,GAAG,IAAA,4BAAc,GAAE,CAAC;IAErC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAEvG,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QACrC,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAC,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7B,MAAM,mBAAmB,GAAG,IAAA,yBAAW,EACrC;QACE,UAAU,EAAE,KAAK,EAAE,KAAY,EAAE,EAAE;YACjC,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,MAAM,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,SAAS,EAAE,OAAO;KACnB,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE;QAC3C,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,eAAe;QACf,2BAA2B;QAC3B,8BAA8B;QAC9B,sBAAsB;KACvB,CAAC;AACJ,CAAC,CAAC;AAzDW,QAAA,mBAAmB,uBAyD9B","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 { useCallback, useState } from \"react\";\nimport type { Group } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport type { ContextCustomUI, GroupingCustomUI } from \"../../customUI/GroupingMappingCustomUI\";\nimport { GroupingMappingCustomUIType } from \"../../customUI/GroupingMappingCustomUI\";\nimport { useGroupingMappingCustomUI } from \"../../context/GroupingMappingCustomUIContext\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useFetchGroups } from \"./useFetchGroups\";\n\nexport interface GroupsOperationsProps {\n mappingId: string;\n}\n\nexport const useGroupsOperations = ({\n mappingId,\n}: GroupsOperationsProps) => {\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const { overlappedElementsMetadata: { overlappedElementsInfo } } = useGroupHilitedElementsContext();\n\n const mappingClient = useMappingClient();\n const groupUIs: GroupingCustomUI[] =\n useGroupingMappingCustomUI().customUIs.filter(\n (p) => p.type === GroupingMappingCustomUIType.Grouping\n ) as GroupingCustomUI[];\n const contextUIs: ContextCustomUI[] =\n useGroupingMappingCustomUI().customUIs.filter(\n (p) => p.type === GroupingMappingCustomUIType.Context\n ) as ContextCustomUI[];\n const [showDeleteModal, setShowDeleteModal] = useState<Group | undefined>(\n undefined\n );\n const [errorMessage, setErrorMessage] = useState<string | undefined>(undefined);\n const [activeOverlapInfoPanelGroup, setActiveOverlapInfoPanelGroup] = useState<Group | undefined>(undefined);\n const queryClient = useQueryClient();\n\n const { data: groups, isLoading } = useFetchGroups(iModelId, mappingId, getAccessToken, mappingClient);\n\n const refresh = useCallback(async () => {\n await queryClient.invalidateQueries({queryKey: [\"groups\", mappingId]});\n }, [mappingId, queryClient]);\n\n const deleteGroupMutation = useMutation(\n {\n mutationFn: async (group: Group) => {\n const accessToken = await getAccessToken();\n await mappingClient.deleteGroup(accessToken, iModelId, mappingId, group.id);\n },\n onSuccess: refresh,\n }\n );\n\n const onDeleteGroup = async (group: Group) => {\n deleteGroupMutation.mutate(group);\n };\n\n return {\n groups,\n isLoading,\n refresh,\n onDeleteGroup,\n setShowDeleteModal,\n showDeleteModal,\n groupUIs,\n contextUIs,\n errorMessage,\n setErrorMessage,\n activeOverlapInfoPanelGroup,\n setActiveOverlapInfoPanelGroup,\n overlappedElementsInfo,\n };\n};\n"]}
1
+ {"version":3,"file":"useGroupsOperations.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useGroupsOperations.ts"],"names":[],"mappings":";;;AAAA;;;gGAGgG;AAChG,iCAA8C;AAE9C,qFAAqF;AAErF,oFAAqF;AACrF,iGAA0F;AAC1F,2FAA2F;AAC3F,uDAAoE;AACpE,qDAAkD;AAClD,2EAAoE;AAUpE;;;GAGG;AACI,MAAM,mBAAmB,GAAG,CAAC,EAAE,SAAS,EAAyB,EAAE,EAAE;IAC1E,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACzD,MAAM,EACJ,0BAA0B,EAAE,EAAE,sBAAsB,EAAE,GACvD,GAAG,IAAA,4DAA8B,GAAE,CAAC;IAErC,MAAM,YAAY,GAAG,IAAA,qCAAe,GAAE,CAAC;IACvC,MAAM,QAAQ,GAAuB,IAAA,2DAA0B,GAAE,CAAC,SAAS,CAAC,MAAM,CAChF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qDAA2B,CAAC,QAAQ,CACjC,CAAC;IACxB,MAAM,UAAU,GAAsB,IAAA,2DAA0B,GAAE,CAAC,SAAS,CAAC,MAAM,CACjF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qDAA2B,CAAC,OAAO,CACjC,CAAC;IACvB,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAA2B,SAAS,CAAC,CAAC;IAC5F,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAqB,SAAS,CAAC,CAAC;IAChF,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC,GAAG,IAAA,gBAAQ,EAA2B,SAAS,CAAC,CAAC;IACpH,MAAM,WAAW,GAAG,IAAA,4BAAc,GAAE,CAAC;IAErC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,+BAAc,EAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAE5F,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QACrC,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE7B,MAAM,mBAAmB,GAAG,IAAA,yBAAW,EAAC;QACtC,UAAU,EAAE,KAAK,EAAE,KAAmB,EAAE,EAAE;YACxC,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,MAAM,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE;QAClD,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO;QACL,MAAM;QACN,SAAS;QACT,OAAO;QACP,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,eAAe;QACf,2BAA2B;QAC3B,8BAA8B;QAC9B,sBAAsB;KACvB,CAAC;AACJ,CAAC,CAAC;AAnDW,QAAA,mBAAmB,uBAmD9B","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 { useCallback, useState } from \"react\";\nimport type { GroupMinimal } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport type { ContextCustomUI, GroupingCustomUI } from \"../../customUI/GroupingMappingCustomUI\";\nimport { GroupingMappingCustomUIType } from \"../../customUI/GroupingMappingCustomUI\";\nimport { useGroupingMappingCustomUI } from \"../../context/GroupingMappingCustomUIContext\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useFetchGroups } from \"./useFetchGroups\";\nimport { useGroupsClient } from \"../../context/GroupsClientContext\";\n\n/**\n * Props for the {@link useGroupsOperations} hook.\n * @internal\n */\nexport interface GroupsOperationsProps {\n mappingId: string;\n}\n\n/**\n * Custom hook to handle group operations.\n * @internal\n */\nexport const useGroupsOperations = ({ mappingId }: GroupsOperationsProps) => {\n const { getAccessToken } = useGroupingMappingApiConfig();\n const {\n overlappedElementsMetadata: { overlappedElementsInfo },\n } = useGroupHilitedElementsContext();\n\n const groupsClient = useGroupsClient();\n const groupUIs: GroupingCustomUI[] = useGroupingMappingCustomUI().customUIs.filter(\n (p) => p.type === GroupingMappingCustomUIType.Grouping,\n ) as GroupingCustomUI[];\n const contextUIs: ContextCustomUI[] = useGroupingMappingCustomUI().customUIs.filter(\n (p) => p.type === GroupingMappingCustomUIType.Context,\n ) as ContextCustomUI[];\n const [showDeleteModal, setShowDeleteModal] = useState<GroupMinimal | undefined>(undefined);\n const [errorMessage, setErrorMessage] = useState<string | undefined>(undefined);\n const [activeOverlapInfoPanelGroup, setActiveOverlapInfoPanelGroup] = useState<GroupMinimal | undefined>(undefined);\n const queryClient = useQueryClient();\n\n const { data: groups, isLoading } = useFetchGroups(mappingId, getAccessToken, groupsClient);\n\n const refresh = useCallback(async () => {\n await queryClient.invalidateQueries({ queryKey: [\"groups\", mappingId] });\n }, [mappingId, queryClient]);\n\n const deleteGroupMutation = useMutation({\n mutationFn: async (group: GroupMinimal) => {\n const accessToken = await getAccessToken();\n await groupsClient.deleteGroup(accessToken, mappingId, group.id);\n },\n onSuccess: refresh,\n });\n\n const onDeleteGroup = async (group: GroupMinimal) => {\n deleteGroupMutation.mutate(group);\n };\n\n return {\n groups,\n isLoading,\n refresh,\n onDeleteGroup,\n setShowDeleteModal,\n showDeleteModal,\n groupUIs,\n contextUIs,\n errorMessage,\n setErrorMessage,\n activeOverlapInfoPanelGroup,\n setActiveOverlapInfoPanelGroup,\n overlappedElementsInfo,\n };\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { IModelConnection } from "@itwin/core-frontend";
2
- import type { Group } from "@itwin/insights-client";
2
+ import type { GroupMinimal } from "@itwin/insights-client";
3
3
  import type { KeySet } from "@itwin/presentation-common";
4
4
  import { TErrCodes } from "../../Constants";
5
5
  export interface QueryResults {
@@ -9,7 +9,7 @@ export interface QueryResults {
9
9
  ids: string[];
10
10
  };
11
11
  }
12
- export declare const createQueryForHiliteIdsAndKeyset: (group: Group, iModelConnection: IModelConnection, enabled: boolean) => {
12
+ export declare const createQueryForHiliteIdsAndKeyset: (group: GroupMinimal, iModelConnection: IModelConnection, enabled: boolean) => {
13
13
  queryKey: string[];
14
14
  queryFn: () => Promise<{
15
15
  query: string;
@@ -25,8 +25,8 @@ export declare const createQueryForHiliteIdsAndKeyset: (group: Group, iModelConn
25
25
  message: string;
26
26
  };
27
27
  };
28
- export declare const useGroupKeySetQuery: (group: Group, iModelConnection: IModelConnection, enabled: boolean) => import("@tanstack/react-query").UseQueryResult<QueryResults, unknown>;
29
- export declare const useKeySetHiliteQueries: (groups: Group[], enabled: boolean, iModelConnection: IModelConnection) => {
28
+ export declare const useGroupKeySetQuery: (group: GroupMinimal, iModelConnection: IModelConnection, enabled: boolean) => import("@tanstack/react-query").UseQueryResult<QueryResults, unknown>;
29
+ export declare const useKeySetHiliteQueries: (groups: GroupMinimal[], enabled: boolean, iModelConnection: IModelConnection) => {
30
30
  groupQueries: Pick<import("@tanstack/react-query").UseQueryResult<QueryResults, unknown>, "data" | "isFetching" | "isFetched" | "refetch">[];
31
31
  };
32
32
  //# sourceMappingURL=useKeySetHiliteQueries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useKeySetHiliteQueries.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useKeySetHiliteQueries.ts"],"names":[],"mappings":";;;AAQA,uDAAiD;AACjD,uDAAmD;AACnD,iCAAgC;AAChC,+FAA4F;AAC5F,+CAA4C;AAC5C,oDAAkE;AAQjE,EAAE,CAAC;AAIG,MAAM,gCAAgC,GAAG,CAAC,KAAY,EAAE,gBAAkC,EAAE,OAAgB,EAAE,EAAE,CAAC,CAAC;IACvH,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;IAC7C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,8CAA8B,EAAC,gBAAgB,EAAE,KAAK,CAAC;IAC5E,OAAO;IACP,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,EAAE,SAAS,EAAC,qBAAS,CAAC,yBAAyB,EAAE,OAAO,EAAE,qBAAqB,KAAK,CAAC,SAAS,GAAG,EAAE;CAC1G,CAAC,CAAC;AANU,QAAA,gCAAgC,oCAM1C;AAEI,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAE,gBAAkC,EAAE,OAAgB,EAAE,EAAE;IACxG,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,wCAAgC,EAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEpI,OAAO,IAAA,sBAAQ,EAAe,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAAE,OAAgB,EAAE,gBAAkC,EAAE,EAAE;IAC9G,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,wCAAgC,EAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,EACrH,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,IAAA,wBAAU,EAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,IAAA,qDAAyB,EAAC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/G,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC,CAAC;AATW,QAAA,sBAAsB,0BASjC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { Group } from \"@itwin/insights-client\";\nimport type { KeySet } from \"@itwin/presentation-common\";\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport { useMemoizedCollectionPick } from \"../../../common/hooks/useMemoizedCollectionPick\";\nimport { TErrCodes } from \"../../Constants\";\nimport { getHiliteIdsAndKeysetFromGroup } from \"../groupsHelpers\";\n\nexport interface QueryResults {\n query: string;\n result: {\n keySet: KeySet;\n ids: string[];\n };\n}[];\n\ntype TQueries = UseQueryOptions<QueryResults>[];\n\nexport const createQueryForHiliteIdsAndKeyset = (group: Group, iModelConnection: IModelConnection, enabled: boolean) => ({\n queryKey: [\"group\", \"hiliteids\", group.query],\n queryFn: async () => getHiliteIdsAndKeysetFromGroup(iModelConnection, group),\n enabled,\n staleTime: Infinity,\n meta: { errorCode:TErrCodes.QUERY_HILITE_FETCH_FAILED, message: `Failed to resolve ${group.groupName}.` },\n});\n\nexport const useGroupKeySetQuery = (group: Group, iModelConnection: IModelConnection, enabled: boolean) => {\n const query = useMemo(() => createQueryForHiliteIdsAndKeyset(group, iModelConnection, enabled), [enabled, group, iModelConnection]);\n\n return useQuery<QueryResults>(query);\n};\n\nexport const useKeySetHiliteQueries = (groups: Group[], enabled: boolean, iModelConnection: IModelConnection) => {\n const queries = useMemo(() => groups.map((group) => createQueryForHiliteIdsAndKeyset(group, iModelConnection, enabled)),\n [groups, iModelConnection, enabled]);\n\n const useQueriesHook = useQueries<TQueries>({ queries });\n\n const groupQueries = useMemoizedCollectionPick(useQueriesHook, [\"data\", \"isFetching\", \"isFetched\", \"refetch\"]);\n\n return { groupQueries };\n};\n"]}
1
+ {"version":3,"file":"useKeySetHiliteQueries.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useKeySetHiliteQueries.ts"],"names":[],"mappings":";;;AAQA,uDAAiD;AACjD,uDAAmD;AACnD,iCAAgC;AAChC,+FAA4F;AAC5F,+CAA4C;AAC5C,oDAAkE;AASlE,EAAE,CAAC;AAII,MAAM,gCAAgC,GAAG,CAAC,KAAmB,EAAE,gBAAkC,EAAE,OAAgB,EAAE,EAAE,CAAC,CAAC;IAC9H,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;IAC7C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,8CAA8B,EAAC,gBAAgB,EAAE,KAAK,CAAC;IAC5E,OAAO;IACP,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAS,CAAC,yBAAyB,EAAE,OAAO,EAAE,qBAAqB,KAAK,CAAC,SAAS,GAAG,EAAE;CAC3G,CAAC,CAAC;AANU,QAAA,gCAAgC,oCAM1C;AAEI,MAAM,mBAAmB,GAAG,CAAC,KAAmB,EAAE,gBAAkC,EAAE,OAAgB,EAAE,EAAE;IAC/G,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,wCAAgC,EAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEpI,OAAO,IAAA,sBAAQ,EAAe,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B;AAEK,MAAM,sBAAsB,GAAG,CAAC,MAAsB,EAAE,OAAgB,EAAE,gBAAkC,EAAE,EAAE;IACrH,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,wCAAgC,EAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9J,MAAM,cAAc,GAAG,IAAA,wBAAU,EAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,IAAA,qDAAyB,EAAC,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/G,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC,CAAC;AARW,QAAA,sBAAsB,0BAQjC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { GroupMinimal } from \"@itwin/insights-client\";\nimport type { KeySet } from \"@itwin/presentation-common\";\nimport type { UseQueryOptions } from \"@tanstack/react-query\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { useMemo } from \"react\";\nimport { useMemoizedCollectionPick } from \"../../../common/hooks/useMemoizedCollectionPick\";\nimport { TErrCodes } from \"../../Constants\";\nimport { getHiliteIdsAndKeysetFromGroup } from \"../groupsHelpers\";\n\nexport interface QueryResults {\n query: string;\n result: {\n keySet: KeySet;\n ids: string[];\n };\n}\n[];\n\ntype TQueries = UseQueryOptions<QueryResults>[];\n\nexport const createQueryForHiliteIdsAndKeyset = (group: GroupMinimal, iModelConnection: IModelConnection, enabled: boolean) => ({\n queryKey: [\"group\", \"hiliteids\", group.query],\n queryFn: async () => getHiliteIdsAndKeysetFromGroup(iModelConnection, group),\n enabled,\n staleTime: Infinity,\n meta: { errorCode: TErrCodes.QUERY_HILITE_FETCH_FAILED, message: `Failed to resolve ${group.groupName}.` },\n});\n\nexport const useGroupKeySetQuery = (group: GroupMinimal, iModelConnection: IModelConnection, enabled: boolean) => {\n const query = useMemo(() => createQueryForHiliteIdsAndKeyset(group, iModelConnection, enabled), [enabled, group, iModelConnection]);\n\n return useQuery<QueryResults>(query);\n};\n\nexport const useKeySetHiliteQueries = (groups: GroupMinimal[], enabled: boolean, iModelConnection: IModelConnection) => {\n const queries = useMemo(() => groups.map((group) => createQueryForHiliteIdsAndKeyset(group, iModelConnection, enabled)), [groups, iModelConnection, enabled]);\n\n const useQueriesHook = useQueries<TQueries>({ queries });\n\n const groupQueries = useMemoizedCollectionPick(useQueriesHook, [\"data\", \"isFetching\", \"isFetched\", \"refetch\"]);\n\n return { groupQueries };\n};\n"]}
@@ -9,7 +9,7 @@ const groupsHelpers_1 = require("../groupsHelpers");
9
9
  const viewerUtils_1 = require("../../../common/viewerUtils");
10
10
  const useVisualization = (shouldVisualize, iModelConnection, query, queryGenerationType) => {
11
11
  const [isRendering, setIsRendering] = (0, react_1.useState)(false);
12
- const { showGroupColor, hiddenGroupsIds, overlappedElementsMetadata: { overlappedElementGroupPairs }, setNumberOfVisualizedGroups } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
12
+ const { showGroupColor, hiddenGroupsIds, overlappedElementsMetadata: { overlappedElementGroupPairs }, setNumberOfVisualizedGroups, } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
13
13
  const [simpleSelectionQuery, setSimpleSelectionQuery] = (0, react_1.useState)("");
14
14
  const resetView = (0, react_1.useCallback)(async () => {
15
15
  if (!shouldVisualize)
@@ -28,9 +28,7 @@ const useVisualization = (shouldVisualize, iModelConnection, query, queryGenerat
28
28
  const removeListener = presentation_frontend_1.Presentation.selection.selectionChange.addListener(async (evt, selectionProvider) => {
29
29
  if (queryGenerationType === "Selection") {
30
30
  const selection = selectionProvider.getSelection(evt.imodel, evt.level);
31
- const query = selection.instanceKeys.size > 0
32
- ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}`
33
- : "";
31
+ const query = selection.instanceKeys.size > 0 ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}` : "";
34
32
  setSimpleSelectionQuery(query);
35
33
  }
36
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useVisualization.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useVisualization.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport type { ISelectionProvider, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { visualizeGroupColors } from \"../groupsHelpers\";\nimport { clearEmphasizedElements, clearOverriddenElements, transparentOverriddenElements, visualizeElementsByQuery, zoomToElements } from \"../../../common/viewerUtils\";\n\nexport const useVisualization = (shouldVisualize: boolean, iModelConnection: IModelConnection, query: string, queryGenerationType: string) => {\n const [isRendering, setIsRendering] = useState<boolean>(false);\n const { showGroupColor, hiddenGroupsIds, overlappedElementsMetadata: { overlappedElementGroupPairs }, setNumberOfVisualizedGroups} = useGroupHilitedElementsContext();\n const [simpleSelectionQuery, setSimpleSelectionQuery] = useState<string>(\"\");\n\n const resetView = useCallback(async () => {\n if (!shouldVisualize) return;\n if (showGroupColor) {\n await visualizeGroupColors(hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups);\n } else {\n clearOverriddenElements();\n }\n clearEmphasizedElements();\n }, [hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups, shouldVisualize, showGroupColor]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const removeListener = Presentation.selection.selectionChange.addListener(\n async (\n evt: SelectionChangeEventArgs,\n selectionProvider: ISelectionProvider,\n ) => {\n if (queryGenerationType === \"Selection\") {\n const selection = selectionProvider.getSelection(\n evt.imodel,\n evt.level,\n );\n const query = selection.instanceKeys.size > 0\n ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}`\n : \"\";\n setSimpleSelectionQuery(query);\n }\n },\n );\n return removeListener;\n }, [iModelConnection, queryGenerationType, shouldVisualize]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const reemphasize = async () => {\n try {\n if (!query || query === \"\") {\n return;\n }\n setIsRendering(true);\n transparentOverriddenElements();\n const resolvedHiliteIds = await visualizeElementsByQuery(\n query,\n \"red\",\n iModelConnection,\n );\n await zoomToElements(resolvedHiliteIds);\n } catch {\n toaster.negative(\"Sorry, we have failed to generate a valid query.\");\n } finally {\n setIsRendering(false);\n }\n };\n\n void reemphasize();\n }, [iModelConnection, query, shouldVisualize]);\n\n const clearPresentationSelection = useCallback(() =>\n shouldVisualize && Presentation.selection.clearSelection(\n \"GroupingMappingWidget\",\n iModelConnection,\n ), [iModelConnection, shouldVisualize]);\n\n useEffect(() => {\n clearPresentationSelection();\n }, [clearPresentationSelection, iModelConnection]);\n\n return { isRendering, setIsRendering, simpleSelectionQuery, setSimpleSelectionQuery, clearPresentationSelection, resetView };\n\n};\n"]}
1
+ {"version":3,"file":"useVisualization.js","sourceRoot":"","sources":["../../../../../src/components/Groups/hooks/useVisualization.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport type { ISelectionProvider, SelectionChangeEventArgs } from \"@itwin/presentation-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useGroupHilitedElementsContext } from \"../../context/GroupHilitedElementsContext\";\nimport { visualizeGroupColors } from \"../groupsHelpers\";\nimport {\n clearEmphasizedElements,\n clearOverriddenElements,\n transparentOverriddenElements,\n visualizeElementsByQuery,\n zoomToElements,\n} from \"../../../common/viewerUtils\";\n\nexport const useVisualization = (shouldVisualize: boolean, iModelConnection: IModelConnection, query: string, queryGenerationType: string) => {\n const [isRendering, setIsRendering] = useState<boolean>(false);\n const {\n showGroupColor,\n hiddenGroupsIds,\n overlappedElementsMetadata: { overlappedElementGroupPairs },\n setNumberOfVisualizedGroups,\n } = useGroupHilitedElementsContext();\n const [simpleSelectionQuery, setSimpleSelectionQuery] = useState<string>(\"\");\n\n const resetView = useCallback(async () => {\n if (!shouldVisualize) return;\n if (showGroupColor) {\n await visualizeGroupColors(hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups);\n } else {\n clearOverriddenElements();\n }\n clearEmphasizedElements();\n }, [hiddenGroupsIds, overlappedElementGroupPairs, setNumberOfVisualizedGroups, shouldVisualize, showGroupColor]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const removeListener = Presentation.selection.selectionChange.addListener(async (evt: SelectionChangeEventArgs, selectionProvider: ISelectionProvider) => {\n if (queryGenerationType === \"Selection\") {\n const selection = selectionProvider.getSelection(evt.imodel, evt.level);\n const query = selection.instanceKeys.size > 0 ? `SELECT ECInstanceId FROM ${selection.instanceKeys.keys().next().value}` : \"\";\n setSimpleSelectionQuery(query);\n }\n });\n return removeListener;\n }, [iModelConnection, queryGenerationType, shouldVisualize]);\n\n useEffect(() => {\n if (!shouldVisualize) return;\n const reemphasize = async () => {\n try {\n if (!query || query === \"\") {\n return;\n }\n setIsRendering(true);\n transparentOverriddenElements();\n const resolvedHiliteIds = await visualizeElementsByQuery(query, \"red\", iModelConnection);\n await zoomToElements(resolvedHiliteIds);\n } catch {\n toaster.negative(\"Sorry, we have failed to generate a valid query.\");\n } finally {\n setIsRendering(false);\n }\n };\n\n void reemphasize();\n }, [iModelConnection, query, shouldVisualize]);\n\n const clearPresentationSelection = useCallback(\n () => shouldVisualize && Presentation.selection.clearSelection(\"GroupingMappingWidget\", iModelConnection),\n [iModelConnection, shouldVisualize],\n );\n\n useEffect(() => {\n clearPresentationSelection();\n }, [clearPresentationSelection, iModelConnection]);\n\n return { isRendering, setIsRendering, simpleSelectionQuery, setSimpleSelectionQuery, clearPresentationSelection, resetView };\n};\n"]}
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BlockingOverlay = void 0;
7
7
  /*---------------------------------------------------------------------------------------------
8
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
9
- * See LICENSE.md in the project root for license terms and full copyright notice.
10
- *--------------------------------------------------------------------------------------------*/
8
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
9
+ * See LICENSE.md in the project root for license terms and full copyright notice.
10
+ *--------------------------------------------------------------------------------------------*/
11
11
  const classnames_1 = __importDefault(require("classnames"));
12
12
  const react_1 = __importDefault(require("react"));
13
13
  const LoadingSpinner_1 = require("../SharedComponents/LoadingSpinner");
@@ -1 +1 @@
1
- {"version":3,"file":"BlockingOverlay.js","sourceRoot":"","sources":["../../../../src/components/Mappings/BlockingOverlay.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,4DAAoC;AACpC,kDAA0B;AAC1B,uEAAoE;AACpE,kCAAgC;AAMzB,MAAM,eAAe,GAAG,CAAC,EAAE,SAAS,EAAwB,EAAE,EAAE;IACrE,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,oCAAoC,EAAE,SAAS,IAAI,aAAa,CAAC;QAC1F,8BAAC,+BAAc,OAAG,CACd,CACP,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B","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 classnames from \"classnames\";\nimport React from \"react\";\nimport { LoadingSpinner } from \"../SharedComponents/LoadingSpinner\";\nimport \"./BlockingOverlay.scss\";\n\nexport interface BlockingOverlayProps {\n isVisible: boolean;\n}\n\nexport const BlockingOverlay = ({ isVisible }: BlockingOverlayProps) => {\n return (\n <div className={classnames(\"gmw-group-mapping-blocking-overlay\", isVisible && \"gmw-visible\")}>\n <LoadingSpinner />\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"BlockingOverlay.js","sourceRoot":"","sources":["../../../../src/components/Mappings/BlockingOverlay.tsx"],"names":[],"mappings":";;;;;;AAAA;;;gGAGgG;AAChG,4DAAoC;AACpC,kDAA0B;AAC1B,uEAAoE;AACpE,kCAAgC;AAMzB,MAAM,eAAe,GAAG,CAAC,EAAE,SAAS,EAAwB,EAAE,EAAE;IACrE,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,oCAAoC,EAAE,SAAS,IAAI,aAAa,CAAC;QAC1F,8BAAC,+BAAc,OAAG,CACd,CACP,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,eAAe,mBAM1B","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 classnames from \"classnames\";\nimport React from \"react\";\nimport { LoadingSpinner } from \"../SharedComponents/LoadingSpinner\";\nimport \"./BlockingOverlay.scss\";\n\nexport interface BlockingOverlayProps {\n isVisible: boolean;\n}\n\nexport const BlockingOverlay = ({ isVisible }: BlockingOverlayProps) => {\n return (\n <div className={classnames(\"gmw-group-mapping-blocking-overlay\", isVisible && \"gmw-visible\")}>\n <LoadingSpinner />\n </div>\n );\n};\n"]}
@@ -4,12 +4,20 @@ import type { Mapping } from "@itwin/insights-client";
4
4
  declare const defaultDisplayStrings: {
5
5
  mappingDetails: string;
6
6
  };
7
+ /**
8
+ * Props for the {@link MappingAction} component.
9
+ * @public
10
+ */
7
11
  export interface MappingActionProps {
8
12
  mapping?: Mapping;
9
13
  onSaveSuccess: () => void;
10
14
  onClickCancel?: () => void;
11
15
  displayStrings?: Partial<typeof defaultDisplayStrings>;
12
16
  }
17
+ /**
18
+ * Component to create or update a mapping.
19
+ * @public
20
+ */
13
21
  export declare const MappingAction: ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }: MappingActionProps) => JSX.Element;
14
22
  export {};
15
23
  //# sourceMappingURL=MappingAction.d.ts.map
@@ -28,9 +28,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.MappingAction = void 0;
30
30
  /*---------------------------------------------------------------------------------------------
31
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
32
- * See LICENSE.md in the project root for license terms and full copyright notice.
33
- *--------------------------------------------------------------------------------------------*/
31
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
32
+ * See LICENSE.md in the project root for license terms and full copyright notice.
33
+ *--------------------------------------------------------------------------------------------*/
34
34
  const itwinui_react_1 = require("@itwin/itwinui-react");
35
35
  const react_1 = __importStar(require("react"));
36
36
  const ActionPanel_1 = __importDefault(require("../../SharedComponents/ActionPanel"));
@@ -43,6 +43,10 @@ const react_query_1 = require("@tanstack/react-query");
43
43
  const defaultDisplayStrings = {
44
44
  mappingDetails: "Mapping Details",
45
45
  };
46
+ /**
47
+ * Component to create or update a mapping.
48
+ * @public
49
+ */
46
50
  const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }) => {
47
51
  const { getAccessToken, iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
48
52
  const mappingClient = (0, MappingClientContext_1.useMappingClient)();
@@ -57,9 +61,7 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
57
61
  const { mutate: saveMutation, isLoading } = (0, react_query_1.useMutation)({
58
62
  mutationFn: async (newMapping) => {
59
63
  const accessToken = await getAccessToken();
60
- return mapping
61
- ? mappingClient.updateMapping(accessToken, iModelId, mapping.id, newMapping)
62
- : mappingClient.createMapping(accessToken, iModelId, newMapping);
64
+ return mapping ? mappingClient.updateMapping(accessToken, mapping.id, newMapping) : mappingClient.createMapping(accessToken, newMapping);
63
65
  },
64
66
  onSuccess: async () => {
65
67
  await queryClient.invalidateQueries({ queryKey: ["mappings"] });
@@ -72,30 +74,29 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
72
74
  return;
73
75
  }
74
76
  saveMutation({
77
+ iModelId,
75
78
  mappingName: values.name,
76
79
  description: values.description,
77
80
  extractionEnabled: values.extractionEnabled,
78
81
  });
79
82
  };
80
83
  return (react_1.default.createElement(react_1.default.Fragment, null,
81
- react_1.default.createElement("div", { className: 'gmw-details-form-container' },
82
- react_1.default.createElement(itwinui_react_1.Fieldset, { legend: displayStrings.mappingDetails, className: 'gmw-details-form' },
83
- react_1.default.createElement(itwinui_react_1.Text, { variant: 'small', as: 'small', className: 'gmw-field-legend' }, "Asterisk * indicates mandatory fields."),
84
- react_1.default.createElement(itwinui_react_1.LabeledInput, { id: 'name', name: 'name', label: 'Name', value: values.name, required: true, onChange: (event) => {
84
+ react_1.default.createElement("div", { className: "gmw-details-form-container" },
85
+ react_1.default.createElement(itwinui_react_1.Fieldset, { legend: displayStrings.mappingDetails, className: "gmw-details-form" },
86
+ react_1.default.createElement(itwinui_react_1.Text, { variant: "small", as: "small", className: "gmw-field-legend" }, "Asterisk * indicates mandatory fields."),
87
+ react_1.default.createElement(itwinui_react_1.LabeledInput, { id: "name", name: "name", label: "Name", value: values.name, required: true, onChange: (event) => {
85
88
  (0, utils_1.handleInputChange)(event, values, setValues);
86
89
  validator.showMessageFor("name");
87
- }, message: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS), status: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS)
88
- ? "negative"
89
- : undefined, onBlur: () => {
90
+ }, message: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS), status: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS) ? "negative" : undefined, onBlur: () => {
90
91
  validator.showMessageFor("name");
91
92
  }, onBlurCapture: (event) => {
92
93
  (0, utils_1.handleInputChange)(event, values, setValues);
93
94
  validator.showMessageFor("name");
94
95
  } }),
95
- react_1.default.createElement(itwinui_react_1.LabeledInput, { id: 'description', name: 'description', label: 'Description', value: values.description, onChange: (event) => {
96
+ react_1.default.createElement(itwinui_react_1.LabeledInput, { id: "description", name: "description", label: "Description", value: values.description, onChange: (event) => {
96
97
  (0, utils_1.handleInputChange)(event, values, setValues);
97
98
  } }),
98
- react_1.default.createElement(itwinui_react_1.ToggleSwitch, { id: 'extractionEnabled', name: 'extractionEnabled', label: 'Extract data from iModel', labelPosition: "right", checked: values.extractionEnabled, onChange: (event) => {
99
+ react_1.default.createElement(itwinui_react_1.ToggleSwitch, { id: "extractionEnabled", name: "extractionEnabled", label: "Extract data from iModel", labelPosition: "right", checked: values.extractionEnabled, onChange: (event) => {
99
100
  setValues({ ...values, extractionEnabled: event.currentTarget.checked });
100
101
  } }))),
101
102
  react_1.default.createElement(ActionPanel_1.default, { onSave: onSave, onCancel: onClickCancel, isSavingDisabled: !values.name, isLoading: isLoading })));
@@ -1 +1 @@
1
- {"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Editing/MappingAction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Text, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../../Properties/hooks/useValidator\";\nimport \"./MappingAction.scss\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { Mapping, MappingCreate } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { handleInputChange } from \"../../../common/utils\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nconst defaultDisplayStrings = {\n mappingDetails: \"Mapping Details\",\n};\n\nexport interface MappingActionProps {\n mapping?: Mapping;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n displayStrings?: Partial<typeof defaultDisplayStrings>;\n}\n\nexport const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }: MappingActionProps) => {\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n extractionEnabled: mapping?.extractionEnabled ?? true,\n });\n const [validator, showValidationMessage] = useValidator();\n const queryClient = useQueryClient();\n\n const displayStrings = React.useMemo(\n () => ({ ...defaultDisplayStrings, ...userDisplayStrings }),\n [userDisplayStrings]\n );\n\n const { mutate: saveMutation, isLoading } = useMutation(\n {\n mutationFn: async (newMapping: MappingCreate) => {\n const accessToken = await getAccessToken();\n return mapping\n ? mappingClient.updateMapping(accessToken, iModelId, mapping.id, newMapping)\n : mappingClient.createMapping(accessToken, iModelId, newMapping);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: [\"mappings\"] });\n onSaveSuccess();\n },\n }\n );\n\n const onSave = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n saveMutation({\n mappingName: values.name,\n description: values.description,\n extractionEnabled: values.extractionEnabled,\n });\n };\n\n return (\n <>\n <div className='gmw-details-form-container'>\n <Fieldset legend={displayStrings.mappingDetails} className='gmw-details-form'>\n <Text variant='small' as='small' className='gmw-field-legend'>\n Asterisk * indicates mandatory fields.\n </Text>\n <LabeledInput\n id='name'\n name='name'\n label='Name'\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={\n validator.message(\"name\", values.name, NAME_REQUIREMENTS)\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id='description'\n name='description'\n label='Description'\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n }}\n />\n <ToggleSwitch\n id='extractionEnabled'\n name='extractionEnabled'\n label='Extract data from iModel'\n labelPosition=\"right\"\n checked={values.extractionEnabled}\n onChange={(event) => {\n setValues({ ...values, extractionEnabled: event.currentTarget.checked });\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel\n onSave={onSave}\n onCancel={onClickCancel}\n isSavingDisabled={!values.name}\n isLoading={isLoading}\n />\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Editing/MappingAction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Text, ToggleSwitch } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../../Properties/hooks/useValidator\";\nimport \"./MappingAction.scss\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport type { Mapping, MappingCreate } from \"@itwin/insights-client\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { handleInputChange } from \"../../../common/utils\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nconst defaultDisplayStrings = {\n mappingDetails: \"Mapping Details\",\n};\n\n/**\n * Props for the {@link MappingAction} component.\n * @public\n */\nexport interface MappingActionProps {\n mapping?: Mapping;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n displayStrings?: Partial<typeof defaultDisplayStrings>;\n}\n\n/**\n * Component to create or update a mapping.\n * @public\n */\nexport const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }: MappingActionProps) => {\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n extractionEnabled: mapping?.extractionEnabled ?? true,\n });\n const [validator, showValidationMessage] = useValidator();\n const queryClient = useQueryClient();\n\n const displayStrings = React.useMemo(() => ({ ...defaultDisplayStrings, ...userDisplayStrings }), [userDisplayStrings]);\n\n const { mutate: saveMutation, isLoading } = useMutation({\n mutationFn: async (newMapping: MappingCreate) => {\n const accessToken = await getAccessToken();\n return mapping ? mappingClient.updateMapping(accessToken, mapping.id, newMapping) : mappingClient.createMapping(accessToken, newMapping);\n },\n onSuccess: async () => {\n await queryClient.invalidateQueries({ queryKey: [\"mappings\"] });\n onSaveSuccess();\n },\n });\n\n const onSave = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n saveMutation({\n iModelId,\n mappingName: values.name,\n description: values.description,\n extractionEnabled: values.extractionEnabled,\n });\n };\n\n return (\n <>\n <div className=\"gmw-details-form-container\">\n <Fieldset legend={displayStrings.mappingDetails} className=\"gmw-details-form\">\n <Text variant=\"small\" as=\"small\" className=\"gmw-field-legend\">\n Asterisk * indicates mandatory fields.\n </Text>\n <LabeledInput\n id=\"name\"\n name=\"name\"\n label=\"Name\"\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={validator.message(\"name\", values.name, NAME_REQUIREMENTS) ? \"negative\" : undefined}\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id=\"description\"\n name=\"description\"\n label=\"Description\"\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n }}\n />\n <ToggleSwitch\n id=\"extractionEnabled\"\n name=\"extractionEnabled\"\n label=\"Extract data from iModel\"\n labelPosition=\"right\"\n checked={values.extractionEnabled}\n onChange={(event) => {\n setValues({ ...values, extractionEnabled: event.currentTarget.checked });\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel onSave={onSave} onCancel={onClickCancel} isSavingDisabled={!values.name} isLoading={isLoading} />\n </>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
1
  import type { TableFilterProps } from "@itwin/itwinui-react";
2
2
  import React from "react";
3
- export declare function ExtractionLogCustomFilter({ column, clearFilter, setFilter, }: TableFilterProps<Record<string, unknown>>): React.ReactElement;
3
+ export declare function ExtractionLogCustomFilter({ column, clearFilter, setFilter }: TableFilterProps<Record<string, unknown>>): React.ReactElement;
4
4
  //# sourceMappingURL=ExtractionLogCustomFilter.d.ts.map
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ExtractionLogCustomFilter = void 0;
27
27
  const itwinui_react_1 = require("@itwin/itwinui-react");
28
28
  const react_1 = __importStar(require("react"));
29
- function ExtractionLogCustomFilter({ column, clearFilter, setFilter, }) {
29
+ function ExtractionLogCustomFilter({ column, clearFilter, setFilter }) {
30
30
  const [value, setValue] = (0, react_1.useState)(column.filterValue);
31
31
  const translatedLabels = (0, react_1.useMemo)(() => ({
32
32
  filter: "Filter",
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractionLogCustomFilter.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionLogCustomFilter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAuF;AACvF,+CAAiD;AAEjD,SAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,WAAW,EACX,SAAS,GACiC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAChC,MAAM,CAAC,WAAiC,CACzC,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC;QACtC,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;KACf,CAAC,EAAE,EAAE,CACL,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,IAAG,MAAM,CAAC,MAAM,KAAK,UAAU,EAAC;YAC9B,OAAO,CAAC,YAAY,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;SACzF;QACD,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACZ,OAAO,CACL,8BAAC,0BAAU;QACT,8BAAC,0BAAU,IAAC,YAAY,EAAC,SAAS,IAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACpC,8BAAC,qBAAK,IACJ,IAAI,EAAC,cAAc,EACnB,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,KAAK,KAAK,EAChC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAChC,CACH,CAAC,CACS;QACb,8BAAC,+BAAe,IACd,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EACjC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,GAClC,CACS,CACd,CAAC;AACJ,CAAC;AAvCD,8DAuCC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { TableFilterProps } from \"@itwin/itwinui-react\";\nimport { BaseFilter, FilterButtonBar, InputGroup, Radio } from \"@itwin/itwinui-react\";\nimport React, { useMemo, useState } from \"react\";\n\nexport function ExtractionLogCustomFilter({\n column,\n clearFilter,\n setFilter,\n}: TableFilterProps<Record<string, unknown>>): React.ReactElement {\n const [value, setValue] = useState<string | undefined>(\n column.filterValue as string | undefined\n );\n const translatedLabels = useMemo(() => ({\n filter: \"Filter\",\n clear: \"Clear\",\n }), []\n );\n const filterOptionList = useMemo(() => {\n if(column.Header === \"Category\"){\n return [\"GroupQuery\", \"NoMatchesForECProperties\", \"QueryTranslation\", \"QueryExecution\"];\n }\n return [\"Info\", \"Warning\", \"Error\", \"Trace\"];\n },[column]);\n return (\n <BaseFilter>\n <InputGroup displayStyle=\"default\">\n {filterOptionList.map((option, id) => (\n <Radio\n name=\"filterOption\"\n key={id}\n label={option}\n defaultChecked={option === value}\n onChange={() => setValue(option)}\n />\n ))}\n </InputGroup>\n <FilterButtonBar\n setFilter={() => setFilter(value)}\n clearFilter={clearFilter}\n translatedLabels={translatedLabels}\n />\n </BaseFilter>\n );\n}\n"]}
1
+ {"version":3,"file":"ExtractionLogCustomFilter.js","sourceRoot":"","sources":["../../../../../src/components/Mappings/Extraction/ExtractionLogCustomFilter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAAsF;AACtF,+CAAiD;AAEjD,SAAgB,yBAAyB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAA6C;IACrH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAqB,MAAM,CAAC,WAAiC,CAAC,CAAC;IACjG,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAC9B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,OAAO;KACf,CAAC,EACF,EAAE,CACH,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACpC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;YAChC,OAAO,CAAC,YAAY,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;SACzF;QACD,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,8BAAC,0BAAU;QACT,8BAAC,0BAAU,IAAC,YAAY,EAAC,SAAS,IAC/B,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACpC,8BAAC,qBAAK,IAAC,IAAI,EAAC,cAAc,EAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAI,CAC1H,CAAC,CACS;QACb,8BAAC,+BAAe,IAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,GAAI,CACzG,CACd,CAAC;AACJ,CAAC;AAzBD,8DAyBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { TableFilterProps } from \"@itwin/itwinui-react\";\nimport { BaseFilter, FilterButtonBar, InputGroup, Radio } from \"@itwin/itwinui-react\";\nimport React, { useMemo, useState } from \"react\";\n\nexport function ExtractionLogCustomFilter({ column, clearFilter, setFilter }: TableFilterProps<Record<string, unknown>>): React.ReactElement {\n const [value, setValue] = useState<string | undefined>(column.filterValue as string | undefined);\n const translatedLabels = useMemo(\n () => ({\n filter: \"Filter\",\n clear: \"Clear\",\n }),\n [],\n );\n const filterOptionList = useMemo(() => {\n if (column.Header === \"Category\") {\n return [\"GroupQuery\", \"NoMatchesForECProperties\", \"QueryTranslation\", \"QueryExecution\"];\n }\n return [\"Info\", \"Warning\", \"Error\", \"Trace\"];\n }, [column]);\n return (\n <BaseFilter>\n <InputGroup displayStyle=\"default\">\n {filterOptionList.map((option, id) => (\n <Radio name=\"filterOption\" key={id} label={option} defaultChecked={option === value} onChange={() => setValue(option)} />\n ))}\n </InputGroup>\n <FilterButtonBar setFilter={() => setFilter(value)} clearFilter={clearFilter} translatedLabels={translatedLabels} />\n </BaseFilter>\n );\n}\n"]}