@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":"GroupPropertyAction.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyAction.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAAwD;AACxD,oEAAiE;AAEjE,wDAa8B;AAC9B,+CAAyE;AACzE,qFAA6D;AAC7D,sEAAwE;AACxE,iDAAoF;AACpF,6EAAsE;AACtE,qFAAqF;AACrF,0EAAuE;AACvE,4DAAgE;AAMhE,oEAMoC;AAEpC,wCAQuB;AACvB,gDAK2B;AAC3B,sFAA8D;AAC9D,8DAAgC;AAChC,sCAAoC;AAEpC,6DAK8B;AAC9B,6DAA8D;AAC9D,2CAAwC;AAU3B,QAAA,6BAA6B,GAAiC;IACzE,EAAE,KAAK,EAAE,8BAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3C,EAAE,KAAK,EAAE,8BAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;IACnD,EAAE,KAAK,EAAE,8BAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;IAC7C,EAAE,KAAK,EAAE,8BAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3C,EAAE,KAAK,EAAE,8BAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;IACnD,EAAE,KAAK,EAAE,8BAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3C,EAAE,KAAK,EAAE,8BAAY,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC/C,EAAE,KAAK,EAAE,8BAAY,CAAC,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE;CAC7D,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAC,EAClC,SAAS,EACT,KAAK,EACL,aAAa,EACb,aAAa,EACb,aAAa,GACY,EAAE,EAAE;IAC7B,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACrF,MAAM,aAAa,GAAG,IAAA,uCAAgB,GAAE,CAAC;IACzC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAC;IAC7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAW,0BAAQ,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAe,8BAAY,CAAC,SAAS,CAAC,CAAC;IACvF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,IAAA,gBAAQ,EAAqB,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,IAAA,gBAAQ,EAAqB,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACvF,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,GAAG,IAAA,sBAAY,GAAE,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACzD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,IAAA,gBAAQ,GAAgC,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAA,iBAAU,EACxB,IAAA,gBAAS,EAAC,oBAAa,CAAC,EACxB,IAAA,gBAAS,EAAC,qBAAc,EAAE;QACxB,gBAAgB,EAAE,sCAA2B;KAC9C,CAAC,CACH,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAEnE,MAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,CAAC,KAAqB,EAAE,EAAE;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,CAAC,KAAmB,EAAE,EAAE;QACxD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAE/B,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;YACnC,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBAExE,OAAO,IAAA,oBAAS,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;SACJ;QAED,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAChC,GAAG,EAAE,CACH,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAC5D,EACH,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CACxC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC7B,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,WAAW,CAAC,0BAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;YACpC,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YAE9B,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAe,EAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAEpE,MAAM,UAAU,GAAG,MAAM,IAAA,gDAA2B,EAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAE/E,oCAAoC;YACpC,MAAM,cAAc,GAClB,UAAU,EAAE,MAAM,CAAC,MAAM,CACvB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,yCAAmB,CAAC,SAAS;gBACxD,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,yCAAmB,CAAC,MAAM,CACxD,IAAI,EAAE,CAAC;YAEV,MAAM,kBAAkB,GAAG,IAAA,8CAAyB,EAAC,cAAc,CAAC,CAAC;YAErE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;YAE1C,IAAI,aAAa,EAAE;gBACjB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;gBAC3C,IAAI,QAAmC,CAAC;gBACxC,IAAI;oBACF,QAAQ,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAC7C,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,CAAC,EAAE,EACR,aAAa,CAAC,EAAE,CACjB,CAAC;oBAEF,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACvC,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAC1C,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC/B,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACvC,MAAM,UAAU,GAAG,IAAA,mCAAc,EAAC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;oBAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC3B,0BAA0B,CAAC,IAAI,CAAC,CAAC;qBAClC;oBAED,qBAAqB,CAAC,UAAU,CAAC,CAAC;iBACnC;gBAAC,OAAO,KAAU,EAAE;oBACnB,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBAC3B;aACF;YAED,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,KAAK,kBAAkB,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjG,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YACzB,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO;SACR;QACD,IAAI,eAAe,KAAK,YAAY,IAAI,eAAe,KAAK,EAAE,EAAE;YAC9D,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,MAAM,MAAM,EAAE,CAAC;SAChB;IACH,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI;YACF,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,MAAM,gBAAgB,GAAwB;gBAC5C,YAAY;gBACZ,QAAQ;gBACR,YAAY;gBACZ,YAAY,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0CAAqB,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aAC7E,CAAC;YACF,aAAa;gBACX,CAAC,CAAC,MAAM,aAAa,CAAC,mBAAmB,CACvC,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,CAAC,EAAE,EACR,aAAa,CAAC,EAAE,EAChB,gBAAgB,CACjB;gBACD,CAAC,CAAC,MAAM,aAAa,CAAC,mBAAmB,CACvC,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,CAAC,EAAE,EACR,gBAAgB,CACjB,CAAC;YACJ,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE,CAAC;SACT;QAAC,OAAO,KAAU,EAAE;YACnB,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B;gBAAS;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACnC,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACnC,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzB,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,WAAW,CAAC,KAAK,CAAC,CAAC;YACnB,WAAW,EAAE,CAAC;SACf;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5C,OAAO,CACL,8BAAC,iBAAU,IACT,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,oBAAa,EACjC,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,aAAa;QAExB,uCAAK,SAAS,EAAC,qCAAqC;YAClD,8BAAC,wBAAQ,IAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAC,sBAAsB,EAAC,MAAM,EAAC,kBAAkB;gBACvF,8BAAC,oBAAI,IAAC,OAAO,EAAC,OAAO,EAAC,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,kBAAkB,6CAEtD;gBACP,8BAAC,4BAAY,IACX,EAAE,EAAC,cAAc,EACjB,KAAK,EAAC,eAAe,EACrB,KAAK,EAAE,YAAY,EACnB,QAAQ,QACR,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBACpC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;oBAC3C,CAAC,EACD,OAAO,EAAE,SAAS,CAAC,OAAO,CACxB,cAAc,EACd,YAAY,EACZ,gCAAiB,CAClB,EACD,MAAM,EACJ,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,EAAE,gCAAiB,CAAC;wBAChE,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,SAAS,EAEf,MAAM,EAAE,GAAG,EAAE;wBACX,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;oBAC3C,CAAC,GACD;gBACF,8BAAC,6BAAa,IACZ,KAAK,EAAE,WAAW,EAClB,EAAE,EAAC,UAAU,EACb,OAAO,EAAE;wBACP,EAAE,KAAK,EAAE,0BAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;wBAC7C,EAAE,KAAK,EAAE,0BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;wBAC3C,EAAE,KAAK,EAAE,0BAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;qBAC5C,EACD,QAAQ,QACR,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;wBACrC,WAAW,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC,EACD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,EAChE,MAAM,EACJ,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC;wBACrD,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,SAAS,EAEf,MAAM,EAAE,GAAG,EAAE;wBACX,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;oBACvC,CAAC,EACD,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EACjB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GACjB;gBACF,8BAAC,6BAAa,IACZ,KAAK,EAAC,eAAe,EACrB,OAAO,EAAE,qCAA6B,EACtC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EACjB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GACjB,CACO;YACV,uBAAuB;gBACtB,8BAAC,qBAAK,IAAC,IAAI,EAAC,SAAS,oLAEb;YAEV,8BAAC,wBAAQ,IAAC,SAAS,EAAC,6BAA6B,EAAC,MAAM,EAAC,mBAAmB;gBAC1E,uCAAK,SAAS,EAAC,0BAA0B;oBACvC,8BAAC,sBAAM,IACL,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACvC,QAAQ,EAAE,SAAS,wBAGZ,CACL;gBACN,uCAAK,SAAS,EAAC,qBAAqB,IACjC,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,uCAAK,SAAS,EAAC,qBAAqB;wBAClC,8BAAC,oBAAI,kCAA+B;wBACpC,8BAAC,oBAAI,8DAAmE,CACpE,CAAC,CAAC;oBACR,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACnC,8BAAC,+BAAc,IACb,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,KAAK,EAAE,GAAG,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,GAAG,EAC5D,YAAY,EAAE,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAC7C,OAAO,EAAE,IAAA,sCAA8B,EAAC,QAAQ,CAAC,aAAa,CAAC,EAC/D,WAAW,EAAE,IAAI,GACjB,CACH,CAAC,CACA,CACG,CACP;QACN,8BAAC,qBAAW,IACV,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EACd,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,0BAAQ,CAAC,SAAS,GAErF;QACF,8BAAC,qBAAK,IACJ,KAAK,EAAC,sBAAsB,EAC5B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE;gBACZ,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,WAAW,EAAE,CAAC;YAChB,CAAC,EACD,oBAAoB,EAAE,KAAK;YAE3B,8BAAC,qBAAK,IACJ,WAAW,EAAE,KAAK,EAClB,SAAS,EAAC,kCAAkC,EAC5C,WAAW,EAAC,QAAQ,EACpB,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,GAAG,EAAE;oBACX,sBAAsB;oBACtB,MAAM,UAAU,GAAG,IAAA,6BAAoB,EACrC,8BAAC,oBAAI,IAAC,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,OAAO;wBACjD,8BAAC,0CAAoB,OAAG,CACnB,CACR,CAAC;oBACF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAC7C,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC;oBAChC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC;oBAC9B,OAAO,MAAM,CAAC;gBAChB,CAAC,EACD,SAAS,EAAC,YAAY;gBACtB,8BAAC,uBAAO,IAAC,SAAS,EAAC,0BAA0B,EAAC,SAAS,EAAE,CAAC;oBACxD,uCAAK,SAAS,EAAC,iCAAiC;wBAC9C,8BAAC,qBAAK,IAAC,EAAE,EAAC,MAAM,2BAA6B;wBAC7C,8BAAC,4BAAY,IACX,YAAY,EAAC,QAAQ,EACrB,gBAAgB,EAAC,QAAQ,EACzB,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAC,OAAO,EACZ,WAAW,EAAC,YAAY,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gCAClB,MAAM,EACJ,MAAM,EAAE,EAAE,KAAK,EAAE,GAClB,GAAG,KAAK,CAAC;gCACV,cAAc,CAAC,KAAK,CAAC,CAAC;4BACxB,CAAC,EACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gCACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;oCACzB,WAAW,EAAE,CAAC;iCACf;4BACH,CAAC,EACD,OAAO,EACL,QAAQ,CAAC,CAAC,CAAC,CACT,8BAAC,0BAAU,IAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAC,YAAY,EAAC,KAAK,EAAC,cAAc;gCAC3E,8BAAC,8BAAQ,OAAG,CACD,CACd,CAAC,CAAC,CAAC,CACF,8BAAC,0BAAU,IAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAC,YAAY,EAAC,KAAK,EAAC,QAAQ;gCACrE,8BAAC,+BAAS,OAAG,CACF,CACd,GAEH,CACE;oBACL,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;wBAChC,uCAAK,SAAS,EAAC,qBAAqB;4BAClC,8BAAC,oBAAI,oCAAiC,CAClC,CAAC,CAAC;wBACR,uCAAK,SAAS,EAAC,qBAAqB,IAEhC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACnC,8BAAC,+BAAc,IACb,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,KAAK,EAAE,GAAG,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,GAAG,EAC5D,YAAY,EAAE,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAC7C,OAAO,EAAE,IAAA,sCAA8B,EAAC,QAAQ,CAAC,aAAa,CAAC,EAC/D,WAAW,EAAE,IAAI,EACjB,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,EAChE,OAAO,EAAE,GAAG,EAAE,CACZ,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,CAC3B,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;gCACpC,CAAC,CAAC,EAAE,CAAC,MAAM,CACT,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAC9B;gCACD,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CACtB,GAEH,CACH,CAAC,CACA,CACA;gBACV,8BAAC,uBAAO,IAAC,SAAS,EAAC,yBAAyB,EAAC,SAAS,EAAE,CAAC;oBACvD,8BAAC,qBAAK,IAAC,EAAE,EAAC,MAAM,0BAA4B;oBAC3C,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;wBAChC,uCAAK,SAAS,EAAC,qBAAqB;4BAClC,8BAAC,oBAAI,kCAA+B;4BACpC,8BAAC,oBAAI,6DAA0D,CAC3D,CAAC,CAAC;wBACR,uCAAK,SAAS,EAAC,qBAAqB;4BAClC,8BAAC,0BAAe,IACd,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAC3C,QAAQ,EAAE,sCAA2B,IAEpC,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnC,8BAAC,gCAAsB,IACrB,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,EAAE,EAAE,QAAQ,CAAC,GAAG,EAChB,KAAK,EAAE,GAAG,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,GAAG,EAC5D,YAAY,EAAE,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAC7C,OAAO,EAAE,QAAQ,CAAC,aAAa,EAC/B,WAAW,EACT;oCACE,8BAAC,0BAAU,IACT,SAAS,EAAC,YAAY,EACtB,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE;4CACZ,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAC9B,CAAC,CAAC;wCACL,CAAC;wCAED,8BAAC,+BAAS,OAAG,CACF,CACT,GAER,CAAC,CACW,CACd,CACA,CACJ;YACR,8BAAC,8BAAc;gBACb,8BAAC,sBAAM,IACL,OAAO,EAAE,GAAG,EAAE;wBACZ,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpB,WAAW,EAAE,CAAC;oBAChB,CAAC,EACD,SAAS,EAAC,iBAAiB,YAGpB,CACM,CACX;QACR,8BAAC,qBAAS,IACR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,aAAa,GAC5B;QACF,8BAAC,kBAAW,IAAC,MAAM,EAAE,IAAI,IACtB,kBAAkB,CAAC,CAAC;YACnB,8BAAC,+BAAc,IACb,KAAK,EAAE,GAAG,kBAAkB,CAAC,YAAY,KAAK,kBAAkB,CAAC,YAAY,GAAG,EAChF,YAAY,EAAE,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,EACvD,OAAO,EAAE,kBAAkB,CAAC,aAAa,EACzC,WAAW,EACT,8BAAC,0BAAU,IACT,SAAS,EAAC,YAAY;oBACtB,8BAAC,+BAAS,OAAG,CACF,EACf,UAAU,EACR,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,OAAO;oBAC1C,8BAAC,2CAAqB,OAAG,CACpB,GAET,CAAC,CAAC,CAAC,IAAI,CACC,CACH,CACd,CAAC;AACJ,CAAC,CAAC;AAldW,QAAA,mBAAmB,uBAkd9B","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 { PropertyValueFormat } from \"@itwin/presentation-common\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport {\n Alert,\n Button,\n Fieldset,\n Icon,\n IconButton,\n Label,\n LabeledInput,\n LabeledSelect,\n Modal,\n ModalButtonBar,\n Surface,\n Text,\n} from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../hooks/useValidator\";\nimport { getLocalizedStringPresentation, handleError } from \"../../../common/utils\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { HorizontalTile } from \"../../SharedComponents/HorizontalTile\";\nimport { DataType, QuantityType } from \"@itwin/insights-client\";\nimport type {\n Group,\n GroupProperty,\n GroupPropertyCreate,\n} from \"@itwin/insights-client\";\nimport {\n SvgClose,\n SvgDragHandleVertical,\n SvgMoreVerticalSmall,\n SvgRemove,\n SvgSearch,\n} from \"@itwin/itwinui-icons-react\";\nimport type { DragEndEvent, DragStartEvent } from \"@dnd-kit/core\";\nimport {\n closestCenter,\n DndContext,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\";\nimport {\n arrayMove,\n SortableContext,\n sortableKeyboardCoordinates,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport SortableHorizontalTile from \"./SortableHorizontalTile\";\nimport Split from \"react-split\";\nimport \"./GroupPropertyAction.scss\";\nimport type { PropertyMetaData } from \"./GroupPropertyUtils\";\nimport {\n convertPresentationFields,\n convertToECProperties,\n fetchPresentationDescriptor,\n findProperties,\n} from \"./GroupPropertyUtils\";\nimport { manufactureKeys } from \"../../../common/viewerUtils\";\nimport { SaveModal } from \"./SaveModal\";\n\nexport interface GroupPropertyActionProps {\n mappingId: string;\n group: Group;\n groupProperty?: GroupProperty;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n}\n\nexport const quantityTypesSelectionOptions: SelectOption<QuantityType>[] = [\n { value: QuantityType.Area, label: \"Area\" },\n { value: QuantityType.Distance, label: \"Distance\" },\n { value: QuantityType.Force, label: \"Force\" },\n { value: QuantityType.Mass, label: \"Mass\" },\n { value: QuantityType.Monetary, label: \"Monetary\" },\n { value: QuantityType.Time, label: \"Time\" },\n { value: QuantityType.Volume, label: \"Volume\" },\n { value: QuantityType.Undefined, label: \"No Quantity Type\" },\n];\n\nexport const GroupPropertyAction = ({\n mappingId,\n group,\n groupProperty,\n onSaveSuccess,\n onClickCancel,\n}: GroupPropertyActionProps) => {\n const { getAccessToken, iModelId, iModelConnection } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [propertyName, setPropertyName] = useState<string>(\"\");\n const [oldPropertyName, setOldPropertyName] = useState<string>(\"\");\n const [dataType, setDataType] = useState<DataType>(DataType.Undefined);\n const [quantityType, setQuantityType] = useState<QuantityType>(QuantityType.Undefined);\n const [selectedProperties, setSelectedProperties] = useState<PropertyMetaData[]>([]);\n const [propertiesMetaData, setPropertiesMetaData] = useState<PropertyMetaData[]>([]);\n const [propertiesNotFoundAlert, setPropertiesNotFoundAlert] = useState<boolean>(false);\n const [validator, showValidationMessage] = useValidator();\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const [searchInput, setSearchInput] = useState<string>(\"\");\n const [activeSearchInput, setActiveSearchInput] = useState<string>(\"\");\n const [searched, setSearched] = useState<boolean>(false);\n const [activeDragProperty, setActiveDragProperty] = useState<PropertyMetaData | undefined>();\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n const [showModal, setShowModal] = useState<boolean>(false);\n const [showSaveModal, setShowSaveModal] = useState<boolean>(false);\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]);\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 const reset = useCallback(() => {\n setPropertyName(\"\");\n setDataType(DataType.Undefined);\n setSelectedProperties([]);\n }, []);\n\n useEffect(() => {\n const generateProperties = async () => {\n setIsLoading(true);\n\n if (!iModelConnection) return;\n\n const result = await manufactureKeys(group.query, iModelConnection);\n\n const descriptor = await fetchPresentationDescriptor(iModelConnection, result);\n\n // Only allow primitives and structs\n const propertyFields =\n descriptor?.fields.filter(\n (field) =>\n field.type.valueFormat === PropertyValueFormat.Primitive ||\n field.type.valueFormat === PropertyValueFormat.Struct\n ) ?? [];\n\n const propertiesMetaData = convertPresentationFields(propertyFields);\n\n setPropertiesMetaData(propertiesMetaData);\n\n if (groupProperty) {\n const accessToken = await getAccessToken();\n let response: GroupProperty | undefined;\n try {\n response = await mappingClient.getGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n group.id,\n groupProperty.id\n );\n\n setPropertyName(response.propertyName);\n setOldPropertyName(response.propertyName);\n setDataType(response.dataType);\n setQuantityType(response.quantityType);\n const properties = findProperties(response.ecProperties, propertiesMetaData);\n if (properties.length === 0) {\n setPropertiesNotFoundAlert(true);\n }\n\n setSelectedProperties(properties);\n } catch (error: any) {\n handleError(error.status);\n }\n }\n\n setIsLoading(false);\n };\n void generateProperties();\n }, [getAccessToken, mappingClient, iModelConnection, iModelId, groupProperty, mappingId, group]);\n\n const handleSaveClick = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n if (oldPropertyName !== propertyName && oldPropertyName !== \"\") {\n setShowSaveModal(true);\n } else {\n await onSave();\n }\n };\n\n const handleCloseSaveModal = () => {\n setShowSaveModal(false);\n };\n\n const onSave = async () => {\n try {\n setIsLoading(true);\n const accessToken = await getAccessToken();\n const newGroupProperty: GroupPropertyCreate = {\n propertyName,\n dataType,\n quantityType,\n ecProperties: selectedProperties.map((p) => convertToECProperties(p)).flat(),\n };\n groupProperty\n ? await mappingClient.updateGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n group.id,\n groupProperty.id,\n newGroupProperty\n )\n : await mappingClient.createGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n group.id,\n newGroupProperty\n );\n onSaveSuccess();\n reset();\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n };\n\n const startSearch = useCallback(() => {\n if (!searchInput) return;\n setActiveSearchInput(searchInput);\n setSearched(true);\n }, [searchInput]);\n\n const clearSearch = useCallback(() => {\n setSearchInput(\"\");\n setActiveSearchInput(\"\");\n setSearched(false);\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 <div className='gmw-group-property-action-container'>\n <Fieldset disabled={isLoading} className='gmw-property-options' legend='Property Details'>\n <Text variant='small' as='small' className='gmw-field-legend'>\n Asterisk * indicates mandatory fields.\n </Text>\n <LabeledInput\n id='propertyName'\n label='Property Name'\n value={propertyName}\n required\n onChange={(event) => {\n setPropertyName(event.target.value);\n validator.showMessageFor(\"propertyName\");\n }}\n message={validator.message(\n \"propertyName\",\n propertyName,\n NAME_REQUIREMENTS\n )}\n status={\n validator.message(\"propertyName\", propertyName, NAME_REQUIREMENTS)\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"propertyName\");\n }}\n />\n <LabeledSelect<DataType>\n label={\"Data Type\"}\n id='dataType'\n options={[\n { value: DataType.Boolean, label: \"Boolean\" },\n { value: DataType.Number, label: \"Number\" },\n { value: DataType.String, label: \"String\" },\n ]}\n required\n value={dataType}\n onChange={(value) => {\n validator.showMessageFor(\"dataType\");\n setDataType(value);\n }}\n message={validator.message(\"dataType\", propertyName, \"required\")}\n status={\n validator.message(\"dataType\", propertyName, \"required\")\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"dataType\");\n }}\n onShow={() => { }}\n onHide={() => { }}\n />\n <LabeledSelect<QuantityType>\n label='Quantity Type'\n options={quantityTypesSelectionOptions}\n value={quantityType}\n onChange={setQuantityType}\n onShow={() => { }}\n onHide={() => { }}\n />\n </Fieldset>\n {propertiesNotFoundAlert &&\n <Alert type=\"warning\">\n Warning: Could not match saved properties from the current generated list. It does not confirm or deny validity. Overwriting will occur if a new selection is made and saved.\n </Alert>\n }\n <Fieldset className='gmw-property-view-container' legend=\"Mapped Properties\">\n <div className=\"gmw-property-view-button\">\n <Button\n onClick={async () => setShowModal(true)}\n disabled={isLoading}\n >\n Select Properties\n </Button>\n </div>\n <div className=\"gmw-properties-list\">\n {selectedProperties.length === 0 && !isLoading ?\n <div className=\"gmw-empty-selection\">\n <Text>No properties selected.</Text>\n <Text>Press the &quot;Select Properties&quot; button for options.</Text>\n </div> :\n selectedProperties.map((property) => (\n <HorizontalTile\n key={property.key}\n title={`${property.displayLabel} (${property.propertyType})`}\n titleTooltip={`${property.actualECClassName}`}\n subText={getLocalizedStringPresentation(property.categoryLabel)}\n actionGroup={null}\n />\n ))}\n </div>\n </Fieldset>\n </div>\n <ActionPanel\n onSave={handleSaveClick}\n onCancel={onClickCancel}\n isLoading={isLoading}\n isSavingDisabled={\n selectedProperties.length === 0 || !propertyName || dataType === DataType.Undefined\n }\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 <HorizontalTile\n key={property.key}\n title={`${property.displayLabel} (${property.propertyType})`}\n titleTooltip={`${property.actualECClassName}`}\n subText={getLocalizedStringPresentation(property.categoryLabel)}\n actionGroup={null}\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 title={`${property.displayLabel} (${property.propertyType})`}\n titleTooltip={`${property.actualECClassName}`}\n subText={property.categoryLabel}\n actionGroup={\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 <SaveModal\n onSave={onSave}\n onClose={handleCloseSaveModal}\n showSaveModal={showSaveModal}\n />\n <DragOverlay zIndex={9999}>\n {activeDragProperty ?\n <HorizontalTile\n title={`${activeDragProperty.displayLabel} (${activeDragProperty.propertyType})`}\n titleTooltip={`${activeDragProperty.actualECClassName}`}\n subText={activeDragProperty.categoryLabel}\n actionGroup={\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"]}
1
+ {"version":3,"file":"GroupPropertyAction.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyAction.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 { PropertyValueFormat } from \"@itwin/presentation-common\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport {\n Alert,\n Button,\n Fieldset,\n LabeledInput,\n LabeledSelect,\n Text,\n} from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport ActionPanel from \"../../SharedComponents/ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../hooks/useValidator\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { DataType, QuantityType } from \"@itwin/insights-client\";\nimport type {\n Group,\n GroupProperty,\n GroupPropertyCreate,\n} from \"@itwin/insights-client\";\nimport \"./GroupPropertyAction.scss\";\nimport type { PropertyMetaData } from \"./GroupPropertyUtils\";\nimport {\n convertPresentationFields,\n convertToECProperties,\n fetchPresentationDescriptor,\n findProperties,\n} from \"./GroupPropertyUtils\";\nimport { manufactureKeys } from \"../../../common/viewerUtils\";\nimport { SaveModal } from \"./SaveModal\";\nimport { GroupsPropertiesSelectionModal } from \"./GroupsPropertiesSelectionModal\";\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { GroupPropertyListItem } from \"./GroupPropertyListItem\";\n\nexport interface GroupPropertyActionProps {\n mappingId: string;\n group: Group;\n groupProperty?: GroupProperty;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n}\n\nexport const quantityTypesSelectionOptions: SelectOption<QuantityType>[] = [\n { value: QuantityType.Area, label: \"Area\" },\n { value: QuantityType.Distance, label: \"Distance\" },\n { value: QuantityType.Force, label: \"Force\" },\n { value: QuantityType.Mass, label: \"Mass\" },\n { value: QuantityType.Monetary, label: \"Monetary\" },\n { value: QuantityType.Time, label: \"Time\" },\n { value: QuantityType.Volume, label: \"Volume\" },\n { value: QuantityType.Undefined, label: \"No Quantity Type\" },\n];\n\nexport const GroupPropertyAction = ({\n mappingId,\n group,\n groupProperty,\n onSaveSuccess,\n onClickCancel,\n}: GroupPropertyActionProps) => {\n const { getAccessToken, iModelId, iModelConnection } = useGroupingMappingApiConfig();\n const mappingClient = useMappingClient();\n const [propertyName, setPropertyName] = useState<string>(\"\");\n const [oldPropertyName, setOldPropertyName] = useState<string>(\"\");\n const [dataType, setDataType] = useState<DataType>(DataType.Undefined);\n const [quantityType, setQuantityType] = useState<QuantityType>(QuantityType.Undefined);\n const [selectedProperties, setSelectedProperties] = useState<PropertyMetaData[]>([]);\n const [propertiesMetaData, setPropertiesMetaData] = useState<PropertyMetaData[]>([]);\n const [propertiesNotFoundAlert, setPropertiesNotFoundAlert] = useState<boolean>(false);\n const [validator, showValidationMessage] = useValidator();\n const [showPropertiesSelectionModal, setShowPropertiesSelectionModal] = useState<boolean>(false);\n const [showSaveConfirmationModal, setShowSaveConfirmationModal] = useState<boolean>(false);\n const queryClient = useQueryClient();\n\n const reset = useCallback(() => {\n setPropertyName(\"\");\n setDataType(DataType.Undefined);\n setSelectedProperties([]);\n }, []);\n\n const fetchPropertiesMetadata = useCallback(async () => {\n if (!iModelConnection) return;\n\n const result = await manufactureKeys(group.query, iModelConnection);\n const descriptor = await fetchPresentationDescriptor(iModelConnection, result);\n\n // Only allow primitives and structs\n const propertyFields = descriptor?.fields.filter(\n (field) =>\n field.type.valueFormat === PropertyValueFormat.Primitive ||\n field.type.valueFormat === PropertyValueFormat.Struct\n ) ?? [];\n\n const propertiesMetaData = convertPresentationFields(propertyFields);\n\n let groupPropertyDetails = null;\n if (groupProperty) {\n const accessToken = await getAccessToken();\n groupPropertyDetails = await mappingClient.getGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n group.id,\n groupProperty.id\n );\n }\n\n return { propertiesMetaData, groupPropertyDetails };\n }, [getAccessToken, group.id, group.query, groupProperty, iModelConnection, iModelId, mappingClient, mappingId]);\n\n const { data, isFetching: isLoadingProperties, isSuccess: isLoadingPropertiesSuccessful } = useQuery([\"groupProperties\", iModelId, mappingId, group.id, groupProperty?.id, \"metadata\"], fetchPropertiesMetadata);\n\n useEffect(() => {\n if (isLoadingPropertiesSuccessful && data?.propertiesMetaData) {\n setPropertiesMetaData(data.propertiesMetaData);\n\n if (data.groupPropertyDetails) {\n setPropertyName(data.groupPropertyDetails.propertyName);\n setOldPropertyName(data.groupPropertyDetails.propertyName);\n setDataType(data.groupPropertyDetails.dataType);\n setQuantityType(data.groupPropertyDetails.quantityType);\n\n const properties = findProperties(data.groupPropertyDetails.ecProperties, data.propertiesMetaData);\n if (properties.length === 0) {\n setPropertiesNotFoundAlert(true);\n }\n\n setSelectedProperties(properties);\n }\n }\n }, [data, isLoadingPropertiesSuccessful]);\n\n const { mutate: onSave, isLoading: isSaving } = useMutation({\n mutationFn: async () => {\n const accessToken = await getAccessToken();\n const newGroupProperty: GroupPropertyCreate = {\n propertyName,\n dataType,\n quantityType,\n ecProperties: selectedProperties.map((p) => convertToECProperties(p)).flat(),\n };\n\n return groupProperty\n ? mappingClient.updateGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n group.id,\n groupProperty.id,\n newGroupProperty\n )\n : mappingClient.createGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n group.id,\n newGroupProperty\n );\n },\n onSuccess: async () => {\n onSaveSuccess();\n reset();\n await queryClient.invalidateQueries([\"groupProperties\", iModelId, mappingId, group.id]);\n },\n });\n\n const handleSaveClick = async () => {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n if (oldPropertyName !== propertyName && oldPropertyName !== \"\") {\n setShowSaveConfirmationModal(true);\n } else {\n onSave();\n }\n };\n\n const handleCloseSaveModal = () => {\n setShowSaveConfirmationModal(false);\n };\n\n const isLoading = isLoadingProperties || isSaving;\n\n return (\n <>\n <div className='gmw-group-property-action-container'>\n <Fieldset disabled={isLoading} className='gmw-property-options' legend='Property Details'>\n <Text variant='small' as='small' className='gmw-field-legend'>\n Asterisk * indicates mandatory fields.\n </Text>\n <LabeledInput\n id='propertyName'\n label='Property Name'\n value={propertyName}\n required\n onChange={(event) => {\n setPropertyName(event.target.value);\n validator.showMessageFor(\"propertyName\");\n }}\n message={validator.message(\n \"propertyName\",\n propertyName,\n NAME_REQUIREMENTS\n )}\n status={\n validator.message(\"propertyName\", propertyName, NAME_REQUIREMENTS)\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"propertyName\");\n }}\n />\n <LabeledSelect<DataType>\n label={\"Data Type\"}\n id='dataType'\n options={[\n { value: DataType.Boolean, label: \"Boolean\" },\n { value: DataType.Number, label: \"Number\" },\n { value: DataType.String, label: \"String\" },\n ]}\n required\n value={dataType}\n onChange={(value) => {\n validator.showMessageFor(\"dataType\");\n setDataType(value);\n }}\n message={validator.message(\"dataType\", propertyName, \"required\")}\n status={\n validator.message(\"dataType\", propertyName, \"required\")\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"dataType\");\n }}\n onShow={() => { }}\n onHide={() => { }}\n />\n <LabeledSelect<QuantityType>\n label='Quantity Type'\n options={quantityTypesSelectionOptions}\n value={quantityType}\n onChange={setQuantityType}\n onShow={() => { }}\n onHide={() => { }}\n />\n </Fieldset>\n {propertiesNotFoundAlert &&\n <Alert type=\"warning\">\n Warning: Could not match saved properties from the current generated list. It does not confirm or deny validity. Overwriting will occur if a new selection is made and saved.\n </Alert>\n }\n <Fieldset className='gmw-property-view-container' legend=\"Mapped Properties\">\n <div className=\"gmw-property-view-button\">\n <Button\n onClick={async () => setShowPropertiesSelectionModal(true)}\n disabled={isLoading}\n >\n Select Properties\n </Button>\n </div>\n <div className=\"gmw-properties-list\">\n {selectedProperties.length === 0 && !isLoading ?\n <div className=\"gmw-empty-selection\">\n <Text>No properties selected.</Text>\n <Text>Press the &quot;Select Properties&quot; button for options.</Text>\n </div> :\n selectedProperties.map((property) => (\n <GroupPropertyListItem\n key={property.key}\n content={`${property.displayLabel} (${property.propertyType})`}\n title={`${property.actualECClassName}`}\n description={property.categoryLabel}\n />\n ))}\n </div>\n </Fieldset>\n </div>\n <ActionPanel\n onSave={handleSaveClick}\n onCancel={onClickCancel}\n isLoading={isLoading}\n isSavingDisabled={\n selectedProperties.length === 0 || !propertyName || dataType === DataType.Undefined\n }\n />\n <GroupsPropertiesSelectionModal\n showModal={showPropertiesSelectionModal}\n setShowModal={setShowPropertiesSelectionModal}\n selectedProperties={selectedProperties}\n setSelectedProperties={setSelectedProperties}\n propertiesMetaData={propertiesMetaData}\n />\n <SaveModal\n onSave={onSave}\n onClose={handleCloseSaveModal}\n showSaveModal={showSaveConfirmationModal}\n />\n </>\n );\n};\n"]}
@@ -39,7 +39,7 @@
39
39
  flex-direction: column;
