@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.
Files changed (143) hide show
  1. package/CHANGELOG.md +296 -1
  2. package/README.md +27 -9
  3. package/lib/cjs/presentation-shared.d.ts +18 -10
  4. package/lib/cjs/presentation-shared.d.ts.map +1 -1
  5. package/lib/cjs/presentation-shared.js +11 -6
  6. package/lib/cjs/presentation-shared.js.map +1 -1
  7. package/lib/cjs/shared/ConcatenatedValue.d.ts +1 -1
  8. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +1 -1
  9. package/lib/cjs/shared/ECSqlCore.d.ts +7 -2
  10. package/lib/cjs/shared/ECSqlCore.d.ts.map +1 -1
  11. package/lib/cjs/shared/Event.d.ts +20 -2
  12. package/lib/cjs/shared/Event.d.ts.map +1 -1
  13. package/lib/cjs/shared/Formatting.d.ts +1 -1
  14. package/lib/cjs/shared/Formatting.d.ts.map +1 -1
  15. package/lib/cjs/shared/Formatting.js +10 -6
  16. package/lib/cjs/shared/Formatting.js.map +1 -1
  17. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
  18. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
  19. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -136
  20. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
  21. package/lib/cjs/shared/Logging.js +2 -1
  22. package/lib/cjs/shared/Logging.js.map +1 -1
  23. package/lib/cjs/shared/MappedTypes.d.ts +3 -13
  24. package/lib/cjs/shared/MappedTypes.d.ts.map +1 -1
  25. package/lib/cjs/shared/Metadata.d.ts +225 -11
  26. package/lib/cjs/shared/Metadata.d.ts.map +1 -1
  27. package/lib/cjs/shared/Metadata.js +4 -1
  28. package/lib/cjs/shared/Metadata.js.map +1 -1
  29. package/lib/cjs/shared/Utils.d.ts +12 -1
  30. package/lib/cjs/shared/Utils.d.ts.map +1 -1
  31. package/lib/cjs/shared/Utils.js +37 -11
  32. package/lib/cjs/shared/Utils.js.map +1 -1
  33. package/lib/cjs/shared/Values.d.ts +27 -13
  34. package/lib/cjs/shared/Values.d.ts.map +1 -1
  35. package/lib/cjs/shared/Values.js +13 -51
  36. package/lib/cjs/shared/Values.js.map +1 -1
  37. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +20 -5
  38. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
  39. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +56 -25
  40. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
  41. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +12 -3
  42. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
  43. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +21 -6
  44. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
  45. package/lib/cjs/shared/ecsql-snippets/index.d.ts +1 -1
  46. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +1 -1
  47. package/lib/cjs/shared/ecsql-snippets/index.js +2 -1
  48. package/lib/cjs/shared/ecsql-snippets/index.js.map +1 -1
  49. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
  50. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  51. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +54 -0
  52. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  53. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
  54. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  55. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +63 -0
  56. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  57. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
  58. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  59. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +40 -0
  60. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  61. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
  62. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  63. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +10 -0
  64. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  65. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
  66. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  67. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +336 -0
  68. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  69. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts +7 -0
  70. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  71. package/lib/cjs/shared/instance-label-factory-impls/Utils.js +26 -0
  72. package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +1 -0
  73. package/lib/esm/presentation-shared.d.ts +18 -10
  74. package/lib/esm/presentation-shared.d.ts.map +1 -1
  75. package/lib/esm/presentation-shared.js +7 -4
  76. package/lib/esm/presentation-shared.js.map +1 -1
  77. package/lib/esm/shared/ConcatenatedValue.d.ts +1 -1
  78. package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -1
  79. package/lib/esm/shared/ECSqlCore.d.ts +7 -2
  80. package/lib/esm/shared/ECSqlCore.d.ts.map +1 -1
  81. package/lib/esm/shared/Event.d.ts +20 -2
  82. package/lib/esm/shared/Event.d.ts.map +1 -1
  83. package/lib/esm/shared/Formatting.d.ts +1 -1
  84. package/lib/esm/shared/Formatting.d.ts.map +1 -1
  85. package/lib/esm/shared/Formatting.js +10 -6
  86. package/lib/esm/shared/Formatting.js.map +1 -1
  87. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
  88. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
  89. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +0 -133
  90. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
  91. package/lib/esm/shared/Logging.js +2 -1
  92. package/lib/esm/shared/Logging.js.map +1 -1
  93. package/lib/esm/shared/MappedTypes.d.ts +3 -13
  94. package/lib/esm/shared/MappedTypes.d.ts.map +1 -1
  95. package/lib/esm/shared/Metadata.d.ts +225 -11
  96. package/lib/esm/shared/Metadata.d.ts.map +1 -1
  97. package/lib/esm/shared/Metadata.js +4 -1
  98. package/lib/esm/shared/Metadata.js.map +1 -1
  99. package/lib/esm/shared/Utils.d.ts +12 -1
  100. package/lib/esm/shared/Utils.d.ts.map +1 -1
  101. package/lib/esm/shared/Utils.js +36 -11
  102. package/lib/esm/shared/Utils.js.map +1 -1
  103. package/lib/esm/shared/Values.d.ts +27 -13
  104. package/lib/esm/shared/Values.d.ts.map +1 -1
  105. package/lib/esm/shared/Values.js +13 -51
  106. package/lib/esm/shared/Values.js.map +1 -1
  107. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +20 -5
  108. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
  109. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +56 -25
  110. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
  111. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +12 -3
  112. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
  113. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +20 -6
  114. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
  115. package/lib/esm/shared/ecsql-snippets/index.d.ts +1 -1
  116. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +1 -1
  117. package/lib/esm/shared/ecsql-snippets/index.js +1 -1
  118. package/lib/esm/shared/ecsql-snippets/index.js.map +1 -1
  119. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
  120. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  121. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +51 -0
  122. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  123. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
  124. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  125. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +60 -0
  126. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  127. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
  128. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  129. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +37 -0
  130. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  131. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
  132. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  133. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +9 -0
  134. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  135. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
  136. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  137. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +333 -0
  138. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  139. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +7 -0
  140. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  141. package/lib/esm/shared/instance-label-factory-impls/Utils.js +21 -0
  142. package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +1 -0
  143. 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 = [createConcatenatedValueX(), { type: "String", value: " - " }, createConcatenatedValueY()];
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("MySchema.MyClass", "BisCore.GeometricElement");
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 3 implementations of `IInstanceLabelSelectClauseFactory` that can be created using the following factory methods: `createDefaultInstanceLabelSelectClauseFactory`, `createClassBasedInstanceLabelSelectClauseFactory`, `createBisInstanceLabelSelectClauseFactory`.
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 { createClassBasedInstanceLabelSelectClauseFactory, ECClassHierarchyInspector } from "@itwin/presentation-shared";
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
- import * as ECSql from "./shared/ecsql-snippets/index.js";
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 { createDefaultValueFormatter, formatConcatenatedValue, IPrimitiveValueFormatter } from "./shared/Formatting.js";
6
- export { IInstanceLabelSelectClauseFactory, createDefaultInstanceLabelSelectClauseFactory, createClassBasedInstanceLabelSelectClauseFactory, createBisInstanceLabelSelectClauseFactory, parseInstanceLabel, } from "./shared/InstanceLabelSelectClauseFactory.js";
7
- export { ILogger, NOOP_LOGGER, LogFunction, LogLevel } from "./shared/Logging.js";
8
- export { ArrayElement, EventArgs, EventListener, OmitOverUnion, Props } from "./shared/MappedTypes.js";
9
- export { createCachingECClassHierarchyInspector, EC, getClass, ECClassHierarchyInspector, ECSchemaProvider } from "./shared/Metadata.js";
10
- export { createMainThreadReleaseOnTimePassedHandler, julianToDateTime, normalizeFullClassName, parseFullClassName, releaseMainThread, trimWhitespace, } from "./shared/Utils.js";
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 { Event } from "./shared/Event.js";
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,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAChI,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EACL,iCAAiC,EACjC,6CAA6C,EAC7C,gDAAgD,EAChD,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,sCAAsC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzI,OAAO,EACL,0CAA0C,EAC1C,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC"}
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.parseInstanceLabel = exports.createBisInstanceLabelSelectClauseFactory = exports.createClassBasedInstanceLabelSelectClauseFactory = exports.createDefaultInstanceLabelSelectClauseFactory = exports.formatConcatenatedValue = exports.createDefaultValueFormatter = exports.ConcatenatedValuePart = exports.ConcatenatedValue = exports.ECSql = void 0;
41
- const ECSql = __importStar(require("./shared/ecsql-snippets/index.js"));
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,wEAA0D;AAEjD,sBAAK;AAEd,sEAAyF;AAAhF,yHAAA,iBAAiB,OAAA;AAAE,6HAAA,qBAAqB,OAAA;AAEjD,wDAAwH;AAA/G,4HAAA,2BAA2B,OAAA;AAAE,wHAAA,uBAAuB,OAAA;AAC7D,oGAMsD;AAJpD,oKAAA,6CAA6C,OAAA;AAC7C,uKAAA,gDAAgD,OAAA;AAChD,gKAAA,yCAAyC,OAAA;AACzC,yIAAA,kBAAkB,OAAA;AAEpB,kDAAkF;AAAhE,yGAAA,WAAW,OAAA;AAE7B,oDAAyI;AAAhI,qIAAA,sCAAsC,OAAA;AAAM,uGAAA,QAAQ,OAAA;AAC7D,8CAO2B;AANzB,sIAAA,0CAA0C,OAAA;AAC1C,4GAAA,gBAAgB,OAAA;AAChB,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
+ {"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,4 +1,4 @@
1
- import { TypedPrimitiveValue } from "./Values.js";
1
+ import type { TypedPrimitiveValue } from "./Values.js";
2
2
  /**
3
3
  * A part of a `ConcatenatedValue`, describing one piece of the value. Possible types:
4
4
  * - `ConcatenatedValue` describes a nested concatenated value.
@@ -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;AAElD;;;;;;;;;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
+ {"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;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;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
+ {"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): () => void;
7
- removeListener(listener: TListener): void;
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,GAAG,MAAM,IAAI,CAAC;IAC7C,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3C"}
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;AAElF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAAC,cAAc,EAAE,wBAAwB,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBrJ;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAatE"}
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"}