@itwin/grouping-mapping-widget 0.2.3 → 0.3.2

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 (139) hide show
  1. package/lib/cjs/widget/GroupingMappingWidget.d.ts +4 -0
  2. package/lib/cjs/widget/GroupingMappingWidget.js +6 -23
  3. package/lib/cjs/widget/GroupingMappingWidget.js.map +1 -1
  4. package/lib/cjs/widget/components/ActionPanel.d.ts +3 -2
  5. package/lib/cjs/widget/components/ActionPanel.js +3 -3
  6. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  7. package/lib/cjs/widget/components/CalculatedPropertyAction.d.ts +2 -2
  8. package/lib/cjs/widget/components/CalculatedPropertyAction.js +14 -9
  9. package/lib/cjs/widget/components/CalculatedPropertyAction.js.map +1 -1
  10. package/lib/cjs/widget/components/CalculatedPropertyAction.scss +5 -5
  11. package/lib/cjs/widget/components/CalculatedPropertyTable.d.ts +5 -5
  12. package/lib/cjs/widget/components/CalculatedPropertyTable.js +15 -16
  13. package/lib/cjs/widget/components/CalculatedPropertyTable.js.map +1 -1
  14. package/lib/cjs/widget/components/ConfirmMappingsImport.d.ts +3 -3
  15. package/lib/cjs/widget/components/ConfirmMappingsImport.js +6 -3
  16. package/lib/cjs/widget/components/ConfirmMappingsImport.js.map +1 -1
  17. package/lib/cjs/widget/components/CustomCalculationAction.d.ts +2 -2
  18. package/lib/cjs/widget/components/CustomCalculationAction.js +15 -9
  19. package/lib/cjs/widget/components/CustomCalculationAction.js.map +1 -1
  20. package/lib/cjs/widget/components/CustomCalculationTable.d.ts +5 -5
  21. package/lib/cjs/widget/components/CustomCalculationTable.js +15 -16
  22. package/lib/cjs/widget/components/CustomCalculationTable.js.map +1 -1
  23. package/lib/cjs/widget/components/GroupAction.d.ts +2 -2
  24. package/lib/cjs/widget/components/GroupAction.js +25 -42
  25. package/lib/cjs/widget/components/GroupAction.js.map +1 -1
  26. package/lib/cjs/widget/components/GroupPropertyAction.js +9 -5
  27. package/lib/cjs/widget/components/GroupPropertyAction.js.map +1 -1
  28. package/lib/cjs/widget/components/GroupPropertyTable.d.ts +5 -5
  29. package/lib/cjs/widget/components/GroupPropertyTable.js +15 -16
  30. package/lib/cjs/widget/components/GroupPropertyTable.js.map +1 -1
  31. package/lib/cjs/widget/components/Grouping.d.ts +3 -3
  32. package/lib/cjs/widget/components/Grouping.js +26 -26
  33. package/lib/cjs/widget/components/Grouping.js.map +1 -1
  34. package/lib/cjs/widget/components/GroupingMapping.d.ts +12 -2
  35. package/lib/cjs/widget/components/GroupingMapping.js +18 -4
  36. package/lib/cjs/widget/components/GroupingMapping.js.map +1 -1
  37. package/lib/cjs/widget/components/Mapping.d.ts +2 -2
  38. package/lib/cjs/widget/components/Mapping.js +14 -14
  39. package/lib/cjs/widget/components/Mapping.js.map +1 -1
  40. package/lib/cjs/widget/components/MappingAction.d.ts +2 -2
  41. package/lib/cjs/widget/components/MappingAction.js +7 -4
  42. package/lib/cjs/widget/components/MappingAction.js.map +1 -1
  43. package/lib/cjs/widget/components/MappingImportWizardModal.js.map +1 -1
  44. package/lib/cjs/widget/components/PropertyMenu.d.ts +2 -2
  45. package/lib/cjs/widget/components/PropertyMenu.js.map +1 -1
  46. package/lib/cjs/widget/components/SelectIModel.js +4 -8
  47. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  48. package/lib/cjs/widget/components/SelectMappings.d.ts +2 -2
  49. package/lib/cjs/widget/components/SelectMappings.js +10 -11
  50. package/lib/cjs/widget/components/SelectMappings.js.map +1 -1
  51. package/lib/cjs/widget/components/SelectProject.js +4 -8
  52. package/lib/cjs/widget/components/SelectProject.js.map +1 -1
  53. package/lib/cjs/widget/components/property-grid/PropertyView.js +4 -1
  54. package/lib/cjs/widget/components/property-grid/PropertyView.js.map +1 -1
  55. package/lib/esm/widget/GroupingMappingWidget.d.ts +4 -0
  56. package/lib/esm/widget/GroupingMappingWidget.js +6 -4
  57. package/lib/esm/widget/GroupingMappingWidget.js.map +1 -1
  58. package/lib/esm/widget/components/ActionPanel.d.ts +3 -2
  59. package/lib/esm/widget/components/ActionPanel.js +3 -3
  60. package/lib/esm/widget/components/ActionPanel.js.map +1 -1
  61. package/lib/esm/widget/components/CalculatedPropertyAction.d.ts +2 -2
  62. package/lib/esm/widget/components/CalculatedPropertyAction.js +15 -10
  63. package/lib/esm/widget/components/CalculatedPropertyAction.js.map +1 -1
  64. package/lib/esm/widget/components/CalculatedPropertyAction.scss +5 -5
  65. package/lib/esm/widget/components/CalculatedPropertyTable.d.ts +5 -5
  66. package/lib/esm/widget/components/CalculatedPropertyTable.js +16 -17
  67. package/lib/esm/widget/components/CalculatedPropertyTable.js.map +1 -1
  68. package/lib/esm/widget/components/ConfirmMappingsImport.d.ts +3 -3
  69. package/lib/esm/widget/components/ConfirmMappingsImport.js +7 -4
  70. package/lib/esm/widget/components/ConfirmMappingsImport.js.map +1 -1
  71. package/lib/esm/widget/components/CustomCalculationAction.d.ts +2 -2
  72. package/lib/esm/widget/components/CustomCalculationAction.js +16 -10
  73. package/lib/esm/widget/components/CustomCalculationAction.js.map +1 -1
  74. package/lib/esm/widget/components/CustomCalculationTable.d.ts +5 -5
  75. package/lib/esm/widget/components/CustomCalculationTable.js +16 -17
  76. package/lib/esm/widget/components/CustomCalculationTable.js.map +1 -1
  77. package/lib/esm/widget/components/GroupAction.d.ts +2 -2
  78. package/lib/esm/widget/components/GroupAction.js +26 -43
  79. package/lib/esm/widget/components/GroupAction.js.map +1 -1
  80. package/lib/esm/widget/components/GroupPropertyAction.js +10 -6
  81. package/lib/esm/widget/components/GroupPropertyAction.js.map +1 -1
  82. package/lib/esm/widget/components/GroupPropertyTable.d.ts +5 -5
  83. package/lib/esm/widget/components/GroupPropertyTable.js +16 -17
  84. package/lib/esm/widget/components/GroupPropertyTable.js.map +1 -1
  85. package/lib/esm/widget/components/Grouping.d.ts +3 -3
  86. package/lib/esm/widget/components/Grouping.js +27 -27
  87. package/lib/esm/widget/components/Grouping.js.map +1 -1
  88. package/lib/esm/widget/components/GroupingMapping.d.ts +12 -2
  89. package/lib/esm/widget/components/GroupingMapping.js +17 -4
  90. package/lib/esm/widget/components/GroupingMapping.js.map +1 -1
  91. package/lib/esm/widget/components/Mapping.d.ts +2 -2
  92. package/lib/esm/widget/components/Mapping.js +15 -15
  93. package/lib/esm/widget/components/Mapping.js.map +1 -1
  94. package/lib/esm/widget/components/MappingAction.d.ts +2 -2
  95. package/lib/esm/widget/components/MappingAction.js +8 -5
  96. package/lib/esm/widget/components/MappingAction.js.map +1 -1
  97. package/lib/esm/widget/components/MappingImportWizardModal.js.map +1 -1
  98. package/lib/esm/widget/components/PropertyMenu.d.ts +2 -2
  99. package/lib/esm/widget/components/PropertyMenu.js.map +1 -1
  100. package/lib/esm/widget/components/SelectIModel.js +5 -6
  101. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  102. package/lib/esm/widget/components/SelectMappings.d.ts +2 -2
  103. package/lib/esm/widget/components/SelectMappings.js +11 -12
  104. package/lib/esm/widget/components/SelectMappings.js.map +1 -1
  105. package/lib/esm/widget/components/SelectProject.js +5 -6
  106. package/lib/esm/widget/components/SelectProject.js.map +1 -1
  107. package/lib/esm/widget/components/property-grid/PropertyView.js +4 -1
  108. package/lib/esm/widget/components/property-grid/PropertyView.js.map +1 -1
  109. package/package.json +6 -3
  110. package/lib/cjs/api/generated/api.d.ts +0 -3222
  111. package/lib/cjs/api/generated/api.js +0 -5291
  112. package/lib/cjs/api/generated/api.js.map +0 -1
  113. package/lib/cjs/api/generated/configuration.d.ts +0 -56
  114. package/lib/cjs/api/generated/configuration.js +0 -30
  115. package/lib/cjs/api/generated/configuration.js.map +0 -1
  116. package/lib/cjs/api/generated/index.d.ts +0 -14
  117. package/lib/cjs/api/generated/index.js +0 -31
  118. package/lib/cjs/api/generated/index.js.map +0 -1
  119. package/lib/cjs/api/reportingClient.d.ts +0 -34
  120. package/lib/cjs/api/reportingClient.js +0 -177
  121. package/lib/cjs/api/reportingClient.js.map +0 -1
  122. package/lib/cjs/widget/hooks/useFetchAccessToken.d.ts +0 -3
  123. package/lib/cjs/widget/hooks/useFetchAccessToken.js +0 -22
  124. package/lib/cjs/widget/hooks/useFetchAccessToken.js.map +0 -1
  125. package/lib/esm/api/generated/api.d.ts +0 -3222
  126. package/lib/esm/api/generated/api.js +0 -5248
  127. package/lib/esm/api/generated/api.js.map +0 -1
  128. package/lib/esm/api/generated/configuration.d.ts +0 -56
  129. package/lib/esm/api/generated/configuration.js +0 -26
  130. package/lib/esm/api/generated/configuration.js.map +0 -1
  131. package/lib/esm/api/generated/index.d.ts +0 -14
  132. package/lib/esm/api/generated/index.js +0 -19
  133. package/lib/esm/api/generated/index.js.map +0 -1
  134. package/lib/esm/api/reportingClient.d.ts +0 -34
  135. package/lib/esm/api/reportingClient.js +0 -173
  136. package/lib/esm/api/reportingClient.js.map +0 -1
  137. package/lib/esm/widget/hooks/useFetchAccessToken.d.ts +0 -3
  138. package/lib/esm/widget/hooks/useFetchAccessToken.js +0 -20
  139. package/lib/esm/widget/hooks/useFetchAccessToken.js.map +0 -1
