@itwin/reports-config-widget-react 0.1.0 → 0.2.1
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/.rush/temp/package-deps_rebuild.json +38 -34
- package/.rush/temp/shrinkwrap-deps.json +14 -6
- package/CHANGELOG.json +30 -0
- package/CHANGELOG.md +17 -1
- package/coverage/clover.xml +605 -610
- package/coverage/coverage-final.json +28 -27
- package/coverage/lcov-report/index.html +31 -31
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +10 -10
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/test/index.html +1 -1
- package/coverage/lcov-report/src/test/test-utils.tsx.html +22 -22
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +7 -7
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +29 -41
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +31 -37
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +270 -162
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +4 -4
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +21 -21
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +6 -6
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +14 -14
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +15 -15
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +14 -14
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +22 -19
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +43 -43
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +57 -57
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +14 -20
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +30 -33
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +183 -231
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +73 -43
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +10 -10
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +10 -10
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +31 -31
- package/coverage/lcov-report/src/widget/components/index.html +100 -85
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +32 -32
- package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/context/index.html +1 -1
- package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +7 -7
- package/coverage/lcov-report/src/widget/index.html +1 -1
- package/coverage/lcov.info +990 -1003
- package/jest.config.js +6 -0
- package/lib/cjs/test/AddMappingModal.test.d.ts +2 -0
- package/lib/cjs/test/AddMappingModal.test.d.ts.map +1 -0
- package/lib/cjs/test/AddMappingModal.test.js +277 -0
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -0
- package/lib/cjs/test/BulkExtractor.test.d.ts +2 -0
- package/lib/cjs/test/BulkExtractor.test.d.ts.map +1 -0
- package/lib/cjs/test/BulkExtractor.test.js +182 -0
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -0
- package/lib/cjs/test/DeleteModal.test.d.ts +2 -0
- package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -0
- package/lib/cjs/test/DeleteModal.test.js +93 -0
- package/lib/cjs/test/DeleteModal.test.js.map +1 -0
- package/lib/cjs/test/ReportAction.test.js +2 -3
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts +2 -0
- package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +340 -0
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -0
- package/lib/cjs/test/ReportMappings.test.js +115 -267
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +1 -1
- package/lib/cjs/test/Reports.test.js.map +1 -1
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +4 -5
- package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.d.ts +2 -2
- package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +5 -4
- package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.scss +4 -3
- package/lib/cjs/widget/components/BulkExtractor.d.ts +18 -9
- package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/cjs/widget/components/BulkExtractor.js +86 -57
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +1 -1
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.scss +4 -3
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +1 -1
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +1 -1
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStatus.scss +15 -1
- package/lib/cjs/widget/components/ExtractionToast.d.ts +11 -0
- package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionToast.js +33 -0
- package/lib/cjs/widget/components/ExtractionToast.js.map +1 -0
- package/lib/cjs/widget/components/HorizontalTile.scss +1 -1
- package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +3 -3
- package/lib/cjs/widget/components/ReportAction.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.scss +2 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportHorizontalTile.js +1 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +82 -0
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -0
- package/lib/cjs/widget/components/ReportMappings.d.ts +3 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +39 -40
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +7 -7
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +13 -6
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/Reports.scss +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.scss +2 -2
- package/lib/cjs/widget/components/SelectIModel.js +2 -2
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.scss +4 -3
- 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 +2 -2
- package/lib/esm/test/AddMappingModal.test.d.ts +2 -0
- package/lib/esm/test/AddMappingModal.test.d.ts.map +1 -0
- package/lib/esm/test/AddMappingModal.test.js +253 -0
- package/lib/esm/test/AddMappingModal.test.js.map +1 -0
- package/lib/esm/test/BulkExtractor.test.d.ts +2 -0
- package/lib/esm/test/BulkExtractor.test.d.ts.map +1 -0
- package/lib/esm/test/BulkExtractor.test.js +158 -0
- package/lib/esm/test/BulkExtractor.test.js.map +1 -0
- package/lib/esm/test/DeleteModal.test.d.ts +2 -0
- package/lib/esm/test/DeleteModal.test.d.ts.map +1 -0
- package/lib/esm/test/DeleteModal.test.js +69 -0
- package/lib/esm/test/DeleteModal.test.js.map +1 -0
- package/lib/esm/test/ReportAction.test.js +2 -3
- package/lib/esm/test/ReportAction.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts +2 -0
- package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +316 -0
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -0
- package/lib/esm/test/ReportMappings.test.js +117 -269
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +1 -1
- package/lib/esm/test/Reports.test.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/esm/widget/components/ActionPanel.js +4 -5
- package/lib/esm/widget/components/ActionPanel.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.d.ts +2 -2
- package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +4 -5
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.scss +4 -3
- package/lib/esm/widget/components/BulkExtractor.d.ts +18 -9
- package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/esm/widget/components/BulkExtractor.js +86 -57
- package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +1 -1
- package/lib/esm/widget/components/DeleteModal.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.scss +4 -3
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +1 -1
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +1 -1
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
- package/lib/esm/widget/components/ExtractionStatus.scss +15 -1
- package/lib/esm/widget/components/ExtractionToast.d.ts +11 -0
- package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionToast.js +25 -0
- package/lib/esm/widget/components/ExtractionToast.js.map +1 -0
- package/lib/esm/widget/components/HorizontalTile.scss +1 -1
- package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportAction.js +3 -3
- package/lib/esm/widget/components/ReportAction.js.map +1 -1
- package/lib/esm/widget/components/ReportAction.scss +2 -2
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportHorizontalTile.js +1 -2
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +75 -0
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -0
- package/lib/esm/widget/components/ReportMappings.d.ts +3 -1
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +40 -41
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +7 -7
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +15 -8
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/Reports.scss +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +1 -1
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.scss +2 -2
- package/lib/esm/widget/components/SelectIModel.js +2 -2
- package/lib/esm/widget/components/SelectIModel.js.map +1 -1
- package/lib/esm/widget/components/SelectIModel.scss +4 -3
- package/lib/esm/widget/components/utils.js +1 -1
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/components/utils.scss +2 -2
- package/lib/public/locales/en/ReportsConfigWidget.json +5 -0
- package/package.json +7 -4
- package/public/locales/en/ReportsConfigWidget.json +5 -0
- package/reports-config-widget-react.build.error.log +10 -6
- package/reports-config-widget-react.build.log +51 -46
- package/src/test/AddMappingModal.test.tsx +315 -0
- package/src/test/BulkExtractor.test.ts +301 -0
- package/src/test/DeleteModal.test.tsx +118 -0
- package/src/test/ReportAction.test.tsx +2 -4
- package/src/test/ReportMappingHorizontalTile.test.tsx +451 -0
- package/src/test/ReportMappings.test.tsx +154 -549
- package/src/test/Reports.test.tsx +1 -1
- package/src/widget/components/ActionPanel.tsx +19 -23
- package/src/widget/components/AddMappingsModal.scss +4 -3
- package/src/widget/components/AddMappingsModal.tsx +4 -6
- package/src/widget/components/BulkExtractor.ts +97 -61
- package/src/widget/components/DeleteModal.scss +4 -3
- package/src/widget/components/DeleteModal.tsx +1 -1
- package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +1 -1
- package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +1 -0
- package/src/widget/components/ExtractionStatus.scss +15 -1
- package/src/widget/components/ExtractionToast.tsx +41 -0
- package/src/widget/components/HorizontalTile.scss +1 -1
- package/src/widget/components/ReportAction.scss +2 -2
- package/src/widget/components/ReportAction.tsx +1 -3
- package/src/widget/components/ReportHorizontalTile.tsx +1 -2
- package/src/widget/components/ReportMappingHorizontalTile.tsx +128 -0
- package/src/widget/components/ReportMappings.scss +7 -7
- package/src/widget/components/ReportMappings.tsx +89 -105
- package/src/widget/components/Reports.scss +1 -1
- package/src/widget/components/Reports.tsx +18 -8
- package/src/widget/components/ReportsContainer.scss +2 -2
- package/src/widget/components/ReportsContainer.tsx +1 -1
- package/src/widget/components/SelectIModel.scss +4 -3
- package/src/widget/components/SelectIModel.tsx +2 -2
- package/src/widget/components/utils.scss +2 -2
- package/src/widget/components/utils.tsx +1 -1
- package/coverage/lcov-report/src/widget/components/Extraction.tsx.html +0 -1030
- package/lib/cjs/widget/components/Extraction.d.ts +0 -28
- package/lib/cjs/widget/components/Extraction.d.ts.map +0 -1
- package/lib/cjs/widget/components/Extraction.js +0 -190
- package/lib/cjs/widget/components/Extraction.js.map +0 -1
- package/lib/cjs/widget/components/Extraction.scss +0 -39
- package/lib/esm/widget/components/Extraction.d.ts +0 -28
- package/lib/esm/widget/components/Extraction.d.ts.map +0 -1
- package/lib/esm/widget/components/Extraction.js +0 -166
- package/lib/esm/widget/components/Extraction.js.map +0 -1
- package/lib/esm/widget/components/Extraction.scss +0 -39
- package/src/widget/components/Extraction.scss +0 -39
- package/src/widget/components/Extraction.tsx +0 -315
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface SuccessfulExtractionToastProps extends ExtractionToastProps {
|
|
3
|
+
odataFeedUrl: string;
|
|
4
|
+
}
|
|
5
|
+
interface ExtractionToastProps {
|
|
6
|
+
iModelName: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const SuccessfulExtractionToast: ({ iModelName, odataFeedUrl }: SuccessfulExtractionToastProps) => JSX.Element;
|
|
9
|
+
export declare const FailedExtractionToast: ({ iModelName }: ExtractionToastProps) => JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ExtractionToast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtractionToast.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ExtractionToast.tsx"],"names":[],"mappings":";AAQA,UAAU,8BAA+B,SAAQ,oBAAoB;IACnE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,yBAAyB,iCAAkC,8BAA8B,gBAgBrG,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAAoB,oBAAoB,gBAMzE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FailedExtractionToast = exports.SuccessfulExtractionToast = void 0;
|
|
7
|
+
/*---------------------------------------------------------------------------------------------
|
|
8
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
9
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
10
|
+
*--------------------------------------------------------------------------------------------*/
|
|
11
|
+
const react_1 = __importDefault(require("react"));
|
|
12
|
+
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
13
|
+
const ReportsConfigWidget_1 = require("../../ReportsConfigWidget");
|
|
14
|
+
const SuccessfulExtractionToast = ({ iModelName, odataFeedUrl }) => {
|
|
15
|
+
const onClick = async (e) => {
|
|
16
|
+
e.preventDefault();
|
|
17
|
+
await navigator.clipboard.writeText(odataFeedUrl);
|
|
18
|
+
};
|
|
19
|
+
return (react_1.default.createElement("div", null,
|
|
20
|
+
react_1.default.createElement(itwinui_react_1.Text, null,
|
|
21
|
+
ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ExtractionSuccess"),
|
|
22
|
+
iModelName),
|
|
23
|
+
react_1.default.createElement("a", { href: "#", onClick: onClick }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:CopyODataUrl"))));
|
|
24
|
+
};
|
|
25
|
+
exports.SuccessfulExtractionToast = SuccessfulExtractionToast;
|
|
26
|
+
const FailedExtractionToast = ({ iModelName }) => {
|
|
27
|
+
return (react_1.default.createElement("div", null,
|
|
28
|
+
react_1.default.createElement(itwinui_react_1.Text, null,
|
|
29
|
+
ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ExtractionFailed"),
|
|
30
|
+
iModelName)));
|
|
31
|
+
};
|
|
32
|
+
exports.FailedExtractionToast = FailedExtractionToast;
|
|
33
|
+
//# sourceMappingURL=ExtractionToast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtractionToast.js","sourceRoot":"","sources":["../../../../src/widget/components/ExtractionToast.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,wDAA4C;AAC5C,mEAAgE;AAUzD,MAAM,yBAAyB,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAkC,EAAE,EAAE;IACxG,MAAM,OAAO,GAAG,KAAK,EAAE,CAAkD,EAAE,EAAE;QAC3E,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,OAAO,CACL;QACE,8BAAC,oBAAI;YAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAAC,uCAAuC,CAAC;YAAE,UAAU,CAAQ;QACvH,qCACE,IAAI,EAAC,GAAG,EACR,OAAO,EAAE,OAAO,IAEf,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAAC,kCAAkC,CAAC,CACtF,CACA,CACP,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,yBAAyB,6BAgBpC;AAEK,MAAM,qBAAqB,GAAG,CAAC,EAAE,UAAU,EAAwB,EAAE,EAAE;IAC5E,OAAO,CACL;QACE,8BAAC,oBAAI;YAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CAAC,sCAAsC,CAAC;YAAE,UAAU,CAAQ,CAClH,CACP,CAAC;AACJ,CAAC,CAAC;AANW,QAAA,qBAAqB,yBAMhC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\n\ninterface SuccessfulExtractionToastProps extends ExtractionToastProps {\n odataFeedUrl: string;\n}\n\ninterface ExtractionToastProps {\n iModelName: string;\n}\n\nexport const SuccessfulExtractionToast = ({ iModelName, odataFeedUrl }: SuccessfulExtractionToastProps) => {\n const onClick = async (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => {\n e.preventDefault();\n await navigator.clipboard.writeText(odataFeedUrl);\n };\n return (\n <div>\n <Text>{ReportsConfigWidget.localization.getLocalizedString(\"ReportsConfigWidget:ExtractionSuccess\")}{iModelName}</Text>\n <a\n href=\"#\"\n onClick={onClick}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\"ReportsConfigWidget:CopyODataUrl\")}\n </a>\n </div>\n );\n};\n\nexport const FailedExtractionToast = ({ iModelName }: ExtractionToastProps) => {\n return (\n <div>\n <Text>{ReportsConfigWidget.localization.getLocalizedString(\"ReportsConfigWidget:ExtractionFailed\")}{iModelName}</Text>\n </div>\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportAction.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportAction.tsx"],"names":[],"mappings":";AAcA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKrD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,QAAA,MAAM,YAAY,kCAAmC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ReportAction.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportAction.tsx"],"names":[],"mappings":";AAcA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAKrD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,QAAA,MAAM,YAAY,kCAAmC,iBAAiB,gBAmHrE,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -79,9 +79,9 @@ const ReportAction = ({ iTwinId, report, returnFn }) => {
|
|
|
79
79
|
? ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ModifyReport")
|
|
80
80
|
: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:AddReport"), returnFn: returnFn }),
|
|
81
81
|
react_1.default.createElement("div", { className: "rcw-details-form-container" },
|
|
82
|
-
react_1.default.createElement(itwinui_react_1.Fieldset, { legend: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportDetails"), className: "details-form" },
|
|
82
|
+
react_1.default.createElement(itwinui_react_1.Fieldset, { legend: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportDetails"), className: "rcw-details-form" },
|
|
83
83
|
react_1.default.createElement(itwinui_react_1.Small, { className: "field-legend" }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:MandatoryFields")),
|
|
84
|
-
react_1.default.createElement(itwinui_react_1.LabeledInput, {
|
|
84
|
+
react_1.default.createElement(itwinui_react_1.LabeledInput, { name: "name", label: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Name"), value: values.name, required: true, disabled: isLoading, onChange: (event) => {
|
|
85
85
|
utils_1.handleInputChange(event, values, setValues);
|
|
86
86
|
validator.showMessageFor("name");
|
|
87
87
|
}, message: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS), status: validator.message("name", values.name, useValidator_1.NAME_REQUIREMENTS)
|
|
@@ -92,7 +92,7 @@ const ReportAction = ({ iTwinId, report, returnFn }) => {
|
|
|
92
92
|
utils_1.handleInputChange(event, values, setValues);
|
|
93
93
|
validator.showMessageFor("name");
|
|
94
94
|
} }),
|
|
95
|
-
react_1.default.createElement(itwinui_react_1.LabeledInput, {
|
|
95
|
+
react_1.default.createElement(itwinui_react_1.LabeledInput, { name: "description", label: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Description"), value: values.description, onChange: (event) => {
|
|
96
96
|
utils_1.handleInputChange(event, values, setValues);
|
|
97
97
|
}, disabled: isLoading }))),
|
|
98
98
|
react_1.default.createElement(ActionPanel_1.default, { actionLabel: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Add"), onAction: onSave, onCancel: returnFn, isSavingDisabled: !values.name, isLoading: isLoading })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportAction.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportAction.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,wDAAqE;AACrE,+CAAwC;AACxC,gEAAwC;AACxC,sEAAwE;AACxE,mCAKiB;AACjB,+BAA6B;AAE7B,4DAA4E;AAC5E,gFAAyE;AACzE,mEAAgE;AAQhE,MAAM,YAAY,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAqB,EAAE,EAAE;;IACxE,MAAM,SAAS,GAAG,6CAAmB,EAAE,CAAC;IACxC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,gBAAQ,CAAC;QACnC,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,mCAAI,EAAE;QAC/B,WAAW,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,mCAAI,EAAE;KACvC,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,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,MAAM,gBAAgB,GAAG,IAAI,+BAAa,CACxC,mBAAW,CAAC,qCAAmB,EAAE,SAAS,CAAC,OAAO,CAAC,CACpD,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;YACrD,MAAM;gBACJ,CAAC,CAAC,MAAM,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE,MAAA,MAAM,CAAC,EAAE,mCAAI,EAAE,EAAE;oBAClE,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;gBACF,CAAC,CAAC,MAAM,gBAAgB,CAAC,YAAY,CAAC,WAAW,EAAE;oBACjD,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,SAAS,EAAE,OAAO;iBACnB,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;gBAAS;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,OAAO,CACL;QACE,8BAAC,oBAAY,IACX,KAAK,EACH,MAAM;gBACJ,CAAC,CAAC,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACnD,kCAAkC,CACnC;gBACD,CAAC,CAAC,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACnD,+BAA+B,CAChC,EAEL,QAAQ,EAAE,QAAQ,GAClB;QACF,uCAAK,SAAS,EAAC,4BAA4B;YACzC,8BAAC,wBAAQ,IACP,MAAM,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACzD,mCAAmC,CACpC,EACD,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"ReportAction.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportAction.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, { useState } from \"react\";\nimport ActionPanel from \"./ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../hooks/useValidator\";\nimport {\n generateUrl,\n handleError,\n handleInputChange,\n WidgetHeader,\n} from \"./utils\";\nimport \"./ReportAction.scss\";\nimport type { Report } from \"@itwin/insights-client\";\nimport { REPORTING_BASE_PATH, ReportsClient } from \"@itwin/insights-client\";\nimport { useReportsApiConfig } from \"../context/ReportsApiConfigContext\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\n\ninterface ReportActionProps {\n iTwinId: string;\n report?: Report;\n returnFn: () => Promise<void>;\n}\n\nconst ReportAction = ({ iTwinId, report, returnFn }: ReportActionProps) => {\n const apiConfig = useReportsApiConfig();\n const [values, setValues] = useState({\n name: report?.displayName ?? \"\",\n description: report?.description ?? \"\",\n });\n const [validator, showValidationMessage] = useValidator();\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n const onSave = async () => {\n try {\n if (!validator.allValid()) {\n showValidationMessage(true);\n return;\n }\n setIsLoading(true);\n const reportsClientApi = new ReportsClient(\n generateUrl(REPORTING_BASE_PATH, apiConfig.baseUrl)\n );\n const accessToken = await apiConfig.getAccessToken();\n report\n ? await reportsClientApi.updateReport(accessToken, report.id ?? \"\", {\n displayName: values.name,\n description: values.description,\n })\n : await reportsClientApi.createReport(accessToken, {\n displayName: values.name,\n description: values.description,\n projectId: iTwinId,\n });\n await returnFn();\n } catch (error: any) {\n handleError(error.status);\n setIsLoading(false);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <>\n <WidgetHeader\n title={\n report\n ? ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:ModifyReport\"\n )\n : ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:AddReport\"\n )\n }\n returnFn={returnFn}\n />\n <div className=\"rcw-details-form-container\">\n <Fieldset\n legend={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:ReportDetails\"\n )}\n className=\"rcw-details-form\"\n >\n <Small className=\"field-legend\">\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:MandatoryFields\"\n )}\n </Small>\n <LabeledInput\n name=\"name\"\n label={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Name\"\n )}\n value={values.name}\n required\n disabled={isLoading}\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 name=\"description\"\n label={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Description\"\n )}\n value={values.description}\n onChange={(event) => {\n handleInputChange(event, values, setValues);\n }}\n disabled={isLoading}\n />\n </Fieldset>\n </div>\n <ActionPanel\n actionLabel={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Add\"\n )}\n onAction={onSave}\n onCancel={returnFn}\n isSavingDisabled={!values.name}\n isLoading={isLoading}\n />\n </>\n );\n};\n\nexport default ReportAction;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportHorizontalTile.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportHorizontalTile.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAarD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC;IAC1F,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,UAAW,yBAAyB,
|
|
1
|
+
{"version":3,"file":"ReportHorizontalTile.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportHorizontalTile.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAarD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC;IAC1F,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,UAAW,yBAAyB,gBA8FpE,CAAC"}
|
|
@@ -37,7 +37,7 @@ const ReportHorizontalTile = (props) => {
|
|
|
37
37
|
if (jobStarted) {
|
|
38
38
|
window.clearInterval(interval.current);
|
|
39
39
|
interval.current = window.setInterval(async () => {
|
|
40
|
-
const state = props.bulkExtractor.
|
|
40
|
+
const state = await props.bulkExtractor.getReportState(props.report.id);
|
|
41
41
|
if (state) {
|
|
42
42
|
setExtractionState(state);
|
|
43
43
|
if (state === ExtractionStatus_1.ExtractionStates.Failed || state === ExtractionStatus_1.ExtractionStates.Succeeded) {
|
|
@@ -64,7 +64,6 @@ const ReportHorizontalTile = (props) => {
|
|
|
64
64
|
] },
|
|
65
65
|
react_2.default.createElement(itwinui_react_1.IconButton, { styleType: "borderless" },
|
|
66
66
|
react_2.default.createElement(itwinui_icons_react_1.SvgMore, null))))) : (react_2.default.createElement(ExtractionStatus_1.ExtractionStatus, { state: extractionState, clearExtractionState: () => {
|
|
67
|
-
props.bulkExtractor.clearJob(props.report.id);
|
|
68
67
|
setExtractionState(ExtractionStatus_1.ExtractionStates.None);
|
|
69
68
|
} })) }));
|
|
70
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportHorizontalTile.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportHorizontalTile.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,iCAAoD;AACpD,kDAA0B;AAE1B,yDAAwE;AAExE,2CAAoD;AAEpD,mEAAgE;AAChE,wDAI8B;AAC9B,oEAIoC;AACpC,qDAAkD;AAa3C,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE;;IACvE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,gBAAQ,CAAU,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,gBAAQ,CAAmB,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,cAAM,EAAU,CAAC;IAElC,iBAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,CAAC,eAAuB,EAAE,EAAE;YAC3C,IAAI,eAAe,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;gBACvC,kBAAkB,CAAC,mCAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC9C,aAAa,CAAC,IAAI,CAAC,CAAC;aACrB;QACH,CAAC,CAAC;QACF,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE1C,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,iBAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"ReportHorizontalTile.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportHorizontalTile.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 { useEffect, useRef, useState } from \"react\";\nimport React from \"react\";\nimport type BulkExtractor from \"./BulkExtractor\";\nimport { ExtractionStates, ExtractionStatus } from \"./ExtractionStatus\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { STATUS_CHECK_INTERVAL } from \"./Constants\";\nimport type { Report } from \"@itwin/insights-client\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport {\n DropdownMenu,\n IconButton,\n MenuItem,\n} from \"@itwin/itwinui-react\";\nimport {\n SvgDelete,\n SvgEdit,\n SvgMore,\n} from \"@itwin/itwinui-icons-react\";\nimport { HorizontalTile } from \"./HorizontalTile\";\nimport type { HorizontalTileProps } from \"./HorizontalTile\";\n\nexport interface ReportHorizontalTileProps extends Pick<HorizontalTileProps, \"onClickTitle\"> {\n selected: boolean;\n onSelectionChange: (reportId: string, controlPressed: boolean) => void;\n bulkExtractor: BulkExtractor;\n jobStartEvent: BeEvent<(reportId: string) => void>;\n report: Report;\n onClickDelete: () => void;\n onClickModify: () => void;\n}\n\nexport const ReportHorizontalTile = (props: ReportHorizontalTileProps) => {\n const [jobStarted, setJobStarted] = useState<boolean>(false);\n const [extractionState, setExtractionState] = useState<ExtractionStates>(ExtractionStates.None);\n const interval = useRef<number>();\n\n useEffect(() => {\n const listener = (startedReportId: string) => {\n if (startedReportId === props.report.id) {\n setExtractionState(ExtractionStates.Starting);\n setJobStarted(true);\n }\n };\n props.jobStartEvent.addListener(listener);\n\n return () => {\n props.jobStartEvent.removeListener(listener);\n };\n }, [props.jobStartEvent, props.report.id]);\n\n useEffect(() => {\n if (jobStarted) {\n window.clearInterval(interval.current);\n interval.current = window.setInterval(async () => {\n const state = await props.bulkExtractor.getReportState(props.report.id);\n if (state) {\n setExtractionState(state);\n if (state === ExtractionStates.Failed || state === ExtractionStates.Succeeded) {\n setJobStarted(false);\n }\n }\n }, STATUS_CHECK_INTERVAL);\n }\n return () => window.clearInterval(interval.current);\n }, [props.report.id, props.bulkExtractor, jobStarted]);\n\n const onClickTile = (e: React.MouseEvent) => {\n if (e?.currentTarget.className?.toString().split(\" \").includes(\"rcw-horizontal-tile-container\")) {\n props.onSelectionChange(props.report.id, e.ctrlKey);\n }\n };\n\n return (\n <HorizontalTile\n title={props.report.displayName}\n subText={props.report.description ?? \"\"}\n subtextToolTip={props.report.description ?? \"\"}\n titleTooltip={props.report.displayName}\n onClick={onClickTile}\n onClickTitle={props.onClickTitle}\n selected={props.selected}\n actionGroup={extractionState === ExtractionStates.None ? (\n <div\n className=\"rcw-action-button\"\n data-testid=\"tile-action-button\">\n <DropdownMenu\n menuItems={(close: () => void) => [\n <MenuItem\n key={0}\n onClick={props.onClickModify}\n icon={<SvgEdit />}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Modify\"\n )}\n </MenuItem>,\n <MenuItem\n key={1}\n onClick={() => {\n props.onClickDelete();\n close();\n }}\n icon={<SvgDelete />}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Remove\"\n )}\n </MenuItem>,\n ]}\n >\n <IconButton styleType=\"borderless\">\n <SvgMore />\n </IconButton>\n </DropdownMenu>\n </div>\n ) : (\n <ExtractionStatus\n state={extractionState}\n clearExtractionState={() => {\n setExtractionState(ExtractionStates.None);\n }}\n ></ExtractionStatus>\n )}\n ></HorizontalTile>\n );\n};\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type BulkExtractor from "./BulkExtractor";
|
|
3
|
+
import type { BeEvent } from "@itwin/core-bentley";
|
|
4
|
+
import type { ReportMappingAndMapping } from "./ReportMappings";
|
|
5
|
+
export interface ReportMappingHorizontalTileProps {
|
|
6
|
+
jobStartEvent: BeEvent<(iModelId: string) => void>;
|
|
7
|
+
mapping: ReportMappingAndMapping;
|
|
8
|
+
onClickDelete: () => void;
|
|
9
|
+
bulkExtractor: BulkExtractor;
|
|
10
|
+
odataFeedUrl: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const ReportMappingHorizontalTile: (props: ReportMappingHorizontalTileProps) => JSX.Element;
|
|
13
|
+
//# sourceMappingURL=ReportMappingHorizontalTile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportMappingHorizontalTile.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportMappingHorizontalTile.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AASnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,uBAAuB,CAAC;IACjC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,2BAA2B,UAAW,gCAAgC,gBAoGlF,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ReportMappingHorizontalTile = void 0;
|
|
7
|
+
/*---------------------------------------------------------------------------------------------
|
|
8
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
9
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
10
|
+
*--------------------------------------------------------------------------------------------*/
|
|
11
|
+
const react_1 = require("react");
|
|
12
|
+
const react_2 = __importDefault(require("react"));
|
|
13
|
+
const ExtractionStatus_1 = require("./ExtractionStatus");
|
|
14
|
+
const Constants_1 = require("./Constants");
|
|
15
|
+
const ReportsConfigWidget_1 = require("../../ReportsConfigWidget");
|
|
16
|
+
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
17
|
+
const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
|
|
18
|
+
const HorizontalTile_1 = require("./HorizontalTile");
|
|
19
|
+
const ReportMappingHorizontalTile = (props) => {
|
|
20
|
+
const [extractionState, setExtractionState] = react_1.useState(ExtractionStatus_1.ExtractionStates.None);
|
|
21
|
+
const [jobStarted, setJobStarted] = react_1.useState(true);
|
|
22
|
+
const interval = react_1.useRef();
|
|
23
|
+
const initialLoad = react_1.useRef(true);
|
|
24
|
+
react_1.useEffect(() => {
|
|
25
|
+
const listener = (startedIModelId) => {
|
|
26
|
+
if (startedIModelId === props.mapping.imodelId) {
|
|
27
|
+
setExtractionState(ExtractionStatus_1.ExtractionStates.Starting);
|
|
28
|
+
setJobStarted(true);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
props.jobStartEvent.addListener(listener);
|
|
32
|
+
return () => {
|
|
33
|
+
props.jobStartEvent.removeListener(listener);
|
|
34
|
+
};
|
|
35
|
+
}, [props.jobStartEvent, props.mapping]);
|
|
36
|
+
const getExtractionState = react_1.useCallback(async () => {
|
|
37
|
+
const state = await props.bulkExtractor.getIModelState(props.mapping.imodelId, props.mapping.iModelName, props.odataFeedUrl);
|
|
38
|
+
if (state === ExtractionStatus_1.ExtractionStates.Failed || state === ExtractionStatus_1.ExtractionStates.Succeeded || state === ExtractionStatus_1.ExtractionStates.None) {
|
|
39
|
+
setJobStarted(false);
|
|
40
|
+
if (initialLoad.current) {
|
|
41
|
+
initialLoad.current = false;
|
|
42
|
+
setExtractionState(ExtractionStatus_1.ExtractionStates.None);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
initialLoad.current = false;
|
|
48
|
+
}
|
|
49
|
+
setExtractionState(state);
|
|
50
|
+
}, [props.mapping, props.bulkExtractor, props.odataFeedUrl]);
|
|
51
|
+
react_1.useEffect(() => {
|
|
52
|
+
if (jobStarted) {
|
|
53
|
+
getExtractionState().catch((error) => {
|
|
54
|
+
setExtractionState(ExtractionStatus_1.ExtractionStates.Failed);
|
|
55
|
+
setJobStarted(false);
|
|
56
|
+
/* eslint-disable no-console */
|
|
57
|
+
console.error(error);
|
|
58
|
+
});
|
|
59
|
+
window.clearInterval(interval.current);
|
|
60
|
+
interval.current = window.setInterval(async () => {
|
|
61
|
+
await getExtractionState();
|
|
62
|
+
}, Constants_1.STATUS_CHECK_INTERVAL);
|
|
63
|
+
}
|
|
64
|
+
return () => window.clearInterval(interval.current);
|
|
65
|
+
}, [jobStarted, getExtractionState]);
|
|
66
|
+
return (react_2.default.createElement(HorizontalTile_1.HorizontalTile, { title: props.mapping.mappingName, subText: props.mapping.iModelName, titleTooltip: props.mapping.mappingDescription, actionGroup: (react_2.default.createElement("div", { className: "rcw-action-button", "data-testid": "tile-action-button" },
|
|
67
|
+
extractionState === ExtractionStatus_1.ExtractionStates.None ?
|
|
68
|
+
(react_2.default.createElement(itwinui_react_1.IconButton, { styleType: "borderless", title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:UpdateDataset"), onClick: async () => {
|
|
69
|
+
setExtractionState(ExtractionStatus_1.ExtractionStates.Starting);
|
|
70
|
+
await props.bulkExtractor.runIModelExtraction(props.mapping.imodelId);
|
|
71
|
+
props.jobStartEvent.raiseEvent(props.mapping.imodelId);
|
|
72
|
+
}, disabled: jobStarted },
|
|
73
|
+
react_2.default.createElement(itwinui_icons_react_1.SvgRefresh, null))) : (react_2.default.createElement(ExtractionStatus_1.ExtractionStatus, { state: extractionState, clearExtractionState: () => {
|
|
74
|
+
setExtractionState(ExtractionStatus_1.ExtractionStates.None);
|
|
75
|
+
} })),
|
|
76
|
+
react_2.default.createElement(itwinui_react_1.IconButton, { styleType: "borderless", title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Remove"), onClick: () => {
|
|
77
|
+
props.onClickDelete();
|
|
78
|
+
}, disabled: jobStarted },
|
|
79
|
+
react_2.default.createElement(itwinui_icons_react_1.SvgDelete, null)))) }));
|
|
80
|
+
};
|
|
81
|
+
exports.ReportMappingHorizontalTile = ReportMappingHorizontalTile;
|
|
82
|
+
//# sourceMappingURL=ReportMappingHorizontalTile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportMappingHorizontalTile.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportMappingHorizontalTile.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 { useCallback, useEffect, useRef, useState } from \"react\";\nimport React from \"react\";\nimport type BulkExtractor from \"./BulkExtractor\";\nimport { ExtractionStates, ExtractionStatus } from \"./ExtractionStatus\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { STATUS_CHECK_INTERVAL } from \"./Constants\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport { IconButton } from \"@itwin/itwinui-react\";\nimport {\n SvgDelete,\n SvgRefresh,\n} from \"@itwin/itwinui-icons-react\";\nimport { HorizontalTile } from \"./HorizontalTile\";\nimport type { ReportMappingAndMapping } from \"./ReportMappings\";\n\nexport interface ReportMappingHorizontalTileProps {\n jobStartEvent: BeEvent<(iModelId: string) => void>;\n mapping: ReportMappingAndMapping;\n onClickDelete: () => void;\n bulkExtractor: BulkExtractor;\n odataFeedUrl: string;\n}\n\nexport const ReportMappingHorizontalTile = (props: ReportMappingHorizontalTileProps) => {\n const [extractionState, setExtractionState] = useState<ExtractionStates>(ExtractionStates.None);\n const [jobStarted, setJobStarted] = useState<boolean>(true);\n const interval = useRef<number>();\n const initialLoad = useRef<boolean>(true);\n\n useEffect(() => {\n const listener = (startedIModelId: string) => {\n if (startedIModelId === props.mapping.imodelId) {\n setExtractionState(ExtractionStates.Starting);\n setJobStarted(true);\n }\n };\n props.jobStartEvent.addListener(listener);\n\n return () => {\n props.jobStartEvent.removeListener(listener);\n };\n }, [props.jobStartEvent, props.mapping]);\n\n const getExtractionState = useCallback(async () => {\n const state = await props.bulkExtractor.getIModelState(props.mapping.imodelId, props.mapping.iModelName, props.odataFeedUrl);\n if (state === ExtractionStates.Failed || state === ExtractionStates.Succeeded || state === ExtractionStates.None) {\n setJobStarted(false);\n if (initialLoad.current) {\n initialLoad.current = false;\n setExtractionState(ExtractionStates.None);\n return;\n }\n } else {\n initialLoad.current = false;\n }\n setExtractionState(state);\n }, [props.mapping, props.bulkExtractor, props.odataFeedUrl]);\n\n useEffect(() => {\n if (jobStarted) {\n getExtractionState().catch((error) => {\n setExtractionState(ExtractionStates.Failed);\n setJobStarted(false);\n /* eslint-disable no-console */\n console.error(error);\n });\n window.clearInterval(interval.current);\n interval.current = window.setInterval(async () => {\n await getExtractionState();\n }, STATUS_CHECK_INTERVAL);\n }\n return () => window.clearInterval(interval.current);\n }, [jobStarted, getExtractionState]);\n\n return (\n <HorizontalTile\n title={props.mapping.mappingName}\n subText={props.mapping.iModelName}\n titleTooltip={props.mapping.mappingDescription}\n actionGroup={(\n <div\n className=\"rcw-action-button\"\n data-testid=\"tile-action-button\">\n {extractionState === ExtractionStates.None ?\n (\n <IconButton\n styleType=\"borderless\"\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:UpdateDataset\"\n )}\n onClick={async () => {\n setExtractionState(ExtractionStates.Starting);\n await props.bulkExtractor.runIModelExtraction(props.mapping.imodelId);\n props.jobStartEvent.raiseEvent(props.mapping.imodelId);\n }}\n disabled={jobStarted}\n >\n <SvgRefresh />\n </IconButton>\n ) : (\n <ExtractionStatus\n state={extractionState}\n clearExtractionState={() => {\n setExtractionState(ExtractionStates.None);\n }}\n ></ExtractionStatus>\n )}\n <IconButton\n styleType=\"borderless\"\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Remove\"\n )}\n onClick={() => {\n props.onClickDelete();\n }}\n disabled={jobStarted}\n >\n <SvgDelete />\n </IconButton>\n </div >\n )}\n />\n );\n};\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import type { CreateTypeFromInterface } from "./utils";
|
|
3
3
|
import "./ReportMappings.scss";
|
|
4
4
|
import type { Report, ReportMapping } from "@itwin/insights-client";
|
|
5
|
+
import type BulkExtractor from "./BulkExtractor";
|
|
5
6
|
export declare type ReportMappingType = CreateTypeFromInterface<ReportMapping>;
|
|
6
7
|
export declare type ReportMappingAndMapping = ReportMappingType & {
|
|
7
8
|
mappingName: string;
|
|
@@ -10,8 +11,9 @@ export declare type ReportMappingAndMapping = ReportMappingType & {
|
|
|
10
11
|
};
|
|
11
12
|
interface ReportMappingsProps {
|
|
12
13
|
report: Report;
|
|
14
|
+
bulkExtractor: BulkExtractor;
|
|
13
15
|
goBack: () => Promise<void>;
|
|
14
16
|
}
|
|
15
|
-
export declare const ReportMappings: ({ report, goBack }: ReportMappingsProps) => JSX.Element;
|
|
17
|
+
export declare const ReportMappings: ({ report, bulkExtractor, goBack }: ReportMappingsProps) => JSX.Element;
|
|
16
18
|
export {};
|
|
17
19
|
//# sourceMappingURL=ReportMappings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportMappings.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportMappings.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ReportMappings.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportMappings.tsx"],"names":[],"mappings":";AAiBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAQvD,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAcpE,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AAIjD,oBAAY,iBAAiB,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;AAEvE,oBAAY,uBAAuB,GAAG,iBAAiB,GAAG;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAwEF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,eAAO,MAAM,cAAc,sCAAuC,mBAAmB,gBAyMpF,CAAC"}
|
|
@@ -34,21 +34,22 @@ const utils_1 = require("./utils");
|
|
|
34
34
|
require("./ReportMappings.scss");
|
|
35
35
|
const DeleteModal_1 = __importDefault(require("./DeleteModal"));
|
|
36
36
|
const insights_client_1 = require("@itwin/insights-client");
|
|
37
|
-
const AddMappingsModal_1 =
|
|
37
|
+
const AddMappingsModal_1 = require("./AddMappingsModal");
|
|
38
38
|
const imodels_client_management_1 = require("@itwin/imodels-client-management");
|
|
39
39
|
const imodels_access_frontend_1 = require("@itwin/imodels-access-frontend");
|
|
40
|
-
const HorizontalTile_1 = require("./HorizontalTile");
|
|
41
|
-
const Extraction_1 = require("./Extraction");
|
|
42
40
|
const SearchBar_1 = require("./SearchBar");
|
|
43
41
|
const ReportsApiConfigContext_1 = require("../context/ReportsApiConfigContext");
|
|
44
42
|
const ReportsConfigWidget_1 = require("../../ReportsConfigWidget");
|
|
43
|
+
const ReportMappingHorizontalTile_1 = require("./ReportMappingHorizontalTile");
|
|
44
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
45
|
+
const utils_2 = require("./utils");
|
|
45
46
|
var ReportMappingsView;
|
|
46
47
|
(function (ReportMappingsView) {
|
|
47
48
|
ReportMappingsView["REPORTMAPPINGS"] = "reportmappings";
|
|
48
49
|
ReportMappingsView["ADDING"] = "adding";
|
|
49
50
|
})(ReportMappingsView || (ReportMappingsView = {}));
|
|
50
51
|
const fetchReportMappings = async (setReportMappings, reportId, setIsLoading, apiContext) => {
|
|
51
|
-
var _a;
|
|
52
|
+
var _a, _b;
|
|
52
53
|
try {
|
|
53
54
|
setIsLoading(true);
|
|
54
55
|
const reportsClientApi = new insights_client_1.ReportsClient(utils_1.generateUrl(insights_client_1.REPORTING_BASE_PATH, apiContext.baseUrl));
|
|
@@ -61,8 +62,8 @@ const fetchReportMappings = async (setReportMappings, reportId, setIsLoading, ap
|
|
|
61
62
|
const iModelsClient = new imodels_client_management_1.IModelsClient(iModelClientOptions);
|
|
62
63
|
const authorization = imodels_access_frontend_1.AccessTokenAdapter.toAuthorizationCallback(accessToken);
|
|
63
64
|
const iModelNames = new Map();
|
|
64
|
-
const
|
|
65
|
-
|
|
65
|
+
const reportMappingsAndMappings = [];
|
|
66
|
+
for (const reportMapping of reportMappings) {
|
|
66
67
|
const iModelId = reportMapping.imodelId;
|
|
67
68
|
let iModelName = "";
|
|
68
69
|
const mapping = await mappingsClientApi.getMapping(accessToken, iModelId, reportMapping.mappingId);
|
|
@@ -84,9 +85,9 @@ const fetchReportMappings = async (setReportMappings, reportId, setIsLoading, ap
|
|
|
84
85
|
mappingName: mapping.mappingName,
|
|
85
86
|
mappingDescription: (_b = mapping.description) !== null && _b !== void 0 ? _b : "",
|
|
86
87
|
};
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
setReportMappings(
|
|
88
|
+
reportMappingsAndMappings.push(reportMappingAndMapping);
|
|
89
|
+
}
|
|
90
|
+
setReportMappings(reportMappingsAndMappings);
|
|
90
91
|
}
|
|
91
92
|
catch (error) {
|
|
92
93
|
utils_1.handleError(error.status);
|
|
@@ -95,20 +96,23 @@ const fetchReportMappings = async (setReportMappings, reportId, setIsLoading, ap
|
|
|
95
96
|
setIsLoading(false);
|
|
96
97
|
}
|
|
97
98
|
};
|
|
98
|
-
const ReportMappings = ({ report, goBack }) => {
|
|
99
|
+
const ReportMappings = ({ report, bulkExtractor, goBack }) => {
|
|
99
100
|
var _a;
|
|
100
101
|
const apiConfig = ReportsApiConfigContext_1.useReportsApiConfig();
|
|
101
102
|
const [reportMappingsView, setReportMappingsView] = react_1.useState(ReportMappingsView.REPORTMAPPINGS);
|
|
102
103
|
const [selectedReportMapping, setSelectedReportMapping] = react_1.useState(undefined);
|
|
103
104
|
const [showDeleteModal, setShowDeleteModal] = react_1.useState(false);
|
|
104
105
|
const [isLoading, setIsLoading] = react_1.useState(true);
|
|
105
|
-
const [extractionState, setExtractionState] = react_1.useState(Extraction_1.ExtractionStates.None);
|
|
106
|
-
const [runningIModelId, setRunningIModelId] = react_1.useState("");
|
|
107
106
|
const [searchValue, setSearchValue] = react_1.useState("");
|
|
108
107
|
const [reportMappings, setReportMappings] = react_1.useState([]);
|
|
108
|
+
const [jobRunning, setJobRunning] = react_1.useState(false);
|
|
109
|
+
const jobStartEvent = react_1.useMemo(() => new core_bentley_1.BeEvent(), []);
|
|
109
110
|
react_1.useEffect(() => {
|
|
110
111
|
void fetchReportMappings(setReportMappings, report.id, setIsLoading, apiConfig);
|
|
111
112
|
}, [apiConfig, report.id, setIsLoading]);
|
|
113
|
+
react_1.useEffect(() => {
|
|
114
|
+
bulkExtractor.setHook(setJobRunning, reportMappings.map((x) => x.imodelId));
|
|
115
|
+
}, [bulkExtractor, reportMappings]);
|
|
112
116
|
const refresh = react_1.useCallback(async () => {
|
|
113
117
|
setReportMappingsView(ReportMappingsView.REPORTMAPPINGS);
|
|
114
118
|
await fetchReportMappings(setReportMappings, report.id, setIsLoading, apiConfig);
|
|
@@ -116,10 +120,6 @@ const ReportMappings = ({ report, goBack }) => {
|
|
|
116
120
|
const addMapping = () => {
|
|
117
121
|
setReportMappingsView(ReportMappingsView.ADDING);
|
|
118
122
|
};
|
|
119
|
-
const uniqueIModels = react_1.useMemo(() => new Map(reportMappings.map((mapping) => [
|
|
120
|
-
mapping.imodelId,
|
|
121
|
-
mapping.iModelName,
|
|
122
|
-
])), [reportMappings]);
|
|
123
123
|
const odataFeedUrl = `${utils_1.generateUrl(insights_client_1.REPORTING_BASE_PATH, apiConfig.baseUrl)}/odata/${report.id}`;
|
|
124
124
|
const filteredReportMappings = react_1.useMemo(() => reportMappings.filter((x) => [x.iModelName, x.mappingName, x.mappingDescription]
|
|
125
125
|
.join(" ")
|
|
@@ -127,44 +127,43 @@ const ReportMappings = ({ report, goBack }) => {
|
|
|
127
127
|
.includes(searchValue.toLowerCase())), [reportMappings, searchValue]);
|
|
128
128
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
129
129
|
react_1.default.createElement(utils_1.WidgetHeader, { title: report.displayName, returnFn: goBack }),
|
|
130
|
-
react_1.default.createElement("div", { className: "report-mapping-misc" },
|
|
131
|
-
react_1.default.createElement(itwinui_react_1.LabeledInput, { label: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ODataFeedURL"), className: "odata-url-input", readOnly: true, value: odataFeedUrl, svgIcon: react_1.default.createElement(itwinui_react_1.IconButton, { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Copy"), styleType: "borderless", onClick: async (_) => {
|
|
130
|
+
react_1.default.createElement("div", { className: "rcw-report-mapping-misc" },
|
|
131
|
+
react_1.default.createElement(itwinui_react_1.LabeledInput, { label: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ODataFeedURL"), className: "rcw-odata-url-input", readOnly: true, value: odataFeedUrl, svgIcon: react_1.default.createElement(itwinui_react_1.IconButton, { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Copy"), styleType: "borderless", onClick: async (_) => {
|
|
132
132
|
await navigator.clipboard.writeText(odataFeedUrl);
|
|
133
133
|
itwinui_react_1.toaster.positive(ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:CopiedToClipboard"));
|
|
134
134
|
} },
|
|
135
|
-
react_1.default.createElement(itwinui_icons_react_1.SvgCopy, null)), iconDisplayStyle: "inline" }),
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
react_1.default.createElement("div", { className: "toolbar" },
|
|
135
|
+
react_1.default.createElement(itwinui_icons_react_1.SvgCopy, null)), iconDisplayStyle: "inline" })),
|
|
136
|
+
react_1.default.createElement(itwinui_react_1.Surface, { className: "rcw-report-mappings-container" },
|
|
137
|
+
react_1.default.createElement("div", { className: "rcw-toolbar" },
|
|
139
138
|
react_1.default.createElement(itwinui_react_1.Button, { startIcon: react_1.default.createElement(itwinui_icons_react_1.SvgAdd, null), onClick: () => addMapping(), styleType: "high-visibility" }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:AddMapping")),
|
|
140
|
-
react_1.default.createElement("div", { className: "search-bar-container", "data-testid": "search-bar" },
|
|
139
|
+
react_1.default.createElement("div", { className: "rcw-search-bar-container", "data-testid": "rcw-search-bar" },
|
|
141
140
|
react_1.default.createElement(SearchBar_1.SearchBar, { searchValue: searchValue, setSearchValue: setSearchValue, disabled: isLoading }))),
|
|
142
141
|
isLoading ? (react_1.default.createElement(utils_1.LoadingOverlay, null)) : reportMappings.length === 0 ? (react_1.default.createElement(utils_1.EmptyMessage, null,
|
|
143
142
|
react_1.default.createElement(react_1.default.Fragment, null,
|
|
144
143
|
react_1.default.createElement(itwinui_react_1.Text, null, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:NoReportMappings")),
|
|
145
144
|
react_1.default.createElement("div", null,
|
|
146
|
-
react_1.default.createElement(itwinui_react_1.Button, { onClick: () => addMapping(), styleType: "cta" }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:LetsAddSomeMappingsCTA")))))) : (react_1.default.createElement("div", { className: "mapping-list" }, filteredReportMappings.map((mapping) => (react_1.default.createElement(
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
setSelectedReportMapping(mapping);
|
|
152
|
-
setShowDeleteModal(true);
|
|
153
|
-
close();
|
|
154
|
-
}, icon: react_1.default.createElement(itwinui_icons_react_1.SvgDelete, null) }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Remove")),
|
|
155
|
-
] },
|
|
156
|
-
react_1.default.createElement(itwinui_react_1.IconButton, { styleType: "borderless" },
|
|
157
|
-
react_1.default.createElement(itwinui_icons_react_1.SvgMore, { style: {
|
|
158
|
-
width: "16px",
|
|
159
|
-
height: "16px",
|
|
160
|
-
} })))) })))))),
|
|
161
|
-
react_1.default.createElement(AddMappingsModal_1.default, { show: reportMappingsView === ReportMappingsView.ADDING, reportId: report.id, existingMappings: reportMappings, returnFn: refresh }),
|
|
145
|
+
react_1.default.createElement(itwinui_react_1.Button, { onClick: () => addMapping(), styleType: "cta" }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:LetsAddSomeMappingsCTA")))))) : (react_1.default.createElement("div", { className: "rcw-mapping-list" }, filteredReportMappings.map((mapping) => (react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { key: mapping.mappingId, bulkExtractor: bulkExtractor, mapping: mapping, onClickDelete: () => {
|
|
146
|
+
setSelectedReportMapping(mapping);
|
|
147
|
+
setShowDeleteModal(true);
|
|
148
|
+
}, odataFeedUrl: odataFeedUrl, jobStartEvent: jobStartEvent })))))),
|
|
149
|
+
react_1.default.createElement(AddMappingsModal_1.AddMappingsModal, { show: reportMappingsView === ReportMappingsView.ADDING, reportId: report.id, existingMappings: reportMappings, returnFn: refresh }),
|
|
162
150
|
react_1.default.createElement(DeleteModal_1.default, { entityName: (_a = selectedReportMapping === null || selectedReportMapping === void 0 ? void 0 : selectedReportMapping.mappingName) !== null && _a !== void 0 ? _a : "", show: showDeleteModal, setShow: setShowDeleteModal, onDelete: async () => {
|
|
163
151
|
var _a;
|
|
164
152
|
const reportsClientApi = new insights_client_1.ReportsClient(utils_1.generateUrl(insights_client_1.REPORTING_BASE_PATH, apiConfig.baseUrl));
|
|
165
153
|
const accessToken = await apiConfig.getAccessToken();
|
|
166
154
|
await reportsClientApi.deleteReportMapping(accessToken, report.id, (_a = selectedReportMapping === null || selectedReportMapping === void 0 ? void 0 : selectedReportMapping.mappingId) !== null && _a !== void 0 ? _a : "");
|
|
167
|
-
}, refresh: refresh })
|
|
155
|
+
}, refresh: refresh }),
|
|
156
|
+
react_1.default.createElement("div", { className: "rcw-action-panel" },
|
|
157
|
+
isLoading && react_1.default.createElement(utils_2.LoadingSpinner, null),
|
|
158
|
+
react_1.default.createElement(itwinui_react_1.Button, { disabled: isLoading || jobRunning || reportMappings.length === 0, styleType: "high-visibility", onClick: async () => {
|
|
159
|
+
setJobRunning(true);
|
|
160
|
+
const uniqueIModels = Array.from(new Set(reportMappings.map((x) => x.imodelId)));
|
|
161
|
+
await bulkExtractor.runIModelExtractions(uniqueIModels);
|
|
162
|
+
reportMappings.forEach((reportMapping) => {
|
|
163
|
+
jobStartEvent.raiseEvent(reportMapping.imodelId);
|
|
164
|
+
});
|
|
165
|
+
} }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:UpdateAllDatasets")),
|
|
166
|
+
react_1.default.createElement(itwinui_react_1.Button, { styleType: "default", type: "button", onClick: goBack, disabled: isLoading }, ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Close")))));
|
|
168
167
|
};
|
|
169
168
|
exports.ReportMappings = ReportMappings;
|
|
170
169
|
//# sourceMappingURL=ReportMappings.js.map
|