@itwin/grouping-mapping-widget 0.23.1 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/lib/cjs/WidgetShell/GroupingMappingContent.js +2 -2
  2. package/lib/cjs/WidgetShell/GroupingMappingContent.js.map +1 -1
  3. package/lib/cjs/common/hooks/useIsMounted.d.ts +2 -1
  4. package/lib/cjs/common/hooks/useIsMounted.js +3 -3
  5. package/lib/cjs/common/hooks/useIsMounted.js.map +1 -1
  6. package/lib/cjs/components/Constants.d.ts +3 -0
  7. package/lib/cjs/components/Constants.js +5 -2
  8. package/lib/cjs/components/Constants.js.map +1 -1
  9. package/lib/cjs/components/GroupingMappingContext.js +12 -14
  10. package/lib/cjs/components/GroupingMappingContext.js.map +1 -1
  11. package/lib/cjs/components/Groups/{GroupItem.d.ts → GroupListItem.d.ts} +4 -3
  12. package/lib/cjs/components/Groups/GroupListItem.js +49 -0
  13. package/lib/cjs/components/Groups/GroupListItem.js.map +1 -0
  14. package/lib/cjs/components/Groups/GroupListItem.scss +13 -0
  15. package/lib/cjs/components/Groups/GroupsView.js +2 -2
  16. package/lib/cjs/components/Groups/GroupsView.js.map +1 -1
  17. package/lib/cjs/components/Groups/GroupsVisualization.js +33 -11
  18. package/lib/cjs/components/Groups/GroupsVisualization.js.map +1 -1
  19. package/lib/cjs/components/Groups/groupsHelpers.d.ts +1 -1
  20. package/lib/cjs/components/Groups/groupsHelpers.js +1 -1
  21. package/lib/cjs/components/Groups/groupsHelpers.js.map +1 -1
  22. package/lib/cjs/components/Groups/hooks/useKeySetHiliteQueries.d.ts +2 -2
  23. package/lib/cjs/components/Groups/hooks/useKeySetHiliteQueries.js.map +1 -1
  24. package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js +27 -18
  25. package/lib/cjs/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
  26. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.d.ts +3 -0
  27. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +17 -0
  28. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -0
  29. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.d.ts +3 -0
  30. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +16 -0
  31. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -0
  32. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.d.ts +3 -0
  33. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +17 -0
  34. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -0
  35. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.d.ts +9 -0
  36. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +21 -0
  37. package/lib/cjs/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -0
  38. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.d.ts +17 -0
  39. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.js +79 -0
  40. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.js.map +1 -0
  41. package/lib/cjs/components/Mappings/Extraction/ExtractionStatus.scss +40 -0
  42. package/lib/cjs/components/Mappings/MappingListItem.d.ts +20 -0
  43. package/lib/cjs/components/Mappings/MappingListItem.js +96 -0
  44. package/lib/cjs/components/Mappings/MappingListItem.js.map +1 -0
  45. package/lib/cjs/components/Mappings/MappingListItem.scss +13 -0
  46. package/lib/cjs/components/Mappings/MappingViewActionGroup.d.ts +1 -1
  47. package/lib/cjs/components/Mappings/MappingViewActionGroup.js +3 -3
  48. package/lib/cjs/components/Mappings/MappingViewActionGroup.js.map +1 -1
  49. package/lib/cjs/components/Mappings/MappingsView.d.ts +2 -0
  50. package/lib/cjs/components/Mappings/MappingsView.js +28 -4
  51. package/lib/cjs/components/Mappings/MappingsView.js.map +1 -1
  52. package/lib/cjs/components/Mappings/MappingsView.scss +0 -5
  53. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.d.ts +3 -1
  54. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js +7 -4
  55. package/lib/cjs/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
  56. package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.d.ts +20 -0
  57. package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.js +55 -0
  58. package/lib/cjs/components/Mappings/hooks/useFetchMappingExtractionStatus.js.map +1 -0
  59. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.d.ts +8 -0
  60. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js +29 -5
  61. package/lib/cjs/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
  62. package/lib/cjs/components/Mappings/hooks/useRunExtraction.d.ts +14 -0
  63. package/lib/cjs/components/Mappings/hooks/useRunExtraction.js +42 -0
  64. package/lib/cjs/components/Mappings/hooks/useRunExtraction.js.map +1 -0
  65. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +17 -25
  66. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
  67. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +18 -25
  68. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
  69. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.js +35 -38
  70. package/lib/cjs/components/Properties/CalculatedProperties/CalculatedPropertyTable.js.map +1 -1
  71. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js +28 -59
  72. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
  73. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.js +37 -40
  74. package/lib/cjs/components/Properties/CustomCalculations/CustomCalculationTable.js.map +1 -1
  75. package/lib/cjs/components/Properties/GroupColorToggle.js +30 -26
  76. package/lib/cjs/components/Properties/GroupColorToggle.js.map +1 -1
  77. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js +62 -167
  78. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
  79. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyAction.scss +1 -46
  80. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.d.ts +13 -0
  81. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.js +21 -0
  82. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.js.map +1 -0
  83. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyListItem.scss +14 -0
  84. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js +34 -37
  85. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
  86. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.js +65 -51
  87. package/lib/cjs/components/Properties/GroupProperties/GroupPropertyUtils.js.map +1 -1
  88. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.d.ts +12 -0
  89. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +147 -0
  90. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -0
  91. package/lib/cjs/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.scss +49 -0
  92. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.d.ts +4 -4
  93. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js +4 -3
  94. package/lib/cjs/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
  95. package/lib/cjs/components/Properties/PropertyMenu.js +11 -15
  96. package/lib/cjs/components/Properties/PropertyMenu.js.map +1 -1
  97. package/lib/cjs/components/Properties/PropertyTable.js +1 -1
  98. package/lib/cjs/components/Properties/PropertyTable.js.map +1 -1
  99. package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.d.ts +4 -0
  100. package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.js +12 -0
  101. package/lib/cjs/components/Properties/hooks/useCalculatedPropertiesQuery.js.map +1 -0
  102. package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.d.ts +4 -0
  103. package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.js +12 -0
  104. package/lib/cjs/components/Properties/hooks/useCustomCalculationsQuery.js.map +1 -0
  105. package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.d.ts +4 -0
  106. package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.js +12 -0
  107. package/lib/cjs/components/Properties/hooks/useGroupPropertiesQuery.js.map +1 -0
  108. package/lib/cjs/components/SharedComponents/DeleteModal.d.ts +1 -2
  109. package/lib/cjs/components/SharedComponents/DeleteModal.js +1 -2
  110. package/lib/cjs/components/SharedComponents/DeleteModal.js.map +1 -1
  111. package/lib/cjs/components/context/ExtractionStateJobContext.d.ts +8 -0
  112. package/lib/cjs/components/context/ExtractionStateJobContext.js +44 -0
  113. package/lib/cjs/components/context/ExtractionStateJobContext.js.map +1 -0
  114. package/lib/cjs/components/context/PropertiesGroupColorContext.d.ts +8 -0
  115. package/lib/cjs/components/context/{PropertiesContext.js → PropertiesGroupColorContext.js} +7 -10
  116. package/lib/cjs/components/context/PropertiesGroupColorContext.js.map +1 -0
  117. package/lib/cjs/test/GroupingMappingCustomUI.test.js +3 -3
  118. package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
  119. package/lib/esm/WidgetShell/GroupingMappingContent.js +2 -2
  120. package/lib/esm/WidgetShell/GroupingMappingContent.js.map +1 -1
  121. package/lib/esm/common/hooks/useIsMounted.d.ts +2 -1
  122. package/lib/esm/common/hooks/useIsMounted.js +4 -4
  123. package/lib/esm/common/hooks/useIsMounted.js.map +1 -1
  124. package/lib/esm/components/Constants.d.ts +3 -0
  125. package/lib/esm/components/Constants.js +3 -0
  126. package/lib/esm/components/Constants.js.map +1 -1
  127. package/lib/esm/components/GroupingMappingContext.js +12 -14
  128. package/lib/esm/components/GroupingMappingContext.js.map +1 -1
  129. package/lib/esm/components/Groups/{GroupItem.d.ts → GroupListItem.d.ts} +4 -3
  130. package/lib/esm/components/Groups/GroupListItem.js +22 -0
  131. package/lib/esm/components/Groups/GroupListItem.js.map +1 -0
  132. package/lib/esm/components/Groups/GroupListItem.scss +13 -0
  133. package/lib/esm/components/Groups/GroupsView.js +3 -3
  134. package/lib/esm/components/Groups/GroupsView.js.map +1 -1
  135. package/lib/esm/components/Groups/GroupsVisualization.js +33 -11
  136. package/lib/esm/components/Groups/GroupsVisualization.js.map +1 -1
  137. package/lib/esm/components/Groups/groupsHelpers.d.ts +1 -1
  138. package/lib/esm/components/Groups/groupsHelpers.js +1 -1
  139. package/lib/esm/components/Groups/groupsHelpers.js.map +1 -1
  140. package/lib/esm/components/Groups/hooks/useKeySetHiliteQueries.d.ts +2 -2
  141. package/lib/esm/components/Groups/hooks/useKeySetHiliteQueries.js.map +1 -1
  142. package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js +27 -18
  143. package/lib/esm/components/Mappings/Extraction/ExtractionMessageModal.js.map +1 -1
  144. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.d.ts +3 -0
  145. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js +10 -0
  146. package/lib/esm/components/Mappings/Extraction/ExtractionStates/QueuedExtractionState.js.map +1 -0
  147. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.d.ts +3 -0
  148. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js +9 -0
  149. package/lib/esm/components/Mappings/Extraction/ExtractionStates/RunningExtractionState.js.map +1 -0
  150. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.d.ts +3 -0
  151. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js +10 -0
  152. package/lib/esm/components/Mappings/Extraction/ExtractionStates/StartingExtractionState.js.map +1 -0
  153. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.d.ts +9 -0
  154. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js +14 -0
  155. package/lib/esm/components/Mappings/Extraction/ExtractionStates/TerminalExtractionState.js.map +1 -0
  156. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.d.ts +17 -0
  157. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.js +52 -0
  158. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.js.map +1 -0
  159. package/lib/esm/components/Mappings/Extraction/ExtractionStatus.scss +40 -0
  160. package/lib/esm/components/Mappings/MappingListItem.d.ts +20 -0
  161. package/lib/esm/components/Mappings/MappingListItem.js +69 -0
  162. package/lib/esm/components/Mappings/MappingListItem.js.map +1 -0
  163. package/lib/esm/components/Mappings/MappingListItem.scss +13 -0
  164. package/lib/esm/components/Mappings/MappingViewActionGroup.d.ts +1 -1
  165. package/lib/esm/components/Mappings/MappingViewActionGroup.js +1 -1
  166. package/lib/esm/components/Mappings/MappingViewActionGroup.js.map +1 -1
  167. package/lib/esm/components/Mappings/MappingsView.d.ts +2 -0
  168. package/lib/esm/components/Mappings/MappingsView.js +31 -7
  169. package/lib/esm/components/Mappings/MappingsView.js.map +1 -1
  170. package/lib/esm/components/Mappings/MappingsView.scss +0 -5
  171. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.d.ts +3 -1
  172. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js +7 -4
  173. package/lib/esm/components/Mappings/hooks/useFetchExtractionStatus.js.map +1 -1
  174. package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.d.ts +20 -0
  175. package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.js +49 -0
  176. package/lib/esm/components/Mappings/hooks/useFetchMappingExtractionStatus.js.map +1 -0
  177. package/lib/esm/components/Mappings/hooks/useMappingsOperations.d.ts +8 -0
  178. package/lib/esm/components/Mappings/hooks/useMappingsOperations.js +30 -6
  179. package/lib/esm/components/Mappings/hooks/useMappingsOperations.js.map +1 -1
  180. package/lib/esm/components/Mappings/hooks/useRunExtraction.d.ts +14 -0
  181. package/lib/esm/components/Mappings/hooks/useRunExtraction.js +38 -0
  182. package/lib/esm/components/Mappings/hooks/useRunExtraction.js.map +1 -0
  183. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js +17 -25
  184. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyAction.js.map +1 -1
  185. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js +18 -25
  186. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyActionWithVisuals.js.map +1 -1
  187. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.js +35 -38
  188. package/lib/esm/components/Properties/CalculatedProperties/CalculatedPropertyTable.js.map +1 -1
  189. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js +29 -60
  190. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationAction.js.map +1 -1
  191. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.js +37 -40
  192. package/lib/esm/components/Properties/CustomCalculations/CustomCalculationTable.js.map +1 -1
  193. package/lib/esm/components/Properties/GroupColorToggle.js +32 -28
  194. package/lib/esm/components/Properties/GroupColorToggle.js.map +1 -1
  195. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js +64 -169
  196. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.js.map +1 -1
  197. package/lib/esm/components/Properties/GroupProperties/GroupPropertyAction.scss +1 -46
  198. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.d.ts +13 -0
  199. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.js +14 -0
  200. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.js.map +1 -0
  201. package/lib/esm/components/Properties/GroupProperties/GroupPropertyListItem.scss +14 -0
  202. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js +34 -37
  203. package/lib/esm/components/Properties/GroupProperties/GroupPropertyTable.js.map +1 -1
  204. package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.js +65 -51
  205. package/lib/esm/components/Properties/GroupProperties/GroupPropertyUtils.js.map +1 -1
  206. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.d.ts +12 -0
  207. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js +117 -0
  208. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.js.map +1 -0
  209. package/lib/esm/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.scss +49 -0
  210. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.d.ts +4 -4
  211. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js +3 -4
  212. package/lib/esm/components/Properties/GroupProperties/SortableHorizontalTile.js.map +1 -1
  213. package/lib/esm/components/Properties/PropertyMenu.js +12 -16
  214. package/lib/esm/components/Properties/PropertyMenu.js.map +1 -1
  215. package/lib/esm/components/Properties/PropertyTable.js +1 -1
  216. package/lib/esm/components/Properties/PropertyTable.js.map +1 -1
  217. package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.d.ts +4 -0
  218. package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.js +8 -0
  219. package/lib/esm/components/Properties/hooks/useCalculatedPropertiesQuery.js.map +1 -0
  220. package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.d.ts +4 -0
  221. package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.js +8 -0
  222. package/lib/esm/components/Properties/hooks/useCustomCalculationsQuery.js.map +1 -0
  223. package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.d.ts +4 -0
  224. package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.js +8 -0
  225. package/lib/esm/components/Properties/hooks/useGroupPropertiesQuery.js.map +1 -0
  226. package/lib/esm/components/SharedComponents/DeleteModal.d.ts +1 -2
  227. package/lib/esm/components/SharedComponents/DeleteModal.js +1 -2
  228. package/lib/esm/components/SharedComponents/DeleteModal.js.map +1 -1
  229. package/lib/esm/components/context/ExtractionStateJobContext.d.ts +8 -0
  230. package/lib/esm/components/context/ExtractionStateJobContext.js +17 -0
  231. package/lib/esm/components/context/ExtractionStateJobContext.js.map +1 -0
  232. package/lib/esm/components/context/PropertiesGroupColorContext.d.ts +8 -0
  233. package/lib/esm/components/context/{PropertiesContext.js → PropertiesGroupColorContext.js} +5 -8
  234. package/lib/esm/components/context/PropertiesGroupColorContext.js.map +1 -0
  235. package/lib/esm/test/GroupingMappingCustomUI.test.js +3 -3
  236. package/lib/esm/test/GroupingMappingCustomUI.test.js.map +1 -1
  237. package/package.json +3 -2
  238. package/lib/cjs/components/Groups/GroupItem.js +0 -23
  239. package/lib/cjs/components/Groups/GroupItem.js.map +0 -1
  240. package/lib/cjs/components/Properties/hooks/useFetchData.d.ts +0 -7
  241. package/lib/cjs/components/Properties/hooks/useFetchData.js +0 -43
  242. package/lib/cjs/components/Properties/hooks/useFetchData.js.map +0 -1
  243. package/lib/cjs/components/SharedComponents/HorizontalTile.d.ts +0 -19
  244. package/lib/cjs/components/SharedComponents/HorizontalTile.js +0 -27
  245. package/lib/cjs/components/SharedComponents/HorizontalTile.js.map +0 -1
  246. package/lib/cjs/components/SharedComponents/HorizontalTile.scss +0 -58
  247. package/lib/cjs/components/context/PropertiesContext.d.ts +0 -15
  248. package/lib/cjs/components/context/PropertiesContext.js.map +0 -1
  249. package/lib/esm/components/Groups/GroupItem.js +0 -16
  250. package/lib/esm/components/Groups/GroupItem.js.map +0 -1
  251. package/lib/esm/components/Properties/hooks/useFetchData.d.ts +0 -7
  252. package/lib/esm/components/Properties/hooks/useFetchData.js +0 -37
  253. package/lib/esm/components/Properties/hooks/useFetchData.js.map +0 -1
  254. package/lib/esm/components/SharedComponents/HorizontalTile.d.ts +0 -19
  255. package/lib/esm/components/SharedComponents/HorizontalTile.js +0 -20
  256. package/lib/esm/components/SharedComponents/HorizontalTile.js.map +0 -1
  257. package/lib/esm/components/SharedComponents/HorizontalTile.scss +0 -58
  258. package/lib/esm/components/context/PropertiesContext.d.ts +0 -15
  259. package/lib/esm/components/context/PropertiesContext.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GroupPropertyUtils.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyUtils.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 type { ECProperty } from \"@itwin/insights-client\";\nimport { DataType } from \"@itwin/insights-client\";\nimport type {\n ContentDescriptorRequestOptions,\n Field,\n KeySet,\n NestedContentField,\n PropertiesField,\n Ruleset,\n RulesetVariable,\n StructFieldMemberDescription,\n} from \"@itwin/presentation-common\";\nimport {\n ContentSpecificationTypes,\n DefaultContentDisplayTypes,\n PropertyValueFormat,\n RelationshipMeaning,\n RuleTypes,\n} from \"@itwin/presentation-common\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { deepEqual } from \"fast-equals\";\n\nexport interface PropertyMetaData {\n displayLabel: string;\n sourceSchema: string;\n sourceClassName: string;\n categoryLabel: string;\n propertyType: DataType;\n actualECClassName: string;\n parentPropertyClassName: string | undefined;\n ecPropertyTraversal: string[];\n primitiveNavigationClass: string;\n key: string;\n}\n\nconst convertType = (type: string): DataType => {\n switch (type) {\n case \"int\":\n case \"enum\":\n case \"long\":\n return DataType.Integer;\n case \"boolean\":\n return DataType.Boolean;\n case \"double\":\n return DataType.Double;\n case \"number\":\n return DataType.Number;\n default:\n return DataType.String;\n }\n};\n\nconst extractPrimitives = (\n propertyTraversal: string[],\n propertyField: PropertiesField\n): PropertyMetaData[] => propertyField.properties.map((property) => {\n const propertyName = property.property.name;\n const displayLabel = propertyField.label;\n // It belongs to this parent class\n const parentPropertyClassName = propertyField.parent?.contentClassInfo.name;\n const primitiveNavigationClass = property.property.navigationPropertyInfo?.classInfo.name ?? \"\";\n /* Presentation assigns primitive navigations properties as a long type due to how it stores the\n ECInstanceId of the class in the meta.ECClassDef table on the C++ layer.\n We are handling this special case.\n */\n const propertyType = primitiveNavigationClass ? DataType.String : convertType(property.property.type);\n const actualECClassName = property.property.classInfo.name;\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return (\n {\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n propertyType,\n primitiveNavigationClass,\n actualECClassName,\n parentPropertyClassName,\n key: `${parentPropertyClassName}|${actualECClassName}|${newPropertyTraversal.join(\"|\")}`,\n categoryLabel: propertyField.category.label,\n }\n );\n});\n\nconst extractPrimitiveStructProperties = (\n propertyTraversal: string[],\n members: StructFieldMemberDescription[],\n categoryLabel: string,\n actualECClassName: string,\n parentPropertyClassName?: string,\n): PropertyMetaData[] => members.flatMap((member) => {\n if (member.type.valueFormat === PropertyValueFormat.Primitive) {\n const propertyName = member.name;\n const displayLabel = member.label;\n const propertyType = convertType(member.type.typeName);\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return ({\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n propertyType,\n primitiveNavigationClass: \"\",\n actualECClassName,\n parentPropertyClassName,\n key: `${parentPropertyClassName}|${actualECClassName}|${newPropertyTraversal.join(\"|\")}`,\n categoryLabel,\n });\n\n } else if (member.type.valueFormat === PropertyValueFormat.Struct) {\n const structName = member.name;\n return extractPrimitiveStructProperties(\n [...propertyTraversal, structName],\n member.type.members,\n categoryLabel,\n actualECClassName,\n parentPropertyClassName\n );\n }\n\n return [];\n});\n\nconst extractStruct = (property: Field) => {\n if (property.type.valueFormat !== PropertyValueFormat.Struct) {\n return [];\n }\n\n const columnName = (property as PropertiesField).properties[0]\n .property.name;\n const actualECClassName = (property as PropertiesField).properties[0].property.classInfo.name;\n return extractPrimitiveStructProperties(\n [columnName],\n property.type.members,\n property.category.label,\n actualECClassName\n );\n};\n\nconst extractNested = (propertyTraversal: string[], propertyFields: Field[]): PropertyMetaData[] =>\n propertyFields.flatMap((property) => {\n // Generate base ECProperty\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n return extractPrimitives([...propertyTraversal], property as PropertiesField);\n }\n // Get structs\n case PropertyValueFormat.Struct: {\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (\n nestedContentField.pathToPrimaryClass &&\n nestedContentField.pathToPrimaryClass.length > 1\n ) {\n // Hardcoded navigation to external source repository metadata.\n if (nestedContentField.contentClassInfo.name === \"BisCore:RepositoryLink\") {\n return extractNested([...propertyTraversal, \"Source\", \"Repository\"], nestedContentField.nestedFields);\n }\n break;\n }\n\n switch (nestedContentField.relationshipMeaning) {\n // Aspects are not looked at again. Extraction does not support aspects within navigations.\n // Navigation properties\n case RelationshipMeaning.RelatedInstance: {\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===\n \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n return extractNested([...propertyTraversal, \"TypeDefinition\"], nestedContentField.nestedFields);\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n return extractStruct(property);\n }\n }\n }\n }\n }\n return [];\n });\n\nexport const convertPresentationFields = (propertyFields: Field[]): PropertyMetaData[] =>\n propertyFields.flatMap((property) => {\n // Generate base ECProperty\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n const extractedPrimitives = extractPrimitives([], property as PropertiesField);\n for (const extractedPrimitive of extractedPrimitives) {\n extractedPrimitive.sourceSchema = \"*\";\n extractedPrimitive.sourceClassName = \"*\";\n return extractedPrimitive;\n }\n break;\n }\n // Get structs\n case PropertyValueFormat.Struct: {\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (\n nestedContentField.pathToPrimaryClass &&\n nestedContentField.pathToPrimaryClass.length > 1\n ) {\n break;\n }\n switch (nestedContentField.relationshipMeaning) {\n case RelationshipMeaning.SameInstance: {\n // Check for aspects.\n if (\n (nestedContentField.pathToPrimaryClass[0].relationshipInfo\n .name === \"BisCore:ElementOwnsUniqueAspect\" ||\n nestedContentField.pathToPrimaryClass[0].relationshipInfo\n .name === \"BisCore:ElementOwnsMultiAspects\")\n ) {\n const fullClassName = nestedContentField.contentClassInfo.name;\n const sourceSchema = fullClassName.split(\":\")[0];\n const sourceClassName = fullClassName.split(\":\")[1];\n const extractedNested = extractNested([], nestedContentField.nestedFields);\n const aspectExtractedNested = extractedNested.map((ecProperty) => ({ ...ecProperty, sourceSchema, sourceClassName }));\n return aspectExtractedNested;\n }\n break;\n }\n // Navigation properties\n case RelationshipMeaning.RelatedInstance: {\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===\n \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n return extractNested([\"TypeDefinition\"], nestedContentField.nestedFields);\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n return extractStruct(property);\n }\n }\n }\n }\n }\n return [];\n });\n\nexport const convertToECProperties = (property: PropertyMetaData): ECProperty[] => {\n const ecProperty: ECProperty = {\n ecSchemaName: property.sourceSchema,\n ecClassName: property.sourceClassName,\n ecPropertyType: property.propertyType,\n ecPropertyName: \"\",\n };\n switch (property.primitiveNavigationClass) {\n // Hardcode Models navigation path and label behavior\n case \"BisCore:ModelContainsElements\": {\n return [\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"ModeledElement\",\n \"UserLabel\",\n ].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"ModeledElement\",\n \"CodeValue\",\n ].join(\".\"),\n },\n ];\n }\n // Hardcode Category and Physical Material navigation path and label behavior\n case \"BisCore:GeometricElement3dIsInCategory\":\n case \"BisCore:PhysicalElementIsOfPhysicalMaterial\":\n return [\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"UserLabel\",\n ].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"CodeValue\",\n ].join(\".\"),\n },\n ];\n default: {\n return [\n {\n ...ecProperty,\n ecPropertyName: property.ecPropertyTraversal.join(\".\"),\n },\n ];\n }\n }\n};\n\nexport const findProperties = (ecProperties: ECProperty[], propertiesMetaData: PropertyMetaData[]) => {\n let ecPropertiesCopy = [...ecProperties];\n const propertiesMetaDataResult: PropertyMetaData[] = new Array<PropertyMetaData>();\n let notFound = false;\n while (ecPropertiesCopy.length !== 0) {\n for (let i = 0; i < propertiesMetaData.length; i++) {\n const generatedProperty = convertToECProperties(propertiesMetaData[i]);\n const slicedEcProperties = ecPropertiesCopy.slice(0, generatedProperty.length);\n if (deepEqual(generatedProperty, slicedEcProperties)) {\n propertiesMetaDataResult.push(propertiesMetaData[i]);\n ecPropertiesCopy = ecPropertiesCopy.slice(generatedProperty.length);\n break;\n }\n if (i === propertiesMetaData.length - 1) {\n notFound = true;\n }\n }\n if (notFound)\n break;\n }\n return notFound ? [] : propertiesMetaDataResult;\n};\n\nexport const fetchPresentationDescriptor = async (iModelConnection: IModelConnection, keySet: KeySet) => {\n const ruleSet: Ruleset = {\n id: \"gmw-element-properties\",\n rules: [\n {\n ruleType: RuleTypes.Content,\n specifications: [\n {\n specType: ContentSpecificationTypes.SelectedNodeInstances,\n propertyOverrides: [{\n name: \"*\",\n isDisplayed: true,\n }],\n },\n ],\n }],\n };\n const requestOptions: ContentDescriptorRequestOptions<IModelConnection, KeySet, RulesetVariable> = {\n imodel: iModelConnection,\n keys: keySet,\n rulesetOrId: ruleSet,\n displayType: DefaultContentDisplayTypes.PropertyPane,\n };\n const descriptor = await Presentation.presentation.getContentDescriptor(\n requestOptions\n );\n return descriptor;\n};\n"]}
