Skip to content

Commit 0e02be4

Browse files
CalebGermanhnn0003diegopinate
authored
Remove all deprecated references from iTwin.js 5.x in changed-elements-react (#264)
Currently, PropertyComparisonTable accepts selection as KeySet, which is part of the deprecated unified selection system. Selectables are replacing KeySet from @itwin/unified-selection package. PopertyComparisonTable should accept Selectables. Updated all Itwin JS to 5.x.x and stopped using deprecated methods. fixes: - [#246](#246) - [#243](#243) --------- Co-authored-by: Heather Root <18196761+hnn0003@users.noreply.github.com> Co-authored-by: Diego Pinate <diegopinatem@gmail.com>
1 parent d351ccf commit 0e02be4

18 files changed

Lines changed: 1205 additions & 807 deletions

.changeset/itchy-rabbits-see.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@itwin/changed-elements-react": major
3+
---
4+
5+
# Major Change
6+
7+
Updated all Itwin JS to 5.x.x and stopped using deprecated methods.
8+
This is a breaking change and will require updates to consumers of this package in their implementation of their property comparison frontstage.

package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,19 @@
3636
"pnpm": {
3737
"overrides": {
3838
"@babel/runtime@<7.26.10": ">=7.26.10",
39-
"@itwin/appui-abstract": "^5.0.0-dev.111",
40-
"@itwin/core-bentley": "^5.0.0-dev.111",
41-
"@itwin/core-quantity": "^5.0.0-dev.111",
42-
"@itwin/core-react": "^5.4.0",
43-
"axios@<1.8.2": ">=1.8.2",
39+
"@itwin/appui-abstract": "^5.1.7",
40+
"@itwin/core-bentley": "^5.1.7",
41+
"@itwin/core-quantity": "^5.1.7",
42+
"@itwin/core-react": "^5.15.0",
43+
"axios": ">=1.12.2",
4444
"dompurify@<3.2.4": ">=3.2.4",
4545
"esbuild@<=0.24.2": ">=0.25.0",
4646
"eslint-plugin-prettier": ">=5.5.3",
4747
"eslint-config-prettier": ">=10.1.8",
4848
"form-data": ">=4.0.4",
4949
"synckit": ">=0.11.11",
50-
"@pkgr/core": ">=0.2.9"
50+
"@pkgr/core": ">=0.2.9",
51+
"path-to-regexp": "0.1.12"
5152
},
5253
"onlyBuiltDependencies": [
5354
"@bentley/imodeljs-native",

packages/changed-elements-react/package.json

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,20 @@
4242
"typecheck": "tsc --noEmit"
4343
},
4444
"devDependencies": {
45-
"@itwin/appui-abstract": "^5.0.0-dev.111",
46-
"@itwin/components-react": "^5.4.0",
47-
"@itwin/core-bentley": "^5.0.0-dev.111",
48-
"@itwin/core-common": "^5.0.0-dev.111",
49-
"@itwin/core-frontend": "^5.0.0-dev.111",
50-
"@itwin/core-geometry": "^5.0.0-dev.111",
51-
"@itwin/core-react": "^5.4.0",
52-
"@itwin/presentation-common": "^5.0.0-dev.111",
53-
"@itwin/presentation-components": "^5.12.1",
54-
"@itwin/presentation-frontend": "^5.0.0-dev.111",
45+
"@itwin/appui-abstract": "^5.1.7",
46+
"@itwin/components-react": "^5.15.0",
47+
"@itwin/core-bentley": "^5.1.7",
48+
"@itwin/core-common": "^5.1.7",
49+
"@itwin/core-frontend": "^5.1.7",
50+
"@itwin/core-geometry": "^5.1.7",
51+
"@itwin/core-react": "^5.15.0",
52+
"@itwin/core-orbitgt": "^5.1.7",
53+
"@itwin/presentation-common": "^5.1.7",
54+
"@itwin/presentation-components": "^5.12.8",
55+
"@itwin/presentation-core-interop": "^1.3.4",
56+
"@itwin/presentation-frontend": "^5.1.7",
57+
"@itwin/unified-selection": "^1.5.1",
58+
"@itwin/unified-selection-react": "^1.0.1",
5559
"@testing-library/react": "^16.2.0",
5660
"@types/react": "^18.0.0",
5761
"@types/react-redux": "^7.1.25",
@@ -72,16 +76,17 @@
7276
"vitest": "^2.1.9"
7377
},
7478
"peerDependencies": {
75-
"@itwin/appui-abstract": "^5.0.0-dev.111",
76-
"@itwin/components-react": "^5.4.0",
77-
"@itwin/core-bentley": "^5.0.0-dev.111",
78-
"@itwin/core-common": "^5.0.0-dev.111",
79-
"@itwin/core-frontend": "^5.0.0-dev.111",
80-
"@itwin/core-geometry": "^5.0.0-dev.111",
81-
"@itwin/core-react": "^5.4.0",
82-
"@itwin/presentation-common": "^5.0.0-dev.111",
83-
"@itwin/presentation-components": "^5.12.1",
84-
"@itwin/presentation-frontend": "^5.0.0-dev.111",
79+
"@itwin/appui-abstract": "^5.1.7",
80+
"@itwin/components-react": "^5.15.0",
81+
"@itwin/core-bentley": "^5.1.7",
82+
"@itwin/core-common": "^5.1.7",
83+
"@itwin/core-frontend": "^5.1.7",
84+
"@itwin/core-geometry": "^5.1.7",
85+
"@itwin/core-react": "^5.15.0",
86+
"@itwin/core-orbitgt": "^5.1.7",
87+
"@itwin/presentation-common": "^5.1.7",
88+
"@itwin/presentation-components": "^5.12.8",
89+
"@itwin/presentation-frontend": "^5.1.7",
8590
"react": "^18.0.0",
8691
"react-dom": "^18.0.0"
8792
},

packages/changed-elements-react/src/api/SideBySideVisualizationManager.ts

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ import {
1010
} from "@itwin/core-frontend";
1111
import { Range3d } from "@itwin/core-geometry";
1212
import type { InstanceKey } from "@itwin/presentation-common";
13+
import { createECSqlQueryExecutor } from "@itwin/presentation-core-interop";
1314
import { Presentation } from "@itwin/presentation-frontend";
15+
import { computeSelection, SelectableInstanceKey, type SelectionStorage } from "@itwin/unified-selection";
1416

1517
import type { NamedVersion } from "../clients/iModelsClient.js";
1618
import { SideBySideLabelDecorator, ViewportLabelDecoration } from "../contentviews/ViewportLabel.js";
@@ -43,6 +45,7 @@ export class SideBySideVisualizationManager {
4345
private _primaryViewport: ScreenViewport,
4446
private _secondaryViewport: ScreenViewport,
4547
private _wantZooming: boolean,
48+
private _selectionStorage: SelectionStorage,
4649
) { }
4750

4851
/**
@@ -191,22 +194,26 @@ export class SideBySideVisualizationManager {
191194
*/
192195
public async selectInstanceWithScope(instanceKey: InstanceKey): Promise<void> {
193196
if (this._currentIModel && this._targetIModel) {
197+
const selectables: SelectableInstanceKey[] = [];
198+
for await (const selectable of computeSelection({
199+
queryExecutor: createECSqlQueryExecutor(this._currentIModel),
200+
elementIds: [instanceKey.id],
201+
scope: { id: "element", ancestorLevel: 1 },
202+
})) {
203+
selectables.push(selectable);
204+
}
205+
const selectables2: SelectableInstanceKey[] = [];
206+
for await (const selectable of computeSelection({
207+
queryExecutor: createECSqlQueryExecutor(this._targetIModel),
208+
elementIds: [instanceKey.id],
209+
scope: { id: "element", ancestorLevel: 1 },
210+
})) {
211+
selectables2.push(selectable);
212+
}
213+
194214
// Clear selections and add the selected element
195-
const scope = Presentation.selection.scopes.activeScope
196-
? Presentation.selection.scopes.activeScope
197-
: "element";
198-
await Presentation.selection.replaceSelectionWithScope(
199-
"SideBySideVisualizationManager",
200-
this._currentIModel,
201-
instanceKey.id,
202-
scope,
203-
);
204-
await Presentation.selection.replaceSelectionWithScope(
205-
"SideBySideVisualizationManager",
206-
this._targetIModel,
207-
instanceKey.id,
208-
scope,
209-
);
215+
this._selectionStorage.replaceSelection({ source: "SideBySideVisualizationManager", imodelKey: this._currentIModel.key, selectables: selectables });
216+
this._selectionStorage.replaceSelection({ source: "SideBySideVisualizationManager", imodelKey: this._targetIModel.key, selectables: selectables2});
210217
}
211218
}
212219

packages/test-app-backend/package.json

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,24 @@
1515
"@types/express": "5.0.0"
1616
},
1717
"dependencies": {
18-
"@itwin/core-backend": "^5.0.0-dev.111",
19-
"@itwin/core-bentley": "^5.0.0-dev.111",
20-
"@itwin/core-common": "^5.0.0-dev.111",
21-
"@itwin/express-server": "^5.0.0-dev.111",
22-
"@itwin/imodels-access-backend": "^6.0.0-dev.1",
23-
"@itwin/imodels-client-authoring": "^6.0.0-dev.1",
24-
"@itwin/presentation-backend": "^5.0.0-dev.111",
25-
"@itwin/presentation-common": "^5.0.0-dev.111",
26-
"@itwin/object-storage-azure": "^3.0.1",
18+
"@itwin/core-backend": "^5.1.7",
19+
"@itwin/core-bentley": "^5.1.7",
20+
"@itwin/core-common": "^5.1.7",
21+
"@itwin/core-quantity": "^5.1.7",
22+
"@itwin/ecschema-rpcinterface-common": "^5.1.7",
23+
"@itwin/ecschema-rpcinterface-impl": "^5.1.7",
24+
"@itwin/express-server": "^5.1.7",
25+
"@itwin/imodels-access-backend": "^6.0.1",
26+
"@itwin/imodels-client-authoring": "^6.0.1",
27+
"@itwin/object-storage-azure": "^3.0.2",
28+
"@itwin/presentation-backend": "^5.1.7",
29+
"@itwin/presentation-common": "^5.1.7",
2730
"@types/dotenv-flow": "^3.2.0",
2831
"@types/node": "^18.0.0",
2932
"dotenv-flow": "^3.2.0",
30-
"express": "4.21.2",
33+
"express": "4.21.0",
34+
"inversify": "^7.9.1",
35+
"reflect-metadata": "^0.2.2",
3136
"ts-node-dev": "^2.0.0",
3237
"typescript": "~5.5.4"
3338
}

packages/test-app-backend/src/ChangedInstancesProcessor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export class ChangedInstancesProcessor {
8181
changesetFileProps: Partial<ChangesetFileProps>[],
8282
db: IModelDb,
8383
): Promise<ChangedECInstance[]> {
84-
const ecChangeUnifier = new PartialECChangeUnifier();
84+
const ecChangeUnifier = new PartialECChangeUnifier(db);
8585

8686
const changesetFilePaths = changesetFileProps
8787
.filter((csFile) => csFile.pathname !== undefined)

packages/test-app-backend/src/main.ts

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
33
* See LICENSE.md in the project root for license terms and full copyright notice.
44
*--------------------------------------------------------------------------------------------*/
5-
import express from "express";
65
import { IModelHost } from "@itwin/core-backend";
76
import { Logger, LogLevel } from "@itwin/core-bentley";
8-
import { BentleyCloudRpcManager, HttpServerRequest, HttpServerResponse, IModelReadRpcInterface, IModelTileRpcInterface, RpcManager } from "@itwin/core-common";
7+
import { BentleyCloudRpcManager, IModelReadRpcInterface, IModelTileRpcInterface, RpcManager } from "@itwin/core-common";
8+
import { ECSchemaRpcInterface } from "@itwin/ecschema-rpcinterface-common";
9+
import { ECSchemaRpcImpl } from "@itwin/ecschema-rpcinterface-impl";
910
import { IModelJsExpressServer } from "@itwin/express-server";
1011
import { BackendIModelsAccess } from "@itwin/imodels-access-backend";
1112
import { IModelsClientOptions } from "@itwin/imodels-client-authoring";
13+
import { AzureClientStorage, BlockBlobClientWrapperFactory } from "@itwin/object-storage-azure";
1214
import { Presentation } from "@itwin/presentation-backend";
1315
import { PresentationRpcInterface } from "@itwin/presentation-common";
1416
import { config } from "dotenv-flow";
15-
import { ChangesRpcInterface } from "./RPC/ChangesRpcInterface";
1617
import { ChangesRpcImpl } from "./RPC/ChangesRpcImpl";
17-
import { AzureClientStorage, BlockBlobClientWrapperFactory } from "@itwin/object-storage-azure";
18+
import { ChangesRpcInterface } from "./RPC/ChangesRpcInterface";
1819

1920
config({ path: "../test-app-frontend" });
2021

@@ -35,17 +36,14 @@ void (async () => {
3536
hubAccess: new BackendIModelsAccess(opts),
3637
});
3738
Presentation.initialize();
39+
ECSchemaRpcImpl.register();
3840
RpcManager.registerImpl(ChangesRpcInterface, ChangesRpcImpl);
3941
const rpcConfig = BentleyCloudRpcManager.initializeImpl(
4042
{ info: { title: "test-app-backend", version: "v1.0" } },
41-
[IModelReadRpcInterface, IModelTileRpcInterface, PresentationRpcInterface, ChangesRpcInterface],
43+
[IModelReadRpcInterface, IModelTileRpcInterface, PresentationRpcInterface, ChangesRpcInterface, ECSchemaRpcInterface],
4244
);
43-
const app = express();
45+
4446
const server = new IModelJsExpressServer(rpcConfig.protocol);
4547
await server.initialize(port);
4648
console.log(`Backend (PID ${process.pid}) is listening on port ${port}.`);
47-
48-
app.post("*", async (request: HttpServerRequest, response: HttpServerResponse) => {
49-
await rpcConfig.protocol.handleOperationPostRequest(request, response);
50-
});
5149
})();

packages/test-app-frontend/package.json

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,34 @@
1616
},
1717
"dependencies": {
1818
"@bentley/icons-generic-webfont": "^1.0.34",
19-
"@itwin/appui-abstract": "^5.0.0-dev.111",
19+
"@itwin/appui-abstract": "^5.1.7",
2020
"@itwin/appui-layout-react": "^4.8.3",
21-
"@itwin/appui-react": "^5.4.0",
21+
"@itwin/appui-react": "^5.15.0",
2222
"@itwin/changed-elements-react": "workspace:*",
23-
"@itwin/components-react": "^5.4.0",
24-
"@itwin/core-bentley": "^5.0.0-dev.111",
25-
"@itwin/core-common": "^5.0.0-dev.111",
26-
"@itwin/core-frontend": "^5.0.0-dev.111",
27-
"@itwin/core-i18n": "^5.0.0-dev.111",
28-
"@itwin/core-react": "^5.4.0",
29-
"@itwin/imodel-components-react": "^5.4.0",
30-
"@itwin/imodels-access-frontend": "^6.0.0-dev.1",
31-
"@itwin/imodels-client-management": "^6.0.0-dev.1",
32-
"@itwin/itwinui-icons-react": "^2.9.0",
23+
"@itwin/components-react": "^5.15.0",
24+
"@itwin/core-bentley": "^5.1.7",
25+
"@itwin/core-common": "^5.1.7",
26+
"@itwin/core-frontend": "^5.1.7",
27+
"@itwin/core-i18n": "^5.1.7",
28+
"@itwin/core-react": "^5.15.0",
29+
"@itwin/core-orbitgt": "^5.1.7",
30+
"@itwin/ecschema-metadata": "^5.1.7",
31+
"@itwin/ecschema-rpcinterface-common": "^5.1.7",
32+
"@itwin/imodel-components-react": "^5.15.0",
33+
"@itwin/imodels-access-frontend": "^6.0.1",
34+
"@itwin/imodels-client-management": "^6.0.1",
35+
"@itwin/itwinui-icons-react": "^2.11.0",
3336
"@itwin/itwinui-illustrations-react": "^2.1.0",
3437
"@itwin/itwinui-layouts-css": "^0.4.0",
3538
"@itwin/itwinui-layouts-react": "^0.4.1",
36-
"@itwin/itwinui-react": "^3.16.0",
37-
"@itwin/presentation-common": "^5.0.0-dev.111",
38-
"@itwin/presentation-components": "^5.12.1",
39-
"@itwin/presentation-frontend": "^5.0.0-dev.111",
39+
"@itwin/itwinui-react": "^3.19.4",
40+
"@itwin/presentation-common": "^5.1.7",
41+
"@itwin/presentation-components": "^5.12.8",
42+
"@itwin/presentation-core-interop": "^1.3.4",
43+
"@itwin/presentation-frontend": "^5.1.7",
44+
"@itwin/presentation-shared": "^1.2.3",
45+
"@itwin/unified-selection": "^1.5.1",
46+
"@itwin/unified-selection-react": "^1.0.1",
4047
"@types/dotenv-flow": "^3.2.0",
4148
"@types/react": "^18.0.0",
4249
"@types/react-dom": "^18.0.0",

0 commit comments

Comments
 (0)