40
40
  flex-grow: 1;
41
41
  gap: var(--iui-size-s);
42
- min-height: 0;
42
+ min-height: calc(var(--iui-size-3x1) * 2);
43
43
  padding: var(--iui-size-s) var(--iui-size-m);
44
44
  min-width: 0;
45
45
  .gmw-property-view-button {
@@ -47,51 +47,6 @@
47
47
  }
48
48
  }
49
49
 
50
- .gmw-property-selection-container {
51
- display: flex;
52
- gap: var(--iui-size-xs);
53
- width: 45vw;
54
- min-width: 100%;
55
- height: 75vh;
56
-
57
- .gmw-gutter {
58
- display: flex;
59
- flex-direction: column;
60
- justify-content: center;
61
- align-items: center;
62
- }
63
-
64
- .gmw-selected-properties {
65
- display: flex;
66
- flex-direction: column;
67
- gap: var(--iui-size-s);
68
- padding: var(--iui-size-s) var(--iui-size-m);
69
- }
70
-
71
- .gmw-available-properties {
72
- display: flex;
73
- flex-direction: column;
74
- gap: var(--iui-size-s);
75
- padding: var(--iui-size-s) var(--iui-size-m);
76
- .gmw-available-properties-header {
77
- display: flex;
78
- justify-content: space-between;
79
- flex-wrap: wrap;
80
- gap: var(--iui-size-xs);
81
- .gmw-available-prop-search {
82
- flex: 1 1 80px;
83
- min-width: 80px;
84
- max-width: 300px;
85
- }
86
- }
87
- }
88
- }
89
-
90
- .gmw-gutter-drag-icon {
91
- justify-content: center;
92
- cursor: col-resize;
93
- }
94
-
95
50
  .gmw-empty-selection {
96
51
  display: flex;
97
52
  justify-content: center;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import "./GroupPropertyListItem.scss";
3
+ export interface GroupPropertyListItemProps {
4
+ content: string;
5
+ title: string;
6
+ description: string;
7
+ selected?: boolean;
8
+ onClick?: () => void;
9
+ action?: JSX.Element;
10
+ dragHandle?: JSX.Element;
11
+ }
12
+ export declare const GroupPropertyListItem: ({ content, title, description, selected, onClick, action, dragHandle, }: GroupPropertyListItemProps) => JSX.Element;
13
+ //# sourceMappingURL=GroupPropertyListItem.d.ts.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GroupPropertyListItem = void 0;
7
+ /*---------------------------------------------------------------------------------------------
8
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
9
+ * See LICENSE.md in the project root for license terms and full copyright notice.
10
+ *--------------------------------------------------------------------------------------------*/
11
+ const react_1 = __importDefault(require("react"));
12
+ const itwinui_react_1 = require("@itwin/itwinui-react");
13
+ require("./GroupPropertyListItem.scss");
14
+ const GroupPropertyListItem = ({ content, title, description, selected, onClick, action, dragHandle, }) => react_1.default.createElement(itwinui_react_1.ListItem, { active: selected, onClick: onClick, className: "gmw-group-property-list-item", title: title },
15
+ dragHandle,
16
+ react_1.default.createElement(itwinui_react_1.ListItem.Content, null,
17
+ content,
18
+ react_1.default.createElement(itwinui_react_1.ListItem.Description, null, description)),
19
+ action);
20
+ exports.GroupPropertyListItem = GroupPropertyListItem;
21
+ //# sourceMappingURL=GroupPropertyListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupPropertyListItem.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyListItem.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,wDAAgD;AAChD,wCAAsC;AAY/B,MAAM,qBAAqB,GAAG,CAAC,EACpC,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,UAAU,GACiB,EAAE,EAAE,CAC/B,8BAAC,wBAAQ,IACP,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,KAAK;IACX,UAAU;IACX,8BAAC,wBAAQ,CAAC,OAAO;QACd,OAAO;QACR,8BAAC,wBAAQ,CAAC,WAAW,QAClB,WAAW,CACS,CACN;IAClB,MAAM,CACE,CAAC;AAtBD,QAAA,qBAAqB,yBAsBpB","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { ListItem } from \"@itwin/itwinui-react\";\nimport \"./GroupPropertyListItem.scss\";\n\nexport interface GroupPropertyListItemProps {\n content: string;\n title: string;\n description: string;\n selected?: boolean;\n onClick?: () => void;\n action?: JSX.Element;\n dragHandle?: JSX.Element;\n}\n\nexport const GroupPropertyListItem = ({\n content,\n title,\n description,\n selected,\n onClick,\n action,\n dragHandle,\n}: GroupPropertyListItemProps) =>\n <ListItem\n active={selected}\n onClick={onClick}\n className=\"gmw-group-property-list-item\"\n title={title}>\n {dragHandle}\n <ListItem.Content>\n {content}\n <ListItem.Description>\n {description}\n </ListItem.Description>\n </ListItem.Content>\n {action}\n </ListItem>;\n"]}
@@ -0,0 +1,14 @@
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-group-property-list-item {
7
+ display: flex;
8
+ justify-content: space-between;
9
+ border-radius: 5px;
10
+ min-height: calc(var(--iui-size-s) * 5);
11
+ padding: 5.5px var(--iui-size-xs);
12
+ padding-bottom: 2px var(--iui-size-xs);
13
+ padding-top: 2px var(--iui-size-xs);
14
+ }
@@ -35,50 +35,47 @@ const MappingClientContext_1 = require("../../context/MappingClientContext");
35
35
  const PropertyNameCell_1 = require("../PropertyNameCell");
36
36
  const PropertyTable_1 = require("../PropertyTable");
37
37
  const GroupingApiConfigContext_1 = require("../../context/GroupingApiConfigContext");
38
+ const react_query_1 = require("@tanstack/react-query");
38
39
  const GroupPropertyTable = ({ mappingId, groupId, onClickAdd, onClickModify, isLoading, groupProperties, refresh, }) => {
39
40
  const mappingClient = (0, MappingClientContext_1.useMappingClient)();
40
41
  const { getAccessToken, iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
42
+ const queryClient = (0, react_query_1.useQueryClient)();
41
43
  const columnsFactory = (0, react_1.useCallback)((handleShowDeleteModal) => [
42
44
  {
43
- Header: "Table",
44
- columns: [
45
- {
46
- id: "propertyName",
47
- Header: "Property",
48
- accessor: "propertyName",
49
- Cell: (value) => (react_1.default.createElement(PropertyNameCell_1.PropertyNameCell, { property: value.row.original, onClickModify: onClickModify })),
50
- },
51
- {
52
- id: "dropdown",
53
- Header: "",
54
- width: 80,
55
- Cell: (value) => {
56
- return (react_1.default.createElement(itwinui_react_1.DropdownMenu, { menuItems: (close) => [
57
- onClickModify ? [
58
- react_1.default.createElement(itwinui_react_1.MenuItem, { key: 0, onClick: () => {
59
- onClickModify(value.row.original);
60
- close();
61
- }, icon: react_1.default.createElement(itwinui_icons_react_1.SvgEdit, null) }, "Modify"),
62
- ] : [],
63
- react_1.default.createElement(itwinui_react_1.MenuItem, { key: 1, onClick: () => {
64
- handleShowDeleteModal(value.row.original);
65
- close();
66
- }, icon: react_1.default.createElement(itwinui_icons_react_1.SvgDelete, null) }, "Remove"),
67
- ].flatMap((p) => p) },
68
- react_1.default.createElement(itwinui_react_1.IconButton, { styleType: 'borderless', title: 'Property Options' },
69
- react_1.default.createElement(itwinui_icons_react_1.SvgMore, { style: {
70
- width: "16px",
71
- height: "16px",
72
- } }))));
73
- },
74
- },
75
- ],
45
+ id: "propertyName",
46
+ Header: "Property",
47
+ accessor: "propertyName",
48
+ Cell: (value) => (react_1.default.createElement(PropertyNameCell_1.PropertyNameCell, { property: value.row.original, onClickModify: onClickModify })),
49
+ },
50
+ {
51
+ id: "dropdown",
52
+ Header: "",
53
+ width: 80,
54
+ Cell: (value) => {
55
+ return (react_1.default.createElement(itwinui_react_1.DropdownMenu, { menuItems: (close) => [
56
+ onClickModify ? [
57
+ react_1.default.createElement(itwinui_react_1.MenuItem, { key: 0, onClick: () => {
58
+ onClickModify(value.row.original);
59
+ close();
60
+ }, icon: react_1.default.createElement(itwinui_icons_react_1.SvgEdit, null) }, "Modify"),
61
+ ] : [],
62
+ react_1.default.createElement(itwinui_react_1.MenuItem, { key: 1, onClick: () => {
63
+ handleShowDeleteModal(value.row.original);
64
+ close();
65
+ }, icon: react_1.default.createElement(itwinui_icons_react_1.SvgDelete, null) }, "Remove"),
66
+ ].flatMap((p) => p) },
67
+ react_1.default.createElement(itwinui_react_1.IconButton, { styleType: 'borderless', title: 'Property Options' },
68
+ react_1.default.createElement(itwinui_icons_react_1.SvgMore, null))));
69
+ },
76
70
  },
77
71
  ], [onClickModify]);
78
- const deleteProperty = (0, react_1.useCallback)(async (propertyId) => {
79
- const accessToken = await getAccessToken();
80
- await mappingClient.deleteGroupProperty(accessToken, iModelId, mappingId, groupId, propertyId);
81
- }, [getAccessToken, groupId, iModelId, mappingClient, mappingId]);
72
+ const { mutateAsync: deleteProperty } = (0, react_query_1.useMutation)({
73
+ mutationFn: async (propertyId) => {
74
+ const accessToken = await getAccessToken();
75
+ await mappingClient.deleteGroupProperty(accessToken, iModelId, mappingId, groupId, propertyId);
76
+ },
77
+ onSuccess: async () => queryClient.invalidateQueries({ queryKey: ["groupProperties", iModelId, mappingId, groupId] }),
78
+ });
82
79
  return (react_1.default.createElement(PropertyTable_1.PropertyTable, { propertyType: "Group", columnsFactory: columnsFactory, data: groupProperties, isLoading: isLoading, onClickAdd: onClickAdd, refreshProperties: refresh, deleteProperty: deleteProperty }));
83
80
  };
84
81
  exports.GroupPropertyTable = GroupPropertyTable;
@@ -1 +1 @@
1
- {"version":3,"file":"GroupPropertyTable.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyTable.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 {\n SvgDelete,\n SvgEdit,\n SvgMore,\n} from \"@itwin/itwinui-icons-react\";\nimport {\n DropdownMenu,\n IconButton,\n MenuItem,\n} from \"@itwin/itwinui-react\";\nimport React, { useCallback } from \"react\";\nimport type { CellProps } from \"react-table\";\nimport type { GroupProperty } from \"@itwin/insights-client\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport { PropertyNameCell } from \"../PropertyNameCell\";\nimport { PropertyTable } from \"../PropertyTable\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\n\nexport interface GroupPropertyTableProps {\n iModelId: string;\n mappingId: string;\n groupId: string;\n onClickAdd?: () => void;\n onClickModify?: (value: GroupProperty) => void;\n isLoading: boolean;\n groupProperties: GroupProperty[];\n refresh: () => Promise<void>;\n}\n\nexport const GroupPropertyTable = ({\n mappingId,\n groupId,\n onClickAdd,\n onClickModify,\n isLoading,\n groupProperties,\n refresh,\n}: GroupPropertyTableProps) => {\n const mappingClient = useMappingClient();\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n\n const columnsFactory = useCallback(\n (handleShowDeleteModal: (value: GroupProperty) => void) => [\n {\n Header: \"Table\",\n columns: [\n {\n id: \"propertyName\",\n Header: \"Property\",\n accessor: \"propertyName\",\n Cell: (value: CellProps<GroupProperty>) => (\n <PropertyNameCell\n property={value.row.original}\n onClickModify={onClickModify}\n />\n ),\n },\n {\n id: \"dropdown\",\n Header: \"\",\n width: 80,\n Cell: (value: CellProps<GroupProperty>) => {\n return (\n <DropdownMenu\n menuItems={(close: () => void) => [\n onClickModify ? [\n <MenuItem\n key={0}\n onClick={() => {\n onClickModify(value.row.original);\n close();\n }}\n icon={<SvgEdit />}\n >\n Modify\n </MenuItem>,\n ] : [],\n <MenuItem\n key={1}\n onClick={() => {\n handleShowDeleteModal(value.row.original);\n close();\n }}\n icon={<SvgDelete />}\n >\n Remove\n </MenuItem>,\n ].flatMap((p) => p)}\n >\n <IconButton styleType='borderless' title='Property Options'>\n <SvgMore\n style={{\n width: \"16px\",\n height: \"16px\",\n }}\n />\n </IconButton>\n </DropdownMenu>\n );\n },\n },\n ],\n },\n ],\n [onClickModify]\n );\n\n const deleteProperty = useCallback(async (propertyId: string) => {\n const accessToken = await getAccessToken();\n await mappingClient.deleteGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n groupId,\n propertyId,\n );\n }, [getAccessToken, groupId, iModelId, mappingClient, mappingId]);\n\n return (\n <PropertyTable\n propertyType=\"Group\"\n columnsFactory={columnsFactory}\n data={groupProperties}\n isLoading={isLoading}\n onClickAdd={onClickAdd}\n refreshProperties={refresh}\n deleteProperty={deleteProperty}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"GroupPropertyTable.js","sourceRoot":"","sources":["../../../../../src/components/Properties/GroupProperties/GroupPropertyTable.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 {\n SvgDelete,\n SvgEdit,\n SvgMore,\n} from \"@itwin/itwinui-icons-react\";\nimport {\n DropdownMenu,\n IconButton,\n MenuItem,\n} from \"@itwin/itwinui-react\";\nimport React, { useCallback } from \"react\";\nimport type { CellProps, Column } from \"react-table\";\nimport type { GroupProperty } from \"@itwin/insights-client\";\nimport { useMappingClient } from \"../../context/MappingClientContext\";\nimport { PropertyNameCell } from \"../PropertyNameCell\";\nimport { PropertyTable } from \"../PropertyTable\";\nimport { useGroupingMappingApiConfig } from \"../../context/GroupingApiConfigContext\";\nimport { useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nexport interface GroupPropertyTableProps {\n iModelId: string;\n mappingId: string;\n groupId: string;\n onClickAdd?: () => void;\n onClickModify?: (value: GroupProperty) => void;\n isLoading: boolean;\n groupProperties: GroupProperty[];\n refresh: () => Promise<void>;\n}\n\nexport const GroupPropertyTable = ({\n mappingId,\n groupId,\n onClickAdd,\n onClickModify,\n isLoading,\n groupProperties,\n refresh,\n}: GroupPropertyTableProps) => {\n const mappingClient = useMappingClient();\n const { getAccessToken, iModelId } = useGroupingMappingApiConfig();\n const queryClient = useQueryClient();\n\n const columnsFactory = useCallback(\n (handleShowDeleteModal: (value: GroupProperty) => void): Column<GroupProperty>[] => [\n {\n id: \"propertyName\",\n Header: \"Property\",\n accessor: \"propertyName\",\n Cell: (value: CellProps<GroupProperty>) => (\n <PropertyNameCell\n property={value.row.original}\n onClickModify={onClickModify}\n />\n ),\n },\n {\n id: \"dropdown\",\n Header: \"\",\n width: 80,\n Cell: (value: CellProps<GroupProperty>) => {\n return (\n <DropdownMenu\n menuItems={(close: () => void) => [\n onClickModify ? [\n <MenuItem\n key={0}\n onClick={() => {\n onClickModify(value.row.original);\n close();\n }}\n icon={<SvgEdit />}\n >\n Modify\n </MenuItem>,\n ] : [],\n <MenuItem\n key={1}\n onClick={() => {\n handleShowDeleteModal(value.row.original);\n close();\n }}\n icon={<SvgDelete />}\n >\n Remove\n </MenuItem>,\n ].flatMap((p) => p)}\n >\n <IconButton styleType='borderless' title='Property Options'>\n <SvgMore />\n </IconButton>\n </DropdownMenu>\n );\n },\n },\n ],\n [onClickModify]\n );\n\n const { mutateAsync: deleteProperty } = useMutation({\n mutationFn: async (propertyId: string) => {\n const accessToken = await getAccessToken();\n await mappingClient.deleteGroupProperty(\n accessToken,\n iModelId,\n mappingId,\n groupId,\n propertyId,\n );\n },\n onSuccess: async () => queryClient.invalidateQueries({ queryKey: [\"groupProperties\", iModelId, mappingId, groupId] }),\n });\n\n return (\n <PropertyTable\n propertyType=\"Group\"\n columnsFactory={columnsFactory}\n data={groupProperties}\n isLoading={isLoading}\n onClickAdd={onClickAdd}\n refreshProperties={refresh}\n deleteProperty={deleteProperty}\n />\n );\n};\n"]}
@@ -21,6 +21,9 @@ const convertType = (type) => {
21
21
  return insights_client_1.DataType.String;
22
22
  }
23
23
  };
