@itwin/reports-config-widget-react 0.4.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.
Files changed (140) hide show
  1. package/CHANGELOG.json +15 -0
  2. package/CHANGELOG.md +11 -2
  3. package/coverage/clover.xml +111 -102
  4. package/coverage/coverage-final.json +12 -12
  5. package/coverage/lcov-report/favicon.png +0 -0
  6. package/coverage/lcov-report/index.html +20 -20
  7. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  8. package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +2 -2
  9. package/coverage/lcov-report/src/index.html +1 -1
  10. package/coverage/lcov-report/src/test/index.html +15 -15
  11. package/coverage/lcov-report/src/test/test-utils.tsx.html +194 -11
  12. package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +1 -1
  13. package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +1 -1
  14. package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +1 -1
  15. package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +1 -1
  16. package/coverage/lcov-report/src/widget/components/Constants.ts.html +13 -7
  17. package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +4 -4
  18. package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +1 -1
  19. package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +1 -1
  20. package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +1 -1
  21. package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +1 -1
  22. package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +1 -1
  23. package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +1 -1
  24. package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +1 -1
  25. package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +1 -1
  26. package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +3 -3
  27. package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +1 -1
  28. package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +1 -1
  29. package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +15 -15
  30. package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +1 -1
  31. package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +1 -1
  32. package/coverage/lcov-report/src/widget/components/Reports.tsx.html +34 -34
  33. package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +12 -9
  34. package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +1 -1
  35. package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +1 -1
  36. package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +1 -1
  37. package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +4 -4
  38. package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +2 -2
  39. package/coverage/lcov-report/src/widget/components/index.html +18 -18
  40. package/coverage/lcov-report/src/widget/components/utils.tsx.html +8 -8
  41. package/coverage/lcov-report/src/widget/context/BulkExtractorContext.tsx.html +4 -4
  42. package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +4 -4
  43. package/coverage/lcov-report/src/widget/context/index.html +1 -1
  44. package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
  45. package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +1 -1
  46. package/coverage/lcov-report/src/widget/index.html +1 -1
  47. package/coverage/lcov.info +207 -194
  48. package/lib/cjs/reports-config-widget-react.js +5 -1
  49. package/lib/cjs/reports-config-widget-react.js.map +1 -1
  50. package/lib/cjs/test/AddMappingModal.test.js +15 -64
  51. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  52. package/lib/cjs/test/BulkExtractor.test.js +5 -1
  53. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  54. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +13 -62
  55. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  56. package/lib/cjs/test/ReportMappings.test.js +19 -67
  57. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  58. package/lib/cjs/test/Reports.test.js +51 -47
  59. package/lib/cjs/test/Reports.test.js.map +1 -1
  60. package/lib/cjs/test/test-utils.d.ts +30 -0
  61. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  62. package/lib/cjs/test/test-utils.js +64 -2
  63. package/lib/cjs/test/test-utils.js.map +1 -1
  64. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  65. package/lib/cjs/widget/ReportsConfigUiProvider.js +5 -1
  66. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  67. package/lib/cjs/widget/components/ActionPanel.js +5 -1
  68. package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
  69. package/lib/cjs/widget/components/AddMappingsModal.js +5 -1
  70. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  71. package/lib/cjs/widget/components/Constants.d.ts +1 -0
  72. package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
  73. package/lib/cjs/widget/components/Constants.js +2 -1
  74. package/lib/cjs/widget/components/Constants.js.map +1 -1
  75. package/lib/cjs/widget/components/DeleteModal.js +5 -1
  76. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  77. package/lib/cjs/widget/components/ExtractionStatus.js +5 -1
  78. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  79. package/lib/cjs/widget/components/LocalizedTablePaginator.js +5 -1
  80. package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
  81. package/lib/cjs/widget/components/ReportAction.js +5 -1
  82. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  83. package/lib/cjs/widget/components/ReportHorizontalTile.js +5 -1
  84. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  85. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +5 -1
  86. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  87. package/lib/cjs/widget/components/ReportMappings.js +5 -1
  88. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  89. package/lib/cjs/widget/components/Reports.js +5 -1
  90. package/lib/cjs/widget/components/Reports.js.map +1 -1
  91. package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -1
  92. package/lib/cjs/widget/components/ReportsConfigContext.js +7 -2
  93. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
  94. package/lib/cjs/widget/components/ReportsContainer.js +5 -1
  95. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  96. package/lib/cjs/widget/components/SearchBar.js +5 -1
  97. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  98. package/lib/cjs/widget/components/SelectIModel.js +6 -2
  99. package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
  100. package/lib/cjs/widget/context/BulkExtractorContext.js +5 -1
  101. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
  102. package/lib/cjs/widget/context/ReportsConfigApiContext.js +5 -1
  103. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
  104. package/lib/esm/test/AddMappingModal.test.js +1 -54
  105. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  106. package/lib/esm/test/ReportMappingHorizontalTile.test.js +2 -55
  107. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  108. package/lib/esm/test/ReportMappings.test.js +2 -54
  109. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  110. package/lib/esm/test/Reports.test.js +28 -47
  111. package/lib/esm/test/Reports.test.js.map +1 -1
  112. package/lib/esm/test/test-utils.d.ts +30 -0
  113. package/lib/esm/test/test-utils.d.ts.map +1 -1
  114. package/lib/esm/test/test-utils.js +58 -0
  115. package/lib/esm/test/test-utils.js.map +1 -1
  116. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  117. package/lib/esm/widget/components/Constants.d.ts +1 -0
  118. package/lib/esm/widget/components/Constants.d.ts.map +1 -1
  119. package/lib/esm/widget/components/Constants.js +1 -0
  120. package/lib/esm/widget/components/Constants.js.map +1 -1
  121. package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -1
  122. package/lib/esm/widget/components/ReportsConfigContext.js +3 -2
  123. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
  124. package/lib/esm/widget/components/SelectIModel.js +1 -1
  125. package/lib/esm/widget/components/SelectIModel.js.map +1 -1
  126. package/package.json +30 -29
  127. package/src/test/AddMappingModal.test.tsx +7 -57
  128. package/src/test/ReportMappingHorizontalTile.test.tsx +6 -58
  129. package/src/test/ReportMappings.test.tsx +7 -58
  130. package/src/test/Reports.test.tsx +32 -110
  131. package/src/test/test-utils.tsx +62 -1
  132. package/src/widget/components/Constants.ts +2 -0
  133. package/src/widget/components/ReportsConfigContext.tsx +3 -2
  134. package/src/widget/components/SelectIModel.tsx +1 -1
  135. package/.rush/temp/operation/rebuild/all.log +0 -9
  136. package/.rush/temp/operation/rebuild/state.json +0 -3
  137. package/.rush/temp/package-deps_rebuild.json +0 -68
  138. package/.rush/temp/shrinkwrap-deps.json +0 -898
  139. package/reports-config-widget-react.build.error.log +0 -14
  140. package/reports-config-widget-react.build.log +0 -63
