@itwin/presentation-shared 2.0.0-alpha.1 → 2.0.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +296 -1
- package/README.md +27 -9
- package/lib/cjs/presentation-shared.d.ts +18 -10
- package/lib/cjs/presentation-shared.d.ts.map +1 -1
- package/lib/cjs/presentation-shared.js +11 -6
- package/lib/cjs/presentation-shared.js.map +1 -1
- package/lib/cjs/shared/ConcatenatedValue.d.ts +1 -1
- package/lib/cjs/shared/ConcatenatedValue.d.ts.map +1 -1
- package/lib/cjs/shared/ECSqlCore.d.ts +7 -2
- package/lib/cjs/shared/ECSqlCore.d.ts.map +1 -1
- package/lib/cjs/shared/Event.d.ts +20 -2
- package/lib/cjs/shared/Event.d.ts.map +1 -1
- package/lib/cjs/shared/Formatting.d.ts +1 -1
- package/lib/cjs/shared/Formatting.d.ts.map +1 -1
- package/lib/cjs/shared/Formatting.js +10 -6
- package/lib/cjs/shared/Formatting.js.map +1 -1
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -136
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
- package/lib/cjs/shared/Logging.js +2 -1
- package/lib/cjs/shared/Logging.js.map +1 -1
- package/lib/cjs/shared/MappedTypes.d.ts +3 -13
- package/lib/cjs/shared/MappedTypes.d.ts.map +1 -1
- package/lib/cjs/shared/Metadata.d.ts +225 -11
- package/lib/cjs/shared/Metadata.d.ts.map +1 -1
- package/lib/cjs/shared/Metadata.js +4 -1
- package/lib/cjs/shared/Metadata.js.map +1 -1
- package/lib/cjs/shared/Utils.d.ts +12 -1
- package/lib/cjs/shared/Utils.d.ts.map +1 -1
- package/lib/cjs/shared/Utils.js +37 -11
- package/lib/cjs/shared/Utils.js.map +1 -1
- package/lib/cjs/shared/Values.d.ts +27 -13
- package/lib/cjs/shared/Values.d.ts.map +1 -1
- package/lib/cjs/shared/Values.js +13 -51
- package/lib/cjs/shared/Values.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +20 -5
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +56 -25
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +12 -3
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +21 -6
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/index.d.ts +1 -1
- package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/index.js +2 -1
- package/lib/cjs/shared/ecsql-snippets/index.js.map +1 -1
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +54 -0
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +63 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +40 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +10 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +336 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts +7 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.js +26 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +1 -0
- package/lib/esm/presentation-shared.d.ts +18 -10
- package/lib/esm/presentation-shared.d.ts.map +1 -1
- package/lib/esm/presentation-shared.js +7 -4
- package/lib/esm/presentation-shared.js.map +1 -1
- package/lib/esm/shared/ConcatenatedValue.d.ts +1 -1
- package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -1
- package/lib/esm/shared/ECSqlCore.d.ts +7 -2
- package/lib/esm/shared/ECSqlCore.d.ts.map +1 -1
- package/lib/esm/shared/Event.d.ts +20 -2
- package/lib/esm/shared/Event.d.ts.map +1 -1
- package/lib/esm/shared/Formatting.d.ts +1 -1
- package/lib/esm/shared/Formatting.d.ts.map +1 -1
- package/lib/esm/shared/Formatting.js +10 -6
- package/lib/esm/shared/Formatting.js.map +1 -1
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +0 -133
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
- package/lib/esm/shared/Logging.js +2 -1
- package/lib/esm/shared/Logging.js.map +1 -1
- package/lib/esm/shared/MappedTypes.d.ts +3 -13
- package/lib/esm/shared/MappedTypes.d.ts.map +1 -1
- package/lib/esm/shared/Metadata.d.ts +225 -11
- package/lib/esm/shared/Metadata.d.ts.map +1 -1
- package/lib/esm/shared/Metadata.js +4 -1
- package/lib/esm/shared/Metadata.js.map +1 -1
- package/lib/esm/shared/Utils.d.ts +12 -1
- package/lib/esm/shared/Utils.d.ts.map +1 -1
- package/lib/esm/shared/Utils.js +36 -11
- package/lib/esm/shared/Utils.js.map +1 -1
- package/lib/esm/shared/Values.d.ts +27 -13
- package/lib/esm/shared/Values.d.ts.map +1 -1
- package/lib/esm/shared/Values.js +13 -51
- package/lib/esm/shared/Values.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +20 -5
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +56 -25
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +12 -3
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +20 -6
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/index.d.ts +1 -1
- package/lib/esm/shared/ecsql-snippets/index.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/index.js +1 -1
- package/lib/esm/shared/ecsql-snippets/index.js.map +1 -1
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +51 -0
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +60 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +37 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +9 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +333 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +7 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.js +21 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +1 -0
- package/package.json +16 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,210 @@
|
|
|
1
1
|
# @itwin/presentation-shared
|
|
2
2
|
|
|
3
|
+
## 2.0.0-alpha.11
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- [#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.
|
|
8
|
+
- [#1360](https://github.com/iTwin/presentation/pull/1360): `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:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
// Before
|
|
12
|
+
const joinClause = await createRelationshipPathJoinClause({
|
|
13
|
+
schemaProvider,
|
|
14
|
+
path,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// After
|
|
18
|
+
const { joins: joinClause, bindings } =
|
|
19
|
+
await createRelationshipPathJoinClause({ schemaProvider, path });
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`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.
|
|
23
|
+
|
|
24
|
+
- [#1350](https://github.com/iTwin/presentation/pull/1350): `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.
|
|
25
|
+
|
|
26
|
+
Migration example:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
// Before
|
|
30
|
+
function handleBindings(bindings: ECSqlBinding[]) {
|
|
31
|
+
bindings.forEach((b, i) => bind(i + 1, b));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// After
|
|
35
|
+
function handleBindings(
|
|
36
|
+
bindings: ECSqlBinding[] | Record<string, ECSqlBinding>
|
|
37
|
+
) {
|
|
38
|
+
const entries: Array<[string | number, ECSqlBinding]> = Array.isArray(
|
|
39
|
+
bindings
|
|
40
|
+
)
|
|
41
|
+
? bindings.map((b, i) => [i + 1, b])
|
|
42
|
+
: Object.entries(bindings);
|
|
43
|
+
for (const [key, b] of entries) {
|
|
44
|
+
bind(key, b);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Alternatively, update to the latest `@itwin/presentation-core-interop` which handles both binding formats out of the box.
|
|
50
|
+
|
|
51
|
+
- [#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`.
|
|
52
|
+
- [#1363](https://github.com/iTwin/presentation/pull/1363): 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"`.
|
|
53
|
+
|
|
54
|
+
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.
|
|
55
|
+
|
|
56
|
+
Migration example for custom `EC.Schema` implementations:
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
// Before
|
|
60
|
+
const schema: EC.Schema = {
|
|
61
|
+
name: "MySchema",
|
|
62
|
+
getClass: async () => undefined,
|
|
63
|
+
getCustomAttributes: async () => new Map(),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// After
|
|
67
|
+
const schema: EC.Schema = {
|
|
68
|
+
name: "MySchema",
|
|
69
|
+
version: { read: 1, write: 0, minor: 0 },
|
|
70
|
+
getClass: async () => undefined,
|
|
71
|
+
getCustomAttributes: async () => new Map(),
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Minor Changes
|
|
76
|
+
|
|
77
|
+
- [#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.
|
|
78
|
+
- [#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"`.
|
|
79
|
+
- [#1357](https://github.com/iTwin/presentation/pull/1357): Added new public APIs for describing and carrying property values:
|
|
80
|
+
|
|
81
|
+
- `ValueDescriptor` — a discriminated union (`PrimitiveValueDescriptor | StructValueDescriptor | ArrayValueDescriptor | NavigationValueDescriptor`) that describes the shape of a value without carrying the value itself.
|
|
82
|
+
- `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.
|
|
83
|
+
- `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.
|
|
84
|
+
- `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.
|
|
85
|
+
|
|
86
|
+
### Patch Changes
|
|
87
|
+
|
|
88
|
+
- [#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.
|
|
89
|
+
|
|
90
|
+
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.
|
|
91
|
+
|
|
92
|
+
## 2.0.0-alpha.10
|
|
93
|
+
|
|
94
|
+
### Minor Changes
|
|
95
|
+
|
|
96
|
+
- [#1307](https://github.com/iTwin/presentation/pull/1307): Add `createIModelInstanceLabelSelectClauseFactory` — a new `IInstanceLabelSelectClauseFactory` implementation that applies `InstanceLabelOverride` rules stored in the iModel.
|
|
97
|
+
|
|
98
|
+
Rules are read from `PresentationRules.Ruleset` elements (top-level `rules[]` only) by querying the iModel via `ECSqlQueryExecutor`. All `InstanceLabelOverride` value specification types are supported: `String`, `Property`, `ClassName`, `ClassLabel`, `BriefcaseId`, `LocalId`, and `Composite`. Path-based specs (`RelatedInstanceLabel`, `Property` with `propertySource`) degrade silently to the next available value.
|
|
99
|
+
|
|
100
|
+
When the `PresentationRules` schema is not imported into the iModel, the factory falls back transparently to the provided `defaultClauseFactory` (defaults to `createBisInstanceLabelSelectClauseFactory`).
|
|
101
|
+
|
|
102
|
+
## 2.0.0-alpha.9
|
|
103
|
+
|
|
104
|
+
### Major Changes
|
|
105
|
+
|
|
106
|
+
- [#1250](https://github.com/iTwin/presentation/pull/1250): Use type-safe full class names.
|
|
107
|
+
|
|
108
|
+
The full class names used in this package were defined as `string`, although we always expect them to be in specific format - either `Schema:Class` or `Schema.Class`. In many cases we rely on this format when parsing the name for compare or other purposes, so type safety for the format is highly beneficial. This change makes full class names type-safe(ier) through [TypeScript's template literal types](https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html), so that we can be sure that they are always in correct format.
|
|
109
|
+
|
|
110
|
+
## Additions
|
|
111
|
+
|
|
112
|
+
- Added 3 new types to the `EC` namespace:
|
|
113
|
+
- `FullClassNameColonNotation` - matches the format `Schema:Class`,
|
|
114
|
+
- `FullClassNameDotNotation` - matches the format `Schema.Class`,
|
|
115
|
+
- `FullClassName` - union of the above two.
|
|
116
|
+
|
|
117
|
+
## Non-breaking changes
|
|
118
|
+
|
|
119
|
+
- Updated `normalizeFullClassName` to return `EC.FullClassNameDotNotation` instead of `string`. The returned value is still assignable to `string`, but it adds type safety for the expected format of the full class name.
|
|
120
|
+
|
|
121
|
+
## Breaking changes
|
|
122
|
+
|
|
123
|
+
- Changed `EC.CustomAttribute.className` to be of type `EC.FullClassName` instead of `string`.
|
|
124
|
+
- Changed `EC.CustomAttributeSet.get` argument to be of type `EC.FullClassName` instead of `string`.
|
|
125
|
+
- Changed `EC.SchemaItem.fullName` to be of type `EC.FullClassName` instead of `string`.
|
|
126
|
+
- Changed `compareFullClassNames` arguments to be of type `EC.FullClassName` instead of `string`.
|
|
127
|
+
- Changed `createClassBasedInstanceLabelSelectClauseFactory` prop `clauses` to take objects with `{ className: EC.FullClassName }` arguments instead of `{ className: string }`.
|
|
128
|
+
- Changed `IInstanceLabelSelectClauseFactory.createSelectClause` prop `className` to be of type `EC.FullClassName` instead of `string`.
|
|
129
|
+
- Changed `ECSql.createPrimitivePropertyValueSelectorProps` prop `propertyClassName` to be of type `EC.FullClassName` instead of `string`.
|
|
130
|
+
- Changed `ECSql.createRelationshipPathJoinClause` prop `path` to take class names (`relationshipName`, `sourceClassName` and `targetClassName`) of type `EC.FullClassName` instead of `string`.
|
|
131
|
+
- Changed `ECClassHierarchyInspector.classDerivesFrom` arguments to be of type `EC.FullClassName` instead of `string`.
|
|
132
|
+
- Changed the second argument of `getClass` to be of type `EC.FullClassName` instead of `string`.
|
|
133
|
+
- Changed `InstanceKey.className` to be of type `EC.FullClassName` instead of `string`.
|
|
134
|
+
|
|
135
|
+
In many cases migration will be seamless, as long as the input string matches the expected format. In some cases (e.g. when assigning a string variable to one of the affected properties), you may need to use `normalizeFullClassName` to ensure the value is of the correct type:
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
const myClassName: string = "MySchema.MyClass";
|
|
139
|
+
|
|
140
|
+
// before
|
|
141
|
+
const myClass = getClass(schemaProvider, myClassName);
|
|
142
|
+
|
|
143
|
+
// after
|
|
144
|
+
const myClass = getClass(schemaProvider, normalizeFullClassName(myClassName));
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## 2.0.0-alpha.8
|
|
148
|
+
|
|
149
|
+
### Major Changes
|
|
150
|
+
|
|
151
|
+
- [#1222](https://github.com/iTwin/presentation/pull/1222): Enhance the `Props` type to only accept functions that have one object argument.
|
|
152
|
+
|
|
153
|
+
The term "props" refers to a props object, meaning there should only be one argument. For cases when a function has multiple arguments, use TypeScript's `Parameters` utility type instead.
|
|
154
|
+
|
|
155
|
+
## 2.0.0-alpha.7
|
|
156
|
+
|
|
157
|
+
### Major Changes
|
|
158
|
+
|
|
159
|
+
- [#1200](https://github.com/iTwin/presentation/pull/1200): Made `EC.RelationshipConstraint.multiplicity` required.
|
|
160
|
+
|
|
161
|
+
### Minor Changes
|
|
162
|
+
|
|
163
|
+
- [#1204](https://github.com/iTwin/presentation/pull/1204): Add a `RaisableEvent` interface, which extends `Event` with additional `raiseEvent` method.
|
|
164
|
+
|
|
165
|
+
### Patch Changes
|
|
166
|
+
|
|
167
|
+
- [#1198](https://github.com/iTwin/presentation/pull/1198): Fix `Event` type to prohibit being assigned an event with no-argument listener (unless the target event uses a no-argument listener).
|
|
168
|
+
|
|
169
|
+
Now TS will complain about the following assignment, which it previously allowed:
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
const noArg: Event<() => void> = {} as any;
|
|
173
|
+
const withArg: Event<(arg: number) => void> = noArg; // TS didn't complain, but it does
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## 2.0.0-alpha.6
|
|
177
|
+
|
|
178
|
+
### Patch Changes
|
|
179
|
+
|
|
180
|
+
- [#1180](https://github.com/iTwin/presentation/pull/1180): Version bump
|
|
181
|
+
|
|
182
|
+
## 2.0.0-alpha.5
|
|
183
|
+
|
|
184
|
+
### Minor Changes
|
|
185
|
+
|
|
186
|
+
- [#1137](https://github.com/iTwin/presentation/pull/1137): Add and use a more robust way to check full class names for equality - `compareFullClassNames` function.
|
|
187
|
+
|
|
188
|
+
The function compares full class names in case-insensitive way, ignoring different supported schema-class name separators (`:` or `.`).
|
|
189
|
+
|
|
190
|
+
## 2.0.0-alpha.4
|
|
191
|
+
|
|
192
|
+
### Patch Changes
|
|
193
|
+
|
|
194
|
+
- e9ef80880c776522ce3b2632c8c3c461e62d6444: Fix `InstanceKey` methods `equals` and `compare` not handling different schema-class separators and casing.
|
|
195
|
+
|
|
196
|
+
## 2.0.0-alpha.3
|
|
197
|
+
|
|
198
|
+
### Patch Changes
|
|
199
|
+
|
|
200
|
+
- [#1112](https://github.com/iTwin/presentation/pull/1112): Version bump
|
|
201
|
+
|
|
202
|
+
## 2.0.0-alpha.2
|
|
203
|
+
|
|
204
|
+
### Patch Changes
|
|
205
|
+
|
|
206
|
+
- [#1042](https://github.com/iTwin/presentation/pull/1042): Version bump
|
|
207
|
+
|
|
3
208
|
## 2.0.0-alpha.1
|
|
4
209
|
|
|
5
210
|
### Patch Changes
|
|
@@ -21,6 +226,92 @@
|
|
|
21
226
|
|
|
22
227
|
In reality, consumers will likely use `@itwin/presentation-core-interop` package for creating them, and the package has been updated to handle the change, so reacting to the breaking change is as simple as bumping the version of `@itwin/presentation-core-interop` package in the consumer's `package.json`.
|
|
23
228
|
|
|
229
|
+
## 1.2.16
|
|
230
|
+
|
|
231
|
+
### Patch Changes
|
|
232
|
+
|
|
233
|
+
- [#1390](https://github.com/iTwin/presentation/pull/1390): Update `@itwin/core-*` dependencies to `^5.10.0`.
|
|
234
|
+
|
|
235
|
+
## 1.2.15
|
|
236
|
+
|
|
237
|
+
### Patch Changes
|
|
238
|
+
|
|
239
|
+
- [#1383](https://github.com/iTwin/presentation/pull/1383): Optimize `parseFullClassName` parsing performance.
|
|
240
|
+
|
|
241
|
+
## 1.2.14
|
|
242
|
+
|
|
243
|
+
### Patch Changes
|
|
244
|
+
|
|
245
|
+
- [#1358](https://github.com/iTwin/presentation/pull/1358): Bump dependencies.
|
|
246
|
+
|
|
247
|
+
## 1.2.13
|
|
248
|
+
|
|
249
|
+
### Patch Changes
|
|
250
|
+
|
|
251
|
+
- [#1338](https://github.com/iTwin/presentation/pull/1338): Bump iTwin.js core dependencies to `^5.9.1`.
|
|
252
|
+
|
|
253
|
+
## 1.2.12
|
|
254
|
+
|
|
255
|
+
### Patch Changes
|
|
256
|
+
|
|
257
|
+
- [#1300](https://github.com/iTwin/presentation/pull/1300): Use more distinctive aliases in label select clauses to avoid collisions with aliases in outer FROM clause.
|
|
258
|
+
- [#1313](https://github.com/iTwin/presentation/pull/1313): Bump dependencies.
|
|
259
|
+
|
|
260
|
+
## 1.2.11
|
|
261
|
+
|
|
262
|
+
### Patch Changes
|
|
263
|
+
|
|
264
|
+
- [#1286](https://github.com/iTwin/presentation/pull/1286): Bump dependencies.
|
|
265
|
+
|
|
266
|
+
## 1.2.10
|
|
267
|
+
|
|
268
|
+
### Patch Changes
|
|
269
|
+
|
|
270
|
+
- [#1242](https://github.com/iTwin/presentation/pull/1242): Bump dependencies.
|
|
271
|
+
|
|
272
|
+
## 1.2.9
|
|
273
|
+
|
|
274
|
+
### Patch Changes
|
|
275
|
+
|
|
276
|
+
- [#1215](https://github.com/iTwin/presentation/pull/1215): Update dependencies.
|
|
277
|
+
|
|
278
|
+
## 1.2.8
|
|
279
|
+
|
|
280
|
+
### Patch Changes
|
|
281
|
+
|
|
282
|
+
- [#1208](https://github.com/iTwin/presentation/pull/1208): Bump dependencies.
|
|
283
|
+
|
|
284
|
+
## 1.2.7
|
|
285
|
+
|
|
286
|
+
### Patch Changes
|
|
287
|
+
|
|
288
|
+
- [#1168](https://github.com/iTwin/presentation/pull/1168): Bump dependencies.
|
|
289
|
+
- [#1161](https://github.com/iTwin/presentation/pull/1161): Bump iTwin.js dependencies to `^5.5.0`.
|
|
290
|
+
|
|
291
|
+
## 1.2.6
|
|
292
|
+
|
|
293
|
+
### Patch Changes
|
|
294
|
+
|
|
295
|
+
- [#1152](https://github.com/iTwin/presentation/pull/1152): Bump dependencies.
|
|
296
|
+
|
|
297
|
+
## 1.2.5
|
|
298
|
+
|
|
299
|
+
### Patch Changes
|
|
300
|
+
|
|
301
|
+
- [#1139](https://github.com/iTwin/presentation/pull/1139): Bump dependencies.
|
|
302
|
+
|
|
303
|
+
## 1.2.4
|
|
304
|
+
|
|
305
|
+
### Patch Changes
|
|
306
|
+
|
|
307
|
+
- [#1124](https://github.com/iTwin/presentation/pull/1124): Bump dependencies.
|
|
308
|
+
|
|
309
|
+
## 1.2.3
|
|
310
|
+
|
|
311
|
+
### Patch Changes
|
|
312
|
+
|
|
313
|
+
- [#1039](https://github.com/iTwin/presentation/pull/1039): Bump iTwin.js core dependencies to `^5.1.1`.
|
|
314
|
+
|
|
24
315
|
## 1.2.2
|
|
25
316
|
|
|
26
317
|
### Patch Changes
|
|
@@ -180,7 +471,11 @@
|
|
|
180
471
|
The change makes combining multiple concatenated values easier, e.g. now you can do this:
|
|
181
472
|
|
|
182
473
|
```ts
|
|
183
|
-
const value: ConcatenatedValue = [
|
|
474
|
+
const value: ConcatenatedValue = [
|
|
475
|
+
createConcatenatedValueX(),
|
|
476
|
+
{ type: "String", value: " - " },
|
|
477
|
+
createConcatenatedValueY(),
|
|
478
|
+
];
|
|
184
479
|
```
|
|
185
480
|
|
|
186
481
|
## 0.2.0
|
package/README.md
CHANGED
|
@@ -55,7 +55,10 @@ const classHierarchyInspector: ECClassHierarchyInspector = createCachingECClassH
|
|
|
55
55
|
// tell how many entries should be cached in LRU cache (0 or `undefined` stand for "no caching")
|
|
56
56
|
cacheSize: 100,
|
|
57
57
|
});
|
|
58
|
-
const isGeometricElement = await classHierarchyInspector.classDerivesFrom(
|
|
58
|
+
const isGeometricElement = await classHierarchyInspector.classDerivesFrom(
|
|
59
|
+
"MySchema.MyClass",
|
|
60
|
+
"BisCore.GeometricElement",
|
|
61
|
+
);
|
|
59
62
|
```
|
|
60
63
|
|
|
61
64
|
## ECSql
|
|
@@ -125,7 +128,6 @@ The ECSql utilities group contains a number of functions to help create complex
|
|
|
125
128
|
```
|
|
126
129
|
|
|
127
130
|
- `createRawPrimitiveValueSelector` - creates an ECSQL selector for a raw primitive value.
|
|
128
|
-
|
|
129
131
|
- `undefined` is selected as `NULL`.
|
|
130
132
|
- `Date` values are selected in julian day format.
|
|
131
133
|
- `Point2d` and `Point3d` values are selected as serialized JSON objects, e.g. `{ x: 1, y: 2, z: 3 }`.
|
|
@@ -273,21 +275,17 @@ The APIs in Values group contain various value types and utilities to work with
|
|
|
273
275
|
- `InstanceKey` - a pair of full ECClass name and ECInstance ID, uniquely identifying an ECInstance in an iModel.
|
|
274
276
|
|
|
275
277
|
- `PrimitiveValue` - a union of different supported primitive values. Also, a namespace, containing the following utilities:
|
|
276
|
-
|
|
277
278
|
- `isPoint2d` - type guard to check if the given `PrimitiveValue` is a `Point2d`.
|
|
278
279
|
- `isPoint3d` - type guard to check if the given `PrimitiveValue` is a `Point3d`.
|
|
279
280
|
|
|
280
281
|
- `TypedPrimitiveValue` - a union of all supported combinations of `PrimitiveValue` and its type, possibly with some extra metadata like extended type name or units-related information. Also, a namespace, containing the following utilities:
|
|
281
|
-
|
|
282
282
|
- `create` - given a `PrimitiveValue`, its type and, optionally, extra information, validates the input and creates a `TypedPrimitiveValue`.
|
|
283
283
|
|
|
284
284
|
- `ConcatenatedValuePart` - a union of different types that may be used to create a single, combined value: nested `ConcatenatedValue`, `TypedPrimitiveValue` or just plain string. Also, a namespace, containing the following utilities:
|
|
285
|
-
|
|
286
285
|
- `isString` - type guard to check if the given `ConcatenatedValuePart` is a `string`.
|
|
287
286
|
- `isPrimitive` - type guard to check if the given `ConcatenatedValuePart` is a `TypedPrimitiveValue`.
|
|
288
287
|
|
|
289
288
|
- `ConcatenatedValue` - an array of `ConcatenatedValuePart`. Also, a namespace containing the following utilities:
|
|
290
|
-
|
|
291
289
|
- `serialize` - joins the given `ConcatenatedValue` parts using provided formatter and separator.
|
|
292
290
|
|
|
293
291
|
- `IPrimitiveValueFormatter` - an interface for a function that knows how to format a `TypedPrimitiveValue` into a string.
|
|
@@ -317,7 +315,7 @@ The APIs in Values group contain various value types and utilities to work with
|
|
|
317
315
|
}
|
|
318
316
|
```
|
|
319
317
|
|
|
320
|
-
The package delivers
|
|
318
|
+
The package delivers 4 implementations of `IInstanceLabelSelectClauseFactory` that can be created using the following factory methods: `createDefaultInstanceLabelSelectClauseFactory`, `createClassBasedInstanceLabelSelectClauseFactory`, `createBisInstanceLabelSelectClauseFactory`, `createIModelInstanceLabelSelectClauseFactory`.
|
|
321
319
|
|
|
322
320
|
### `createDefaultInstanceLabelSelectClauseFactory`
|
|
323
321
|
|
|
@@ -345,7 +343,10 @@ This label selectors factory doesn't create labels on its own, but allows assign
|
|
|
345
343
|
Example usage:
|
|
346
344
|
|
|
347
345
|
```ts
|
|
348
|
-
import {
|
|
346
|
+
import {
|
|
347
|
+
createClassBasedInstanceLabelSelectClauseFactory,
|
|
348
|
+
ECClassHierarchyInspector,
|
|
349
|
+
} from "@itwin/presentation-shared";
|
|
349
350
|
|
|
350
351
|
const classHierarchyInspector: ECClassHierarchyInspector = getClassHierarchyInspector();
|
|
351
352
|
const labelsFactory = createClassBasedInstanceLabelSelectClauseFactory({
|
|
@@ -384,6 +385,24 @@ const ecsql = `SELECT ${await labelsFactory.createSelectClause({ classAlias: "el
|
|
|
384
385
|
// ...
|
|
385
386
|
```
|
|
386
387
|
|
|
388
|
+
### `createIModelInstanceLabelSelectClauseFactory`
|
|
389
|
+
|
|
390
|
+
This label selectors factory reads `InstanceLabelOverride` rules from `PresentationRules` rulesets embedded in
|
|
391
|
+
the iModel and compiles them into ECSQL label selectors. Rules are loaded lazily on first use and cached per
|
|
392
|
+
factory instance. When the `PresentationRules` schema is absent from the iModel, the factory transparently
|
|
393
|
+
falls back to a configurable default (by default `createBisInstanceLabelSelectClauseFactory`).
|
|
394
|
+
|
|
395
|
+
Example usage:
|
|
396
|
+
|
|
397
|
+
```ts
|
|
398
|
+
import { createIModelInstanceLabelSelectClauseFactory } from "@itwin/presentation-shared";
|
|
399
|
+
|
|
400
|
+
// `imodelAccess` must satisfy `ECSqlQueryExecutor & ECClassHierarchyInspector & ECSchemaProvider`
|
|
401
|
+
const labelsFactory = createIModelInstanceLabelSelectClauseFactory({ imodelAccess });
|
|
402
|
+
const ecsql = `SELECT ${await labelsFactory.createSelectClause({ classAlias: "element" })} AS [Label] FROM [BisCore].[Element] AS [element]`;
|
|
403
|
+
// ...
|
|
404
|
+
```
|
|
405
|
+
|
|
387
406
|
## Logging
|
|
388
407
|
|
|
389
408
|
The APIs in logging category define types and interfaces required for creating a logger. The package itself only delivers a `NOOP_LOGGER`, which does what it says - nothing. Besides that, we expect the `@itwin/presentation-core-interop` package to be used for creating a logger that forwards all logging to [iTwin.js `Logger`](https://www.itwinjs.org/reference/core-bentley/logging/logger/).
|
|
@@ -443,7 +462,6 @@ The package also delivers a number of utility types and functions:
|
|
|
443
462
|
```
|
|
444
463
|
|
|
445
464
|
- `trimWhitespace` - trims all extra whitespace from the given string, including:
|
|
446
|
-
|
|
447
465
|
- consecutive spaces,
|
|
448
466
|
- spaces before closing parentheses and comma,
|
|
449
467
|
- spaces after opening parentheses,
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
export { ECSql };
|
|
1
|
+
export * as ECSql from "./shared/ecsql-snippets/index.js";
|
|
3
2
|
export { ConcatenatedValue, ConcatenatedValuePart } from "./shared/ConcatenatedValue.js";
|
|
4
|
-
export { ECSqlBinding, ECSqlQueryDef, ECSqlQueryExecutor, ECSqlQueryReaderOptions, ECSqlQueryRow } from "./shared/ECSqlCore.js";
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
3
|
+
export type { ECSqlBinding, ECSqlQueryDef, ECSqlQueryExecutor, ECSqlQueryReaderOptions, ECSqlQueryRow, } from "./shared/ECSqlCore.js";
|
|
4
|
+
export type { IPrimitiveValueFormatter } from "./shared/Formatting.js";
|
|
5
|
+
export { createDefaultValueFormatter, formatConcatenatedValue } from "./shared/Formatting.js";
|
|
6
|
+
export type { IInstanceLabelSelectClauseFactory } from "./shared/InstanceLabelSelectClauseFactory.js";
|
|
7
|
+
export { parseInstanceLabel } from "./shared/InstanceLabelSelectClauseFactory.js";
|
|
8
|
+
export { createDefaultInstanceLabelSelectClauseFactory } from "./shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js";
|
|
9
|
+
export { createClassBasedInstanceLabelSelectClauseFactory } from "./shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js";
|
|
10
|
+
export { createBisInstanceLabelSelectClauseFactory } from "./shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js";
|
|
11
|
+
export { createIModelInstanceLabelSelectClauseFactory } from "./shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js";
|
|
12
|
+
export type { ILogger, LogFunction, LogLevel } from "./shared/Logging.js";
|
|
13
|
+
export { NOOP_LOGGER } from "./shared/Logging.js";
|
|
14
|
+
export type { ArrayElement, OmitOverUnion, Props } from "./shared/MappedTypes.js";
|
|
15
|
+
export type { ArrayValueDescriptor, EC, ECClassHierarchyInspector, ECSchemaProvider, NavigationValueDescriptor, PrimitiveValueDescriptor, RelationshipPath, StructValueDescriptor, ValueDescriptor, } from "./shared/Metadata.js";
|
|
16
|
+
export { createCachingECClassHierarchyInspector, getClass } from "./shared/Metadata.js";
|
|
17
|
+
export { createMainThreadReleaseOnTimePassedHandler, julianToDateTime, compareFullClassNames, normalizeFullClassName, parseFullClassName, releaseMainThread, trimWhitespace, } from "./shared/Utils.js";
|
|
11
18
|
export { InstanceKey, PrimitiveValue, TypedPrimitiveValue } from "./shared/Values.js";
|
|
12
|
-
export {
|
|
19
|
+
export type { ArrayValue, StructValue, Value } from "./shared/Values.js";
|
|
20
|
+
export type { Event, RaisableEvent, EventArgs, EventListener } from "./shared/Event.js";
|
|
13
21
|
//# sourceMappingURL=presentation-shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation-shared.d.ts","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"presentation-shared.d.ts","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,YAAY,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,6CAA6C,EAAE,MAAM,kFAAkF,CAAC;AACjJ,OAAO,EAAE,gDAAgD,EAAE,MAAM,qFAAqF,CAAC;AACvJ,OAAO,EAAE,yCAAyC,EAAE,MAAM,8EAA8E,CAAC;AACzI,OAAO,EAAE,4CAA4C,EAAE,MAAM,iFAAiF,CAAC;AAC/I,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EACV,oBAAoB,EACpB,EAAE,EACF,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -37,9 +37,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
37
37
|
};
|
|
38
38
|
})();
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.TypedPrimitiveValue = exports.PrimitiveValue = exports.InstanceKey = exports.trimWhitespace = exports.releaseMainThread = exports.parseFullClassName = exports.normalizeFullClassName = exports.julianToDateTime = exports.createMainThreadReleaseOnTimePassedHandler = exports.getClass = exports.createCachingECClassHierarchyInspector = exports.NOOP_LOGGER = exports.
|
|
41
|
-
|
|
42
|
-
exports.ECSql = ECSql;
|
|
40
|
+
exports.TypedPrimitiveValue = exports.PrimitiveValue = exports.InstanceKey = exports.trimWhitespace = exports.releaseMainThread = exports.parseFullClassName = exports.normalizeFullClassName = exports.compareFullClassNames = exports.julianToDateTime = exports.createMainThreadReleaseOnTimePassedHandler = exports.getClass = exports.createCachingECClassHierarchyInspector = exports.NOOP_LOGGER = exports.createIModelInstanceLabelSelectClauseFactory = exports.createBisInstanceLabelSelectClauseFactory = exports.createClassBasedInstanceLabelSelectClauseFactory = exports.createDefaultInstanceLabelSelectClauseFactory = exports.parseInstanceLabel = exports.formatConcatenatedValue = exports.createDefaultValueFormatter = exports.ConcatenatedValuePart = exports.ConcatenatedValue = exports.ECSql = void 0;
|
|
41
|
+
exports.ECSql = __importStar(require("./shared/ecsql-snippets/index.js"));
|
|
43
42
|
var ConcatenatedValue_js_1 = require("./shared/ConcatenatedValue.js");
|
|
44
43
|
Object.defineProperty(exports, "ConcatenatedValue", { enumerable: true, get: function () { return ConcatenatedValue_js_1.ConcatenatedValue; } });
|
|
45
44
|
Object.defineProperty(exports, "ConcatenatedValuePart", { enumerable: true, get: function () { return ConcatenatedValue_js_1.ConcatenatedValuePart; } });
|
|
@@ -47,10 +46,15 @@ var Formatting_js_1 = require("./shared/Formatting.js");
|
|
|
47
46
|
Object.defineProperty(exports, "createDefaultValueFormatter", { enumerable: true, get: function () { return Formatting_js_1.createDefaultValueFormatter; } });
|
|
48
47
|
Object.defineProperty(exports, "formatConcatenatedValue", { enumerable: true, get: function () { return Formatting_js_1.formatConcatenatedValue; } });
|
|
49
48
|
var InstanceLabelSelectClauseFactory_js_1 = require("./shared/InstanceLabelSelectClauseFactory.js");
|
|
50
|
-
Object.defineProperty(exports, "createDefaultInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return InstanceLabelSelectClauseFactory_js_1.createDefaultInstanceLabelSelectClauseFactory; } });
|
|
51
|
-
Object.defineProperty(exports, "createClassBasedInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return InstanceLabelSelectClauseFactory_js_1.createClassBasedInstanceLabelSelectClauseFactory; } });
|
|
52
|
-
Object.defineProperty(exports, "createBisInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return InstanceLabelSelectClauseFactory_js_1.createBisInstanceLabelSelectClauseFactory; } });
|
|
53
49
|
Object.defineProperty(exports, "parseInstanceLabel", { enumerable: true, get: function () { return InstanceLabelSelectClauseFactory_js_1.parseInstanceLabel; } });
|
|
50
|
+
var DefaultInstanceLabelSelectClauseFactory_js_1 = require("./shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js");
|
|
51
|
+
Object.defineProperty(exports, "createDefaultInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return DefaultInstanceLabelSelectClauseFactory_js_1.createDefaultInstanceLabelSelectClauseFactory; } });
|
|
52
|
+
var ClassBasedInstanceLabelSelectClauseFactory_js_1 = require("./shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js");
|
|
53
|
+
Object.defineProperty(exports, "createClassBasedInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return ClassBasedInstanceLabelSelectClauseFactory_js_1.createClassBasedInstanceLabelSelectClauseFactory; } });
|
|
54
|
+
var BisInstanceLabelSelectClauseFactory_js_1 = require("./shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js");
|
|
55
|
+
Object.defineProperty(exports, "createBisInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return BisInstanceLabelSelectClauseFactory_js_1.createBisInstanceLabelSelectClauseFactory; } });
|
|
56
|
+
var IModelInstanceLabelSelectClauseFactory_js_1 = require("./shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js");
|
|
57
|
+
Object.defineProperty(exports, "createIModelInstanceLabelSelectClauseFactory", { enumerable: true, get: function () { return IModelInstanceLabelSelectClauseFactory_js_1.createIModelInstanceLabelSelectClauseFactory; } });
|
|
54
58
|
var Logging_js_1 = require("./shared/Logging.js");
|
|
55
59
|
Object.defineProperty(exports, "NOOP_LOGGER", { enumerable: true, get: function () { return Logging_js_1.NOOP_LOGGER; } });
|
|
56
60
|
var Metadata_js_1 = require("./shared/Metadata.js");
|
|
@@ -59,6 +63,7 @@ Object.defineProperty(exports, "getClass", { enumerable: true, get: function ()
|
|
|
59
63
|
var Utils_js_1 = require("./shared/Utils.js");
|
|
60
64
|
Object.defineProperty(exports, "createMainThreadReleaseOnTimePassedHandler", { enumerable: true, get: function () { return Utils_js_1.createMainThreadReleaseOnTimePassedHandler; } });
|
|
61
65
|
Object.defineProperty(exports, "julianToDateTime", { enumerable: true, get: function () { return Utils_js_1.julianToDateTime; } });
|
|
66
|
+
Object.defineProperty(exports, "compareFullClassNames", { enumerable: true, get: function () { return Utils_js_1.compareFullClassNames; } });
|
|
62
67
|
Object.defineProperty(exports, "normalizeFullClassName", { enumerable: true, get: function () { return Utils_js_1.normalizeFullClassName; } });
|
|
63
68
|
Object.defineProperty(exports, "parseFullClassName", { enumerable: true, get: function () { return Utils_js_1.parseFullClassName; } });
|
|
64
69
|
Object.defineProperty(exports, "releaseMainThread", { enumerable: true, get: function () { return Utils_js_1.releaseMainThread; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation-shared.js","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhG,
|
|
1
|
+
{"version":3,"file":"presentation-shared.js","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhG,0EAA0D;AAE1D,sEAAyF;AAAhF,yHAAA,iBAAiB,OAAA;AAAE,6HAAA,qBAAqB,OAAA;AASjD,wDAA8F;AAArF,4HAAA,2BAA2B,OAAA;AAAE,wHAAA,uBAAuB,OAAA;AAE7D,oGAAkF;AAAzE,yIAAA,kBAAkB,OAAA;AAC3B,+IAAiJ;AAAxI,2KAAA,6CAA6C,OAAA;AACtD,qJAAuJ;AAA9I,iLAAA,gDAAgD,OAAA;AACzD,uIAAyI;AAAhI,mKAAA,yCAAyC,OAAA;AAClD,6IAA+I;AAAtI,yKAAA,4CAA4C,OAAA;AAErD,kDAAkD;AAAzC,yGAAA,WAAW,OAAA;AAapB,oDAAwF;AAA/E,qIAAA,sCAAsC,OAAA;AAAE,uGAAA,QAAQ,OAAA;AACzD,8CAQ2B;AAPzB,sIAAA,0CAA0C,OAAA;AAC1C,4GAAA,gBAAgB,OAAA;AAChB,iHAAA,qBAAqB,OAAA;AACrB,kHAAA,sBAAsB,OAAA;AACtB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,0GAAA,cAAc,OAAA;AAEhB,gDAAsF;AAA7E,wGAAA,WAAW,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,gHAAA,mBAAmB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcatenatedValue.d.ts","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ConcatenatedValue.d.ts","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAErF,cAAc;AAEd,yBAAiB,qBAAqB,CAAC;IACrC,cAAc;IACd,SAAgB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,MAAM,CAEpE;IAED,cAAc;IACd,SAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,mBAAmB,CAEpF;IAED,cAAc;IACd,SAAgB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,iBAAiB,CAE1F;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC;AAExD,cAAc;AAEd,yBAAiB,iBAAiB,CAAC;IACjC;;;;;OAKG;IACH,SAAsB,SAAS,CAAC,KAAK,EAAE;QACrC,yBAAyB;QACzB,KAAK,EAAE,iBAAiB,CAAC;QACzB,qDAAqD;QACrD,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5F,6EAA6E;QAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Id64String } from "@itwin/core-bentley";
|
|
1
|
+
import type { Id64String } from "@itwin/core-bentley";
|
|
2
2
|
/**
|
|
3
3
|
* Defines an ECSql binding consisting of a value and its type. Necessary to differentiate between numeric
|
|
4
4
|
* types and `Id64String` vs `string`.
|
|
@@ -48,9 +48,14 @@ export interface ECSqlQueryDef {
|
|
|
48
48
|
ecsql: string;
|
|
49
49
|
/**
|
|
50
50
|
* Values to bind to the query.
|
|
51
|
+
*
|
|
52
|
+
* Provide bindings either as an array or as a record:
|
|
53
|
+
* - `ECSqlBinding[]` binds values by parameter position.
|
|
54
|
+
* - `Record<string, ECSqlBinding>` binds values by parameter name, where each key is the ECSQL parameter name.
|
|
55
|
+
*
|
|
51
56
|
* @see https://www.itwinjs.org/learning/ecsql/#ecsql-parameters
|
|
52
57
|
*/
|
|
53
|
-
bindings?: ECSqlBinding[]
|
|
58
|
+
bindings?: ECSqlBinding[] | Record<string, ECSqlBinding>;
|
|
54
59
|
}
|
|
55
60
|
/**
|
|
56
61
|
* Defines requested ECSQL result row format.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlCore.d.ts","sourceRoot":"","sources":["../../../src/shared/ECSqlCore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ECSqlCore.d.ts","sourceRoot":"","sources":["../../../src/shared/ECSqlCore.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC1D;AAED;;;;GAIG;AACH,KAAK,mBAAmB,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED;;;;GAIG;AACH,KAAK,gBAAgB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,uBAAuB,GAAG,gBAAgB,CAAC;CAC7F"}
|
|
@@ -1,9 +1,27 @@
|
|
|
1
|
+
import type { Props } from "./MappedTypes.js";
|
|
1
2
|
/**
|
|
2
3
|
* An interface that allows subscribing and unsubscribing listeners that are called upon an event.
|
|
3
4
|
* @public
|
|
4
5
|
*/
|
|
5
6
|
export interface Event<TListener extends (...args: any[]) => void = () => void> {
|
|
6
|
-
addListener(listener: TListener)
|
|
7
|
-
removeListener(listener: TListener)
|
|
7
|
+
addListener: (listener: TListener) => () => void;
|
|
8
|
+
removeListener: (listener: TListener) => void;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* An `Event` that can be raised.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export interface RaisableEvent<TListener extends (...args: any[]) => void = () => void> extends Event<TListener> {
|
|
15
|
+
raiseEvent: (...args: Parameters<TListener>) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns type of the given `Event` listener.
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export type EventListener<TEvent extends {}> = TEvent extends Event<infer TListener> ? TListener : never;
|
|
22
|
+
/**
|
|
23
|
+
* Returns type of the given `Event` arguments.
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export type EventArgs<TEvent extends {}> = Props<EventListener<TEvent>>;
|
|
9
27
|
//# sourceMappingURL=Event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/shared/Event.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,WAAW,KAAK,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAC5E,WAAW,CAAC,QAAQ,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/shared/Event.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,KAAK,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAC5E,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,MAAM,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAE,SAAQ,KAAK,CAAC,SAAS,CAAC;IAC9G,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,EAAE,IAAI,MAAM,SAAS,KAAK,CAAC,MAAM,SAAS,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzG;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConcatenatedValue } from "./ConcatenatedValue.js";
|
|
2
|
-
import { TypedPrimitiveValue } from "./Values.js";
|
|
2
|
+
import type { TypedPrimitiveValue } from "./Values.js";
|
|
3
3
|
/**
|
|
4
4
|
* A type definition for a function that knows how to create a display string for a typed primitive value.
|
|
5
5
|
* @see `createDefaultValueFormatter`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatting.d.ts","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"Formatting.d.ts","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,wBAAwB,CAAC;AAGlF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAClC,cAAc,EAAE,wBAAwB,CAAC;CAC1C,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBlB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAkBtE"}
|