@itwin/reports-config-widget-react 0.0.7 → 0.1.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/.rush/temp/package-deps_rebuild.json +24 -14
- package/.rush/temp/shrinkwrap-deps.json +17 -17
- package/CHANGELOG.json +24 -0
- package/CHANGELOG.md +15 -1
- package/coverage/clover.xml +354 -128
- package/coverage/coverage-final.json +17 -8
- package/coverage/lcov-report/index.html +36 -21
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +2 -2
- 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 +1 -1
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +553 -0
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +106 -0
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +4 -4
- package/coverage/lcov-report/src/widget/components/Extraction.tsx.html +1 -1
- 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 +187 -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/HorizontalTile.tsx.html +73 -40
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +478 -0
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +6 -24
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +129 -111
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +5 -5
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/index.html +83 -23
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +3 -3
- package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +4 -4
- 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 +1 -1
- package/coverage/lcov-report/src/widget/index.html +1 -1
- package/coverage/lcov.info +699 -287
- package/jest.config.js +1 -0
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/components/BulkExtractor.d.ts +28 -0
- package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -0
- package/lib/cjs/widget/components/BulkExtractor.js +126 -0
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -0
- package/lib/cjs/widget/components/Constants.d.ts +4 -0
- package/lib/cjs/widget/components/Constants.d.ts.map +1 -0
- package/lib/cjs/widget/components/Constants.js +11 -0
- package/lib/cjs/widget/components/Constants.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts +8 -0
- package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js +23 -0
- package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts +3 -0
- package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js +18 -0
- package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts +3 -0
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +17 -0
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts +3 -0
- package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js +18 -0
- package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts +8 -0
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +23 -0
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStatus.d.ts +17 -0
- package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionStatus.js +76 -0
- package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -0
- package/lib/cjs/widget/components/ExtractionStatus.scss +27 -0
- package/lib/cjs/widget/components/HorizontalTile.d.ts +8 -7
- package/lib/cjs/widget/components/HorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.js +10 -6
- package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.scss +42 -22
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +16 -0
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportHorizontalTile.js +72 -0
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -0
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +1 -1
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +34 -26
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/Reports.scss +7 -3
- package/lib/cjs/widget/components/ReportsContainer.scss +3 -0
- package/lib/cjs/widget/components/SearchBar.js +1 -1
- package/lib/cjs/widget/components/SearchBar.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.scss +6 -0
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/components/BulkExtractor.d.ts +28 -0
- package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -0
- package/lib/esm/widget/components/BulkExtractor.js +123 -0
- package/lib/esm/widget/components/BulkExtractor.js.map +1 -0
- package/lib/esm/widget/components/Constants.d.ts +4 -0
- package/lib/esm/widget/components/Constants.d.ts.map +1 -0
- package/lib/esm/widget/components/Constants.js +8 -0
- package/lib/esm/widget/components/Constants.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts +8 -0
- package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js +16 -0
- package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts +3 -0
- package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js +11 -0
- package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts +3 -0
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +10 -0
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts +3 -0
- package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js +11 -0
- package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts +8 -0
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +16 -0
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStatus.d.ts +17 -0
- package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionStatus.js +53 -0
- package/lib/esm/widget/components/ExtractionStatus.js.map +1 -0
- package/lib/esm/widget/components/ExtractionStatus.scss +27 -0
- package/lib/esm/widget/components/HorizontalTile.d.ts +8 -7
- package/lib/esm/widget/components/HorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/HorizontalTile.js +10 -6
- package/lib/esm/widget/components/HorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/HorizontalTile.scss +42 -22
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts +16 -0
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportHorizontalTile.js +65 -0
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -0
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +1 -1
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +36 -28
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/Reports.scss +7 -3
- package/lib/esm/widget/components/ReportsContainer.scss +3 -0
- package/lib/esm/widget/components/SearchBar.js +1 -1
- package/lib/esm/widget/components/SearchBar.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.scss +6 -0
- package/lib/public/locales/en/ReportsConfigWidget.json +2 -1
- package/package.json +5 -2
- package/public/locales/en/ReportsConfigWidget.json +2 -1
- package/reports-config-widget-react.build.error.log +4 -4
- package/reports-config-widget-react.build.log +44 -34
- package/src/widget/components/BulkExtractor.ts +156 -0
- package/src/widget/components/Constants.ts +7 -0
- package/src/widget/components/ExtractionStates/FailedExtractionState.tsx +34 -0
- package/src/widget/components/ExtractionStates/QueuedExtractionState.tsx +20 -0
- package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +18 -0
- package/src/widget/components/ExtractionStates/StartingExtractionState.tsx +22 -0
- package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +34 -0
- package/src/widget/components/ExtractionStatus.scss +27 -0
- package/src/widget/components/ExtractionStatus.tsx +70 -0
- package/src/widget/components/HorizontalTile.scss +42 -22
- package/src/widget/components/HorizontalTile.tsx +45 -34
- package/src/widget/components/ReportHorizontalTile.tsx +131 -0
- package/src/widget/components/ReportMappings.tsx +4 -10
- package/src/widget/components/Reports.scss +7 -3
- package/src/widget/components/Reports.tsx +66 -60
- package/src/widget/components/ReportsContainer.scss +3 -0
- package/src/widget/components/SearchBar.scss +6 -0
- package/src/widget/components/SearchBar.tsx +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ReportMapping } from "@itwin/insights-client";
|
|
2
|
+
import type { ReportsApiConfig } from "../context/ReportsApiConfigContext";
|
|
3
|
+
import { ExtractionStates } from "./ExtractionStatus";
|
|
4
|
+
export declare type ReportMappingAndMapping = ReportMapping & {
|
|
5
|
+
mappingName: string;
|
|
6
|
+
mappingDescription: string;
|
|
7
|
+
iModelName: string;
|
|
8
|
+
};
|
|
9
|
+
export default class BulkExtractor {
|
|
10
|
+
private _reportRunIds;
|
|
11
|
+
private _reportsClientApi;
|
|
12
|
+
private _extractionClientApi;
|
|
13
|
+
private _accessToken;
|
|
14
|
+
private _reportStates;
|
|
15
|
+
private _timeFetched;
|
|
16
|
+
private _reportIds;
|
|
17
|
+
constructor(apiConfig: ReportsApiConfig, reportIds: string[]);
|
|
18
|
+
private getStates;
|
|
19
|
+
private fetchStates;
|
|
20
|
+
getState(reportId: string): ExtractionStates;
|
|
21
|
+
clearJob(reportId: string): void;
|
|
22
|
+
private static getFinalState;
|
|
23
|
+
private getSingleState;
|
|
24
|
+
startJobs(reportIds: string[]): Promise<void>;
|
|
25
|
+
private runExtraction;
|
|
26
|
+
private fetchReportIModels;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=BulkExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkExtractor.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/BulkExtractor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,oBAAY,uBAAuB,GAAG,aAAa,GAAG;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,oBAAoB,CAAmB;IAC/C,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,UAAU,CAAW;gBAEjB,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,EAAE;YAQ9C,SAAS;YA4BT,WAAW;IAIlB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAW5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIvC,OAAO,CAAC,MAAM,CAAC,aAAa;YAgBd,cAAc;IAUf,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA4B5C,aAAa;YAab,kBAAkB;CAOjC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/*---------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
5
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
6
|
+
*--------------------------------------------------------------------------------------------*/
|
|
7
|
+
const insights_client_1 = require("@itwin/insights-client");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
const ExtractionStatus_1 = require("./ExtractionStatus");
|
|
10
|
+
const Constants_1 = require("./Constants");
|
|
11
|
+
class BulkExtractor {
|
|
12
|
+
constructor(apiConfig, reportIds) {
|
|
13
|
+
this._reportRunIds = new Map();
|
|
14
|
+
this._reportStates = new Map();
|
|
15
|
+
this._timeFetched = new Date();
|
|
16
|
+
const url = utils_1.generateUrl(insights_client_1.REPORTING_BASE_PATH, apiConfig.baseUrl);
|
|
17
|
+
this._reportsClientApi = new insights_client_1.ReportsClient(url);
|
|
18
|
+
this._extractionClientApi = new insights_client_1.ExtractionClient(url);
|
|
19
|
+
this._accessToken = apiConfig.getAccessToken;
|
|
20
|
+
this._reportIds = reportIds;
|
|
21
|
+
}
|
|
22
|
+
async getStates(reportIds) {
|
|
23
|
+
const stateByReportId = new Map();
|
|
24
|
+
const stateByRunId = new Map();
|
|
25
|
+
for (const reportId of reportIds) {
|
|
26
|
+
const runs = this._reportRunIds.get(reportId);
|
|
27
|
+
if (!runs) {
|
|
28
|
+
stateByReportId.set(reportId, ExtractionStatus_1.ExtractionStates.None);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const states = [];
|
|
32
|
+
for (const runId of runs) {
|
|
33
|
+
const state = stateByRunId.get(runId);
|
|
34
|
+
if (state) {
|
|
35
|
+
states.push(state);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const runState = await this.getSingleState(runId, await this._accessToken());
|
|
39
|
+
states.push(runState);
|
|
40
|
+
stateByRunId.set(runId, runState);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const finalState = BulkExtractor.getFinalState(states);
|
|
44
|
+
stateByReportId.set(reportId, finalState);
|
|
45
|
+
}
|
|
46
|
+
return stateByReportId;
|
|
47
|
+
}
|
|
48
|
+
async fetchStates() {
|
|
49
|
+
this._reportStates = await this.getStates(this._reportIds);
|
|
50
|
+
}
|
|
51
|
+
getState(reportId) {
|
|
52
|
+
var _a;
|
|
53
|
+
if ((new Date().getTime() - this._timeFetched.getTime()) > Constants_1.STATUS_CHECK_INTERVAL) {
|
|
54
|
+
this._timeFetched = new Date();
|
|
55
|
+
this.fetchStates().catch((e) =>
|
|
56
|
+
/* eslint-disable no-console */
|
|
57
|
+
console.error(e));
|
|
58
|
+
}
|
|
59
|
+
return (_a = this._reportStates.get(reportId)) !== null && _a !== void 0 ? _a : ExtractionStatus_1.ExtractionStates.None;
|
|
60
|
+
}
|
|
61
|
+
clearJob(reportId) {
|
|
62
|
+
this._reportRunIds.delete(reportId);
|
|
63
|
+
}
|
|
64
|
+
static getFinalState(states) {
|
|
65
|
+
if (states.includes(insights_client_1.ExtractorState.Failed))
|
|
66
|
+
return ExtractionStatus_1.ExtractionStates.Failed;
|
|
67
|
+
if (states.includes(insights_client_1.ExtractorState.Queued))
|
|
68
|
+
return ExtractionStatus_1.ExtractionStates.Queued;
|
|
69
|
+
if (states.includes(insights_client_1.ExtractorState.Running))
|
|
70
|
+
return ExtractionStatus_1.ExtractionStates.Running;
|
|
71
|
+
if (states.includes(insights_client_1.ExtractorState.Succeeded))
|
|
72
|
+
return ExtractionStatus_1.ExtractionStates.Succeeded;
|
|
73
|
+
return ExtractionStatus_1.ExtractionStates.Failed;
|
|
74
|
+
}
|
|
75
|
+
async getSingleState(runId, accessToken) {
|
|
76
|
+
try {
|
|
77
|
+
const response = await this._extractionClientApi.getExtractionStatus(accessToken, runId);
|
|
78
|
+
return response.state;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
utils_1.handleError(error.status);
|
|
82
|
+
}
|
|
83
|
+
return insights_client_1.ExtractorState.Failed;
|
|
84
|
+
}
|
|
85
|
+
async startJobs(reportIds) {
|
|
86
|
+
const reportIModelIds = new Map();
|
|
87
|
+
for (const reportId of reportIds) {
|
|
88
|
+
const reportIModels = await this.fetchReportIModels(reportId);
|
|
89
|
+
reportIModelIds.set(reportId, reportIModels);
|
|
90
|
+
this._reportStates.set(reportId, ExtractionStatus_1.ExtractionStates.Starting);
|
|
91
|
+
}
|
|
92
|
+
const iModels = new Set(Array.from(reportIModelIds.values()).flat());
|
|
93
|
+
const extractionMapPromise = Array.from(iModels).map(async (iModel) => {
|
|
94
|
+
const run = await this.runExtraction(iModel);
|
|
95
|
+
return [iModel, run];
|
|
96
|
+
});
|
|
97
|
+
const extractionMap = await Promise.all(extractionMapPromise);
|
|
98
|
+
const extractionByIModel = new Map(extractionMap);
|
|
99
|
+
reportIds.forEach((reportId) => {
|
|
100
|
+
const reportIModels = reportIModelIds.get(reportId);
|
|
101
|
+
const runs = [];
|
|
102
|
+
reportIModels.forEach((iModelId) => {
|
|
103
|
+
const runId = extractionByIModel.get(iModelId);
|
|
104
|
+
if (runId)
|
|
105
|
+
runs.push(runId);
|
|
106
|
+
});
|
|
107
|
+
this._reportRunIds.set(reportId, runs);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async runExtraction(iModelId) {
|
|
111
|
+
try {
|
|
112
|
+
const response = await this._extractionClientApi.runExtraction(await this._accessToken(), iModelId);
|
|
113
|
+
return response.id;
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
utils_1.handleError(error.status);
|
|
117
|
+
}
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
async fetchReportIModels(reportId) {
|
|
121
|
+
const reportMappings = await this._reportsClientApi.getReportMappings(await this._accessToken(), reportId);
|
|
122
|
+
return reportMappings.map((x) => x.imodelId);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.default = BulkExtractor;
|
|
126
|
+
//# sourceMappingURL=BulkExtractor.js.map
|
|
@@ -0,0 +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 { ExtractionClient, ExtractorState, REPORTING_BASE_PATH, ReportsClient } from \"@itwin/insights-client\";\nimport type { ReportMapping } from \"@itwin/insights-client\";\nimport { generateUrl, handleError } from \"./utils\";\nimport type { ReportsApiConfig } from \"../context/ReportsApiConfigContext\";\nimport { ExtractionStates } from \"./ExtractionStatus\";\nimport { STATUS_CHECK_INTERVAL } from \"./Constants\";\n\nexport type ReportMappingAndMapping = ReportMapping & {\n mappingName: string;\n mappingDescription: string;\n iModelName: string;\n};\n\nexport default class BulkExtractor {\n private _reportRunIds = new Map<string, string[]>();\n private _reportsClientApi: ReportsClient;\n private _extractionClientApi: ExtractionClient;\n private _accessToken: () => Promise<string>;\n private _reportStates = new Map<string, ExtractionStates>();\n private _timeFetched = new Date();\n private _reportIds: string[];\n\n constructor(apiConfig: ReportsApiConfig, reportIds: string[]) {\n const url = generateUrl(REPORTING_BASE_PATH, apiConfig.baseUrl);\n this._reportsClientApi = new ReportsClient(url);\n this._extractionClientApi = new ExtractionClient(url);\n this._accessToken = apiConfig.getAccessToken;\n this._reportIds = reportIds;\n }\n\n private async getStates(reportIds: string[]): Promise<Map<string, ExtractionStates>> {\n const stateByReportId = new Map<string, ExtractionStates>();\n const stateByRunId = new Map<string, ExtractorState>();\n\n for (const reportId of reportIds) {\n const runs = this._reportRunIds.get(reportId);\n if (!runs) {\n stateByReportId.set(reportId, ExtractionStates.None);\n continue;\n }\n\n const states: ExtractorState[] = [];\n for (const runId of runs) {\n const state = stateByRunId.get(runId);\n if (state) {\n states.push(state);\n } else {\n const runState = await this.getSingleState(runId, await this._accessToken());\n states.push(runState);\n stateByRunId.set(runId, runState);\n }\n }\n const finalState = BulkExtractor.getFinalState(states);\n stateByReportId.set(reportId, finalState);\n }\n return stateByReportId;\n }\n\n private async fetchStates(): Promise<void> {\n this._reportStates = await this.getStates(this._reportIds);\n }\n\n public getState(reportId: string): ExtractionStates {\n if ((new Date().getTime() - this._timeFetched.getTime()) > STATUS_CHECK_INTERVAL) {\n this._timeFetched = new Date();\n this.fetchStates().catch((e) =>\n /* eslint-disable no-console */\n console.error(e)\n );\n }\n return this._reportStates.get(reportId) ?? ExtractionStates.None;\n }\n\n public clearJob(reportId: string): void {\n this._reportRunIds.delete(reportId);\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 getSingleState(runId: string, accessToken: string): Promise<ExtractorState> {\n try {\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 public async startJobs(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._reportStates.set(reportId, ExtractionStates.Starting);\n }\n const iModels = new Set(Array.from(reportIModelIds.values()).flat());\n const extractionMapPromise =\n Array.from(iModels).map(async (iModel): Promise<[string, string | undefined]> => {\n const run = await this.runExtraction(iModel);\n return [iModel, run];\n });\n\n const extractionMap = await Promise.all(extractionMapPromise);\n const extractionByIModel = new Map<string, string | undefined>(extractionMap);\n reportIds.forEach((reportId) => {\n const reportIModels = reportIModelIds.get(reportId)!;\n const runs: string[] = [];\n reportIModels.forEach((iModelId) => {\n const runId = extractionByIModel.get(iModelId);\n if (runId)\n runs.push(runId);\n });\n this._reportRunIds.set(reportId, runs);\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 return response.id;\n } catch (error: any) {\n handleError(error.status);\n }\n return undefined;\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"]}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ANIMATION_DURATION = exports.ANIMATION_DELAY = exports.STATUS_CHECK_INTERVAL = void 0;
|
|
4
|
+
/*---------------------------------------------------------------------------------------------
|
|
5
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
|
+
exports.STATUS_CHECK_INTERVAL = 5000;
|
|
9
|
+
exports.ANIMATION_DELAY = "5s";
|
|
10
|
+
exports.ANIMATION_DURATION = "1s";
|
|
11
|
+
//# sourceMappingURL=Constants.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface ExtractionStateProps {
|
|
3
|
+
animation: boolean;
|
|
4
|
+
onAnimationEnd: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const FailedExtractionState: ({ animation, onAnimationEnd }: ExtractionStateProps) => JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=FailedExtractionState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailedExtractionState.d.ts","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/FailedExtractionState.tsx"],"names":[],"mappings":";AASA,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,qBAAqB,kCAAmC,oBAAoB,gBAmBxF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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.FailedExtractionState = 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_icons_color_react_1 = require("@itwin/itwinui-icons-color-react");
|
|
13
|
+
const ReportsConfigWidget_1 = require("../../../ReportsConfigWidget");
|
|
14
|
+
const Constants_1 = require("../Constants");
|
|
15
|
+
const FailedExtractionState = ({ animation, onAnimationEnd }) => (react_1.default.createElement("div", { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Failed"), className: "rcw-extraction-status" },
|
|
16
|
+
react_1.default.createElement("div", { className: `rcw-status-icon`, style: {
|
|
17
|
+
animationName: animation ? "rcw-fade-out" : "",
|
|
18
|
+
animationDelay: Constants_1.ANIMATION_DELAY,
|
|
19
|
+
animationDuration: Constants_1.ANIMATION_DURATION,
|
|
20
|
+
}, onAnimationEnd: onAnimationEnd },
|
|
21
|
+
react_1.default.createElement(itwinui_icons_color_react_1.SvgStatusError, null))));
|
|
22
|
+
exports.FailedExtractionState = FailedExtractionState;
|
|
23
|
+
//# sourceMappingURL=FailedExtractionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FailedExtractionState.js","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/FailedExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,gFAAkE;AAClE,sEAAmE;AACnE,4CAAmE;AAO5D,MAAM,qBAAqB,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAwB,EAAE,EAAE,CAAC,CAC5F,uCACE,KAAK,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,4BAA4B,CAC7B,EACD,SAAS,EAAC,uBAAuB;IAEjC,uCACE,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE;YACL,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YAC9C,cAAc,EAAE,2BAAe;YAC/B,iBAAiB,EAAE,8BAAkB;SACtC,EACD,cAAc,EAAE,cAAc;QAE9B,8BAAC,0CAAc,OAAG,CACd,CACF,CACP,CAAC;AAnBW,QAAA,qBAAqB,yBAmBhC","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 { SvgStatusError } from \"@itwin/itwinui-icons-color-react\";\nimport { ReportsConfigWidget } from \"../../../ReportsConfigWidget\";\nimport { ANIMATION_DELAY, ANIMATION_DURATION } from \"../Constants\";\n\ninterface ExtractionStateProps {\n animation: boolean;\n onAnimationEnd: () => void;\n}\n\nexport const FailedExtractionState = ({ animation, onAnimationEnd }: ExtractionStateProps) => (\n <div\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Failed\"\n )}\n className=\"rcw-extraction-status\"\n >\n <div\n className={`rcw-status-icon`}\n style={{\n animationName: animation ? \"rcw-fade-out\" : \"\",\n animationDelay: ANIMATION_DELAY,\n animationDuration: ANIMATION_DURATION,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n <SvgStatusError />\n </div>\n </div>\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueuedExtractionState.d.ts","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/QueuedExtractionState.tsx"],"names":[],"mappings":";AAQA,eAAO,MAAM,qBAAqB,mBAWjC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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.QueuedExtractionState = 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_icons_color_react_1 = require("@itwin/itwinui-icons-color-react");
|
|
13
|
+
const ReportsConfigWidget_1 = require("../../../ReportsConfigWidget");
|
|
14
|
+
const QueuedExtractionState = () => (react_1.default.createElement("div", { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Queued"), className: "rcw-extraction-status" },
|
|
15
|
+
react_1.default.createElement("div", { className: "rcw-status-icon" },
|
|
16
|
+
react_1.default.createElement(itwinui_icons_color_react_1.SvgStatusPending, null))));
|
|
17
|
+
exports.QueuedExtractionState = QueuedExtractionState;
|
|
18
|
+
//# sourceMappingURL=QueuedExtractionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueuedExtractionState.js","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/QueuedExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,gFAAoE;AACpE,sEAAmE;AAE5D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CACzC,uCACE,KAAK,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,4BAA4B,CAC7B,EACD,SAAS,EAAC,uBAAuB;IAEjC,uCAAK,SAAS,EAAC,iBAAiB;QAC9B,8BAAC,4CAAgB,OAAG,CAChB,CACF,CACP,CAAC;AAXW,QAAA,qBAAqB,yBAWhC","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 { SvgStatusPending } from \"@itwin/itwinui-icons-color-react\";\nimport { ReportsConfigWidget } from \"../../../ReportsConfigWidget\";\n\nexport const QueuedExtractionState = () => (\n <div\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Queued\"\n )}\n className=\"rcw-extraction-status\"\n >\n <div className=\"rcw-status-icon\">\n <SvgStatusPending />\n </div>\n </div>\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunningExtractionState.d.ts","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/RunningExtractionState.tsx"],"names":[],"mappings":";AAQA,eAAO,MAAM,sBAAsB,mBASlC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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.RunningExtractionState = 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 RunningExtractionState = () => (react_1.default.createElement("div", { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Running"), className: "rcw-extraction-status" },
|
|
15
|
+
react_1.default.createElement(itwinui_react_1.ProgressRadial, { size: "x-small", indeterminate: true })));
|
|
16
|
+
exports.RunningExtractionState = RunningExtractionState;
|
|
17
|
+
//# sourceMappingURL=RunningExtractionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunningExtractionState.js","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/RunningExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,wDAAsD;AACtD,sEAAmE;AAE5D,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,CAC1C,uCACE,KAAK,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,6BAA6B,CAC9B,EACD,SAAS,EAAC,uBAAuB;IAEjC,8BAAC,8BAAc,IAAC,IAAI,EAAC,SAAS,EAAC,aAAa,SAAG,CAC3C,CACP,CAAC;AATW,QAAA,sBAAsB,0BASjC","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 { ProgressRadial } from \"@itwin/itwinui-react\";\nimport { ReportsConfigWidget } from \"../../../ReportsConfigWidget\";\n\nexport const RunningExtractionState = () => (\n <div\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Running\"\n )}\n className=\"rcw-extraction-status\"\n >\n <ProgressRadial size=\"x-small\" indeterminate />\n </div>\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartingExtractionState.d.ts","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/StartingExtractionState.tsx"],"names":[],"mappings":";AAQA,eAAO,MAAM,uBAAuB,mBAanC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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.StartingExtractionState = 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_icons_color_react_1 = require("@itwin/itwinui-icons-color-react");
|
|
13
|
+
const ReportsConfigWidget_1 = require("../../../ReportsConfigWidget");
|
|
14
|
+
const StartingExtractionState = () => (react_1.default.createElement("div", { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Starting"), className: "rcw-extraction-status" },
|
|
15
|
+
react_1.default.createElement("div", { className: "rcw-status-icon" },
|
|
16
|
+
react_1.default.createElement(itwinui_icons_color_react_1.SvgStatusPendingHollow, null))));
|
|
17
|
+
exports.StartingExtractionState = StartingExtractionState;
|
|
18
|
+
//# sourceMappingURL=StartingExtractionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartingExtractionState.js","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/StartingExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,gFAA0E;AAC1E,sEAAmE;AAE5D,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAC3C,uCACE,KAAK,EACH,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACjD,8BAA8B,CAC/B,EAEH,SAAS,EAAC,uBAAuB;IAEjC,uCAAK,SAAS,EAAC,iBAAiB;QAC9B,8BAAC,kDAAsB,OAAG,CACtB,CACF,CACP,CAAC;AAbW,QAAA,uBAAuB,2BAalC","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 { SvgStatusPendingHollow } from \"@itwin/itwinui-icons-color-react\";\nimport { ReportsConfigWidget } from \"../../../ReportsConfigWidget\";\n\nexport const StartingExtractionState = () => (\n <div\n title={\n ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Starting\"\n )\n }\n className=\"rcw-extraction-status\"\n >\n <div className=\"rcw-status-icon\">\n <SvgStatusPendingHollow />\n </div>\n </div>\n);\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface ExtractionStateProps {
|
|
3
|
+
animation: boolean;
|
|
4
|
+
onAnimationEnd: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const SucceededExtractionState: ({ animation, onAnimationEnd }: ExtractionStateProps) => JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SucceededExtractionState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SucceededExtractionState.d.ts","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/SucceededExtractionState.tsx"],"names":[],"mappings":";AASA,UAAU,oBAAoB;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,wBAAwB,kCAAmC,oBAAoB,gBAmB3F,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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.SucceededExtractionState = 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_icons_color_react_1 = require("@itwin/itwinui-icons-color-react");
|
|
13
|
+
const ReportsConfigWidget_1 = require("../../../ReportsConfigWidget");
|
|
14
|
+
const Constants_1 = require("../Constants");
|
|
15
|
+
const SucceededExtractionState = ({ animation, onAnimationEnd }) => (react_1.default.createElement("div", { title: ReportsConfigWidget_1.ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Success"), className: "rcw-extraction-status" },
|
|
16
|
+
react_1.default.createElement("div", { className: `rcw-status-icon`, style: {
|
|
17
|
+
animationName: animation ? "rcw-fade-out" : "",
|
|
18
|
+
animationDelay: Constants_1.ANIMATION_DELAY,
|
|
19
|
+
animationDuration: Constants_1.ANIMATION_DURATION,
|
|
20
|
+
}, onAnimationEnd: onAnimationEnd },
|
|
21
|
+
react_1.default.createElement(itwinui_icons_color_react_1.SvgStatusSuccess, null))));
|
|
22
|
+
exports.SucceededExtractionState = SucceededExtractionState;
|
|
23
|
+
//# sourceMappingURL=SucceededExtractionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SucceededExtractionState.js","sourceRoot":"","sources":["../../../../../src/widget/components/ExtractionStates/SucceededExtractionState.tsx"],"names":[],"mappings":";;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,gFAAoE;AACpE,sEAAmE;AACnE,4CAAmE;AAO5D,MAAM,wBAAwB,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAwB,EAAE,EAAE,CAAC,CAC/F,uCACE,KAAK,EAAE,yCAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,6BAA6B,CAC9B,EACD,SAAS,EAAC,uBAAuB;IAEjC,uCACE,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE;YACL,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;YAC9C,cAAc,EAAE,2BAAe;YAC/B,iBAAiB,EAAE,8BAAkB;SACtC,EACD,cAAc,EAAE,cAAc;QAE9B,8BAAC,4CAAgB,OAAG,CAChB,CACF,CACP,CAAC;AAnBW,QAAA,wBAAwB,4BAmBnC","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 { SvgStatusSuccess } from \"@itwin/itwinui-icons-color-react\";\nimport { ReportsConfigWidget } from \"../../../ReportsConfigWidget\";\nimport { ANIMATION_DELAY, ANIMATION_DURATION } from \"../Constants\";\n\ninterface ExtractionStateProps {\n animation: boolean;\n onAnimationEnd: () => void;\n}\n\nexport const SucceededExtractionState = ({ animation, onAnimationEnd }: ExtractionStateProps) => (\n <div\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Success\"\n )}\n className=\"rcw-extraction-status\"\n >\n <div\n className={`rcw-status-icon`}\n style={{\n animationName: animation ? \"rcw-fade-out\" : \"\",\n animationDelay: ANIMATION_DELAY,\n animationDuration: ANIMATION_DURATION,\n }}\n onAnimationEnd={onAnimationEnd}\n >\n <SvgStatusSuccess />\n </div>\n </div>\n);\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import "./ExtractionStatus.scss";
|
|
3
|
+
export declare enum ExtractionStates {
|
|
4
|
+
None = 0,
|
|
5
|
+
Starting = 1,
|
|
6
|
+
Queued = 2,
|
|
7
|
+
Running = 3,
|
|
8
|
+
Succeeded = 4,
|
|
9
|
+
Failed = 5
|
|
10
|
+
}
|
|
11
|
+
interface ExtractionStatusProps {
|
|
12
|
+
state: ExtractionStates;
|
|
13
|
+
clearExtractionState: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const ExtractionStatus: ({ state, clearExtractionState, }: ExtractionStatusProps) => JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=ExtractionStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtractionStatus.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ExtractionStatus.tsx"],"names":[],"mappings":";AAMA,OAAO,yBAAyB,CAAC;AAQjC,oBAAY,gBAAgB;IAC1B,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,OAAO,IAAA;IACP,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,gBAAgB,qCAG1B,qBAAqB,gBAsCvB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.ExtractionStatus = exports.ExtractionStates = void 0;
|
|
23
|
+
/*---------------------------------------------------------------------------------------------
|
|
24
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
25
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
26
|
+
*--------------------------------------------------------------------------------------------*/
|
|
27
|
+
const React = __importStar(require("react"));
|
|
28
|
+
const react_1 = require("react");
|
|
29
|
+
require("./ExtractionStatus.scss");
|
|
30
|
+
const Constants_1 = require("./Constants");
|
|
31
|
+
const StartingExtractionState_1 = require("./ExtractionStates/StartingExtractionState");
|
|
32
|
+
const RunningExtractionState_1 = require("./ExtractionStates/RunningExtractionState");
|
|
33
|
+
const FailedExtractionState_1 = require("./ExtractionStates/FailedExtractionState");
|
|
34
|
+
const QueuedExtractionState_1 = require("./ExtractionStates/QueuedExtractionState");
|
|
35
|
+
const SucceededExtractionState_1 = require("./ExtractionStates/SucceededExtractionState");
|
|
36
|
+
var ExtractionStates;
|
|
37
|
+
(function (ExtractionStates) {
|
|
38
|
+
ExtractionStates[ExtractionStates["None"] = 0] = "None";
|
|
39
|
+
ExtractionStates[ExtractionStates["Starting"] = 1] = "Starting";
|
|
40
|
+
ExtractionStates[ExtractionStates["Queued"] = 2] = "Queued";
|
|
41
|
+
ExtractionStates[ExtractionStates["Running"] = 3] = "Running";
|
|
42
|
+
ExtractionStates[ExtractionStates["Succeeded"] = 4] = "Succeeded";
|
|
43
|
+
ExtractionStates[ExtractionStates["Failed"] = 5] = "Failed";
|
|
44
|
+
})(ExtractionStates = exports.ExtractionStates || (exports.ExtractionStates = {}));
|
|
45
|
+
const ExtractionStatus = ({ state, clearExtractionState, }) => {
|
|
46
|
+
const [fadeOut, setFadeOut] = react_1.useState(false);
|
|
47
|
+
const onAnimationEnd = () => {
|
|
48
|
+
clearExtractionState();
|
|
49
|
+
setFadeOut(false);
|
|
50
|
+
};
|
|
51
|
+
react_1.useEffect(() => {
|
|
52
|
+
let timer;
|
|
53
|
+
switch (state) {
|
|
54
|
+
case ExtractionStates.Succeeded:
|
|
55
|
+
case ExtractionStates.Failed:
|
|
56
|
+
timer = window.setTimeout(() => setFadeOut(true), Constants_1.STATUS_CHECK_INTERVAL);
|
|
57
|
+
}
|
|
58
|
+
return () => window.clearTimeout(timer);
|
|
59
|
+
}, [state]);
|
|
60
|
+
switch (state) {
|
|
61
|
+
case ExtractionStates.Starting:
|
|
62
|
+
return (React.createElement(StartingExtractionState_1.StartingExtractionState, null));
|
|
63
|
+
case ExtractionStates.Queued:
|
|
64
|
+
return (React.createElement(QueuedExtractionState_1.QueuedExtractionState, null));
|
|
65
|
+
case ExtractionStates.Running:
|
|
66
|
+
return (React.createElement(RunningExtractionState_1.RunningExtractionState, null));
|
|
67
|
+
case ExtractionStates.Succeeded:
|
|
68
|
+
return (React.createElement(SucceededExtractionState_1.SucceededExtractionState, { animation: fadeOut, onAnimationEnd: onAnimationEnd }));
|
|
69
|
+
case ExtractionStates.Failed:
|
|
70
|
+
return (React.createElement(FailedExtractionState_1.FailedExtractionState, { animation: fadeOut, onAnimationEnd: onAnimationEnd }));
|
|
71
|
+
default:
|
|
72
|
+
return React.createElement(React.Fragment, null);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
exports.ExtractionStatus = ExtractionStatus;
|
|
76
|
+
//# sourceMappingURL=ExtractionStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,gBAAQ,CAAU,KAAK,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,oBAAoB,EAAE,CAAC;QACvB,UAAU,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,iBAAS,CAAC,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"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
|
+
|
|
7
|
+
.rcw-extraction-status {
|
|
8
|
+
align-items: center;
|
|
9
|
+
margin: auto $iui-s * 2;
|
|
10
|
+
height: 38px;
|
|
11
|
+
display: flex;
|
|
12
|
+
|
|
13
|
+
.rcw-status-icon {
|
|
14
|
+
width: $iui-icons-default;
|
|
15
|
+
height: $iui-icons-default;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@keyframes rcw-fade-out {
|
|
20
|
+
0% {
|
|
21
|
+
opacity: 1;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
100% {
|
|
25
|
+
opacity: 0;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
+
import React from "react";
|
|
2
3
|
import "./HorizontalTile.scss";
|
|
3
|
-
interface HorizontalTileProps {
|
|
4
|
+
export interface HorizontalTileProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
4
5
|
title: string;
|
|
5
|
-
|
|
6
|
-
subText
|
|
7
|
-
onClickTitle?:
|
|
8
|
-
titleTooltip
|
|
6
|
+
actionGroup: ReactNode;
|
|
7
|
+
subText: string;
|
|
8
|
+
onClickTitle?: React.MouseEventHandler;
|
|
9
|
+
titleTooltip: string;
|
|
9
10
|
subtextToolTip?: string;
|
|
11
|
+
selected?: boolean;
|
|
10
12
|
}
|
|
11
|
-
export declare const HorizontalTile: (
|
|
12
|
-
export {};
|
|
13
|
+
export declare const HorizontalTile: (props: HorizontalTileProps) => JSX.Element;
|
|
13
14
|
//# sourceMappingURL=HorizontalTile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalTile.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/HorizontalTile.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"HorizontalTile.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/HorizontalTile.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,uBAAuB,CAAC;AAG/B,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,SAAS,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,UAAW,mBAAmB,gBA+CxD,CAAC"}
|
|
@@ -7,12 +7,16 @@ exports.HorizontalTile = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
9
9
|
require("./HorizontalTile.scss");
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
11
|
+
const HorizontalTile = (props) => {
|
|
12
|
+
const { title, titleTooltip, subText, subtextToolTip, actionGroup, selected, className, onClickTitle, ...rest } = props;
|
|
13
|
+
return (react_1.default.createElement("div", { className: classnames_1.default("rcw-horizontal-tile-container", { "rcw-horizontal-tile-selected": selected }, className), onClick: rest.onClick, "data-testid": "horizontal-tile" },
|
|
14
|
+
react_1.default.createElement("div", { className: "rcw-body-container" },
|
|
15
|
+
react_1.default.createElement("div", { className: "rcw-body" },
|
|
16
|
+
react_1.default.createElement(itwinui_react_1.Text, { className: classnames_1.default("rcw-body-text", { "iui-anchor": !!onClickTitle }), onClick: onClickTitle, variant: "body", title: titleTooltip }, title),
|
|
17
|
+
subText &&
|
|
18
|
+
react_1.default.createElement(itwinui_react_1.Text, { className: "rcw-body-text", isMuted: true, title: subtextToolTip, variant: "small" }, subText))),
|
|
19
|
+
react_1.default.createElement("div", { className: "rcw-action-button", "data-testid": "tile-action-button" }, actionGroup)));
|
|
16
20
|
};
|
|
17
21
|
exports.HorizontalTile = HorizontalTile;
|
|
18
22
|
//# sourceMappingURL=HorizontalTile.js.map
|