@itwin/grouping-mapping-widget 0.17.4 → 0.18.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 (200) hide show
  1. package/lib/cjs/formula/FormulaDataTypeResolver.js +4 -4
  2. package/lib/cjs/formula/FormulaDataTypeResolver.js.map +1 -1
  3. package/lib/cjs/formula/FormulaFunctionProvider.js +4 -4
  4. package/lib/cjs/formula/FormulaFunctionProvider.js.map +1 -1
  5. package/lib/cjs/formula/FormulaSplitter.js +12 -12
  6. package/lib/cjs/formula/FormulaSplitter.js.map +1 -1
  7. package/lib/cjs/formula/FormulaTokensDataTypeResolver.js +6 -6
  8. package/lib/cjs/formula/FormulaTokensDataTypeResolver.js.map +1 -1
  9. package/lib/cjs/formula/InfixToPostfixConverter.js +11 -11
  10. package/lib/cjs/formula/InfixToPostfixConverter.js.map +1 -1
  11. package/lib/cjs/grouping-mapping-widget.d.ts +3 -1
  12. package/lib/cjs/grouping-mapping-widget.js +7 -3
  13. package/lib/cjs/grouping-mapping-widget.js.map +1 -1
  14. package/lib/cjs/test/GroupPropertyUtils.test.js +74 -74
  15. package/lib/cjs/test/GroupPropertyUtils.test.js.map +1 -1
  16. package/lib/cjs/test/GroupingMappingCustomUI.test.js +9 -9
  17. package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
  18. package/lib/cjs/test/PropertyFieldsHelpers.js +8 -8
  19. package/lib/cjs/test/PropertyFieldsHelpers.js.map +1 -1
  20. package/lib/cjs/test/WidgetHeader.test.js +2 -2
  21. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  22. package/lib/cjs/test/test-utils.js +1 -1
  23. package/lib/cjs/test/test-utils.js.map +1 -1
  24. package/lib/cjs/widget/components/BlockingOverlay.js +1 -1
  25. package/lib/cjs/widget/components/BlockingOverlay.js.map +1 -1
  26. package/lib/cjs/widget/components/CalculatedPropertyAction.js +7 -7
  27. package/lib/cjs/widget/components/CalculatedPropertyAction.js.map +1 -1
  28. package/lib/cjs/widget/components/CalculatedPropertyActionWithVisuals.js +21 -21
  29. package/lib/cjs/widget/components/CalculatedPropertyActionWithVisuals.js.map +1 -1
  30. package/lib/cjs/widget/components/CalculatedPropertyTable.js +4 -4
  31. package/lib/cjs/widget/components/CalculatedPropertyTable.js.map +1 -1
  32. package/lib/cjs/widget/components/ConfirmMappingsImport.d.ts +1 -1
  33. package/lib/cjs/widget/components/ConfirmMappingsImport.js +8 -8
  34. package/lib/cjs/widget/components/ConfirmMappingsImport.js.map +1 -1
  35. package/lib/cjs/widget/components/CustomCalculationAction.js +20 -18
  36. package/lib/cjs/widget/components/CustomCalculationAction.js.map +1 -1
  37. package/lib/cjs/widget/components/CustomCalculationTable.js +4 -4
  38. package/lib/cjs/widget/components/CustomCalculationTable.js.map +1 -1
  39. package/lib/cjs/widget/components/DeleteModal.js +2 -2
  40. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  41. package/lib/cjs/widget/components/GroupAction.js +16 -16
  42. package/lib/cjs/widget/components/GroupAction.js.map +1 -1
  43. package/lib/cjs/widget/components/GroupColorLegend.js +1 -1
  44. package/lib/cjs/widget/components/GroupColorLegend.js.map +1 -1
  45. package/lib/cjs/widget/components/GroupColorToggle.js +9 -9
  46. package/lib/cjs/widget/components/GroupColorToggle.js.map +1 -1
  47. package/lib/cjs/widget/components/GroupDetails.js +3 -3
  48. package/lib/cjs/widget/components/GroupDetails.js.map +1 -1
  49. package/lib/cjs/widget/components/GroupMenuActions.js +2 -2
  50. package/lib/cjs/widget/components/GroupMenuActions.js.map +1 -1
  51. package/lib/cjs/widget/components/GroupPropertyAction.js +35 -35
  52. package/lib/cjs/widget/components/GroupPropertyAction.js.map +1 -1
  53. package/lib/cjs/widget/components/GroupPropertyTable.js +4 -4
  54. package/lib/cjs/widget/components/GroupPropertyTable.js.map +1 -1
  55. package/lib/cjs/widget/components/GroupPropertyUtils.js +2 -2
  56. package/lib/cjs/widget/components/GroupPropertyUtils.js.map +1 -1
  57. package/lib/cjs/widget/components/Grouping.d.ts +2 -1
  58. package/lib/cjs/widget/components/Grouping.js +16 -13
  59. package/lib/cjs/widget/components/Grouping.js.map +1 -1
  60. package/lib/cjs/widget/components/Grouping.scss +8 -0
  61. package/lib/cjs/widget/components/GroupingMapping.js +5 -5
  62. package/lib/cjs/widget/components/GroupingMapping.js.map +1 -1
  63. package/lib/cjs/widget/components/GroupingMappingContent.js +4 -4
  64. package/lib/cjs/widget/components/GroupingMappingContent.js.map +1 -1
  65. package/lib/cjs/widget/components/GroupingMappingContext.js +24 -21
  66. package/lib/cjs/widget/components/GroupingMappingContext.js.map +1 -1
  67. package/lib/cjs/widget/components/GroupingMappingRouter.js +3 -3
  68. package/lib/cjs/widget/components/GroupingMappingRouter.js.map +1 -1
  69. package/lib/cjs/widget/components/GroupsShowHideButtons.js +3 -3
  70. package/lib/cjs/widget/components/GroupsShowHideButtons.js.map +1 -1
  71. package/lib/cjs/widget/components/GroupsVisualization.js +38 -28
  72. package/lib/cjs/widget/components/GroupsVisualization.js.map +1 -1
  73. package/lib/cjs/widget/components/GroupsVisualizationActions.js +1 -1
  74. package/lib/cjs/widget/components/GroupsVisualizationActions.js.map +1 -1
  75. package/lib/cjs/widget/components/HorizontalTile.js +1 -1
  76. package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
  77. package/lib/cjs/widget/components/MappingAction.js +9 -9
  78. package/lib/cjs/widget/components/MappingAction.js.map +1 -1
  79. package/lib/cjs/widget/components/MappingImportWizardModal.d.ts +2 -2
  80. package/lib/cjs/widget/components/MappingImportWizardModal.js +13 -13
  81. package/lib/cjs/widget/components/MappingImportWizardModal.js.map +1 -1
  82. package/lib/cjs/widget/components/MappingViewActionGroup.d.ts +12 -0
  83. package/lib/cjs/widget/components/MappingViewActionGroup.js +34 -0
  84. package/lib/cjs/widget/components/MappingViewActionGroup.js.map +1 -0
  85. package/lib/cjs/widget/components/Mappings.d.ts +13 -0
  86. package/lib/cjs/widget/components/Mappings.js +45 -0
  87. package/lib/cjs/widget/components/Mappings.js.map +1 -0
  88. package/lib/cjs/widget/components/MappingsView.d.ts +33 -0
  89. package/lib/cjs/widget/components/MappingsView.js +54 -0
  90. package/lib/cjs/widget/components/MappingsView.js.map +1 -0
  91. package/lib/{esm/widget/components/Mapping.scss → cjs/widget/components/MappingsView.scss} +6 -2
  92. package/lib/cjs/widget/components/PropertyAction.js +7 -7
  93. package/lib/cjs/widget/components/PropertyAction.js.map +1 -1
  94. package/lib/cjs/widget/components/PropertyMenu.js +9 -9
  95. package/lib/cjs/widget/components/PropertyMenu.js.map +1 -1
  96. package/lib/cjs/widget/components/PropertyMenuWithVisualization.js +1 -1
  97. package/lib/cjs/widget/components/PropertyMenuWithVisualization.js.map +1 -1
  98. package/lib/cjs/widget/components/PropertyTable.js +4 -4
  99. package/lib/cjs/widget/components/PropertyTable.js.map +1 -1
  100. package/lib/cjs/widget/components/SelectIModel.js +9 -9
  101. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  102. package/lib/cjs/widget/components/SelectITwin.js +10 -10
  103. package/lib/cjs/widget/components/SelectITwin.js.map +1 -1
  104. package/lib/cjs/widget/components/SelectMappings.d.ts +1 -1
  105. package/lib/cjs/widget/components/SelectMappings.js +10 -10
  106. package/lib/cjs/widget/components/SelectMappings.js.map +1 -1
  107. package/lib/cjs/widget/components/SharedCalculatedPropertyForms.js +1 -1
  108. package/lib/cjs/widget/components/SharedCalculatedPropertyForms.js.map +1 -1
  109. package/lib/cjs/widget/components/SortableHorizontalTile.js +2 -2
  110. package/lib/cjs/widget/components/SortableHorizontalTile.js.map +1 -1
  111. package/lib/cjs/widget/components/StatusIcon.js +1 -1
  112. package/lib/cjs/widget/components/StatusIcon.js.map +1 -1
  113. package/lib/cjs/widget/components/context/GroupHilitedElementsContext.d.ts +2 -0
  114. package/lib/cjs/widget/components/context/GroupHilitedElementsContext.js +2 -0
  115. package/lib/cjs/widget/components/context/GroupHilitedElementsContext.js.map +1 -1
  116. package/lib/cjs/widget/components/context/GroupingApiConfigContext.js +1 -1
  117. package/lib/cjs/widget/components/context/GroupingApiConfigContext.js.map +1 -1
  118. package/lib/cjs/widget/components/context/GroupingMappingCustomUIContext.js +2 -2
  119. package/lib/cjs/widget/components/context/GroupingMappingCustomUIContext.js.map +1 -1
  120. package/lib/cjs/widget/components/context/IModelsClientContext.js +2 -2
  121. package/lib/cjs/widget/components/context/IModelsClientContext.js.map +1 -1
  122. package/lib/cjs/widget/components/context/ITwinsClientContext.js +2 -2
  123. package/lib/cjs/widget/components/context/ITwinsClientContext.js.map +1 -1
  124. package/lib/cjs/widget/components/context/MappingClientContext.js +3 -3
  125. package/lib/cjs/widget/components/context/MappingClientContext.js.map +1 -1
  126. package/lib/cjs/widget/components/customUI/GroupQueryBuilderCustomUI.js +10 -10
  127. package/lib/cjs/widget/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
  128. package/lib/cjs/widget/components/groupsHelpers.d.ts +1 -1
  129. package/lib/cjs/widget/components/groupsHelpers.js +14 -13
  130. package/lib/cjs/widget/components/groupsHelpers.js.map +1 -1
  131. package/lib/cjs/widget/components/hooks/useMappingsOperations.d.ts +19 -0
  132. package/lib/cjs/widget/components/hooks/useMappingsOperations.js +61 -0
  133. package/lib/cjs/widget/components/hooks/useMappingsOperations.js.map +1 -0
  134. package/lib/cjs/widget/components/utils.d.ts +1 -0
  135. package/lib/cjs/widget/components/utils.js +19 -23
  136. package/lib/cjs/widget/components/utils.js.map +1 -1
  137. package/lib/cjs/widget/components/viewerUtils.js +12 -12
  138. package/lib/cjs/widget/components/viewerUtils.js.map +1 -1
  139. package/lib/cjs/widget/hooks/useFetchData.js +6 -6
  140. package/lib/cjs/widget/hooks/useFetchData.js.map +1 -1
  141. package/lib/cjs/widget/hooks/useFormulaValidation.js +4 -4
  142. package/lib/cjs/widget/hooks/useFormulaValidation.js.map +1 -1
  143. package/lib/cjs/widget/hooks/useValidator.js +1 -1
  144. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  145. package/lib/cjs/widget/hooks/useVisualization.js +15 -15
  146. package/lib/cjs/widget/hooks/useVisualization.js.map +1 -1
  147. package/lib/esm/grouping-mapping-widget.d.ts +3 -1
  148. package/lib/esm/grouping-mapping-widget.js +3 -1
  149. package/lib/esm/grouping-mapping-widget.js.map +1 -1
  150. package/lib/esm/widget/components/ConfirmMappingsImport.d.ts +1 -1
  151. package/lib/esm/widget/components/ConfirmMappingsImport.js.map +1 -1
  152. package/lib/esm/widget/components/CustomCalculationAction.js +3 -1
  153. package/lib/esm/widget/components/CustomCalculationAction.js.map +1 -1
  154. package/lib/esm/widget/components/Grouping.d.ts +2 -1
  155. package/lib/esm/widget/components/Grouping.js +7 -4
  156. package/lib/esm/widget/components/Grouping.js.map +1 -1
  157. package/lib/esm/widget/components/Grouping.scss +8 -0
  158. package/lib/esm/widget/components/GroupingMappingContext.js +4 -1
  159. package/lib/esm/widget/components/GroupingMappingContext.js.map +1 -1
  160. package/lib/esm/widget/components/GroupingMappingRouter.js +1 -1
  161. package/lib/esm/widget/components/GroupingMappingRouter.js.map +1 -1
  162. package/lib/esm/widget/components/GroupsVisualization.js +14 -4
  163. package/lib/esm/widget/components/GroupsVisualization.js.map +1 -1
  164. package/lib/esm/widget/components/MappingImportWizardModal.d.ts +2 -2
  165. package/lib/esm/widget/components/MappingImportWizardModal.js.map +1 -1
  166. package/lib/esm/widget/components/MappingViewActionGroup.d.ts +12 -0
  167. package/lib/esm/widget/components/MappingViewActionGroup.js +27 -0
  168. package/lib/esm/widget/components/MappingViewActionGroup.js.map +1 -0
  169. package/lib/esm/widget/components/Mappings.d.ts +13 -0
  170. package/lib/esm/widget/components/Mappings.js +22 -0
  171. package/lib/esm/widget/components/Mappings.js.map +1 -0
  172. package/lib/esm/widget/components/MappingsView.d.ts +33 -0
  173. package/lib/esm/widget/components/MappingsView.js +47 -0
  174. package/lib/esm/widget/components/MappingsView.js.map +1 -0
  175. package/lib/{cjs/widget/components/Mapping.scss → esm/widget/components/MappingsView.scss} +6 -2
  176. package/lib/esm/widget/components/SelectMappings.d.ts +1 -1
  177. package/lib/esm/widget/components/SelectMappings.js.map +1 -1
  178. package/lib/esm/widget/components/context/GroupHilitedElementsContext.d.ts +2 -0
  179. package/lib/esm/widget/components/context/GroupHilitedElementsContext.js +2 -0
  180. package/lib/esm/widget/components/context/GroupHilitedElementsContext.js.map +1 -1
  181. package/lib/esm/widget/components/groupsHelpers.d.ts +1 -1
  182. package/lib/esm/widget/components/groupsHelpers.js +4 -3
  183. package/lib/esm/widget/components/groupsHelpers.js.map +1 -1
  184. package/lib/esm/widget/components/hooks/useMappingsOperations.d.ts +19 -0
  185. package/lib/esm/widget/components/hooks/useMappingsOperations.js +57 -0
  186. package/lib/esm/widget/components/hooks/useMappingsOperations.js.map +1 -0
  187. package/lib/esm/widget/components/utils.d.ts +1 -0
  188. package/lib/esm/widget/components/utils.js +17 -22
  189. package/lib/esm/widget/components/utils.js.map +1 -1
  190. package/lib/esm/widget/hooks/useFormulaValidation.js +1 -1
  191. package/lib/esm/widget/hooks/useFormulaValidation.js.map +1 -1
  192. package/lib/esm/widget/hooks/useVisualization.js +3 -3
  193. package/lib/esm/widget/hooks/useVisualization.js.map +1 -1
  194. package/package.json +2 -2
  195. package/lib/cjs/widget/components/Mapping.d.ts +0 -24
  196. package/lib/cjs/widget/components/Mapping.js +0 -136
  197. package/lib/cjs/widget/components/Mapping.js.map +0 -1
  198. package/lib/esm/widget/components/Mapping.d.ts +0 -24
  199. package/lib/esm/widget/components/Mapping.js +0 -110
  200. package/lib/esm/widget/components/Mapping.js.map +0 -1
