@itwin/one-click-lca-react 0.4.0 → 0.6.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/lib/cjs/components/ExportModal.d.ts +4 -0
- package/lib/cjs/components/ExportModal.js +26 -23
- package/lib/cjs/components/ExportModal.js.map +1 -1
- package/lib/cjs/components/OneClickLCA.d.ts +2 -1
- package/lib/cjs/components/OneClickLCA.js +38 -10
- package/lib/cjs/components/OneClickLCA.js.map +1 -1
- package/lib/cjs/components/OneClickLCAProps.d.ts +24 -0
- package/lib/cjs/components/OneClickLCAProps.js +7 -0
- package/lib/cjs/components/OneClickLCAProps.js.map +1 -0
- package/lib/cjs/components/Reports.d.ts +4 -2
- package/lib/cjs/components/Reports.js +18 -11
- package/lib/cjs/components/Reports.js.map +1 -1
- package/lib/cjs/components/api/OCLCAApiHelper.d.ts +9 -0
- package/lib/cjs/components/api/OCLCAApiHelper.js +25 -0
- package/lib/cjs/components/api/OCLCAApiHelper.js.map +1 -0
- package/lib/cjs/components/context/OCLCAJobsClientContext.d.ts +15 -0
- package/lib/cjs/components/context/OCLCAJobsClientContext.js +26 -0
- package/lib/cjs/components/context/OCLCAJobsClientContext.js.map +1 -0
- package/lib/cjs/components/context/ReportsClientContext.d.ts +15 -0
- package/lib/cjs/components/context/ReportsClientContext.js +28 -0
- package/lib/cjs/components/context/ReportsClientContext.js.map +1 -0
- package/lib/cjs/components/utils.d.ts +1 -1
- package/lib/cjs/components/utils.js +4 -4
- package/lib/cjs/components/utils.js.map +1 -1
- package/lib/cjs/one-click-lca-widget.d.ts +2 -0
- package/lib/cjs/one-click-lca-widget.js +9 -4
- package/lib/cjs/one-click-lca-widget.js.map +1 -1
- package/lib/cjs/test/ExportModal.test.js +3 -3
- package/lib/cjs/test/ExportModal.test.js.map +1 -1
- package/lib/cjs/test/WidgetHeader.test.js +3 -3
- package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
- package/lib/cjs/widgets/OneClickLCAWidget.d.ts +3 -0
- package/lib/cjs/widgets/OneClickLCAWidget.js +4 -5
- package/lib/cjs/widgets/OneClickLCAWidget.js.map +1 -1
- package/lib/esm/components/ExportModal.d.ts +4 -0
- package/lib/esm/components/ExportModal.js +25 -26
- package/lib/esm/components/ExportModal.js.map +1 -1
- package/lib/esm/components/OneClickLCA.d.ts +2 -1
- package/lib/esm/components/OneClickLCA.js +16 -8
- package/lib/esm/components/OneClickLCA.js.map +1 -1
- package/lib/esm/components/OneClickLCAProps.d.ts +24 -0
- package/lib/esm/components/OneClickLCAProps.js +6 -0
- package/lib/esm/components/OneClickLCAProps.js.map +1 -0
- package/lib/esm/components/Reports.d.ts +4 -2
- package/lib/esm/components/Reports.js +12 -11
- package/lib/esm/components/Reports.js.map +1 -1
- package/lib/esm/components/api/OCLCAApiHelper.d.ts +9 -0
- package/lib/esm/components/api/OCLCAApiHelper.js +21 -0
- package/lib/esm/components/api/OCLCAApiHelper.js.map +1 -0
- package/lib/esm/components/context/OCLCAJobsClientContext.d.ts +15 -0
- package/lib/esm/components/context/OCLCAJobsClientContext.js +21 -0
- package/lib/esm/components/context/OCLCAJobsClientContext.js.map +1 -0
- package/lib/esm/components/context/ReportsClientContext.d.ts +15 -0
- package/lib/esm/components/context/ReportsClientContext.js +23 -0
- package/lib/esm/components/context/ReportsClientContext.js.map +1 -0
- package/lib/esm/components/utils.d.ts +1 -1
- package/lib/esm/components/utils.js +4 -4
- package/lib/esm/components/utils.js.map +1 -1
- package/lib/esm/one-click-lca-widget.d.ts +2 -0
- package/lib/esm/one-click-lca-widget.js +4 -3
- package/lib/esm/one-click-lca-widget.js.map +1 -1
- package/lib/esm/test/ExportModal.test.js +3 -3
- package/lib/esm/test/ExportModal.test.js.map +1 -1
- package/lib/esm/test/WidgetHeader.test.js +3 -3
- package/lib/esm/test/WidgetHeader.test.js.map +1 -1
- package/lib/esm/widgets/OneClickLCAWidget.d.ts +3 -0
- package/lib/esm/widgets/OneClickLCAWidget.js +5 -6
- package/lib/esm/widgets/OneClickLCAWidget.js.map +1 -1
- package/package.json +29 -24
|
@@ -1,19 +1,22 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
import React, { useEffect, useMemo, useState } from "react";
|
|
6
6
|
import { SearchBox } from "@itwin/core-react";
|
|
7
7
|
import { IModelApp } from "@itwin/core-frontend";
|
|
8
8
|
import { useActiveIModelConnection } from "@itwin/appui-react";
|
|
9
9
|
import { Button, Table, toaster } from "@itwin/itwinui-react";
|
|
10
|
-
import { ReportsClient } from "@itwin/insights-client";
|
|
11
10
|
import { WidgetHeader } from "./utils";
|
|
12
11
|
import ExportModal from "./ExportModal";
|
|
13
12
|
import "./Reports.scss";
|
|
14
|
-
|
|
13
|
+
import { useReportsClient } from "./context/ReportsClientContext";
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export const Reports = () => {
|
|
15
18
|
const projectId = useActiveIModelConnection()?.iTwinId;
|
|
16
|
-
const
|
|
19
|
+
const reportsClient = useReportsClient();
|
|
17
20
|
const [isLoading, setIsLoading] = useState(true);
|
|
18
21
|
const [reports, setReports] = useState([]);
|
|
19
22
|
const [buttonIsDisabled, disableButton] = useState(true);
|
|
@@ -39,8 +42,7 @@ const Reports = () => {
|
|
|
39
42
|
], []);
|
|
40
43
|
const onSearchBoxValueChanged = async (value) => {
|
|
41
44
|
disableButton(true);
|
|
42
|
-
const filterReports = reports.filter((x) => x.displayName &&
|
|
43
|
-
x.displayName.toLowerCase().indexOf(value.toLowerCase()) > -1);
|
|
45
|
+
const filterReports = reports.filter((x) => x.displayName && x.displayName.toLowerCase().indexOf(value.toLowerCase()) > -1);
|
|
44
46
|
setFilteredReports(filterReports);
|
|
45
47
|
};
|
|
46
48
|
const tableStateSingleSelectReducer = (newState, action) => {
|
|
@@ -70,7 +72,7 @@ const Reports = () => {
|
|
|
70
72
|
IModelApp.authorizationClient
|
|
71
73
|
.getAccessToken()
|
|
72
74
|
.then((token) => {
|
|
73
|
-
|
|
75
|
+
reportsClient
|
|
74
76
|
.getReports(token, projectId)
|
|
75
77
|
.then((data) => {
|
|
76
78
|
if (data) {
|
|
@@ -92,7 +94,7 @@ const Reports = () => {
|
|
|
92
94
|
/* eslint-disable no-console */
|
|
93
95
|
console.error(err);
|
|
94
96
|
});
|
|
95
|
-
}, [projectId,
|
|
97
|
+
}, [projectId, reportsClient]);
|
|
96
98
|
return (React.createElement(React.Fragment, null,
|
|
97
99
|
React.createElement(WidgetHeader, { title: "Reports" }),
|
|
98
100
|
React.createElement("div", { className: "oclca-reports-container" },
|
|
@@ -103,5 +105,4 @@ const Reports = () => {
|
|
|
103
105
|
React.createElement(Button, { onClick: () => openModal(true), styleType: "cta", disabled: buttonIsDisabled, className: "oclca-button-center" }, "One Click LCA Export"),
|
|
104
106
|
React.createElement(ExportModal, { isOpen: modalIsOpen, close: () => openModal(false), reportId: selectedReport?.id })));
|
|
105
107
|
};
|
|
106
|
-
export default Reports;
|
|
107
108
|
//# sourceMappingURL=Reports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reports.js","sourceRoot":"","sources":["../../../src/components/Reports.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Reports.js","sourceRoot":"","sources":["../../../src/components/Reports.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, useMemo, useState } from \"react\";\nimport { SearchBox } from \"@itwin/core-react\";\nimport { IModelApp } from \"@itwin/core-frontend\";\nimport { useActiveIModelConnection } from \"@itwin/appui-react\";\nimport { Button, Table, toaster } from \"@itwin/itwinui-react\";\nimport type { Report } from \"@itwin/insights-client\";\nimport { WidgetHeader } from \"./utils\";\nimport ExportModal from \"./ExportModal\";\nimport \"./Reports.scss\";\nimport { useReportsClient } from \"./context/ReportsClientContext\";\n\ntype CreateTypeFromInterface<Interface> = {\n [Property in keyof Interface]: Interface[Property];\n};\n\ntype Reporting = CreateTypeFromInterface<Report>;\n\n/**\n * @internal\n */\nexport const Reports = () => {\n const projectId = useActiveIModelConnection()?.iTwinId as string;\n const reportsClient = useReportsClient();\n const [isLoading, setIsLoading] = useState<boolean>(true);\n const [reports, setReports] = useState<Report[]>([]);\n const [buttonIsDisabled, disableButton] = useState<boolean>(true);\n const [filteredReports, setFilteredReports] = useState<Report[]>(reports);\n const [selectedReport, setSelectedReport] = useState<Reporting>();\n\n const [modalIsOpen, openModal] = useState(false);\n\n const reportsColumns = useMemo(\n () => [\n {\n Header: \"Table\",\n columns: [\n {\n id: \"displayName\",\n Header: \"Name\",\n accessor: \"displayName\",\n },\n {\n id: \"description\",\n Header: \"Description\",\n accessor: \"description\",\n },\n ],\n },\n ],\n [],\n );\n\n const onSearchBoxValueChanged = async (value: string) => {\n disableButton(true);\n const filterReports = reports.filter((x) => x.displayName && x.displayName.toLowerCase().indexOf(value.toLowerCase()) > -1);\n setFilteredReports(filterReports);\n };\n\n const tableStateSingleSelectReducer = (newState: any, action: any): any => {\n switch (action.type) {\n case \"toggleRowSelected\": {\n return { ...newState, selectedRowIds: { [action.id]: action.value } };\n }\n default:\n break;\n }\n return newState;\n };\n\n const onReportRowClick = useMemo(\n () => (_: any, row: any) => {\n if (row.original === selectedReport) {\n disableButton(!buttonIsDisabled);\n row.toggleRowSelected();\n } else {\n disableButton(false);\n row.toggleRowSelected(true);\n }\n setSelectedReport(row.original);\n },\n [buttonIsDisabled, selectedReport],\n );\n\n useEffect(() => {\n if (!IModelApp.authorizationClient) throw new Error(\"AuthorizationClient is not defined. Most likely IModelApp.startup was not called yet.\");\n IModelApp.authorizationClient\n .getAccessToken()\n .then((token: string) => {\n reportsClient\n .getReports(token, projectId)\n .then((data) => {\n if (data) {\n const fetchedReports = data ?? [];\n setReports(fetchedReports);\n setFilteredReports(fetchedReports);\n setIsLoading(false);\n }\n })\n .catch((err) => {\n setIsLoading(false);\n toaster.negative(\"You are not authorized to get reports for this projects. Please contact project administrator.\");\n /* eslint-disable no-console */\n console.error(err);\n });\n })\n .catch((err) => {\n toaster.negative(\"You are not authorized to use this system.\");\n /* eslint-disable no-console */\n console.error(err);\n });\n }, [projectId, reportsClient]);\n\n return (\n <>\n <WidgetHeader title=\"Reports\" />\n <div className=\"oclca-reports-container\">\n <div className=\"oclca-searchbox-container\">\n <SearchBox onValueChanged={onSearchBoxValueChanged} placeholder={\"Search reports\"} />\n </div>\n <div className=\"oclca-scrollable-table\">\n <Table<Reporting>\n className=\"oclca-reports-table\"\n data={filteredReports}\n density=\"extra-condensed\"\n columns={reportsColumns}\n emptyTableContent=\"No reports available.\"\n isSortable\n onRowClick={onReportRowClick}\n stateReducer={tableStateSingleSelectReducer}\n isLoading={isLoading}\n selectRowOnClick={true}\n selectSubRows={false}\n />\n </div>\n </div>\n <Button onClick={() => openModal(true)} styleType=\"cta\" disabled={buttonIsDisabled} className=\"oclca-button-center\">\n One Click LCA Export\n </Button>\n <ExportModal isOpen={modalIsOpen} close={() => openModal(false)} reportId={selectedReport?.id} />\n </>\n );\n};\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OCLCALoginResponse } from "@itwin/insights-client";
|
|
2
|
+
import { OperationsBase } from "@itwin/insights-client";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare class OCLCAApiHelper extends OperationsBase {
|
|
7
|
+
getOCLCAAccessToken(username: string, apiPassword: string): Promise<OCLCALoginResponse | undefined>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=OCLCAApiHelper.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OperationsBase } from "@itwin/insights-client";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export class OCLCAApiHelper extends OperationsBase {
|
|
6
|
+
async getOCLCAAccessToken(username, apiPassword) {
|
|
7
|
+
if (username === undefined || apiPassword === undefined) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const requestOptions = {
|
|
11
|
+
method: "POST",
|
|
12
|
+
};
|
|
13
|
+
requestOptions.body = JSON.stringify({
|
|
14
|
+
username,
|
|
15
|
+
password: apiPassword,
|
|
16
|
+
});
|
|
17
|
+
const url = `https://oneclicklcaapp.com/app/api/login`;
|
|
18
|
+
return this.fetchJSON(url, requestOptions);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=OCLCAApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OCLCAApiHelper.js","sourceRoot":"","sources":["../../../../src/components/api/OCLCAApiHelper.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAc;IACzC,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,WAAmB;QACpE,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;YACvD,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,cAAc,GAAgB;YAClC,MAAM,EAAE,MAAM;SACf,CAAC;QACF,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACnC,QAAQ;YACR,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,0CAA0C,CAAC;QACvD,OAAO,IAAI,CAAC,SAAS,CAAqB,GAAG,EAAE,cAAc,CAAC,CAAC;IACjE,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 { OCLCALoginResponse} from \"@itwin/insights-client\";\nimport { OperationsBase } from \"@itwin/insights-client\";\n\n/**\n * @internal\n */\nexport class OCLCAApiHelper extends OperationsBase {\n public async getOCLCAAccessToken(username: string, apiPassword: string) {\n if (username === undefined || apiPassword === undefined) {\n return undefined;\n }\n const requestOptions: RequestInit = {\n method: \"POST\",\n };\n requestOptions.body = JSON.stringify({\n username,\n password: apiPassword,\n });\n const url = `https://oneclicklcaapp.com/app/api/login`;\n return this.fetchJSON<OCLCALoginResponse>(url, requestOptions);\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { IOCLCAJobsClient } from "@itwin/insights-client";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare const createDefaultOCLCAJobsClient: (carbonCalculationBasePath?: string | undefined) => IOCLCAJobsClient;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const OCLCAJobsClientContext: import("react").Context<IOCLCAJobsClient>;
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare const useOCLCAJobsClient: () => IOCLCAJobsClient;
|
|
15
|
+
//# sourceMappingURL=OCLCAJobsClientContext.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CARBON_CALCULATION_BASE_PATH, OCLCAJobsClient } from "@itwin/insights-client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const createDefaultOCLCAJobsClient = (carbonCalculationBasePath) => new OCLCAJobsClient(carbonCalculationBasePath ?? CARBON_CALCULATION_BASE_PATH);
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export const OCLCAJobsClientContext = createContext(createDefaultOCLCAJobsClient());
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export const useOCLCAJobsClient = () => {
|
|
15
|
+
const context = useContext(OCLCAJobsClientContext);
|
|
16
|
+
if (!context) {
|
|
17
|
+
throw new Error("useOCLCAJobsClient should be used within a OCLCAJobsClientContext provider");
|
|
18
|
+
}
|
|
19
|
+
return context;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=OCLCAJobsClientContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OCLCAJobsClientContext.js","sourceRoot":"","sources":["../../../../src/components/context/OCLCAJobsClientContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,yBAAkC,EAAoB,EAAE,CACnG,IAAI,eAAe,CAAC,yBAAyB,IAAI,4BAA4B,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CAAmB,4BAA4B,EAAE,CAAC,CAAC;AAEtG;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,OAAO,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;KAC/F;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { IOCLCAJobsClient } from \"@itwin/insights-client\";\nimport { CARBON_CALCULATION_BASE_PATH, OCLCAJobsClient } from \"@itwin/insights-client\";\nimport { createContext, useContext } from \"react\";\n\n/**\n * @internal\n */\nexport const createDefaultOCLCAJobsClient = (carbonCalculationBasePath?: string): IOCLCAJobsClient =>\n new OCLCAJobsClient(carbonCalculationBasePath ?? CARBON_CALCULATION_BASE_PATH);\n\n/**\n * @internal\n */\nexport const OCLCAJobsClientContext = createContext<IOCLCAJobsClient>(createDefaultOCLCAJobsClient());\n\n/**\n * @internal\n */\nexport const useOCLCAJobsClient = () => {\n const context = useContext(OCLCAJobsClientContext);\n if (!context) {\n throw new Error(\"useOCLCAJobsClient should be used within a OCLCAJobsClientContext provider\");\n }\n return context;\n};\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { IReportsClient } from "@itwin/insights-client";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export declare const createDefaultReportsClient: (reportingBasePath?: string | undefined) => IReportsClient;
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const ReportsClientContext: import("react").Context<IReportsClient>;
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare const useReportsClient: () => IReportsClient;
|
|
15
|
+
//# sourceMappingURL=ReportsClientContext.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export const createDefaultReportsClient = (reportingBasePath) => {
|
|
7
|
+
return new ReportsClient(reportingBasePath ?? REPORTING_BASE_PATH);
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export const ReportsClientContext = createContext(createDefaultReportsClient());
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export const useReportsClient = () => {
|
|
17
|
+
const context = useContext(ReportsClientContext);
|
|
18
|
+
if (!context) {
|
|
19
|
+
throw new Error("useReportsClient should be used within a ReportsClientContext provider");
|
|
20
|
+
}
|
|
21
|
+
return context;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=ReportsClientContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportsClientContext.js","sourceRoot":"","sources":["../../../../src/components/context/ReportsClientContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,iBAA0B,EAAkB,EAAE;IACvF,OAAO,IAAI,aAAa,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAiB,0BAA0B,EAAE,CAAC,CAAC;AAEhG;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,OAAO,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;KAC3F;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport type { IReportsClient } from \"@itwin/insights-client\";\nimport { REPORTING_BASE_PATH, ReportsClient } from \"@itwin/insights-client\";\nimport { createContext, useContext } from \"react\";\n\n/**\n * @internal\n */\nexport const createDefaultReportsClient = (reportingBasePath?: string): IReportsClient => {\n return new ReportsClient(reportingBasePath ?? REPORTING_BASE_PATH);\n};\n\n/**\n * @internal\n */\nexport const ReportsClientContext = createContext<IReportsClient>(createDefaultReportsClient());\n\n/**\n * @internal\n */\nexport const useReportsClient = () => {\n const context = useContext(ReportsClientContext);\n if (!context) {\n throw new Error(\"useReportsClient should be used within a ReportsClientContext provider\");\n }\n return context;\n};\n"]}
|
|
@@ -5,5 +5,5 @@ export interface WidgetHeaderProps {
|
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
returnFn?: () => Promise<void>;
|
|
7
7
|
}
|
|
8
|
-
export declare const WidgetHeader: ({ title, disabled, returnFn
|
|
8
|
+
export declare const WidgetHeader: ({ title, disabled, returnFn }: WidgetHeaderProps) => JSX.Element;
|
|
9
9
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
import { SvgChevronLeft } from "@itwin/itwinui-icons-react";
|
|
6
6
|
import { Text } from "@itwin/itwinui-react";
|
|
7
7
|
import "./utils.scss";
|
|
8
8
|
import React from "react";
|
|
9
|
-
export const WidgetHeader = ({ title, disabled = false, returnFn
|
|
9
|
+
export const WidgetHeader = ({ title, disabled = false, returnFn }) => {
|
|
10
10
|
return (React.createElement("div", { className: "oclca-widget-header-container" },
|
|
11
11
|
returnFn && (React.createElement("div", { className: disabled ? "oclca-chevron-disabled" : "oclca-chevron", onClick: disabled ? undefined : returnFn, onKeyUp: disabled ? undefined : returnFn },
|
|
12
12
|
React.createElement(SvgChevronLeft, null))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/utils.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/utils.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAqB,EAAE,EAAE;IACvF,OAAO,CACL,6BAAK,SAAS,EAAC,+BAA+B;QAC3C,QAAQ,IAAI,CACX,6BACE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe,EAChE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACxC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YAExC,oBAAC,cAAc,OAAG,CACd,CACP;QACD,oBAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,OAAO,EAAC,OAAO,IAC1C,KAAK,CACD,CACH,CACP,CAAC;AACJ,CAAC,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 { SvgChevronLeft } from \"@itwin/itwinui-icons-react\";\nimport { Text } from \"@itwin/itwinui-react\";\nimport \"./utils.scss\";\nimport React from \"react\";\n\nexport interface WidgetHeaderProps {\n title: string;\n disabled?: boolean;\n returnFn?: () => Promise<void>;\n}\n\nexport const WidgetHeader = ({ title, disabled = false, returnFn }: WidgetHeaderProps) => {\n return (\n <div className=\"oclca-widget-header-container\">\n {returnFn && (\n <div\n className={disabled ? \"oclca-chevron-disabled\" : \"oclca-chevron\"}\n onClick={disabled ? undefined : returnFn}\n onKeyUp={disabled ? undefined : returnFn}\n >\n <SvgChevronLeft />\n </div>\n )}\n <Text className=\"oclca-title\" variant=\"title\">\n {title}\n </Text>\n </div>\n );\n};\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
/** UI Provider for iTwin Viewer Applications */
|
|
6
6
|
export * from "./widgets/OneClickLCAWidget";
|
|
7
|
+
export * from "@itwin/insights-client";
|
|
7
8
|
//# sourceMappingURL=one-click-lca-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one-click-lca-widget.js","sourceRoot":"","sources":["../../src/one-click-lca-widget.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"one-click-lca-widget.js","sourceRoot":"","sources":["../../src/one-click-lca-widget.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,gDAAgD;AAChD,cAAc,6BAA6B,CAAC;AAE5C,cAAc,wBAAwB,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 *--------------------------------------------------------------------------------------------*/\n/** UI Provider for iTwin Viewer Applications */\nexport * from \"./widgets/OneClickLCAWidget\";\n\nexport * from \"@itwin/insights-client\";\n\nexport { OneClickLCAProps } from \"./components/OneClickLCAProps\";\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
import React from "react";
|
|
6
6
|
import "@testing-library/jest-dom";
|
|
7
7
|
import { render, screen } from "@testing-library/react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExportModal.test.js","sourceRoot":"","sources":["../../../src/test/ExportModal.test.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ExportModal.test.js","sourceRoot":"","sources":["../../../src/test/ExportModal.test.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AAEpD,QAAQ,CAAC,sBAAsB,EAAE;IAC/B,EAAE,CAAC,QAAQ,EAAE;QACX,MAAM,CAAC,oBAAC,WAAW,IAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAI,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport { render, screen } from \"@testing-library/react\";\nimport ExportModal from \"../components/ExportModal\";\n\ndescribe(\"Testing Export Modal\", function () {\n it(\"signin\", function () {\n render(<ExportModal isOpen={true} close={() => {}} reportId={undefined} />);\n expect(screen.getByLabelText(\"Email\")).toBeDefined();\n expect(screen.getByLabelText(\"Password\")).toBeDefined();\n });\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
|
-
*--------------------------------------------------------------------------------------------*/
|
|
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
5
|
import React from "react";
|
|
6
6
|
import "@testing-library/jest-dom";
|
|
7
7
|
import { fireEvent, render, screen } from "@testing-library/react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetHeader.test.js","sourceRoot":"","sources":["../../../src/test/WidgetHeader.test.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"WidgetHeader.test.js","sourceRoot":"","sources":["../../../src/test/WidgetHeader.test.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,QAAQ,CAAC,yBAAyB,EAAE;IAClC,EAAE,CAAC,4BAA4B,EAAE;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAC,OAAO,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;QACzB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,GAAI,CAAC,CAAC;QACvF,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE;QAClB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,GAAI,CAAC,CAAC;QACvG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,YAAY,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAE,YAAY,GAAI,CAAC,CAAC;QAErF,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAChE,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SAChC;QACD,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport { fireEvent, render, screen } from \"@testing-library/react\";\nimport { WidgetHeader } from \"../components/utils\";\n\ndescribe(\"Widget Header Component\", function () {\n it(\"should have hello as title\", function () {\n const { container } = render(<WidgetHeader title=\"hello\" />);\n expect(screen.getByText(\"hello\")).toBeDefined();\n expect(container.firstChild).toHaveClass(\"oclca-widget-header-container\");\n expect(container.firstChild?.firstChild).toHaveClass(\"oclca-title\");\n });\n\n it(\"with return function\", function () {\n const { container } = render(<WidgetHeader title=\"hello\" returnFn={async () => {}} />);\n expect(container.firstChild?.firstChild).toHaveClass(\"oclca-chevron\");\n expect(container.firstChild?.firstChild).not.toHaveClass(\"oclca-chevron-disabled\");\n });\n\n it(\"with disabled\", function () {\n const { container } = render(<WidgetHeader title=\"hello\" disabled={true} returnFn={async () => {}} />);\n expect(container.firstChild?.firstChild).not.toHaveClass(\"oclca-chevron\");\n expect(container.firstChild?.firstChild).toHaveClass(\"oclca-chevron-disabled\");\n });\n\n it(\"with mocked return function\", function () {\n const mockReturnFn = jest.fn();\n const { container } = render(<WidgetHeader title=\"hello\" returnFn={mockReturnFn} />);\n\n const toTestElement = container.querySelector(\"SvgChevronLeft\");\n if (toTestElement !== null) {\n fireEvent.click(toTestElement);\n }\n expect(mockReturnFn).toHaveBeenCalled;\n });\n});\n"]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { UiItemsProvider, Widget } from "@itwin/appui-react";
|
|
2
2
|
import { StagePanelLocation, StagePanelSection } from "@itwin/appui-react";
|
|
3
|
+
import type { OneClickLCAProps } from "../components/OneClickLCAProps";
|
|
3
4
|
export declare class OneClickLCAProvider implements UiItemsProvider {
|
|
5
|
+
private readonly _props?;
|
|
4
6
|
readonly id = "OneClickLCAProvider";
|
|
7
|
+
constructor(_props?: OneClickLCAProps | undefined);
|
|
5
8
|
provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<Widget>;
|
|
6
9
|
}
|
|
7
10
|
//# sourceMappingURL=OneClickLCAWidget.d.ts.map
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { StagePanelLocation, StagePanelSection, StageUsage
|
|
1
|
+
import { StagePanelLocation, StagePanelSection, StageUsage } from "@itwin/appui-react";
|
|
2
2
|
import OneClickLCA from "../components/OneClickLCA";
|
|
3
3
|
import React from "react";
|
|
4
4
|
export class OneClickLCAProvider {
|
|
5
|
-
constructor() {
|
|
5
|
+
constructor(_props) {
|
|
6
|
+
this._props = _props;
|
|
6
7
|
this.id = "OneClickLCAProvider";
|
|
7
8
|
}
|
|
8
9
|
provideWidgets(_stageId, stageUsage, location, section) {
|
|
9
10
|
const widgets = [];
|
|
10
|
-
if (location === StagePanelLocation.Left &&
|
|
11
|
-
section === StagePanelSection.Start &&
|
|
12
|
-
stageUsage === StageUsage.General) {
|
|
11
|
+
if (location === StagePanelLocation.Left && section === StagePanelSection.Start && stageUsage === StageUsage.General) {
|
|
13
12
|
const OneClickLCAWidget = {
|
|
14
13
|
id: "OneClickLCAWidget",
|
|
15
14
|
label: "One Click LCA",
|
|
16
|
-
content: React.createElement(OneClickLCA,
|
|
15
|
+
content: React.createElement(OneClickLCA, { ...this._props }),
|
|
17
16
|
};
|
|
18
17
|
widgets.push(OneClickLCAWidget);
|
|
19
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OneClickLCAWidget.js","sourceRoot":"","sources":["../../../src/widgets/OneClickLCAWidget.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OneClickLCAWidget.js","sourceRoot":"","sources":["../../../src/widgets/OneClickLCAWidget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,mBAAmB;IAG9B,YAA6B,MAAyB;QAAzB,WAAM,GAAN,MAAM,CAAmB;QAFtC,OAAE,GAAG,qBAAqB,CAAC;IAEc,CAAC;IAEnD,cAAc,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAA4B,EAAE,OAA2B;QACnH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,KAAK,kBAAkB,CAAC,IAAI,IAAI,OAAO,KAAK,iBAAiB,CAAC,KAAK,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE;YACpH,MAAM,iBAAiB,GAAW;gBAChC,EAAE,EAAE,mBAAmB;gBACvB,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,oBAAC,WAAW,OAAK,IAAI,CAAC,MAAM,GAAI;aAC1C,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACjC;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 { UiItemsProvider, Widget } from \"@itwin/appui-react\";\nimport { StagePanelLocation, StagePanelSection, StageUsage } from \"@itwin/appui-react\";\nimport OneClickLCA from \"../components/OneClickLCA\";\nimport React from \"react\";\nimport type { OneClickLCAProps } from \"../components/OneClickLCAProps\";\n\nexport class OneClickLCAProvider implements UiItemsProvider {\n public readonly id = \"OneClickLCAProvider\";\n\n constructor(private readonly _props?: OneClickLCAProps) {}\n\n public provideWidgets(_stageId: string, stageUsage: string, location: StagePanelLocation, section?: StagePanelSection): ReadonlyArray<Widget> {\n const widgets: Widget[] = [];\n if (location === StagePanelLocation.Left && section === StagePanelSection.Start && stageUsage === StageUsage.General) {\n const OneClickLCAWidget: Widget = {\n id: \"OneClickLCAWidget\",\n label: \"One Click LCA\",\n content: <OneClickLCA {...this._props} />,\n };\n\n widgets.push(OneClickLCAWidget);\n }\n\n return widgets;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/one-click-lca-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "An iTwin.js 3D Viewer Widget that interfaces with the iTwin Carbon Calculation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Bentley",
|
|
@@ -21,8 +21,24 @@
|
|
|
21
21
|
"main": "lib/cjs/one-click-lca-widget.js",
|
|
22
22
|
"module": "lib/esm/one-click-lca-widget.js",
|
|
23
23
|
"typings": "lib/cjs/one-click-lca-widget",
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "npm run -s dual-build && npm run -s copy:assets",
|
|
26
|
+
"build:cjs": "tsc 1>&2 --outDir lib/cjs",
|
|
27
|
+
"build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm",
|
|
28
|
+
"clean": "rimraf lib",
|
|
29
|
+
"copy:assets": "npm run -s copy:public && npm run -s copy:cjs && npm run -s copy:esm",
|
|
30
|
+
"copy:cjs": "cpx \"./src/**/*.scss\" ./lib/cjs",
|
|
31
|
+
"copy:esm": "cpx \"./src/**/*.scss\" ./lib/esm",
|
|
32
|
+
"copy:public": "cpx \"./public/**/*\" ./lib/public",
|
|
33
|
+
"dual-build": "npm run -s build:cjs && npm run -s build:esm",
|
|
34
|
+
"lint": "eslint -f visualstudio \"./src/**/*.{ts,tsx}\" 1>&2",
|
|
35
|
+
"lint:fix": "npm run lint -- --fix",
|
|
36
|
+
"rebuild": "npm run clean && npm run build",
|
|
37
|
+
"test": "jest",
|
|
38
|
+
"cover": "nyc npm test"
|
|
39
|
+
},
|
|
24
40
|
"dependencies": {
|
|
25
|
-
"@itwin/insights-client": "^0.
|
|
41
|
+
"@itwin/insights-client": "^0.10.2",
|
|
26
42
|
"@itwin/itwinui-icons-react": "^2.2.0",
|
|
27
43
|
"@itwin/itwinui-react": "^2.11.2"
|
|
28
44
|
},
|
|
@@ -41,6 +57,8 @@
|
|
|
41
57
|
"@itwin/core-orbitgt": "^4.0.0",
|
|
42
58
|
"@itwin/core-quantity": "^4.0.0",
|
|
43
59
|
"@itwin/core-react": "^4.0.0",
|
|
60
|
+
"@itwin/core-telemetry": "^4.0.0",
|
|
61
|
+
"@itwin/ecschema-metadata": "^4.0.0",
|
|
44
62
|
"@itwin/eslint-plugin": "^3.7.7",
|
|
45
63
|
"@itwin/imodel-components-react": "^4.0.0",
|
|
46
64
|
"@itwin/presentation-common": "^4.0.0",
|
|
@@ -60,8 +78,9 @@
|
|
|
60
78
|
"@typescript-eslint/parser": "^5.17.0",
|
|
61
79
|
"cpx2": "^3.0.0",
|
|
62
80
|
"eslint": "^7.32.0",
|
|
81
|
+
"eslint-config-prettier": "^9.1.0",
|
|
63
82
|
"eslint-plugin-node": "^11.1.0",
|
|
64
|
-
"eslint-plugin-react": "^7.
|
|
83
|
+
"eslint-plugin-react": "^7.33.2",
|
|
65
84
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
66
85
|
"jest": "^27.5.1",
|
|
67
86
|
"jest-cli": "^27.5.1",
|
|
@@ -72,7 +91,7 @@
|
|
|
72
91
|
"redux": "^4.1.0",
|
|
73
92
|
"rimraf": "^3.0.2",
|
|
74
93
|
"ts-jest": "^27.1.3",
|
|
75
|
-
"typescript": "~4.
|
|
94
|
+
"typescript": "~4.6.0"
|
|
76
95
|
},
|
|
77
96
|
"peerDependencies": {
|
|
78
97
|
"@itwin/appui-abstract": "^4.0.0",
|
|
@@ -94,27 +113,13 @@
|
|
|
94
113
|
"plugins": [
|
|
95
114
|
"@itwin"
|
|
96
115
|
],
|
|
97
|
-
"extends":
|
|
116
|
+
"extends": [
|
|
117
|
+
"plugin:@itwin/ui",
|
|
118
|
+
"prettier"
|
|
119
|
+
],
|
|
98
120
|
"rules": {
|
|
99
121
|
"no-duplicate-imports": "off",
|
|
100
122
|
"@typescript-eslint/consistent-type-imports": "error"
|
|
101
123
|
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
"build": "npm run -s dual-build && npm run -s copy:assets",
|
|
105
|
-
"build:cjs": "tsc 1>&2 --outDir lib/cjs",
|
|
106
|
-
"build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm",
|
|
107
|
-
"clean": "rimraf lib",
|
|
108
|
-
"copy:assets": "npm run -s copy:public && npm run -s copy:cjs && npm run -s copy:esm",
|
|
109
|
-
"copy:cjs": "cpx \"./src/**/*.scss\" ./lib/cjs",
|
|
110
|
-
"copy:esm": "cpx \"./src/**/*.scss\" ./lib/esm",
|
|
111
|
-
"copy:public": "cpx \"./public/**/*\" ./lib/public",
|
|
112
|
-
"dual-build": "npm run -s build:cjs && npm run -s build:esm",
|
|
113
|
-
"lint": "eslint -f visualstudio \"./src/**/*.{ts,tsx}\" 1>&2",
|
|
114
|
-
"lint:fix": "npm run lint -- --fix",
|
|
115
|
-
"rebuild": "npm run clean && npm run build",
|
|
116
|
-
"test": "jest",
|
|
117
|
-
"cover": "nyc npm test"
|
|
118
|
-
},
|
|
119
|
-
"readme": "# @itwin/one-click-lca-react\n\nCopyright © Bentley Systems, Incorporated. All rights reserved.\n\nThe One Click LCA widget is a UI component for iTwin Viewer applications that simplifies how users (and developers) interface with the [Carbon Calculation One Click LCA APIs](https://developer.bentley.com/apis/carbon-calculation/overview/).\nThe one-click-lca-react package provides a UiProvider class, `OneClickLCAProvider`, which can be passed into the `uiProviders` prop of the iTwin Viewer's `<Viewer />` component.\n\n## Getting Started\n\nThis is not a standalone UI and requires a parent iTwin Viewer application to work as intended.\nA guide on how to create a basic iTwin Viewer application can be found [here](https://www.itwinjs.org/learning/tutorials/develop-web-viewer).\nThis package provides a viewer _widget_. Documentation on how to add a widget to your application can be found [here](https://developer.bentley.com/tutorials/itwin-viewer-hello-world/#2-your-first-ui-widget).\n\n## Permissions and Scopes\n\nThe SPA client used by your iTwin viewer application must have allowed scopes `insights:read` and `insights:write`, found under the Reporting & Insights category.\nUsers must have the `imodels_read` and `insights_view` [permissions](https://developer.bentley.com/apis/carbon-calculation/operations/create-oneclicklca-job/#authorization) assigned at either the Project or iModel level. Additional instruction on how to create roles and assign permissions can be found in the [iTwin Platform Projects API documentation](https://developer.bentley.com/apis/projects/tutorials/).\n\n## Sample usage\n\n```tsx\nimport { OneClickLCAProvider } from \"@itwin/one-click-lca-react\";\n\n<Viewer\n ...\n uiProviders={[new OneClickLCAProvider()]}\n/>\n```\n"
|
|
120
|
-
}
|
|
124
|
+
}
|
|
125
|
+
}
|