24
+ const generateKey = (parentPropertyClassName, actualECClassName, propertyTraversal) => {
25
+ return `${parentPropertyClassName}|${actualECClassName}|${propertyTraversal.join("|")}`;
26
+ };
24
27
  const extractPrimitives = (propertyTraversal, propertyField) => propertyField.properties.map((property) => {
25
28
  const propertyName = property.property.name;
26
29
  const displayLabel = propertyField.label;
@@ -43,7 +46,7 @@ const extractPrimitives = (propertyTraversal, propertyField) => propertyField.pr
43
46
  primitiveNavigationClass,
44
47
  actualECClassName,
45
48
  parentPropertyClassName,
46
- key: `${parentPropertyClassName}|${actualECClassName}|${newPropertyTraversal.join("|")}`,
49
+ key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),
47
50
  categoryLabel: propertyField.category.label,
48
51
  });
49
52
  });
@@ -62,7 +65,7 @@ const extractPrimitiveStructProperties = (propertyTraversal, members, categoryLa
62
65
  primitiveNavigationClass: "",
63
66
  actualECClassName,
64
67
  parentPropertyClassName,
65
- key: `${parentPropertyClassName}|${actualECClassName}|${newPropertyTraversal.join("|")}`,
68
+ key: generateKey(parentPropertyClassName, actualECClassName, newPropertyTraversal),
66
69
  categoryLabel,
67
70
  });