@@ -1,5 +1,15 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import "./GroupingMapping.scss";
3
- declare const GroupingMapping: () => JSX.Element;
3
+ import type { AccessToken } from "@itwin/core-bentley";
4
+ export interface Api {
5
+ accessToken: AccessToken;
6
+ prefix?: "" | "dev" | "qa";
7
+ }
8
+ export declare const ApiContext: React.Context<Api>;
9
+ interface GroupingMappingProps {
10
+ accessToken?: AccessToken;
11
+ prefix?: "" | "dev" | "qa";
12
+ }
13
+ declare const GroupingMapping: ({ accessToken, prefix }: GroupingMappingProps) => JSX.Element | null;
4
14
  export default GroupingMapping;
5
15
  //# sourceMappingURL=GroupingMapping.d.ts.map
@@ -19,16 +19,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.ApiContext = void 0;
22
23
  /*---------------------------------------------------------------------------------------------
23
24
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
24
25
  * See LICENSE.md in the project root for license terms and full copyright notice.
25
26
  *--------------------------------------------------------------------------------------------*/
26
- const React = __importStar(require("react"));
27
+ const react_1 = __importStar(require("react"));
27
28
  const Mapping_1 = require("./Mapping");
28
29
  require("./GroupingMapping.scss");
29
- const GroupingMapping = () => {
30
- return (React.createElement("div", { className: 'group-mapping-container' },
31
- React.createElement(Mapping_1.Mappings, null)));
30
+ const core_frontend_1 = require("@itwin/core-frontend");
31
+ exports.ApiContext = react_1.createContext({ accessToken: "" });
32
+ const GroupingMapping = ({ accessToken, prefix }) => {
33
+ const [currentAccessToken, setCurrentAccessToken] = react_1.useState("");
34
+ react_1.useEffect(() => {
35
+ // If no access token is provided, fetch it from session
36
+ const fetchAccessToken = async () => {
37
+ var _a, _b;
38
+ const token = accessToken !== null && accessToken !== void 0 ? accessToken : ((_b = await ((_a = core_frontend_1.IModelApp.authorizationClient) === null || _a === void 0 ? void 0 : _a.getAccessToken())) !== null && _b !== void 0 ? _b : "");
39
+ setCurrentAccessToken(token);
40
+ };
41
+ void fetchAccessToken();
42
+ }, [accessToken, setCurrentAccessToken]);
43
+ return (currentAccessToken ? react_1.default.createElement(exports.ApiContext.Provider, { value: { accessToken: currentAccessToken, prefix } },
44
+ react_1.default.createElement("div", { className: 'group-mapping-container' },
45
+ react_1.default.createElement(Mapping_1.Mappings, null))) : null);
32
46
  };
33
47
  exports.default = GroupingMapping;
34
48
  //# sourceMappingURL=GroupingMapping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupingMapping.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupingMapping.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,uCAAqC;AACrC,kCAAgC;AAEhC,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,CACL,6BAAK,SAAS,EAAC,yBAAyB;QACtC,oBAAC,kBAAQ,OAAG,CACR,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport * as React from \"react\";\nimport { Mappings } from \"./Mapping\";\nimport \"./GroupingMapping.scss\";\n\nconst GroupingMapping = () => {\n return (\n <div className='group-mapping-container'>\n <Mappings />\n </div>\n );\n};\n\nexport default GroupingMapping;\n"]}
1
+ {"version":3,"file":"GroupingMapping.js","sourceRoot":"","sources":["../../../../src/widget/components/GroupingMapping.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,+CAAkE;AAClE,uCAAqC;AACrC,kCAAgC;AAEhC,wDAAiD;AAOpC,QAAA,UAAU,GAAG,qBAAa,CAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;AAOlE,MAAM,eAAe,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAwB,EAAE,EAAE;IACxE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,gBAAQ,CAAS,EAAE,CAAC,CAAC;IAEzE,iBAAS,CAAC,GAAG,EAAE;QACb,wDAAwD;QACxD,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;;YAClC,MAAM,KAAK,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,MAAA,MAAM,CAAA,MAAA,yBAAS,CAAC,mBAAmB,0CAAE,cAAc,EAAE,CAAA,mCAAI,EAAE,CAAC,CAAC;YAC3F,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,KAAK,gBAAgB,EAAE,CAAC;IAC1B,CAAC,EAAE,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEzC,OAAO,CACL,kBAAkB,CAAC,CAAC,CAAC,8BAAC,kBAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE;QAC1F,uCAAK,SAAS,EAAC,yBAAyB;YACtC,8BAAC,kBAAQ,OAAG,CACR,CACc,CAAC,CAAC,CAAC,IAAI,CAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React, { createContext, useEffect, useState } from \"react\";\nimport { Mappings } from \"./Mapping\";\nimport \"./GroupingMapping.scss\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport { IModelApp } from \"@itwin/core-frontend\";\n\nexport interface Api {\n accessToken: AccessToken;\n prefix?: \"\" | \"dev\" | \"qa\";\n}\n\nexport const ApiContext = createContext<Api>({ accessToken: \"\" });\n\ninterface GroupingMappingProps {\n accessToken?: AccessToken;\n prefix?: \"\" | \"dev\" | \"qa\";\n}\n\nconst GroupingMapping = ({ accessToken, prefix }: GroupingMappingProps) => {\n const [currentAccessToken, setCurrentAccessToken] = useState<string>(\"\");\n\n useEffect(() => {\n // If no access token is provided, fetch it from session\n const fetchAccessToken = async () => {\n const token = accessToken ?? (await IModelApp.authorizationClient?.getAccessToken() ?? \"\");\n setCurrentAccessToken(token);\n };\n void fetchAccessToken();\n }, [accessToken, setCurrentAccessToken]);\n\n return (\n currentAccessToken ? <ApiContext.Provider value={{ accessToken: currentAccessToken, prefix }}>\n <div className='group-mapping-container'>\n <Mappings />\n </div>\n </ApiContext.Provider> : null\n );\n};\n\nexport default GroupingMapping;\n"]}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import type { MappingReportingAPI } from "../../api/generated/api";
3
2
  import type { CreateTypeFromInterface } from "../utils";
4
3
  import "./Mapping.scss";
5
- export declare type Mapping = CreateTypeFromInterface<MappingReportingAPI>;
4
+ import type { Mapping } from "@itwin/insights-client";
5
+ export declare type MappingType = CreateTypeFromInterface<Mapping>;
6
6
  export declare const Mappings: () => JSX.Element;
7
7
  //# sourceMappingURL=Mapping.d.ts.map
@@ -34,11 +34,12 @@ const itwinui_react_1 = require("@itwin/itwinui-react");
34
34
  const react_1 = __importStar(require("react"));
35
35
  const utils_1 = require("./utils");
36
36
  require("./Mapping.scss");
37
- const reportingClient_1 = require("../../api/reportingClient");
38
37
  const DeleteModal_1 = __importDefault(require("./DeleteModal"));
39
38
  const Grouping_1 = require("./Grouping");
40
39
  const MappingAction_1 = __importDefault(require("./MappingAction"));
41
40
  const MappingImportWizardModal_1 = require("./MappingImportWizardModal");
41
+ const GroupingMapping_1 = require("./GroupingMapping");
42
+ const insights_client_1 = require("@itwin/insights-client");
42
43
  var MappingView;
43
44
  (function (MappingView) {
44
45
  MappingView["MAPPINGS"] = "mappings";
@@ -47,10 +48,11 @@ var MappingView;
47
48
  MappingView["MODIFYING"] = "modifying";
48
49
  MappingView["IMPORT"] = "import";
49
50
  })(MappingView || (MappingView = {}));
50
- const fetchMappings = async (setMappings, iModelId, setIsLoading) => {
51
+ const fetchMappings = async (setMappings, iModelId, setIsLoading, apiContext) => {
51
52
  try {
52
53
  setIsLoading(true);
53
- const mappings = await reportingClient_1.reportingClientApi.getMappings(iModelId);
54
+ const reportingClientApi = new insights_client_1.ReportingClient(apiContext.prefix);
55
+ const mappings = await reportingClientApi.getMappings(apiContext.accessToken, iModelId);
54
56
  setMappings(mappings);
55
57
  }
56
58
  catch (error) {
@@ -60,22 +62,19 @@ const fetchMappings = async (setMappings, iModelId, setIsLoading) => {
60
62
  setIsLoading(false);
61
63
  }
62
64
  };
63
- const useFetchMappings = (iModelId, setIsLoading) => {
64
- const [mappings, setMappings] = react_1.useState([]);
65
- react_1.useEffect(() => {
66
- void fetchMappings(setMappings, iModelId, setIsLoading);
67
- }, [iModelId, setIsLoading]);
68
- return [mappings, setMappings];
69
- };
70
65
  const Mappings = () => {
71
66
  var _a, _b;
67
+ const apiContext = react_1.useContext(GroupingMapping_1.ApiContext);
72
68
  const iModelId = (_a = appui_react_1.useActiveIModelConnection()) === null || _a === void 0 ? void 0 : _a.iModelId;
73
69
  const [showDeleteModal, setShowDeleteModal] = react_1.useState(false);
74
70
  const [showImportModal, setShowImportModal] = react_1.useState(false);
75
71
  const [mappingView, setMappingView] = react_1.useState(MappingView.MAPPINGS);
76
72
  const [selectedMapping, setSelectedMapping] = react_1.useState(undefined);
77
73
  const [isLoading, setIsLoading] = react_1.useState(true);
78
- const [mappings, setMappings] = useFetchMappings(iModelId, setIsLoading);
74
+ const [mappings, setMappings] = react_1.useState([]);
75
+ react_1.useEffect(() => {
76
+ void fetchMappings(setMappings, iModelId, setIsLoading, apiContext);
77
+ }, [apiContext, iModelId, setIsLoading]);
79
78
  react_1.useEffect(() => {
80
79
  const removeListener = presentation_frontend_1.Presentation.selection.selectionChange.addListener(utils_1.onSelectionChanged);
81
80
  return () => {
@@ -86,8 +85,8 @@ const Mappings = () => {
86
85
  setMappingView(MappingView.MAPPINGS);
87
86
  setSelectedMapping(undefined);
88
87
  setMappings([]);
89
- await fetchMappings(setMappings, iModelId, setIsLoading);
90
- }, [iModelId, setMappings]);
88
+ await fetchMappings(setMappings, iModelId, setIsLoading, apiContext);
89
+ }, [apiContext, iModelId, setMappings]);
91
90
  const addMapping = async () => {
92
91
  setMappingView(MappingView.ADDING);
93
92
  };
@@ -154,7 +153,8 @@ const Mappings = () => {
154
153
  react_1.default.createElement(itwinui_react_1.Table, { data: mappings, density: "extra-condensed", columns: mappingsColumns, emptyTableContent: "No Mappings available.", isSortable: true, isLoading: isLoading })),
155
154
  react_1.default.createElement(DeleteModal_1.default, { entityName: (_b = selectedMapping === null || selectedMapping === void 0 ? void 0 : selectedMapping.mappingName) !== null && _b !== void 0 ? _b : "", show: showDeleteModal, setShow: setShowDeleteModal, onDelete: async () => {
156
155
  var _a;
157
- await reportingClient_1.reportingClientApi.deleteMapping(iModelId, (_a = selectedMapping === null || selectedMapping === void 0 ? void 0 : selectedMapping.id) !== null && _a !== void 0 ? _a : "");
156
+ const reportingClientApi = new insights_client_1.ReportingClient(apiContext.prefix);
157
+ await reportingClientApi.deleteMapping(apiContext.accessToken, iModelId, (_a = selectedMapping === null || selectedMapping === void 0 ? void 0 : selectedMapping.id) !== null && _a !== void 0 ? _a : "");
158
158
  }, refresh: refresh }),
159
159
  react_1.default.createElement(MappingImportWizardModal_1.MappingImportWizardModal, { show: showImportModal, setShow: setShowImportModal, onFinish: refresh })));
160
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../../../../src/widget/components/Mapping.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 { Presentation } from \"@itwin/presentation-frontend\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport {\n SvgAdd,\n SvgDelete,\n SvgEdit,\n SvgImport,\n SvgMore,\n} from \"@itwin/itwinui-icons-react\";\nimport {\n Button,\n ButtonGroup,\n DropdownMenu,\n IconButton,\n MenuItem,\n Table,\n} from \"@itwin/itwinui-react\";\nimport type { CellProps } from \"react-table\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { MappingReportingAPI } from \"../../api/generated/api\";\nimport type { CreateTypeFromInterface } from \"../utils\";\nimport { handleError, onSelectionChanged, WidgetHeader } from \"./utils\";\nimport \"./Mapping.scss\";\nimport { reportingClientApi } from \"../../api/reportingClient\";\nimport DeleteModal from \"./DeleteModal\";\nimport { Groupings } from \"./Grouping\";\nimport MappingAction from \"./MappingAction\";\nimport { MappingImportWizardModal } from \"./MappingImportWizardModal\";\n\nexport type Mapping = CreateTypeFromInterface<MappingReportingAPI>;\n\nenum MappingView {\n MAPPINGS = \"mappings\",\n GROUPS = \"groups\",\n ADDING = \"adding\",\n MODIFYING = \"modifying\",\n IMPORT = \"import\",\n}\n\nconst fetchMappings = async (\n setMappings: React.Dispatch<React.SetStateAction<MappingReportingAPI[]>>,\n iModelId: string,\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>\n) => {\n try {\n setIsLoading(true);\n const mappings = await reportingClientApi.getMappings(iModelId);\n setMappings(mappings);\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n};\n\nconst useFetchMappings = (\n iModelId: string,\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>\n): [\n MappingReportingAPI[],\n React.Dispatch<React.SetStateAction<MappingReportingAPI[]>>\n] => {\n const [mappings, setMappings] = useState<MappingReportingAPI[]>([]);\n useEffect(() => {\n void fetchMappings(setMappings, iModelId, setIsLoading);\n }, [iModelId, setIsLoading]);\n\n return [mappings, setMappings];\n};\n\nexport const Mappings = () => {\n const iModelId = useActiveIModelConnection()?.iModelId as string;\n const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false);\n const [showImportModal, setShowImportModal] = useState<boolean>(false);\n const [mappingView, setMappingView] = useState<MappingView>(\n MappingView.MAPPINGS\n );\n const [selectedMapping, setSelectedMapping] = useState<\n MappingReportingAPI | undefined\n >(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [mappings, setMappings] = useFetchMappings(iModelId, setIsLoading);\n\n useEffect(() => {\n const removeListener =\n Presentation.selection.selectionChange.addListener(onSelectionChanged);\n return () => {\n removeListener();\n };\n }, []);\n\n const refresh = useCallback(async () => {\n setMappingView(MappingView.MAPPINGS);\n setSelectedMapping(undefined);\n setMappings([]);\n await fetchMappings(setMappings, iModelId, setIsLoading);\n }, [iModelId, setMappings]);\n\n const addMapping = async () => {\n setMappingView(MappingView.ADDING);\n };\n\n const mappingsColumns = useMemo(\n () => [\n {\n Header: \"Table\",\n columns: [\n {\n id: \"mappingName\",\n Header: \"Mapping Name\",\n accessor: \"mappingName\",\n Cell: (value: CellProps<{ mappingName: string }>) => (\n <div\n className=\"iui-anchor\"\n onClick={() => {\n setSelectedMapping(value.row.original);\n setMappingView(MappingView.GROUPS);\n }}\n >\n {value.row.original.mappingName}\n </div>\n ),\n },\n {\n id: \"description\",\n Header: \"Description\",\n accessor: \"description\",\n },\n {\n id: \"dropdown\",\n Header: \"\",\n width: 80,\n Cell: (value: CellProps<Mapping>) => {\n return (\n <DropdownMenu\n menuItems={(close: () => void) => [\n <MenuItem\n key={0}\n onClick={() => {\n setSelectedMapping(value.row.original);\n setMappingView(MappingView.MODIFYING);\n }}\n icon={<SvgEdit />}\n >\n Modify\n </MenuItem>,\n\n <MenuItem\n key={1}\n onClick={() => {\n setSelectedMapping(value.row.original);\n setShowDeleteModal(true);\n close();\n }}\n icon={<SvgDelete />}\n >\n Remove\n </MenuItem>,\n ]}\n >\n <IconButton styleType=\"borderless\">\n <SvgMore\n style={{\n width: \"16px\",\n height: \"16px\",\n }}\n />\n </IconButton>\n </DropdownMenu>\n );\n },\n },\n ],\n },\n ],\n []\n );\n\n switch (mappingView) {\n case MappingView.ADDING:\n return <MappingAction iModelId={iModelId} returnFn={refresh} />;\n case MappingView.MODIFYING:\n return (\n <MappingAction\n iModelId={iModelId}\n mapping={selectedMapping}\n returnFn={refresh}\n />\n );\n case MappingView.GROUPS:\n return (\n <Groupings\n mapping={selectedMapping as MappingReportingAPI}\n goBack={refresh}\n />\n );\n default:\n return (\n <>\n <WidgetHeader title=\"Mappings\" />\n <div className=\"mappings-container\">\n <div className=\"table-toolbar\">\n <Button\n startIcon={<SvgAdd />}\n onClick={async () => addMapping()}\n styleType=\"high-visibility\"\n >\n New\n </Button>\n <ButtonGroup onClick={() => setShowImportModal(true)}>\n <IconButton title=\"Import Mappings\">\n <SvgImport />\n </IconButton>\n </ButtonGroup>\n </div>\n <Table<Mapping>\n data={mappings}\n density=\"extra-condensed\"\n columns={mappingsColumns}\n emptyTableContent=\"No Mappings available.\"\n isSortable\n isLoading={isLoading}\n />\n </div>\n <DeleteModal\n entityName={selectedMapping?.mappingName ?? \"\"}\n show={showDeleteModal}\n setShow={setShowDeleteModal}\n onDelete={async () => {\n await reportingClientApi.deleteMapping(\n iModelId,\n selectedMapping?.id ?? \"\"\n );\n }}\n refresh={refresh}\n />\n <MappingImportWizardModal\n show={showImportModal}\n setShow={setShowImportModal}\n onFinish={refresh}\n />\n </>\n );\n }\n};\n"]}
1
+ {"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../../../../src/widget/components/Mapping.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 { Presentation } from \"@itwin/presentation-frontend\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport {\n SvgAdd,\n SvgDelete,\n SvgEdit,\n SvgImport,\n SvgMore,\n} from \"@itwin/itwinui-icons-react\";\nimport {\n Button,\n ButtonGroup,\n DropdownMenu,\n IconButton,\n MenuItem,\n Table,\n} from \"@itwin/itwinui-react\";\nimport type { CellProps } from \"react-table\";\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport type { CreateTypeFromInterface } from \"../utils\";\nimport { handleError, onSelectionChanged, WidgetHeader } from \"./utils\";\nimport \"./Mapping.scss\";\nimport DeleteModal from \"./DeleteModal\";\nimport { Groupings } from \"./Grouping\";\nimport MappingAction from \"./MappingAction\";\nimport { MappingImportWizardModal } from \"./MappingImportWizardModal\";\nimport type { Api } from \"./GroupingMapping\";\nimport { ApiContext } from \"./GroupingMapping\";\nimport type { Mapping } from \"@itwin/insights-client\";\nimport { ReportingClient } from \"@itwin/insights-client\";\n\nexport type MappingType = CreateTypeFromInterface<Mapping>;\n\nenum MappingView {\n MAPPINGS = \"mappings\",\n GROUPS = \"groups\",\n ADDING = \"adding\",\n MODIFYING = \"modifying\",\n IMPORT = \"import\",\n}\n\nconst fetchMappings = async (\n setMappings: React.Dispatch<React.SetStateAction<Mapping[]>>,\n iModelId: string,\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>,\n apiContext: Api\n) => {\n try {\n setIsLoading(true);\n const reportingClientApi = new ReportingClient(apiContext.prefix);\n const mappings = await reportingClientApi.getMappings(apiContext.accessToken, iModelId);\n setMappings(mappings);\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n};\n\nexport const Mappings = () => {\n const apiContext = useContext(ApiContext);\n const iModelId = useActiveIModelConnection()?.iModelId as string;\n const [showDeleteModal, setShowDeleteModal] = useState<boolean>(false);\n const [showImportModal, setShowImportModal] = useState<boolean>(false);\n const [mappingView, setMappingView] = useState<MappingView>(\n MappingView.MAPPINGS\n );\n const [selectedMapping, setSelectedMapping] = useState<\n Mapping | undefined\n >(undefined);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [mappings, setMappings] = useState<Mapping[]>([]);\n\n useEffect(() => {\n void fetchMappings(setMappings, iModelId, setIsLoading, apiContext);\n }, [apiContext, iModelId, setIsLoading]);\n\n useEffect(() => {\n const removeListener =\n Presentation.selection.selectionChange.addListener(onSelectionChanged);\n return () => {\n removeListener();\n };\n }, []);\n\n const refresh = useCallback(async () => {\n setMappingView(MappingView.MAPPINGS);\n setSelectedMapping(undefined);\n setMappings([]);\n await fetchMappings(setMappings, iModelId, setIsLoading, apiContext);\n }, [apiContext, iModelId, setMappings]);\n\n const addMapping = async () => {\n setMappingView(MappingView.ADDING);\n };\n\n const mappingsColumns = useMemo(\n () => [\n {\n Header: \"Table\",\n columns: [\n {\n id: \"mappingName\",\n Header: \"Mapping Name\",\n accessor: \"mappingName\",\n Cell: (value: CellProps<{ mappingName: string }>) => (\n <div\n className=\"iui-anchor\"\n onClick={() => {\n setSelectedMapping(value.row.original);\n setMappingView(MappingView.GROUPS);\n }}\n >\n {value.row.original.mappingName}\n </div>\n ),\n },\n {\n id: \"description\",\n Header: \"Description\",\n accessor: \"description\",\n },\n {\n id: \"dropdown\",\n Header: \"\",\n width: 80,\n Cell: (value: CellProps<MappingType>) => {\n return (\n <DropdownMenu\n menuItems={(close: () => void) => [\n <MenuItem\n key={0}\n onClick={() => {\n setSelectedMapping(value.row.original);\n setMappingView(MappingView.MODIFYING);\n }}\n icon={<SvgEdit />}\n >\n Modify\n </MenuItem>,\n\n <MenuItem\n key={1}\n onClick={() => {\n setSelectedMapping(value.row.original);\n setShowDeleteModal(true);\n close();\n }}\n icon={<SvgDelete />}\n >\n Remove\n </MenuItem>,\n ]}\n >\n <IconButton styleType=\"borderless\">\n <SvgMore\n style={{\n width: \"16px\",\n height: \"16px\",\n }}\n />\n </IconButton>\n </DropdownMenu>\n );\n },\n },\n ],\n },\n ],\n []\n );\n\n switch (mappingView) {\n case MappingView.ADDING:\n return <MappingAction iModelId={iModelId} returnFn={refresh} />;\n case MappingView.MODIFYING:\n return (\n <MappingAction\n iModelId={iModelId}\n mapping={selectedMapping}\n returnFn={refresh}\n />\n );\n case MappingView.GROUPS:\n return (\n <Groupings\n mapping={selectedMapping as Mapping}\n goBack={refresh}\n />\n );\n default:\n return (\n <>\n <WidgetHeader title=\"Mappings\" />\n <div className=\"mappings-container\">\n <div className=\"table-toolbar\">\n <Button\n startIcon={<SvgAdd />}\n onClick={async () => addMapping()}\n styleType=\"high-visibility\"\n >\n New\n </Button>\n <ButtonGroup onClick={() => setShowImportModal(true)}>\n <IconButton title=\"Import Mappings\">\n <SvgImport />\n </IconButton>\n </ButtonGroup>\n </div>\n <Table<MappingType>\n data={mappings}\n density=\"extra-condensed\"\n columns={mappingsColumns}\n emptyTableContent=\"No Mappings available.\"\n isSortable\n isLoading={isLoading}\n />\n </div>\n <DeleteModal\n entityName={selectedMapping?.mappingName ?? \"\"}\n show={showDeleteModal}\n setShow={setShowDeleteModal}\n onDelete={async () => {\n const reportingClientApi = new ReportingClient(apiContext.prefix);\n await reportingClientApi.deleteMapping(\n apiContext.accessToken,\n iModelId,\n selectedMapping?.id ?? \"\"\n );\n }}\n refresh={refresh}\n />\n <MappingImportWizardModal\n show={showImportModal}\n setShow={setShowImportModal}\n onFinish={refresh}\n />\n </>\n );\n }\n};\n"]}
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import type { MappingReportingAPI } from "../../api/generated/api";
3
2
  import "./MappingAction.scss";
