@itwin/reports-config-widget-react 0.3.0 → 0.5.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/CHANGELOG.json +41 -0
- package/CHANGELOG.md +25 -2
- package/coverage/clover.xml +867 -0
- package/coverage/coverage-final.json +33 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +206 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +193 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/test/index.html +116 -0
- package/coverage/lcov-report/src/test/test-utils.tsx.html +379 -0
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +265 -0
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +247 -0
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +589 -0
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +664 -0
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +112 -0
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +367 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +187 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +145 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +139 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +151 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +190 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +176 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +295 -0
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +289 -0
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +262 -0
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +472 -0
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +472 -0
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +1063 -0
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +754 -0
- package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +373 -0
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +301 -0
- package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +166 -0
- package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +274 -0
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +286 -0
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +337 -0
- package/coverage/lcov-report/src/widget/components/index.html +416 -0
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +565 -0
- package/coverage/lcov-report/src/widget/context/BulkExtractorContext.tsx.html +163 -0
- package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +202 -0
- package/coverage/lcov-report/src/widget/context/index.html +131 -0
- package/coverage/lcov-report/src/widget/hooks/index.html +116 -0
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +295 -0
- package/coverage/lcov-report/src/widget/index.html +116 -0
- package/coverage/lcov.info +1609 -0
- package/jest.config.js +1 -0
- package/lib/cjs/ReportsConfigWidget.js +1 -1
- package/lib/cjs/ReportsConfigWidget.js.map +1 -1
- package/lib/cjs/reports-config-widget-react.js +5 -1
- package/lib/cjs/reports-config-widget-react.js.map +1 -1
- package/lib/cjs/test/AddMappingModal.test.js +20 -70
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
- package/lib/cjs/test/BulkExtractor.test.js +5 -1
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
- package/lib/cjs/test/DeleteModal.test.js +2 -2
- package/lib/cjs/test/DeleteModal.test.js.map +1 -1
- package/lib/cjs/test/ReportAction.test.js +7 -7
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +31 -81
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/cjs/test/ReportMappings.test.js +38 -88
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +68 -66
- package/lib/cjs/test/Reports.test.js.map +1 -1
- package/lib/cjs/test/WidgetHeader.test.js +9 -3
- package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
- package/lib/cjs/test/test-utils.d.ts +30 -0
- package/lib/cjs/test/test-utils.d.ts.map +1 -1
- package/lib/cjs/test/test-utils.js +66 -7
- package/lib/cjs/test/test-utils.js.map +1 -1
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +3 -3
- package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
- package/lib/cjs/widget/ReportsConfigUiProvider.js +10 -8
- package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts +2 -2
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +5 -1
- package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.scss +2 -3
- package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +27 -28
- package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.scss +1 -2
- package/lib/cjs/widget/components/BulkExtractor.js +2 -2
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/Constants.d.ts +1 -0
- package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
- package/lib/cjs/widget/components/Constants.js +2 -1
- package/lib/cjs/widget/components/Constants.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +8 -4
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.scss +2 -3
- package/lib/cjs/widget/components/ExtractionStatus.js +7 -3
- package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStatus.scss +6 -7
- package/lib/cjs/widget/components/HorizontalTile.js +2 -2
- package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.scss +10 -16
- package/lib/cjs/widget/components/LocalizedTablePaginator.js +7 -3
- package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +19 -17
- package/lib/cjs/widget/components/ReportAction.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.scss +1 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.js +14 -12
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +22 -18
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +28 -27
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +9 -10
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +26 -22
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/Reports.scss +15 -15
- package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportsConfigContext.js +29 -32
- package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +9 -6
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.scss +1 -3
- package/lib/cjs/widget/components/ReportsRouter.js +1 -2
- package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/cjs/widget/components/SearchBar.js +9 -5
- package/lib/cjs/widget/components/SearchBar.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.scss +0 -1
- package/lib/cjs/widget/components/SelectIModel.js +11 -7
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.scss +2 -3
- package/lib/cjs/widget/components/utils.d.ts.map +1 -1
- package/lib/cjs/widget/components/utils.js +1 -1
- package/lib/cjs/widget/components/utils.js.map +1 -1
- package/lib/cjs/widget/components/utils.scss +16 -8
- package/lib/cjs/widget/context/BulkExtractorContext.js +6 -2
- package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
- package/lib/cjs/widget/context/ReportsConfigApiContext.js +6 -2
- package/lib/cjs/widget/context/ReportsConfigApiContext.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/esm/ReportsConfigWidget.js +1 -1
- package/lib/esm/ReportsConfigWidget.js.map +1 -1
- package/lib/esm/test/AddMappingModal.test.js +2 -56
- package/lib/esm/test/AddMappingModal.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +3 -57
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/esm/test/ReportMappings.test.js +8 -62
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +32 -53
- package/lib/esm/test/Reports.test.js.map +1 -1
- package/lib/esm/test/WidgetHeader.test.js +8 -2
- package/lib/esm/test/WidgetHeader.test.js.map +1 -1
- package/lib/esm/test/test-utils.d.ts +30 -0
- package/lib/esm/test/test-utils.d.ts.map +1 -1
- package/lib/esm/test/test-utils.js +59 -4
- package/lib/esm/test/test-utils.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/ReportsConfigUiProvider.d.ts +3 -3
- package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
- package/lib/esm/widget/ReportsConfigUiProvider.js +2 -4
- package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts +2 -2
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/esm/widget/components/ActionPanel.js.map +1 -1
- package/lib/esm/widget/components/ActionPanel.scss +2 -3
- package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +10 -15
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.scss +1 -2
- package/lib/esm/widget/components/Constants.d.ts +1 -0
- package/lib/esm/widget/components/Constants.d.ts.map +1 -1
- package/lib/esm/widget/components/Constants.js +1 -0
- package/lib/esm/widget/components/Constants.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +2 -2
- package/lib/esm/widget/components/DeleteModal.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.scss +2 -3
- package/lib/esm/widget/components/ExtractionStatus.scss +6 -7
- package/lib/esm/widget/components/HorizontalTile.scss +10 -16
- package/lib/esm/widget/components/ReportAction.js +7 -9
- package/lib/esm/widget/components/ReportAction.js.map +1 -1
- package/lib/esm/widget/components/ReportAction.scss +1 -2
- package/lib/esm/widget/components/ReportHorizontalTile.js +4 -6
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +11 -11
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +7 -10
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +9 -10
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +9 -9
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/Reports.scss +15 -15
- package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportsConfigContext.js +21 -28
- package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +1 -2
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.scss +1 -3
- package/lib/esm/widget/components/ReportsRouter.js +1 -2
- package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/esm/widget/components/SearchBar.js +2 -2
- package/lib/esm/widget/components/SearchBar.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.scss +0 -1
- package/lib/esm/widget/components/SelectIModel.js +1 -1
- package/lib/esm/widget/components/SelectIModel.js.map +1 -1
- package/lib/esm/widget/components/SelectIModel.scss +2 -3
- package/lib/esm/widget/components/utils.d.ts.map +1 -1
- package/lib/esm/widget/components/utils.js +2 -2
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/components/utils.scss +16 -8
- package/lib/public/locales/en/ReportsConfigWidget.json +4 -0
- package/package.json +56 -55
- package/public/locales/en/ReportsConfigWidget.json +4 -0
- package/src/test/AddMappingModal.test.tsx +7 -57
- package/src/test/ReportMappingHorizontalTile.test.tsx +6 -58
- package/src/test/ReportMappings.test.tsx +7 -58
- package/src/test/Reports.test.tsx +32 -110
- package/src/test/WidgetHeader.test.tsx +9 -2
- package/src/test/test-utils.tsx +62 -1
- package/src/widget/ReportsConfigUiProvider.tsx +7 -14
- package/src/widget/components/ActionPanel.scss +2 -3
- package/src/widget/components/ActionPanel.tsx +1 -1
- package/src/widget/components/AddMappingsModal.scss +1 -2
- package/src/widget/components/AddMappingsModal.tsx +16 -21
- package/src/widget/components/Constants.ts +2 -0
- package/src/widget/components/DeleteModal.scss +2 -3
- package/src/widget/components/DeleteModal.tsx +3 -3
- package/src/widget/components/ExtractionStatus.scss +6 -7
- package/src/widget/components/HorizontalTile.scss +10 -16
- package/src/widget/components/ReportAction.scss +1 -2
- package/src/widget/components/ReportAction.tsx +3 -3
- package/src/widget/components/ReportHorizontalTile.tsx +1 -1
- package/src/widget/components/ReportMappingHorizontalTile.tsx +28 -27
- package/src/widget/components/ReportMappings.scss +9 -10
- package/src/widget/components/ReportMappings.tsx +2 -4
- package/src/widget/components/Reports.scss +15 -15
- package/src/widget/components/Reports.tsx +25 -22
- package/src/widget/components/ReportsConfigContext.tsx +3 -2
- package/src/widget/components/ReportsContainer.scss +1 -3
- package/src/widget/components/SearchBar.scss +0 -1
- package/src/widget/components/SearchBar.tsx +6 -1
- package/src/widget/components/SelectIModel.scss +2 -3
- package/src/widget/components/SelectIModel.tsx +1 -1
- package/src/widget/components/utils.scss +16 -8
- package/src/widget/components/utils.tsx +7 -6
- package/.rush/temp/operation/rebuild/all.log +0 -9
- package/.rush/temp/operation/rebuild/state.json +0 -3
- package/.rush/temp/package-deps_rebuild.json +0 -68
- package/.rush/temp/shrinkwrap-deps.json +0 -931
- package/reports-config-widget-react.build.error.log +0 -1
- package/reports-config-widget-react.build.log +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { StagePanelLocation, StagePanelSection } from "@itwin/appui-
|
|
1
|
+
import type { UiItemsProvider, Widget } from "@itwin/appui-react";
|
|
2
|
+
import { StagePanelLocation, StagePanelSection } from "@itwin/appui-react";
|
|
3
3
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
4
4
|
export declare const REPORTS_CONFIG_BASE_URL = "https://api.bentley.com";
|
|
5
5
|
export declare class ReportsConfigProvider implements UiItemsProvider {
|
|
@@ -7,6 +7,6 @@ export declare class ReportsConfigProvider implements UiItemsProvider {
|
|
|
7
7
|
private readonly _getAccessToken?;
|
|
8
8
|
private readonly _baseUrl;
|
|
9
9
|
constructor(getAccessToken?: () => Promise<AccessToken>, baseUrl?: string);
|
|
10
|
-
provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<
|
|
10
|
+
provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<Widget>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=ReportsConfigUiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsConfigUiProvider.d.ts","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"ReportsConfigUiProvider.d.ts","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,SAAgB,EAAE,2BAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EAC3C,OAAO,GAAE,MAAgC;IAMpC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,aAAa,CAAC,MAAM,CAAC;CAoBzB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -23,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
27
|
};
|
|
24
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
29
|
exports.ReportsConfigProvider = exports.REPORTS_CONFIG_BASE_URL = void 0;
|
|
26
|
-
const
|
|
30
|
+
const appui_react_1 = require("@itwin/appui-react");
|
|
27
31
|
const React = __importStar(require("react"));
|
|
28
32
|
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
29
33
|
const ReportsContainer_1 = __importDefault(require("./components/ReportsContainer"));
|
|
@@ -36,15 +40,13 @@ class ReportsConfigProvider {
|
|
|
36
40
|
}
|
|
37
41
|
provideWidgets(_stageId, stageUsage, location, section) {
|
|
38
42
|
const widgets = [];
|
|
39
|
-
if (location ===
|
|
40
|
-
section ===
|
|
41
|
-
stageUsage ===
|
|
43
|
+
if (location === appui_react_1.StagePanelLocation.Left &&
|
|
44
|
+
section === appui_react_1.StagePanelSection.Start &&
|
|
45
|
+
stageUsage === appui_react_1.StageUsage.General) {
|
|
42
46
|
const ReportsWidget = {
|
|
43
47
|
id: "reports-config-widget",
|
|
44
48
|
label: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportsConfig"),
|
|
45
|
-
|
|
46
|
-
return (React.createElement(ReportsContainer_1.default, { getAccessToken: this._getAccessToken, baseUrl: this._baseUrl }));
|
|
47
|
-
},
|
|
49
|
+
content: React.createElement(ReportsContainer_1.default, { getAccessToken: this._getAccessToken, baseUrl: this._baseUrl }),
|
|
48
50
|
};
|
|
49
51
|
widgets.push(ReportsWidget);
|
|
50
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsConfigUiProvider.js","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReportsConfigUiProvider.js","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,oDAI4B;AAG5B,6CAA+B;AAC/B,gEAA6D;AAC7D,qFAA6D;AAEhD,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE,MAAa,qBAAqB;IAKhC,YACE,cAA2C,EAC3C,UAAkB,+BAAuB;QAN3B,OAAE,GAAG,uBAAuB,CAAC;QAQ3C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEM,cAAc,CACnB,QAAgB,EAChB,UAAkB,EAClB,QAA4B,EAC5B,OAA2B;QAE3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IACE,QAAQ,KAAK,gCAAkB,CAAC,IAAI;YACpC,OAAO,KAAK,+BAAiB,CAAC,KAAK;YACnC,UAAU,KAAK,wBAAU,CAAC,OAAO,EACjC;YACA,MAAM,aAAa,GAAW;gBAC5B,EAAE,EAAE,uBAAuB;gBAC3B,KAAK,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,mCAAmC,CACpC;gBACD,OAAO,EAAE,oBAAC,0BAAgB,IAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAI;aAC5F,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7B;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAtCD,sDAsCC","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 UiItemsProvider,\n Widget,\n} from \"@itwin/appui-react\";\nimport {\n StagePanelLocation,\n StagePanelSection,\n StageUsage,\n} from \"@itwin/appui-react\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\n\nimport * as React from \"react\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport ReportsContainer from \"./components/ReportsContainer\";\n\nexport const REPORTS_CONFIG_BASE_URL = \"https://api.bentley.com\";\n\nexport class ReportsConfigProvider implements UiItemsProvider {\n public readonly id = \"ReportsConfigProvider\";\n private readonly _getAccessToken?: () => Promise<AccessToken>;\n private readonly _baseUrl: string;\n\n constructor(\n getAccessToken?: () => Promise<AccessToken>,\n baseUrl: string = REPORTS_CONFIG_BASE_URL\n ) {\n this._getAccessToken = getAccessToken;\n this._baseUrl = baseUrl;\n }\n\n public provideWidgets(\n _stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection\n ): ReadonlyArray<Widget> {\n const widgets: Widget[] = [];\n if (\n location === StagePanelLocation.Left &&\n section === StagePanelSection.Start &&\n stageUsage === StageUsage.General\n ) {\n const ReportsWidget: Widget = {\n id: \"reports-config-widget\",\n label: ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:ReportsConfig\"\n ),\n content: <ReportsContainer getAccessToken={this._getAccessToken} baseUrl={this._baseUrl} />,\n };\n\n widgets.push(ReportsWidget);\n }\n\n return widgets;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import "./ActionPanel.scss";
|
|
3
3
|
export interface ActionPanelProps {
|
|
4
4
|
actionLabel: string;
|
|
@@ -8,6 +8,6 @@ export interface ActionPanelProps {
|
|
|
8
8
|
isSavingDisabled?: boolean;
|
|
9
9
|
isLoading?: boolean;
|
|
10
10
|
}
|
|
11
|
-
declare const ActionPanel: ({ actionLabel, onAction, onCancel, isCancelDisabled, isSavingDisabled, isLoading, }: ActionPanelProps) =>
|
|
11
|
+
declare const ActionPanel: ({ actionLabel, onAction, onCancel, isCancelDisabled, isSavingDisabled, isLoading, }: ActionPanelProps) => React.ReactElement;
|
|
12
12
|
export default ActionPanel;
|
|
13
13
|
//# sourceMappingURL=ActionPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPanel.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ActionPanel.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,oBAAoB,CAAC;AAG5B,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,WAAW,wFAOd,gBAAgB,KAAG,MAAM,YAyB3B,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPanel.js","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActionPanel.js","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gGAGgG;AAChG,wDAA8C;AAC9C,6CAA+B;AAC/B,mEAAgE;AAChE,8BAA4B;AAC5B,mCAAyC;AAWzC,MAAM,WAAW,GAAG,CAAC,EACnB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,KAAK,GACA,EAAsB,EAAE;IACzC,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;QAC9B,SAAS,IAAI,oBAAC,sBAAc,OAAG;QAChC,oBAAC,sBAAM,IACL,QAAQ,EAAE,gBAAgB,IAAI,SAAS,EACvC,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,QAAQ,IAEhB,WAAW,CACL;QACR,QAAQ,IAAI,CACX,oBAAC,sBAAM,IACL,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB,IAAI,SAAS,IAEtC,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,4BAA4B,CAC7B,CACM,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,WAAW,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 { Button } from \"@itwin/itwinui-react\";\nimport * as React from \"react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport \"./ActionPanel.scss\";\nimport { LoadingSpinner } from \"./utils\";\n\nexport interface ActionPanelProps {\n actionLabel: string;\n onAction: () => Promise<void>;\n onCancel?: () => void;\n isCancelDisabled?: boolean;\n isSavingDisabled?: boolean;\n isLoading?: boolean;\n}\n\nconst ActionPanel = ({\n actionLabel,\n onAction,\n onCancel,\n isCancelDisabled = false,\n isSavingDisabled = false,\n isLoading = false,\n}: ActionPanelProps): React.ReactElement => {\n return (\n <div className=\"rcw-action-panel\">\n {isLoading && <LoadingSpinner />}\n <Button\n disabled={isSavingDisabled || isLoading}\n styleType=\"high-visibility\"\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n {onCancel && (\n <Button\n styleType=\"default\"\n type=\"button\"\n onClick={onCancel}\n disabled={isCancelDisabled || isLoading}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Cancel\"\n )}\n </Button>\n )}\n </div>\n );\n};\n\nexport default ActionPanel;\n"]}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-action-panel {
|
|
8
7
|
display: flex;
|
|
9
8
|
justify-content: right;
|
|
10
|
-
padding:
|
|
11
|
-
gap:
|
|
9
|
+
padding: calc(var(--iui-size-s) * 2) var(--iui-size-m) var(--iui-size-s);
|
|
10
|
+
gap: var(--iui-size-xs);
|
|
12
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddMappingsModal.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEtE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AddMappingsModal.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEtE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMvD,oBAAY,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAwB3D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,oEAM1B,qBAAqB,gBA8GvB,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -44,41 +48,36 @@ const fetchMappings = async (setMappings, iModelId, setIsLoading, mappingsClient
|
|
|
44
48
|
setMappings(mappings);
|
|
45
49
|
}
|
|
46
50
|
catch (error) {
|
|
47
|
-
utils_1.handleError(error.status);
|
|
51
|
+
(0, utils_1.handleError)(error.status);
|
|
48
52
|
}
|
|
49
53
|
finally {
|
|
50
54
|
setIsLoading(false);
|
|
51
55
|
}
|
|
52
56
|
};
|
|
53
57
|
const AddMappingsModal = ({ reportId, existingMappings, show, onClose, defaultIModelId, }) => {
|
|
54
|
-
const [isLoading, setIsLoading] = react_1.useState(false);
|
|
55
|
-
const selectedMappings = react_1.useRef([]);
|
|
56
|
-
const [selectedIModelId, setSelectediModelId] = react_1.useState(defaultIModelId);
|
|
57
|
-
const [mappings, setMappings] = react_1.useState([]);
|
|
58
|
-
const { getAccessToken, mappingsClient, reportsClient } = ReportsConfigApiContext_1.useReportsConfigApi();
|
|
59
|
-
react_1.useEffect(() => {
|
|
58
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
59
|
+
const selectedMappings = (0, react_1.useRef)([]);
|
|
60
|
+
const [selectedIModelId, setSelectediModelId] = (0, react_1.useState)(defaultIModelId);
|
|
61
|
+
const [mappings, setMappings] = (0, react_1.useState)([]);
|
|
62
|
+
const { getAccessToken, mappingsClient, reportsClient } = (0, ReportsConfigApiContext_1.useReportsConfigApi)();
|
|
63
|
+
(0, react_1.useEffect)(() => {
|
|
60
64
|
if (selectedIModelId) {
|
|
61
65
|
void fetchMappings(setMappings, selectedIModelId, setIsLoading, mappingsClient, getAccessToken);
|
|
62
66
|
}
|
|
63
67
|
}, [getAccessToken, mappingsClient, selectedIModelId, setIsLoading]);
|
|
64
|
-
const mappingsColumns = react_1.useMemo(() => [
|
|
68
|
+
const mappingsColumns = (0, react_1.useMemo)(() => [
|
|
65
69
|
{
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
Header: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:MappingName"),
|
|
71
|
-
accessor: "mappingName",
|
|
72
|
-
Filter: itwinui_react_1.tableFilters.TextFilter(),
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
id: "description",
|
|
76
|
-
Header: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Description"),
|
|
77
|
-
accessor: "description",
|
|
78
|
-
Filter: itwinui_react_1.tableFilters.TextFilter(),
|
|
79
|
-
},
|
|
80
|
-
],
|
|
70
|
+
id: "mappingName",
|
|
71
|
+
Header: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:MappingName"),
|
|
72
|
+
accessor: "mappingName",
|
|
73
|
+
Filter: itwinui_react_1.tableFilters.TextFilter(),
|
|
81
74
|
},
|
|
75
|
+
{
|
|
76
|
+
id: "description",
|
|
77
|
+
Header: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Description"),
|
|
78
|
+
accessor: "description",
|
|
79
|
+
Filter: itwinui_react_1.tableFilters.TextFilter(),
|
|
80
|
+
}
|
|
82
81
|
], []);
|
|
83
82
|
const onSave = async () => {
|
|
84
83
|
try {
|
|
@@ -95,18 +94,18 @@ const AddMappingsModal = ({ reportId, existingMappings, show, onClose, defaultIM
|
|
|
95
94
|
await onClose();
|
|
96
95
|
}
|
|
97
96
|
catch (error) {
|
|
98
|
-
utils_1.handleError(error.status);
|
|
97
|
+
(0, utils_1.handleError)(error.status);
|
|
99
98
|
}
|
|
100
99
|
finally {
|
|
101
100
|
setIsLoading(false);
|
|
102
101
|
}
|
|
103
102
|
};
|
|
104
|
-
const onSelect = react_1.useCallback((selectData) => {
|
|
103
|
+
const onSelect = (0, react_1.useCallback)((selectData) => {
|
|
105
104
|
if (selectData)
|
|
106
105
|
selectedMappings.current = selectData;
|
|
107
106
|
}, []);
|
|
108
|
-
const tableData = react_1.useMemo(() => isLoading ? [] : mappings, [isLoading, mappings]);
|
|
109
|
-
const isRowDisabled = react_1.useCallback((rowData) => existingMappings.some((v) => v.mappingId === rowData.id), [existingMappings]);
|
|
107
|
+
const tableData = (0, react_1.useMemo)(() => isLoading ? [] : mappings, [isLoading, mappings]);
|
|
108
|
+
const isRowDisabled = (0, react_1.useCallback)((rowData) => existingMappings.some((v) => v.mappingId === rowData.id), [existingMappings]);
|
|
110
109
|
return (react_1.default.createElement(itwinui_react_1.Modal, { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:AddMappings"), isOpen: show, isDismissible: !isLoading, onClose: async () => {
|
|
111
110
|
await onClose();
|
|
112
111
|
}, style: { display: "flex", flexDirection: "column", maxHeight: "77vh" } },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddMappingsModal.js","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddMappingsModal.js","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.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 { Modal, Table, tableFilters } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { Mapping, MappingsClient } from \"@itwin/insights-client\";\nimport ActionPanel from \"./ActionPanel\";\nimport \"./AddMappingsModal.scss\";\nimport { LocalizedTablePaginator } from \"./LocalizedTablePaginator\";\nimport type { ReportMappingAndMapping } from \"./ReportMappings\";\nimport { useReportsConfigApi } from \"../context/ReportsConfigApiContext\";\nimport { SelectIModel } from \"./SelectIModel\";\nimport type { CreateTypeFromInterface } from \"./utils\";\nimport { handleError } from \"./utils\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type { Column } from \"react-table\";\n\nexport type MappingType = CreateTypeFromInterface<Mapping>;\n\nconst fetchMappings = async (\n setMappings: (mappings: Mapping[]) => void,\n iModelId: string,\n setIsLoading: (isLoading: boolean) => void,\n mappingsClient: MappingsClient,\n getAccessToken: () => Promise<AccessToken>\n) => {\n try {\n setIsLoading(true);\n const accessToken = await getAccessToken();\n const mappings = await mappingsClient.getMappings(\n accessToken,\n iModelId\n );\n setMappings(mappings);\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n};\n\nexport interface AddMappingsModalProps {\n reportId: string;\n existingMappings: ReportMappingAndMapping[];\n show: boolean;\n onClose: () => Promise<void>;\n defaultIModelId?: string;\n}\n\nexport const AddMappingsModal = ({\n reportId,\n existingMappings,\n show,\n onClose,\n defaultIModelId,\n}: AddMappingsModalProps) => {\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const selectedMappings = useRef<Mapping[]>([]);\n const [selectedIModelId, setSelectediModelId] = useState<string | undefined>(defaultIModelId);\n const [mappings, setMappings] = useState<Mapping[]>([]);\n const { getAccessToken, mappingsClient, reportsClient } = useReportsConfigApi();\n\n useEffect(() => {\n if (selectedIModelId) {\n void fetchMappings(\n setMappings,\n selectedIModelId,\n setIsLoading,\n mappingsClient,\n getAccessToken\n );\n }\n }, [getAccessToken, mappingsClient, selectedIModelId, setIsLoading]);\n\n const mappingsColumns = useMemo(\n (): Column<CreateTypeFromInterface<Mapping>>[] => [\n {\n id: \"mappingName\",\n Header: ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:MappingName\"\n ),\n accessor: \"mappingName\",\n Filter: tableFilters.TextFilter(),\n },\n {\n id: \"description\",\n Header: ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Description\"\n ),\n accessor: \"description\",\n Filter: tableFilters.TextFilter(),\n }],\n []\n );\n\n const onSave = async () => {\n try {\n if (!selectedIModelId) return;\n setIsLoading(true);\n const accessToken = await getAccessToken();\n for (const mapping of selectedMappings.current) {\n await reportsClient.createReportMapping(accessToken, reportId, {\n imodelId: selectedIModelId,\n mappingId: mapping.id,\n });\n }\n\n await onClose();\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n };\n\n const onSelect = useCallback((selectData: Mapping[] | undefined) => {\n if (selectData) selectedMappings.current = selectData;\n }, []);\n\n const tableData = useMemo(() => isLoading ? [] : mappings, [isLoading, mappings]);\n const isRowDisabled = useCallback((rowData: MappingType) =>\n existingMappings.some((v) => v.mappingId === rowData.id), [existingMappings]);\n\n return (\n <Modal\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:AddMappings\"\n )}\n isOpen={show}\n isDismissible={!isLoading}\n onClose={async () => {\n await onClose();\n }}\n style={{ display: \"flex\", flexDirection: \"column\", maxHeight: \"77vh\" }}\n >\n <div className=\"rcw-add-mappings-container\">\n <SelectIModel\n selectedIModelId={selectedIModelId}\n setSelectedIModelId={setSelectediModelId}\n />\n <Table<MappingType>\n data={tableData}\n columns={mappingsColumns}\n className=\"rcw-add-mappings-table\"\n emptyTableContent={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:NoMappingsAvailable\"\n )}\n isSortable\n isSelectable\n isLoading={isLoading}\n isRowDisabled={isRowDisabled}\n onSelect={onSelect}\n paginatorRenderer={LocalizedTablePaginator}\n />\n </div>\n {/* Add button permanently enabled as a workaround to the warning stating that the table and parent component are being rendered at the same time. */}\n <ActionPanel\n actionLabel={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Add\"\n )}\n onAction={onSave}\n isLoading={isLoading}\n />\n </Modal>\n );\n};\n"]}
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-add-mappings-container {
|
|
8
7
|
display: flex;
|
|
9
8
|
flex-direction: column;
|
|
10
|
-
gap:
|
|
9
|
+
gap: var(--iui-size-s);
|
|
11
10
|
width: 45vw;
|
|
12
11
|
min-width: 100%;
|
|
13
12
|
overflow: auto;
|
|
@@ -89,7 +89,7 @@ class BulkExtractor {
|
|
|
89
89
|
return response.state;
|
|
90
90
|
}
|
|
91
91
|
catch (error) {
|
|
92
|
-
utils_1.handleError(error.status);
|
|
92
|
+
(0, utils_1.handleError)(error.status);
|
|
93
93
|
}
|
|
94
94
|
return insights_client_1.ExtractorState.Failed;
|
|
95
95
|
}
|
|
@@ -124,7 +124,7 @@ class BulkExtractor {
|
|
|
124
124
|
return response.id;
|
|
125
125
|
}
|
|
126
126
|
catch (error) {
|
|
127
|
-
utils_1.handleError(error.status);
|
|
127
|
+
(0, utils_1.handleError)(error.status);
|
|
128
128
|
}
|
|
129
129
|
return undefined;
|
|
130
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BulkExtractor.js","sourceRoot":"","sources":["../../../../src/widget/components/BulkExtractor.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 { ExtractorState } from \"@itwin/insights-client\";\nimport type { ExtractionClient, ReportMapping, ReportsClient } from \"@itwin/insights-client\";\nimport { handleError } from \"./utils\";\nimport { ExtractionStates } from \"./ExtractionStatus\";\nimport { STATUS_CHECK_INTERVAL } from \"./Constants\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\n\nexport type ReportMappingAndMapping = ReportMapping & {\n mappingName: string;\n mappingDescription: string;\n iModelName: string;\n};\n\nexport class BulkExtractor {\n private _reportsClientApi: ReportsClient;\n private _extractionClientApi: ExtractionClient;\n private _accessToken: () => Promise<string>;\n\n private _reportIModels = new Map<string, string[]>(); // key: reportId, value: iModels\n private _iModelStates = new Map<string, ExtractorState>(); // key: iModelId, value: state\n private _timeFetched = new Date();\n private _iModelRun = new Map<string, string>(); // key: iModelId, value: runId\n private _iModelToast = new Set<string>();\n private _successfulExtractionToast: (iModelName: string, odataFeedUrl: string) => void;\n private _failedExtractionToast: (iModelName: string) => void;\n private _setJobRunning: React.Dispatch<React.SetStateAction<boolean>> | undefined;\n private _iModels: string[] = [];\n\n constructor(\n reportsClient: ReportsClient,\n extractionClient: ExtractionClient,\n getAccessToken: () => Promise<AccessToken>,\n successfulExtractionToast: (iModelName: string, odataFeedUrl: string) => void,\n failedExtractionToast: (iModelName: string) => void,\n ) {\n this._reportsClientApi = reportsClient;\n this._extractionClientApi = extractionClient;\n this._accessToken = getAccessToken;\n this._successfulExtractionToast = successfulExtractionToast;\n this._failedExtractionToast = failedExtractionToast;\n }\n\n private async fetchStates(): Promise<void> {\n for (const [iModelId, runId] of this._iModelRun) {\n const state = await this.getState(runId);\n if (state === ExtractorState.Succeeded || state === ExtractorState.Failed) {\n this._iModelRun.delete(iModelId);\n }\n this._iModelStates.set(iModelId, state);\n }\n }\n\n public async getReportState(reportId: string): Promise<ExtractionStates> {\n if ((new Date().getTime() - this._timeFetched.getTime()) > STATUS_CHECK_INTERVAL) {\n this._timeFetched = new Date();\n await this.fetchStates();\n }\n\n const iModels = this._reportIModels.get(reportId);\n if (!iModels) return ExtractionStates.None;\n const states: ExtractorState[] = [];\n for (const iModelId of iModels) {\n const state = this._iModelStates.get(iModelId);\n if (!state) continue;\n states.push(state);\n }\n return BulkExtractor.getFinalState(states);\n }\n\n public async getIModelState(iModelId: string, iModelName: string, odataFeedUrl: string): Promise<ExtractionStates> {\n if ((new Date().getTime() - this._timeFetched.getTime()) > STATUS_CHECK_INTERVAL) {\n this._timeFetched = new Date();\n await this.fetchStates();\n }\n\n const state = this._iModelStates.get(iModelId);\n if (!state) return ExtractionStates.None;\n if (!this._iModelToast.has(iModelId)) {\n if (state === ExtractorState.Succeeded) {\n this._successfulExtractionToast(iModelName, odataFeedUrl);\n this._iModelToast.add(iModelId);\n this.checkRunning();\n } else if (state === ExtractorState.Failed) {\n this._failedExtractionToast(iModelName);\n this._iModelToast.add(iModelId);\n this.checkRunning();\n }\n }\n return BulkExtractor.getFinalState([state]);\n }\n\n private static getFinalState(states: ExtractorState[]): ExtractionStates {\n if (states.includes(ExtractorState.Failed))\n return ExtractionStates.Failed;\n\n if (states.includes(ExtractorState.Queued))\n return ExtractionStates.Queued;\n\n if (states.includes(ExtractorState.Running))\n return ExtractionStates.Running;\n\n if (states.includes(ExtractorState.Succeeded))\n return ExtractionStates.Succeeded;\n\n return ExtractionStates.Failed;\n }\n\n private async getState(runId: string): Promise<ExtractorState> {\n try {\n const accessToken = await this._accessToken();\n const response = await this._extractionClientApi.getExtractionStatus(accessToken, runId);\n return response.state;\n } catch (error: any) {\n handleError(error.status);\n }\n return ExtractorState.Failed;\n }\n\n private checkRunning(): void {\n if (this._setJobRunning) {\n let allFinished = true;\n this._iModels.forEach((iModelId) => {\n const state = this._iModelStates.get(iModelId);\n if (state === ExtractorState.Queued || state === ExtractorState.Running) {\n allFinished = false;\n }\n });\n\n this._setJobRunning(!allFinished);\n }\n }\n\n public async runReportExtractions(reportIds: string[]): Promise<void> {\n const reportIModelIds = new Map<string, string[]>();\n for (const reportId of reportIds) {\n const reportIModels = await this.fetchReportIModels(reportId);\n reportIModelIds.set(reportId, reportIModels);\n this._reportIModels.set(reportId, reportIModels);\n }\n const iModels = new Set(Array.from(reportIModelIds.values()).flat());\n\n for (const iModel of iModels) {\n await this.runIModelExtractions([iModel]);\n }\n }\n\n private async runExtraction(iModelId: string): Promise<string | undefined> {\n try {\n const response = await this._extractionClientApi.runExtraction(\n await this._accessToken(),\n iModelId\n );\n this._iModelToast.delete(iModelId);\n return response.id;\n } catch (error: any) {\n handleError(error.status);\n }\n return undefined;\n }\n\n public async runIModelExtraction(iModelId: string): Promise<void> {\n return this.runIModelExtractions([iModelId]);\n }\n\n public setHook(setJobRunning: React.Dispatch<React.SetStateAction<boolean>>, iModels: string[]): void {\n this._setJobRunning = setJobRunning;\n this._iModels = iModels;\n this.checkRunning();\n }\n\n public async runIModelExtractions(iModels: string[]): Promise<void> {\n for (const iModelId of iModels) {\n const run = await this.runExtraction(iModelId);\n if (run) {\n this._iModelStates.set(iModelId, ExtractorState.Queued);\n this._iModelRun.set(iModelId, run);\n }\n this.checkRunning();\n }\n }\n\n private async fetchReportIModels(reportId: string): Promise<string[]> {\n const reportMappings = await this._reportsClientApi.getReportMappings(\n await this._accessToken(),\n reportId\n );\n return reportMappings.map((x) => x.imodelId);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BulkExtractor.js","sourceRoot":"","sources":["../../../../src/widget/components/BulkExtractor.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 { ExtractorState } from \"@itwin/insights-client\";\nimport type { ExtractionClient, ReportMapping, ReportsClient } from \"@itwin/insights-client\";\nimport { handleError } from \"./utils\";\nimport { ExtractionStates } from \"./ExtractionStatus\";\nimport { STATUS_CHECK_INTERVAL } from \"./Constants\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\n\nexport type ReportMappingAndMapping = ReportMapping & {\n mappingName: string;\n mappingDescription: string;\n iModelName: string;\n};\n\nexport class BulkExtractor {\n private _reportsClientApi: ReportsClient;\n private _extractionClientApi: ExtractionClient;\n private _accessToken: () => Promise<string>;\n\n private _reportIModels = new Map<string, string[]>(); // key: reportId, value: iModels\n private _iModelStates = new Map<string, ExtractorState>(); // key: iModelId, value: state\n private _timeFetched = new Date();\n private _iModelRun = new Map<string, string>(); // key: iModelId, value: runId\n private _iModelToast = new Set<string>();\n private _successfulExtractionToast: (iModelName: string, odataFeedUrl: string) => void;\n private _failedExtractionToast: (iModelName: string) => void;\n private _setJobRunning: React.Dispatch<React.SetStateAction<boolean>> | undefined;\n private _iModels: string[] = [];\n\n constructor(\n reportsClient: ReportsClient,\n extractionClient: ExtractionClient,\n getAccessToken: () => Promise<AccessToken>,\n successfulExtractionToast: (iModelName: string, odataFeedUrl: string) => void,\n failedExtractionToast: (iModelName: string) => void,\n ) {\n this._reportsClientApi = reportsClient;\n this._extractionClientApi = extractionClient;\n this._accessToken = getAccessToken;\n this._successfulExtractionToast = successfulExtractionToast;\n this._failedExtractionToast = failedExtractionToast;\n }\n\n private async fetchStates(): Promise<void> {\n for (const [iModelId, runId] of this._iModelRun) {\n const state = await this.getState(runId);\n if (state === ExtractorState.Succeeded || state === ExtractorState.Failed) {\n this._iModelRun.delete(iModelId);\n }\n this._iModelStates.set(iModelId, state);\n }\n }\n\n public async getReportState(reportId: string): Promise<ExtractionStates> {\n if ((new Date().getTime() - this._timeFetched.getTime()) > STATUS_CHECK_INTERVAL) {\n this._timeFetched = new Date();\n await this.fetchStates();\n }\n\n const iModels = this._reportIModels.get(reportId);\n if (!iModels) return ExtractionStates.None;\n const states: ExtractorState[] = [];\n for (const iModelId of iModels) {\n const state = this._iModelStates.get(iModelId);\n if (!state) continue;\n states.push(state);\n }\n return BulkExtractor.getFinalState(states);\n }\n\n public async getIModelState(iModelId: string, iModelName: string, odataFeedUrl: string): Promise<ExtractionStates> {\n if ((new Date().getTime() - this._timeFetched.getTime()) > STATUS_CHECK_INTERVAL) {\n this._timeFetched = new Date();\n await this.fetchStates();\n }\n\n const state = this._iModelStates.get(iModelId);\n if (!state) return ExtractionStates.None;\n if (!this._iModelToast.has(iModelId)) {\n if (state === ExtractorState.Succeeded) {\n this._successfulExtractionToast(iModelName, odataFeedUrl);\n this._iModelToast.add(iModelId);\n this.checkRunning();\n } else if (state === ExtractorState.Failed) {\n this._failedExtractionToast(iModelName);\n this._iModelToast.add(iModelId);\n this.checkRunning();\n }\n }\n return BulkExtractor.getFinalState([state]);\n }\n\n private static getFinalState(states: ExtractorState[]): ExtractionStates {\n if (states.includes(ExtractorState.Failed))\n return ExtractionStates.Failed;\n\n if (states.includes(ExtractorState.Queued))\n return ExtractionStates.Queued;\n\n if (states.includes(ExtractorState.Running))\n return ExtractionStates.Running;\n\n if (states.includes(ExtractorState.Succeeded))\n return ExtractionStates.Succeeded;\n\n return ExtractionStates.Failed;\n }\n\n private async getState(runId: string): Promise<ExtractorState> {\n try {\n const accessToken = await this._accessToken();\n const response = await this._extractionClientApi.getExtractionStatus(accessToken, runId);\n return response.state;\n } catch (error: any) {\n handleError(error.status);\n }\n return ExtractorState.Failed;\n }\n\n private checkRunning(): void {\n if (this._setJobRunning) {\n let allFinished = true;\n this._iModels.forEach((iModelId) => {\n const state = this._iModelStates.get(iModelId);\n if (state === ExtractorState.Queued || state === ExtractorState.Running) {\n allFinished = false;\n }\n });\n\n this._setJobRunning(!allFinished);\n }\n }\n\n public async runReportExtractions(reportIds: string[]): Promise<void> {\n const reportIModelIds = new Map<string, string[]>();\n for (const reportId of reportIds) {\n const reportIModels = await this.fetchReportIModels(reportId);\n reportIModelIds.set(reportId, reportIModels);\n this._reportIModels.set(reportId, reportIModels);\n }\n const iModels = new Set(Array.from(reportIModelIds.values()).flat());\n\n for (const iModel of iModels) {\n await this.runIModelExtractions([iModel]);\n }\n }\n\n private async runExtraction(iModelId: string): Promise<string | undefined> {\n try {\n const response = await this._extractionClientApi.runExtraction(\n await this._accessToken(),\n iModelId\n );\n this._iModelToast.delete(iModelId);\n return response.id;\n } catch (error: any) {\n handleError(error.status);\n }\n return undefined;\n }\n\n public async runIModelExtraction(iModelId: string): Promise<void> {\n return this.runIModelExtractions([iModelId]);\n }\n\n public setHook(setJobRunning: React.Dispatch<React.SetStateAction<boolean>>, iModels: string[]): void {\n this._setJobRunning = setJobRunning;\n this._iModels = iModels;\n this.checkRunning();\n }\n\n public async runIModelExtractions(iModels: string[]): Promise<void> {\n for (const iModelId of iModels) {\n const run = await this.runExtraction(iModelId);\n if (run) {\n this._iModelStates.set(iModelId, ExtractorState.Queued);\n this._iModelRun.set(iModelId, run);\n }\n this.checkRunning();\n }\n }\n\n private async fetchReportIModels(reportId: string): Promise<string[]> {\n const reportMappings = await this._reportsClientApi.getReportMappings(\n await this._accessToken(),\n reportId\n );\n return reportMappings.map((x) => x.imodelId);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,gBAAgB,oCAAmC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ANIMATION_DURATION = exports.ANIMATION_DELAY = exports.STATUS_CHECK_INTERVAL = void 0;
|
|
3
|
+
exports.IMODELS_BASE_URL = exports.ANIMATION_DURATION = exports.ANIMATION_DELAY = exports.STATUS_CHECK_INTERVAL = void 0;
|
|
4
4
|
/*---------------------------------------------------------------------------------------------
|
|
5
5
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
6
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -8,4 +8,5 @@ exports.ANIMATION_DURATION = exports.ANIMATION_DELAY = exports.STATUS_CHECK_INTE
|
|
|
8
8
|
exports.STATUS_CHECK_INTERVAL = 5000;
|
|
9
9
|
exports.ANIMATION_DELAY = "5s";
|
|
10
10
|
exports.ANIMATION_DURATION = "1s";
|
|
11
|
+
exports.IMODELS_BASE_URL = "https://api.bentley.com/imodels";
|
|
11
12
|
//# sourceMappingURL=Constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAClF,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAC7B,QAAA,eAAe,GAAG,IAAI,CAAC;AACvB,QAAA,kBAAkB,GAAG,IAAI,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*--------------------------------------------------------------------------------------------*/\nexport const STATUS_CHECK_INTERVAL = 5000;\nexport const ANIMATION_DELAY = \"5s\";\nexport const ANIMATION_DURATION = \"1s\";\n"]}
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAClF,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAC7B,QAAA,eAAe,GAAG,IAAI,CAAC;AACvB,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAE1B,QAAA,gBAAgB,GAAE,iCAAiC,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*--------------------------------------------------------------------------------------------*/\nexport const STATUS_CHECK_INTERVAL = 5000;\nexport const ANIMATION_DELAY = \"5s\";\nexport const ANIMATION_DURATION = \"1s\";\n\nexport const IMODELS_BASE_URL= \"https://api.bentley.com/imodels\";\n"]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -30,7 +34,7 @@ const ReportsConfigWidget_1 = require("../../ReportsConfigWidget");
|
|
|
30
34
|
require("./DeleteModal.scss");
|
|
31
35
|
const utils_1 = require("./utils");
|
|
32
36
|
const DeleteModal = ({ entityName, onClose, onDelete, refresh, }) => {
|
|
33
|
-
const [isDeleting, setIsDeleting] = react_1.useState(false);
|
|
37
|
+
const [isDeleting, setIsDeleting] = (0, react_1.useState)(false);
|
|
34
38
|
const deleteCallback = async () => {
|
|
35
39
|
try {
|
|
36
40
|
setIsDeleting(true);
|
|
@@ -39,7 +43,7 @@ const DeleteModal = ({ entityName, onClose, onDelete, refresh, }) => {
|
|
|
39
43
|
onClose();
|
|
40
44
|
}
|
|
41
45
|
catch (error) {
|
|
42
|
-
utils_1.handleError(error.status);
|
|
46
|
+
(0, utils_1.handleError)(error.status);
|
|
43
47
|
}
|
|
44
48
|
finally {
|
|
45
49
|
setIsDeleting(false);
|
|
@@ -48,7 +52,7 @@ const DeleteModal = ({ entityName, onClose, onDelete, refresh, }) => {
|
|
|
48
52
|
return (react_1.default.createElement(itwinui_react_1.Modal, { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Confirm"), isOpen: !!entityName, isDismissible: !isDeleting, onClose: onClose },
|
|
49
53
|
react_1.default.createElement(itwinui_react_1.ModalContent, null,
|
|
50
54
|
react_1.default.createElement("div", { className: "rcw-delete-modal-body-text" },
|
|
51
|
-
react_1.default.createElement(itwinui_react_1.
|
|
55
|
+
react_1.default.createElement(itwinui_react_1.Text, { variant: 'leading' }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:AreYouSureYouWantToDelete")),
|
|
52
56
|
react_1.default.createElement("strong", null, react_1.default.createElement(itwinui_react_1.MiddleTextTruncation, { text: `${entityName}?` })))),
|
|
53
57
|
react_1.default.createElement(itwinui_react_1.ModalButtonBar, null,
|
|
54
58
|
isDeleting && (react_1.default.createElement("div", { className: "rcw-loading-delete", "data-testid": "rcw-loading-delete" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteModal.js","sourceRoot":"","sources":["../../../../src/widget/components/DeleteModal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeleteModal.js","sourceRoot":"","sources":["../../../../src/widget/components/DeleteModal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,wDAO8B;AAC9B,+CAAwC;AACxC,mEAAgE;AAChE,8BAA4B;AAC5B,mCAAsD;AAS/C,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,GACU,EAAE,EAAE;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,IAAI;YACF,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;SACX;QAAC,OAAO,KAAU,EAAE;YACnB,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B;gBAAS;YACR,aAAa,CAAC,KAAK,CAAC,CAAC;SACtB;IACH,CAAC,CAAC;IAEF,OAAO,CACL,8BAAC,qBAAK,IACJ,KAAK,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,6BAA6B,CAC9B,EACD,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,aAAa,EAAE,CAAC,UAAU,EAC1B,OAAO,EAAE,OAAO;QAEhB,8BAAC,4BAAY;YACX,uCAAK,SAAS,EAAC,4BAA4B;gBACzC,8BAAC,oBAAI,IAAC,OAAO,EAAC,SAAS,IACpB,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,+CAA+C,CAChD,CACI;gBACP,8CAAS,8BAAC,oCAAoB,IAAC,IAAI,EAAE,GAAG,UAAU,GAAG,GAAI,CAAU,CAC/D,CACO;QACf,8BAAC,8BAAc;YACZ,UAAU,IAAI,CACb,uCAAK,SAAS,EAAC,oBAAoB,iBAAa,oBAAoB;gBAClE,8BAAC,sBAAc,OAAG,CACd,CACP;YACD,8BAAC,sBAAM,IACL,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,UAAU,IAEnB,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,4BAA4B,CAC7B,CACM;YACT,8BAAC,sBAAM,IACL,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,IAEnB,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,4BAA4B,CAC7B,CACM,CACM,CACX,CACT,CAAC;AACJ,CAAC,CAAC;AAnEW,QAAA,WAAW,eAmEtB;AAEF,kBAAe,mBAAW,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 {\n Button,\n MiddleTextTruncation,\n Modal,\n ModalButtonBar,\n ModalContent,\n Text,\n} from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport \"./DeleteModal.scss\";\nimport { handleError, LoadingSpinner } from \"./utils\";\n\nexport interface DeleteModalProps {\n entityName?: string;\n onClose: () => void;\n onDelete: () => Promise<void>;\n refresh: () => Promise<void>;\n}\n\nexport const DeleteModal = ({\n entityName,\n onClose,\n onDelete,\n refresh,\n}: DeleteModalProps) => {\n const [isDeleting, setIsDeleting] = useState<boolean>(false);\n\n const deleteCallback = async () => {\n try {\n setIsDeleting(true);\n await onDelete();\n await refresh();\n onClose();\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsDeleting(false);\n }\n };\n\n return (\n <Modal\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Confirm\"\n )}\n isOpen={!!entityName}\n isDismissible={!isDeleting}\n onClose={onClose}\n >\n <ModalContent>\n <div className=\"rcw-delete-modal-body-text\">\n <Text variant='leading'>\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:AreYouSureYouWantToDelete\"\n )}\n </Text>\n <strong>{<MiddleTextTruncation text={`${entityName}?`} />}</strong>\n </div>\n </ModalContent>\n <ModalButtonBar>\n {isDeleting && (\n <div className=\"rcw-loading-delete\" data-testid=\"rcw-loading-delete\">\n <LoadingSpinner />\n </div>\n )}\n <Button\n styleType=\"high-visibility\"\n onClick={deleteCallback}\n disabled={isDeleting}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Delete\"\n )}\n </Button>\n <Button\n styleType=\"default\"\n onClick={onClose}\n disabled={isDeleting}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Cancel\"\n )}\n </Button>\n </ModalButtonBar>\n </Modal>\n );\n};\n\nexport default DeleteModal;\n"]}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-delete-modal-body-text {
|
|
8
7
|
display: flex;
|
|
9
|
-
gap:
|
|
8
|
+
gap: var(--iui-size-2xs);
|
|
10
9
|
flex-wrap: wrap;
|
|
11
10
|
|
|
12
11
|
>strong {
|
|
@@ -15,5 +14,5 @@
|
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
.rcw-loading-delete {
|
|
18
|
-
margin-right:
|
|
17
|
+
margin-right: var(--iui-size-xs);
|
|
19
18
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -43,12 +47,12 @@ var ExtractionStates;
|
|
|
43
47
|
ExtractionStates[ExtractionStates["Failed"] = 5] = "Failed";
|
|
44
48
|
})(ExtractionStates = exports.ExtractionStates || (exports.ExtractionStates = {}));
|
|
45
49
|
const ExtractionStatus = ({ state, clearExtractionState, }) => {
|
|
46
|
-
const [fadeOut, setFadeOut] = react_1.useState(false);
|
|
50
|
+
const [fadeOut, setFadeOut] = (0, react_1.useState)(false);
|
|
47
51
|
const onAnimationEnd = () => {
|
|
48
52
|
clearExtractionState();
|
|
49
53
|
setFadeOut(false);
|
|
50
54
|
};
|
|
51
|
-
react_1.useEffect(() => {
|
|
55
|
+
(0, react_1.useEffect)(() => {
|
|
52
56
|
let timer;
|
|
53
57
|
switch (state) {
|
|
54
58
|
case ExtractionStates.Succeeded:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractionStatus.js","sourceRoot":"","sources":["../../../../src/widget/components/ExtractionStatus.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtractionStatus.js","sourceRoot":"","sources":["../../../../src/widget/components/ExtractionStatus.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,iCAA4C;AAC5C,mCAAiC;AACjC,2CAAoD;AACpD,wFAAqF;AACrF,sFAAmF;AACnF,oFAAiF;AACjF,oFAAiF;AACjF,0FAAuF;AAEvF,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,uDAAI,CAAA;IACJ,+DAAQ,CAAA;IACR,2DAAM,CAAA;IACN,6DAAO,CAAA;IACP,iEAAS,CAAA;IACT,2DAAM,CAAA;AACR,CAAC,EAPW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAO3B;AAOM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,KAAK,EACL,oBAAoB,GACE,EAAE,EAAE;IAC1B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,oBAAoB,EAAE,CAAC;QACvB,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAa,CAAC;QAClB,QAAQ,KAAK,EAAE;YACb,KAAK,gBAAgB,CAAC,SAAS,CAAC;YAChC,KAAK,gBAAgB,CAAC,MAAM;gBAC1B,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,iCAAqB,CAAC,CAAC;SAC5E;QACD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,QAAQ,KAAK,EAAE;QACb,KAAK,gBAAgB,CAAC,QAAQ;YAC5B,OAAO,CAAC,oBAAC,iDAAuB,OAAG,CAAC,CAAC;QACvC,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,CAAC,oBAAC,6CAAqB,OAAG,CAAC,CAAC;QACrC,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,CAAC,oBAAC,+CAAsB,OAAG,CAAC,CAAC;QACtC,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,CAAC,oBAAC,mDAAwB,IAC/B,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,cAAc,GAC9B,CAAC,CAAC;QACN,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,CAAC,oBAAC,6CAAqB,IAC5B,SAAS,EAAE,OAAO,EAClB,cAAc,EAAE,cAAc,GAC9B,CAAC,CAAC;QACN;YACE,OAAO,yCAAK,CAAC;KAChB;AACH,CAAC,CAAC;AAzCW,QAAA,gBAAgB,oBAyC3B","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 { useEffect, useState } from \"react\";\nimport \"./ExtractionStatus.scss\";\nimport { STATUS_CHECK_INTERVAL } from \"./Constants\";\nimport { StartingExtractionState } from \"./ExtractionStates/StartingExtractionState\";\nimport { RunningExtractionState } from \"./ExtractionStates/RunningExtractionState\";\nimport { FailedExtractionState } from \"./ExtractionStates/FailedExtractionState\";\nimport { QueuedExtractionState } from \"./ExtractionStates/QueuedExtractionState\";\nimport { SucceededExtractionState } from \"./ExtractionStates/SucceededExtractionState\";\n\nexport enum ExtractionStates {\n None,\n Starting,\n Queued,\n Running,\n Succeeded,\n Failed,\n}\n\ninterface ExtractionStatusProps {\n state: ExtractionStates;\n clearExtractionState: () => void;\n}\n\nexport const ExtractionStatus = ({\n state,\n clearExtractionState,\n}: ExtractionStatusProps) => {\n const [fadeOut, setFadeOut] = useState<boolean>(false);\n\n const onAnimationEnd = () => {\n clearExtractionState();\n setFadeOut(false);\n };\n\n useEffect(() => {\n let timer: number;\n switch (state) {\n case ExtractionStates.Succeeded:\n case ExtractionStates.Failed:\n timer = window.setTimeout(() => setFadeOut(true), STATUS_CHECK_INTERVAL);\n }\n return () => window.clearTimeout(timer);\n }, [state]);\n\n switch (state) {\n case ExtractionStates.Starting:\n return (<StartingExtractionState />);\n case ExtractionStates.Queued:\n return (<QueuedExtractionState />);\n case ExtractionStates.Running:\n return (<RunningExtractionState />);\n case ExtractionStates.Succeeded:\n return (<SucceededExtractionState\n animation={fadeOut}\n onAnimationEnd={onAnimationEnd}\n />);\n case ExtractionStates.Failed:\n return (<FailedExtractionState\n animation={fadeOut}\n onAnimationEnd={onAnimationEnd}\n />);\n default:\n return <></>;\n }\n};\n"]}
|