68
71
  }
@@ -123,64 +126,75 @@ const extractNested = (propertyTraversal, propertyFields) => propertyFields.flat
123
126
  }
124
127
  return [];
125
128
  });
126
- const convertPresentationFields = (propertyFields) => propertyFields.flatMap((property) => {
127
- // Generate base ECProperty
128
- switch (property.type.valueFormat) {
129
- case presentation_common_1.PropertyValueFormat.Primitive: {
130
- const extractedPrimitives = extractPrimitives([], property);
131
- for (const extractedPrimitive of extractedPrimitives) {
132
- extractedPrimitive.sourceSchema = "*";
133
- extractedPrimitive.sourceClassName = "*";
134
- return extractedPrimitive;
135
- }
136
- break;
137
- }
138
- // Get structs
139
- case presentation_common_1.PropertyValueFormat.Struct: {
140
- const nestedContentField = property;
141
- // Only handling single path and not handling nested content fields within navigations
142
- if (nestedContentField.pathToPrimaryClass &&
143
- nestedContentField.pathToPrimaryClass.length > 1) {
129
+ const convertPresentationFields = (propertyFields) => {
130
+ const uniquePropertiesMap = new Map();
131
+ propertyFields.forEach((property) => {
132
+ switch (property.type.valueFormat) {
133
+ case presentation_common_1.PropertyValueFormat.Primitive: {
134
+ // Generate base ECProperty
135
+ const extractedPrimitives = extractPrimitives([], property);
136
+ extractedPrimitives.forEach((extractedPrimitive) => {
137
+ extractedPrimitive.sourceSchema = "*";
138
+ extractedPrimitive.sourceClassName = "*";
139
+ uniquePropertiesMap.set(extractedPrimitive.key, extractedPrimitive);
140
+ });
144
141
  break;
145
142
  }
146
- switch (nestedContentField.relationshipMeaning) {
147
- case presentation_common_1.RelationshipMeaning.SameInstance: {
148
- // Check for aspects.
149
- if ((nestedContentField.pathToPrimaryClass[0].relationshipInfo
150
- .name === "BisCore:ElementOwnsUniqueAspect" ||
151
- nestedContentField.pathToPrimaryClass[0].relationshipInfo
152
- .name === "BisCore:ElementOwnsMultiAspects")) {
153
- const fullClassName = nestedContentField.contentClassInfo.name;
154
- const sourceSchema = fullClassName.split(":")[0];
155
- const sourceClassName = fullClassName.split(":")[1];
156
- const extractedNested = extractNested([], nestedContentField.nestedFields);
157
- const aspectExtractedNested = extractedNested.map((ecProperty) => ({ ...ecProperty, sourceSchema, sourceClassName }));
158
- return aspectExtractedNested;
159
- }
143
+ case presentation_common_1.PropertyValueFormat.Struct: {
144
+ // Get structs
145
+ const nestedContentField = property;
146
+ // Only handling single path and not handling nested content fields within navigations
147
+ if (nestedContentField.pathToPrimaryClass &&
148
+ nestedContentField.pathToPrimaryClass.length > 1) {
160
149
  break;
161
150
  }
162
- // Navigation properties
163
- case presentation_common_1.RelationshipMeaning.RelatedInstance: {
164
- if (
165
- // Deal with a TypeDefinition
166
- nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===
167
- "BisCore:GeometricElement3dHasTypeDefinition") {
168
- return extractNested(["TypeDefinition"], nestedContentField.nestedFields);
151
+ switch (nestedContentField.relationshipMeaning) {
152
+ case presentation_common_1.RelationshipMeaning.SameInstance: {
153
+ // Check for aspects.
154
+ if ((nestedContentField.pathToPrimaryClass[0].relationshipInfo
155
+ .name === "BisCore:ElementOwnsUniqueAspect" ||
156
+ nestedContentField.pathToPrimaryClass[0].relationshipInfo
157
+ .name === "BisCore:ElementOwnsMultiAspects")) {
158
+ const fullClassName = nestedContentField.contentClassInfo.name;
159
+ const sourceSchema = fullClassName.split(":")[0];
160
+ const sourceClassName = fullClassName.split(":")[1];
161
+ const extractedNested = extractNested([], nestedContentField.nestedFields);
162
+ extractedNested.forEach((ecProperty) => {
163
+ const propertyWithSchema = { ...ecProperty, sourceSchema, sourceClassName };
164
+ uniquePropertiesMap.set(propertyWithSchema.key, propertyWithSchema);
165
+ });
166
+ }
167
+ break;
169
168
  }
170
- break;
171
- }
172
- default: {
173
- // Some elements don't have a path to primary class or relationship meaning..
174
- // Most likely a simple struct property
175
- if (!nestedContentField.pathToPrimaryClass) {
176
- return extractStruct(property);
169
+ case presentation_common_1.RelationshipMeaning.RelatedInstance: {
170
+ // Navigation properties
171
+ if (
172
+ // Deal with a TypeDefinition
173
+ nestedContentField.pathToPrimaryClass[0].relationshipInfo.name ===
174
+ "BisCore:GeometricElement3dHasTypeDefinition") {
175
+ const extractedNested = extractNested(["TypeDefinition"], nestedContentField.nestedFields);
176
+ extractedNested.forEach((ecProperty) => {
177
+ uniquePropertiesMap.set(ecProperty.key, ecProperty);
178
+ });
179
+ }
180
+ break;
181
+ }
182
+ default: {
183
+ // Some elements don't have a path to primary class or relationship meaning..
184
+ // Most likely a simple struct property
185
+ if (!nestedContentField.pathToPrimaryClass) {
186
+ const extractedStruct = extractStruct(property);
187
+ extractedStruct.forEach((ecProperty) => {
188
+ uniquePropertiesMap.set(ecProperty.key, ecProperty);
189
+ });
190
+ }
177
191
  }
178
192
  }
179
193
  }
180
194
  }
181
- }
182
- return [];
183
- });
195
+ });
196
+ return Array.from(uniquePropertiesMap.values());
197
+ };
184
198
  exports.convertPresentationFields = convertPresentationFields;
185
199
  const convertToECProperties = (property) => {
186
200
  const ecProperty = {