3
+ import type { Mapping } from "@itwin/insights-client";
4
4
  interface MappingActionProps {
5
5
  iModelId: string;
6
- mapping?: MappingReportingAPI;
6
+ mapping?: Mapping;
7
7
  returnFn: () => Promise<void>;
8
8
  }
9
9
  declare const MappingAction: ({ iModelId, mapping, returnFn }: MappingActionProps) => JSX.Element;
@@ -28,13 +28,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
28
28
  *--------------------------------------------------------------------------------------------*/
29
29
  const itwinui_react_1 = require("@itwin/itwinui-react");
30
30
  const react_1 = __importStar(require("react"));
31
- const reportingClient_1 = require("../../api/reportingClient");
32
31
  const ActionPanel_1 = __importDefault(require("./ActionPanel"));
33
32
  const useValidator_1 = __importStar(require("../hooks/useValidator"));
34
33
  const utils_1 = require("./utils");
35
34
  require("./MappingAction.scss");
35
+ const GroupingMapping_1 = require("./GroupingMapping");
36
+ const insights_client_1 = require("@itwin/insights-client");
36
37
  const MappingAction = ({ iModelId, mapping, returnFn }) => {
37
38
  var _a, _b;
39
+ const apiContext = react_1.useContext(GroupingMapping_1.ApiContext);
38
40
  const [values, setValues] = react_1.useState({
39
41
  name: (_a = mapping === null || mapping === void 0 ? void 0 : mapping.mappingName) !== null && _a !== void 0 ? _a : "",
40
42
  description: (_b = mapping === null || mapping === void 0 ? void 0 : mapping.description) !== null && _b !== void 0 ? _b : "",
@@ -50,12 +52,13 @@ const MappingAction = ({ iModelId, mapping, returnFn }) => {
50
52
  return;
51
53
  }
52
54
  setIsLoading(true);
55
+ const reportingClientApi = new insights_client_1.ReportingClient(apiContext.prefix);
53
56
  mapping
54
- ? await reportingClient_1.reportingClientApi.updateMapping(iModelId, (_a = mapping.id) !== null && _a !== void 0 ? _a : "", {
57
+ ? await reportingClientApi.updateMapping(apiContext.accessToken, iModelId, (_a = mapping.id) !== null && _a !== void 0 ? _a : "", {
55
58
  mappingName: values.name,
56
59
  description: values.description,
57
60
  })
58
- : await reportingClient_1.reportingClientApi.createMapping(iModelId, {
61
+ : await reportingClientApi.createMapping(apiContext.accessToken, iModelId, {
59
62
  mappingName: values.name,
60
63
  description: values.description,
61
64
  });
@@ -93,7 +96,7 @@ const MappingAction = ({ iModelId, mapping, returnFn }) => {
93
96
  utils_1.handleInputChange(event, values, setValues);
94
97
  validator.showMessageFor("description");
95
98
  } }))),
96
- react_1.default.createElement(ActionPanel_1.default, { onSave: onSave, onCancel: returnFn, disabled: !(values.name && values.description), isLoading: isLoading })));
99
+ react_1.default.createElement(ActionPanel_1.default, { onSave: onSave, onCancel: returnFn, isSavingDisabled: !(values.name && values.description), isLoading: isLoading })));
97
100
  };
