@itwin/reports-config-widget-react 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +41 -0
- package/CHANGELOG.md +25 -2
- package/coverage/clover.xml +867 -0
- package/coverage/coverage-final.json +33 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +206 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +193 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/test/index.html +116 -0
- package/coverage/lcov-report/src/test/test-utils.tsx.html +379 -0
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +265 -0
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +247 -0
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +589 -0
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +664 -0
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +112 -0
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +367 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +187 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +145 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +139 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +151 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +190 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +176 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +295 -0
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +289 -0
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +262 -0
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +472 -0
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +472 -0
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +1063 -0
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +754 -0
- package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +373 -0
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +301 -0
- package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +166 -0
- package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +274 -0
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +286 -0
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +337 -0
- package/coverage/lcov-report/src/widget/components/index.html +416 -0
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +565 -0
- package/coverage/lcov-report/src/widget/context/BulkExtractorContext.tsx.html +163 -0
- package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +202 -0
- package/coverage/lcov-report/src/widget/context/index.html +131 -0
- package/coverage/lcov-report/src/widget/hooks/index.html +116 -0
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +295 -0
- package/coverage/lcov-report/src/widget/index.html +116 -0
- package/coverage/lcov.info +1609 -0
- package/jest.config.js +1 -0
- package/lib/cjs/ReportsConfigWidget.js +1 -1
- package/lib/cjs/ReportsConfigWidget.js.map +1 -1
- package/lib/cjs/reports-config-widget-react.js +5 -1
- package/lib/cjs/reports-config-widget-react.js.map +1 -1
- package/lib/cjs/test/AddMappingModal.test.js +20 -70
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
- package/lib/cjs/test/BulkExtractor.test.js +5 -1
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
- package/lib/cjs/test/DeleteModal.test.js +2 -2
- package/lib/cjs/test/DeleteModal.test.js.map +1 -1
- package/lib/cjs/test/ReportAction.test.js +7 -7
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +31 -81
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/cjs/test/ReportMappings.test.js +38 -88
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +68 -66
- package/lib/cjs/test/Reports.test.js.map +1 -1
- package/lib/cjs/test/WidgetHeader.test.js +9 -3
- package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
- package/lib/cjs/test/test-utils.d.ts +30 -0
- package/lib/cjs/test/test-utils.d.ts.map +1 -1
- package/lib/cjs/test/test-utils.js +66 -7
- package/lib/cjs/test/test-utils.js.map +1 -1
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +3 -3
- package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
- package/lib/cjs/widget/ReportsConfigUiProvider.js +10 -8
- package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts +2 -2
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +5 -1
- package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.scss +2 -3
- package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +27 -28
- package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.scss +1 -2
- package/lib/cjs/widget/components/BulkExtractor.js +2 -2
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/Constants.d.ts +1 -0
- package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
- package/lib/cjs/widget/components/Constants.js +2 -1
- package/lib/cjs/widget/components/Constants.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +8 -4
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.scss +2 -3
- package/lib/cjs/widget/components/ExtractionStatus.js +7 -3
- package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStatus.scss +6 -7
- package/lib/cjs/widget/components/HorizontalTile.js +2 -2
- package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.scss +10 -16
- package/lib/cjs/widget/components/LocalizedTablePaginator.js +7 -3
- package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +19 -17
- package/lib/cjs/widget/components/ReportAction.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.scss +1 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.js +14 -12
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +22 -18
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +28 -27
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +9 -10
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +26 -22
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/Reports.scss +15 -15
- package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportsConfigContext.js +29 -32
- package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +9 -6
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.scss +1 -3
- package/lib/cjs/widget/components/ReportsRouter.js +1 -2
- package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/cjs/widget/components/SearchBar.js +9 -5
- package/lib/cjs/widget/components/SearchBar.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.scss +0 -1
- package/lib/cjs/widget/components/SelectIModel.js +11 -7
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.scss +2 -3
- package/lib/cjs/widget/components/utils.d.ts.map +1 -1
- package/lib/cjs/widget/components/utils.js +1 -1
- package/lib/cjs/widget/components/utils.js.map +1 -1
- package/lib/cjs/widget/components/utils.scss +16 -8
- package/lib/cjs/widget/context/BulkExtractorContext.js +6 -2
- package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
- package/lib/cjs/widget/context/ReportsConfigApiContext.js +6 -2
- package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
- package/lib/cjs/widget/hooks/useValidator.js +1 -1
- package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
- package/lib/esm/ReportsConfigWidget.js +1 -1
- package/lib/esm/ReportsConfigWidget.js.map +1 -1
- package/lib/esm/test/AddMappingModal.test.js +2 -56
- package/lib/esm/test/AddMappingModal.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +3 -57
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/esm/test/ReportMappings.test.js +8 -62
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +32 -53
- package/lib/esm/test/Reports.test.js.map +1 -1
- package/lib/esm/test/WidgetHeader.test.js +8 -2
- package/lib/esm/test/WidgetHeader.test.js.map +1 -1
- package/lib/esm/test/test-utils.d.ts +30 -0
- package/lib/esm/test/test-utils.d.ts.map +1 -1
- package/lib/esm/test/test-utils.js +59 -4
- package/lib/esm/test/test-utils.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/ReportsConfigUiProvider.d.ts +3 -3
- package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
- package/lib/esm/widget/ReportsConfigUiProvider.js +2 -4
- package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts +2 -2
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/esm/widget/components/ActionPanel.js.map +1 -1
- package/lib/esm/widget/components/ActionPanel.scss +2 -3
- package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +10 -15
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.scss +1 -2
- package/lib/esm/widget/components/Constants.d.ts +1 -0
- package/lib/esm/widget/components/Constants.d.ts.map +1 -1
- package/lib/esm/widget/components/Constants.js +1 -0
- package/lib/esm/widget/components/Constants.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +2 -2
- package/lib/esm/widget/components/DeleteModal.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.scss +2 -3
- package/lib/esm/widget/components/ExtractionStatus.scss +6 -7
- package/lib/esm/widget/components/HorizontalTile.scss +10 -16
- package/lib/esm/widget/components/ReportAction.js +7 -9
- package/lib/esm/widget/components/ReportAction.js.map +1 -1
- package/lib/esm/widget/components/ReportAction.scss +1 -2
- package/lib/esm/widget/components/ReportHorizontalTile.js +4 -6
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +11 -11
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +7 -10
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +9 -10
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +9 -9
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/Reports.scss +15 -15
- package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportsConfigContext.js +21 -28
- package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +1 -2
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.scss +1 -3
- package/lib/esm/widget/components/ReportsRouter.js +1 -2
- package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/esm/widget/components/SearchBar.js +2 -2
- package/lib/esm/widget/components/SearchBar.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.scss +0 -1
- package/lib/esm/widget/components/SelectIModel.js +1 -1
- package/lib/esm/widget/components/SelectIModel.js.map +1 -1
- package/lib/esm/widget/components/SelectIModel.scss +2 -3
- package/lib/esm/widget/components/utils.d.ts.map +1 -1
- package/lib/esm/widget/components/utils.js +2 -2
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/components/utils.scss +16 -8
- package/lib/public/locales/en/ReportsConfigWidget.json +4 -0
- package/package.json +56 -55
- package/public/locales/en/ReportsConfigWidget.json +4 -0
- package/src/test/AddMappingModal.test.tsx +7 -57
- package/src/test/ReportMappingHorizontalTile.test.tsx +6 -58
- package/src/test/ReportMappings.test.tsx +7 -58
- package/src/test/Reports.test.tsx +32 -110
- package/src/test/WidgetHeader.test.tsx +9 -2
- package/src/test/test-utils.tsx +62 -1
- package/src/widget/ReportsConfigUiProvider.tsx +7 -14
- package/src/widget/components/ActionPanel.scss +2 -3
- package/src/widget/components/ActionPanel.tsx +1 -1
- package/src/widget/components/AddMappingsModal.scss +1 -2
- package/src/widget/components/AddMappingsModal.tsx +16 -21
- package/src/widget/components/Constants.ts +2 -0
- package/src/widget/components/DeleteModal.scss +2 -3
- package/src/widget/components/DeleteModal.tsx +3 -3
- package/src/widget/components/ExtractionStatus.scss +6 -7
- package/src/widget/components/HorizontalTile.scss +10 -16
- package/src/widget/components/ReportAction.scss +1 -2
- package/src/widget/components/ReportAction.tsx +3 -3
- package/src/widget/components/ReportHorizontalTile.tsx +1 -1
- package/src/widget/components/ReportMappingHorizontalTile.tsx +28 -27
- package/src/widget/components/ReportMappings.scss +9 -10
- package/src/widget/components/ReportMappings.tsx +2 -4
- package/src/widget/components/Reports.scss +15 -15
- package/src/widget/components/Reports.tsx +25 -22
- package/src/widget/components/ReportsConfigContext.tsx +3 -2
- package/src/widget/components/ReportsContainer.scss +1 -3
- package/src/widget/components/SearchBar.scss +0 -1
- package/src/widget/components/SearchBar.tsx +6 -1
- package/src/widget/components/SelectIModel.scss +2 -3
- package/src/widget/components/SelectIModel.tsx +1 -1
- package/src/widget/components/utils.scss +16 -8
- package/src/widget/components/utils.tsx +7 -6
- package/.rush/temp/operation/rebuild/all.log +0 -9
- package/.rush/temp/operation/rebuild/state.json +0 -3
- package/.rush/temp/package-deps_rebuild.json +0 -68
- package/.rush/temp/shrinkwrap-deps.json +0 -931
- package/reports-config-widget-react.build.error.log +0 -1
- package/reports-config-widget-react.build.log +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { StagePanelLocation, StagePanelSection } from "@itwin/appui-
|
|
1
|
+
import type { UiItemsProvider, Widget } from "@itwin/appui-react";
|
|
2
|
+
import { StagePanelLocation, StagePanelSection } from "@itwin/appui-react";
|
|
3
3
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
4
4
|
export declare const REPORTS_CONFIG_BASE_URL = "https://api.bentley.com";
|
|
5
5
|
export declare class ReportsConfigProvider implements UiItemsProvider {
|
|
@@ -7,6 +7,6 @@ export declare class ReportsConfigProvider implements UiItemsProvider {
|
|
|
7
7
|
private readonly _getAccessToken?;
|
|
8
8
|
private readonly _baseUrl;
|
|
9
9
|
constructor(getAccessToken?: () => Promise<AccessToken>, baseUrl?: string);
|
|
10
|
-
provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<
|
|
10
|
+
provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<Widget>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=ReportsConfigUiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsConfigUiProvider.d.ts","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"ReportsConfigUiProvider.d.ts","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EACP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMvD,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,SAAgB,EAAE,2BAA2B;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGhC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EAC3C,OAAO,GAAE,MAAgC;IAMpC,cAAc,CACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,aAAa,CAAC,MAAM,CAAC;CAoBzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StagePanelLocation, StagePanelSection, StageUsage, } from "@itwin/appui-
|
|
1
|
+
import { StagePanelLocation, StagePanelSection, StageUsage, } from "@itwin/appui-react";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { ReportsConfigWidget } from "../ReportsConfigWidget";
|
|
4
4
|
import ReportsContainer from "./components/ReportsContainer";
|
|
@@ -17,9 +17,7 @@ export class ReportsConfigProvider {
|
|
|
17
17
|
const ReportsWidget = {
|
|
18
18
|
id: "reports-config-widget",
|
|
19
19
|
label: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportsConfig"),
|
|
20
|
-
|
|
21
|
-
return (React.createElement(ReportsContainer, { getAccessToken: this._getAccessToken, baseUrl: this._baseUrl }));
|
|
22
|
-
},
|
|
20
|
+
content: React.createElement(ReportsContainer, { getAccessToken: this._getAccessToken, baseUrl: this._baseUrl }),
|
|
23
21
|
};
|
|
24
22
|
widgets.push(ReportsWidget);
|
|
25
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsConfigUiProvider.js","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,
|
|
1
|
+
{"version":3,"file":"ReportsConfigUiProvider.js","sourceRoot":"","sources":["../../../src/widget/ReportsConfigUiProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE,MAAM,OAAO,qBAAqB;IAKhC,YACE,cAA2C,EAC3C,UAAkB,uBAAuB;QAN3B,OAAE,GAAG,uBAAuB,CAAC;QAQ3C,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAEM,cAAc,CACnB,QAAgB,EAChB,UAAkB,EAClB,QAA4B,EAC5B,OAA2B;QAE3B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IACE,QAAQ,KAAK,kBAAkB,CAAC,IAAI;YACpC,OAAO,KAAK,iBAAiB,CAAC,KAAK;YACnC,UAAU,KAAK,UAAU,CAAC,OAAO,EACjC;YACA,MAAM,aAAa,GAAW;gBAC5B,EAAE,EAAE,uBAAuB;gBAC3B,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,mCAAmC,CACpC;gBACD,OAAO,EAAE,oBAAC,gBAAgB,IAAC,cAAc,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,GAAI;aAC5F,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC7B;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport type {\n UiItemsProvider,\n Widget,\n} from \"@itwin/appui-react\";\nimport {\n StagePanelLocation,\n StagePanelSection,\n StageUsage,\n} from \"@itwin/appui-react\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\n\nimport * as React from \"react\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport ReportsContainer from \"./components/ReportsContainer\";\n\nexport const REPORTS_CONFIG_BASE_URL = \"https://api.bentley.com\";\n\nexport class ReportsConfigProvider implements UiItemsProvider {\n public readonly id = \"ReportsConfigProvider\";\n private readonly _getAccessToken?: () => Promise<AccessToken>;\n private readonly _baseUrl: string;\n\n constructor(\n getAccessToken?: () => Promise<AccessToken>,\n baseUrl: string = REPORTS_CONFIG_BASE_URL\n ) {\n this._getAccessToken = getAccessToken;\n this._baseUrl = baseUrl;\n }\n\n public provideWidgets(\n _stageId: string,\n stageUsage: string,\n location: StagePanelLocation,\n section?: StagePanelSection\n ): ReadonlyArray<Widget> {\n const widgets: Widget[] = [];\n if (\n location === StagePanelLocation.Left &&\n section === StagePanelSection.Start &&\n stageUsage === StageUsage.General\n ) {\n const ReportsWidget: Widget = {\n id: \"reports-config-widget\",\n label: ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:ReportsConfig\"\n ),\n content: <ReportsContainer getAccessToken={this._getAccessToken} baseUrl={this._baseUrl} />,\n };\n\n widgets.push(ReportsWidget);\n }\n\n return widgets;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
import "./ActionPanel.scss";
|
|
3
3
|
export interface ActionPanelProps {
|
|
4
4
|
actionLabel: string;
|
|
@@ -8,6 +8,6 @@ export interface ActionPanelProps {
|
|
|
8
8
|
isSavingDisabled?: boolean;
|
|
9
9
|
isLoading?: boolean;
|
|
10
10
|
}
|
|
11
|
-
declare const ActionPanel: ({ actionLabel, onAction, onCancel, isCancelDisabled, isSavingDisabled, isLoading, }: ActionPanelProps) =>
|
|
11
|
+
declare const ActionPanel: ({ actionLabel, onAction, onCancel, isCancelDisabled, isSavingDisabled, isLoading, }: ActionPanelProps) => React.ReactElement;
|
|
12
12
|
export default ActionPanel;
|
|
13
13
|
//# sourceMappingURL=ActionPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPanel.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ActionPanel.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,oBAAoB,CAAC;AAG5B,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,WAAW,wFAOd,gBAAgB,KAAG,MAAM,YAyB3B,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPanel.js","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAWzC,MAAM,WAAW,GAAG,CAAC,EACnB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,KAAK,GACA,
|
|
1
|
+
{"version":3,"file":"ActionPanel.js","sourceRoot":"","sources":["../../../../src/widget/components/ActionPanel.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAWzC,MAAM,WAAW,GAAG,CAAC,EACnB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,KAAK,EACxB,SAAS,GAAG,KAAK,GACA,EAAsB,EAAE;IACzC,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;QAC9B,SAAS,IAAI,oBAAC,cAAc,OAAG;QAChC,oBAAC,MAAM,IACL,QAAQ,EAAE,gBAAgB,IAAI,SAAS,EACvC,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,QAAQ,IAEhB,WAAW,CACL;QACR,QAAQ,IAAI,CACX,oBAAC,MAAM,IACL,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,gBAAgB,IAAI,SAAS,IAEtC,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,4BAA4B,CAC7B,CACM,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport { Button } from \"@itwin/itwinui-react\";\nimport * as React from \"react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport \"./ActionPanel.scss\";\nimport { LoadingSpinner } from \"./utils\";\n\nexport interface ActionPanelProps {\n actionLabel: string;\n onAction: () => Promise<void>;\n onCancel?: () => void;\n isCancelDisabled?: boolean;\n isSavingDisabled?: boolean;\n isLoading?: boolean;\n}\n\nconst ActionPanel = ({\n actionLabel,\n onAction,\n onCancel,\n isCancelDisabled = false,\n isSavingDisabled = false,\n isLoading = false,\n}: ActionPanelProps): React.ReactElement => {\n return (\n <div className=\"rcw-action-panel\">\n {isLoading && <LoadingSpinner />}\n <Button\n disabled={isSavingDisabled || isLoading}\n styleType=\"high-visibility\"\n onClick={onAction}\n >\n {actionLabel}\n </Button>\n {onCancel && (\n <Button\n styleType=\"default\"\n type=\"button\"\n onClick={onCancel}\n disabled={isCancelDisabled || isLoading}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Cancel\"\n )}\n </Button>\n )}\n </div>\n );\n};\n\nexport default ActionPanel;\n"]}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-action-panel {
|
|
8
7
|
display: flex;
|
|
9
8
|
justify-content: right;
|
|
10
|
-
padding:
|
|
11
|
-
gap:
|
|
9
|
+
padding: calc(var(--iui-size-s) * 2) var(--iui-size-m) var(--iui-size-s);
|
|
10
|
+
gap: var(--iui-size-xs);
|
|
12
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddMappingsModal.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEtE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AddMappingsModal.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AAEtE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMvD,oBAAY,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAwB3D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,oEAM1B,qBAAqB,gBA8GvB,CAAC"}
|
|
@@ -38,22 +38,17 @@ export const AddMappingsModal = ({ reportId, existingMappings, show, onClose, de
|
|
|
38
38
|
}, [getAccessToken, mappingsClient, selectedIModelId, setIsLoading]);
|
|
39
39
|
const mappingsColumns = useMemo(() => [
|
|
40
40
|
{
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Header: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:MappingName"),
|
|
46
|
-
accessor: "mappingName",
|
|
47
|
-
Filter: tableFilters.TextFilter(),
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: "description",
|
|
51
|
-
Header: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Description"),
|
|
52
|
-
accessor: "description",
|
|
53
|
-
Filter: tableFilters.TextFilter(),
|
|
54
|
-
},
|
|
55
|
-
],
|
|
41
|
+
id: "mappingName",
|
|
42
|
+
Header: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:MappingName"),
|
|
43
|
+
accessor: "mappingName",
|
|
44
|
+
Filter: tableFilters.TextFilter(),
|
|
56
45
|
},
|
|
46
|
+
{
|
|
47
|
+
id: "description",
|
|
48
|
+
Header: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Description"),
|
|
49
|
+
accessor: "description",
|
|
50
|
+
Filter: tableFilters.TextFilter(),
|
|
51
|
+
}
|
|
57
52
|
], []);
|
|
58
53
|
const onSave = async () => {
|
|
59
54
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddMappingsModal.js","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"AddMappingsModal.js","sourceRoot":"","sources":["../../../../src/widget/components/AddMappingsModal.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { Modal, Table, tableFilters } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { Mapping, MappingsClient } from \"@itwin/insights-client\";\nimport ActionPanel from \"./ActionPanel\";\nimport \"./AddMappingsModal.scss\";\nimport { LocalizedTablePaginator } from \"./LocalizedTablePaginator\";\nimport type { ReportMappingAndMapping } from \"./ReportMappings\";\nimport { useReportsConfigApi } from \"../context/ReportsConfigApiContext\";\nimport { SelectIModel } from \"./SelectIModel\";\nimport type { CreateTypeFromInterface } from \"./utils\";\nimport { handleError } from \"./utils\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport type { AccessToken } from \"@itwin/core-bentley\";\nimport type { Column } from \"react-table\";\n\nexport type MappingType = CreateTypeFromInterface<Mapping>;\n\nconst fetchMappings = async (\n setMappings: (mappings: Mapping[]) => void,\n iModelId: string,\n setIsLoading: (isLoading: boolean) => void,\n mappingsClient: MappingsClient,\n getAccessToken: () => Promise<AccessToken>\n) => {\n try {\n setIsLoading(true);\n const accessToken = await getAccessToken();\n const mappings = await mappingsClient.getMappings(\n accessToken,\n iModelId\n );\n setMappings(mappings);\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n};\n\nexport interface AddMappingsModalProps {\n reportId: string;\n existingMappings: ReportMappingAndMapping[];\n show: boolean;\n onClose: () => Promise<void>;\n defaultIModelId?: string;\n}\n\nexport const AddMappingsModal = ({\n reportId,\n existingMappings,\n show,\n onClose,\n defaultIModelId,\n}: AddMappingsModalProps) => {\n const [isLoading, setIsLoading] = useState<boolean>(false);\n const selectedMappings = useRef<Mapping[]>([]);\n const [selectedIModelId, setSelectediModelId] = useState<string | undefined>(defaultIModelId);\n const [mappings, setMappings] = useState<Mapping[]>([]);\n const { getAccessToken, mappingsClient, reportsClient } = useReportsConfigApi();\n\n useEffect(() => {\n if (selectedIModelId) {\n void fetchMappings(\n setMappings,\n selectedIModelId,\n setIsLoading,\n mappingsClient,\n getAccessToken\n );\n }\n }, [getAccessToken, mappingsClient, selectedIModelId, setIsLoading]);\n\n const mappingsColumns = useMemo(\n (): Column<CreateTypeFromInterface<Mapping>>[] => [\n {\n id: \"mappingName\",\n Header: ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:MappingName\"\n ),\n accessor: \"mappingName\",\n Filter: tableFilters.TextFilter(),\n },\n {\n id: \"description\",\n Header: ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Description\"\n ),\n accessor: \"description\",\n Filter: tableFilters.TextFilter(),\n }],\n []\n );\n\n const onSave = async () => {\n try {\n if (!selectedIModelId) return;\n setIsLoading(true);\n const accessToken = await getAccessToken();\n for (const mapping of selectedMappings.current) {\n await reportsClient.createReportMapping(accessToken, reportId, {\n imodelId: selectedIModelId,\n mappingId: mapping.id,\n });\n }\n\n await onClose();\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsLoading(false);\n }\n };\n\n const onSelect = useCallback((selectData: Mapping[] | undefined) => {\n if (selectData) selectedMappings.current = selectData;\n }, []);\n\n const tableData = useMemo(() => isLoading ? [] : mappings, [isLoading, mappings]);\n const isRowDisabled = useCallback((rowData: MappingType) =>\n existingMappings.some((v) => v.mappingId === rowData.id), [existingMappings]);\n\n return (\n <Modal\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:AddMappings\"\n )}\n isOpen={show}\n isDismissible={!isLoading}\n onClose={async () => {\n await onClose();\n }}\n style={{ display: \"flex\", flexDirection: \"column\", maxHeight: \"77vh\" }}\n >\n <div className=\"rcw-add-mappings-container\">\n <SelectIModel\n selectedIModelId={selectedIModelId}\n setSelectedIModelId={setSelectediModelId}\n />\n <Table<MappingType>\n data={tableData}\n columns={mappingsColumns}\n className=\"rcw-add-mappings-table\"\n emptyTableContent={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:NoMappingsAvailable\"\n )}\n isSortable\n isSelectable\n isLoading={isLoading}\n isRowDisabled={isRowDisabled}\n onSelect={onSelect}\n paginatorRenderer={LocalizedTablePaginator}\n />\n </div>\n {/* Add button permanently enabled as a workaround to the warning stating that the table and parent component are being rendered at the same time. */}\n <ActionPanel\n actionLabel={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Add\"\n )}\n onAction={onSave}\n isLoading={isLoading}\n />\n </Modal>\n );\n};\n"]}
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-add-mappings-container {
|
|
8
7
|
display: flex;
|
|
9
8
|
flex-direction: column;
|
|
10
|
-
gap:
|
|
9
|
+
gap: var(--iui-size-s);
|
|
11
10
|
width: 45vw;
|
|
12
11
|
min-width: 100%;
|
|
13
12
|
overflow: auto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,eAAO,MAAM,gBAAgB,oCAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nexport const STATUS_CHECK_INTERVAL = 5000;\nexport const ANIMATION_DELAY = \"5s\";\nexport const ANIMATION_DURATION = \"1s\";\n"]}
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../../src/widget/components/Constants.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAE,iCAAiC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nexport const STATUS_CHECK_INTERVAL = 5000;\nexport const ANIMATION_DELAY = \"5s\";\nexport const ANIMATION_DURATION = \"1s\";\n\nexport const IMODELS_BASE_URL= \"https://api.bentley.com/imodels\";\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Button,
|
|
5
|
+
import { Button, MiddleTextTruncation, Modal, ModalButtonBar, ModalContent, Text, } from "@itwin/itwinui-react";
|
|
6
6
|
import React, { useState } from "react";
|
|
7
7
|
import { ReportsConfigWidget } from "../../ReportsConfigWidget";
|
|
8
8
|
import "./DeleteModal.scss";
|
|
@@ -26,7 +26,7 @@ export const DeleteModal = ({ entityName, onClose, onDelete, refresh, }) => {
|
|
|
26
26
|
return (React.createElement(Modal, { title: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Confirm"), isOpen: !!entityName, isDismissible: !isDeleting, onClose: onClose },
|
|
27
27
|
React.createElement(ModalContent, null,
|
|
28
28
|
React.createElement("div", { className: "rcw-delete-modal-body-text" },
|
|
29
|
-
React.createElement(
|
|
29
|
+
React.createElement(Text, { variant: 'leading' }, ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:AreYouSureYouWantToDelete")),
|
|
30
30
|
React.createElement("strong", null, React.createElement(MiddleTextTruncation, { text: `${entityName}?` })))),
|
|
31
31
|
React.createElement(ModalButtonBar, null,
|
|
32
32
|
isDeleting && (React.createElement("div", { className: "rcw-loading-delete", "data-testid": "rcw-loading-delete" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteModal.js","sourceRoot":"","sources":["../../../../src/widget/components/DeleteModal.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EACL,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"DeleteModal.js","sourceRoot":"","sources":["../../../../src/widget/components/DeleteModal.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,KAAK,EACL,cAAc,EACd,YAAY,EACZ,IAAI,GACL,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAStD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,GACU,EAAE,EAAE;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,IAAI;YACF,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,QAAQ,EAAE,CAAC;YACjB,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;SACX;QAAC,OAAO,KAAU,EAAE;YACnB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B;gBAAS;YACR,aAAa,CAAC,KAAK,CAAC,CAAC;SACtB;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,KAAK,IACJ,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CACxD,6BAA6B,CAC9B,EACD,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,aAAa,EAAE,CAAC,UAAU,EAC1B,OAAO,EAAE,OAAO;QAEhB,oBAAC,YAAY;YACX,6BAAK,SAAS,EAAC,4BAA4B;gBACzC,oBAAC,IAAI,IAAC,OAAO,EAAC,SAAS,IACpB,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,+CAA+C,CAChD,CACI;gBACP,oCAAS,oBAAC,oBAAoB,IAAC,IAAI,EAAE,GAAG,UAAU,GAAG,GAAI,CAAU,CAC/D,CACO;QACf,oBAAC,cAAc;YACZ,UAAU,IAAI,CACb,6BAAK,SAAS,EAAC,oBAAoB,iBAAa,oBAAoB;gBAClE,oBAAC,cAAc,OAAG,CACd,CACP;YACD,oBAAC,MAAM,IACL,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,UAAU,IAEnB,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,4BAA4B,CAC7B,CACM;YACT,oBAAC,MAAM,IACL,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,IAEnB,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,4BAA4B,CAC7B,CACM,CACM,CACX,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport {\n Button,\n MiddleTextTruncation,\n Modal,\n ModalButtonBar,\n ModalContent,\n Text,\n} from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport \"./DeleteModal.scss\";\nimport { handleError, LoadingSpinner } from \"./utils\";\n\nexport interface DeleteModalProps {\n entityName?: string;\n onClose: () => void;\n onDelete: () => Promise<void>;\n refresh: () => Promise<void>;\n}\n\nexport const DeleteModal = ({\n entityName,\n onClose,\n onDelete,\n refresh,\n}: DeleteModalProps) => {\n const [isDeleting, setIsDeleting] = useState<boolean>(false);\n\n const deleteCallback = async () => {\n try {\n setIsDeleting(true);\n await onDelete();\n await refresh();\n onClose();\n } catch (error: any) {\n handleError(error.status);\n } finally {\n setIsDeleting(false);\n }\n };\n\n return (\n <Modal\n title={ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Confirm\"\n )}\n isOpen={!!entityName}\n isDismissible={!isDeleting}\n onClose={onClose}\n >\n <ModalContent>\n <div className=\"rcw-delete-modal-body-text\">\n <Text variant='leading'>\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:AreYouSureYouWantToDelete\"\n )}\n </Text>\n <strong>{<MiddleTextTruncation text={`${entityName}?`} />}</strong>\n </div>\n </ModalContent>\n <ModalButtonBar>\n {isDeleting && (\n <div className=\"rcw-loading-delete\" data-testid=\"rcw-loading-delete\">\n <LoadingSpinner />\n </div>\n )}\n <Button\n styleType=\"high-visibility\"\n onClick={deleteCallback}\n disabled={isDeleting}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Delete\"\n )}\n </Button>\n <Button\n styleType=\"default\"\n onClick={onClose}\n disabled={isDeleting}\n >\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:Cancel\"\n )}\n </Button>\n </ModalButtonBar>\n </Modal>\n );\n};\n\nexport default DeleteModal;\n"]}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-delete-modal-body-text {
|
|
8
7
|
display: flex;
|
|
9
|
-
gap:
|
|
8
|
+
gap: var(--iui-size-2xs);
|
|
10
9
|
flex-wrap: wrap;
|
|
11
10
|
|
|
12
11
|
>strong {
|
|
@@ -15,5 +14,5 @@
|
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
.rcw-loading-delete {
|
|
18
|
-
margin-right:
|
|
17
|
+
margin-right: var(--iui-size-xs);
|
|
19
18
|
}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-extraction-status {
|
|
8
7
|
align-items: center;
|
|
@@ -10,10 +9,10 @@
|
|
|
10
9
|
display: flex;
|
|
11
10
|
|
|
12
11
|
.rcw-status-icon {
|
|
13
|
-
width:
|
|
14
|
-
height:
|
|
12
|
+
width: var(--iui-size-m);
|
|
13
|
+
height: var(--iui-size-m);
|
|
15
14
|
align-items: center;
|
|
16
|
-
margin: auto
|
|
15
|
+
margin: auto calc(var(--iui-size-2xs) * 3);
|
|
17
16
|
display: flex;
|
|
18
17
|
}
|
|
19
18
|
}
|
|
@@ -22,11 +21,11 @@
|
|
|
22
21
|
align-items: center;
|
|
23
22
|
height: 38px;
|
|
24
23
|
display: flex;
|
|
25
|
-
margin: auto
|
|
24
|
+
margin: auto calc(var(--iui-size-2xs) * 3);
|
|
26
25
|
|
|
27
26
|
.rcw-status-icon {
|
|
28
|
-
width:
|
|
29
|
-
height:
|
|
27
|
+
width: var(--iui-size-m);
|
|
28
|
+
height: var(--iui-size-m);
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
|
|
@@ -2,18 +2,14 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
|
-
@import "~@itwin/itwinui-css/scss/icon/index";
|
|
7
|
-
|
|
8
5
|
.rcw-horizontal-tile {
|
|
9
6
|
&-container {
|
|
10
7
|
display: flex;
|
|
11
8
|
justify-content: space-between;
|
|
12
9
|
border-radius: 5px;
|
|
13
|
-
background-color: var(--iui-color-background-
|
|
14
|
-
height:
|
|
15
|
-
|
|
16
|
-
padding: 5.5px $iui-s;
|
|
10
|
+
background-color: var(--iui-color-background-backdrop);
|
|
11
|
+
min-height: calc(var(--iui-size-s) * 5);
|
|
12
|
+
padding: 5.5px var(--iui-size-xs);
|
|
17
13
|
|
|
18
14
|
.rcw-body-container {
|
|
19
15
|
display: flex;
|
|
@@ -38,18 +34,16 @@
|
|
|
38
34
|
align-self: center;
|
|
39
35
|
min-width: 36px;
|
|
40
36
|
flex-shrink: 0;
|
|
41
|
-
|
|
37
|
+
margin-right: var(--iui-size-2xs);
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
&-selected {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
linear-gradient(t(iui-color-background-1), t(iui-color-background-1));
|
|
53
|
-
}
|
|
42
|
+
border: 1px solid var(--iui-color-border-accent);
|
|
43
|
+
background: linear-gradient(
|
|
44
|
+
rgba(var(--iui-color-accent-hsl), var(--iui-opacity-6)),
|
|
45
|
+
rgba(var(--iui-color-accent-hsl), var(--iui-opacity-6))
|
|
46
|
+
),
|
|
47
|
+
linear-gradient(var(--iui-color-background), var(--iui-color-background));
|
|
54
48
|
}
|
|
55
49
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { Fieldset, LabeledInput,
|
|
5
|
+
import { Fieldset, LabeledInput, Text } from "@itwin/itwinui-react";
|
|
6
6
|
import React, { useState } from "react";
|
|
7
7
|
import ActionPanel from "./ActionPanel";
|
|
8
8
|
import useValidator, { NAME_REQUIREMENTS } from "../hooks/useValidator";
|
|
@@ -11,16 +11,14 @@ import "./ReportAction.scss";
|
|
|
11
11
|
import { useReportsConfigApi } from "../context/ReportsConfigApiContext";
|
|
12
12
|
import { ReportsConfigWidget } from "../../ReportsConfigWidget";
|
|
13
13
|
export const ReportAction = ({ report, onSaveSuccess, onClickCancel }) => {
|
|
14
|
-
var _a, _b;
|
|
15
14
|
const { iTwinId, getAccessToken, reportsClient } = useReportsConfigApi();
|
|
16
15
|
const [values, setValues] = useState({
|
|
17
|
-
name:
|
|
18
|
-
description:
|
|
16
|
+
name: report?.displayName ?? "",
|
|
17
|
+
description: report?.description ?? "",
|
|
19
18
|
});
|
|
20
19
|
const [validator, showValidationMessage] = useValidator();
|
|
21
20
|
const [isLoading, setIsLoading] = useState(false);
|
|
22
21
|
const onSave = async () => {
|
|
23
|
-
var _a, _b, _c;
|
|
24
22
|
try {
|
|
25
23
|
if (!validator.allValid()) {
|
|
26
24
|
showValidationMessage(true);
|
|
@@ -29,7 +27,7 @@ export const ReportAction = ({ report, onSaveSuccess, onClickCancel }) => {
|
|
|
29
27
|
setIsLoading(true);
|
|
30
28
|
const accessToken = await getAccessToken();
|
|
31
29
|
report
|
|
32
|
-
? await reportsClient.updateReport(accessToken,
|
|
30
|
+
? await reportsClient.updateReport(accessToken, report.id ?? "", {
|
|
33
31
|
displayName: values.name,
|
|
34
32
|
description: values.description,
|
|
35
33
|
})
|
|
@@ -40,8 +38,8 @@ export const ReportAction = ({ report, onSaveSuccess, onClickCancel }) => {
|
|
|
40
38
|
});
|
|
41
39
|
onSaveSuccess();
|
|
42
40
|
setValues({
|
|
43
|
-
name:
|
|
44
|
-
description:
|
|
41
|
+
name: report?.displayName ?? "",
|
|
42
|
+
description: report?.description ?? "",
|
|
45
43
|
});
|
|
46
44
|
}
|
|
47
45
|
catch (error) {
|
|
@@ -55,7 +53,7 @@ export const ReportAction = ({ report, onSaveSuccess, onClickCancel }) => {
|
|
|
55
53
|
return (React.createElement(React.Fragment, null,
|
|
56
54
|
React.createElement("div", { className: "rcw-details-form-container" },
|
|
57
55
|
React.createElement(Fieldset, { legend: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportDetails"), className: "rcw-details-form" },
|
|
58
|
-
React.createElement(
|
|
56
|
+
React.createElement(Text, { variant: 'small', className: "field-legend" }, ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:MandatoryFields")),
|
|
59
57
|
React.createElement(LabeledInput, { name: "name", label: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Name"), value: values.name, required: true, disabled: isLoading, onChange: (event) => {
|
|
60
58
|
handleInputChange(event, values, setValues);
|
|
61
59
|
validator.showMessageFor("name");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportAction.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportAction.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,
|
|
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, Text } from \"@itwin/itwinui-react\";\nimport React, { useState } from \"react\";\nimport ActionPanel from \"./ActionPanel\";\nimport useValidator, { NAME_REQUIREMENTS } from \"../hooks/useValidator\";\nimport {\n handleError,\n handleInputChange,\n} from \"./utils\";\nimport \"./ReportAction.scss\";\nimport type { Report } from \"@itwin/insights-client\";\nimport { useReportsConfigApi } from \"../context/ReportsConfigApiContext\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\n\nexport interface ReportActionProps {\n report?: Report;\n onSaveSuccess: () => void;\n onClickCancel?: () => void;\n}\n\nexport const ReportAction = ({ report, onSaveSuccess, onClickCancel }: ReportActionProps) => {\n const { iTwinId, getAccessToken, reportsClient } = useReportsConfigApi();\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 accessToken = await getAccessToken();\n report\n ? await reportsClient.updateReport(accessToken, report.id ?? \"\", {\n displayName: values.name,\n description: values.description,\n })\n : await reportsClient.createReport(accessToken, {\n displayName: values.name,\n description: values.description,\n projectId: iTwinId,\n });\n onSaveSuccess();\n setValues({\n name: report?.displayName ?? \"\",\n description: report?.description ?? \"\",\n });\n } catch (error: any) {\n handleError(error.status);\n setIsLoading(false);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\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 <Text variant='small' className=\"field-legend\">\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:MandatoryFields\"\n )}\n </Text>\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={onClickCancel}\n isSavingDisabled={!values.name}\n isLoading={isLoading}\n />\n </>\n );\n};\n\n"]}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/itwinui-css/scss/variables";
|
|
6
5
|
|
|
7
6
|
.rcw-details-form-container {
|
|
8
7
|
overflow-x: auto;
|
|
@@ -11,6 +10,6 @@
|
|
|
11
10
|
.rcw-details-form {
|
|
12
11
|
display: flex;
|
|
13
12
|
flex-direction: column;
|
|
14
|
-
gap:
|
|
13
|
+
gap: var(--iui-size-);
|
|
15
14
|
}
|
|
16
15
|
}
|
|
@@ -10,7 +10,6 @@ import { DropdownMenu, IconButton, MenuItem, } from "@itwin/itwinui-react";
|
|
|
10
10
|
import { SvgDelete, SvgEdit, SvgMore, } from "@itwin/itwinui-icons-react";
|
|
11
11
|
import { HorizontalTile } from "./HorizontalTile";
|
|
12
12
|
export const ReportHorizontalTile = (props) => {
|
|
13
|
-
var _a, _b;
|
|
14
13
|
const [jobStarted, setJobStarted] = useState(false);
|
|
15
14
|
const [extractionState, setExtractionState] = useState(ExtractionStates.None);
|
|
16
15
|
const interval = useRef();
|
|
@@ -42,20 +41,19 @@ export const ReportHorizontalTile = (props) => {
|
|
|
42
41
|
return () => window.clearInterval(interval.current);
|
|
43
42
|
}, [props.report.id, props.bulkExtractor, jobStarted]);
|
|
44
43
|
const onClickTile = (e) => {
|
|
45
|
-
|
|
46
|
-
if ((_a = e === null || e === void 0 ? void 0 : e.currentTarget.className) === null || _a === void 0 ? void 0 : _a.toString().split(" ").includes("rcw-horizontal-tile-container")) {
|
|
44
|
+
if (e?.currentTarget.className?.toString().split(" ").includes("rcw-horizontal-tile-container")) {
|
|
47
45
|
props.onSelectionChange(props.report.id, e.ctrlKey);
|
|
48
46
|
}
|
|
49
47
|
};
|
|
50
|
-
return (React.createElement(HorizontalTile, { title: props.report.displayName, subText:
|
|
48
|
+
return (React.createElement(HorizontalTile, { title: props.report.displayName, subText: props.report.description ?? "", subtextToolTip: props.report.description ?? "", titleTooltip: props.report.displayName, onClick: onClickTile, onClickTitle: () => props.onClickTitle?.(props.report), selected: props.selected, actionGroup: extractionState === ExtractionStates.None ? (React.createElement("div", { className: "rcw-action-button", "data-testid": "tile-action-button" },
|
|
51
49
|
React.createElement(DropdownMenu, { menuItems: (close) => [
|
|
52
|
-
props.onClickModify ? React.createElement(MenuItem, { key: 0, onClick: () =>
|
|
50
|
+
props.onClickModify ? React.createElement(MenuItem, { key: 0, onClick: () => props.onClickModify?.(props.report), icon: React.createElement(SvgEdit, null) }, ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Modify")) : [],
|
|
53
51
|
React.createElement(MenuItem, { key: 1, onClick: () => {
|
|
54
52
|
props.onClickDelete();
|
|
55
53
|
close();
|
|
56
54
|
}, icon: React.createElement(SvgDelete, null) }, ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:Remove")),
|
|
57
55
|
].flat() },
|
|
58
|
-
React.createElement(IconButton, { styleType: "borderless" },
|
|
56
|
+
React.createElement(IconButton, { styleType: "borderless", title: ReportsConfigWidget.localization.getLocalizedString("ReportsConfigWidget:ReportOptions") },
|
|
59
57
|
React.createElement(SvgMore, null))))) : (React.createElement(ExtractionStatus, { state: extractionState, clearExtractionState: () => {
|
|
60
58
|
setExtractionState(ExtractionStates.None);
|
|
61
59
|
} })) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportHorizontalTile.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportHorizontalTile.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,OAAO,EACP,OAAO,GACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAalD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAE,EAAE
|
|
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 React, { useEffect, useRef, useState } 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\";\n\nexport interface ReportHorizontalTileProps {\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?: (report: Report) => void;\n onClickTitle?: (report: Report) => 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?.(props.report)}\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 props.onClickModify ? <MenuItem\n key={0}\n onClick={() => props.onClickModify?.(props.report)}\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 ].flat()}\n >\n <IconButton styleType=\"borderless\" title={ReportsConfigWidget.localization.getLocalizedString(\"ReportsConfigWidget:ReportOptions\")}>\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"]}
|