Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
"presentation-test-utilities": "0.0.0",
"@itwin/presentation-testing": "5.3.1",
"@itwin/unified-selection": "1.3.0",
"@itwin/unified-selection-react": "1.0.0"
"@itwin/unified-selection-react": "1.0.0",
"@itwin/presentation-content": "0.1.0"
},
"changesets": [
"add-ecsql-class-selector",
"all-meals-fetch",
"angry-wings-accept",
"big-squids-crash",
Expand All @@ -34,8 +36,8 @@
"clean-games-care",
"clever-boats-knock",
"common-memes-bake",
"cool-apples-tap",
"define-hierarchy-level-factories",
"direct-class-properties",
"dirty-hounds-divide",
"dry-apes-do",
"eager-wolves-wonder",
Expand All @@ -50,17 +52,17 @@
"fast-parents-read",
"flat-dodos-smile",
"fluffy-oranges-raise",
"forty-sides-dig",
"four-bags-look",
"four-drinks-sneeze",
"four-shoes-repeat",
"four-toys-fetch",
"fruity-kiwis-cross",
"fuzzy-chairs-win",
"gentle-otters-cover",
"gentle-socks-shout",
"gold-days-end",
"good-actors-dance",
"good-bobcats-matter",
"good-hawks-dig",
"great-boxes-joke",
"green-candies-refuse",
"grumpy-trains-cough",
Expand All @@ -69,7 +71,6 @@
"honest-suits-check",
"honest-wasps-scream",
"hot-cheetahs-hope",
"hungry-bees-love",
"hungry-otters-wave",
"icy-islands-bake",
"imodel-instance-label-override-factory",
Expand All @@ -79,14 +80,15 @@
"kind-meals-eat",
"late-wings-act",
"legal-sites-marry",
"loud-crews-behave",
"lovely-terms-switch",
"lucky-mirrors-allow",
"many-starfishes-brake",
"metal-shoes-change",
"mighty-heads-yell",
"modern-eels-chew",
"moody-doodles-work",
"named-ecsql-bindings-core-interop",
"named-ecsql-bindings-hierarchies",
"named-ecsql-bindings-shared",
"new-buses-raise",
"ninety-cooks-join",
"ninety-geese-jam",
Expand All @@ -102,8 +104,10 @@
"plain-impalas-hunt",
"plenty-boats-judge",
"plenty-pillows-tickle",
"property-category",
"proud-jeans-bow",
"purple-dots-knock",
"query-cancellation",
"quiet-games-wear",
"real-pets-cover",
"red-hats-hug",
Expand All @@ -113,34 +117,35 @@
"ripe-tires-peel",
"rude-rivers-post",
"sad-mugs-pump",
"schema-version-core-interop",
"schema-version-shared",
"shaggy-shoes-deny",
"sharp-tires-add",
"silver-towns-feel",
"six-days-write",
"six-melons-cough",
"sixty-spies-jump",
"slimy-dodos-battle",
"smart-teeth-visit",
"solid-eggs-write",
"solid-eyes-bathe",
"solid-peaches-bathe",
"stale-schools-burn",
"strong-maps-start",
"stupid-cameras-obey",
"stupid-otters-listen",
"sweet-cougars-rhyme",
"swift-bears-dance",
"tall-bugs-march",
"tame-years-make",
"ten-crabs-look",
"tender-carrots-search",
"thirty-ends-sit",
"tidy-stars-poke",
"tricky-rings-learn",
"twelve-roses-fry",
"twenty-berries-collect",
"twenty-words-slide",
"upset-candies-drop",
"violet-lies-design",
"wacky-birds-watch",
"warm-books-sing",
"wise-plants-try",
"wise-stamps-wait",
"young-forks-punch",
Expand Down
15 changes: 15 additions & 0 deletions packages/core-interop/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# @itwin/presentation-core-interop

## 2.0.0-alpha.2

### Minor Changes

- [#1445](https://github.com/iTwin/presentation/pull/1445): `EC.Class`: Added `getOwnProperties` method that returns only the properties defined directly on the class, excluding those inherited from base classes.
- [#1350](https://github.com/iTwin/presentation/pull/1350): `createECSqlQueryExecutor`: Updated to handle both positional and named bindings when creating query readers.
- [#1444](https://github.com/iTwin/presentation/pull/1444): `EC.Property`: Added `category` attribute that provides access to the property's `EC.PropertyCategory`. Also added a `description` attribute to `EC.SchemaItem`.
- [#1363](https://github.com/iTwin/presentation/pull/1363): `createECSchemaProvider`: Populate `version` property on `EC.Schema` objects from the underlying `@itwin/ecschema-metadata` schema version fields.

### Patch Changes

- [#1377](https://github.com/iTwin/presentation/pull/1377): `createECSqlQueryExecutor`: queries are now automatically cancelled when consumers break out of iteration.
- Updated dependencies:
- @itwin/presentation-shared@2.0.0-alpha.11

## 2.0.0-alpha.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core-interop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@itwin/presentation-core-interop",
"version": "2.0.0-alpha.1",
"version": "2.0.0-alpha.2",
"description": "The package acts as a layer between iTwin.js Core and Presentation packages.",
"license": "MIT",
"author": {
Expand Down
10 changes: 10 additions & 0 deletions packages/hierarchies-react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @itwin/presentation-hierarchies-react

## 2.0.0-alpha.63

### Patch Changes

- [#1325](https://github.com/iTwin/presentation/pull/1325): Add accessible name for tree context menu.
- Updated dependencies:
- @itwin/presentation-shared@2.0.0-alpha.11
- @itwin/presentation-hierarchies@2.0.0-alpha.16
- @itwin/unified-selection@1.8.1-alpha.0

## 2.0.0-alpha.62

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/hierarchies-react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@itwin/presentation-hierarchies-react",
"version": "2.0.0-alpha.62",
"version": "2.0.0-alpha.63",
"description": "React components based on `@itwin/presentation-hierarchies`",
"license": "MIT",
"author": {
Expand Down
15 changes: 15 additions & 0 deletions packages/hierarchies/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# @itwin/presentation-hierarchies

## 2.0.0-alpha.16

### Major Changes

- [#1350](https://github.com/iTwin/presentation/pull/1350): **Breaking:** `createInstanceKeysFilteredQuery` now correctly appends `IdSet` bindings in both positional and named binding formats, using the `IdSet` virtual table instead of `InVirtualSet`.

Consumers that provide their own `LimitingECSqlQueryExecutor` or `imodelAccess` may now receive named bindings (`Record<string, ECSqlBinding>`) through the public `createQueryReader` path.

To migrate, update custom query reader / executor implementations to handle both positional bindings (`ECSqlBinding[]`) and named bindings (`Record<string, ECSqlBinding>`), or use the default implementation provided by the `@itwin/presentation-core-interop` package, `createECSqlQueryExecutor` function.

### Patch Changes

- Updated dependencies:
- @itwin/presentation-shared@2.0.0-alpha.11

## 2.0.0-alpha.15

### Major Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/hierarchies/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@itwin/presentation-hierarchies",
"version": "2.0.0-alpha.15",
"version": "2.0.0-alpha.16",
"description": "A package for creating hierarchies based on data in iTwin.js iModels.",
"license": "MIT",
"author": {
Expand Down
89 changes: 89 additions & 0 deletions packages/shared/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,94 @@
# @itwin/presentation-shared

## 2.0.0-alpha.11

### Major Changes

- [#1445](https://github.com/iTwin/presentation/pull/1445): `EC.Class`: Added `getOwnProperties` method that returns only the properties defined directly on the class, excluding those inherited from base classes.
- [#1360](https://github.com/iTwin/presentation/pull/1360): **Breaking:** `createRelationshipPathJoinClause` now returns `{ joins: string; bindings?: Record<string, ECSqlBinding> }` instead of a plain `string`. Callers must be updated to read the SQL clause from the `joins` property:

```ts
// Before
const joinClause = await createRelationshipPathJoinClause({
schemaProvider,
path,
});

// After
const { joins: joinClause, bindings } =
await createRelationshipPathJoinClause({ schemaProvider, path });
```

`RelationshipPathStep` now accepts an optional `instanceFilter` attribute. When provided, the resolved expression is appended as an `AND` condition to the relevant JOIN's `ON` clause. ECSQL parameter bindings declared in `instanceFilter.bindings` are collected across all steps and returned in the `bindings` field of the result.

- [#1350](https://github.com/iTwin/presentation/pull/1350): **Breaking:** `ECSqlQueryDef.bindings` is now `ECSqlBinding[] | Record<string, ECSqlBinding>` (previously `ECSqlBinding[]`). This is non-breaking for consumers who only define queries, but breaking for code that reads or forwards bindings (e.g., custom `ECSqlQueryExecutor` implementations) because it must now handle both formats.

Migration example:

```ts
// Before
function handleBindings(bindings: ECSqlBinding[]) {
bindings.forEach((b, i) => bind(i + 1, b));
}

// After
function handleBindings(
bindings: ECSqlBinding[] | Record<string, ECSqlBinding>
) {
const entries: Array<[string | number, ECSqlBinding]> = Array.isArray(
bindings
)
? bindings.map((b, i) => [i + 1, b])
: Object.entries(bindings);
for (const [key, b] of entries) {
bind(key, b);
}
}
```

Alternatively, update to the latest `@itwin/presentation-core-interop` which handles both binding formats out of the box.

- [#1444](https://github.com/iTwin/presentation/pull/1444): `EC.Property`: Added `category` attribute that provides access to the property's `EC.PropertyCategory`. Also added a `description` attribute to `EC.SchemaItem`.
- [#1363](https://github.com/iTwin/presentation/pull/1363): **Breaking:** Add `version` property to `EC.Schema` interface. Any code that manually implements the `EC.Schema` interface must now provide a `version: { read: number; write: number; minor: number }` object matching the EC schema version format `"read.write.minor"`.

Consumers who obtain `EC.Schema` objects exclusively through `createECSchemaProvider` from `@itwin/presentation-core-interop` are unaffected — upgrading to the latest `@itwin/presentation-core-interop` is sufficient.

Migration example for custom `EC.Schema` implementations:

```ts
// Before
const schema: EC.Schema = {
name: "MySchema",
getClass: async () => undefined,
getCustomAttributes: async () => new Map(),
};

// After
const schema: EC.Schema = {
name: "MySchema",
version: { read: 1, write: 0, minor: 0 },
getClass: async () => undefined,
getCustomAttributes: async () => new Map(),
};
```

### Minor Changes

- [#1379](https://github.com/iTwin/presentation/pull/1379): `ECSql.createClassSelector`: Add a utility that creates a bracket-quoted ECSQL class selector (`[SchemaName].[ClassName]`) from a full class name.
- [#1361](https://github.com/iTwin/presentation/pull/1361): `TypedPrimitiveValue`: The `type` fields now use `Extract<PrimitiveValueType, ...>` to stay in sync with `PrimitiveValueType`. Additionally, the `koqName` property is now available for `"Integer"` and `"Long"` typed values, not just `"Double"`.
- [#1357](https://github.com/iTwin/presentation/pull/1357): Added new public APIs for describing and carrying property values:

- `ValueDescriptor` — a discriminated union (`PrimitiveValueDescriptor | StructValueDescriptor | ArrayValueDescriptor | NavigationValueDescriptor`) that describes the shape of a value without carrying the value itself.
- `NavigationValueDescriptor` — describes a navigation property value (a reference to another EC instance). The runtime value stays the referenced instance's id, while this descriptor additionally carries the reference's target class name (`targetClassName`) as metadata.
- `PrimitiveValueDescriptor` now carries optional enumeration metadata (via `enumeration`) for enumeration-backed values. Only available on `String | Integer | Long`-typed descriptors, with the enumerator value type discriminated by `type` (`String` → `string`, `Integer | Long` → `number`). The runtime value stays the raw backing primitive, while the descriptor preserves the enumeration's name, strictness, and declared enumerators (value, label, optional description) so consumers can map raw values to display labels without re-reading schema.
- `StructValue` and `ArrayValue` — composite value types complementing the existing `PrimitiveValue`. `Value` is the new top-level union (`PrimitiveValue | StructValue | ArrayValue | undefined`) that represents any value that can be assigned to an EC instance property.

### Patch Changes

- [#1429](https://github.com/iTwin/presentation/pull/1429): `createRelationshipPathJoinClause`: The step `instanceFilter` alias placeholders are now substituted in both their bare (`this.`, `rel.`) and bracket-quoted (`[this].`, `[rel].`) forms.

Previously only the bare form was replaced, so a bracket-quoted placeholder was left referencing a non-existent alias in the generated JOIN `ON` clause.

## 2.0.0-alpha.10

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/shared/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@itwin/presentation-shared",
"version": "2.0.0-alpha.10",
"version": "2.0.0-alpha.11",
"description": "The package contains types and utilities used across different iTwin.js Presentation packages.",
"license": "MIT",
"author": {
Expand Down
7 changes: 7 additions & 0 deletions packages/unified-selection/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @itwin/unified-selection

## 1.8.1-alpha.0

### Patch Changes

- Updated dependencies:
- @itwin/presentation-shared@2.0.0-alpha.11

## 1.8.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/unified-selection/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@itwin/unified-selection",
"version": "1.8.0",
"version": "1.8.1-alpha.0",
"description": "Package for managing unified selection in iTwin.js applications.",
"license": "MIT",
"repository": {
Expand Down