1
+ {"version":3,"file":"GroupPropertyUtils.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyUtils.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 type { ECProperty } from \"@itwin/insights-client\";\nimport { DataType } from \"@itwin/insights-client\";\nimport type {\n ContentDescriptorRequestOptions,\n Field,\n KeySet,\n NestedContentField,\n PropertiesField,\n Ruleset,\n RulesetVariable,\n StructFieldMemberDescription,\n} from \"@itwin/presentation-common\";\nimport {\n ContentSpecificationTypes,\n DefaultContentDisplayTypes,\n PropertyValueFormat,\n RelationshipMeaning,\n RuleTypes,\n} from \"@itwin/presentation-common\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { deepEqual } from \"fast-equals\";\n\nexport interface PropertyMetaData {\n displayLabel: string;\n sourceSchema: string;\n sourceClassName: string;\n categoryLabel: string;\n propertyType: DataType;\n actualECClassName: string;\n parentPropertyClassName: string | undefined;\n ecPropertyTraversal: string[];\n primitiveNavigationClass: string;\n key: string;\n}\n\nconst convertType = (type: string): DataType => {\n switch (type) {\n case \"int\":\n case \"enum\":\n case \"long\":\n return DataType.Integer;\n case \"boolean\":\n return DataType.Boolean;\n case \"double\":\n return DataType.Double;\n case \"number\":\n return DataType.Number;\n default:\n return DataType.String;\n }\n};\n\nconst generateKey = (\n parentPropertyClassName: string | undefined,\n actualECClassName: string,\n propertyTraversal: string[]\n): string => {\n return `${parentPropertyClassName}|${actualECClassName}|${propertyTraversal.join(\"|\")}`;\n};\n\nconst extractPrimitives = (\n propertyTraversal: string[],\n propertyField: PropertiesField\n): PropertyMetaData[] => propertyField.properties.map((property) => {\n const propertyName = property.property.name;\n const displayLabel = propertyField.label;\n // It belongs to this parent class\n const parentPropertyClassName = propertyField.parent?.contentClassInfo.name;\n const primitiveNavigationClass = property.property.navigationPropertyInfo?.classInfo.name ?? \"\";\n /* Presentation assigns primitive navigations properties as a long type due to how it stores the\n ECInstanceId of the class in the meta.ECClassDef table on the C++ layer.\n We are handling this special case.\n */\n const propertyType = primitiveNavigationClass ? DataType.String : convertType(property.property.type);\n const actualECClassName = property.property.classInfo.name;\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return (\n {\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n propertyType,\n primitiveNavigationClass,\n actualECClassName,\n parentPropertyClassName,\n key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),\n categoryLabel: propertyField.category.label,\n }\n );\n});\n\nconst extractPrimitiveStructProperties = (\n propertyTraversal: string[],\n members: StructFieldMemberDescription[],\n categoryLabel: string,\n actualECClassName: string,\n parentPropertyClassName?: string,\n): PropertyMetaData[] => members.flatMap((member) => {\n if (member.type.valueFormat === PropertyValueFormat.Primitive) {\n const propertyName = member.name;\n const displayLabel = member.label;\n const propertyType = convertType(member.type.typeName);\n const newPropertyTraversal = [...propertyTraversal, propertyName];\n\n return ({\n displayLabel,\n sourceSchema: \"*\",\n sourceClassName: \"*\",\n ecPropertyTraversal: newPropertyTraversal,\n propertyType,\n primitiveNavigationClass: \"\",\n actualECClassName,\n parentPropertyClassName,\n key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),\n categoryLabel,\n });\n\n } else if (member.type.valueFormat === PropertyValueFormat.Struct) {\n const structName = member.name;\n return extractPrimitiveStructProperties(\n [...propertyTraversal, structName],\n member.type.members,\n categoryLabel,\n actualECClassName,\n parentPropertyClassName\n );\n }\n\n return [];\n});\n\nconst extractStruct = (property: Field) => {\n if (property.type.valueFormat !== PropertyValueFormat.Struct) {\n return [];\n }\n\n const columnName = (property as PropertiesField).properties[0]\n .property.name;\n const actualECClassName = (property as PropertiesField).properties[0].property.classInfo.name;\n return extractPrimitiveStructProperties(\n [columnName],\n property.type.members,\n property.category.label,\n actualECClassName\n );\n};\n\nconst extractNested = (propertyTraversal: string[], propertyFields: Field[]): PropertyMetaData[] =>\n propertyFields.flatMap((property) => {\n // Generate base ECProperty\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n return extractPrimitives([...propertyTraversal], property as PropertiesField);\n }\n // Get structs\n case PropertyValueFormat.Struct: {\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (\n nestedContentField.pathToPrimaryClass &&\n nestedContentField.pathToPrimaryClass.length > 1\n ) {\n // Hardcoded navigation to external source repository metadata.\n if (nestedContentField.contentClassInfo.name === \"BisCore:RepositoryLink\") {\n return extractNested([...propertyTraversal, \"Source\", \"Repository\"], nestedContentField.nestedFields);\n }\n break;\n }\n\n switch (nestedContentField.relationshipMeaning) {\n // Aspects are not looked at again. Extraction does not support aspects within navigations.\n // Navigation properties\n case RelationshipMeaning.RelatedInstance: {\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===\n \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n return extractNested([...propertyTraversal, \"TypeDefinition\"], nestedContentField.nestedFields);\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n return extractStruct(property);\n }\n }\n }\n }\n }\n return [];\n });\n\nexport const convertPresentationFields = (propertyFields: Field[]): PropertyMetaData[] => {\n const uniquePropertiesMap = new Map<string, PropertyMetaData>();\n\n propertyFields.forEach((property) => {\n switch (property.type.valueFormat) {\n case PropertyValueFormat.Primitive: {\n // Generate base ECProperty\n const extractedPrimitives = extractPrimitives([], property as PropertiesField);\n extractedPrimitives.forEach((extractedPrimitive) => {\n extractedPrimitive.sourceSchema = \"*\";\n extractedPrimitive.sourceClassName = \"*\";\n uniquePropertiesMap.set(extractedPrimitive.key, extractedPrimitive);\n });\n break;\n }\n case PropertyValueFormat.Struct: {\n // Get structs\n const nestedContentField = property as NestedContentField;\n // Only handling single path and not handling nested content fields within navigations\n if (\n nestedContentField.pathToPrimaryClass &&\n nestedContentField.pathToPrimaryClass.length > 1\n ) {\n break;\n }\n switch (nestedContentField.relationshipMeaning) {\n case RelationshipMeaning.SameInstance: {\n // Check for aspects.\n if (\n (nestedContentField.pathToPrimaryClass[0].relationshipInfo\n .name === \"BisCore:ElementOwnsUniqueAspect\" ||\n nestedContentField.pathToPrimaryClass[0].relationshipInfo\n .name === \"BisCore:ElementOwnsMultiAspects\")\n ) {\n const fullClassName = nestedContentField.contentClassInfo.name;\n const sourceSchema = fullClassName.split(\":\")[0];\n const sourceClassName = fullClassName.split(\":\")[1];\n const extractedNested = extractNested([], nestedContentField.nestedFields);\n extractedNested.forEach((ecProperty) => {\n const propertyWithSchema = { ...ecProperty, sourceSchema, sourceClassName };\n uniquePropertiesMap.set(propertyWithSchema.key, propertyWithSchema);\n });\n }\n break;\n }\n case RelationshipMeaning.RelatedInstance: {\n // Navigation properties\n if (\n // Deal with a TypeDefinition\n nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===\n \"BisCore:GeometricElement3dHasTypeDefinition\"\n ) {\n const extractedNested = extractNested([\"TypeDefinition\"], nestedContentField.nestedFields);\n extractedNested.forEach((ecProperty) => {\n uniquePropertiesMap.set(ecProperty.key, ecProperty);\n });\n }\n break;\n }\n default: {\n // Some elements don't have a path to primary class or relationship meaning..\n // Most likely a simple struct property\n if (!nestedContentField.pathToPrimaryClass) {\n const extractedStruct = extractStruct(property);\n extractedStruct.forEach((ecProperty) => {\n uniquePropertiesMap.set(ecProperty.key, ecProperty);\n });\n }\n }\n }\n }\n }\n });\n\n return Array.from(uniquePropertiesMap.values());\n};\n\nexport const convertToECProperties = (property: PropertyMetaData): ECProperty[] => {\n const ecProperty: ECProperty = {\n ecSchemaName: property.sourceSchema,\n ecClassName: property.sourceClassName,\n ecPropertyType: property.propertyType,\n ecPropertyName: \"\",\n };\n switch (property.primitiveNavigationClass) {\n // Hardcode Models navigation path and label behavior\n case \"BisCore:ModelContainsElements\": {\n return [\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"ModeledElement\",\n \"UserLabel\",\n ].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"ModeledElement\",\n \"CodeValue\",\n ].join(\".\"),\n },\n ];\n }\n // Hardcode Category and Physical Material navigation path and label behavior\n case \"BisCore:GeometricElement3dIsInCategory\":\n case \"BisCore:PhysicalElementIsOfPhysicalMaterial\":\n return [\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"UserLabel\",\n ].join(\".\"),\n },\n {\n ...ecProperty,\n ecPropertyName: [\n ...property.ecPropertyTraversal,\n \"CodeValue\",\n ].join(\".\"),\n },\n ];\n default: {\n return [\n {\n ...ecProperty,\n ecPropertyName: property.ecPropertyTraversal.join(\".\"),\n },\n ];\n }\n }\n};\n\nexport const findProperties = (ecProperties: ECProperty[], propertiesMetaData: PropertyMetaData[]) => {\n let ecPropertiesCopy = [...ecProperties];\n const propertiesMetaDataResult: PropertyMetaData[] = new Array<PropertyMetaData>();\n let notFound = false;\n while (ecPropertiesCopy.length !== 0) {\n for (let i = 0; i < propertiesMetaData.length; i++) {\n const generatedProperty = convertToECProperties(propertiesMetaData[i]);\n const slicedEcProperties = ecPropertiesCopy.slice(0, generatedProperty.length);\n if (deepEqual(generatedProperty, slicedEcProperties)) {\n propertiesMetaDataResult.push(propertiesMetaData[i]);\n ecPropertiesCopy = ecPropertiesCopy.slice(generatedProperty.length);\n break;\n }\n if (i === propertiesMetaData.length - 1) {\n notFound = true;\n }\n }\n if (notFound)\n break;\n }\n return notFound ? [] : propertiesMetaDataResult;\n};\n\nexport const fetchPresentationDescriptor = async (iModelConnection: IModelConnection, keySet: KeySet) => {\n const ruleSet: Ruleset = {\n id: \"gmw-element-properties\",\n rules: [\n {\n ruleType: RuleTypes.Content,\n specifications: [\n {\n specType: ContentSpecificationTypes.SelectedNodeInstances,\n propertyOverrides: [{\n name: \"*\",\n isDisplayed: true,\n }],\n },\n ],\n }],\n };\n const requestOptions: ContentDescriptorRequestOptions<IModelConnection, KeySet, RulesetVariable> = {\n imodel: iModelConnection,\n keys: keySet,\n rulesetOrId: ruleSet,\n displayType: DefaultContentDisplayTypes.PropertyPane,\n };\n const descriptor = await Presentation.presentation.getContentDescriptor(\n requestOptions\n );\n return descriptor;\n};\n"]}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import "./GroupsPropertiesSelectionModal.scss";
3
+ import type { PropertyMetaData } from "./GroupPropertyUtils";
4
+ export interface GroupPropertiesSelectionModalProps {
5
+ showModal: boolean;
6
+ setShowModal: (showModal: boolean) => void;
7
+ selectedProperties: PropertyMetaData[];
8
+ setSelectedProperties: (selectedProperties: (selectedProperties: PropertyMetaData[]) => PropertyMetaData[]) => void;
9
+ propertiesMetaData: PropertyMetaData[];
10
+ }
11
+ export declare const GroupsPropertiesSelectionModal: ({ showModal, setShowModal, selectedProperties, setSelectedProperties, propertiesMetaData, }: GroupPropertiesSelectionModalProps) => JSX.Element;
12
+ //# sourceMappingURL=GroupsPropertiesSelectionModal.d.ts.map
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.GroupsPropertiesSelectionModal = void 0;
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
+ *--------------------------------------------------------------------------------------------*/
34
+ const server_1 = require("react-dom/server");
35
+ const itwinui_react_1 = require("@itwin/itwinui-react");
36
+ const react_1 = __importStar(require("react"));
37
+ const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
38
+ const core_1 = require("@dnd-kit/core");
39
+ const sortable_1 = require("@dnd-kit/sortable");
40
+ const SortableHorizontalTile_1 = require("./SortableHorizontalTile");
41
+ const react_split_1 = __importDefault(require("react-split"));
42
+ require("./GroupsPropertiesSelectionModal.scss");
43
+ const utils_1 = require("../../../common/utils");
44
+ const core_2 = require("@dnd-kit/core");
45
+ const sortable_2 = require("@dnd-kit/sortable");
46
+ const GroupPropertyListItem_1 = require("./GroupPropertyListItem");
47
+ const GroupsPropertiesSelectionModal = ({ showModal, setShowModal, selectedProperties, setSelectedProperties, propertiesMetaData, }) => {
48
+ const [searchInput, setSearchInput] = (0, react_1.useState)("");
49
+ const [activeSearchInput, setActiveSearchInput] = (0, react_1.useState)("");
50
+ const [searched, setSearched] = (0, react_1.useState)(false);
51
+ const sensors = (0, core_2.useSensors)((0, core_2.useSensor)(core_2.PointerSensor), (0, core_2.useSensor)(core_2.KeyboardSensor, {
52
+ coordinateGetter: sortable_2.sortableKeyboardCoordinates,
53
+ }));
54
+ const [activeDragProperty, setActiveDragProperty] = (0, react_1.useState)();
55
+ const handleDragStart = (0, react_1.useCallback)((event) => {
56
+ const { active } = event;
57
+ const activeProperty = selectedProperties.find((p) => active.id === p.key);
58
+ setActiveDragProperty(activeProperty);
59
+ }, [selectedProperties]);
60
+ const handleDragEnd = (0, react_1.useCallback)((event) => {
61
+ const { active, over } = event;
62
+ if (over && (active.id !== over.id)) {
63
+ setSelectedProperties((items) => {
64
+ const oldIndex = selectedProperties.findIndex((p) => active.id === p.key);
65
+ const newIndex = selectedProperties.findIndex((p) => over.id === p.key);
66
+ return (0, sortable_2.arrayMove)(items, oldIndex, newIndex);
67
+ });
68
+ }
69
+ setActiveDragProperty(undefined);
70
+ }, [selectedProperties, setSelectedProperties]);
71
+ const clearSearch = (0, react_1.useCallback)(() => {
72
+ setSearchInput("");
73
+ setActiveSearchInput("");
74
+ setSearched(false);
75
+ }, []);
76
+ const startSearch = (0, react_1.useCallback)(() => {
77
+ if (!searchInput)
78
+ return;
79
+ setActiveSearchInput(searchInput);
80
+ setSearched(true);
81
+ }, [searchInput]);
82
+ const filteredProperties = (0, react_1.useMemo)(() => propertiesMetaData.filter((p) => [p.displayLabel, p.categoryLabel, p.actualECClassName]
83
+ .map((l) => l.toLowerCase())
84
+ .some((l) => l.includes(activeSearchInput.toLowerCase()))), [activeSearchInput, propertiesMetaData]);
85
+ (0, react_1.useEffect)(() => {
86
+ if (searchInput.length === 0) {
87
+ setSearched(false);
88
+ clearSearch();
89
+ }
90
+ }, [searchInput, setSearched, clearSearch]);
91
+ return (react_1.default.createElement(core_2.DndContext, { sensors: sensors, collisionDetection: core_2.closestCenter, onDragStart: handleDragStart, onDragEnd: handleDragEnd },
92
+ react_1.default.createElement(itwinui_react_1.Modal, { title: "Properties Selection", isOpen: showModal, onClose: () => {
93
+ setShowModal(false);
94
+ clearSearch();
95
+ }, closeOnExternalClick: false },
96
+ react_1.default.createElement(react_split_1.default, { expandToMin: false, className: "gmw-property-selection-container", gutterAlign: "center", gutterSize: 2, gutter: () => {
97
+ // Expects HTMLElement
98
+ const dragHangle = (0, server_1.renderToStaticMarkup)(react_1.default.createElement(itwinui_react_1.Icon, { className: "gmw-gutter-drag-icon", size: "large" },
99
+ react_1.default.createElement(itwinui_icons_react_1.SvgMoreVerticalSmall, null)));
100
+ const gutter = document.createElement("div");
101
+ gutter.className = `gmw-gutter`;
102
+ gutter.innerHTML = dragHangle;
103
+ return gutter;
104
+ }, direction: "horizontal" },
105
+ react_1.default.createElement(itwinui_react_1.Surface, { className: "gmw-available-properties", elevation: 1 },
106
+ react_1.default.createElement("div", { className: "gmw-available-properties-header" },
107
+ react_1.default.createElement(itwinui_react_1.Label, { as: "span" }, "Available Properties"),
108
+ react_1.default.createElement(itwinui_react_1.LabeledInput, { displayStyle: "inline", iconDisplayStyle: "inline", className: "gmw-available-prop-search", value: searchInput, size: "small", placeholder: "Search....", onChange: (event) => {
109
+ const { target: { value }, } = event;
110
+ setSearchInput(value);
111
+ }, onKeyDown: (event) => {
112
+ if (event.key === "Enter") {
113
+ startSearch();
114
+ }
115
+ }, svgIcon: searched ? (react_1.default.createElement(itwinui_react_1.IconButton, { onClick: clearSearch, styleType: "borderless", title: 'Clear Search' },
116
+ react_1.default.createElement(itwinui_icons_react_1.SvgClose, null))) : (react_1.default.createElement(itwinui_react_1.IconButton, { onClick: startSearch, styleType: "borderless", title: 'Search' },
117
+ react_1.default.createElement(itwinui_icons_react_1.SvgSearch, null))) })),
118
+ filteredProperties.length === 0 ?
119
+ react_1.default.createElement("div", { className: "gmw-empty-selection" },
120
+ react_1.default.createElement(itwinui_react_1.Text, null, "No properties available. ")) :
121
+ react_1.default.createElement("div", { className: "gmw-properties-list" }, filteredProperties.map((property) => (react_1.default.createElement(GroupPropertyListItem_1.GroupPropertyListItem, { key: property.key, content: `${property.displayLabel} (${property.propertyType})`, title: `${property.actualECClassName}`, description: (0, utils_1.getLocalizedStringPresentation)(property.categoryLabel), selected: selectedProperties.some((p) => property.key === p.key), onClick: () => setSelectedProperties((sp) => sp.some((p) => property.key === p.key)
122
+ ? sp.filter((p) => property.key !== p.key)
123
+ : [...sp, property]) }))))),
124
+ react_1.default.createElement(itwinui_react_1.Surface, { className: "gmw-selected-properties", elevation: 1 },
125
+ react_1.default.createElement(itwinui_react_1.Label, { as: "span" }, "Selected Properties"),
126
+ selectedProperties.length === 0 ?
127
+ react_1.default.createElement("div", { className: "gmw-empty-selection" },
128
+ react_1.default.createElement(itwinui_react_1.Text, null, "No properties selected."),
129
+ react_1.default.createElement(itwinui_react_1.Text, null, "Add some by clicking on the properties shown left.")) :
130
+ react_1.default.createElement("div", { className: "gmw-properties-list" },
131
+ react_1.default.createElement(sortable_1.SortableContext, { items: selectedProperties.map((p) => p.key), strategy: sortable_1.verticalListSortingStrategy }, selectedProperties.map((property) => react_1.default.createElement(SortableHorizontalTile_1.SortableHorizontalTile, { key: property.key, id: property.key, content: `${property.displayLabel} (${property.propertyType})`, title: `${property.actualECClassName}`, description: (0, utils_1.getLocalizedStringPresentation)(property.categoryLabel), action: react_1.default.createElement("div", null,
132
+ react_1.default.createElement(itwinui_react_1.IconButton, { styleType: "borderless", title: "Remove", onClick: () => {
133
+ setSelectedProperties((sp) => sp.filter((p) => property.key !== p.key));
134
+ } },
135
+ react_1.default.createElement(itwinui_icons_react_1.SvgRemove, null))) })))))),
136
+ react_1.default.createElement(itwinui_react_1.ModalButtonBar, null,
137
+ react_1.default.createElement(itwinui_react_1.Button, { onClick: () => {
138
+ setShowModal(false);
139
+ clearSearch();
140
+ }, styleType: "high-visibility" }, "Close"))),
141
+ react_1.default.createElement(core_1.DragOverlay, { zIndex: 9999 }, activeDragProperty ?
142
+ react_1.default.createElement(GroupPropertyListItem_1.GroupPropertyListItem, { content: `${activeDragProperty.displayLabel} (${activeDragProperty.propertyType})`, title: `${activeDragProperty.actualECClassName}`, description: (0, utils_1.getLocalizedStringPresentation)(activeDragProperty.categoryLabel), action: react_1.default.createElement(itwinui_react_1.IconButton, { styleType: "borderless" },
143
+ react_1.default.createElement(itwinui_icons_react_1.SvgRemove, null)), dragHandle: react_1.default.createElement(itwinui_react_1.Icon, { className: "gmw-drag-icon", size: "large" },
144
+ react_1.default.createElement(itwinui_icons_react_1.SvgDragHandleVertical, null)) }) : null)));
145
+ };
146
+ exports.GroupsPropertiesSelectionModal = GroupsPropertiesSelectionModal;
147
+ //# sourceMappingURL=GroupsPropertiesSelectionModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupsPropertiesSelectionModal.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupsPropertiesSelectionModal.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 { renderToStaticMarkup } from \"react-dom/server\";\nimport {\n Button,\n Icon,\n IconButton,\n Label,\n LabeledInput,\n Modal,\n ModalButtonBar,\n Surface,\n Text,\n} from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n SvgClose,\n SvgDragHandleVertical,\n SvgMoreVerticalSmall,\n SvgRemove,\n SvgSearch,\n} from \"@itwin/itwinui-icons-react\";\nimport {\n DragOverlay,\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { SortableHorizontalTile } from \"./SortableHorizontalTile\";\nimport Split from \"react-split\";\nimport \"./GroupsPropertiesSelectionModal.scss\";\nimport type { PropertyMetaData } from \"./GroupPropertyUtils\";\nimport { getLocalizedStringPresentation } from \"../../../common/utils\";\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n arrayMove,\n sortableKeyboardCoordinates,\n} from \"@dnd-kit/sortable\";\nimport type { DragEndEvent, DragStartEvent } from \"@dnd-kit/core\";\nimport { GroupPropertyListItem } from \"./GroupPropertyListItem\";\n\nexport interface GroupPropertiesSelectionModalProps {\n showModal: boolean;\n setShowModal: (showModal: boolean) => void;\n selectedProperties: PropertyMetaData[];\n setSelectedProperties: (selectedProperties: (selectedProperties: PropertyMetaData[]) => PropertyMetaData[]) => void;\n propertiesMetaData: PropertyMetaData[];\n}\n\nexport const GroupsPropertiesSelectionModal = (\n {\n showModal,\n setShowModal,\n selectedProperties,\n setSelectedProperties,\n propertiesMetaData,\n }: GroupPropertiesSelectionModalProps\n) => {\n const [searchInput, setSearchInput] = useState<string>(\"\");\n const [activeSearchInput, setActiveSearchInput] = useState<string>(\"\");\n const [searched, setSearched] = useState<boolean>(false);\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n const [activeDragProperty, setActiveDragProperty] = useState<PropertyMetaData | undefined>();\n\n const handleDragStart = useCallback((event: DragStartEvent) => {\n const { active } = event;\n const activeProperty = selectedProperties.find((p) => active.id === p.key);\n setActiveDragProperty(activeProperty);\n }, [selectedProperties]);\n\n const handleDragEnd = useCallback((event: DragEndEvent) => {\n const { active, over } = event;\n\n if (over && (active.id !== over.id)) {\n setSelectedProperties((items) => {\n const oldIndex = selectedProperties.findIndex((p) => active.id === p.key);\n const newIndex = selectedProperties.findIndex((p) => over.id === p.key);\n\n return arrayMove(items, oldIndex, newIndex);\n });\n }\n\n setActiveDragProperty(undefined);\n }, [selectedProperties, setSelectedProperties]);\n\n const clearSearch = useCallback(() => {\n setSearchInput(\"\");\n setActiveSearchInput(\"\");\n setSearched(false);\n }, []);\n\n const startSearch = useCallback(() => {\n if (!searchInput) return;\n setActiveSearchInput(searchInput);\n setSearched(true);\n }, [searchInput]);\n\n const filteredProperties = useMemo(\n () =>\n propertiesMetaData.filter((p) =>\n [p.displayLabel, p.categoryLabel, p.actualECClassName]\n .map((l) => l.toLowerCase())\n .some((l) => l.includes(activeSearchInput.toLowerCase()))\n ),\n [activeSearchInput, propertiesMetaData]\n );\n\n useEffect(() => {\n if (searchInput.length === 0) {\n setSearched(false);\n clearSearch();\n }\n }, [searchInput, setSearched, clearSearch]);\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n >\n <Modal\n title=\"Properties Selection\"\n isOpen={showModal}\n onClose={() => {\n setShowModal(false);\n clearSearch();\n }}\n closeOnExternalClick={false}\n >\n <Split\n expandToMin={false}\n className=\"gmw-property-selection-container\"\n gutterAlign=\"center\"\n gutterSize={2}\n gutter={() => {\n // Expects HTMLElement\n const dragHangle = renderToStaticMarkup(\n <Icon className=\"gmw-gutter-drag-icon\" size=\"large\">\n <SvgMoreVerticalSmall />\n </Icon>\n );\n const gutter = document.createElement(\"div\");\n gutter.className = `gmw-gutter`;\n gutter.innerHTML = dragHangle;\n return gutter;\n }}\n direction=\"horizontal\">\n <Surface className=\"gmw-available-properties\" elevation={1}>\n <div className=\"gmw-available-properties-header\">\n <Label as=\"span\">Available Properties</Label>\n <LabeledInput\n displayStyle=\"inline\"\n iconDisplayStyle=\"inline\"\n className=\"gmw-available-prop-search\"\n value={searchInput}\n size=\"small\"\n placeholder=\"Search....\"\n onChange={(event) => {\n const {\n target: { value },\n } = event;\n setSearchInput(value);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\") {\n startSearch();\n }\n }}\n svgIcon={\n searched ? (\n <IconButton onClick={clearSearch} styleType=\"borderless\" title='Clear Search'>\n <SvgClose />\n </IconButton>\n ) : (\n <IconButton onClick={startSearch} styleType=\"borderless\" title='Search'>\n <SvgSearch />\n </IconButton>\n )\n }\n />\n </div>\n {filteredProperties.length === 0 ?\n <div className=\"gmw-empty-selection\">\n <Text>No properties available. </Text>\n </div> :\n <div className=\"gmw-properties-list\">\n {\n filteredProperties.map((property) => (\n <GroupPropertyListItem\n key={property.key}\n content={`${property.displayLabel} (${property.propertyType})`}\n title={`${property.actualECClassName}`}\n description={getLocalizedStringPresentation(property.categoryLabel)}\n selected={selectedProperties.some((p) => property.key === p.key)}\n onClick={() =>\n setSelectedProperties((sp) =>\n sp.some((p) => property.key === p.key)\n ? sp.filter(\n (p) => property.key !== p.key\n )\n : [...sp, property]\n )\n }\n />\n ))}\n </div>}\n </Surface>\n <Surface className=\"gmw-selected-properties\" elevation={1}>\n <Label as=\"span\">Selected Properties</Label>\n {selectedProperties.length === 0 ?\n <div className=\"gmw-empty-selection\">\n <Text>No properties selected.</Text>\n <Text>Add some by clicking on the properties shown left.</Text>\n </div> :\n <div className=\"gmw-properties-list\" >\n <SortableContext\n items={selectedProperties.map((p) => p.key)}\n strategy={verticalListSortingStrategy}\n >\n {selectedProperties.map((property) =>\n <SortableHorizontalTile\n key={property.key}\n id={property.key}\n content={`${property.displayLabel} (${property.propertyType})`}\n title={`${property.actualECClassName}`}\n description={getLocalizedStringPresentation(property.categoryLabel)}\n action={\n <div>\n <IconButton\n styleType=\"borderless\"\n title=\"Remove\"\n onClick={() => {\n setSelectedProperties((sp) => sp.filter(\n (p) => property.key !== p.key\n ));\n }\n }>\n <SvgRemove />\n </IconButton>\n </div>\n }\n />)}\n </SortableContext>\n </div>}\n </Surface>\n </Split>\n <ModalButtonBar>\n <Button\n onClick={() => {\n setShowModal(false);\n clearSearch();\n }}\n styleType=\"high-visibility\"\n >\n Close\n </Button>\n </ModalButtonBar>\n </Modal>\n <DragOverlay zIndex={9999}>\n {activeDragProperty ?\n <GroupPropertyListItem\n content={`${activeDragProperty.displayLabel} (${activeDragProperty.propertyType})`}\n title={`${activeDragProperty.actualECClassName}`}\n description={getLocalizedStringPresentation(activeDragProperty.categoryLabel)}\n action={\n <IconButton\n styleType=\"borderless\">\n <SvgRemove />\n </IconButton>}\n dragHandle={\n <Icon className=\"gmw-drag-icon\" size=\"large\">\n <SvgDragHandleVertical />\n </Icon>\n }\n /> : null}\n </DragOverlay>\n </DndContext>\n );\n};\n"]}
@@ -0,0 +1,49 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
6
+ .gmw-property-selection-container {
7
+ display: flex;
8
+ gap: var(--iui-size-xs);
9
+ width: 45vw;
10
+ min-width: 100%;
11
+ height: 75vh;
12
+
13
+ .gmw-gutter {
14
+ display: flex;
15
+ flex-direction: column;
16
+ justify-content: center;
17
+ align-items: center;
18
+ }
19
+
20
+ .gmw-selected-properties {
21
+ display: flex;
22
+ flex-direction: column;
23
+ gap: var(--iui-size-s);
24
+ padding: var(--iui-size-s) var(--iui-size-m);
25
+ }
26
+
27
+ .gmw-available-properties {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: var(--iui-size-s);
31
+ padding: var(--iui-size-s) var(--iui-size-m);
32
+ .gmw-available-properties-header {
33
+ display: flex;
34
+ justify-content: space-between;
35
+ flex-wrap: wrap;
36
+ gap: var(--iui-size-xs);
37
+ .gmw-available-prop-search {
38
+ flex: 1 1 80px;
39
+ min-width: 80px;
40
+ max-width: 300px;
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ .gmw-gutter-drag-icon {
47
+ justify-content: center;
48
+ cursor: col-resize;
49
+ }
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
- import type { HorizontalTileProps } from "../../SharedComponents/HorizontalTile";
3
- interface SortableHorizontalTileProps extends HorizontalTileProps {
2
+ import type { GroupPropertyListItemProps } from "./GroupPropertyListItem";
3
+ interface SortableHorizontalTileProps extends GroupPropertyListItemProps {
4
4
  id: string;
5
5
  }
6
- declare const SortableHorizontalTile: ({ id, ...props }: SortableHorizontalTileProps) => JSX.Element;
7
- export default SortableHorizontalTile;
6
+ export declare const SortableHorizontalTile: ({ id, ...props }: SortableHorizontalTileProps) => JSX.Element;
7
+ export {};
8
8
  //# sourceMappingURL=SortableHorizontalTile.d.ts.map
@@ -23,16 +23,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.SortableHorizontalTile = void 0;
26
27
  /*---------------------------------------------------------------------------------------------
27
28
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
28
29
  * See LICENSE.md in the project root for license terms and full copyright notice.
29
30
  *--------------------------------------------------------------------------------------------*/
30
31
  const react_1 = __importStar(require("react"));
31
32
  const sortable_1 = require("@dnd-kit/sortable");
32
- const HorizontalTile_1 = require("../../SharedComponents/HorizontalTile");
33
33
  const utilities_1 = require("@dnd-kit/utilities");
34
34
  const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
35
35
  const itwinui_react_1 = require("@itwin/itwinui-react");
36
+ const GroupPropertyListItem_1 = require("./GroupPropertyListItem");
36
37
  const SortableHorizontalTile = ({ id, ...props }) => {
37
38
  const { attributes, listeners, isDragging, setNodeRef, transform, transition, } = (0, sortable_1.useSortable)({ id });
38
39
  const style = {
@@ -49,8 +50,8 @@ const SortableHorizontalTile = ({ id, ...props }) => {
49
50
  };
50
51
  }, [isDragging]);
51
52
  return (react_1.default.createElement("div", { ref: setNodeRef, ...attributes, style: { ...style, visibility: isDragging ? "hidden" : "visible" } },
52
- react_1.default.createElement(HorizontalTile_1.HorizontalTile, { dragHandle: react_1.default.createElement(itwinui_react_1.Icon, { className: "gmw-drag-icon", size: "large", style: { cursor: "grab" }, title: "Drag & Drop", ...listeners },
53
+ react_1.default.createElement(GroupPropertyListItem_1.GroupPropertyListItem, { dragHandle: react_1.default.createElement(itwinui_react_1.Icon, { className: "gmw-drag-icon", size: "large", style: { cursor: "grab" }, title: "Drag & Drop", ...listeners },
53
54
  react_1.default.createElement(itwinui_icons_react_1.SvgDragHandleVertical, null)), ...props })));
54
55
  };
55
- exports.default = SortableHorizontalTile;
56
+ exports.SortableHorizontalTile = SortableHorizontalTile;
56
57
  //# sourceMappingURL=SortableHorizontalTile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SortableHorizontalTile.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/SortableHorizontalTile.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAyC;AACzC,gDAAgD;AAEhD,0EAAuE;AACvE,kDAAyC;AACzC,oEAAmE;AACnE,wDAA4C;AAM5C,MAAM,sBAAsB,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAA+B,EAAE,EAAE;IAC/E,MAAM,EACJ,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,GACX,GAAG,IAAA,sBAAW,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAExB,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,eAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,UAAU;KACX,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACL,uCACE,GAAG,EAAE,UAAU,KACX,UAAU,EACd,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE;QAElE,8BAAC,+BAAc,IACb,UAAU,EACR,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAC,aAAa,KAAK,SAAS;gBACvG,8BAAC,2CAAqB,OAAG,CACpB,KAEL,KAAK,GACT,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { useEffect } from \"react\";\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport type { HorizontalTileProps } from \"../../SharedComponents/HorizontalTile\";\nimport { HorizontalTile } from \"../../SharedComponents/HorizontalTile\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { SvgDragHandleVertical } from \"@itwin/itwinui-icons-react\";\nimport { Icon } from \"@itwin/itwinui-react\";\n\ninterface SortableHorizontalTileProps extends HorizontalTileProps {\n id: string;\n}\n\nconst SortableHorizontalTile = ({ id, ...props }: SortableHorizontalTileProps) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n useEffect(() => {\n if (!isDragging) {\n return;\n }\n document.body.style.cursor = \"grabbing\";\n return () => {\n document.body.style.cursor = \"\";\n };\n }, [isDragging]);\n\n return (\n <div\n ref={setNodeRef}\n {...attributes}\n style={{ ...style, visibility: isDragging ? \"hidden\" : \"visible\" }}\n >\n <HorizontalTile\n dragHandle={\n <Icon className=\"gmw-drag-icon\" size=\"large\" style={{ cursor: \"grab\" }} title=\"Drag & Drop\" {...listeners}>\n <SvgDragHandleVertical />\n </Icon>\n }\n {...props}\n />\n </div>\n );\n};\n\nexport default SortableHorizontalTile;\n"]}
1
+ {"version":3,"file":"SortableHorizontalTile.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/SortableHorizontalTile.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAyC;AACzC,gDAAgD;AAChD,kDAAyC;AACzC,oEAAmE;AACnE,wDAA4C;AAE5C,mEAAgE;AAMzD,MAAM,sBAAsB,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAA+B,EAAE,EAAE;IACtF,MAAM,EACJ,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,GACX,GAAG,IAAA,sBAAW,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAExB,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,eAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,UAAU;KACX,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,EAAE;YACf,OAAO;SACR;QACD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,CACL,uCACE,GAAG,EAAE,UAAU,KACX,UAAU,EACd,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE;QAElE,8BAAC,6CAAqB,IACpB,UAAU,EACR,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAC,aAAa,KAAK,SAAS;gBACvG,8BAAC,2CAAqB,OAAG,CACpB,KAEL,KAAK,GACT,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAzCW,QAAA,sBAAsB,0BAyCjC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { useEffect } from \"react\";\nimport { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { SvgDragHandleVertical } from \"@itwin/itwinui-icons-react\";\nimport { Icon } from \"@itwin/itwinui-react\";\nimport type { GroupPropertyListItemProps } from \"./GroupPropertyListItem\";\nimport { GroupPropertyListItem } from \"./GroupPropertyListItem\";\n\ninterface SortableHorizontalTileProps extends GroupPropertyListItemProps {\n id: string;\n}\n\nexport const SortableHorizontalTile = ({ id, ...props }: SortableHorizontalTileProps) => {\n const {\n attributes,\n listeners,\n isDragging,\n setNodeRef,\n transform,\n transition,\n } = useSortable({ id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n useEffect(() => {\n if (!isDragging) {\n return;\n }\n document.body.style.cursor = \"grabbing\";\n return () => {\n document.body.style.cursor = \"\";\n };\n }, [isDragging]);\n\n return (\n <div\n ref={setNodeRef}\n {...attributes}\n style={{ ...style, visibility: isDragging ? \"hidden\" : \"visible\" }}\n >\n <GroupPropertyListItem\n dragHandle={\n <Icon className=\"gmw-drag-icon\" size=\"large\" style={{ cursor: \"grab\" }} title=\"Drag & Drop\" {...listeners}>\n <SvgDragHandleVertical />\n </Icon>\n }\n {...props}\n />\n </div>\n );\n};\n"]}
@@ -31,30 +31,26 @@ exports.PropertyMenu = void 0;
31
31
  const react_1 = __importStar(require("react"));
32
32
  require("./PropertyMenu.scss");
33
33
  const GroupPropertyTable_1 = require("./GroupProperties/GroupPropertyTable");
34
- const useFetchData_1 = require("./hooks/useFetchData");
35
34
  const MappingClientContext_1 = require("../context/MappingClientContext");
36
35
  const GroupingApiConfigContext_1 = require("../context/GroupingApiConfigContext");
37
- const PropertiesContext_1 = require("../context/PropertiesContext");
38
36
  const CalculatedPropertyTable_1 = require("./CalculatedProperties/CalculatedPropertyTable");
39
37
  const CustomCalculationTable_1 = require("./CustomCalculations/CustomCalculationTable");
38
+ const useGroupPropertiesQuery_1 = require("./hooks/useGroupPropertiesQuery");
39
+ const useCalculatedPropertiesQuery_1 = require("./hooks/useCalculatedPropertiesQuery");
40
+ const useCustomCalculationsQuery_1 = require("./hooks/useCustomCalculationsQuery");
41
+ const react_query_1 = require("@tanstack/react-query");
40
42
  const PropertyMenu = ({ mapping, group, onClickAddGroupProperty, onClickModifyGroupProperty, onClickAddCalculatedProperty, onClickModifyCalculatedProperty, onClickAddCustomCalculationProperty, onClickModifyCustomCalculation, hideGroupProps = false, hideCalculatedProps = false, hideCustomCalculationProps = false, }) => {
41
43
  const groupId = group.id;
42
44
  const mappingId = mapping.id;
43
45
  const { getAccessToken, iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
44
46
  const mappingClient = (0, MappingClientContext_1.useMappingClient)();
45
- const { groupProperties, setGroupProperties, calculatedProperties, setCalculatedProperties, customCalculationProperties, setCustomCalculationProperties, } = (0, PropertiesContext_1.usePropertiesContext)();
46
- const fetchGroupProperties = (0, react_1.useMemo)(() => {
47
- return async () => mappingClient.getGroupProperties(await getAccessToken(), iModelId, mappingId, groupId);
48
- }, [getAccessToken, mappingClient, iModelId, mappingId, groupId]);
49
- const { isLoading: isLoadingGroupProperties, refreshData: refreshGroupProperties } = (0, useFetchData_1.useCombinedFetchRefresh)(fetchGroupProperties, setGroupProperties);
50
- const fetchCalculatedProperties = (0, react_1.useMemo)(() => {
51
- return async () => mappingClient.getCalculatedProperties(await getAccessToken(), iModelId, mappingId, groupId);
52
- }, [getAccessToken, mappingClient, iModelId, mappingId, groupId]);
53
- const { isLoading: isLoadingCalculatedProperties, refreshData: refreshCalculatedProperties } = (0, useFetchData_1.useCombinedFetchRefresh)(fetchCalculatedProperties, setCalculatedProperties);
54
- const fetchCustomCalculations = (0, react_1.useMemo)(() => {
55
- return async () => mappingClient.getCustomCalculations(await getAccessToken(), iModelId, mappingId, groupId);
56
- }, [getAccessToken, mappingClient, iModelId, mappingId, groupId]);
57
- const { isLoading: isLoadingCustomCalculations, refreshData: refreshCustomCalculations } = (0, useFetchData_1.useCombinedFetchRefresh)(fetchCustomCalculations, setCustomCalculationProperties);
47
+ const queryClient = (0, react_query_1.useQueryClient)();
48
+ const { data: groupProperties, isFetching: isLoadingGroupProperties } = (0, useGroupPropertiesQuery_1.useGroupPropertiesQuery)(iModelId, mappingId, groupId, getAccessToken, mappingClient);
49
+ const { data: calculatedProperties, isFetching: isLoadingCalculatedProperties } = (0, useCalculatedPropertiesQuery_1.useCalculatedPropertiesQuery)(iModelId, mappingId, groupId, getAccessToken, mappingClient);
50
+ const { data: customCalculationProperties, isFetching: isLoadingCustomCalculations } = (0, useCustomCalculationsQuery_1.useCustomCalculationsQuery)(iModelId, mappingId, groupId, getAccessToken, mappingClient);
51
+ const refreshGroupProperties = (0, react_1.useCallback)(async () => queryClient.invalidateQueries({ queryKey: ["groupProperties", iModelId, mappingId, group.id] }), [group.id, iModelId, mappingId, queryClient]);
52
+ const refreshCalculatedProperties = (0, react_1.useCallback)(async () => queryClient.invalidateQueries({ queryKey: ["calculatedProperties", iModelId, mappingId, group.id] }), [group.id, iModelId, mappingId, queryClient]);
53
+ const refreshCustomCalculations = (0, react_1.useCallback)(async () => queryClient.invalidateQueries({ queryKey: ["customCalculations", iModelId, mappingId, group.id] }), [group.id, iModelId, mappingId, queryClient]);
58
54
  return (react_1.default.createElement("div", { className: 'gmw-property-menu-wrapper' },
59
55
  !hideGroupProps && (react_1.default.createElement(GroupPropertyTable_1.GroupPropertyTable, { iModelId: iModelId, mappingId: mappingId, groupId: groupId, onClickAdd: onClickAddGroupProperty, onClickModify: onClickModifyGroupProperty, isLoading: isLoadingGroupProperties, groupProperties: groupProperties ?? [], refresh: refreshGroupProperties })),
60
56
  !hideCalculatedProps && (react_1.default.createElement(CalculatedPropertyTable_1.CalculatedPropertyTable, { mappingId: mappingId, groupId: groupId, onClickAdd: onClickAddCalculatedProperty, onClickModify: onClickModifyCalculatedProperty, isLoading: isLoadingCalculatedProperties, calculatedProperties: calculatedProperties ?? [], refresh: refreshCalculatedProperties })),
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyMenu.js","sourceRoot":"","sources":["../../../../src/components/Properties/PropertyMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAuC;AACvC,+BAA6B;AAC7B,6EAA0E;AAC1E,uDAA+D;AAC/D,0EAAmE;AACnE,kFAAkF;AAElF,oEAAoE;AACpE,4FAAyF;AACzF,wFAAqF;AAgB9E,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,EAC/B,mCAAmC,EACnC,8BAA8B,EAC9B,cAAc,GAAG,KAAK,EACtB,mBAAmB,GAAG,KAAK,EAC3B,0BAA0B,GAAG,KAAK,GAChB,EAAE,EAAE;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACnE,MAAM,aAAa,GAAG,IAAA,uCAAgB,GAAE,CAAC;IACzC,MAAM,EACJ,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,GAC/B,GAAG,IAAA,wCAAoB,GAAE,CAAC;IAE3B,MAAM,oBAAoB,GAAG,IAAA,eAAO,EAClC,GAAG,EAAE;QACH,OAAO,KAAK,IAAI,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAM,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5G,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAC9D,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAChF,IAAA,sCAAuB,EAAgB,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;IAEnF,MAAM,yBAAyB,GAAG,IAAA,eAAO,EACvC,GAAG,EAAE;QACH,OAAO,KAAK,IAAI,EAAE,CAAC,aAAa,CAAC,uBAAuB,CAAC,MAAM,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjH,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAC9D,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,6BAA6B,EAAE,WAAW,EAAE,2BAA2B,EAAE,GAC1F,IAAA,sCAAuB,EAAqB,yBAAyB,EAAE,uBAAuB,CAAC,CAAC;IAElG,MAAM,uBAAuB,GAAG,IAAA,eAAO,EACrC,GAAG,EAAE;QACH,OAAO,KAAK,IAAI,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/G,CAAC,EACD,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAC9D,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,2BAA2B,EAAE,WAAW,EAAE,yBAAyB,EAAE,GACtF,IAAA,sCAAuB,EAAoB,uBAAuB,EAAE,8BAA8B,CAAC,CAAC;IAEtG,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACvC,CAAC,cAAc,IAAI,CAClB,8BAAC,uCAAkB,IACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,uBAAuB,EACnC,aAAa,EAAE,0BAA0B,EACzC,SAAS,EAAE,wBAAwB,EACnC,eAAe,EAAE,eAAe,IAAI,EAAE,EACtC,OAAO,EAAE,sBAAsB,GAC/B,CACH;QACA,CAAC,mBAAmB,IAAI,CACvB,8BAAC,iDAAuB,IACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,4BAA4B,EACxC,aAAa,EAAE,+BAA+B,EAC9C,SAAS,EAAE,6BAA6B,EACxC,oBAAoB,EAAE,oBAAoB,IAAI,EAAE,EAChD,OAAO,EAAE,2BAA2B,GACpC,CACH;QACA,CAAC,0BAA0B,IAAI,CAC9B,8BAAC,+CAAsB,IACrB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,mCAAmC,EAC/C,aAAa,EAAE,8BAA8B,EAC7C,SAAS,EAAE,2BAA2B,EACtC,kBAAkB,EAAE,2BAA2B,IAAI,EAAE,EACrD,OAAO,EAAE,yBAAyB,GAClC,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AA3FW,QAAA,YAAY,gBA2FvB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { useMemo } from \"react\";\nimport \"./PropertyMenu.scss\";\nimport { GroupPropertyTable } from \"./GroupProperties/GroupPropertyTable\";\nimport { useCombinedFetchRefresh } from \"./hooks/useFetchData\";\nimport { useMappingClient } from \"../context/MappingClientContext\";\nimport { useGroupingMappingApiConfig } from \"../context/GroupingApiConfigContext\";\nimport type { CalculatedProperty, CustomCalculation, Group, GroupProperty, Mapping } from \"@itwin/insights-client\";\nimport { usePropertiesContext } from \"../context/PropertiesContext\";\nimport { CalculatedPropertyTable } from \"./CalculatedProperties/CalculatedPropertyTable\";\nimport { CustomCalculationTable } from \"./CustomCalculations/CustomCalculationTable\";\n\nexport interface PropertyMenuProps {\n mapping: Mapping;\n group: Group;\n onClickAddGroupProperty?: () => void;\n onClickModifyGroupProperty?: (groupProperty: GroupProperty) => void;\n onClickAddCalculatedProperty?: () => void;\n onClickModifyCalculatedProperty?: (calculatedProperty: CalculatedProperty) => void;\n onClickAddCustomCalculationProperty?: () => void;\n onClickModifyCustomCalculation?: (customCalculation: CustomCalculation) => void;\n hideGroupProps?: boolean;\n hideCalculatedProps?: boolean;\n hideCustomCalculationProps?: boolean;\n}\n\nexport const PropertyMenu = ({\n mapping,\n group,\n onClickAddGroupProperty,\n onClickModifyGroupProperty,\n onClickAddCalculatedProperty,\n onClickModifyCalculatedProperty,\n onClickAddCustomCalculationProperty,\n onClickModifyCustomCalculation,\n hideGroupProps = false,\n hideCalculatedProps = false,\n hideCustomCalculationProps = false,\n}: PropertyMenuProps) => {\n const groupId = group.id;\n const mappingId = mapping.id;\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const {\n groupProperties,\n setGroupProperties,\n calculatedProperties,\n setCalculatedProperties,\n customCalculationProperties,\n setCustomCalculationProperties,\n } = usePropertiesContext();\n\n const fetchGroupProperties = useMemo(\n () => {\n return async () => mappingClient.getGroupProperties(await getAccessToken(), iModelId, mappingId, groupId);\n },\n [getAccessToken, mappingClient, iModelId, mappingId, groupId],\n );\n const { isLoading: isLoadingGroupProperties, refreshData: refreshGroupProperties } =\n useCombinedFetchRefresh<GroupProperty>(fetchGroupProperties, setGroupProperties);\n\n const fetchCalculatedProperties = useMemo(\n () => {\n return async () => mappingClient.getCalculatedProperties(await getAccessToken(), iModelId, mappingId, groupId);\n },\n [getAccessToken, mappingClient, iModelId, mappingId, groupId],\n );\n const { isLoading: isLoadingCalculatedProperties, refreshData: refreshCalculatedProperties } =\n useCombinedFetchRefresh<CalculatedProperty>(fetchCalculatedProperties, setCalculatedProperties);\n\n const fetchCustomCalculations = useMemo(\n () => {\n return async () => mappingClient.getCustomCalculations(await getAccessToken(), iModelId, mappingId, groupId);\n },\n [getAccessToken, mappingClient, iModelId, mappingId, groupId],\n );\n const { isLoading: isLoadingCustomCalculations, refreshData: refreshCustomCalculations } =\n useCombinedFetchRefresh<CustomCalculation>(fetchCustomCalculations, setCustomCalculationProperties);\n\n return (\n <div className='gmw-property-menu-wrapper'>\n {!hideGroupProps && (\n <GroupPropertyTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={groupId}\n onClickAdd={onClickAddGroupProperty}\n onClickModify={onClickModifyGroupProperty}\n isLoading={isLoadingGroupProperties}\n groupProperties={groupProperties ?? []}\n refresh={refreshGroupProperties}\n />\n )}\n {!hideCalculatedProps && (\n <CalculatedPropertyTable\n mappingId={mappingId}\n groupId={groupId}\n onClickAdd={onClickAddCalculatedProperty}\n onClickModify={onClickModifyCalculatedProperty}\n isLoading={isLoadingCalculatedProperties}\n calculatedProperties={calculatedProperties ?? []}\n refresh={refreshCalculatedProperties}\n />\n )}\n {!hideCustomCalculationProps && (\n <CustomCalculationTable\n mappingId={mappingId}\n groupId={groupId}\n onClickAdd={onClickAddCustomCalculationProperty}\n onClickModify={onClickModifyCustomCalculation}\n isLoading={isLoadingCustomCalculations}\n customCalculations={customCalculationProperties ?? []}\n refresh={refreshCustomCalculations}\n />\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"PropertyMenu.js","sourceRoot":"","sources":["../../../../src/components/Properties/PropertyMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAA2C;AAC3C,+BAA6B;AAC7B,6EAA0E;AAC1E,0EAAmE;AACnE,kFAAkF;AAElF,4FAAyF;AACzF,wFAAqF;AACrF,6EAA0E;AAC1E,uFAAoF;AACpF,mFAAgF;AAChF,uDAAuD;AAgBhD,MAAM,YAAY,GAAG,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,4BAA4B,EAC5B,+BAA+B,EAC/B,mCAAmC,EACnC,8BAA8B,EAC9B,cAAc,GAAG,KAAK,EACtB,mBAAmB,GAAG,KAAK,EAC3B,0BAA0B,GAAG,KAAK,GAChB,EAAE,EAAE;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACnE,MAAM,aAAa,GAAG,IAAA,uCAAgB,GAAE,CAAC;IACzC,MAAM,WAAW,GAAG,IAAA,4BAAc,GAAE,CAAC;IAErC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,wBAAwB,EAAE,GAAG,IAAA,iDAAuB,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAC7J,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,6BAA6B,EAAE,GAAG,IAAA,2DAA4B,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAC5K,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,2BAA2B,EAAE,GAAG,IAAA,uDAA0B,EAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAE/K,MAAM,sBAAsB,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACtM,MAAM,2BAA2B,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAChN,MAAM,yBAAyB,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5M,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACvC,CAAC,cAAc,IAAI,CAClB,8BAAC,uCAAkB,IACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,uBAAuB,EACnC,aAAa,EAAE,0BAA0B,EACzC,SAAS,EAAE,wBAAwB,EACnC,eAAe,EAAE,eAAe,IAAI,EAAE,EACtC,OAAO,EAAE,sBAAsB,GAC/B,CACH;QACA,CAAC,mBAAmB,IAAI,CACvB,8BAAC,iDAAuB,IACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,4BAA4B,EACxC,aAAa,EAAE,+BAA+B,EAC9C,SAAS,EAAE,6BAA6B,EACxC,oBAAoB,EAAE,oBAAoB,IAAI,EAAE,EAChD,OAAO,EAAE,2BAA2B,GACpC,CACH;QACA,CAAC,0BAA0B,IAAI,CAC9B,8BAAC,+CAAsB,IACrB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,mCAAmC,EAC/C,aAAa,EAAE,8BAA8B,EAC7C,SAAS,EAAE,2BAA2B,EACtC,kBAAkB,EAAE,2BAA2B,IAAI,EAAE,EACrD,OAAO,EAAE,yBAAyB,GAClC,CACH,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAjEW,QAAA,YAAY,gBAiEvB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { useCallback } from \"react\";\nimport \"./PropertyMenu.scss\";\nimport { GroupPropertyTable } from \"./GroupProperties/GroupPropertyTable\";\nimport { useMappingClient } from \"../context/MappingClientContext\";\nimport { useGroupingMappingApiConfig } from \"../context/GroupingApiConfigContext\";\nimport type { CalculatedProperty, CustomCalculation, Group, GroupProperty, Mapping } from \"@itwin/insights-client\";\nimport { CalculatedPropertyTable } from \"./CalculatedProperties/CalculatedPropertyTable\";\nimport { CustomCalculationTable } from \"./CustomCalculations/CustomCalculationTable\";\nimport { useGroupPropertiesQuery } from \"./hooks/useGroupPropertiesQuery\";\nimport { useCalculatedPropertiesQuery } from \"./hooks/useCalculatedPropertiesQuery\";\nimport { useCustomCalculationsQuery } from \"./hooks/useCustomCalculationsQuery\";\nimport { useQueryClient } from \"@tanstack/react-query\";\n\nexport interface PropertyMenuProps {\n mapping: Mapping;\n group: Group;\n onClickAddGroupProperty?: () => void;\n onClickModifyGroupProperty?: (groupProperty: GroupProperty) => void;\n onClickAddCalculatedProperty?: () => void;\n onClickModifyCalculatedProperty?: (calculatedProperty: CalculatedProperty) => void;\n onClickAddCustomCalculationProperty?: () => void;\n onClickModifyCustomCalculation?: (customCalculation: CustomCalculation) => void;\n hideGroupProps?: boolean;\n hideCalculatedProps?: boolean;\n hideCustomCalculationProps?: boolean;\n}\n\nexport const PropertyMenu = ({\n mapping,\n group,\n onClickAddGroupProperty,\n onClickModifyGroupProperty,\n onClickAddCalculatedProperty,\n onClickModifyCalculatedProperty,\n onClickAddCustomCalculationProperty,\n onClickModifyCustomCalculation,\n hideGroupProps = false,\n hideCalculatedProps = false,\n hideCustomCalculationProps = false,\n}: PropertyMenuProps) => {\n const groupId = group.id;\n const mappingId = mapping.id;\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const queryClient = useQueryClient();\n\n const { data: groupProperties, isFetching: isLoadingGroupProperties } = useGroupPropertiesQuery(iModelId, mappingId, groupId, getAccessToken, mappingClient);\n const { data: calculatedProperties, isFetching: isLoadingCalculatedProperties } = useCalculatedPropertiesQuery(iModelId, mappingId, groupId, getAccessToken, mappingClient);\n const { data: customCalculationProperties, isFetching: isLoadingCustomCalculations } = useCustomCalculationsQuery(iModelId, mappingId, groupId, getAccessToken, mappingClient);\n\n const refreshGroupProperties = useCallback(async () => queryClient.invalidateQueries({ queryKey: [\"groupProperties\", iModelId, mappingId, group.id] }), [group.id, iModelId, mappingId, queryClient]);\n const refreshCalculatedProperties = useCallback(async () => queryClient.invalidateQueries({ queryKey: [\"calculatedProperties\", iModelId, mappingId, group.id] }), [group.id, iModelId, mappingId, queryClient]);\n const refreshCustomCalculations = useCallback(async () => queryClient.invalidateQueries({ queryKey: [\"customCalculations\", iModelId, mappingId, group.id] }), [group.id, iModelId, mappingId, queryClient]);\n\n return (\n <div className='gmw-property-menu-wrapper'>\n {!hideGroupProps && (\n <GroupPropertyTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={groupId}\n onClickAdd={onClickAddGroupProperty}\n onClickModify={onClickModifyGroupProperty}\n isLoading={isLoadingGroupProperties}\n groupProperties={groupProperties ?? []}\n refresh={refreshGroupProperties}\n />\n )}\n {!hideCalculatedProps && (\n <CalculatedPropertyTable\n mappingId={mappingId}\n groupId={groupId}\n onClickAdd={onClickAddCalculatedProperty}\n onClickModify={onClickModifyCalculatedProperty}\n isLoading={isLoadingCalculatedProperties}\n calculatedProperties={calculatedProperties ?? []}\n refresh={refreshCalculatedProperties}\n />\n )}\n {!hideCustomCalculationProps && (\n <CustomCalculationTable\n mappingId={mappingId}\n groupId={groupId}\n onClickAdd={onClickAddCustomCalculationProperty}\n onClickModify={onClickModifyCustomCalculation}\n isLoading={isLoadingCustomCalculations}\n customCalculations={customCalculationProperties ?? []}\n refresh={refreshCustomCalculations}\n />\n )}\n </div>\n );\n};\n"]}
@@ -52,7 +52,7 @@ const PropertyTable = ({ propertyType, columnsFactory, data, isLoading, onClickA
52
52
  react_1.default.createElement(PropertyTableToolbar_1.PropertyTableToolbar, { propertyType: propertyType, onClickAddProperty: onClickAdd, refreshProperties: refreshProperties, isLoading: isLoading }),
53
53
  react_1.default.createElement(itwinui_react_1.Table, { data: isLoading ? [] : data, density: 'extra-condensed', columns: memoizedColumns, emptyTableContent: `No ${propertyType} Properties`, isSortable: true, isLoading: isLoading }),
54
54
  showDeleteModal &&
55
- react_1.default.createElement(DeleteModal_1.default, { entityName: showDeleteModal.propertyName, onClose: handleCloseDeleteModal, onDelete: handleDeleteProperty, refresh: refreshProperties })));
55
+ react_1.default.createElement(DeleteModal_1.default, { entityName: showDeleteModal.propertyName, onClose: handleCloseDeleteModal, onDelete: handleDeleteProperty })));
56
56
  };
57
57
  exports.PropertyTable = PropertyTable;
58
58
  //# sourceMappingURL=PropertyTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyTable.js","sourceRoot":"","sources":["../../../../src/components/Properties/PropertyTable.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,wDAA6C;AAC7C,+CAA8D;AAG9D,kFAA0D;AAC1D,iEAA8D;AAC9D,gCAA8B;AAiBvB,MAAM,aAAa,GAAG,CAA8B,EACzD,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,cAAc,GACQ,EAAE,EAAE;IAE1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAgB,SAAS,CAAC,CAAC;IAEjF,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAClD,MAAM,cAAc,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1C,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EAAC,CAAC,QAAW,EAAE,EAAE;QACxD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CACnC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAElF,OAAO,CACL,uCAAK,SAAS,EAAC,8BAA8B;QAC3C,8BAAC,2CAAoB,IACnB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,UAAU,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,GACpB;QACF,8BAAC,qBAAK,IACJ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAC3B,OAAO,EAAC,iBAAiB,EACzB,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,MAAM,YAAY,aAAa,EAClD,UAAU,QACV,SAAS,EAAE,SAAS,GACpB;QACD,eAAe;YACd,8BAAC,qBAAW,IACV,UAAU,EAAE,eAAe,CAAC,YAAY,EACxC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,iBAAiB,GAC1B,CACA,CACP,CAAC;AACJ,CAAC,CAAC;AApDW,QAAA,aAAa,iBAoDxB","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 { Table } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport type { Column } from \"react-table\";\nimport type { CreateTypeFromInterface } from \"../../common/utils\";\nimport DeleteModal from \"../SharedComponents/DeleteModal\";\nimport { PropertyTableToolbar } from \"./PropertyTableToolbar\";\nimport \"./PropertyTable.scss\";\n\nexport interface PropertyTableItem {\n propertyName: string;\n id: string;\n}\n\nexport interface PropertyTableProps<T extends PropertyTableItem> {\n propertyType: string;\n columnsFactory: (handleShowDeleteModal: (value: T) => void) => Array<Column<T>>;\n data: T[];\n isLoading: boolean;\n onClickAdd?: () => void;\n refreshProperties: () => Promise<void>;\n deleteProperty: (propertyId: string) => Promise<void>;\n}\n\nexport const PropertyTable = <T extends PropertyTableItem>({\n propertyType,\n columnsFactory,\n data,\n isLoading,\n onClickAdd,\n refreshProperties,\n deleteProperty,\n}: PropertyTableProps<T>) => {\n\n const [showDeleteModal, setShowDeleteModal] = useState<T | undefined>(undefined);\n\n const handleDeleteProperty = useCallback(async () => {\n await deleteProperty(showDeleteModal?.id ?? \"\");\n }, [deleteProperty, showDeleteModal?.id]);\n\n const handleShowDeleteModal = useCallback((property: T) => {\n setShowDeleteModal(property);\n }, []);\n\n const handleCloseDeleteModal = () => {\n setShowDeleteModal(undefined);\n };\n\n const memoizedColumns = useMemo(() =>\n columnsFactory(handleShowDeleteModal), [columnsFactory, handleShowDeleteModal]);\n\n return (\n <div className=\"gmw-property-table-container\">\n <PropertyTableToolbar\n propertyType={propertyType}\n onClickAddProperty={onClickAdd}\n refreshProperties={refreshProperties}\n isLoading={isLoading}\n />\n <Table<CreateTypeFromInterface<T>>\n data={isLoading ? [] : data}\n density='extra-condensed'\n columns={memoizedColumns}\n emptyTableContent={`No ${propertyType} Properties`}\n isSortable\n isLoading={isLoading}\n />\n {showDeleteModal &&\n <DeleteModal\n entityName={showDeleteModal.propertyName}\n onClose={handleCloseDeleteModal}\n onDelete={handleDeleteProperty}\n refresh={refreshProperties}\n />}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"PropertyTable.js","sourceRoot":"","sources":["../../../../src/components/Properties/PropertyTable.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,wDAA6C;AAC7C,+CAA8D;AAG9D,kFAA0D;AAC1D,iEAA8D;AAC9D,gCAA8B;AAiBvB,MAAM,aAAa,GAAG,CAA8B,EACzD,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,cAAc,GACQ,EAAE,EAAE;IAE1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAgB,SAAS,CAAC,CAAC;IAEjF,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAClD,MAAM,cAAc,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1C,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EAAC,CAAC,QAAW,EAAE,EAAE;QACxD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CACnC,cAAc,CAAC,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAElF,OAAO,CACL,uCAAK,SAAS,EAAC,8BAA8B;QAC3C,8BAAC,2CAAoB,IACnB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,UAAU,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,SAAS,GACpB;QACF,8BAAC,qBAAK,IACJ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAC3B,OAAO,EAAC,iBAAiB,EACzB,OAAO,EAAE,eAAe,EACxB,iBAAiB,EAAE,MAAM,YAAY,aAAa,EAClD,UAAU,QACV,SAAS,EAAE,SAAS,GACpB;QACD,eAAe;YACd,8BAAC,qBAAW,IACV,UAAU,EAAE,eAAe,CAAC,YAAY,EACxC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,oBAAoB,GAC9B,CACA,CACP,CAAC;AACJ,CAAC,CAAC;AAnDW,QAAA,aAAa,iBAmDxB","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 { Table } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useMemo, useState } from \"react\";\nimport type { Column } from \"react-table\";\nimport type { CreateTypeFromInterface } from \"../../common/utils\";\nimport DeleteModal from \"../SharedComponents/DeleteModal\";\nimport { PropertyTableToolbar } from \"./PropertyTableToolbar\";\nimport \"./PropertyTable.scss\";\n\nexport interface PropertyTableItem {\n propertyName: string;\n id: string;\n}\n\nexport interface PropertyTableProps<T extends PropertyTableItem> {\n propertyType: string;\n columnsFactory: (handleShowDeleteModal: (value: T) => void) => Array<Column<T>>;\n data: T[];\n isLoading: boolean;\n onClickAdd?: () => void;\n refreshProperties: () => Promise<void>;\n deleteProperty: (propertyId: string) => Promise<void>;\n}\n\nexport const PropertyTable = <T extends PropertyTableItem>({\n propertyType,\n columnsFactory,\n data,\n isLoading,\n onClickAdd,\n refreshProperties,\n deleteProperty,\n}: PropertyTableProps<T>) => {\n\n const [showDeleteModal, setShowDeleteModal] = useState<T | undefined>(undefined);\n\n const handleDeleteProperty = useCallback(async () => {\n await deleteProperty(showDeleteModal?.id ?? \"\");\n }, [deleteProperty, showDeleteModal?.id]);\n\n const handleShowDeleteModal = useCallback((property: T) => {\n setShowDeleteModal(property);\n }, []);\n\n const handleCloseDeleteModal = () => {\n setShowDeleteModal(undefined);\n };\n\n const memoizedColumns = useMemo(() =>\n columnsFactory(handleShowDeleteModal), [columnsFactory, handleShowDeleteModal]);\n\n return (\n <div className=\"gmw-property-table-container\">\n <PropertyTableToolbar\n propertyType={propertyType}\n onClickAddProperty={onClickAdd}\n refreshProperties={refreshProperties}\n isLoading={isLoading}\n />\n <Table<CreateTypeFromInterface<T>>\n data={isLoading ? [] : data}\n density='extra-condensed'\n columns={memoizedColumns}\n emptyTableContent={`No ${propertyType} Properties`}\n isSortable\n isLoading={isLoading}\n />\n {showDeleteModal &&\n <DeleteModal\n entityName={showDeleteModal.propertyName}\n onClose={handleCloseDeleteModal}\n onDelete={handleDeleteProperty}\n />}\n </div>\n );\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { IMappingsClient } from "@itwin/insights-client";
2
+ import type { GetAccessTokenFn } from "../../context/GroupingApiConfigContext";
3
+ export declare const useCalculatedPropertiesQuery: (iModelId: string, mappingId: string, groupId: string, getAccessToken: GetAccessTokenFn, mappingsClient: IMappingsClient) => import("@tanstack/react-query").UseQueryResult<import("@itwin/insights-client").CalculatedProperty[], unknown>;
4
+ //# sourceMappingURL=useCalculatedPropertiesQuery.d.ts.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useCalculatedPropertiesQuery = void 0;
4
+ const react_query_1 = require("@tanstack/react-query");
5
+ const useCalculatedPropertiesQuery = (iModelId, mappingId, groupId, getAccessToken, mappingsClient) => {
6
+ return (0, react_query_1.useQuery)({
7
+ queryKey: ["calculatedProperties", iModelId, mappingId, groupId],
8
+ queryFn: async () => mappingsClient.getCalculatedProperties(await getAccessToken(), iModelId, mappingId, groupId),
9
+ });
10
+ };
11
+ exports.useCalculatedPropertiesQuery = useCalculatedPropertiesQuery;
12
+ //# sourceMappingURL=useCalculatedPropertiesQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCalculatedPropertiesQuery.js","sourceRoot":"","sources":["../../../../../src/components/Properties/hooks/useCalculatedPropertiesQuery.ts"],"names":[],"mappings":";;;AAKA,uDAAiD;AAG1C,MAAM,4BAA4B,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,OAAe,EAAE,cAAgC,EAAE,cAA+B,EAAE,EAAE;IACtK,OAAO,IAAA,sBAAQ,EAAC;QACd,QAAQ,EAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QAChE,OAAO,EAAG,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,uBAAuB,CAAC,MAAM,cAAc,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;KACnH,CAAC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,4BAA4B,gCAKvC","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 useCalculatedPropertiesQuery = (iModelId: string, mappingId: string, groupId: string, getAccessToken: GetAccessTokenFn, mappingsClient: IMappingsClient) => {\n return useQuery({\n queryKey: [\"calculatedProperties\", iModelId, mappingId, groupId],\n queryFn: async () => mappingsClient.getCalculatedProperties(await getAccessToken(), iModelId, mappingId, groupId),\n });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { IMappingsClient } from "@itwin/insights-client";
2
+ import type { GetAccessTokenFn } from "../../context/GroupingApiConfigContext";
3
+ export declare const useCustomCalculationsQuery: (iModelId: string, mappingId: string, groupId: string, getAccessToken: GetAccessTokenFn, mappingsClient: IMappingsClient) => import("@tanstack/react-query").UseQueryResult<import("@itwin/insights-client").CustomCalculation[], unknown>;
4
+ //# sourceMappingURL=useCustomCalculationsQuery.d.ts.map