@@ -35,24 +35,25 @@ const PropertiesContext_1 = require("./context/PropertiesContext");
35
35
  const appui_react_1 = require("@itwin/appui-react");
36
36
  const authorizationClientGetAccessToken = async () => (await core_frontend_1.IModelApp.authorizationClient?.getAccessToken()) ?? "";
37
37
  const GroupingMappingContext = (props) => {
38
- const activeIModelConntextion = appui_react_1.useActiveIModelConnection();
38
+ const activeIModelConntextion = (0, appui_react_1.useActiveIModelConnection)();
39
39
  const clientProp = props.client ?? props.prefix;
40
- const [mappingClient, setMappingClient] = react_1.useState(MappingClientContext_1.createMappingClient(clientProp));
41
- const [customUIs, setCustomUIs] = react_1.useState(GroupingMappingCustomUIContext_1.createGroupingMappingCustomUI(props.customUIs));
42
- const [apiConfig, setApiConfig] = react_1.useState({
40
+ const [mappingClient, setMappingClient] = (0, react_1.useState)((0, MappingClientContext_1.createMappingClient)(clientProp));
41
+ const [customUIs, setCustomUIs] = (0, react_1.useState)((0, GroupingMappingCustomUIContext_1.createGroupingMappingCustomUI)(props.customUIs));
42
+ const [apiConfig, setApiConfig] = (0, react_1.useState)({
43
43
  getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,
44
44
  iModelId: props.iModelId,
45
45
  prefix: props.prefix,
46
46
  });
47
- const hilitedElementsQueryCache = react_1.useRef(new Map());
48
- const [hiddenGroupsIds, setHiddenGroupsIds] = react_1.useState(new Set());
49
- const [showGroupColor, setShowGroupColor] = react_1.useState(false);
50
- const [propertiesShowGroup, setPropertiesShowGroup] = react_1.useState(false);
51
- const [groups, setGroups] = react_1.useState([]);
52
- const [groupProperties, setGroupProperties] = react_1.useState([]);
53
- const [calculatedProperties, setCalculatedProperties] = react_1.useState([]);
54
- const [customCalculationProperties, setCustomCalculationProperties] = react_1.useState([]);
55
- react_1.useEffect(() => {
47
+ const hilitedElementsQueryCache = (0, react_1.useRef)(new Map());
48
+ const [hiddenGroupsIds, setHiddenGroupsIds] = (0, react_1.useState)(new Set());
49
+ const [showGroupColor, setShowGroupColor] = (0, react_1.useState)(false);
50
+ const [propertiesShowGroup, setPropertiesShowGroup] = (0, react_1.useState)(false);
51
+ const [groups, setGroups] = (0, react_1.useState)([]);
52
+ const [groupProperties, setGroupProperties] = (0, react_1.useState)([]);
53
+ const [calculatedProperties, setCalculatedProperties] = (0, react_1.useState)([]);
54
+ const [customCalculationProperties, setCustomCalculationProperties] = (0, react_1.useState)([]);
55
+ const [numberOfVisualizedGroups, setNumberOfVisualizedGroups] = (0, react_1.useState)(0);
56
+ (0, react_1.useEffect)(() => {
56
57
  setApiConfig(() => ({
57
58
  prefix: props.prefix,
58
59
  iModelId: props.iModelId,
@@ -60,13 +61,13 @@ const GroupingMappingContext = (props) => {
60
61
  iModelConnection: props.iModelConnection ?? activeIModelConntextion,
61
62
  }));
62
63
  }, [activeIModelConntextion, props.getAccessToken, props.iModelConnection, props.iModelId, props.prefix]);
63
- react_1.useEffect(() => {
64
- setMappingClient(MappingClientContext_1.createMappingClient(clientProp));
64
+ (0, react_1.useEffect)(() => {
65
+ setMappingClient((0, MappingClientContext_1.createMappingClient)(clientProp));
65
66
  }, [clientProp]);
66
- react_1.useEffect(() => {
67
- setCustomUIs(GroupingMappingCustomUIContext_1.createGroupingMappingCustomUI(props.customUIs));
67
+ (0, react_1.useEffect)(() => {
68
+ setCustomUIs((0, GroupingMappingCustomUIContext_1.createGroupingMappingCustomUI)(props.customUIs));
68
69
  }, [props.customUIs]);
69
- const hilitedElementsContextValue = react_1.useMemo(() => ({
70
+ const hilitedElementsContextValue = (0, react_1.useMemo)(() => ({
70
71
  showGroupColor,
71
72
  setShowGroupColor,
72
73
  hiddenGroupsIds,
@@ -74,8 +75,10 @@ const GroupingMappingContext = (props) => {
74
75
  hilitedElementsQueryCache,
75
76
  groups,
76
77
  setGroups,
77
- }), [groups, hiddenGroupsIds, showGroupColor]);
78
- const propertiesContextValue = react_1.useMemo(() => ({
78
+ numberOfVisualizedGroups,
79
+ setNumberOfVisualizedGroups,
80
+ }), [groups, hiddenGroupsIds, showGroupColor, numberOfVisualizedGroups]);
81
+ const propertiesContextValue = (0, react_1.useMemo)(() => ({
79
82
  showGroupColor: propertiesShowGroup,
80
83
  setShowGroupColor: setPropertiesShowGroup,
81
84
  groupProperties,
@@ -85,7 +88,7 @@ const GroupingMappingContext = (props) => {
85
88
  customCalculationProperties,
86
89
  setCustomCalculationProperties,
87
90
  }), [calculatedProperties, customCalculationProperties, groupProperties, propertiesShowGroup]);
88
- const customUIContextValue = react_1.useMemo(() => ({
91
+ const customUIContextValue = (0, react_1.useMemo)(() => ({
89
92
  customUIs,
90
93
  setCustomUIs,
91
94
  }), [customUIs]);
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMappingContext.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupingMappingContext.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport \"./GroupingMapping.scss\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type {\n ClientPrefix,\n GetAccessTokenFn,\n GroupingMappingApiConfig,\n} from \"./context/GroupingApiConfigContext\";\nimport { GroupingMappingApiConfigContext } from \"./context/GroupingApiConfigContext\";\nimport {\n createMappingClient,\n MappingClientContext,\n} from \"./context/MappingClientContext\";\nimport type { CalculatedProperty, CustomCalculation, Group, GroupProperty, IMappingsClient } from \"@itwin/insights-client\";\nimport { createGroupingMappingCustomUI, GroupingMappingCustomUIContext } from \"./context/GroupingMappingCustomUIContext\";\nimport type { GroupingMappingCustomUI } from \"./customUI/GroupingMappingCustomUI\";\nimport type { QueryCacheItem } from \"./context/GroupHilitedElementsContext\";\nimport { GroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\nimport { PropertiesContext } from \"./context/PropertiesContext\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\n\nexport interface GroupingMappingContextProps {\n /**\n * Custom callback to retrieve access token.\n */\n getAccessToken?: GetAccessTokenFn;\n /**\n * The iTwin iModel Id.\n */\n iModelId: string;\n /**\n * Used for iTwin and iModel APIs.\n * Also used for Mapping API if a custom {@link client} is not provided.\n */\n prefix?: ClientPrefix;\n /**\n * A custom implementation of MappingClient.\n */\n client?: IMappingsClient;\n /**\n * Custom UI to add and update groups or provide additional group context capabilities.\n */\n customUIs?: GroupingMappingCustomUI[];\n /**\n * A custom iModelConnection to use instead of the active iModelConnection from UiFramework.\n */\n iModelConnection?: IModelConnection;\n children?: React.ReactNode;\n}\n\nconst authorizationClientGetAccessToken = async () =>\n (await IModelApp.authorizationClient?.getAccessToken()) ?? \"\";\n\nexport const GroupingMappingContext = (props: GroupingMappingContextProps) => {\n const activeIModelConntextion = useActiveIModelConnection();\n const clientProp: IMappingsClient | ClientPrefix = props.client ?? props.prefix;\n const [mappingClient, setMappingClient] = useState<IMappingsClient>(createMappingClient(clientProp));\n const [customUIs, setCustomUIs] = useState<GroupingMappingCustomUI[]>(\n createGroupingMappingCustomUI(props.customUIs),\n );\n const [apiConfig, setApiConfig] = useState<GroupingMappingApiConfig>({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelId: props.iModelId,\n prefix: props.prefix,\n });\n const hilitedElementsQueryCache = useRef<Map<string, QueryCacheItem>>(new Map());\n const [hiddenGroupsIds, setHiddenGroupsIds] = useState<Set<string>>(new Set());\n const [showGroupColor, setShowGroupColor] = useState<boolean>(false);\n const [propertiesShowGroup, setPropertiesShowGroup] = useState<boolean>(false);\n const [groups, setGroups] = useState<Group[]>([]);\n const [groupProperties, setGroupProperties] = useState<GroupProperty[]>([]);\n const [calculatedProperties, setCalculatedProperties] = useState<CalculatedProperty[]>([]);\n const [customCalculationProperties, setCustomCalculationProperties] = useState<CustomCalculation[]>([]);\n\n useEffect(() => {\n setApiConfig(() => ({\n prefix: props.prefix,\n iModelId: props.iModelId,\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelConnection: props.iModelConnection ?? activeIModelConntextion,\n }));\n }, [activeIModelConntextion, props.getAccessToken, props.iModelConnection, props.iModelId, props.prefix]);\n\n useEffect(() => {\n setMappingClient(createMappingClient(clientProp));\n }, [clientProp]);\n\n useEffect(() => {\n setCustomUIs(createGroupingMappingCustomUI(props.customUIs));\n }, [props.customUIs]);\n\n const hilitedElementsContextValue = useMemo(\n () => ({\n showGroupColor,\n setShowGroupColor,\n hiddenGroupsIds,\n setHiddenGroupsIds,\n hilitedElementsQueryCache,\n groups,\n setGroups,\n }),\n [groups, hiddenGroupsIds, showGroupColor]\n );\n\n const propertiesContextValue = useMemo(\n () => ({\n showGroupColor: propertiesShowGroup,\n setShowGroupColor: setPropertiesShowGroup,\n groupProperties,\n setGroupProperties,\n calculatedProperties,\n setCalculatedProperties,\n customCalculationProperties,\n setCustomCalculationProperties,\n }),\n [calculatedProperties, customCalculationProperties, groupProperties, propertiesShowGroup]\n );\n\n const customUIContextValue = useMemo(() => ({\n customUIs,\n setCustomUIs,\n }), [customUIs]);\n\n return (\n <GroupingMappingApiConfigContext.Provider value={apiConfig}>\n <MappingClientContext.Provider value={mappingClient}>\n <GroupingMappingCustomUIContext.Provider value={customUIContextValue}>\n <GroupHilitedElementsContext.Provider value={hilitedElementsContextValue}>\n <PropertiesContext.Provider value={propertiesContextValue}>\n {props.children}\n </PropertiesContext.Provider>\n </GroupHilitedElementsContext.Provider>\n </GroupingMappingCustomUIContext.Provider>\n </MappingClientContext.Provider>\n </GroupingMappingApiConfigContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"GroupingMappingContext.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupingMappingContext.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport \"./GroupingMapping.scss\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport type {\n ClientPrefix,\n GetAccessTokenFn,\n GroupingMappingApiConfig,\n} from \"./context/GroupingApiConfigContext\";\nimport { GroupingMappingApiConfigContext } from \"./context/GroupingApiConfigContext\";\nimport {\n createMappingClient,\n MappingClientContext,\n} from \"./context/MappingClientContext\";\nimport type { CalculatedProperty, CustomCalculation, Group, GroupProperty, IMappingsClient } from \"@itwin/insights-client\";\nimport { createGroupingMappingCustomUI, GroupingMappingCustomUIContext } from \"./context/GroupingMappingCustomUIContext\";\nimport type { GroupingMappingCustomUI } from \"./customUI/GroupingMappingCustomUI\";\nimport type { QueryCacheItem } from \"./context/GroupHilitedElementsContext\";\nimport { GroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\nimport { PropertiesContext } from \"./context/PropertiesContext\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\n\nexport interface GroupingMappingContextProps {\n /**\n * Custom callback to retrieve access token.\n */\n getAccessToken?: GetAccessTokenFn;\n /**\n * The iTwin iModel Id.\n */\n iModelId: string;\n /**\n * Used for iTwin and iModel APIs.\n * Also used for Mapping API if a custom {@link client} is not provided.\n */\n prefix?: ClientPrefix;\n /**\n * A custom implementation of MappingClient.\n */\n client?: IMappingsClient;\n /**\n * Custom UI to add and update groups or provide additional group context capabilities.\n */\n customUIs?: GroupingMappingCustomUI[];\n /**\n * A custom iModelConnection to use instead of the active iModelConnection from UiFramework.\n */\n iModelConnection?: IModelConnection;\n children?: React.ReactNode;\n}\n\nconst authorizationClientGetAccessToken = async () =>\n (await IModelApp.authorizationClient?.getAccessToken()) ?? \"\";\n\nexport const GroupingMappingContext = (props: GroupingMappingContextProps) => {\n const activeIModelConntextion = useActiveIModelConnection();\n const clientProp: IMappingsClient | ClientPrefix = props.client ?? props.prefix;\n const [mappingClient, setMappingClient] = useState<IMappingsClient>(createMappingClient(clientProp));\n const [customUIs, setCustomUIs] = useState<GroupingMappingCustomUI[]>(\n createGroupingMappingCustomUI(props.customUIs),\n );\n const [apiConfig, setApiConfig] = useState<GroupingMappingApiConfig>({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelId: props.iModelId,\n prefix: props.prefix,\n });\n const hilitedElementsQueryCache = useRef<Map<string, QueryCacheItem>>(new Map());\n const [hiddenGroupsIds, setHiddenGroupsIds] = useState<Set<string>>(new Set());\n const [showGroupColor, setShowGroupColor] = useState<boolean>(false);\n const [propertiesShowGroup, setPropertiesShowGroup] = useState<boolean>(false);\n const [groups, setGroups] = useState<Group[]>([]);\n const [groupProperties, setGroupProperties] = useState<GroupProperty[]>([]);\n const [calculatedProperties, setCalculatedProperties] = useState<CalculatedProperty[]>([]);\n const [customCalculationProperties, setCustomCalculationProperties] = useState<CustomCalculation[]>([]);\n const [numberOfVisualizedGroups, setNumberOfVisualizedGroups] = useState(0);\n\n useEffect(() => {\n setApiConfig(() => ({\n prefix: props.prefix,\n iModelId: props.iModelId,\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n iModelConnection: props.iModelConnection ?? activeIModelConntextion,\n }));\n }, [activeIModelConntextion, props.getAccessToken, props.iModelConnection, props.iModelId, props.prefix]);\n\n useEffect(() => {\n setMappingClient(createMappingClient(clientProp));\n }, [clientProp]);\n\n useEffect(() => {\n setCustomUIs(createGroupingMappingCustomUI(props.customUIs));\n }, [props.customUIs]);\n\n const hilitedElementsContextValue = useMemo(\n () => ({\n showGroupColor,\n setShowGroupColor,\n hiddenGroupsIds,\n setHiddenGroupsIds,\n hilitedElementsQueryCache,\n groups,\n setGroups,\n numberOfVisualizedGroups,\n setNumberOfVisualizedGroups,\n }),\n [groups, hiddenGroupsIds, showGroupColor, numberOfVisualizedGroups]\n );\n\n const propertiesContextValue = useMemo(\n () => ({\n showGroupColor: propertiesShowGroup,\n setShowGroupColor: setPropertiesShowGroup,\n groupProperties,\n setGroupProperties,\n calculatedProperties,\n setCalculatedProperties,\n customCalculationProperties,\n setCustomCalculationProperties,\n }),\n [calculatedProperties, customCalculationProperties, groupProperties, propertiesShowGroup]\n );\n\n const customUIContextValue = useMemo(() => ({\n customUIs,\n setCustomUIs,\n }), [customUIs]);\n\n return (\n <GroupingMappingApiConfigContext.Provider value={apiConfig}>\n <MappingClientContext.Provider value={mappingClient}>\n <GroupingMappingCustomUIContext.Provider value={customUIContextValue}>\n <GroupHilitedElementsContext.Provider value={hilitedElementsContextValue}>\n <PropertiesContext.Provider value={propertiesContextValue}>\n {props.children}\n </PropertiesContext.Provider>\n </GroupHilitedElementsContext.Provider>\n </GroupingMappingCustomUIContext.Provider>\n </MappingClientContext.Provider>\n </GroupingMappingApiConfigContext.Provider>\n );\n};\n"]}
@@ -14,17 +14,17 @@ const CustomCalculationAction_1 = require("./CustomCalculationAction");
14
14
  const GroupAction_1 = require("./GroupAction");
15
15
  const GroupingMapping_1 = require("./GroupingMapping");
16
16
  const GroupPropertyAction_1 = require("./GroupPropertyAction");
17
- const Mapping_1 = require("./Mapping");
17
+ const Mappings_1 = require("./Mappings");
18
18
  const MappingAction_1 = require("./MappingAction");
19
19
  const CalculatedPropertyActionWithVisuals_1 = require("./CalculatedPropertyActionWithVisuals");
20
20
  const PropertyMenuWithVisualization_1 = require("./PropertyMenuWithVisualization");
21
21
  const GroupsVisualization_1 = require("./GroupsVisualization");
22
22
  const GroupingMappingRouter = ({ currentRoute, navigateTo, goBack, }) => {
23
- const { iModelId } = GroupingApiConfigContext_1.useGroupingMappingApiConfig();
23
+ const { iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
24
24
  const { mapping, group, property, calculatedProperty, customCalculation, groupContextCustomUI, queryGenerationType } = currentRoute.groupingRouteFields;
25
25
  switch (currentRoute.step) {
26
26
  case GroupingMapping_1.RouteStep.Mappings:
27
- return (react_1.default.createElement(Mapping_1.Mappings, { onClickAddMapping: () => navigateTo(() => ({ step: GroupingMapping_1.RouteStep.MappingsAction, title: "Add Mapping", groupingRouteFields: {} })), onClickMappingTitle: (mapping) => {
27
+ return (react_1.default.createElement(Mappings_1.Mappings, { onClickAddMapping: () => navigateTo(() => ({ step: GroupingMapping_1.RouteStep.MappingsAction, title: "Add Mapping", groupingRouteFields: {} })), onClickMappingTitle: (mapping) => {
28
28
  navigateTo(() => ({
29
29
  step: GroupingMapping_1.RouteStep.Groups,
30
30
  groupingRouteFields: { mapping },
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMappingRouter.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupingMappingRouter.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { useGroupingMappingApiConfig } from \"./context/GroupingApiConfigContext\";\nimport { CustomCalculationAction } from \"./CustomCalculationAction\";\nimport { GroupAction } from \"./GroupAction\";\nimport type { Route } from \"./GroupingMapping\";\nimport { RouteStep } from \"./GroupingMapping\";\nimport { GroupPropertyAction } from \"./GroupPropertyAction\";\nimport { Mappings } from \"./Mapping\";\nimport { MappingAction } from \"./MappingAction\";\nimport { CalculatedPropertyActionWithVisuals } from \"./CalculatedPropertyActionWithVisuals\";\nimport { PropertyMenuWithVisualization } from \"./PropertyMenuWithVisualization\";\nimport { GroupsVisualization } from \"./GroupsVisualization\";\n\nexport const GroupingMappingRouter = ({\n currentRoute,\n navigateTo,\n goBack,\n}: {\n currentRoute: Route;\n navigateTo: (toRoute: (prev: Route | undefined) => Route) => void;\n goBack: () => void;\n}) => {\n const { iModelId } = useGroupingMappingApiConfig();\n const { mapping, group, property, calculatedProperty, customCalculation, groupContextCustomUI, queryGenerationType } = currentRoute.groupingRouteFields;\n\n switch (currentRoute.step) {\n case RouteStep.Mappings:\n return (\n <Mappings\n onClickAddMapping={() =>\n navigateTo(() => ({ step: RouteStep.MappingsAction, title: \"Add Mapping\", groupingRouteFields: {} }))\n }\n onClickMappingTitle={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.Groups,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n onClickMappingModify={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.MappingsAction,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n />);\n case RouteStep.MappingsAction:\n return (<MappingAction mapping={mapping} onClickCancel={goBack} onSaveSuccess={goBack} />);\n case RouteStep.Groups:\n if (mapping) {\n return (\n <GroupsVisualization\n mapping={mapping}\n onClickAddGroup={(qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n groupingRouteFields: { ...prev?.groupingRouteFields, queryGenerationType: qType },\n title: \"Add Group\",\n }))\n }\n onClickGroupTitle={(g) =>\n navigateTo((prev) => ({\n step: RouteStep.Properties,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g },\n }))\n }\n onClickGroupModify={(g, qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, queryGenerationType: qType },\n }))\n }\n onClickRenderContextCustomUI={(ccUI, g, displayLabel) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupContextCustomUI,\n title: displayLabel,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, groupContextCustomUI: ccUI },\n }))\n }\n />\n );\n }\n return null;\n case RouteStep.GroupAction:\n if (mapping) {\n if (queryGenerationType) {\n return (\n <GroupAction\n shouldVisualize\n mappingId={mapping.id}\n group={group}\n onClickCancel={goBack}\n onSaveSuccess={goBack}\n queryGenerationType={queryGenerationType}\n />\n );\n }\n }\n return null;\n case RouteStep.GroupContextCustomUI:\n if (mapping && group && groupContextCustomUI) {\n return (\n React.createElement(groupContextCustomUI, {\n iModelId,\n mappingId: mapping.id,\n groupId: group.id,\n })\n );\n }\n return null;\n case RouteStep.Properties:\n if (mapping && group) {\n return (\n <PropertyMenuWithVisualization\n mapping={mapping}\n group={group}\n color=\"red\"\n onClickAddGroupProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.PropertyAction, title: \"Add Property\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyGroupProperty={(gp) =>\n navigateTo((prev) => ({ step: RouteStep.PropertyAction, title: gp.propertyName, groupingRouteFields: { ...prev?.groupingRouteFields, property: gp } }))\n }\n onClickAddCalculatedProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.CalculatedPropertyAction, title: \"Create Calculated Property\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyCalculatedProperty={(cp) =>\n navigateTo((prev) => ({ step: RouteStep.CalculatedPropertyAction, title: cp.propertyName, groupingRouteFields: { ...prev?.groupingRouteFields, calculatedProperty: cp } }))\n }\n onClickAddCustomCalculationProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.CustomCalculationPropertyAction, title: \"Create Custom Calculation\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyCustomCalculation={(cc) =>\n navigateTo((prev) => ({ step: RouteStep.CustomCalculationPropertyAction, title: cc.propertyName, groupingRouteFields: { ...prev?.groupingRouteFields, customCalculation: cc } }))\n }\n />\n );\n }\n return null;\n case RouteStep.PropertyAction: {\n if (mapping && group) {\n return (\n <GroupPropertyAction\n mappingId={mapping.id}\n group={group}\n groupProperty={property}\n onSaveSuccess={goBack}\n onClickCancel={goBack}\n />\n );\n }\n return null;\n }\n case RouteStep.CalculatedPropertyAction: {\n if (mapping && group) {\n return (\n <CalculatedPropertyActionWithVisuals\n mappingId={mapping.id}\n group={group}\n calculatedProperty={calculatedProperty}\n onSaveSuccess={goBack}\n onClickCancel={goBack}\n />\n );\n }\n return null;\n }\n case RouteStep.CustomCalculationPropertyAction: {\n if (mapping && group) {\n return (\n <CustomCalculationAction\n mappingId={mapping.id}\n groupId={group.id}\n customCalculation={customCalculation}\n onSaveSuccess={goBack}\n onClickCancel={goBack}\n />\n );\n }\n return null;\n }\n default:\n return null;\n }\n};\n"]}
1
+ {"version":3,"file":"GroupingMappingRouter.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupingMappingRouter.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { useGroupingMappingApiConfig } from \"./context/GroupingApiConfigContext\";\nimport { CustomCalculationAction } from \"./CustomCalculationAction\";\nimport { GroupAction } from \"./GroupAction\";\nimport type { Route } from \"./GroupingMapping\";\nimport { RouteStep } from \"./GroupingMapping\";\nimport { GroupPropertyAction } from \"./GroupPropertyAction\";\nimport { Mappings } from \"./Mappings\";\nimport { MappingAction } from \"./MappingAction\";\nimport { CalculatedPropertyActionWithVisuals } from \"./CalculatedPropertyActionWithVisuals\";\nimport { PropertyMenuWithVisualization } from \"./PropertyMenuWithVisualization\";\nimport { GroupsVisualization } from \"./GroupsVisualization\";\n\nexport const GroupingMappingRouter = ({\n currentRoute,\n navigateTo,\n goBack,\n}: {\n currentRoute: Route;\n navigateTo: (toRoute: (prev: Route | undefined) => Route) => void;\n goBack: () => void;\n}) => {\n const { iModelId } = useGroupingMappingApiConfig();\n const { mapping, group, property, calculatedProperty, customCalculation, groupContextCustomUI, queryGenerationType } = currentRoute.groupingRouteFields;\n\n switch (currentRoute.step) {\n case RouteStep.Mappings:\n return (\n <Mappings\n onClickAddMapping={() =>\n navigateTo(() => ({ step: RouteStep.MappingsAction, title: \"Add Mapping\", groupingRouteFields: {} }))\n }\n onClickMappingTitle={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.Groups,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n onClickMappingModify={(mapping) => {\n navigateTo(() => ({\n step: RouteStep.MappingsAction,\n groupingRouteFields: { mapping },\n title: mapping.mappingName,\n }));\n }}\n />);\n case RouteStep.MappingsAction:\n return (<MappingAction mapping={mapping} onClickCancel={goBack} onSaveSuccess={goBack} />);\n case RouteStep.Groups:\n if (mapping) {\n return (\n <GroupsVisualization\n mapping={mapping}\n onClickAddGroup={(qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n groupingRouteFields: { ...prev?.groupingRouteFields, queryGenerationType: qType },\n title: \"Add Group\",\n }))\n }\n onClickGroupTitle={(g) =>\n navigateTo((prev) => ({\n step: RouteStep.Properties,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g },\n }))\n }\n onClickGroupModify={(g, qType) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupAction,\n title: g.groupName,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, queryGenerationType: qType },\n }))\n }\n onClickRenderContextCustomUI={(ccUI, g, displayLabel) =>\n navigateTo((prev) => ({\n step: RouteStep.GroupContextCustomUI,\n title: displayLabel,\n groupingRouteFields: { ...prev?.groupingRouteFields, group: g, groupContextCustomUI: ccUI },\n }))\n }\n />\n );\n }\n return null;\n case RouteStep.GroupAction:\n if (mapping) {\n if (queryGenerationType) {\n return (\n <GroupAction\n shouldVisualize\n mappingId={mapping.id}\n group={group}\n onClickCancel={goBack}\n onSaveSuccess={goBack}\n queryGenerationType={queryGenerationType}\n />\n );\n }\n }\n return null;\n case RouteStep.GroupContextCustomUI:\n if (mapping && group && groupContextCustomUI) {\n return (\n React.createElement(groupContextCustomUI, {\n iModelId,\n mappingId: mapping.id,\n groupId: group.id,\n })\n );\n }\n return null;\n case RouteStep.Properties:\n if (mapping && group) {\n return (\n <PropertyMenuWithVisualization\n mapping={mapping}\n group={group}\n color=\"red\"\n onClickAddGroupProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.PropertyAction, title: \"Add Property\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyGroupProperty={(gp) =>\n navigateTo((prev) => ({ step: RouteStep.PropertyAction, title: gp.propertyName, groupingRouteFields: { ...prev?.groupingRouteFields, property: gp } }))\n }\n onClickAddCalculatedProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.CalculatedPropertyAction, title: \"Create Calculated Property\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyCalculatedProperty={(cp) =>\n navigateTo((prev) => ({ step: RouteStep.CalculatedPropertyAction, title: cp.propertyName, groupingRouteFields: { ...prev?.groupingRouteFields, calculatedProperty: cp } }))\n }\n onClickAddCustomCalculationProperty={() =>\n navigateTo((prev) => ({ step: RouteStep.CustomCalculationPropertyAction, title: \"Create Custom Calculation\", groupingRouteFields: { ...prev?.groupingRouteFields } }))\n }\n onClickModifyCustomCalculation={(cc) =>\n navigateTo((prev) => ({ step: RouteStep.CustomCalculationPropertyAction, title: cc.propertyName, groupingRouteFields: { ...prev?.groupingRouteFields, customCalculation: cc } }))\n }\n />\n );\n }\n return null;\n case RouteStep.PropertyAction: {\n if (mapping && group) {\n return (\n <GroupPropertyAction\n mappingId={mapping.id}\n group={group}\n groupProperty={property}\n onSaveSuccess={goBack}\n onClickCancel={goBack}\n />\n );\n }\n return null;\n }\n case RouteStep.CalculatedPropertyAction: {\n if (mapping && group) {\n return (\n <CalculatedPropertyActionWithVisuals\n mappingId={mapping.id}\n group={group}\n calculatedProperty={calculatedProperty}\n onSaveSuccess={goBack}\n onClickCancel={goBack}\n />\n );\n }\n return null;\n }\n case RouteStep.CustomCalculationPropertyAction: {\n if (mapping && group) {\n return (\n <CustomCalculationAction\n mappingId={mapping.id}\n groupId={group.id}\n customCalculation={customCalculation}\n onSaveSuccess={goBack}\n onClickCancel={goBack}\n />\n );\n }\n return null;\n }\n default:\n return null;\n }\n};\n"]}
@@ -25,9 +25,9 @@ const itwinui_react_1 = require("@itwin/itwinui-react");
25
25
  const react_1 = __importStar(require("react"));
26
26
  const GroupHilitedElementsContext_1 = require("./context/GroupHilitedElementsContext");
27
27
  const GroupsShowHideButtons = ({ group, isLoadingQuery, showGroup, hideGroup, }) => {
28
- const { hiddenGroupsIds, setHiddenGroupsIds } = GroupHilitedElementsContext_1.useGroupHilitedElementsContext();
29
- const isGroupHidden = react_1.useMemo(() => group.id && hiddenGroupsIds.has(group.id), [group.id, hiddenGroupsIds]);
30
- const toggleGroupVisibility = react_1.useCallback(async () => {
28
+ const { hiddenGroupsIds, setHiddenGroupsIds } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
29
+ const isGroupHidden = (0, react_1.useMemo)(() => group.id && hiddenGroupsIds.has(group.id), [group.id, hiddenGroupsIds]);
30
+ const toggleGroupVisibility = (0, react_1.useCallback)(async () => {
31
31
  if (isGroupHidden) {
32
32
  await showGroup(group);
33
33
  setHiddenGroupsIds(new Set([...hiddenGroupsIds].filter((id) => group.id !== id)));
@@ -1 +1 @@
1
- {"version":3,"file":"GroupsShowHideButtons.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupsShowHideButtons.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,oEAAkF;AAClF,wDAAkD;AAClD,+CAAoD;AACpD,uFAAuF;AAShF,MAAM,qBAAqB,GAAG,CAAC,EACpC,KAAK,EACL,cAAc,EACd,SAAS,EACT,SAAS,GACkB,EAAE,EAAE;IAC/B,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,4DAA8B,EAAE,CAAC;IACjF,MAAM,aAAa,GAAG,eAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5G,MAAM,qBAAqB,GAAG,mBAAW,CAAC,KAAK,IAAI,EAAE;QACnD,IAAI,aAAa,EAAE;YACjB,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SACnF;aAAM;YACL,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,KAAK,CAAC,EAAE,EAAE;gBACZ,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC7D;SACF;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtF,OAAO,CACL,8BAAC,0BAAU,IACT,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAC,yBAAyB,IAE9B,aAAa,CAAC,CAAC,CAAC,8BAAC,uCAAiB,OAAG,CAAC,CAAC,CAAC,8BAAC,uCAAiB,OAAG,CACnD,CACd,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,qBAAqB,yBA+BhC","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 { Group } from \"@itwin/insights-client\";\nimport { SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { useGroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\n\ninterface GroupsShowHideButtonsProps {\n group: Group;\n isLoadingQuery: boolean;\n showGroup: (group: Group) => Promise<void>;\n hideGroup: (group: Group) => Promise<void>;\n}\n\nexport const GroupsShowHideButtons = ({\n group,\n isLoadingQuery,\n showGroup,\n hideGroup,\n}: GroupsShowHideButtonsProps) => {\n const { hiddenGroupsIds, setHiddenGroupsIds } = useGroupHilitedElementsContext();\n const isGroupHidden = useMemo(() => group.id && hiddenGroupsIds.has(group.id), [group.id, hiddenGroupsIds]);\n\n const toggleGroupVisibility = useCallback(async () => {\n if (isGroupHidden) {\n await showGroup(group);\n setHiddenGroupsIds(new Set([...hiddenGroupsIds].filter((id) => group.id !== id)));\n } else {\n await hideGroup(group);\n if (group.id) {\n setHiddenGroupsIds(new Set([...hiddenGroupsIds, group.id]));\n }\n }\n }, [group, hiddenGroupsIds, hideGroup, isGroupHidden, setHiddenGroupsIds, showGroup]);\n\n return (\n <IconButton\n disabled={isLoadingQuery}\n styleType=\"borderless\"\n onClick={toggleGroupVisibility}\n title='Toggle Group Visibility'\n >\n {isGroupHidden ? <SvgVisibilityHide /> : <SvgVisibilityShow />}\n </IconButton>\n );\n};\n"]}
1
+ {"version":3,"file":"GroupsShowHideButtons.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupsShowHideButtons.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAKA,oEAAkF;AAClF,wDAAkD;AAClD,+CAAoD;AACpD,uFAAuF;AAShF,MAAM,qBAAqB,GAAG,CAAC,EACpC,KAAK,EACL,cAAc,EACd,SAAS,EACT,SAAS,GACkB,EAAE,EAAE;IAC/B,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,IAAA,4DAA8B,GAAE,CAAC;IACjF,MAAM,aAAa,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5G,MAAM,qBAAqB,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QACnD,IAAI,aAAa,EAAE;YACjB,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;SACnF;aAAM;YACL,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,KAAK,CAAC,EAAE,EAAE;gBACZ,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC7D;SACF;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtF,OAAO,CACL,8BAAC,0BAAU,IACT,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,YAAY,EACtB,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAC,yBAAyB,IAE9B,aAAa,CAAC,CAAC,CAAC,8BAAC,uCAAiB,OAAG,CAAC,CAAC,CAAC,8BAAC,uCAAiB,OAAG,CACnD,CACd,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,qBAAqB,yBA+BhC","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 { Group } from \"@itwin/insights-client\";\nimport { SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { useGroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\n\ninterface GroupsShowHideButtonsProps {\n group: Group;\n isLoadingQuery: boolean;\n showGroup: (group: Group) => Promise<void>;\n hideGroup: (group: Group) => Promise<void>;\n}\n\nexport const GroupsShowHideButtons = ({\n group,\n isLoadingQuery,\n showGroup,\n hideGroup,\n}: GroupsShowHideButtonsProps) => {\n const { hiddenGroupsIds, setHiddenGroupsIds } = useGroupHilitedElementsContext();\n const isGroupHidden = useMemo(() => group.id && hiddenGroupsIds.has(group.id), [group.id, hiddenGroupsIds]);\n\n const toggleGroupVisibility = useCallback(async () => {\n if (isGroupHidden) {\n await showGroup(group);\n setHiddenGroupsIds(new Set([...hiddenGroupsIds].filter((id) => group.id !== id)));\n } else {\n await hideGroup(group);\n if (group.id) {\n setHiddenGroupsIds(new Set([...hiddenGroupsIds, group.id]));\n }\n }\n }, [group, hiddenGroupsIds, hideGroup, isGroupHidden, setHiddenGroupsIds, showGroup]);\n\n return (\n <IconButton\n disabled={isLoadingQuery}\n styleType=\"borderless\"\n onClick={toggleGroupVisibility}\n title='Toggle Group Visibility'\n >\n {isGroupHidden ? <SvgVisibilityHide /> : <SvgVisibilityShow />}\n </IconButton>\n );\n};\n"]}
@@ -31,21 +31,26 @@ const GroupsShowHideButtons_1 = require("./GroupsShowHideButtons");
31
31
  require("./GroupsVisualization.scss");
32
32
  const GroupingApiConfigContext_1 = require("./context/GroupingApiConfigContext");
33
33
  const GroupsVisualization = ({ emphasizeElements = true, isNonEmphasizedSelectable = false, onClickGroupModify, onClickAddGroup, ...rest }) => {
34
- const { iModelConnection } = GroupingApiConfigContext_1.useGroupingMappingApiConfig();
34
+ const { iModelConnection } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
35
35
  if (!iModelConnection) {
36
36
  throw new Error("This component requires an active iModelConnection.");
37
37
  }
38
- const [isLoadingQuery, setLoadingQuery] = react_1.useState(false);
39
- const { hilitedElementsQueryCache, groups, hiddenGroupsIds, showGroupColor, setHiddenGroupsIds, } = GroupHilitedElementsContext_1.useGroupHilitedElementsContext();
40
- const getHiliteIdsFromGroupsWrapper = react_1.useCallback(async (groups) => iModelConnection
41
- ? groupsHelpers_1.getHiliteIdsFromGroups(iModelConnection, groups, hilitedElementsQueryCache)
38
+ const firstUpdate = (0, react_1.useRef)(true);
39
+ const [isLoadingQuery, setLoadingQuery] = (0, react_1.useState)(false);
40
+ const [isVisualizing, setIsVisualizing] = (0, react_1.useState)(false);
41
+ const { hilitedElementsQueryCache, groups, hiddenGroupsIds, showGroupColor, setHiddenGroupsIds, setNumberOfVisualizedGroups, } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
42
+ const getHiliteIdsFromGroupsWrapper = (0, react_1.useCallback)(async (groups) => iModelConnection
43
+ ? (0, groupsHelpers_1.getHiliteIdsFromGroups)(iModelConnection, groups, hilitedElementsQueryCache)
42
44
  : [], [iModelConnection, hilitedElementsQueryCache]);
43
- const visualizeGroupColorsWrapper = react_1.useCallback(async () => {
45
+ const visualizeGroupColorsWrapper = (0, react_1.useCallback)(async () => {
46
+ setIsVisualizing(true);
44
47
  setLoadingQuery(true);
45
48
  const groupsCopy = [...groups];
46
- await groupsHelpers_1.visualizeGroupColors(iModelConnection, groupsCopy, hiddenGroupsIds, hilitedElementsQueryCache, emphasizeElements);
47
- isNonEmphasizedSelectable && viewerUtils_1.clearEmphasizedElements();
49
+ await (0, groupsHelpers_1.visualizeGroupColors)(iModelConnection, groupsCopy, hiddenGroupsIds, hilitedElementsQueryCache, setNumberOfVisualizedGroups, emphasizeElements);
50
+ isNonEmphasizedSelectable && (0, viewerUtils_1.clearEmphasizedElements)();
48
51
  setLoadingQuery(false);
52
+ setIsVisualizing(false);
53
+ setNumberOfVisualizedGroups(0);
49
54
  }, [
50
55
  iModelConnection,
51
56
  groups,
@@ -53,30 +58,35 @@ const GroupsVisualization = ({ emphasizeElements = true, isNonEmphasizedSelectab
53
58
  hilitedElementsQueryCache,
54
59
  emphasizeElements,
55
60
  isNonEmphasizedSelectable,
61
+ setNumberOfVisualizedGroups,
56
62
  ]);
57
- react_1.useEffect(() => {
63
+ (0, react_1.useEffect)(() => {
58
64
  const visualize = async () => {
65
+ if (firstUpdate.current) {
66
+ firstUpdate.current = false;
67
+ return;
68
+ }
59
69
  if (groups.length > 0 && showGroupColor) {
60
70
  await visualizeGroupColorsWrapper();
61
71
  }
62
72
  else {
63
- viewerUtils_1.clearEmphasizedOverriddenElements();
73
+ (0, viewerUtils_1.clearEmphasizedOverriddenElements)();
64
74
  }
65
75
  };
66
76
  void visualize();
67
77
  }, [groups, showGroupColor, visualizeGroupColorsWrapper]);
68
- const hideAllGroups = react_1.useCallback(async () => {
78
+ const hideAllGroups = (0, react_1.useCallback)(async () => {
69
79
  setLoadingQuery(true);
70
- await groupsHelpers_1.hideGroups(iModelConnection, groups, hilitedElementsQueryCache);
80
+ await (0, groupsHelpers_1.hideGroups)(iModelConnection, groups, hilitedElementsQueryCache);
71
81
  setLoadingQuery(false);
72
82
  }, [groups, hilitedElementsQueryCache, iModelConnection]);
73
- const hideSingleGroupWrapper = react_1.useCallback(async (group) => {
83
+ const hideSingleGroupWrapper = (0, react_1.useCallback)(async (group) => {
74
84
  setLoadingQuery(true);
75
- await groupsHelpers_1.hideGroup(iModelConnection, group, hilitedElementsQueryCache);
85
+ await (0, groupsHelpers_1.hideGroup)(iModelConnection, group, hilitedElementsQueryCache);
76
86
  setLoadingQuery(false);
77
87
  }, [hilitedElementsQueryCache, iModelConnection]);
78
- const showGroup = react_1.useCallback(async (viewGroup) => {
79
- viewerUtils_1.clearHiddenElements();
88
+ const showGroup = (0, react_1.useCallback)(async (viewGroup) => {
89
+ (0, viewerUtils_1.clearHiddenElements)();
80
90
  // hide group Ids filter
81
91
  const newHiddenGroups = groups.filter((g) => hiddenGroupsIds.has(g.id) && g.id !== viewGroup.id);
82
92
  // view group Ids filter
@@ -84,50 +94,50 @@ const GroupsVisualization = ({ emphasizeElements = true, isNonEmphasizedSelectab
84
94
  const viewIds = await getHiliteIdsFromGroupsWrapper(viewGroups);
85
95
  let hiddenIds = await getHiliteIdsFromGroupsWrapper(newHiddenGroups);
86
96
  hiddenIds = hiddenIds.filter((id) => !viewIds.includes(id));
87
- viewerUtils_1.hideElements(hiddenIds);
97
+ (0, viewerUtils_1.hideElements)(hiddenIds);
88
98
  }, [groups, hiddenGroupsIds, getHiliteIdsFromGroupsWrapper]);
89
- const showAll = react_1.useCallback(async () => {
99
+ const showAll = (0, react_1.useCallback)(async () => {
90
100
  setLoadingQuery(true);
91
- viewerUtils_1.clearHiddenElements();
101
+ (0, viewerUtils_1.clearHiddenElements)();
92
102
  setHiddenGroupsIds(new Set());
93
103
  const allIds = await getHiliteIdsFromGroupsWrapper(groups);
94
- await viewerUtils_1.zoomToElements(allIds);
104
+ await (0, viewerUtils_1.zoomToElements)(allIds);
95
105
  setLoadingQuery(false);
96
106
  }, [getHiliteIdsFromGroupsWrapper, groups, setHiddenGroupsIds]);
97
- const hideAll = react_1.useCallback(async () => {
107
+ const hideAll = (0, react_1.useCallback)(async () => {
98
108
  await hideAllGroups();
99
109
  setHiddenGroupsIds(new Set(groups.map((g) => g.id)));
100
110
  const allIds = await getHiliteIdsFromGroupsWrapper(groups);
101
- await viewerUtils_1.zoomToElements(allIds);
111
+ await (0, viewerUtils_1.zoomToElements)(allIds);
102
112
  }, [
103
113
  setHiddenGroupsIds,
104
114
  groups,
105
115
  hideAllGroups,
106
116
  getHiliteIdsFromGroupsWrapper,
107
117
  ]);
108
- const onModify = react_1.useCallback(async (group, type) => {
118
+ const onModify = (0, react_1.useCallback)(async (group, type) => {
109
119
  if (!onClickGroupModify)
110
120
  return;
111
121
  if (group.id && hiddenGroupsIds.has(group.id)) {
112
122
  await showGroup(group);
113
123
  setHiddenGroupsIds(new Set([...hiddenGroupsIds].filter((id) => id !== group.id)));
114
124
  }
115
- viewerUtils_1.clearEmphasizedElements();
125
+ (0, viewerUtils_1.clearEmphasizedElements)();
116
126
  onClickGroupModify(group, type);
117
127
  }, [hiddenGroupsIds, onClickGroupModify, setHiddenGroupsIds, showGroup]);
118
- const onAddGroup = react_1.useCallback((type) => {
128
+ const onAddGroup = (0, react_1.useCallback)((type) => {
119
129
  if (!onClickAddGroup)
120
130
  return;
121
131
  onClickAddGroup(type);
122
- viewerUtils_1.clearEmphasizedElements();
132
+ (0, viewerUtils_1.clearEmphasizedElements)();
123
133
  }, [onClickAddGroup]);
124
- const groupActionButtonRenderers = react_1.useMemo(() => [
134
+ const groupActionButtonRenderers = (0, react_1.useMemo)(() => [
125
135
  (props) => showGroupColor ? react_1.default.createElement(GroupColorLegend_1.GroupColorLegend, { ...props, groups: groups }) : [],
126
136
  (props) => (react_1.default.createElement(GroupsShowHideButtons_1.GroupsShowHideButtons, { ...props, isLoadingQuery: isLoadingQuery, showGroup: showGroup, hideGroup: hideSingleGroupWrapper })),
127
137
  ].flat(), [groups, hideSingleGroupWrapper, isLoadingQuery, showGroup, showGroupColor]);
128
138
  return (react_1.default.createElement("div", { className: "gmw-groups-vis-container" },
129
139
  react_1.default.createElement(GroupsVisualizationActions_1.GroupVisualizationActions, { isLoadingQuery: isLoadingQuery, showAll: showAll, hideAll: hideAll }),
130
- react_1.default.createElement(Grouping_1.Groupings, { onClickGroupModify: onModify, onClickAddGroup: onAddGroup, actionButtonRenderers: groupActionButtonRenderers, ...rest, disableActions: isLoadingQuery })));
140
+ react_1.default.createElement(Grouping_1.Groupings, { onClickGroupModify: onModify, onClickAddGroup: onAddGroup, actionButtonRenderers: groupActionButtonRenderers, ...rest, disableActions: isLoadingQuery, isVisualizing: isVisualizing })));
131
141
  };
132
142
  exports.GroupsVisualization = GroupsVisualization;
133
143
  //# sourceMappingURL=GroupsVisualization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupsVisualization.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupsVisualization.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { Group } from \"@itwin/insights-client\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useGroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\nimport {\n getHiliteIdsFromGroups,\n hideGroup,\n hideGroups,\n visualizeGroupColors,\n} from \"./groupsHelpers\";\nimport {\n clearEmphasizedElements,\n clearEmphasizedOverriddenElements,\n clearHiddenElements,\n hideElements,\n zoomToElements,\n} from \"./viewerUtils\";\nimport type { ActionButtonRenderer, ActionButtonRendererProps, GroupingProps } from \"./Grouping\";\nimport { Groupings } from \"./Grouping\";\nimport { GroupColorLegend } from \"./GroupColorLegend\";\nimport { GroupVisualizationActions } from \"./GroupsVisualizationActions\";\nimport { GroupsShowHideButtons } from \"./GroupsShowHideButtons\";\nimport \"./GroupsVisualization.scss\";\nimport { useGroupingMappingApiConfig } from \"./context/GroupingApiConfigContext\";\n\nexport interface GroupsVisualizationProps extends GroupingProps {\n isNonEmphasizedSelectable?: boolean;\n emphasizeElements?: boolean;\n}\n\nexport const GroupsVisualization = ({\n emphasizeElements = true,\n isNonEmphasizedSelectable = false,\n onClickGroupModify,\n onClickAddGroup,\n ...rest\n}: GroupsVisualizationProps) => {\n const { iModelConnection } = useGroupingMappingApiConfig();\n if (!iModelConnection) {\n throw new Error(\"This component requires an active iModelConnection.\");\n }\n const [isLoadingQuery, setLoadingQuery] = useState<boolean>(false);\n const {\n hilitedElementsQueryCache,\n groups,\n hiddenGroupsIds,\n showGroupColor,\n setHiddenGroupsIds,\n } = useGroupHilitedElementsContext();\n\n const getHiliteIdsFromGroupsWrapper = useCallback(\n async (groups: Group[]): Promise<string[]> =>\n iModelConnection\n ? getHiliteIdsFromGroups(\n iModelConnection,\n groups,\n hilitedElementsQueryCache\n )\n : [],\n [iModelConnection, hilitedElementsQueryCache]\n );\n\n const visualizeGroupColorsWrapper = useCallback(\n async () => {\n setLoadingQuery(true);\n const groupsCopy = [...groups];\n await visualizeGroupColors(\n iModelConnection,\n groupsCopy,\n hiddenGroupsIds,\n hilitedElementsQueryCache,\n emphasizeElements\n );\n isNonEmphasizedSelectable && clearEmphasizedElements();\n setLoadingQuery(false);\n },\n [\n iModelConnection,\n groups,\n hiddenGroupsIds,\n hilitedElementsQueryCache,\n emphasizeElements,\n isNonEmphasizedSelectable,\n ]\n );\n\n useEffect(() => {\n const visualize = async () => {\n if (groups.length > 0 && showGroupColor) {\n await visualizeGroupColorsWrapper();\n } else {\n clearEmphasizedOverriddenElements();\n }\n };\n void visualize();\n }, [groups, showGroupColor, visualizeGroupColorsWrapper]);\n\n const hideAllGroups = useCallback(\n async () => {\n setLoadingQuery(true);\n await hideGroups(iModelConnection, groups, hilitedElementsQueryCache);\n setLoadingQuery(false);\n },\n [groups, hilitedElementsQueryCache, iModelConnection]\n );\n\n const hideSingleGroupWrapper = useCallback(\n async (group: Group) => {\n setLoadingQuery(true);\n await hideGroup(iModelConnection, group, hilitedElementsQueryCache);\n setLoadingQuery(false);\n },\n [hilitedElementsQueryCache, iModelConnection]\n );\n\n const showGroup = useCallback(\n async (viewGroup: Group) => {\n clearHiddenElements();\n\n // hide group Ids filter\n const newHiddenGroups: Group[] = groups.filter((g) => hiddenGroupsIds.has(g.id) && g.id !== viewGroup.id);\n\n // view group Ids filter\n const viewGroups = groups.filter((g) => !hiddenGroupsIds.has(g.id) || g.id === viewGroup.id);\n const viewIds = await getHiliteIdsFromGroupsWrapper(viewGroups);\n\n let hiddenIds = await getHiliteIdsFromGroupsWrapper(newHiddenGroups);\n hiddenIds = hiddenIds.filter((id) => !viewIds.includes(id));\n hideElements(hiddenIds);\n },\n [groups, hiddenGroupsIds, getHiliteIdsFromGroupsWrapper]\n );\n\n const showAll = useCallback(async () => {\n setLoadingQuery(true);\n\n clearHiddenElements();\n setHiddenGroupsIds(new Set());\n const allIds = await getHiliteIdsFromGroupsWrapper(groups);\n await zoomToElements(allIds);\n\n setLoadingQuery(false);\n }, [getHiliteIdsFromGroupsWrapper, groups, setHiddenGroupsIds]);\n\n const hideAll = useCallback(async () => {\n await hideAllGroups();\n setHiddenGroupsIds(\n new Set(groups.map((g) => g.id))\n );\n const allIds = await getHiliteIdsFromGroupsWrapper(groups);\n await zoomToElements(allIds);\n }, [\n setHiddenGroupsIds,\n groups,\n hideAllGroups,\n getHiliteIdsFromGroupsWrapper,\n ]);\n\n const onModify = useCallback(\n async (group: Group, type: string) => {\n if (!onClickGroupModify) return;\n if (group.id && hiddenGroupsIds.has(group.id)) {\n await showGroup(group);\n setHiddenGroupsIds(new Set([...hiddenGroupsIds].filter((id) => id !== group.id)));\n }\n clearEmphasizedElements();\n onClickGroupModify(group, type);\n },\n [hiddenGroupsIds, onClickGroupModify, setHiddenGroupsIds, showGroup]\n );\n\n const onAddGroup = useCallback(\n (type: string) => {\n if (!onClickAddGroup) return;\n onClickAddGroup(type);\n clearEmphasizedElements();\n },\n [onClickAddGroup]\n );\n\n const groupActionButtonRenderers: ActionButtonRenderer[] = useMemo(() => [\n (props: ActionButtonRendererProps) =>\n showGroupColor ? <GroupColorLegend {...props} groups={groups} /> : [],\n (props: ActionButtonRendererProps) => (\n <GroupsShowHideButtons\n {...props}\n isLoadingQuery={isLoadingQuery}\n showGroup={showGroup}\n hideGroup={hideSingleGroupWrapper}\n />\n ),\n ].flat(), [groups, hideSingleGroupWrapper, isLoadingQuery, showGroup, showGroupColor]);\n\n return (\n <div className=\"gmw-groups-vis-container\">\n <GroupVisualizationActions\n isLoadingQuery={isLoadingQuery}\n showAll={showAll}\n hideAll={hideAll}\n />\n <Groupings\n onClickGroupModify={onModify}\n onClickAddGroup={onAddGroup}\n actionButtonRenderers={groupActionButtonRenderers}\n {...rest}\n disableActions={isLoadingQuery}\n />\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"GroupsVisualization.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupsVisualization.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { Group } from \"@itwin/insights-client\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useGroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\nimport {\n getHiliteIdsFromGroups,\n hideGroup,\n hideGroups,\n visualizeGroupColors,\n} from \"./groupsHelpers\";\nimport {\n clearEmphasizedElements,\n clearEmphasizedOverriddenElements,\n clearHiddenElements,\n hideElements,\n zoomToElements,\n} from \"./viewerUtils\";\nimport type { ActionButtonRenderer, ActionButtonRendererProps, GroupingProps } from \"./Grouping\";\nimport { Groupings } from \"./Grouping\";\nimport { GroupColorLegend } from \"./GroupColorLegend\";\nimport { GroupVisualizationActions } from \"./GroupsVisualizationActions\";\nimport { GroupsShowHideButtons } from \"./GroupsShowHideButtons\";\nimport \"./GroupsVisualization.scss\";\nimport { useGroupingMappingApiConfig } from \"./context/GroupingApiConfigContext\";\n\nexport interface GroupsVisualizationProps extends GroupingProps {\n isNonEmphasizedSelectable?: boolean;\n emphasizeElements?: boolean;\n}\n\nexport const GroupsVisualization = ({\n emphasizeElements = true,\n isNonEmphasizedSelectable = false,\n onClickGroupModify,\n onClickAddGroup,\n ...rest\n}: GroupsVisualizationProps) => {\n const { iModelConnection } = useGroupingMappingApiConfig();\n if (!iModelConnection) {\n throw new Error(\"This component requires an active iModelConnection.\");\n }\n const firstUpdate = useRef(true);\n const [isLoadingQuery, setLoadingQuery] = useState<boolean>(false);\n const [isVisualizing, setIsVisualizing] =useState<boolean>(false);\n const {\n hilitedElementsQueryCache,\n groups,\n hiddenGroupsIds,\n showGroupColor,\n setHiddenGroupsIds,\n setNumberOfVisualizedGroups,\n } = useGroupHilitedElementsContext();\n\n const getHiliteIdsFromGroupsWrapper = useCallback(\n async (groups: Group[]): Promise<string[]> =>\n iModelConnection\n ? getHiliteIdsFromGroups(\n iModelConnection,\n groups,\n hilitedElementsQueryCache\n )\n : [],\n [iModelConnection, hilitedElementsQueryCache]\n );\n\n const visualizeGroupColorsWrapper = useCallback(\n async () => {\n setIsVisualizing(true);\n setLoadingQuery(true);\n const groupsCopy = [...groups];\n await visualizeGroupColors(\n iModelConnection,\n groupsCopy,\n hiddenGroupsIds,\n hilitedElementsQueryCache,\n setNumberOfVisualizedGroups,\n emphasizeElements,\n );\n isNonEmphasizedSelectable && clearEmphasizedElements();\n setLoadingQuery(false);\n setIsVisualizing(false);\n setNumberOfVisualizedGroups(0);\n },\n [\n iModelConnection,\n groups,\n hiddenGroupsIds,\n hilitedElementsQueryCache,\n emphasizeElements,\n isNonEmphasizedSelectable,\n setNumberOfVisualizedGroups,\n ]\n );\n\n useEffect(() => {\n const visualize = async () => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n if (groups.length > 0 && showGroupColor) {\n await visualizeGroupColorsWrapper();\n } else {\n clearEmphasizedOverriddenElements();\n }\n };\n void visualize();\n }, [groups, showGroupColor, visualizeGroupColorsWrapper]);\n\n const hideAllGroups = useCallback(\n async () => {\n setLoadingQuery(true);\n await hideGroups(iModelConnection, groups, hilitedElementsQueryCache);\n setLoadingQuery(false);\n },\n [groups, hilitedElementsQueryCache, iModelConnection]\n );\n\n const hideSingleGroupWrapper = useCallback(\n async (group: Group) => {\n setLoadingQuery(true);\n await hideGroup(iModelConnection, group, hilitedElementsQueryCache);\n setLoadingQuery(false);\n },\n [hilitedElementsQueryCache, iModelConnection]\n );\n\n const showGroup = useCallback(\n async (viewGroup: Group) => {\n clearHiddenElements();\n\n // hide group Ids filter\n const newHiddenGroups: Group[] = groups.filter((g) => hiddenGroupsIds.has(g.id) && g.id !== viewGroup.id);\n\n // view group Ids filter\n const viewGroups = groups.filter((g) => !hiddenGroupsIds.has(g.id) || g.id === viewGroup.id);\n const viewIds = await getHiliteIdsFromGroupsWrapper(viewGroups);\n\n let hiddenIds = await getHiliteIdsFromGroupsWrapper(newHiddenGroups);\n hiddenIds = hiddenIds.filter((id) => !viewIds.includes(id));\n hideElements(hiddenIds);\n },\n [groups, hiddenGroupsIds, getHiliteIdsFromGroupsWrapper]\n );\n\n const showAll = useCallback(async () => {\n setLoadingQuery(true);\n\n clearHiddenElements();\n setHiddenGroupsIds(new Set());\n const allIds = await getHiliteIdsFromGroupsWrapper(groups);\n await zoomToElements(allIds);\n\n setLoadingQuery(false);\n }, [getHiliteIdsFromGroupsWrapper, groups, setHiddenGroupsIds]);\n\n const hideAll = useCallback(async () => {\n await hideAllGroups();\n setHiddenGroupsIds(\n new Set(groups.map((g) => g.id))\n );\n const allIds = await getHiliteIdsFromGroupsWrapper(groups);\n await zoomToElements(allIds);\n }, [\n setHiddenGroupsIds,\n groups,\n hideAllGroups,\n getHiliteIdsFromGroupsWrapper,\n ]);\n\n const onModify = useCallback(\n async (group: Group, type: string) => {\n if (!onClickGroupModify) return;\n if (group.id && hiddenGroupsIds.has(group.id)) {\n await showGroup(group);\n setHiddenGroupsIds(new Set([...hiddenGroupsIds].filter((id) => id !== group.id)));\n }\n clearEmphasizedElements();\n onClickGroupModify(group, type);\n },\n [hiddenGroupsIds, onClickGroupModify, setHiddenGroupsIds, showGroup]\n );\n\n const onAddGroup = useCallback(\n (type: string) => {\n if (!onClickAddGroup) return;\n onClickAddGroup(type);\n clearEmphasizedElements();\n },\n [onClickAddGroup]\n );\n\n const groupActionButtonRenderers: ActionButtonRenderer[] = useMemo(() => [\n (props: ActionButtonRendererProps) =>\n showGroupColor ? <GroupColorLegend {...props} groups={groups} /> : [],\n (props: ActionButtonRendererProps) => (\n <GroupsShowHideButtons\n {...props}\n isLoadingQuery={isLoadingQuery}\n showGroup={showGroup}\n hideGroup={hideSingleGroupWrapper}\n />\n ),\n ].flat(), [groups, hideSingleGroupWrapper, isLoadingQuery, showGroup, showGroupColor]);\n\n return (\n <div className=\"gmw-groups-vis-container\">\n <GroupVisualizationActions\n isLoadingQuery={isLoadingQuery}\n showAll={showAll}\n hideAll={hideAll}\n />\n <Groupings\n onClickGroupModify={onModify}\n onClickAddGroup={onAddGroup}\n actionButtonRenderers={groupActionButtonRenderers}\n {...rest}\n disableActions={isLoadingQuery}\n isVisualizing = {isVisualizing}\n />\n </div>\n );\n};\n"]}
@@ -15,7 +15,7 @@ const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
15
15
  require("./GroupsVisualizationActions.scss");
16
16
  const GroupHilitedElementsContext_1 = require("./context/GroupHilitedElementsContext");
17
17
  const GroupVisualizationActions = ({ isLoadingQuery, showAll, hideAll, }) => {
18
- const { showGroupColor, setShowGroupColor, } = GroupHilitedElementsContext_1.useGroupHilitedElementsContext();
18
+ const { showGroupColor, setShowGroupColor, } = (0, GroupHilitedElementsContext_1.useGroupHilitedElementsContext)();
19
19
  return (react_1.default.createElement(itwinui_react_1.ButtonGroup, { className: "gmw-visual-buttons" },
20
20
  react_1.default.createElement(ToggleGroupVisibility_1.ToggleGroupVisibility, { isLoadingQuery: isLoadingQuery, showGroupColor: showGroupColor, setShowGroupColor: setShowGroupColor }),
21
21
  react_1.default.createElement(itwinui_react_1.IconButton, { title: "Show All", onClick: showAll, disabled: isLoadingQuery, styleType: "borderless" },
@@ -1 +1 @@
1
- {"version":3,"file":"GroupsVisualizationActions.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupsVisualizationActions.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,wDAA+D;AAC/D,kDAA0B;AAC1B,mEAAgE;AAChE,oEAAkF;AAClF,6CAA2C;AAC3C,uFAAuF;AAQhF,MAAM,yBAAyB,GAAG,CAAC,EACxC,cAAc,EACd,OAAO,EACP,OAAO,GACwB,EAAE,EAAE;IACnC,MAAM,EACJ,cAAc,EACd,iBAAiB,GAClB,GAAG,4DAA8B,EAAE,CAAC;IAErC,OAAO,CACL,8BAAC,2BAAW,IAAC,SAAS,EAAC,oBAAoB;QACzC,8BAAC,6CAAqB,IACpB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACpC;QACF,8BAAC,0BAAU,IACT,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,YAAY;YAEtB,8BAAC,uCAAiB,OAAG,CACV;QACb,8BAAC,0BAAU,IACT,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,YAAY;YAEtB,8BAAC,uCAAiB,OAAG,CACV,CACD,CACf,CAAC;AAEJ,CAAC,CAAC;AApCW,QAAA,yBAAyB,6BAoCpC","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 { ButtonGroup, IconButton } from \"@itwin/itwinui-react\";\nimport React from \"react\";\nimport { ToggleGroupVisibility } from \"./ToggleGroupVisibility\";\nimport { SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport \"./GroupsVisualizationActions.scss\";\nimport { useGroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\n\ninterface GroupVisualizationActionsProps {\n isLoadingQuery: boolean;\n showAll: () => Promise<void>;\n hideAll: () => Promise<void>;\n}\n\nexport const GroupVisualizationActions = ({\n isLoadingQuery,\n showAll,\n hideAll,\n}: GroupVisualizationActionsProps) => {\n const {\n showGroupColor,\n setShowGroupColor,\n } = useGroupHilitedElementsContext();\n\n return (\n <ButtonGroup className=\"gmw-visual-buttons\">\n <ToggleGroupVisibility\n isLoadingQuery={isLoadingQuery}\n showGroupColor={showGroupColor}\n setShowGroupColor={setShowGroupColor}\n />\n <IconButton\n title=\"Show All\"\n onClick={showAll}\n disabled={isLoadingQuery}\n styleType=\"borderless\"\n >\n <SvgVisibilityShow />\n </IconButton>\n <IconButton\n title=\"Hide All\"\n onClick={hideAll}\n disabled={isLoadingQuery}\n styleType=\"borderless\"\n >\n <SvgVisibilityHide />\n </IconButton>\n </ButtonGroup>\n );\n\n};\n\n"]}
1
+ {"version":3,"file":"GroupsVisualizationActions.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupsVisualizationActions.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,wDAA+D;AAC/D,kDAA0B;AAC1B,mEAAgE;AAChE,oEAAkF;AAClF,6CAA2C;AAC3C,uFAAuF;AAQhF,MAAM,yBAAyB,GAAG,CAAC,EACxC,cAAc,EACd,OAAO,EACP,OAAO,GACwB,EAAE,EAAE;IACnC,MAAM,EACJ,cAAc,EACd,iBAAiB,GAClB,GAAG,IAAA,4DAA8B,GAAE,CAAC;IAErC,OAAO,CACL,8BAAC,2BAAW,IAAC,SAAS,EAAC,oBAAoB;QACzC,8BAAC,6CAAqB,IACpB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACpC;QACF,8BAAC,0BAAU,IACT,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,YAAY;YAEtB,8BAAC,uCAAiB,OAAG,CACV;QACb,8BAAC,0BAAU,IACT,KAAK,EAAC,UAAU,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAC,YAAY;YAEtB,8BAAC,uCAAiB,OAAG,CACV,CACD,CACf,CAAC;AAEJ,CAAC,CAAC;AApCW,QAAA,yBAAyB,6BAoCpC","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 { ButtonGroup, IconButton } from \"@itwin/itwinui-react\";\nimport React from \"react\";\nimport { ToggleGroupVisibility } from \"./ToggleGroupVisibility\";\nimport { SvgVisibilityHide, SvgVisibilityShow } from \"@itwin/itwinui-icons-react\";\nimport \"./GroupsVisualizationActions.scss\";\nimport { useGroupHilitedElementsContext } from \"./context/GroupHilitedElementsContext\";\n\ninterface GroupVisualizationActionsProps {\n isLoadingQuery: boolean;\n showAll: () => Promise<void>;\n hideAll: () => Promise<void>;\n}\n\nexport const GroupVisualizationActions = ({\n isLoadingQuery,\n showAll,\n hideAll,\n}: GroupVisualizationActionsProps) => {\n const {\n showGroupColor,\n setShowGroupColor,\n } = useGroupHilitedElementsContext();\n\n return (\n <ButtonGroup className=\"gmw-visual-buttons\">\n <ToggleGroupVisibility\n isLoadingQuery={isLoadingQuery}\n showGroupColor={showGroupColor}\n setShowGroupColor={setShowGroupColor}\n />\n <IconButton\n title=\"Show All\"\n onClick={showAll}\n disabled={isLoadingQuery}\n styleType=\"borderless\"\n >\n <SvgVisibilityShow />\n </IconButton>\n <IconButton\n title=\"Hide All\"\n onClick={hideAll}\n disabled={isLoadingQuery}\n styleType=\"borderless\"\n >\n <SvgVisibilityHide />\n </IconButton>\n </ButtonGroup>\n );\n\n};\n\n"]}
@@ -9,7 +9,7 @@ const itwinui_react_1 = require("@itwin/itwinui-react");
9
9
  require("./HorizontalTile.scss");
10
10
  const classnames_1 = __importDefault(require("classnames"));
11
11
  const HorizontalTile = (props) => {
12
- return (react_1.default.createElement("div", { className: classnames_1.default("gmw-horizontal-tile-container", { "gmw-horizontal-tile-selected": props.selected }), onClick: props.onClick, "data-testid": "gmw-horizontal-tile" },
12
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)("gmw-horizontal-tile-container", { "gmw-horizontal-tile-selected": props.selected }), onClick: props.onClick, "data-testid": "gmw-horizontal-tile" },
13
13
  react_1.default.createElement("div", { className: "gmw-body-container" },
14
14
  props.dragHandle,
15
15
  react_1.default.createElement("div", { className: "gmw-body" },
@@ -1 +1 @@
1
- {"version":3,"file":"HorizontalTile.js","sourceRoot":"","sources":["../../../../src/widget/components/HorizontalTile.tsx"],"names":[],"mappings":";;;;;;AAKA,kDAA0B;AAC1B,wDAAoD;AACpD,iCAA+B;AAC/B,4DAAoC;AAc7B,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;IAE3D,OAAO,CACL,uCAAK,SAAS,EAAE,oBAAU,CAAC,+BAA+B,EAAE,EAAE,8BAA8B,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,iBAAc,qBAAqB;QACxK,uCAAK,SAAS,EAAC,oBAAoB;YAChC,KAAK,CAAC,UAAU;YACjB,uCAAK,SAAS,EAAC,UAAU;gBACtB,CAAC,CAAC,KAAK,CAAC,YAAY;oBACnB,8BAAC,sBAAM,IAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,IAAG,KAAK,CAAC,KAAK,CAAU;gBAEjH,CAAC,KAAK,CAAC,YAAY;oBAClB,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,KAAK,CAAC,YAAY,IAAG,KAAK,CAAC,KAAK,CAAQ;gBAE/F,KAAK,CAAC,OAAO,IAAI,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAC,OAAO,IAAE,KAAK,CAAC,OAAO,CAAQ,CAChI,CACF;QACN,uCAAK,SAAS,EAAC,mBAAmB,iBAAa,oBAAoB,IAChE,KAAK,CAAC,WAAW,CACd,CACF,CACP,CAAC;AAEJ,CAAC,CAAC;AAtBW,QAAA,cAAc,kBAsBzB","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 { ReactNode } from \"react\";\nimport React from \"react\";\nimport { Anchor, Text } from \"@itwin/itwinui-react\";\nimport \"./HorizontalTile.scss\";\nimport classNames from \"classnames\";\n\nexport interface HorizontalTileProps {\n title: string;\n actionGroup: ReactNode;\n subText?: string;\n onClick?: () => void;\n onClickTitle?: () => void;\n titleTooltip?: string;\n subtextToolTip?: string;\n selected?: boolean;\n dragHandle?: ReactNode;\n}\n\nexport const HorizontalTile = (props: HorizontalTileProps) => {\n\n return (\n <div className={classNames(\"gmw-horizontal-tile-container\", { \"gmw-horizontal-tile-selected\": props.selected })} onClick={props.onClick} data-testid=\"gmw-horizontal-tile\">\n <div className=\"gmw-body-container\">\n {props.dragHandle}\n <div className=\"gmw-body\">\n {!!props.onClickTitle &&\n <Anchor className=\"gmw-body-text\" onClick={props.onClickTitle} title={props.titleTooltip}>{props.title}</Anchor>\n }\n {!props.onClickTitle &&\n <Text className=\"gmw-body-text\" variant=\"body\" title={props.titleTooltip}>{props.title}</Text>\n }\n {props.subText && <Text className=\"gmw-body-text\" isMuted={true} title={props.subtextToolTip} variant=\"small\">{props.subText}</Text>}\n </div>\n </div>\n <div className=\"gmw-action-button\" data-testid=\"tile-action-button\">\n {props.actionGroup}\n </div>\n </div>\n );\n\n};\n"]}
1
+ {"version":3,"file":"HorizontalTile.js","sourceRoot":"","sources":["../../../../src/widget/components/HorizontalTile.tsx"],"names":[],"mappings":";;;;;;AAKA,kDAA0B;AAC1B,wDAAoD;AACpD,iCAA+B;AAC/B,4DAAoC;AAc7B,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAE,EAAE;IAE3D,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,+BAA+B,EAAE,EAAE,8BAA8B,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,iBAAc,qBAAqB;QACxK,uCAAK,SAAS,EAAC,oBAAoB;YAChC,KAAK,CAAC,UAAU;YACjB,uCAAK,SAAS,EAAC,UAAU;gBACtB,CAAC,CAAC,KAAK,CAAC,YAAY;oBACnB,8BAAC,sBAAM,IAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,IAAG,KAAK,CAAC,KAAK,CAAU;gBAEjH,CAAC,KAAK,CAAC,YAAY;oBAClB,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,KAAK,CAAC,YAAY,IAAG,KAAK,CAAC,KAAK,CAAQ;gBAE/F,KAAK,CAAC,OAAO,IAAI,8BAAC,oBAAI,IAAC,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAC,OAAO,IAAE,KAAK,CAAC,OAAO,CAAQ,CAChI,CACF;QACN,uCAAK,SAAS,EAAC,mBAAmB,iBAAa,oBAAoB,IAChE,KAAK,CAAC,WAAW,CACd,CACF,CACP,CAAC;AAEJ,CAAC,CAAC;AAtBW,QAAA,cAAc,kBAsBzB","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 { ReactNode } from \"react\";\nimport React from \"react\";\nimport { Anchor, Text } from \"@itwin/itwinui-react\";\nimport \"./HorizontalTile.scss\";\nimport classNames from \"classnames\";\n\nexport interface HorizontalTileProps {\n title: string;\n actionGroup: ReactNode;\n subText?: string;\n onClick?: () => void;\n onClickTitle?: () => void;\n titleTooltip?: string;\n subtextToolTip?: string;\n selected?: boolean;\n dragHandle?: ReactNode;\n}\n\nexport const HorizontalTile = (props: HorizontalTileProps) => {\n\n return (\n <div className={classNames(\"gmw-horizontal-tile-container\", { \"gmw-horizontal-tile-selected\": props.selected })} onClick={props.onClick} data-testid=\"gmw-horizontal-tile\">\n <div className=\"gmw-body-container\">\n {props.dragHandle}\n <div className=\"gmw-body\">\n {!!props.onClickTitle &&\n <Anchor className=\"gmw-body-text\" onClick={props.onClickTitle} title={props.titleTooltip}>{props.title}</Anchor>\n }\n {!props.onClickTitle &&\n <Text className=\"gmw-body-text\" variant=\"body\" title={props.titleTooltip}>{props.title}</Text>\n }\n {props.subText && <Text className=\"gmw-body-text\" isMuted={true} title={props.subtextToolTip} variant=\"small\">{props.subText}</Text>}\n </div>\n </div>\n <div className=\"gmw-action-button\" data-testid=\"tile-action-button\">\n {props.actionGroup}\n </div>\n </div>\n );\n\n};\n"]}
@@ -39,15 +39,15 @@ const defaultDisplayStrings = {
39
39
  mappingDetails: "Mapping Details",
40
40
  };
41
41
  const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings: userDisplayStrings }) => {
42
- const { getAccessToken, iModelId } = GroupingApiConfigContext_1.useGroupingMappingApiConfig();
43
- const mappingClient = MappingClientContext_1.useMappingClient();
44
- const [values, setValues] = react_1.useState({
42
+ const { getAccessToken, iModelId } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
43
+ const mappingClient = (0, MappingClientContext_1.useMappingClient)();
44
+ const [values, setValues] = (0, react_1.useState)({
45
45
  name: mapping?.mappingName ?? "",
46
46
  description: mapping?.description ?? "",
47
47
  extractionEnabled: mapping?.extractionEnabled ?? true,
48
48
  });
49
- const [validator, showValidationMessage] = useValidator_1.default();
50
- const [isLoading, setIsLoading] = react_1.useState(false);
49
+ const [validator, showValidationMessage] = (0, useValidator_1.default)();
50
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
51
51
  const displayStrings = react_1.default.useMemo(() => ({ ...defaultDisplayStrings, ...userDisplayStrings }), [userDisplayStrings]);
52
52
  const onSave = async () => {
53
53
  try {
@@ -76,7 +76,7 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
76
76
  onSaveSuccess();
77
77
  }
78
78
  catch (error) {
79
- utils_1.handleError(error.status);
79
+ (0, utils_1.handleError)(error.status);
80
80
  }
81
81
  finally {
82
82
  setIsLoading(false);
@@ -87,18 +87,18 @@ const MappingAction = ({ mapping, onSaveSuccess, onClickCancel, displayStrings:
87
87
  react_1.default.createElement(itwinui_react_1.Fieldset, { legend: displayStrings.mappingDetails, className: 'gmw-details-form' },
88
88
  react_1.default.createElement(itwinui_react_1.Text, { variant: 'small', as: 'small', className: 'gmw-field-legend' }, "Asterisk * indicates mandatory fields."),
89
89
  react_1.default.createElement(itwinui_react_1.LabeledInput, { id: 'name', name: 'name', label: 'Name', value: values.name, required: true, onChange: (event) => {
90
- utils_1.handleInputChange(event, values, setValues);
90
+ (0, utils_1.handleInputChange)(event, values, setValues);
91
91
  validator.showMessageFor("name");
92
92
  }, message: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS), status: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS)
93
93
  ? "negative"
94
94
  : undefined, onBlur: () => {
95
95
  validator.showMessageFor("name");
96
96
  }, onBlurCapture: (event) => {
97
- utils_1.handleInputChange(event, values, setValues);
97
+ (0, utils_1.handleInputChange)(event, values, setValues);
98
98
  validator.showMessageFor("name");
99
99
  } }),
100
100
  react_1.default.createElement(itwinui_react_1.LabeledInput, { id: 'description', name: 'description', label: 'Description', value: values.description, onChange: (event) => {
101
- utils_1.handleInputChange(event, values, setValues);
101
+ (0, utils_1.handleInputChange)(event, values, setValues);
102
102
  } }),
103
103
  react_1.default.createElement(itwinui_react_1.ToggleSwitch, { id: 'extractionEnabled', name: 'extractionEnabled', label: 'Extract data from iModel', labelPosition: "right", checked: values.extractionEnabled, onChange: (event) => {
104
104
  setValues({ ...values, extractionEnabled: event.currentTarget.checked });