98
101
  exports.default = MappingAction;
99
102
  //# sourceMappingURL=MappingAction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../src/widget/components/MappingAction.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,wDAAqE;AACrE,+CAAwC;AAExC,+DAA+D;AAC/D,gEAAwC;AACxC,sEAAwE;AACxE,mCAAuE;AACvE,gCAA8B;AAQ9B,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAsB,EAAE,EAAE;;IAC5E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAQ,CAAC;QACnC,IAAI,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,EAAE;QAChC,WAAW,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,EAAE;KACxC,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,EAAE,qBAAqB,CAAC,GAAG,sBAAY,EAAE,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,gBAAQ,CAAU,KAAK,CAAC,CAAC;IAE3D,qBAAqB;IACrB,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;;QACxB,IAAI;YACF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;gBACzB,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO;aACR;YACD,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;gBACL,CAAC,CAAC,MAAM,oCAAkB,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAA,OAAO,CAAC,EAAE,mCAAI,EAAE,EAAE;oBACnE,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;gBACF,CAAC,CAAC,MAAM,oCAAkB,CAAC,aAAa,CAAC,QAAQ,EAAE;oBACjD,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC,CAAC;YACL,MAAM,QAAQ,EAAE,CAAC;SAClB;QAAC,OAAO,KAAU,EAAE;YACnB,mBAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC1B,YAAY,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,OAAO,CACL;QACE,8BAAC,oBAAY,IACX,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EACjD,QAAQ,EAAE,QAAQ,GAClB;QACF,uCAAK,SAAS,EAAC,wBAAwB;YACrC,8BAAC,wBAAQ,IAAC,MAAM,EAAC,iBAAiB,EAAC,SAAS,EAAC,cAAc;gBACzD,8BAAC,qBAAK,IAAC,SAAS,EAAC,cAAc,6CAEvB;gBACR,8BAAC,4BAAY,IACX,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,QAAQ,QACR,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,yBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;wBAC5C,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC,EACD,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,gCAAiB,CAAC,EAClE,MAAM,EACJ,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,gCAAiB,CAAC;wBACvD,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,SAAS,EAEf,MAAM,EAAE,GAAG,EAAE;wBACX,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC,EACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;wBACvB,yBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;wBAC5C,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC,GACD;gBACF,8BAAC,4BAAY,IACX,EAAE,EAAC,aAAa,EAChB,QAAQ,QACR,IAAI,EAAC,aAAa,EAClB,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,MAAM,CAAC,WAAW,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,yBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;wBAC5C,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBAC1C,CAAC,EACD,OAAO,EAAE,SAAS,CAAC,OAAO,CACxB,aAAa,EACb,MAAM,CAAC,WAAW,EAClB,UAAU,CACX,EACD,MAAM,EACJ,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;wBAC9D,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,SAAS,EAEf,MAAM,EAAE,GAAG,EAAE;wBACX,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBAC1C,CAAC,EACD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;wBACvB,yBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;wBAC5C,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBAC1C,CAAC,GACD,CACO,CACP;QACN,8BAAC,qBAAW,IACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,EAC9C,SAAS,EAAE,SAAS,GACpB,CACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Small } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport type { MappingReportingAPI } from \"../../api/generated/api\";\nimport { reportingClientApi } from \"../../api/reportingClient\";\nimport ActionPanel from \"./ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../hooks/useValidator\";\nimport { handleError, handleInputChange, WidgetHeader } from \"./utils\";\nimport \"./MappingAction.scss\";\n\ninterface MappingActionProps {\n iModelId: string;\n mapping?: MappingReportingAPI;\n returnFn: () => Promise<void>;\n}\n\nconst MappingAction = ({ iModelId, mapping, returnFn }: MappingActionProps) => {\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n });\n const [validator, showValidationMessage] = useValidator();\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n // TODO ERRORED STATE\n const onSave = async () => {\n try {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n setIsLoading(true);\n mapping\n ? await reportingClientApi.updateMapping(iModelId, mapping.id ?? \"\", {\n mappingName: values.name,\n description: values.description,\n })\n : await reportingClientApi.createMapping(iModelId, {\n mappingName: values.name,\n description: values.description,\n });\n await returnFn();\n } catch (error: any) {\n handleError(error.status);\n setIsLoading(false);\n }\n };\n\n return (\n <>\n <WidgetHeader\n title={mapping ? \"Modify Mapping\" : \"Add Mapping\"}\n returnFn={returnFn}\n />\n <div className='details-form-container'>\n <Fieldset legend='Mapping Details' className='details-form'>\n <Small className='field-legend'>\n Asterisk * indicates mandatory fields.\n </Small>\n <LabeledInput\n id='name'\n name='name'\n label='Name'\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={\n validator.message(\"name\", values.name, NAME_REQUIREMENTS)\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id='description'\n required\n name='description'\n label='Description'\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"description\");\n }}\n message={validator.message(\n \"description\",\n values.description,\n \"required\",\n )}\n status={\n validator.message(\"description\", values.description, \"required\")\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"description\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"description\");\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel\n onSave={onSave}\n onCancel={returnFn}\n disabled={!(values.name && values.description)}\n isLoading={isLoading}\n />\n </>\n );\n};\n\nexport default MappingAction;\n"]}