@@ -1,4 +1,5 @@
1
1
  export declare const STATUS_CHECK_INTERVAL = 5000;
2
2
  export declare const ANIMATION_DELAY = "5s";
3
3
  export declare const ANIMATION_DURATION = "1s";
4
+ export declare const IMODELS_BASE_URL = "https://api.bentley.com/imodels";
4
5
  //# sourceMappingURL=Constants.d.ts.map
@@ -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"}
@@ -5,4 +5,5 @@
5
5
  export const STATUS_CHECK_INTERVAL = 5000;
6
6
  export const ANIMATION_DELAY = "5s";
7
7
  export const ANIMATION_DURATION = "1s";
8
+ export const IMODELS_BASE_URL = "https://api.bentley.com/imodels";
8
9
  //# sourceMappingURL=Constants.js.map
@@ -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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsConfigContext.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportsConfigContext.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAa,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAuB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE9G,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAKD,eAAO,MAAM,oBAAoB,UAAW,yBAAyB,gBA0DpE,CAAC"}
1
+ {"version":3,"file":"ReportsConfigContext.d.ts","sourceRoot":"","sources":["../../../../src/widget/components/ReportsConfigContext.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAuB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE9G,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,MAAM,WAAW,yBAAyB;IACxC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAKD,eAAO,MAAM,oBAAoB,UAAW,yBAAyB,gBA0DpE,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { IModelApp } from "@itwin/core-frontend";
6
- import { Constants, IModelsClient } from "@itwin/imodels-client-management";
6
+ import { IModelsClient } from "@itwin/imodels-client-management";
7
7
  import { ExtractionClient, MappingsClient, REPORTING_BASE_PATH, ReportsClient } from "@itwin/insights-client";
8
8
  import { toaster } from "@itwin/itwinui-react";
9
9
  import React, { useCallback, useEffect, useMemo, useState } from "react";
@@ -11,13 +11,14 @@ import { BulkExtractorContext } from "../context/BulkExtractorContext";
11
11
  import { ReportsConfigApiContext } from "../context/ReportsConfigApiContext";
12
12
  import { REPORTS_CONFIG_BASE_URL } from "../ReportsConfigUiProvider";
13
13
  import { BulkExtractor } from "./BulkExtractor";
14
+ import { IMODELS_BASE_URL } from "./Constants";
14
15
  import { FailedExtractionToast, SuccessfulExtractionToast } from "./ExtractionToast";
15
16
  import { generateUrl } from "./utils";
16
17
  const authorizationClientGetAccessToken = async () => (await IModelApp.authorizationClient?.getAccessToken()) ?? "";
17
18
  export const ReportsConfigContext = (props) => {
18
19
  const reportsBaseUrl = useCallback(() => generateUrl(REPORTING_BASE_PATH, props.baseUrl || REPORTS_CONFIG_BASE_URL), [props.baseUrl]);
19
20
  const iModelClientOptions = useMemo(() => ({
20
- api: { baseUrl: generateUrl(Constants.api.baseUrl, props.baseUrl ?? REPORTS_CONFIG_BASE_URL) },
21
+ api: { baseUrl: generateUrl(IMODELS_BASE_URL, props.baseUrl ?? REPORTS_CONFIG_BASE_URL) },
21
22
  }), [props.baseUrl]);
22
23
  const [extractionClient, setExtractionClient] = useState(props.extractionClient ?? new ExtractionClient(reportsBaseUrl()));
23
24
  const [apiConfig, setApiConfig] = useState({
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsConfigContext.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportsConfigContext.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 { IModelApp } from \"@itwin/core-frontend\";\nimport type { IModelsClientOptions } from \"@itwin/imodels-client-management\";\nimport { Constants, IModelsClient } from \"@itwin/imodels-client-management\";\nimport { ExtractionClient, MappingsClient, REPORTING_BASE_PATH, ReportsClient } from \"@itwin/insights-client\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { BulkExtractorContext } from \"../context/BulkExtractorContext\";\nimport type {\n GetAccessTokenFn,\n ReportsConfigApiProps,\n} from \"../context/ReportsConfigApiContext\";\nimport { ReportsConfigApiContext } from \"../context/ReportsConfigApiContext\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../ReportsConfigUiProvider\";\nimport { BulkExtractor } from \"./BulkExtractor\";\nimport { FailedExtractionToast, SuccessfulExtractionToast } from \"./ExtractionToast\";\nimport { generateUrl } from \"./utils\";\n\nexport interface ReportsConfigContextProps {\n getAccessToken?: GetAccessTokenFn;\n baseUrl?: string;\n iTwinId: string;\n bulkExtractor?: BulkExtractor;\n reportsClient?: ReportsClient;\n mappingsClient?: MappingsClient;\n extractionClient?: ExtractionClient;\n iModelsClient?: IModelsClient;\n children?: React.ReactNode;\n}\n\nconst authorizationClientGetAccessToken = async () =>\n (await IModelApp.authorizationClient?.getAccessToken()) ?? \"\";\n\nexport const ReportsConfigContext = (props: ReportsConfigContextProps) => {\n const reportsBaseUrl = useCallback(() => generateUrl(\n REPORTING_BASE_PATH,\n props.baseUrl || REPORTS_CONFIG_BASE_URL\n ), [props.baseUrl]);\n const iModelClientOptions: IModelsClientOptions = useMemo(() => ({\n api: { baseUrl: generateUrl(Constants.api.baseUrl, props.baseUrl ?? REPORTS_CONFIG_BASE_URL) },\n }), [props.baseUrl]);\n const [extractionClient, setExtractionClient] = useState<ExtractionClient>(\n props.extractionClient ?? new ExtractionClient(reportsBaseUrl())\n );\n\n const [apiConfig, setApiConfig] = useState<ReportsConfigApiProps>({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n baseUrl: reportsBaseUrl(),\n iTwinId: props.iTwinId,\n reportsClient: props.reportsClient ?? new ReportsClient(reportsBaseUrl()),\n mappingsClient: props.mappingsClient ?? new MappingsClient(reportsBaseUrl()),\n iModelsClient: props.iModelsClient ?? new IModelsClient(iModelClientOptions),\n });\n\n useEffect(() => {\n if (!props.extractionClient) {\n setExtractionClient(props.extractionClient ?? new ExtractionClient(reportsBaseUrl()));\n }\n }, [props.extractionClient, reportsBaseUrl]);\n\n const successfulExtractionToast = (iModelName: string, odataFeedUrl: string) => {\n toaster.positive(<SuccessfulExtractionToast iModelName={iModelName} odataFeedUrl={odataFeedUrl} />);\n };\n\n const failedExtractionToast = (iModelName: string) => {\n toaster.negative(<FailedExtractionToast iModelName={iModelName} />);\n };\n\n const bulkExtractor = useMemo(\n () => ({ bulkExtractor: props.bulkExtractor ?? new BulkExtractor(apiConfig.reportsClient, extractionClient, apiConfig.getAccessToken, successfulExtractionToast, failedExtractionToast) }),\n [apiConfig.getAccessToken, apiConfig.reportsClient, extractionClient, props.bulkExtractor]\n );\n\n useEffect(() => {\n setApiConfig(() => ({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n baseUrl: props.baseUrl || REPORTS_CONFIG_BASE_URL,\n iTwinId: props.iTwinId,\n reportsClient: props.reportsClient ?? new ReportsClient(reportsBaseUrl()),\n mappingsClient: props.mappingsClient ?? new MappingsClient(reportsBaseUrl()),\n iModelsClient: props.iModelsClient ?? new IModelsClient(iModelClientOptions),\n }));\n }, [props.getAccessToken, props.baseUrl, props.iTwinId, props.reportsClient, props.mappingsClient, props.iModelsClient, reportsBaseUrl, iModelClientOptions]);\n\n return (\n <ReportsConfigApiContext.Provider value={apiConfig}>\n <BulkExtractorContext.Provider value={bulkExtractor}>\n {props.children}\n </BulkExtractorContext.Provider>\n </ReportsConfigApiContext.Provider>\n );\n};\n"]}
1
+ {"version":3,"file":"ReportsConfigContext.js","sourceRoot":"","sources":["../../../../src/widget/components/ReportsConfigContext.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 { IModelApp } from \"@itwin/core-frontend\";\nimport type { IModelsClientOptions } from \"@itwin/imodels-client-management\";\nimport { IModelsClient } from \"@itwin/imodels-client-management\";\nimport { ExtractionClient, MappingsClient, REPORTING_BASE_PATH, ReportsClient } from \"@itwin/insights-client\";\nimport { toaster } from \"@itwin/itwinui-react\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { BulkExtractorContext } from \"../context/BulkExtractorContext\";\nimport type {\n GetAccessTokenFn,\n ReportsConfigApiProps,\n} from \"../context/ReportsConfigApiContext\";\nimport { ReportsConfigApiContext } from \"../context/ReportsConfigApiContext\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../ReportsConfigUiProvider\";\nimport { BulkExtractor } from \"./BulkExtractor\";\nimport { IMODELS_BASE_URL } from \"./Constants\";\nimport { FailedExtractionToast, SuccessfulExtractionToast } from \"./ExtractionToast\";\nimport { generateUrl } from \"./utils\";\n\nexport interface ReportsConfigContextProps {\n getAccessToken?: GetAccessTokenFn;\n baseUrl?: string;\n iTwinId: string;\n bulkExtractor?: BulkExtractor;\n reportsClient?: ReportsClient;\n mappingsClient?: MappingsClient;\n extractionClient?: ExtractionClient;\n iModelsClient?: IModelsClient;\n children?: React.ReactNode;\n}\n\nconst authorizationClientGetAccessToken = async () =>\n (await IModelApp.authorizationClient?.getAccessToken()) ?? \"\";\n\nexport const ReportsConfigContext = (props: ReportsConfigContextProps) => {\n const reportsBaseUrl = useCallback(() => generateUrl(\n REPORTING_BASE_PATH,\n props.baseUrl || REPORTS_CONFIG_BASE_URL\n ), [props.baseUrl]);\n const iModelClientOptions: IModelsClientOptions = useMemo(() => ({\n api: { baseUrl: generateUrl(IMODELS_BASE_URL, props.baseUrl ?? REPORTS_CONFIG_BASE_URL) },\n }), [props.baseUrl]);\n const [extractionClient, setExtractionClient] = useState<ExtractionClient>(\n props.extractionClient ?? new ExtractionClient(reportsBaseUrl())\n );\n\n const [apiConfig, setApiConfig] = useState<ReportsConfigApiProps>({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n baseUrl: reportsBaseUrl(),\n iTwinId: props.iTwinId,\n reportsClient: props.reportsClient ?? new ReportsClient(reportsBaseUrl()),\n mappingsClient: props.mappingsClient ?? new MappingsClient(reportsBaseUrl()),\n iModelsClient: props.iModelsClient ?? new IModelsClient(iModelClientOptions),\n });\n\n useEffect(() => {\n if (!props.extractionClient) {\n setExtractionClient(props.extractionClient ?? new ExtractionClient(reportsBaseUrl()));\n }\n }, [props.extractionClient, reportsBaseUrl]);\n\n const successfulExtractionToast = (iModelName: string, odataFeedUrl: string) => {\n toaster.positive(<SuccessfulExtractionToast iModelName={iModelName} odataFeedUrl={odataFeedUrl} />);\n };\n\n const failedExtractionToast = (iModelName: string) => {\n toaster.negative(<FailedExtractionToast iModelName={iModelName} />);\n };\n\n const bulkExtractor = useMemo(\n () => ({ bulkExtractor: props.bulkExtractor ?? new BulkExtractor(apiConfig.reportsClient, extractionClient, apiConfig.getAccessToken, successfulExtractionToast, failedExtractionToast) }),\n [apiConfig.getAccessToken, apiConfig.reportsClient, extractionClient, props.bulkExtractor]\n );\n\n useEffect(() => {\n setApiConfig(() => ({\n getAccessToken: props.getAccessToken ?? authorizationClientGetAccessToken,\n baseUrl: props.baseUrl || REPORTS_CONFIG_BASE_URL,\n iTwinId: props.iTwinId,\n reportsClient: props.reportsClient ?? new ReportsClient(reportsBaseUrl()),\n mappingsClient: props.mappingsClient ?? new MappingsClient(reportsBaseUrl()),\n iModelsClient: props.iModelsClient ?? new IModelsClient(iModelClientOptions),\n }));\n }, [props.getAccessToken, props.baseUrl, props.iTwinId, props.reportsClient, props.mappingsClient, props.iModelsClient, reportsBaseUrl, iModelClientOptions]);\n\n return (\n <ReportsConfigApiContext.Provider value={apiConfig}>\n <BulkExtractorContext.Provider value={bulkExtractor}>\n {props.children}\n </BulkExtractorContext.Provider>\n </ReportsConfigApiContext.Provider>\n );\n};\n"]}
@@ -9,7 +9,7 @@ const fetchIModels = async (setiModels, iTwinId, iModelsClient, getAccessToken)
9
9
  const accessToken = await getAccessToken();
10
10
  const authorization = AccessTokenAdapter.toAuthorizationCallback(accessToken);
11
11
  const getiModelListParams = {
12
- urlParams: { projectId: iTwinId },
12
+ urlParams: { iTwinId },
13
13
  authorization,
14
14
  };
15
15
  const iModels = await toArray(iModelsClient.iModels.getMinimalList(getiModelListParams));
@@ -1 +1 @@
1
- {"version":3,"file":"SelectIModel.js","sourceRoot":"","sources":["../../../../src/widget/components/SelectIModel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAMpE,OAAO,EACL,OAAO,GACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,qBAAqB,CAAC;AAE7B,MAAM,YAAY,GAAG,KAAK,EACxB,UAAiE,EACjE,OAAe,EACf,aAA4B,EAC5B,cAA0C,EAC1C,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAwB;QAC/C,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;QACjC,aAAa;KACd,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAC1D,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,gBAAgB,EAChB,mBAAmB,GACC,EAAE,EAAE;IACxB,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,KAAK,EAAE,MAAM,CAAC,EAAE;SACjB,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,6BAAK,SAAS,EAAC,mBAAmB;QAChC,oBAAC,KAAK,IAAC,OAAO,EAAC,aAAa,IACzB,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,kCAAkC,CACnC,CACK;QACR,6BAAK,SAAS,EAAC,cAAc;YAC3B,oBAAC,QAAQ,IACP,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC,EACD,UAAU,EAAE;oBACV,EAAE,EAAE,aAAa;iBAClB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GACzC,CACE,CACF,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 type { AccessToken } from \"@itwin/core-bentley\";\nimport { AccessTokenAdapter } from \"@itwin/imodels-access-frontend\";\nimport type {\n GetIModelListParams,\n IModelsClient,\n MinimalIModel,\n} from \"@itwin/imodels-client-management\";\nimport {\n toArray,\n} from \"@itwin/imodels-client-management\";\nimport { ComboBox, Label } from \"@itwin/itwinui-react\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport { useReportsConfigApi } from \"../context/ReportsConfigApiContext\";\nimport \"./SelectIModel.scss\";\n\nconst fetchIModels = async (\n setiModels: React.Dispatch<React.SetStateAction<MinimalIModel[]>>,\n iTwinId: string,\n iModelsClient: IModelsClient,\n getAccessToken: () => Promise<AccessToken>\n) => {\n const accessToken = await getAccessToken();\n const authorization = AccessTokenAdapter.toAuthorizationCallback(accessToken);\n const getiModelListParams: GetIModelListParams = {\n urlParams: { projectId: iTwinId },\n authorization,\n };\n const iModels = await toArray(\n iModelsClient.iModels.getMinimalList(getiModelListParams)\n );\n setiModels(iModels);\n};\n\ninterface SelectedIModelProps {\n selectedIModelId?: string;\n setSelectedIModelId: (iModelId: string) => void;\n}\n\nexport const SelectIModel = ({\n selectedIModelId,\n setSelectedIModelId,\n}: SelectedIModelProps) => {\n const { iTwinId, getAccessToken, iModelsClient } = useReportsConfigApi();\n const [iModels, setIModels] = useState<MinimalIModel[]>([]);\n\n useEffect(() => {\n void fetchIModels(setIModels, iTwinId, iModelsClient, getAccessToken);\n }, [getAccessToken, iModelsClient, iTwinId, setIModels]);\n\n const iModelOptions = useMemo(() => {\n return iModels.map((iModel) => ({\n label: iModel.displayName,\n value: iModel.id,\n }));\n }, [iModels]);\n\n return (\n <div className=\"rcw-select-imodel\">\n <Label htmlFor=\"combo-input\">\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:SelectIModel\"\n )}\n </Label>\n <div className=\"rcw-combobox\">\n <ComboBox<string>\n options={iModelOptions}\n value={selectedIModelId}\n onChange={(value) => {\n setSelectedIModelId(value);\n }}\n inputProps={{\n id: \"combo-input\",\n }}\n style={{ flexGrow: 1, maxWidth: \"395px\" }}\n />\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"SelectIModel.js","sourceRoot":"","sources":["../../../../src/widget/components/SelectIModel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAMpE,OAAO,EACL,OAAO,GACR,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,qBAAqB,CAAC;AAE7B,MAAM,YAAY,GAAG,KAAK,EACxB,UAAiE,EACjE,OAAe,EACf,aAA4B,EAC5B,cAA0C,EAC1C,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAwB;QAC/C,SAAS,EAAE,EAAE,OAAO,EAAE;QACtB,aAAa;KACd,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAC1D,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,gBAAgB,EAChB,mBAAmB,GACC,EAAE,EAAE;IACxB,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,YAAY,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,KAAK,EAAE,MAAM,CAAC,EAAE;SACjB,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,6BAAK,SAAS,EAAC,mBAAmB;QAChC,oBAAC,KAAK,IAAC,OAAO,EAAC,aAAa,IACzB,mBAAmB,CAAC,YAAY,CAAC,kBAAkB,CAClD,kCAAkC,CACnC,CACK;QACR,6BAAK,SAAS,EAAC,cAAc;YAC3B,oBAAC,QAAQ,IACP,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,mBAAmB,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC,EACD,UAAU,EAAE;oBACV,EAAE,EAAE,aAAa;iBAClB,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GACzC,CACE,CACF,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 type { AccessToken } from \"@itwin/core-bentley\";\nimport { AccessTokenAdapter } from \"@itwin/imodels-access-frontend\";\nimport type {\n GetIModelListParams,\n IModelsClient,\n MinimalIModel,\n} from \"@itwin/imodels-client-management\";\nimport {\n toArray,\n} from \"@itwin/imodels-client-management\";\nimport { ComboBox, Label } from \"@itwin/itwinui-react\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { ReportsConfigWidget } from \"../../ReportsConfigWidget\";\nimport { useReportsConfigApi } from \"../context/ReportsConfigApiContext\";\nimport \"./SelectIModel.scss\";\n\nconst fetchIModels = async (\n setiModels: React.Dispatch<React.SetStateAction<MinimalIModel[]>>,\n iTwinId: string,\n iModelsClient: IModelsClient,\n getAccessToken: () => Promise<AccessToken>\n) => {\n const accessToken = await getAccessToken();\n const authorization = AccessTokenAdapter.toAuthorizationCallback(accessToken);\n const getiModelListParams: GetIModelListParams = {\n urlParams: { iTwinId },\n authorization,\n };\n const iModels = await toArray(\n iModelsClient.iModels.getMinimalList(getiModelListParams)\n );\n setiModels(iModels);\n};\n\ninterface SelectedIModelProps {\n selectedIModelId?: string;\n setSelectedIModelId: (iModelId: string) => void;\n}\n\nexport const SelectIModel = ({\n selectedIModelId,\n setSelectedIModelId,\n}: SelectedIModelProps) => {\n const { iTwinId, getAccessToken, iModelsClient } = useReportsConfigApi();\n const [iModels, setIModels] = useState<MinimalIModel[]>([]);\n\n useEffect(() => {\n void fetchIModels(setIModels, iTwinId, iModelsClient, getAccessToken);\n }, [getAccessToken, iModelsClient, iTwinId, setIModels]);\n\n const iModelOptions = useMemo(() => {\n return iModels.map((iModel) => ({\n label: iModel.displayName,\n value: iModel.id,\n }));\n }, [iModels]);\n\n return (\n <div className=\"rcw-select-imodel\">\n <Label htmlFor=\"combo-input\">\n {ReportsConfigWidget.localization.getLocalizedString(\n \"ReportsConfigWidget:SelectIModel\"\n )}\n </Label>\n <div className=\"rcw-combobox\">\n <ComboBox<string>\n options={iModelOptions}\n value={selectedIModelId}\n onChange={(value) => {\n setSelectedIModelId(value);\n }}\n inputProps={{\n id: \"combo-input\",\n }}\n style={{ flexGrow: 1, maxWidth: \"395px\" }}\n />\n </div>\n </div>\n );\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/reports-config-widget-react",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "An iTwin.js 3D Viewer Widget that interfaces with the iTwin Reporting Platform.",
5
5
  "keywords": [
6
6
  "Bentley",
@@ -22,6 +22,24 @@
22
22
  "main": "lib/cjs/reports-config-widget-react.js",
23
23
  "module": "lib/esm/reports-config-widget-react.js",
24
24
  "typings": "lib/cjs/reports-config-widget-react",
25
+ "scripts": {
26
+ "build": "npm run -s dual-build && npm run -s copy:assets",
27
+ "build:cjs": "tsc 1>&2 --outDir lib/cjs",
28
+ "build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm",
29
+ "clean": "rimraf lib",
30
+ "copy:assets": "npm run -s copy:public && npm run -s copy:cjs && npm run -s copy:esm",
31
+ "copy:cjs": "cpx \"./src/**/*.scss\" ./lib/cjs",
32
+ "copy:esm": "cpx \"./src/**/*.scss\" ./lib/esm",
33
+ "copy:public": "cpx \"./public/**/*\" ./lib/public",
34
+ "cover": "npm test -- --coverage",
35
+ "dual-build": "npm run -s build:cjs && npm run -s build:esm",
36
+ "lint": "eslint -f visualstudio \"./src/**/*.{ts,tsx}\" 1>&2",
37
+ "lint:fix": "npm run lint -- --fix",
38
+ "pseudolocalize": "betools pseudolocalize --englishDir ./public/locales/en --out ./public/locales/en-PSEUDO",
39
+ "rebuild": "npm run clean && npm run build",
40
+ "test": "jest",
41
+ "test:watch": "jest --watch "
42
+ },
25
43
  "eslintConfig": {
26
44
  "plugins": [
27
45
  "@itwin"
@@ -37,8 +55,9 @@
37
55
  }
38
56
  },
39
57
  "dependencies": {
40
- "@itwin/imodels-access-frontend": "^4.0.0",
41
- "@itwin/imodels-client-management": "^1.0.1",
58
+ "@itwin/imodels-access-common": "^4.1.4",
59
+ "@itwin/imodels-access-frontend": "^4.1.4",
60
+ "@itwin/imodels-client-management": "^4.2.3",
42
61
  "@itwin/insights-client": "^0.4.0",
43
62
  "@itwin/itwinui-icons-color-react": "^2.1.0",
44
63
  "@itwin/itwinui-icons-react": "^2.4.0",
@@ -61,7 +80,9 @@
61
80
  "@itwin/core-orbitgt": "^4.0.0",
62
81
  "@itwin/core-quantity": "^4.0.0",
63
82
  "@itwin/core-react": "^4.0.0",
83
+ "@itwin/core-telemetry": "^4.0.0",
64
84
  "@itwin/eslint-plugin": "^3.7.8",
85
+ "@itwin/ecschema-metadata": "^4.0.0",
65
86
  "@itwin/imodel-components-react": "^4.0.0",
66
87
  "@itwin/presentation-common": "^4.0.0",
67
88
  "@itwin/presentation-frontend": "^4.0.0",
@@ -84,20 +105,19 @@
84
105
  "cpx2": "^3.0.0",
85
106
  "eslint": "^7.32.0",
86
107
  "eslint-plugin-node": "^11.1.0",
87
- "eslint-plugin-react": "^7.25.1",
108
+ "eslint-plugin-react": "^7.33.2",
88
109
  "eslint-plugin-react-hooks": "^4.2.0",
89
110
  "jest": "^27.5.1",
90
111
  "jest-cli": "^27.5.1",
91
112
  "jest-transform-stub": "^2.0.0",
92
- "msw": "^0.39.2",
93
113
  "react": "^17.0.2",
94
114
  "react-dom": "^17.0.2",
95
- "react-redux": "^7.2.0",
96
- "redux": "^4.0.4",
115
+ "react-redux": "^7.2.2",
116
+ "redux": "^4.1.0",
97
117
  "rimraf": "^3.0.2",
98
118
  "ts-jest": "^27.1.3",
99
119
  "typemoq": "^2.1.0",
100
- "typescript": "~4.5.0",
120
+ "typescript": "~4.6.0",
101
121
  "xmlhttprequest": "^1.8.0"
102
122
  },
103
123
  "peerDependencies": {
@@ -108,24 +128,5 @@
108
128
  "react": "^17.0.2",
109
129
  "react-dom": "^17.0.2",
110
130
  "react-redux": "^7.2.0"
111
- },
112
- "scripts": {
113
- "build": "npm run -s dual-build && npm run -s copy:assets",
114
- "build:cjs": "tsc 1>&2 --outDir lib/cjs",
115
- "build:esm": "tsc 1>&2 --module ES2020 --outDir lib/esm",
116
- "clean": "rimraf lib",
117
- "copy:assets": "npm run -s copy:public && npm run -s copy:cjs && npm run -s copy:esm",
118
- "copy:cjs": "cpx \"./src/**/*.scss\" ./lib/cjs",
119
- "copy:esm": "cpx \"./src/**/*.scss\" ./lib/esm",
120
- "copy:public": "cpx \"./public/**/*\" ./lib/public",
121
- "cover": "npm test -- --coverage",
122
- "dual-build": "npm run -s build:cjs && npm run -s build:esm",
123
- "lint": "eslint -f visualstudio \"./src/**/*.{ts,tsx}\" 1>&2",
124
- "lint:fix": "npm run lint -- --fix",
125
- "pseudolocalize": "betools pseudolocalize --englishDir ./public/locales/en --out ./public/locales/en-PSEUDO",
126
- "rebuild": "npm run clean && npm run build",
127
- "test": "jest",
128
- "test:watch": "jest --watch "
129
- },
130
- "readme": "# @itwin/reports-config-widget-react\r\n\r\nCopyright © Bentley Systems, Incorporated. All rights reserved.\r\nThe Reports Config widget is a UI component for iTwin Viewer applications that simplifies how users (and developers) interface with the [Reporting Platform APIs](https://developer.bentley.com/apis/insights/overview/). This widget is one piece of the Reporting story that focuses on the configuration of Reports and the extraction thereof. It complements the [Grouping & Mapping Widget](https://www.npmjs.com/package/@itwin/grouping-mapping-widget).\r\nThe reports-config-widget-react package provides a UiProvider class - `ReportsConfigProvider` - which can be passed into the `uiProviders` prop of the iTwin Viewer's `<Viewer />` component.\r\n\r\n## Getting Started\r\n\r\nThis is not a standalone UI and requires a parent iTwin Viewer application to work as intended.\r\nA guide on how to create a basic iTwin Viewer application can be found here: <https://www.itwinjs.org/learning/tutorials/develop-web-viewer/>.\r\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>.\r\n\r\n## Permissions and Scopes\r\n\r\nThe SPA client used by your iTwin viewer must have these additional scopes:\r\n\r\n- `insights:read`\r\n- `insights:modify`\r\n- `projects:read`\r\n\r\nIn addition, users must have the `imodels_read` and `imodels_write` [permissions](https://developer.bentley.com/apis/insights/operations/create-mapping/#authorization) assigned at either the Project or iModel level. Further 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/).\r\n\r\n## Sample usage\r\n\r\n### Call ReportsConfigWidget.initialize() **_before_** making use of the provider\r\n\r\n```ts\r\nimport { ReportsConfigProvider, ReportsConfigWidget } from '@itwin/reports-config-widget-react'\r\n\r\n...\r\n\r\nawait ReportsConfigWidget.initialize(IModelApp.localization);\r\n\r\n<Viewer\r\n ...\r\n uiProviders={[new ReportsConfigProvider()]}\r\n/>\r\n```\r\n"
131
- }
131
+ }
132
+ }
@@ -7,6 +7,11 @@ import faker from "@faker-js/faker";
7
7
  import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
9
  import {
10
+ mockIModelId1,
11
+ mockIModelId2,
12
+ mockIModelsResponse,
13
+ mockITwinId,
14
+ mockReportId,
10
15
  render,
11
16
  screen,
12
17
  waitFor,
@@ -20,65 +25,10 @@ import type {
20
25
  ReportsClient,
21
26
  } from "@itwin/insights-client";
22
27
  import type { ReportMappingAndMapping } from "../widget/components/ReportMappings";
23
- import type { GetSingleIModelParams, IModelOperations, IModelsClient, OperationOptions } from "@itwin/imodels-client-management";
24
- import { IModelState } from "@itwin/imodels-client-management";
28
+ import type { GetSingleIModelParams, IModelsClient } from "@itwin/imodels-client-management";
25
29
  import { AddMappingsModal } from "../widget/components/AddMappingsModal";
26
30
  import { EmptyLocalization } from "@itwin/core-common";
27
-
28
- const mockITwinId = faker.datatype.uuid();
29
- const mockIModelId1 = faker.datatype.uuid();
30
- const mockIModelId2 = faker.datatype.uuid();
31
-
32
- const mockReportId = faker.datatype.uuid();
33
-
34
- const mockIModelsResponse = [
35
- {
36
- iModel: {
37
- id: mockIModelId1,
38
- displayName: "rAnDoMdIsPlAynAmE1",
39
- name: "rAnDomName1",
40
- description: "rAnDoMDeScRiPtIoN1",
41
- createdDateTime: "2021-10-04T22:13:50.397Z",
42
- state: IModelState.Initialized,
43
- projectId: mockITwinId,
44
- extent: null,
45
- _links: {
46
- creator: {
47
- href: "",
48
- },
49
- namedVersions: {
50
- href: "",
51
- },
52
- changesets: {
53
- href: "",
54
- },
55
- },
56
- },
57
- },
58
- {
59
- iModel: {
60
- id: mockIModelId2,
61
- displayName: "rAnDoMdIsPlAynAmE2",
62
- name: "rAnDomName2",
63
- description: "rAnDoMDeScRiPtIoN2",
64
- createdDateTime: "2021-10-04T22:13:50.397Z",
65
- state: IModelState.Initialized,
66
- projectId: mockITwinId,
67
- extent: null,
68
- _links: {
69
- creator: {
70
- href: "",
71
- },
72
- namedVersions: {
73
- href: "",
74
- },
75
- changesets: {
76
- href: "",
77
- },
78
- },
79
- },
80
- },
81
- ];
31
+ import type { IModelOperations, OperationOptions } from "@itwin/imodels-client-management/lib/operations";
82
32
 
83
33
  const mockProjectIModels = {
84
34
  iModels: mockIModelsResponse.map((iModel) => ({
@@ -8,6 +8,9 @@ import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
9
  import {
10
10
  fireEvent,
11
+ mockIModelId1,
12
+ mockIModelsResponse,
13
+ mockReportId,
11
14
  render,
12
15
  screen,
13
16
  waitFor,
@@ -19,69 +22,13 @@ import type {
19
22
  ReportMappingCollection,
20
23
  } from "@itwin/insights-client";
21
24
  import type { ReportMappingAndMapping } from "../widget/components/ReportMappings";
22
- import type { GetSingleIModelParams, IModelOperations, OperationOptions } from "@itwin/imodels-client-management";
23
- import { IModelState } from "@itwin/imodels-client-management";
25
+ import type { GetSingleIModelParams } from "@itwin/imodels-client-management";
24
26
  import { BeEvent } from "@itwin/core-bentley";
25
27
  import { ExtractionStates } from "../widget/components/ExtractionStatus";
26
28
  import { ReportMappingHorizontalTile } from "../widget/components/ReportMappingHorizontalTile";
27
29
  import { EmptyLocalization } from "@itwin/core-common";
28
30
  import type { BulkExtractor } from "../widget/components/BulkExtractor";
29
-
30
- const mockITwinId = faker.datatype.uuid();
31
- // Lets work with two iModels for now.
32
- const mockIModelId1 = faker.datatype.uuid();
33
- const mockIModelId2 = faker.datatype.uuid();
34
-
35
- const mockReportId = faker.datatype.uuid();
36
-
37
- const mockIModelsResponse = [
38
- {
39
- iModel: {
40
- id: mockIModelId1,
41
- displayName: "rAnDoMdIsPlAynAmE1",
42
- name: "rAnDomName1",
43
- description: "rAnDoMDeScRiPtIoN1",
44
- createdDateTime: "2021-10-04T22:13:50.397Z",
45
- state: IModelState.Initialized,
46
- projectId: mockITwinId,
47
- extent: null,
48
- _links: {
49
- creator: {
50
- href: "",
51
- },
52
- namedVersions: {
53
- href: "",
54
- },
55
- changesets: {
56
- href: "",
57
- },
58
- },
59
- },
60
- },
61
- {
62
- iModel: {
63
- id: mockIModelId2,
64
- displayName: "rAnDoMdIsPlAynAmE2",
65
- name: "rAnDomName2",
66
- description: "rAnDoMDeScRiPtIoN2",
67
- createdDateTime: "2021-10-04T22:13:50.397Z",
68
- state: IModelState.Initialized,
69
- projectId: mockITwinId,
70
- extent: null,
71
- _links: {
72
- creator: {
73
- href: "",
74
- },
75
- namedVersions: {
76
- href: "",
77
- },
78
- changesets: {
79
- href: "",
80
- },
81
- },
82
- },
83
- },
84
- ];
31
+ import type { IModelOperations, OperationOptions } from "@itwin/imodels-client-management/lib/operations";
85
32
 
86
33
  const mockProjectIModels = {
87
34
  iModels: mockIModelsResponse.map((iModel) => ({
@@ -191,6 +138,7 @@ const mockBulkExtractor = moq.Mock.ofType<BulkExtractor>();
191
138
  const mockIModelsClient = moq.Mock.ofType<IModelOperations<OperationOptions>>();
192
139
 
193
140
  jest.mock("../widget/components/Constants.ts", () => ({
141
+ ...jest.requireActual("../widget/components/Constants.ts"),
194
142
  STATUS_CHECK_INTERVAL: 10,
195
143
  }));
196
144
 
@@ -7,7 +7,10 @@ import "@testing-library/jest-dom";
7
7
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
8
8
  import {
9
9
  act,
10
- mockITwinId,
10
+ mockIModelId1,
11
+ mockIModelId2,
12
+ mockIModelsResponse,
13
+ mockReportId,
11
14
  render,
12
15
  screen,
13
16
  waitFor,
@@ -26,68 +29,13 @@ import {
26
29
  ReportsClient,
27
30
  } from "@itwin/insights-client";
28
31
  import { ReportMappings } from "../widget/components/ReportMappings";
29
- import type { GetSingleIModelParams, IModelOperations, IModelsClient, OperationOptions } from "@itwin/imodels-client-management";
30
- import { IModelState } from "@itwin/imodels-client-management";
32
+ import type { GetSingleIModelParams, IModelsClient } from "@itwin/imodels-client-management";
31
33
  import { BulkExtractor } from "../widget/components/BulkExtractor";
32
34
  import type { ReportMappingHorizontalTileProps } from "../widget/components/ReportMappingHorizontalTile";
33
35
  import { Text } from "@itwin/itwinui-react";
34
36
  import { EmptyLocalization } from "@itwin/core-common";
35
37
  import type { AddMappingsModalProps } from "../widget/components/AddMappingsModal";
36
-
37
- // Lets work with two iModels for now.
38
- const mockIModelId1 = "mockIModelId1";
39
- const mockIModelId2 = "mockIModelId2";
40
-
41
- const mockReportId = "mockReportId";
42
-
43
- const mockIModelsResponse = [
44
- {
45
- iModel: {
46
- id: mockIModelId1,
47
- displayName: "rAnDoMdIsPlAynAmE1",
48
- name: "rAnDomName1",
49
- description: "rAnDoMDeScRiPtIoN1",
50
- createdDateTime: "2021-10-04T22:13:50.397Z",
51
- state: IModelState.Initialized,
52
- projectId: mockITwinId,
53
- extent: null,
54
- _links: {
55
- creator: {
56
- href: "",
57
- },
58
- namedVersions: {
59
- href: "",
60
- },
61
- changesets: {
62
- href: "",
63
- },
64
- },
65
- },
66
- },
67
- {
68
- iModel: {
69
- id: mockIModelId2,
70
- displayName: "rAnDoMdIsPlAynAmE2",
71
- name: "rAnDomName2",
72
- description: "rAnDoMDeScRiPtIoN2",
73
- createdDateTime: "2021-10-04T22:13:50.397Z",
74
- state: IModelState.Initialized,
75
- projectId: mockITwinId,
76
- extent: null,
77
- _links: {
78
- creator: {
79
- href: "",
80
- },
81
- namedVersions: {
82
- href: "",
83
- },
84
- changesets: {
85
- href: "",
86
- },
87
- },
88
- },
89
- },
90
- ];
38
+ import type { IModelOperations, OperationOptions } from "@itwin/imodels-client-management/lib/operations";
91
39
 
92
40
  const mockProjectIModels = {
93
41
  iModels: mockIModelsResponse.map((iModel) => ({
@@ -188,6 +136,7 @@ const mockMappingsFactory = (
188
136
  };
189
137
 
190
138
  jest.mock("../widget/components/Constants.ts", () => ({
139
+ ...jest.requireActual("../widget/components/Constants.ts"),
191
140
  STATUS_CHECK_INTERVAL: 10,
192
141
  }));
193
142