@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.
- package/lib/cjs/formula/FormulaDataTypeResolver.js +4 -4
- package/lib/cjs/formula/FormulaDataTypeResolver.js.map +1 -1
- package/lib/cjs/formula/FormulaFunctionProvider.js +4 -4
- package/lib/cjs/formula/FormulaFunctionProvider.js.map +1 -1
- package/lib/cjs/formula/FormulaSplitter.js +12 -12
- package/lib/cjs/formula/FormulaSplitter.js.map +1 -1
- package/lib/cjs/formula/FormulaTokensDataTypeResolver.js +6 -6
- package/lib/cjs/formula/FormulaTokensDataTypeResolver.js.map +1 -1
- package/lib/cjs/formula/InfixToPostfixConverter.js +11 -11
- package/lib/cjs/formula/InfixToPostfixConverter.js.map +1 -1
- package/lib/cjs/grouping-mapping-widget.d.ts +3 -1
- package/lib/cjs/grouping-mapping-widget.js +7 -3
- package/lib/cjs/grouping-mapping-widget.js.map +1 -1
- package/lib/cjs/test/GroupPropertyUtils.test.js +74 -74
- package/lib/cjs/test/GroupPropertyUtils.test.js.map +1 -1
- package/lib/cjs/test/GroupingMappingCustomUI.test.js +9 -9
- package/lib/cjs/test/GroupingMappingCustomUI.test.js.map +1 -1
- package/lib/cjs/test/PropertyFieldsHelpers.js +8 -8
- package/lib/cjs/test/PropertyFieldsHelpers.js.map +1 -1
- package/lib/cjs/test/WidgetHeader.test.js +2 -2
- package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
- package/lib/cjs/test/test-utils.js +1 -1
- package/lib/cjs/test/test-utils.js.map +1 -1
- package/lib/cjs/widget/components/BlockingOverlay.js +1 -1
- package/lib/cjs/widget/components/BlockingOverlay.js.map +1 -1
- package/lib/cjs/widget/components/CalculatedPropertyAction.js +7 -7
- package/lib/cjs/widget/components/CalculatedPropertyAction.js.map +1 -1
- package/lib/cjs/widget/components/CalculatedPropertyActionWithVisuals.js +21 -21
- package/lib/cjs/widget/components/CalculatedPropertyActionWithVisuals.js.map +1 -1
- package/lib/cjs/widget/components/CalculatedPropertyTable.js +4 -4
- package/lib/cjs/widget/components/CalculatedPropertyTable.js.map +1 -1
- package/lib/cjs/widget/components/ConfirmMappingsImport.d.ts +1 -1
- package/lib/cjs/widget/components/ConfirmMappingsImport.js +8 -8
- package/lib/cjs/widget/components/ConfirmMappingsImport.js.map +1 -1
- package/lib/cjs/widget/components/CustomCalculationAction.js +20 -18
- package/lib/cjs/widget/components/CustomCalculationAction.js.map +1 -1
- package/lib/cjs/widget/components/CustomCalculationTable.js +4 -4
- package/lib/cjs/widget/components/CustomCalculationTable.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +2 -2
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/GroupAction.js +16 -16
- package/lib/cjs/widget/components/GroupAction.js.map +1 -1
- package/lib/cjs/widget/components/GroupColorLegend.js +1 -1
- package/lib/cjs/widget/components/GroupColorLegend.js.map +1 -1
- package/lib/cjs/widget/components/GroupColorToggle.js +9 -9
- package/lib/cjs/widget/components/GroupColorToggle.js.map +1 -1
- package/lib/cjs/widget/components/GroupDetails.js +3 -3
- package/lib/cjs/widget/components/GroupDetails.js.map +1 -1
- package/lib/cjs/widget/components/GroupMenuActions.js +2 -2
- package/lib/cjs/widget/components/GroupMenuActions.js.map +1 -1
- package/lib/cjs/widget/components/GroupPropertyAction.js +35 -35
- package/lib/cjs/widget/components/GroupPropertyAction.js.map +1 -1
- package/lib/cjs/widget/components/GroupPropertyTable.js +4 -4
- package/lib/cjs/widget/components/GroupPropertyTable.js.map +1 -1
- package/lib/cjs/widget/components/GroupPropertyUtils.js +2 -2
- package/lib/cjs/widget/components/GroupPropertyUtils.js.map +1 -1
- package/lib/cjs/widget/components/Grouping.d.ts +2 -1
- package/lib/cjs/widget/components/Grouping.js +16 -13
- package/lib/cjs/widget/components/Grouping.js.map +1 -1
- package/lib/cjs/widget/components/Grouping.scss +8 -0
- package/lib/cjs/widget/components/GroupingMapping.js +5 -5
- package/lib/cjs/widget/components/GroupingMapping.js.map +1 -1
- package/lib/cjs/widget/components/GroupingMappingContent.js +4 -4
- package/lib/cjs/widget/components/GroupingMappingContent.js.map +1 -1
- package/lib/cjs/widget/components/GroupingMappingContext.js +24 -21
- package/lib/cjs/widget/components/GroupingMappingContext.js.map +1 -1
- package/lib/cjs/widget/components/GroupingMappingRouter.js +3 -3
- package/lib/cjs/widget/components/GroupingMappingRouter.js.map +1 -1
- package/lib/cjs/widget/components/GroupsShowHideButtons.js +3 -3
- package/lib/cjs/widget/components/GroupsShowHideButtons.js.map +1 -1
- package/lib/cjs/widget/components/GroupsVisualization.js +38 -28
- package/lib/cjs/widget/components/GroupsVisualization.js.map +1 -1
- package/lib/cjs/widget/components/GroupsVisualizationActions.js +1 -1
- package/lib/cjs/widget/components/GroupsVisualizationActions.js.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.js +1 -1
- package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/MappingAction.js +9 -9
- package/lib/cjs/widget/components/MappingAction.js.map +1 -1
- package/lib/cjs/widget/components/MappingImportWizardModal.d.ts +2 -2
- package/lib/cjs/widget/components/MappingImportWizardModal.js +13 -13
- package/lib/cjs/widget/components/MappingImportWizardModal.js.map +1 -1
- package/lib/cjs/widget/components/MappingViewActionGroup.d.ts +12 -0
- package/lib/cjs/widget/components/MappingViewActionGroup.js +34 -0
- package/lib/cjs/widget/components/MappingViewActionGroup.js.map +1 -0
- package/lib/cjs/widget/components/Mappings.d.ts +13 -0
- package/lib/cjs/widget/components/Mappings.js +45 -0
- package/lib/cjs/widget/components/Mappings.js.map +1 -0
- package/lib/cjs/widget/components/MappingsView.d.ts +33 -0
- package/lib/cjs/widget/components/MappingsView.js +54 -0
- package/lib/cjs/widget/components/MappingsView.js.map +1 -0
- package/lib/{esm/widget/components/Mapping.scss → cjs/widget/components/MappingsView.scss} +6 -2
- package/lib/cjs/widget/components/PropertyAction.js +7 -7
- package/lib/cjs/widget/components/PropertyAction.js.map +1 -1
- package/lib/cjs/widget/components/PropertyMenu.js +9 -9
- package/lib/cjs/widget/components/PropertyMenu.js.map +1 -1
- package/lib/cjs/widget/components/PropertyMenuWithVisualization.js +1 -1
- package/lib/cjs/widget/components/PropertyMenuWithVisualization.js.map +1 -1
- package/lib/cjs/widget/components/PropertyTable.js +4 -4
- package/lib/cjs/widget/components/PropertyTable.js.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.js +9 -9
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/SelectITwin.js +10 -10
- package/lib/cjs/widget/components/SelectITwin.js.map +1 -1
- package/lib/cjs/widget/components/SelectMappings.d.ts +1 -1
- package/lib/cjs/widget/components/SelectMappings.js +10 -10
- package/lib/cjs/widget/components/SelectMappings.js.map +1 -1
- package/lib/cjs/widget/components/SharedCalculatedPropertyForms.js +1 -1
- package/lib/cjs/widget/components/SharedCalculatedPropertyForms.js.map +1 -1
- package/lib/cjs/widget/components/SortableHorizontalTile.js +2 -2
- package/lib/cjs/widget/components/SortableHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/StatusIcon.js +1 -1
- package/lib/cjs/widget/components/StatusIcon.js.map +1 -1
- package/lib/cjs/widget/components/context/GroupHilitedElementsContext.d.ts +2 -0
- package/lib/cjs/widget/components/context/GroupHilitedElementsContext.js +2 -0
- package/lib/cjs/widget/components/context/GroupHilitedElementsContext.js.map +1 -1
- package/lib/cjs/widget/components/context/GroupingApiConfigContext.js +1 -1
- package/lib/cjs/widget/components/context/GroupingApiConfigContext.js.map +1 -1
- package/lib/cjs/widget/components/context/GroupingMappingCustomUIContext.js +2 -2
- package/lib/cjs/widget/components/context/GroupingMappingCustomUIContext.js.map +1 -1
- package/lib/cjs/widget/components/context/IModelsClientContext.js +2 -2
- package/lib/cjs/widget/components/context/IModelsClientContext.js.map +1 -1
- package/lib/cjs/widget/components/context/ITwinsClientContext.js +2 -2
- package/lib/cjs/widget/components/context/ITwinsClientContext.js.map +1 -1
- package/lib/cjs/widget/components/context/MappingClientContext.js +3 -3
- package/lib/cjs/widget/components/context/MappingClientContext.js.map +1 -1
- package/lib/cjs/widget/components/customUI/GroupQueryBuilderCustomUI.js +10 -10
- package/lib/cjs/widget/components/customUI/GroupQueryBuilderCustomUI.js.map +1 -1
- package/lib/cjs/widget/components/groupsHelpers.d.ts +1 -1
- package/lib/cjs/widget/components/groupsHelpers.js +14 -13
- package/lib/cjs/widget/components/groupsHelpers.js.map +1 -1
- package/lib/cjs/widget/components/hooks/useMappingsOperations.d.ts +19 -0
- package/lib/cjs/widget/components/hooks/useMappingsOperations.js +61 -0
- package/lib/cjs/widget/components/hooks/useMappingsOperations.js.map +1 -0
- package/lib/cjs/widget/components/utils.d.ts +1 -0
- package/lib/cjs/widget/components/utils.js +19 -23
- package/lib/cjs/widget/components/utils.js.map +1 -1
- package/lib/cjs/widget/components/viewerUtils.js +12 -12
- package/lib/cjs/widget/components/viewerUtils.js.map +1 -1
- package/lib/cjs/widget/hooks/useFetchData.js +6 -6
- package/lib/cjs/widget/hooks/useFetchData.js.map +1 -1
- package/lib/cjs/widget/hooks/useFormulaValidation.js +4 -4
- package/lib/cjs/widget/hooks/useFormulaValidation.js.map +1 -1
- package/lib/cjs/widget/hooks/useValidator.js +1 -1
- package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
- package/lib/cjs/widget/hooks/useVisualization.js +15 -15
- package/lib/cjs/widget/hooks/useVisualization.js.map +1 -1
- package/lib/esm/grouping-mapping-widget.d.ts +3 -1
- package/lib/esm/grouping-mapping-widget.js +3 -1
- package/lib/esm/grouping-mapping-widget.js.map +1 -1
- package/lib/esm/widget/components/ConfirmMappingsImport.d.ts +1 -1
- package/lib/esm/widget/components/ConfirmMappingsImport.js.map +1 -1
- package/lib/esm/widget/components/CustomCalculationAction.js +3 -1
- package/lib/esm/widget/components/CustomCalculationAction.js.map +1 -1
- package/lib/esm/widget/components/Grouping.d.ts +2 -1
- package/lib/esm/widget/components/Grouping.js +7 -4
- package/lib/esm/widget/components/Grouping.js.map +1 -1
- package/lib/esm/widget/components/Grouping.scss +8 -0
- package/lib/esm/widget/components/GroupingMappingContext.js +4 -1
- package/lib/esm/widget/components/GroupingMappingContext.js.map +1 -1
- package/lib/esm/widget/components/GroupingMappingRouter.js +1 -1
- package/lib/esm/widget/components/GroupingMappingRouter.js.map +1 -1
- package/lib/esm/widget/components/GroupsVisualization.js +14 -4
- package/lib/esm/widget/components/GroupsVisualization.js.map +1 -1
- package/lib/esm/widget/components/MappingImportWizardModal.d.ts +2 -2
- package/lib/esm/widget/components/MappingImportWizardModal.js.map +1 -1
- package/lib/esm/widget/components/MappingViewActionGroup.d.ts +12 -0
- package/lib/esm/widget/components/MappingViewActionGroup.js +27 -0
- package/lib/esm/widget/components/MappingViewActionGroup.js.map +1 -0
- package/lib/esm/widget/components/Mappings.d.ts +13 -0
- package/lib/esm/widget/components/Mappings.js +22 -0
- package/lib/esm/widget/components/Mappings.js.map +1 -0
- package/lib/esm/widget/components/MappingsView.d.ts +33 -0
- package/lib/esm/widget/components/MappingsView.js +47 -0
- package/lib/esm/widget/components/MappingsView.js.map +1 -0
- package/lib/{cjs/widget/components/Mapping.scss → esm/widget/components/MappingsView.scss} +6 -2
- package/lib/esm/widget/components/SelectMappings.d.ts +1 -1
- package/lib/esm/widget/components/SelectMappings.js.map +1 -1
- package/lib/esm/widget/components/context/GroupHilitedElementsContext.d.ts +2 -0
- package/lib/esm/widget/components/context/GroupHilitedElementsContext.js +2 -0
- package/lib/esm/widget/components/context/GroupHilitedElementsContext.js.map +1 -1
- package/lib/esm/widget/components/groupsHelpers.d.ts +1 -1
- package/lib/esm/widget/components/groupsHelpers.js +4 -3
- package/lib/esm/widget/components/groupsHelpers.js.map +1 -1
- package/lib/esm/widget/components/hooks/useMappingsOperations.d.ts +19 -0
- package/lib/esm/widget/components/hooks/useMappingsOperations.js +57 -0
- package/lib/esm/widget/components/hooks/useMappingsOperations.js.map +1 -0
- package/lib/esm/widget/components/utils.d.ts +1 -0
- package/lib/esm/widget/components/utils.js +17 -22
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/hooks/useFormulaValidation.js +1 -1
- package/lib/esm/widget/hooks/useFormulaValidation.js.map +1 -1
- package/lib/esm/widget/hooks/useVisualization.js +3 -3
- package/lib/esm/widget/hooks/useVisualization.js.map +1 -1
- package/package.json +2 -2
- package/lib/cjs/widget/components/Mapping.d.ts +0 -24
- package/lib/cjs/widget/components/Mapping.js +0 -136
- package/lib/cjs/widget/components/Mapping.js.map +0 -1
- package/lib/esm/widget/components/Mapping.d.ts +0 -24
- package/lib/esm/widget/components/Mapping.js +0 -110
- package/lib/esm/widget/components/Mapping.js.map +0 -1
|
@@ -16,14 +16,14 @@ const createDefaultMappingClient = (prefix) => {
|
|
|
16
16
|
exports.createDefaultMappingClient = createDefaultMappingClient;
|
|
17
17
|
const createMappingClient = (clientProp) => {
|
|
18
18
|
if (undefined === clientProp || typeof clientProp === "string") {
|
|
19
|
-
return exports.createDefaultMappingClient(clientProp);
|
|
19
|
+
return (0, exports.createDefaultMappingClient)(clientProp);
|
|
20
20
|
}
|
|
21
21
|
return clientProp;
|
|
22
22
|
};
|
|
23
23
|
exports.createMappingClient = createMappingClient;
|
|
24
|
-
exports.MappingClientContext = react_1.createContext(exports.createDefaultMappingClient());
|
|
24
|
+
exports.MappingClientContext = (0, react_1.createContext)((0, exports.createDefaultMappingClient)());
|
|
25
25
|
const useMappingClient = () => {
|
|
26
|
-
const context = react_1.useContext(exports.MappingClientContext);
|
|
26
|
+
const context = (0, react_1.useContext)(exports.MappingClientContext);
|
|
27
27
|
if (!context) {
|
|
28
28
|
throw new Error("useMappingClient should be used within a MappingClientContext provider");
|
|
29
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappingClientContext.js","sourceRoot":"","sources":["../../../../../src/widget/components/context/MappingClientContext.ts"],"names":[],"mappings":";;;AAKA,4DAA6E;AAC7E,iCAAkD;AAGlD,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,MAAe,EAAE,EAAE;IACtD,IAAI,MAAM,IAAI,OAAO,EAAE;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC;KACxE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,0BAA0B,GAAG,CAAC,MAAqB,EAAmB,EAAE;IACnF,MAAM,GAAG,GAAG,SAAS,CAAC,qCAAmB,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,gCAAc,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;AAHW,QAAA,0BAA0B,8BAGrC;AAEK,MAAM,mBAAmB,GAAG,CAAC,UAA0C,EAAE,EAAE;IAChF,IAAI,SAAS,KAAK,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAC9D,OAAO,kCAA0B,
|
|
1
|
+
{"version":3,"file":"MappingClientContext.js","sourceRoot":"","sources":["../../../../../src/widget/components/context/MappingClientContext.ts"],"names":[],"mappings":";;;AAKA,4DAA6E;AAC7E,iCAAkD;AAGlD,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAE,MAAe,EAAE,EAAE;IACtD,IAAI,MAAM,IAAI,OAAO,EAAE;QACrB,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,MAAM,kBAAkB,CAAC,CAAC;KACxE;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,0BAA0B,GAAG,CAAC,MAAqB,EAAmB,EAAE;IACnF,MAAM,GAAG,GAAG,SAAS,CAAC,qCAAmB,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,gCAAc,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;AAHW,QAAA,0BAA0B,8BAGrC;AAEK,MAAM,mBAAmB,GAAG,CAAC,UAA0C,EAAE,EAAE;IAChF,IAAI,SAAS,KAAK,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAC9D,OAAO,IAAA,kCAA0B,EAAC,UAA0B,CAAC,CAAC;KAC/D;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B;AACW,QAAA,oBAAoB,GAAG,IAAA,qBAAa,EAAkB,IAAA,kCAA0B,GAAE,CAAC,CAAC;AAE1F,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,4BAAoB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;KACH;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type { IMappingsClient} from \"@itwin/insights-client\";\nimport { MappingsClient, REPORTING_BASE_PATH } from \"@itwin/insights-client\";\nimport { createContext, useContext } from \"react\";\nimport type { ClientPrefix } from \"./GroupingApiConfigContext\";\n\nconst prefixUrl = (baseUrl?: string, prefix?: string) => {\n if (prefix && baseUrl) {\n return baseUrl.replace(\"api.bentley.com\", `${prefix}-api.bentley.com`);\n }\n return baseUrl;\n};\n\nexport const createDefaultMappingClient = (prefix?: ClientPrefix): IMappingsClient => {\n const url = prefixUrl(REPORTING_BASE_PATH, prefix);\n return new MappingsClient(url);\n};\n\nexport const createMappingClient = (clientProp: IMappingsClient | ClientPrefix) => {\n if (undefined === clientProp || typeof clientProp === \"string\") {\n return createDefaultMappingClient(clientProp as ClientPrefix);\n }\n return clientProp;\n};\nexport const MappingClientContext = createContext<IMappingsClient>(createDefaultMappingClient());\n\nexport const useMappingClient = () => {\n const context = useContext(MappingClientContext);\n if (!context) {\n throw new Error(\n \"useMappingClient should be used within a MappingClientContext provider\"\n );\n }\n return context;\n};\n"]}
|
|
@@ -52,16 +52,16 @@ const createPropertyDataProvider = async (keys, iModelConnection) => {
|
|
|
52
52
|
return dataProvider;
|
|
53
53
|
};
|
|
54
54
|
const GroupQueryBuilderCustomUI = ({ updateQuery, isUpdating, resetView, }) => {
|
|
55
|
-
const { iModelConnection } = GroupingApiConfigContext_1.useGroupingMappingApiConfig();
|
|
55
|
+
const { iModelConnection } = (0, GroupingApiConfigContext_1.useGroupingMappingApiConfig)();
|
|
56
56
|
if (!iModelConnection) {
|
|
57
57
|
throw new Error("This component requires an active iModelConnection.");
|
|
58
58
|
}
|
|
59
|
-
const [size, setSize] = react_1.useState({ width: 0, height: 0 });
|
|
60
|
-
const [dataProvider, setDataProvider] = react_1.useState(undefined);
|
|
61
|
-
const [currentPropertyList, setCurrentPropertyList] = react_1.useState([]);
|
|
62
|
-
const [selectionKeySet, setSelectionKeyset] = react_1.useState(new presentation_common_1.KeySet());
|
|
63
|
-
const [queryBuilder, setQueryBuilder] = react_1.useState();
|
|
64
|
-
react_1.useEffect(() => {
|
|
59
|
+
const [size, setSize] = (0, react_1.useState)({ width: 0, height: 0 });
|
|
60
|
+
const [dataProvider, setDataProvider] = (0, react_1.useState)(undefined);
|
|
61
|
+
const [currentPropertyList, setCurrentPropertyList] = (0, react_1.useState)([]);
|
|
62
|
+
const [selectionKeySet, setSelectionKeyset] = (0, react_1.useState)(new presentation_common_1.KeySet());
|
|
63
|
+
const [queryBuilder, setQueryBuilder] = (0, react_1.useState)();
|
|
64
|
+
(0, react_1.useEffect)(() => {
|
|
65
65
|
const onSelectionChanged = async (evt, selectionProvider) => {
|
|
66
66
|
const selection = selectionProvider.getSelection(evt.imodel, evt.level);
|
|
67
67
|
const keys = new presentation_common_1.KeySet(selection);
|
|
@@ -83,15 +83,15 @@ const GroupQueryBuilderCustomUI = ({ updateQuery, isUpdating, resetView, }) => {
|
|
|
83
83
|
/* eslint-disable no-console */
|
|
84
84
|
console.error(e));
|
|
85
85
|
};
|
|
86
|
-
const resize = react_1.useCallback((width, height) => setSize({ width, height }), []);
|
|
87
|
-
const propertyContextValues = react_1.useMemo(() => ({
|
|
86
|
+
const resize = (0, react_1.useCallback)((width, height) => setSize({ width, height }), []);
|
|
87
|
+
const propertyContextValues = (0, react_1.useMemo)(() => ({
|
|
88
88
|
currentPropertyList,
|
|
89
89
|
setCurrentPropertyList,
|
|
90
90
|
queryBuilder,
|
|
91
91
|
setQuery: updateQuery,
|
|
92
92
|
isUpdating: isUpdating ?? false,
|
|
93
93
|
}), [currentPropertyList, isUpdating, queryBuilder, updateQuery]);
|
|
94
|
-
const actionButtonRenderers = react_1.useMemo(() => [
|
|
94
|
+
const actionButtonRenderers = (0, react_1.useMemo)(() => [
|
|
95
95
|
({ property }) => (react_1.default.createElement(PropertyAction_1.PropertyAction, { property: property })),
|
|
96
96
|
], []);
|
|
97
97
|
return (react_1.default.createElement("div", { className: "gmw-select-query-generator-container" }, !dataProvider || selectionKeySet.size === 0 ? (react_1.default.createElement(itwinui_react_1.Alert, { type: 'informational' }, "Please select on an element within the viewer first, then select properties to generate a group query.")) :
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupQueryBuilderCustomUI.js","sourceRoot":"","sources":["../../../../../src/widget/components/customUI/GroupQueryBuilderCustomUI.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAyE;AACzE,wEAA4D;AAK5D,oEAAoD;AACpD,4CAA0C;AAC1C,kDAA+C;AAE/C,4EAGwC;AAGxC,8DAAkF;AAClF,kDAA+D;AAE/D,sFAAmF;AACnF,sDAAmD;AACnD,wDAAqD;AACrD,kFAAkF;AAClF,wDAAiD;AAEjD,MAAM,0BAA0B,GAAG,KAAK,EACtC,IAAY,EACZ,gBAAkC,EACS,EAAE;IAC7C,MAAM,YAAY,GAAG,IAAI,0DAAgC,CAAC;QACxD,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,uDAA6B;KACvC,CAAC,CAAC;IACH,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,uCAAuC,GAAG,IAAI,CAAC;IAC5D,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,yBAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,0CAA0C,CAAC,CAAC,CAAC;IACtK,IAAI,gBAAgB,EAAE;QACpB,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAAC;KAChC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAOK,MAAM,yBAAyB,GAAG,CAAC,EACxC,WAAW,EACX,UAAU,EACV,SAAS,GACa,EAAE,EAAE;IAC1B,MAAM,EAAE,gBAAgB,EAAE,GAAG,sDAA2B,
|
|
1
|
+
{"version":3,"file":"GroupQueryBuilderCustomUI.js","sourceRoot":"","sources":["../../../../../src/widget/components/customUI/GroupQueryBuilderCustomUI.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, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport type {\n ISelectionProvider,\n SelectionChangeEventArgs,\n} from \"@itwin/presentation-frontend\";\nimport { KeySet } from \"@itwin/presentation-common\";\nimport \"./GroupQueryBuilderCustomUI.scss\";\nimport { QueryBuilder } from \"../QueryBuilder\";\nimport type { GroupingCustomUIProps } from \"./GroupingMappingCustomUI\";\nimport {\n DEFAULT_PROPERTY_GRID_RULESET,\n PresentationPropertyDataProvider,\n} from \"@itwin/presentation-components\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { ActionButtonRendererProps } from \"@itwin/components-react\";\nimport { VirtualizedPropertyGridWithDataProvider } from \"@itwin/components-react\";\nimport { ResizableContainerObserver } from \"@itwin/core-react\";\nimport type { PropertyRecord } from \"@itwin/appui-abstract\";\nimport { PropertyGridWrapperContext } from \"../context/PropertyGridWrapperContext\";\nimport { PropertyAction } from \"../PropertyAction\";\nimport { Alert, Button } from \"@itwin/itwinui-react\";\nimport { useGroupingMappingApiConfig } from \"../context/GroupingApiConfigContext\";\nimport { IModelApp } from \"@itwin/core-frontend\";\n\nconst createPropertyDataProvider = async (\n keys: KeySet,\n iModelConnection: IModelConnection\n): Promise<PresentationPropertyDataProvider> => {\n const dataProvider = new PresentationPropertyDataProvider({\n imodel: iModelConnection,\n ruleset: DEFAULT_PROPERTY_GRID_RULESET,\n });\n dataProvider.keys = keys;\n dataProvider.isNestedPropertyCategoryGroupingEnabled = true;\n const data = await dataProvider.getData();\n const selectedCategory = data.categories.find((category) => category.label === IModelApp.localization.getLocalizedString(\"Presentation:selectedItems.categoryLabel\"));\n if (selectedCategory) {\n selectedCategory.expand = true;\n }\n return dataProvider;\n};\n\ninterface ContainerDimensions {\n width: number;\n height: number;\n}\n\nexport const GroupQueryBuilderCustomUI = ({\n updateQuery,\n isUpdating,\n resetView,\n}: GroupingCustomUIProps) => {\n const { iModelConnection } = useGroupingMappingApiConfig();\n if (!iModelConnection) {\n throw new Error(\"This component requires an active iModelConnection.\");\n }\n const [size, setSize] = useState<ContainerDimensions>({ width: 0, height: 0 });\n const [dataProvider, setDataProvider] =\n useState<PresentationPropertyDataProvider | undefined>(undefined);\n const [currentPropertyList, setCurrentPropertyList] = useState<PropertyRecord[]>([]);\n const [selectionKeySet, setSelectionKeyset] = useState<KeySet>(new KeySet());\n const [queryBuilder, setQueryBuilder] = useState<QueryBuilder | undefined>();\n\n useEffect(() => {\n const onSelectionChanged = async (\n evt: SelectionChangeEventArgs,\n selectionProvider: ISelectionProvider\n ) => {\n const selection = selectionProvider.getSelection(evt.imodel, evt.level);\n const keys = new KeySet(selection);\n setSelectionKeyset(keys);\n const dataProvider = await createPropertyDataProvider(keys, iModelConnection);\n setDataProvider(dataProvider);\n setQueryBuilder(new QueryBuilder(dataProvider));\n };\n\n return iModelConnection\n ? Presentation.selection.selectionChange.addListener(onSelectionChanged)\n : () => { };\n }, [iModelConnection]);\n\n const onClickResetButton = async () => {\n queryBuilder?.resetQueryBuilder();\n updateQuery(\"\");\n setCurrentPropertyList([]);\n if (resetView)\n await resetView().catch((e) =>\n /* eslint-disable no-console */\n console.error(e)\n );\n };\n\n const resize = useCallback((width, height) => setSize({ width, height }), []);\n\n const propertyContextValues = useMemo(\n () => ({\n currentPropertyList,\n setCurrentPropertyList,\n queryBuilder,\n setQuery: updateQuery,\n isUpdating: isUpdating ?? false,\n }),\n [currentPropertyList, isUpdating, queryBuilder, updateQuery]\n );\n\n const actionButtonRenderers = useMemo(\n () => [\n ({ property }: ActionButtonRendererProps) => (\n <PropertyAction property={property} />\n ),\n ],\n []\n );\n\n return (\n <div className=\"gmw-select-query-generator-container\">\n {!dataProvider || selectionKeySet.size === 0 ? (\n <Alert type='informational'>\n Please select on an element within the viewer first, then select properties to generate a group query.\n </Alert>\n ) :\n <>\n <div className=\"gmw-select-property-grid-container\">\n <ResizableContainerObserver onResize={resize} />\n <PropertyGridWrapperContext.Provider value={propertyContextValues}>\n <VirtualizedPropertyGridWithDataProvider\n dataProvider={dataProvider}\n width={size.width}\n height={size.height}\n actionButtonRenderers={actionButtonRenderers}\n />\n </PropertyGridWrapperContext.Provider>\n </div>\n <div className=\"gmw-select-reset-button\">\n <Button\n styleType=\"default\"\n size=\"small\"\n onClick={onClickResetButton}\n >\n Reset\n </Button>\n </div>\n </>\n }\n </div>\n );\n};\n\n"]}
|
|
@@ -5,6 +5,6 @@ export declare const getGroupColor: (index: number) => string;
|
|
|
5
5
|
export declare const getHiliteIdsFromGroups: (iModelConnection: IModelConnection, groups: Group[], hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>) => Promise<string[]>;
|
|
6
6
|
export declare const hideGroups: (iModelConnection: IModelConnection, viewGroups: Group[], hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>) => Promise<void>;
|
|
7
7
|
export declare const hideGroup: (iModelConnection: IModelConnection, viewGroup: Group, hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>) => Promise<void>;
|
|
8
|
-
export declare const visualizeGroupColors: (iModelConnection: IModelConnection, groups: Group[], hiddenGroupsIds: Set<string>, hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>, doEmphasizeElements?: boolean) => Promise<void>;
|
|
8
|
+
export declare const visualizeGroupColors: (iModelConnection: IModelConnection, groups: Group[], hiddenGroupsIds: Set<string>, hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>, setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void, doEmphasizeElements?: boolean) => Promise<void>;
|
|
9
9
|
export declare const getHiliteIdsAndKeysetFromGroup: (iModelConnection: IModelConnection, group: Group, hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>) => Promise<QueryCacheItem>;
|
|
10
10
|
//# sourceMappingURL=groupsHelpers.d.ts.map
|
|
@@ -20,7 +20,7 @@ const getHiliteIdsFromGroups = async (iModelConnection, groups, hilitedElementsQ
|
|
|
20
20
|
for (const group of groups) {
|
|
21
21
|
if (!distinctQueries.has(group.query)) {
|
|
22
22
|
distinctQueries.add(group.query);
|
|
23
|
-
promises.push(exports.getHiliteIdsAndKeysetFromGroup(iModelConnection, group, hilitedElementsQueryCache));
|
|
23
|
+
promises.push((0, exports.getHiliteIdsAndKeysetFromGroup)(iModelConnection, group, hilitedElementsQueryCache));
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
const results = await Promise.all(promises);
|
|
@@ -34,30 +34,31 @@ const hideGroups = async (iModelConnection, viewGroups, hilitedElementsQueryCach
|
|
|
34
34
|
for (const viewGroup of viewGroups) {
|
|
35
35
|
if (!distinctQueries.has(viewGroup.query)) {
|
|
36
36
|
distinctQueries.add(viewGroup.query);
|
|
37
|
-
promises.push(exports.hideGroup(iModelConnection, viewGroup, hilitedElementsQueryCache));
|
|
37
|
+
promises.push((0, exports.hideGroup)(iModelConnection, viewGroup, hilitedElementsQueryCache));
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
await Promise.all(promises);
|
|
41
41
|
};
|
|
42
42
|
exports.hideGroups = hideGroups;
|
|
43
43
|
const hideGroup = async (iModelConnection, viewGroup, hilitedElementsQueryCache) => {
|
|
44
|
-
const result = await exports.getHiliteIdsAndKeysetFromGroup(iModelConnection, viewGroup, hilitedElementsQueryCache);
|
|
45
|
-
viewerUtils_1.hideElements(result.ids);
|
|
44
|
+
const result = await (0, exports.getHiliteIdsAndKeysetFromGroup)(iModelConnection, viewGroup, hilitedElementsQueryCache);
|
|
45
|
+
(0, viewerUtils_1.hideElements)(result.ids);
|
|
46
46
|
};
|
|
47
47
|
exports.hideGroup = hideGroup;
|
|
48
|
-
const processGroupVisualization = async (iModelConnection, group, hiddenGroupsIds, hilitedElementsQueryCache, doEmphasizeElements, groupColor) => {
|
|
49
|
-
const result = await exports.getHiliteIdsAndKeysetFromGroup(iModelConnection, group, hilitedElementsQueryCache);
|
|
48
|
+
const processGroupVisualization = async (iModelConnection, group, hiddenGroupsIds, hilitedElementsQueryCache, doEmphasizeElements, groupColor, setNumberOfVisualizedGroups) => {
|
|
49
|
+
const result = await (0, exports.getHiliteIdsAndKeysetFromGroup)(iModelConnection, group, hilitedElementsQueryCache);
|
|
50
50
|
const hilitedIds = result.ids;
|
|
51
|
-
viewerUtils_1.overrideElements(hilitedIds, groupColor, core_common_1.FeatureOverrideType.ColorAndAlpha);
|
|
52
|
-
|
|
51
|
+
(0, viewerUtils_1.overrideElements)(hilitedIds, groupColor, core_common_1.FeatureOverrideType.ColorAndAlpha);
|
|
52
|
+
setNumberOfVisualizedGroups((numberOfVisualizedGroups) => numberOfVisualizedGroups + 1);
|
|
53
|
+
doEmphasizeElements && (0, viewerUtils_1.emphasizeElements)(hilitedIds, undefined);
|
|
53
54
|
return hiddenGroupsIds.has(group.id) ? [] : hilitedIds;
|
|
54
55
|
};
|
|
55
|
-
const visualizeGroupColors = async (iModelConnection, groups, hiddenGroupsIds, hilitedElementsQueryCache, doEmphasizeElements = true) => {
|
|
56
|
-
viewerUtils_1.clearEmphasizedOverriddenElements();
|
|
57
|
-
const allIdsPromises = groups.map(async (group, index) => processGroupVisualization(iModelConnection, group, hiddenGroupsIds, hilitedElementsQueryCache, doEmphasizeElements, exports.getGroupColor(index)));
|
|
56
|
+
const visualizeGroupColors = async (iModelConnection, groups, hiddenGroupsIds, hilitedElementsQueryCache, setNumberOfVisualizedGroups, doEmphasizeElements = true) => {
|
|
57
|
+
(0, viewerUtils_1.clearEmphasizedOverriddenElements)();
|
|
58
|
+
const allIdsPromises = groups.map(async (group, index) => processGroupVisualization(iModelConnection, group, hiddenGroupsIds, hilitedElementsQueryCache, doEmphasizeElements, (0, exports.getGroupColor)(index), setNumberOfVisualizedGroups));
|
|
58
59
|
const allIdsArrays = await Promise.all(allIdsPromises);
|
|
59
60
|
const allIds = allIdsArrays.flat();
|
|
60
|
-
await viewerUtils_1.zoomToElements(allIds);
|
|
61
|
+
await (0, viewerUtils_1.zoomToElements)(allIds);
|
|
61
62
|
};
|
|
62
63
|
exports.visualizeGroupColors = visualizeGroupColors;
|
|
63
64
|
const getHiliteIdsAndKeysetFromGroup = async (iModelConnection, group, hilitedElementsQueryCache) => {
|
|
@@ -70,7 +71,7 @@ const getHiliteIdsAndKeysetFromGroup = async (iModelConnection, group, hilitedEl
|
|
|
70
71
|
if (queryRowCount === 0) {
|
|
71
72
|
itwinui_react_1.toaster.warning(`${group.groupName}'s query is valid but produced no results.`);
|
|
72
73
|
}
|
|
73
|
-
const result = await viewerUtils_1.getHiliteIds(query, iModelConnection);
|
|
74
|
+
const result = await (0, viewerUtils_1.getHiliteIds)(query, iModelConnection);
|
|
74
75
|
hilitedElementsQueryCache.current.set(query, result);
|
|
75
76
|
return result;
|
|
76
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groupsHelpers.js","sourceRoot":"","sources":["../../../../src/widget/components/groupsHelpers.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F,oDAAyD;AAGzD,wDAA+C;AAC/C,oEAAoD;AAEpD,+CAAmJ;AAEnJ,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,aAAa,GAAG,UAAU,KAAa;IAClD,OAAO,OAAO,KAAK,GAAG,WAAW,GAAG,EAAE,cAAc,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEK,MAAM,sBAAsB,GAAG,KAAK,EACzC,gBAAkC,EAClC,MAAe,EACf,yBAA8E,EAC9E,EAAE;IACF,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,QAAQ,GAAiC,EAAE,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACrC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,sCAA8B,
|
|
1
|
+
{"version":3,"file":"groupsHelpers.js","sourceRoot":"","sources":["../../../../src/widget/components/groupsHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { FeatureOverrideType } from \"@itwin/core-common\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport type { Group } from \"@itwin/insights-client\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport { KeySet } from \"@itwin/presentation-common\";\nimport type { QueryCacheItem } from \"./context/GroupHilitedElementsContext\";\nimport { clearEmphasizedOverriddenElements, emphasizeElements, getHiliteIds, hideElements, overrideElements, zoomToElements } from \"./viewerUtils\";\n\nconst goldenAngle = 180 * (3 - Math.sqrt(5));\n\nexport const getGroupColor = function (index: number) {\n return `hsl(${index * goldenAngle + 60}, 100%, 50%)`;\n};\n\nexport const getHiliteIdsFromGroups = async (\n iModelConnection: IModelConnection,\n groups: Group[],\n hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>\n) => {\n const distinctQueries = new Set<string>();\n const promises: Promise<{ ids: string[] }>[] = [];\n for (const group of groups) {\n if (!distinctQueries.has(group.query)) {\n distinctQueries.add(group.query);\n promises.push(getHiliteIdsAndKeysetFromGroup(iModelConnection, group, hilitedElementsQueryCache));\n }\n }\n const results = await Promise.all(promises);\n const allIds = results.flatMap((result) => result.ids);\n return allIds;\n};\n\nexport const hideGroups = async (\n iModelConnection: IModelConnection,\n viewGroups: Group[],\n hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>\n) => {\n const distinctQueries = new Set<string>();\n const promises: Promise<void>[] = [];\n\n for (const viewGroup of viewGroups) {\n if (!distinctQueries.has(viewGroup.query)) {\n distinctQueries.add(viewGroup.query);\n promises.push(hideGroup(iModelConnection, viewGroup, hilitedElementsQueryCache));\n }\n }\n await Promise.all(promises);\n};\n\nexport const hideGroup = async (\n iModelConnection: IModelConnection,\n viewGroup: Group,\n hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>\n) => {\n const result = await getHiliteIdsAndKeysetFromGroup(iModelConnection, viewGroup, hilitedElementsQueryCache);\n hideElements(result.ids);\n};\n\nconst processGroupVisualization = async (\n iModelConnection: IModelConnection,\n group: Group,\n hiddenGroupsIds: Set<string>,\n hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>,\n doEmphasizeElements: boolean,\n groupColor: string,\n setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void,\n) => {\n const result = await getHiliteIdsAndKeysetFromGroup(iModelConnection, group, hilitedElementsQueryCache);\n const hilitedIds = result.ids;\n overrideElements(hilitedIds, groupColor, FeatureOverrideType.ColorAndAlpha);\n setNumberOfVisualizedGroups((numberOfVisualizedGroups) => numberOfVisualizedGroups + 1);\n\n doEmphasizeElements && emphasizeElements(hilitedIds, undefined);\n\n return hiddenGroupsIds.has(group.id) ? [] : hilitedIds;\n};\n\nexport const visualizeGroupColors = async (\n iModelConnection: IModelConnection,\n groups: Group[],\n hiddenGroupsIds: Set<string>,\n hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>,\n setNumberOfVisualizedGroups: (numberOfVisualizedGroups: number | ((numberOfVisualizedGroups: number) => number)) => void,\n doEmphasizeElements: boolean = true,\n) => {\n clearEmphasizedOverriddenElements();\n\n const allIdsPromises = groups.map(async (group, index) =>\n processGroupVisualization(\n iModelConnection,\n group,\n hiddenGroupsIds,\n hilitedElementsQueryCache,\n doEmphasizeElements,\n getGroupColor(index),\n setNumberOfVisualizedGroups,\n )\n );\n\n const allIdsArrays = await Promise.all(allIdsPromises);\n const allIds = allIdsArrays.flat();\n\n await zoomToElements(allIds);\n};\n\nexport const getHiliteIdsAndKeysetFromGroup = async (\n iModelConnection: IModelConnection,\n group: Group,\n hilitedElementsQueryCache: React.MutableRefObject<Map<string, QueryCacheItem>>\n) => {\n const query = group.query;\n if (hilitedElementsQueryCache.current.has(query)) {\n return hilitedElementsQueryCache.current.get(query) ?? ({ keySet: new KeySet(), ids: [] });\n }\n try {\n const queryRowCount = await iModelConnection.queryRowCount(query);\n if (queryRowCount === 0) {\n toaster.warning(\n `${group.groupName}'s query is valid but produced no results.`\n );\n }\n const result = await getHiliteIds(query, iModelConnection);\n hilitedElementsQueryCache.current.set(query, result);\n return result;\n } catch {\n toaster.negative(\n `Query could not be resolved.`\n );\n return ({ keySet: new KeySet(), ids: [] });\n }\n\n};\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { IMappingsClient, Mapping } from "@itwin/insights-client";
|
|
3
|
+
import type { GroupingMappingApiConfig } from "../context/GroupingApiConfigContext";
|
|
4
|
+
export interface MappingsOperationsProps extends GroupingMappingApiConfig {
|
|
5
|
+
mappingClient: IMappingsClient;
|
|
6
|
+
}
|
|
7
|
+
export declare const useMappingsOperations: ({ iModelId, getAccessToken, mappingClient }: MappingsOperationsProps) => {
|
|
8
|
+
mappings: Mapping[];
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
refresh: () => Promise<void>;
|
|
11
|
+
toggleExtraction: (mapping: Mapping) => Promise<void>;
|
|
12
|
+
onDelete: (mapping: Mapping) => Promise<void>;
|
|
13
|
+
setShowDeleteModal: import("react").Dispatch<import("react").SetStateAction<Mapping | undefined>>;
|
|
14
|
+
showDeleteModal: Mapping | undefined;
|
|
15
|
+
isTogglingExtraction: boolean;
|
|
16
|
+
errorMessage: string | undefined;
|
|
17
|
+
setErrorMessage: import("react").Dispatch<import("react").SetStateAction<string | undefined>>;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useMappingsOperations.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMappingsOperations = void 0;
|
|
4
|
+
/*---------------------------------------------------------------------------------------------
|
|
5
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
const fetchMappings = async (setMappings, iModelId, setIsLoading, getAccessToken, mappingsClient, setErrorMessage) => {
|
|
11
|
+
try {
|
|
12
|
+
setIsLoading(true);
|
|
13
|
+
const accessToken = await getAccessToken();
|
|
14
|
+
const mappings = await mappingsClient.getMappings(accessToken, iModelId);
|
|
15
|
+
setMappings(mappings.sort((a, b) => a.mappingName.localeCompare(b.mappingName)));
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
setErrorMessage((0, utils_1.getErrorMessage)(error.status));
|
|
19
|
+
}
|
|
20
|
+
finally {
|
|
21
|
+
setIsLoading(false);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const useMappingsOperations = ({ iModelId, getAccessToken, mappingClient }) => {
|
|
25
|
+
const [showDeleteModal, setShowDeleteModal] = (0, react_1.useState)(undefined);
|
|
26
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(true);
|
|
27
|
+
const [mappings, setMappings] = (0, react_1.useState)([]);
|
|
28
|
+
const [errorMessage, setErrorMessage] = (0, react_1.useState)(undefined);
|
|
29
|
+
const [isTogglingExtraction, setIsTogglingExtraction] = (0, react_1.useState)(false);
|
|
30
|
+
(0, react_1.useEffect)(() => {
|
|
31
|
+
void fetchMappings(setMappings, iModelId, setIsLoading, getAccessToken, mappingClient, setErrorMessage);
|
|
32
|
+
}, [getAccessToken, mappingClient, iModelId]);
|
|
33
|
+
const refresh = (0, react_1.useCallback)(async () => {
|
|
34
|
+
setMappings([]);
|
|
35
|
+
await fetchMappings(setMappings, iModelId, setIsLoading, getAccessToken, mappingClient, setErrorMessage);
|
|
36
|
+
}, [getAccessToken, mappingClient, iModelId]);
|
|
37
|
+
const toggleExtraction = (0, react_1.useCallback)(async (mapping) => {
|
|
38
|
+
try {
|
|
39
|
+
setIsTogglingExtraction(true);
|
|
40
|
+
const newState = !mapping.extractionEnabled;
|
|
41
|
+
const accessToken = await getAccessToken();
|
|
42
|
+
await mappingClient.updateMapping(accessToken, iModelId, mapping.id, {
|
|
43
|
+
extractionEnabled: newState,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
setErrorMessage((0, utils_1.getErrorMessage)(error.status));
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
setIsTogglingExtraction(false);
|
|
51
|
+
}
|
|
52
|
+
}, [getAccessToken, iModelId, mappingClient]);
|
|
53
|
+
const onDelete = async (mapping) => {
|
|
54
|
+
const accessToken = await getAccessToken();
|
|
55
|
+
await mappingClient.deleteMapping(accessToken, iModelId, mapping.id);
|
|
56
|
+
await refresh();
|
|
57
|
+
};
|
|
58
|
+
return { mappings, isLoading, refresh, toggleExtraction, onDelete, setShowDeleteModal, showDeleteModal, isTogglingExtraction, errorMessage, setErrorMessage };
|
|
59
|
+
};
|
|
60
|
+
exports.useMappingsOperations = useMappingsOperations;
|
|
61
|
+
//# sourceMappingURL=useMappingsOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMappingsOperations.js","sourceRoot":"","sources":["../../../../../src/widget/components/hooks/useMappingsOperations.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { useCallback, useEffect, useState } from \"react\";\nimport {\n getErrorMessage,\n} from \"../utils\";\nimport type { IMappingsClient, Mapping } from \"@itwin/insights-client\";\nimport type { GroupingMappingApiConfig } from \"../context/GroupingApiConfigContext\";\nimport type { GetAccessTokenFn } from \"../context/GroupingApiConfigContext\";\n\nconst fetchMappings = async (\n setMappings: React.Dispatch<React.SetStateAction<Mapping[]>>,\n iModelId: string,\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>,\n getAccessToken: GetAccessTokenFn,\n mappingsClient: IMappingsClient,\n setErrorMessage: (message: string | undefined) => void\n) => {\n try {\n setIsLoading(true);\n const accessToken = await getAccessToken();\n const mappings = await mappingsClient.getMappings(accessToken, iModelId);\n setMappings(mappings.sort((a, b) => a.mappingName.localeCompare(b.mappingName)));\n } catch (error: any) {\n setErrorMessage(getErrorMessage(error.status));\n } finally {\n setIsLoading(false);\n }\n};\n\nexport interface MappingsOperationsProps extends GroupingMappingApiConfig {\n mappingClient: IMappingsClient;\n}\n\nexport const useMappingsOperations = ({ iModelId, getAccessToken, mappingClient }: MappingsOperationsProps) => {\n const [showDeleteModal, setShowDeleteModal] = useState<Mapping | undefined>(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [mappings, setMappings] = useState<Mapping[]>([]);\n const [errorMessage, setErrorMessage] = useState<string | undefined>(undefined);\n const [isTogglingExtraction, setIsTogglingExtraction] = useState<boolean>(false);\n\n useEffect(() => {\n void fetchMappings(setMappings, iModelId, setIsLoading, getAccessToken, mappingClient, setErrorMessage);\n }, [getAccessToken, mappingClient, iModelId]);\n\n const refresh = useCallback(async () => {\n setMappings([]);\n await fetchMappings(setMappings, iModelId, setIsLoading, getAccessToken, mappingClient, setErrorMessage);\n }, [getAccessToken, mappingClient, iModelId]);\n\n const toggleExtraction = useCallback(async (mapping: Mapping) => {\n try {\n setIsTogglingExtraction(true);\n const newState = !mapping.extractionEnabled;\n const accessToken = await getAccessToken();\n await mappingClient.updateMapping(accessToken, iModelId, mapping.id, {\n extractionEnabled: newState,\n });\n } catch (error: any) {\n setErrorMessage(getErrorMessage(error.status));\n } finally {\n setIsTogglingExtraction(false);\n }\n }, [getAccessToken, iModelId, mappingClient]);\n\n const onDelete = async (mapping: Mapping) => {\n const accessToken = await getAccessToken();\n await mappingClient.deleteMapping(accessToken, iModelId, mapping.id);\n await refresh();\n };\n\n return { mappings, isLoading, refresh, toggleExtraction, onDelete, setShowDeleteModal, showDeleteModal, isTogglingExtraction, errorMessage, setErrorMessage };\n};\n"]}
|
|
@@ -3,6 +3,7 @@ import React from "react";
|
|
|
3
3
|
import type { IModelConnection } from "@itwin/core-frontend";
|
|
4
4
|
export declare const handleInputChange: <T>(e: React.ChangeEvent<HTMLInputElement>, values: T, setValues: (newValues: T) => void) => void;
|
|
5
5
|
export declare const fetchIdsFromQuery: (query: string, iModelConnection: IModelConnection) => Promise<string[]>;
|
|
6
|
+
export declare const getErrorMessage: (errorStatus: number) => string;
|
|
6
7
|
export declare const handleError: (errorStatus: number) => void;
|
|
7
8
|
export declare const LoadingOverlay: () => JSX.Element;
|
|
8
9
|
interface EmptyMessageProps {
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.LoadingSpinner = exports.EmptyMessage = exports.LoadingOverlay = exports.handleError = exports.fetchIdsFromQuery = exports.handleInputChange = void 0;
|
|
6
|
+
exports.LoadingSpinner = exports.EmptyMessage = exports.LoadingOverlay = exports.handleError = exports.getErrorMessage = exports.fetchIdsFromQuery = exports.handleInputChange = void 0;
|
|
7
7
|
/*---------------------------------------------------------------------------------------------
|
|
8
8
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
9
9
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -46,40 +46,36 @@ const fetchIdsFromQuery = async (query, iModelConnection) => {
|
|
|
46
46
|
return ids;
|
|
47
47
|
};
|
|
48
48
|
exports.fetchIdsFromQuery = fetchIdsFromQuery;
|
|
49
|
-
const
|
|
50
|
-
let errorMessage = "Error! ";
|
|
49
|
+
const getErrorMessage = (errorStatus) => {
|
|
51
50
|
switch (errorStatus) {
|
|
52
51
|
case 401:
|
|
53
|
-
|
|
54
|
-
break;
|
|
52
|
+
return "You are unauthorized to do this operation.";
|
|
55
53
|
case 403:
|
|
56
|
-
|
|
57
|
-
break;
|
|
54
|
+
return "You don't have permission to access the requested resource.";
|
|
58
55
|
case 404:
|
|
59
|
-
|
|
60
|
-
break;
|
|
56
|
+
return "The requested resource was not found.";
|
|
61
57
|
case 409:
|
|
62
|
-
|
|
63
|
-
break;
|
|
58
|
+
return "This property name is already being used.";
|
|
64
59
|
case 422:
|
|
65
|
-
|
|
66
|
-
break;
|
|
60
|
+
return "Unable to process the request.";
|
|
67
61
|
case 429:
|
|
68
|
-
|
|
69
|
-
break;
|
|
62
|
+
return "Too many requests.";
|
|
70
63
|
case 500:
|
|
71
|
-
|
|
72
|
-
break;
|
|
64
|
+
return "Internal server error.";
|
|
73
65
|
case 502:
|
|
74
|
-
|
|
75
|
-
break;
|
|
66
|
+
return "Bad gateway.";
|
|
76
67
|
case 503:
|
|
77
|
-
|
|
78
|
-
break;
|
|
68
|
+
return "Service unavailable.";
|
|
79
69
|
default:
|
|
80
|
-
|
|
70
|
+
return "Something went wrong!";
|
|
81
71
|
}
|
|
82
|
-
|
|
72
|
+
};
|
|
73
|
+
exports.getErrorMessage = getErrorMessage;
|
|
74
|
+
const handleError = (errorStatus) => {
|
|
75
|
+
const baseErrorMessage = "Error!";
|
|
76
|
+
const specificErrorMessage = (0, exports.getErrorMessage)(errorStatus);
|
|
77
|
+
const fullErrorMessage = `${baseErrorMessage} ${specificErrorMessage}`;
|
|
78
|
+
itwinui_react_1.toaster.negative(fullErrorMessage);
|
|
83
79
|
};
|
|
84
80
|
exports.handleError = handleError;
|
|
85
81
|
const LoadingOverlay = () => (react_1.default.createElement("div", { className: 'gmw-center-overlay' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/widget/components/utils.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,wDAAqE;AACrE,wBAAsB;AACtB,kDAA0B;AAE1B,oDAAoD;AAE7C,MAAM,iBAAiB,GAAG,CAC/B,CAAsC,EACtC,MAAS,EACT,SAAiC,EACjC,EAAE;IACF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;IAEjC,SAAS,CAAC;QACR,GAAG,MAAM;QACT,CAAC,IAAI,CAAC,EAAE,KAAK;KACd,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B;AAEK,MAAM,iBAAiB,GAAG,KAAK,EACpC,KAAa,EACb,gBAAkC,EAClC,EAAE;IACF,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,EAAE,CAAC;KACX;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE;QAC3D,SAAS,EAAE,4BAAc,CAAC,kBAAkB;KAC7C,CAAC,CAAC;IACH,OAAO,IAAI,EAAE;QACX,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,IAAI,EAAE;YACR,MAAM;SACP;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACpB;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YACpD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;SAC/B;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACtD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9B;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B;AAEK,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/widget/components/utils.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 { ProgressRadial, Text, toaster } from \"@itwin/itwinui-react\";\nimport \"./utils.scss\";\nimport React from \"react\";\nimport type { IModelConnection } from \"@itwin/core-frontend\";\nimport { QueryRowFormat } from \"@itwin/core-common\";\n\nexport const handleInputChange = <T,>(\n e: React.ChangeEvent<HTMLInputElement>,\n values: T,\n setValues: (newValues: T) => void,\n) => {\n const { name, value } = e.target;\n\n setValues({\n ...values,\n [name]: value,\n });\n};\n\nexport const fetchIdsFromQuery = async (\n query: string,\n iModelConnection: IModelConnection,\n) => {\n if (query === \"\") {\n return [];\n }\n const ids: string[] = [];\n const rowIterator = iModelConnection.query(query, undefined, {\n rowFormat: QueryRowFormat.UseJsPropertyNames,\n });\n while (true) {\n const { done, value } = await rowIterator.next();\n if (done) {\n break;\n }\n if (Object.keys(value).includes(\"id\")) {\n ids.push(value.id);\n } else if (Object.keys(value).includes(\"element.id\")) {\n ids.push(value[\"element.id\"]);\n } else if (Object.keys(value).includes(\"eCInstanceId\")) {\n ids.push(value.eCInstanceId);\n }\n }\n return ids;\n};\n\nexport const getErrorMessage = (errorStatus: number): string => {\n switch (errorStatus) {\n case 401:\n return \"You are unauthorized to do this operation.\";\n case 403:\n return \"You don't have permission to access the requested resource.\";\n case 404:\n return \"The requested resource was not found.\";\n case 409:\n return \"This property name is already being used.\";\n case 422:\n return \"Unable to process the request.\";\n case 429:\n return \"Too many requests.\";\n case 500:\n return \"Internal server error.\";\n case 502:\n return \"Bad gateway.\";\n case 503:\n return \"Service unavailable.\";\n default:\n return \"Something went wrong!\";\n }\n};\n\nexport const handleError = (errorStatus: number) => {\n const baseErrorMessage = \"Error!\";\n const specificErrorMessage = getErrorMessage(errorStatus);\n const fullErrorMessage = `${baseErrorMessage} ${specificErrorMessage}`;\n\n toaster.negative(fullErrorMessage);\n};\n\nexport const LoadingOverlay = () => (\n <div className='gmw-center-overlay'>\n <Text>Loading</Text>\n <ProgressRadial indeterminate />\n <Text>Please wait...</Text>\n </div>\n);\n\ninterface EmptyMessageProps {\n message: string;\n}\n\nexport const EmptyMessage = ({ message }: EmptyMessageProps) => (\n <div className='gmw-center-overlay'>\n <Text>{message}</Text>\n </div>\n);\n\nexport const LoadingSpinner = () => {\n return (\n <div className=\"gmw-loading-spinner\">\n <ProgressRadial size=\"small\" indeterminate />\n </div>\n );\n};\n"]}
|
|
@@ -16,7 +16,7 @@ const isolateElementsByKeys = async (keySet, replace = false) => {
|
|
|
16
16
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
17
17
|
if (set.elements) {
|
|
18
18
|
const ids = [...set.elements];
|
|
19
|
-
exports.isolateElements(ids, replace);
|
|
19
|
+
(0, exports.isolateElements)(ids, replace);
|
|
20
20
|
return ids;
|
|
21
21
|
}
|
|
22
22
|
return [];
|
|
@@ -27,14 +27,14 @@ const isolateElementsByQuery = async (query, iModelConnection, replace = false)
|
|
|
27
27
|
return [];
|
|
28
28
|
}
|
|
29
29
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
30
|
-
const keySet = await exports.manufactureKeys(query, iModelConnection);
|
|
30
|
+
const keySet = await (0, exports.manufactureKeys)(query, iModelConnection);
|
|
31
31
|
const hiliteProvider = presentation_frontend_1.HiliteSetProvider.create({
|
|
32
32
|
imodel: vp.iModel,
|
|
33
33
|
});
|
|
34
34
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
35
35
|
if (set.elements) {
|
|
36
36
|
const ids = [...set.elements];
|
|
37
|
-
exports.isolateElements(ids, replace);
|
|
37
|
+
(0, exports.isolateElements)(ids, replace);
|
|
38
38
|
return ids;
|
|
39
39
|
}
|
|
40
40
|
return [];
|
|
@@ -81,14 +81,14 @@ const overrideElementsByQuery = async (iModelConnection, query, color, overrideT
|
|
|
81
81
|
return [];
|
|
82
82
|
}
|
|
83
83
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
84
|
-
const keySet = await exports.manufactureKeys(query, iModelConnection);
|
|
84
|
+
const keySet = await (0, exports.manufactureKeys)(query, iModelConnection);
|
|
85
85
|
const hiliteProvider = presentation_frontend_1.HiliteSetProvider.create({
|
|
86
86
|
imodel: vp.iModel,
|
|
87
87
|
});
|
|
88
88
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
89
89
|
if (set.elements) {
|
|
90
90
|
const ids = [...set.elements];
|
|
91
|
-
exports.overrideElements(ids, color, overrideType);
|
|
91
|
+
(0, exports.overrideElements)(ids, color, overrideType);
|
|
92
92
|
return ids;
|
|
93
93
|
}
|
|
94
94
|
return [];
|
|
@@ -127,14 +127,14 @@ const emphasisElementsByQuery = async (iModelConnection, query, defaultAppearanc
|
|
|
127
127
|
return [];
|
|
128
128
|
}
|
|
129
129
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
130
|
-
const keySet = await exports.manufactureKeys(query, iModelConnection);
|
|
130
|
+
const keySet = await (0, exports.manufactureKeys)(query, iModelConnection);
|
|
131
131
|
const hiliteProvider = presentation_frontend_1.HiliteSetProvider.create({
|
|
132
132
|
imodel: vp.iModel,
|
|
133
133
|
});
|
|
134
134
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
135
135
|
if (set.elements) {
|
|
136
136
|
const ids = [...set.elements];
|
|
137
|
-
exports.emphasizeElements(ids, defaultAppearance, replace);
|
|
137
|
+
(0, exports.emphasizeElements)(ids, defaultAppearance, replace);
|
|
138
138
|
return ids;
|
|
139
139
|
}
|
|
140
140
|
return [];
|
|
@@ -151,7 +151,7 @@ const emphasizeElementsByKeys = async (keySet, defaultAppearance = undefined, re
|
|
|
151
151
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
152
152
|
if (set.elements) {
|
|
153
153
|
const ids = [...set.elements];
|
|
154
|
-
exports.emphasizeElements(ids, defaultAppearance, replace);
|
|
154
|
+
(0, exports.emphasizeElements)(ids, defaultAppearance, replace);
|
|
155
155
|
return ids;
|
|
156
156
|
}
|
|
157
157
|
return [];
|
|
@@ -162,14 +162,14 @@ const visualizeElementsByQuery = async (query, color, iModelConnection, replace
|
|
|
162
162
|
return [];
|
|
163
163
|
}
|
|
164
164
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
165
|
-
const keySet = await exports.manufactureKeys(query, iModelConnection);
|
|
165
|
+
const keySet = await (0, exports.manufactureKeys)(query, iModelConnection);
|
|
166
166
|
const hiliteProvider = presentation_frontend_1.HiliteSetProvider.create({
|
|
167
167
|
imodel: vp.iModel,
|
|
168
168
|
});
|
|
169
169
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
170
170
|
if (set.elements) {
|
|
171
171
|
const ids = [...set.elements];
|
|
172
|
-
exports.visualizeElements(ids, color, replace, wantEmphasis);
|
|
172
|
+
(0, exports.visualizeElements)(ids, color, replace, wantEmphasis);
|
|
173
173
|
return ids;
|
|
174
174
|
}
|
|
175
175
|
return [];
|
|
@@ -186,7 +186,7 @@ const visualizeElementsByKeys = async (keySet, color, replace = false, wantEmpha
|
|
|
186
186
|
const set = await hiliteProvider.getHiliteSet(keySet);
|
|
187
187
|
if (set.elements) {
|
|
188
188
|
const ids = [...set.elements];
|
|
189
|
-
exports.visualizeElements(ids, color, replace, wantEmphasis);
|
|
189
|
+
(0, exports.visualizeElements)(ids, color, replace, wantEmphasis);
|
|
190
190
|
return ids;
|
|
191
191
|
}
|
|
192
192
|
return [];
|
|
@@ -237,7 +237,7 @@ const getHiliteIds = async (query, iModelConnection) => {
|
|
|
237
237
|
return ({ keySet: new presentation_common_1.KeySet(), ids: [] });
|
|
238
238
|
}
|
|
239
239
|
const vp = core_frontend_1.IModelApp.viewManager.selectedView;
|
|
240
|
-
const keySet = await exports.manufactureKeys(query, iModelConnection);
|
|
240
|
+
const keySet = await (0, exports.manufactureKeys)(query, iModelConnection);
|
|
241
241
|
const hiliteProvider = presentation_frontend_1.HiliteSetProvider.create({
|
|
242
242
|
imodel: vp.iModel,
|
|
243
243
|
});
|