1
+ {"version":3,"file":"MappingAction.js","sourceRoot":"","sources":["../../../../src/widget/components/MappingAction.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Fieldset, LabeledInput, Small } from \"@itwin/itwinui-react\";\nimport React, { useContext, useState } from \"react\";\nimport ActionPanel from \"./ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../hooks/useValidator\";\nimport { handleError, handleInputChange, WidgetHeader } from \"./utils\";\nimport \"./MappingAction.scss\";\nimport { ApiContext } from \"./GroupingMapping\";\nimport type { Mapping } from \"@itwin/insights-client\";\nimport { ReportingClient } from \"@itwin/insights-client\";\n\ninterface MappingActionProps {\n iModelId: string;\n mapping?: Mapping;\n returnFn: () => Promise<void>;\n}\n\nconst MappingAction = ({ iModelId, mapping, returnFn }: MappingActionProps) => {\n const apiContext = useContext(ApiContext);\n const [values, setValues] = useState({\n name: mapping?.mappingName ?? \"\",\n description: mapping?.description ?? \"\",\n });\n const [validator, showValidationMessage] = useValidator();\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n // TODO ERRORED STATE\n const onSave = async () => {\n try {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n setIsLoading(true);\n const reportingClientApi = new ReportingClient(apiContext.prefix);\n mapping\n ? await reportingClientApi.updateMapping(apiContext.accessToken, iModelId, mapping.id ?? \"\", {\n mappingName: values.name,\n description: values.description,\n })\n : await reportingClientApi.createMapping(apiContext.accessToken, iModelId, {\n mappingName: values.name,\n description: values.description,\n });\n await returnFn();\n } catch (error: any) {\n handleError(error.status);\n setIsLoading(false);\n }\n };\n\n return (\n <>\n <WidgetHeader\n title={mapping ? \"Modify Mapping\" : \"Add Mapping\"}\n returnFn={returnFn}\n />\n <div className='details-form-container'>\n <Fieldset legend='Mapping Details' className='details-form'>\n <Small className='field-legend'>\n Asterisk * indicates mandatory fields.\n </Small>\n <LabeledInput\n id='name'\n name='name'\n label='Name'\n value={values.name}\n required\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n message={validator.message(\"name\", values.name, NAME_REQUIREMENTS)}\n status={\n validator.message(\"name\", values.name, NAME_REQUIREMENTS)\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"name\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"name\");\n }}\n />\n <LabeledInput\n id='description'\n required\n name='description'\n label='Description'\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"description\");\n }}\n message={validator.message(\n \"description\",\n values.description,\n \"required\",\n )}\n status={\n validator.message(\"description\", values.description, \"required\")\n ? \"negative\"\n : undefined\n }\n onBlur={() => {\n validator.showMessageFor(\"description\");\n }}\n onBlurCapture={(event) => {\n handleInputChange(event, values, setValues);\n validator.showMessageFor(\"description\");\n }}\n />\n </Fieldset>\n </div>\n <ActionPanel\n onSave={onSave}\n onCancel={returnFn}\n isSavingDisabled={!(values.name && values.description)}\n isLoading={isLoading}\n />\n </>\n );\n};\n\nexport default MappingAction;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MappingImportWizardModal.js","sourceRoot":"","sources":["../../../../src/widget/components/MappingImportWizardModal.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, { useRef, useState } from \"react\";\nimport type { StepProperties } from \"@itwin/itwinui-react\";\nimport { Modal, Wizard } from \"@itwin/itwinui-react\";\nimport SelectProject from \"./SelectProject\";\nimport \"./MappingImportWizardModal.scss\";\nimport SelectIModel from \"./SelectIModel\";\nimport SelectMappings from \"./SelectMappings\";\nimport type { Mapping } from \"./Mapping\";\nimport ConfirmMappingImport from \"./ConfirmMappingsImport\";\n\ninterface MappingImportWizardModalProps {\n show: boolean;\n setShow: React.Dispatch<React.SetStateAction<boolean>>;\n onFinish: () => Promise<void>;\n}\n\nexport const MappingImportWizardModal = ({\n show,\n setShow,\n onFinish,\n}: MappingImportWizardModalProps) => {\n const [currentStep, setCurrentStep] = useState<number>(0);\n const [selectedProjectId, setSelectedProjectId] = useState<string>(\"\");\n const [selectedIModelId, setSelectedIModelId] = useState<string>(\"\");\n const [selectedMappings, setSelectedMappings] = useState<Mapping[]>([]);\n const [importing, setImporting] = useState<boolean>(false);\n\n const steps = useRef<StepProperties[]>([\n {\n name: \"Select source project\",\n description: \"Select the source project to bring your mappings from.\",\n },\n {\n name: \"Select iModel\",\n description: \"Select an iModel within the project you have selected.\",\n },\n {\n name: \"Select Mapping\",\n description: \"Select one or more mappings to import.\",\n },\n {\n name: \"Rename & Confirm\",\n description:\n \"Rename and confirm your selections. Click import when finished.\",\n },\n ]);\n\n const onClose = async () => {\n setShow(false);\n setCurrentStep(0);\n await onFinish();\n };\n\n return (\n <Modal\n title='Import Mappings'\n modalRootId='grouping-mapping-widget'\n isOpen={show}\n closeOnEsc={false}\n closeOnExternalClick={false}\n isDismissible={!importing}\n onClose={async () => {\n await onClose();\n }}\n >\n <div className='import-wizard-body-container'>\n <Wizard\n currentStep={currentStep}\n steps={steps.current}\n onStepClick={\n importing ? undefined : (index: number) => setCurrentStep(index)\n }\n />\n\n {(() => {\n switch (currentStep) {\n case 0:\n return (\n <SelectProject\n onSelect={(project) => {\n setSelectedProjectId(project.id);\n setCurrentStep(1);\n }}\n onCancel={onClose}\n />\n );\n case 1:\n return (\n <SelectIModel\n projectId={selectedProjectId}\n onSelect={(iModel) => {\n setSelectedIModelId(iModel.id);\n setCurrentStep(2);\n }}\n backFn={() => setCurrentStep(currentStep - 1)}\n onCancel={onClose}\n />\n );\n case 2:\n case 3:\n // Preserve table state within Select Mappings\n return (\n <>\n <div\n style={{ display: currentStep === 2 ? \"block\" : \"none\" }}\n >\n <SelectMappings\n iModelId={selectedIModelId}\n onSelect={(selectedMappings) => {\n setSelectedMappings(selectedMappings);\n setCurrentStep(3);\n }}\n onCancel={onClose}\n backFn={() => setCurrentStep(currentStep - 1)}\n />\n </div>\n {currentStep === 3 && (\n <ConfirmMappingImport\n sourceiModelId={selectedIModelId}\n selectedMappings={selectedMappings}\n importing={importing}\n setImporting={setImporting}\n setSelectedMappings={setSelectedMappings}\n backFn={() => setCurrentStep(currentStep - 1)}\n onCancel={onClose}\n onFinish={async () => {\n await onClose();\n setImporting(false);\n }}\n />\n )}\n </>\n );\n default:\n return null;\n }\n })()}\n </div>\n </Modal>\n );\n};\n"]}
1
+ {"version":3,"file":"MappingImportWizardModal.js","sourceRoot":"","sources":["../../../../src/widget/components/MappingImportWizardModal.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, { useRef, useState } from \"react\";\nimport type { StepProperties } from \"@itwin/itwinui-react\";\nimport { Modal, Wizard } from \"@itwin/itwinui-react\";\nimport SelectProject from \"./SelectProject\";\nimport \"./MappingImportWizardModal.scss\";\nimport SelectIModel from \"./SelectIModel\";\nimport SelectMappings from \"./SelectMappings\";\nimport type { MappingType } from \"./Mapping\";\nimport ConfirmMappingImport from \"./ConfirmMappingsImport\";\n\ninterface MappingImportWizardModalProps {\n show: boolean;\n setShow: React.Dispatch<React.SetStateAction<boolean>>;\n onFinish: () => Promise<void>;\n}\n\nexport const MappingImportWizardModal = ({\n show,\n setShow,\n onFinish,\n}: MappingImportWizardModalProps) => {\n const [currentStep, setCurrentStep] = useState<number>(0);\n const [selectedProjectId, setSelectedProjectId] = useState<string>(\"\");\n const [selectedIModelId, setSelectedIModelId] = useState<string>(\"\");\n const [selectedMappings, setSelectedMappings] = useState<MappingType[]>([]);\n const [importing, setImporting] = useState<boolean>(false);\n\n const steps = useRef<StepProperties[]>([\n {\n name: \"Select source project\",\n description: \"Select the source project to bring your mappings from.\",\n },\n {\n name: \"Select iModel\",\n description: \"Select an iModel within the project you have selected.\",\n },\n {\n name: \"Select Mapping\",\n description: \"Select one or more mappings to import.\",\n },\n {\n name: \"Rename & Confirm\",\n description:\n \"Rename and confirm your selections. Click import when finished.\",\n },\n ]);\n\n const onClose = async () => {\n setShow(false);\n setCurrentStep(0);\n await onFinish();\n };\n\n return (\n <Modal\n title='Import Mappings'\n modalRootId='grouping-mapping-widget'\n isOpen={show}\n closeOnEsc={false}\n closeOnExternalClick={false}\n isDismissible={!importing}\n onClose={async () => {\n await onClose();\n }}\n >\n <div className='import-wizard-body-container'>\n <Wizard\n currentStep={currentStep}\n steps={steps.current}\n onStepClick={\n importing ? undefined : (index: number) => setCurrentStep(index)\n }\n />\n\n {(() => {\n switch (currentStep) {\n case 0:\n return (\n <SelectProject\n onSelect={(project) => {\n setSelectedProjectId(project.id);\n setCurrentStep(1);\n }}\n onCancel={onClose}\n />\n );\n case 1:\n return (\n <SelectIModel\n projectId={selectedProjectId}\n onSelect={(iModel) => {\n setSelectedIModelId(iModel.id);\n setCurrentStep(2);\n }}\n backFn={() => setCurrentStep(currentStep - 1)}\n onCancel={onClose}\n />\n );\n case 2:\n case 3:\n // Preserve table state within Select Mappings\n return (\n <>\n <div\n style={{ display: currentStep === 2 ? \"block\" : \"none\" }}\n >\n <SelectMappings\n iModelId={selectedIModelId}\n onSelect={(selectedMappings) => {\n setSelectedMappings(selectedMappings);\n setCurrentStep(3);\n }}\n onCancel={onClose}\n backFn={() => setCurrentStep(currentStep - 1)}\n />\n </div>\n {currentStep === 3 && (\n <ConfirmMappingImport\n sourceiModelId={selectedIModelId}\n selectedMappings={selectedMappings}\n importing={importing}\n setImporting={setImporting}\n setSelectedMappings={setSelectedMappings}\n backFn={() => setCurrentStep(currentStep - 1)}\n onCancel={onClose}\n onFinish={async () => {\n await onClose();\n setImporting(false);\n }}\n />\n )}\n </>\n );\n default:\n return null;\n }\n })()}\n </div>\n </Modal>\n );\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  /// <reference types="react" />
2
- import type { Group } from "./Grouping";
2
+ import type { GroupType } from "./Grouping";
3
3
  import "./PropertyMenu.scss";
4
4
  interface PropertyModifyProps {
5
5
  iModelId: string;
6
6
  mappingId: string;
7
- group: Group;
7
+ group: GroupType;
8
8
  goBack: () => Promise<void>;
9
9
  hideGroupProps?: boolean;
10
10
  hideCalculatedProps?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"PropertyMenu.js","sourceRoot":"","sources":["../../../../src/widget/components/PropertyMenu.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 { IModelConnection } from \"@itwin/core-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport React, { useCallback, useEffect, useState } from \"react\";\n\nimport { fetchIdsFromQuery, WidgetHeader } from \"./utils\";\nimport {\n clearEmphasizedElements,\n manufactureKeys,\n visualizeElements,\n visualizeElementsByKeys,\n zoomToElements,\n} from \"./viewerUtils\";\nimport type { Group } from \"./Grouping\";\nimport \"./PropertyMenu.scss\";\nimport GroupPropertyAction from \"./GroupPropertyAction\";\nimport CalculatedPropertyAction from \"./CalculatedPropertyAction\";\nimport type { GroupProperty } from \"./GroupPropertyTable\";\nimport GroupPropertyTable from \"./GroupPropertyTable\";\nimport type {\n CalculatedProperty,\n} from \"./CalculatedPropertyTable\";\nimport CalculatedPropertyTable from \"./CalculatedPropertyTable\";\nimport {\n IconButton,\n InformationPanel,\n InformationPanelBody,\n InformationPanelHeader,\n InformationPanelWrapper,\n LabeledTextarea,\n ProgressRadial,\n Text,\n toaster,\n} from \"@itwin/itwinui-react\";\nimport type { CellProps } from \"react-table\";\nimport type {\n CustomCalculation,\n} from \"./CustomCalculationTable\";\nimport CustomCalculationTable from \"./CustomCalculationTable\";\nimport CustomCalculationAction from \"./CustomCalculationAction\";\nimport { KeySet } from \"@itwin/presentation-common\";\nimport { SvgProperties } from \"@itwin/itwinui-icons-react\";\n\ninterface PropertyModifyProps {\n iModelId: string;\n mappingId: string;\n group: Group;\n goBack: () => Promise<void>;\n hideGroupProps?: boolean;\n hideCalculatedProps?: boolean;\n hideCustomCalculationProps?: boolean;\n}\n\nexport enum PropertyMenuView {\n DEFAULT = \"default\",\n ADD_GROUP_PROPERTY = \"add_group_property\",\n MODIFY_GROUP_PROPERTY = \"modify_group_property\",\n ADD_CALCULATED_PROPERTY = \"add_calculated_property\",\n MODIFY_CALCULATED_PROPERTY = \"modify_calculated_property\",\n ADD_CUSTOM_CALCULATION = \"add_custom_calculation\",\n MODIFY_CUSTOM_CALCULATION = \"modify_custom_calculation\",\n}\n\nexport const PropertyMenu = ({\n iModelId,\n mappingId,\n group,\n goBack,\n hideGroupProps = false,\n hideCalculatedProps = false,\n hideCustomCalculationProps = false,\n}: PropertyModifyProps) => {\n const iModelConnection = useActiveIModelConnection() as IModelConnection;\n const [propertyMenuView, setPropertyMenuView] = useState<PropertyMenuView>(\n PropertyMenuView.DEFAULT,\n );\n const [selectedGroupProperty, setSelectedGroupProperty] = useState<\n GroupProperty | undefined\n >(undefined);\n const [selectedCalculatedProperty, setSelectedCalculatedProperty] = useState<\n CalculatedProperty | undefined\n >(undefined);\n const [selectedCustomCalculation, setSelectedCustomCalculation] = useState<\n CustomCalculation | undefined\n >(undefined);\n const [isInformationPanelOpen, setIsInformationPanelOpen] =\n useState<boolean>(false);\n const [resolvedHiliteIds, setResolvedHiliteIds] = useState<string[]>([]);\n const [keySet, setKeySet] = useState<KeySet>();\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n const initialize = async () => {\n try {\n const ids = await fetchIdsFromQuery(group.query ?? \"\", iModelConnection);\n if (ids.length === 0) {\n toaster.warning(\"The query is valid but produced no results.\");\n await goBack();\n }\n const keys = await manufactureKeys(ids, iModelConnection);\n setKeySet(keys);\n Presentation.selection.clearSelection(\n \"GroupingMappingWidget\",\n iModelConnection,\n );\n clearEmphasizedElements();\n const resolvedIds = await visualizeElementsByKeys(keys, \"red\");\n await zoomToElements(resolvedIds);\n setResolvedHiliteIds(resolvedIds);\n setIsLoading(false);\n } catch {\n toaster.negative(`Could not load ${group.groupName}.`);\n await goBack();\n }\n };\n void initialize();\n }, [iModelConnection, group.query, goBack, group.groupName]);\n\n const onGroupPropertyModify = useCallback(\n (value: CellProps<GroupProperty>) => {\n setSelectedGroupProperty(value.row.original);\n setPropertyMenuView(PropertyMenuView.MODIFY_GROUP_PROPERTY);\n },\n [],\n );\n\n const onCalculatedPropertyModify = useCallback(\n (value: CellProps<CalculatedProperty>) => {\n setSelectedCalculatedProperty(value.row.original);\n setPropertyMenuView(PropertyMenuView.MODIFY_CALCULATED_PROPERTY);\n },\n [],\n );\n\n const onCustomCalculationModify = useCallback(\n (value: CellProps<CustomCalculation>) => {\n setSelectedCustomCalculation(value.row.original);\n setPropertyMenuView(PropertyMenuView.MODIFY_CUSTOM_CALCULATION);\n },\n [],\n );\n\n const calculatedPropertyReturn = useCallback(async () => {\n visualizeElements(resolvedHiliteIds, \"red\");\n await zoomToElements(resolvedHiliteIds);\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }, [resolvedHiliteIds]);\n\n if (isLoading) {\n return (\n <div className='loading-overlay'>\n <Text>Loading Group</Text>\n <ProgressRadial indeterminate />\n <Text>Please wait...</Text>\n </div>\n );\n }\n\n switch (propertyMenuView) {\n case PropertyMenuView.ADD_GROUP_PROPERTY:\n return (\n <GroupPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n keySet={keySet ?? new KeySet()}\n returnFn={async () => {\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }}\n />\n );\n case PropertyMenuView.MODIFY_GROUP_PROPERTY:\n return (\n <GroupPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n keySet={keySet ?? new KeySet()}\n groupPropertyId={selectedGroupProperty?.id ?? \"\"}\n groupPropertyName={selectedGroupProperty?.propertyName ?? \"\"}\n returnFn={async () => {\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }}\n />\n );\n case PropertyMenuView.ADD_CALCULATED_PROPERTY:\n return (\n <CalculatedPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n ids={resolvedHiliteIds}\n returnFn={calculatedPropertyReturn}\n />\n );\n case PropertyMenuView.MODIFY_CALCULATED_PROPERTY:\n return (\n <CalculatedPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n property={selectedCalculatedProperty}\n ids={resolvedHiliteIds}\n returnFn={calculatedPropertyReturn}\n />\n );\n case PropertyMenuView.ADD_CUSTOM_CALCULATION:\n return (\n <CustomCalculationAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n returnFn={async () => {\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }}\n />\n );\n case PropertyMenuView.MODIFY_CUSTOM_CALCULATION:\n return (\n <CustomCalculationAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n customCalculation={selectedCustomCalculation}\n returnFn={calculatedPropertyReturn}\n />\n );\n default:\n return (\n <InformationPanelWrapper className='property-menu-wrapper'>\n <div className='property-header'>\n <WidgetHeader\n title={`${group.groupName ?? \"\"}`}\n returnFn={goBack}\n />\n <IconButton\n styleType='borderless'\n onClick={() => setIsInformationPanelOpen(true)}\n >\n <SvgProperties />\n </IconButton>\n </div>\n <div className='property-menu-container'>\n {!hideGroupProps && (\n <div className='property-table'>\n <GroupPropertyTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n onGroupPropertyModify={onGroupPropertyModify}\n setSelectedGroupProperty={setSelectedGroupProperty}\n setGroupModifyView={setPropertyMenuView}\n selectedGroupProperty={selectedGroupProperty}\n />\n </div>\n )}\n\n {!hideCalculatedProps && (\n <div className='property-table'>\n <CalculatedPropertyTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n onCalculatedPropertyModify={onCalculatedPropertyModify}\n setSelectedCalculatedProperty={setSelectedCalculatedProperty}\n setGroupModifyView={setPropertyMenuView}\n selectedCalculatedProperty={selectedCalculatedProperty}\n />\n </div>\n )}\n {!hideCustomCalculationProps && (\n <div className='property-table'>\n <CustomCalculationTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n onCustomCalculationModify={onCustomCalculationModify}\n setSelectedCustomCalculation={setSelectedCustomCalculation}\n setGroupModifyView={setPropertyMenuView}\n selectedCustomCalculation={selectedCustomCalculation}\n />\n </div>\n )}\n </div>\n <InformationPanel\n className='information-panel'\n isOpen={isInformationPanelOpen}\n >\n <InformationPanelHeader\n onClose={() => setIsInformationPanelOpen(false)}\n >\n <Text variant='subheading'>{`${group.groupName ?? \"\"\n } Information`}</Text>\n </InformationPanelHeader>\n <InformationPanelBody>\n <div className='information-body'>\n <LabeledTextarea\n label='Query'\n rows={15}\n readOnly\n defaultValue={group.query ?? \"\"}\n />\n </div>\n </InformationPanelBody>\n </InformationPanel>\n </InformationPanelWrapper>\n );\n }\n};\n"]}
1
+ {"version":3,"file":"PropertyMenu.js","sourceRoot":"","sources":["../../../../src/widget/components/PropertyMenu.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 { IModelConnection } from \"@itwin/core-frontend\";\nimport { Presentation } from \"@itwin/presentation-frontend\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport React, { useCallback, useEffect, useState } from \"react\";\n\nimport { fetchIdsFromQuery, WidgetHeader } from \"./utils\";\nimport {\n clearEmphasizedElements,\n manufactureKeys,\n visualizeElements,\n visualizeElementsByKeys,\n zoomToElements,\n} from \"./viewerUtils\";\nimport type { GroupType } from \"./Grouping\";\nimport \"./PropertyMenu.scss\";\nimport GroupPropertyAction from \"./GroupPropertyAction\";\nimport CalculatedPropertyAction from \"./CalculatedPropertyAction\";\nimport type { GroupPropertyType } from \"./GroupPropertyTable\";\nimport GroupPropertyTable from \"./GroupPropertyTable\";\nimport type {\n CalculatedPropertyType,\n} from \"./CalculatedPropertyTable\";\nimport CalculatedPropertyTable from \"./CalculatedPropertyTable\";\nimport {\n IconButton,\n InformationPanel,\n InformationPanelBody,\n InformationPanelHeader,\n InformationPanelWrapper,\n LabeledTextarea,\n ProgressRadial,\n Text,\n toaster,\n} from \"@itwin/itwinui-react\";\nimport type { CellProps } from \"react-table\";\nimport type {\n CustomCalculationType,\n} from \"./CustomCalculationTable\";\nimport CustomCalculationTable from \"./CustomCalculationTable\";\nimport CustomCalculationAction from \"./CustomCalculationAction\";\nimport { KeySet } from \"@itwin/presentation-common\";\nimport { SvgProperties } from \"@itwin/itwinui-icons-react\";\n\ninterface PropertyModifyProps {\n iModelId: string;\n mappingId: string;\n group: GroupType;\n goBack: () => Promise<void>;\n hideGroupProps?: boolean;\n hideCalculatedProps?: boolean;\n hideCustomCalculationProps?: boolean;\n}\n\nexport enum PropertyMenuView {\n DEFAULT = \"default\",\n ADD_GROUP_PROPERTY = \"add_group_property\",\n MODIFY_GROUP_PROPERTY = \"modify_group_property\",\n ADD_CALCULATED_PROPERTY = \"add_calculated_property\",\n MODIFY_CALCULATED_PROPERTY = \"modify_calculated_property\",\n ADD_CUSTOM_CALCULATION = \"add_custom_calculation\",\n MODIFY_CUSTOM_CALCULATION = \"modify_custom_calculation\",\n}\n\nexport const PropertyMenu = ({\n iModelId,\n mappingId,\n group,\n goBack,\n hideGroupProps = false,\n hideCalculatedProps = false,\n hideCustomCalculationProps = false,\n}: PropertyModifyProps) => {\n const iModelConnection = useActiveIModelConnection() as IModelConnection;\n const [propertyMenuView, setPropertyMenuView] = useState<PropertyMenuView>(\n PropertyMenuView.DEFAULT,\n );\n const [selectedGroupProperty, setSelectedGroupProperty] = useState<\n GroupPropertyType | undefined\n >(undefined);\n const [selectedCalculatedProperty, setSelectedCalculatedProperty] = useState<\n CalculatedPropertyType | undefined\n >(undefined);\n const [selectedCustomCalculation, setSelectedCustomCalculation] = useState<\n CustomCalculationType | undefined\n >(undefined);\n const [isInformationPanelOpen, setIsInformationPanelOpen] =\n useState<boolean>(false);\n const [resolvedHiliteIds, setResolvedHiliteIds] = useState<string[]>([]);\n const [keySet, setKeySet] = useState<KeySet>();\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n const initialize = async () => {\n try {\n const ids = await fetchIdsFromQuery(group.query ?? \"\", iModelConnection);\n if (ids.length === 0) {\n toaster.warning(\"The query is valid but produced no results.\");\n await goBack();\n }\n const keys = await manufactureKeys(ids, iModelConnection);\n setKeySet(keys);\n Presentation.selection.clearSelection(\n \"GroupingMappingWidget\",\n iModelConnection,\n );\n clearEmphasizedElements();\n const resolvedIds = await visualizeElementsByKeys(keys, \"red\");\n await zoomToElements(resolvedIds);\n setResolvedHiliteIds(resolvedIds);\n setIsLoading(false);\n } catch {\n toaster.negative(`Could not load ${group.groupName}.`);\n await goBack();\n }\n };\n void initialize();\n }, [iModelConnection, group.query, goBack, group.groupName]);\n\n const onGroupPropertyModify = useCallback(\n (value: CellProps<GroupPropertyType>) => {\n setSelectedGroupProperty(value.row.original);\n setPropertyMenuView(PropertyMenuView.MODIFY_GROUP_PROPERTY);\n },\n [],\n );\n\n const onCalculatedPropertyModify = useCallback(\n (value: CellProps<CalculatedPropertyType>) => {\n setSelectedCalculatedProperty(value.row.original);\n setPropertyMenuView(PropertyMenuView.MODIFY_CALCULATED_PROPERTY);\n },\n [],\n );\n\n const onCustomCalculationModify = useCallback(\n (value: CellProps<CustomCalculationType>) => {\n setSelectedCustomCalculation(value.row.original);\n setPropertyMenuView(PropertyMenuView.MODIFY_CUSTOM_CALCULATION);\n },\n [],\n );\n\n const calculatedPropertyReturn = useCallback(async () => {\n visualizeElements(resolvedHiliteIds, \"red\");\n await zoomToElements(resolvedHiliteIds);\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }, [resolvedHiliteIds]);\n\n if (isLoading) {\n return (\n <div className='loading-overlay'>\n <Text>Loading Group</Text>\n <ProgressRadial indeterminate />\n <Text>Please wait...</Text>\n </div>\n );\n }\n\n switch (propertyMenuView) {\n case PropertyMenuView.ADD_GROUP_PROPERTY:\n return (\n <GroupPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n keySet={keySet ?? new KeySet()}\n returnFn={async () => {\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }}\n />\n );\n case PropertyMenuView.MODIFY_GROUP_PROPERTY:\n return (\n <GroupPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n keySet={keySet ?? new KeySet()}\n groupPropertyId={selectedGroupProperty?.id ?? \"\"}\n groupPropertyName={selectedGroupProperty?.propertyName ?? \"\"}\n returnFn={async () => {\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }}\n />\n );\n case PropertyMenuView.ADD_CALCULATED_PROPERTY:\n return (\n <CalculatedPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n ids={resolvedHiliteIds}\n returnFn={calculatedPropertyReturn}\n />\n );\n case PropertyMenuView.MODIFY_CALCULATED_PROPERTY:\n return (\n <CalculatedPropertyAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n property={selectedCalculatedProperty}\n ids={resolvedHiliteIds}\n returnFn={calculatedPropertyReturn}\n />\n );\n case PropertyMenuView.ADD_CUSTOM_CALCULATION:\n return (\n <CustomCalculationAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n returnFn={async () => {\n setPropertyMenuView(PropertyMenuView.DEFAULT);\n }}\n />\n );\n case PropertyMenuView.MODIFY_CUSTOM_CALCULATION:\n return (\n <CustomCalculationAction\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n customCalculation={selectedCustomCalculation}\n returnFn={calculatedPropertyReturn}\n />\n );\n default:\n return (\n <InformationPanelWrapper className='property-menu-wrapper'>\n <div className='property-header'>\n <WidgetHeader\n title={`${group.groupName ?? \"\"}`}\n returnFn={goBack}\n />\n <IconButton\n styleType='borderless'\n onClick={() => setIsInformationPanelOpen(true)}\n >\n <SvgProperties />\n </IconButton>\n </div>\n <div className='property-menu-container'>\n {!hideGroupProps && (\n <div className='property-table'>\n <GroupPropertyTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n onGroupPropertyModify={onGroupPropertyModify}\n setSelectedGroupProperty={setSelectedGroupProperty}\n setGroupModifyView={setPropertyMenuView}\n selectedGroupProperty={selectedGroupProperty}\n />\n </div>\n )}\n\n {!hideCalculatedProps && (\n <div className='property-table'>\n <CalculatedPropertyTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n onCalculatedPropertyModify={onCalculatedPropertyModify}\n setSelectedCalculatedProperty={setSelectedCalculatedProperty}\n setGroupModifyView={setPropertyMenuView}\n selectedCalculatedProperty={selectedCalculatedProperty}\n />\n </div>\n )}\n {!hideCustomCalculationProps && (\n <div className='property-table'>\n <CustomCalculationTable\n iModelId={iModelId}\n mappingId={mappingId}\n groupId={group.id ?? \"\"}\n onCustomCalculationModify={onCustomCalculationModify}\n setSelectedCustomCalculation={setSelectedCustomCalculation}\n setGroupModifyView={setPropertyMenuView}\n selectedCustomCalculation={selectedCustomCalculation}\n />\n </div>\n )}\n </div>\n <InformationPanel\n className='information-panel'\n isOpen={isInformationPanelOpen}\n >\n <InformationPanelHeader\n onClose={() => setIsInformationPanelOpen(false)}\n >\n <Text variant='subheading'>{`${group.groupName ?? \"\"\n } Information`}</Text>\n </InformationPanelHeader>\n <InformationPanelBody>\n <div className='information-body'>\n <LabeledTextarea\n label='Query'\n rows={15}\n readOnly\n defaultValue={group.query ?? \"\"}\n />\n </div>\n </InformationPanelBody>\n </InformationPanel>\n </InformationPanelWrapper>\n );\n }\n};\n"]}
@@ -18,22 +18,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
21
  Object.defineProperty(exports, "__esModule", { value: true });
25
22
  const imodel_browser_react_1 = require("@itwin/imodel-browser-react");
26
23
  const itwinui_react_1 = require("@itwin/itwinui-react");
27
24
  const react_1 = __importStar(require("react"));
28
- const reportingClient_1 = require("../../api/reportingClient");
29
- const useFetchAccessToken_1 = __importDefault(require("../hooks/useFetchAccessToken"));
25
+ const GroupingMapping_1 = require("./GroupingMapping");
30
26
  require("./SelectIModel.scss");
31
27
  const SelectIModel = ({ projectId, onSelect, onCancel, backFn, }) => {
32
- const accessToken = useFetchAccessToken_1.default();
33
- const apiOverrides = react_1.useMemo(() => ({ serverEnvironmentPrefix: reportingClient_1.getUrlPrefix() }), []);
28
+ const apiContext = react_1.useContext(GroupingMapping_1.ApiContext);
29
+ const apiOverrides = react_1.useMemo(() => ({ serverEnvironmentPrefix: apiContext.prefix }), [apiContext.prefix]);
34
30
  return (react_1.default.createElement("div", { className: 'imodel-grid-container' },
35
31
  react_1.default.createElement("div", { className: 'imodel-grid' },
36
- react_1.default.createElement(imodel_browser_react_1.IModelGrid, { projectId: projectId, onThumbnailClick: onSelect, accessToken: accessToken, apiOverrides: apiOverrides })),
32
+ react_1.default.createElement(imodel_browser_react_1.IModelGrid, { projectId: projectId, onThumbnailClick: onSelect, accessToken: apiContext.accessToken, apiOverrides: apiOverrides })),
37
33
  react_1.default.createElement("div", { className: 'import-action-panel' },
38
34
  react_1.default.createElement(itwinui_react_1.Button, { onClick: backFn }, "Back"),
39
35
  react_1.default.createElement(itwinui_react_1.Button, { onClick: onCancel }, "Cancel"))));
@@ -1 +1 @@
1
- {"version":3,"file":"SelectIModel.js","sourceRoot":"","sources":["../../../../src/widget/components/SelectIModel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAQA,sEAEqC;AACrC,wDAA8C;AAC9C,+CAAuC;AACvC,+DAAyD;AACzD,uFAA+D;AAC/D,+BAA6B;AAQ7B,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,GACY,EAAE,EAAE;IACtB,MAAM,WAAW,GAAG,6BAAmB,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,eAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,8BAAY,EAAE,EAAE,CAAC,EACnD,EAAE,CACH,CAAC;IAEF,OAAO,CACL,uCAAK,SAAS,EAAC,uBAAuB;QACpC,uCAAK,SAAS,EAAC,aAAa;YAC1B,8BAAC,iCAAU,IACT,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,QAAQ,EAC1B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,GAC1B,CACE;QACN,uCAAK,SAAS,EAAC,qBAAqB;YAClC,8BAAC,sBAAM,IAAC,OAAO,EAAE,MAAM,WAAe;YACtC,8BAAC,sBAAM,IAAC,OAAO,EAAE,QAAQ,aAAiB,CACtC,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type {\n ApiOverrides,\n IModelFull,\n} from \"@itwin/imodel-browser-react\";\nimport {\n IModelGrid,\n} from \"@itwin/imodel-browser-react\";\nimport { Button } from \"@itwin/itwinui-react\";\nimport React, { useMemo } from \"react\";\nimport { getUrlPrefix } from \"../../api/reportingClient\";\nimport useFetchAccessToken from \"../hooks/useFetchAccessToken\";\nimport \"./SelectIModel.scss\";\n\ninterface SelectIModelProps {\n projectId: string;\n onSelect: (project: IModelFull) => void;\n onCancel: () => void;\n backFn: () => void;\n}\nconst SelectIModel = ({\n projectId,\n onSelect,\n onCancel,\n backFn,\n}: SelectIModelProps) => {\n const accessToken = useFetchAccessToken();\n\n const apiOverrides = useMemo<ApiOverrides<IModelFull[]>>(\n () => ({ serverEnvironmentPrefix: getUrlPrefix() }),\n []\n );\n\n return (\n <div className='imodel-grid-container'>\n <div className='imodel-grid'>\n <IModelGrid\n projectId={projectId}\n onThumbnailClick={onSelect}\n accessToken={accessToken}\n apiOverrides={apiOverrides}\n />\n </div>\n <div className='import-action-panel'>\n <Button onClick={backFn}>Back</Button>\n <Button onClick={onCancel}>Cancel</Button>\n </div>\n </div>\n );\n};\n\nexport default SelectIModel;\n"]}
1
+ {"version":3,"file":"SelectIModel.js","sourceRoot":"","sources":["../../../../src/widget/components/SelectIModel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQA,sEAEqC;AACrC,wDAA8C;AAC9C,+CAAmD;AACnD,uDAA+C;AAC/C,+BAA6B;AAQ7B,MAAM,YAAY,GAAG,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,GACY,EAAE,EAAE;IACtB,MAAM,UAAU,GAAG,kBAAU,CAAC,4BAAU,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,eAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,uBAAuB,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,EACtD,CAAC,UAAU,CAAC,MAAM,CAAC,CACpB,CAAC;IAEF,OAAO,CACL,uCAAK,SAAS,EAAC,uBAAuB;QACpC,uCAAK,SAAS,EAAC,aAAa;YAC1B,8BAAC,iCAAU,IACT,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,QAAQ,EAC1B,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,YAAY,EAAE,YAAY,GAC1B,CACE;QACN,uCAAK,SAAS,EAAC,qBAAqB;YAClC,8BAAC,sBAAM,IAAC,OAAO,EAAE,MAAM,WAAe;YACtC,8BAAC,sBAAM,IAAC,OAAO,EAAE,QAAQ,aAAiB,CACtC,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type {\n ApiOverrides,\n IModelFull,\n} from \"@itwin/imodel-browser-react\";\nimport {\n IModelGrid,\n} from \"@itwin/imodel-browser-react\";\nimport { Button } from \"@itwin/itwinui-react\";\nimport React, { useContext, useMemo } from \"react\";\nimport { ApiContext } from \"./GroupingMapping\";\nimport \"./SelectIModel.scss\";\n\ninterface SelectIModelProps {\n projectId: string;\n onSelect: (project: IModelFull) => void;\n onCancel: () => void;\n backFn: () => void;\n}\nconst SelectIModel = ({\n projectId,\n onSelect,\n onCancel,\n backFn,\n}: SelectIModelProps) => {\n const apiContext = useContext(ApiContext);\n\n const apiOverrides = useMemo<ApiOverrides<IModelFull[]>>(\n () => ({ serverEnvironmentPrefix: apiContext.prefix }),\n [apiContext.prefix]\n );\n\n return (\n <div className='imodel-grid-container'>\n <div className='imodel-grid'>\n <IModelGrid\n projectId={projectId}\n onThumbnailClick={onSelect}\n accessToken={apiContext.accessToken}\n apiOverrides={apiOverrides}\n />\n </div>\n <div className='import-action-panel'>\n <Button onClick={backFn}>Back</Button>\n <Button onClick={onCancel}>Cancel</Button>\n </div>\n </div>\n );\n};\n\nexport default SelectIModel;\n"]}
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import type { Mapping } from "./Mapping";
2
+ import type { MappingType } from "./Mapping";
3
3
  import "./SelectMapping.scss";
4
4
  interface SelectMappingsProps {
5
5
  iModelId: string;
6
- onSelect: (selectedMappings: Mapping[]) => void;
6
+ onSelect: (selectedMappings: MappingType[]) => void;
7
7
  onCancel: () => void;
8
8
  backFn: () => void;
9
9
  }
@@ -21,13 +21,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  const itwinui_react_1 = require("@itwin/itwinui-react");
23
23
  const react_1 = __importStar(require("react"));
24
- const reportingClient_1 = require("../../api/reportingClient");
24
+ const insights_client_1 = require("@itwin/insights-client");
25
+ const GroupingMapping_1 = require("./GroupingMapping");
25
26
  require("./SelectMapping.scss");
26
27
  const utils_1 = require("./utils");
27
- const fetchMappings = async (setMappings, iModelId, setIsLoading) => {
28
+ const fetchMappings = async (setMappings, iModelId, setIsLoading, apiContext) => {
28
29
  try {
29
30
  setIsLoading(true);
30
- const mappings = await reportingClient_1.reportingClientApi.getMappings(iModelId);
31
+ const reportingClientApi = new insights_client_1.ReportingClient(apiContext.prefix);
32
+ const mappings = await reportingClientApi.getMappings(apiContext.accessToken, iModelId);
31
33
  setMappings(mappings);
32
34
  }
33
35
  catch (error) {
@@ -37,17 +39,14 @@ const fetchMappings = async (setMappings, iModelId, setIsLoading) => {
37
39
  setIsLoading(false);
38
40
  }
39
41
  };
40
- const useFetchMappings = (iModelId, setIsLoading) => {
41
- const [mappings, setMappings] = react_1.useState([]);
42
- react_1.useEffect(() => {
43
- void fetchMappings(setMappings, iModelId, setIsLoading);
44
- }, [iModelId, setIsLoading]);
45
- return [mappings, setMappings];
46
- };
47
42
  const SelectMappings = ({ iModelId, onSelect, onCancel, backFn, }) => {
43
+ const apiContext = react_1.useContext(GroupingMapping_1.ApiContext);
48
44
  const [isLoading, setIsLoading] = react_1.useState(true);
49
- const [mappings] = useFetchMappings(iModelId, setIsLoading);
50
45
  const [selectedMappings, setSelectedMappings] = react_1.useState([]);
46
+ const [mappings, setMappings] = react_1.useState([]);
47
+ react_1.useEffect(() => {
48
+ void fetchMappings(setMappings, iModelId, setIsLoading, apiContext);
49
+ }, [apiContext, iModelId, setIsLoading]);
51
50
  const mappingsColumns = react_1.useMemo(() => [
52
51
  {
53
52
  Header: "Table",