@itwin/presentation-shared 2.0.0-alpha.0 → 2.0.0-alpha.10

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 (135) hide show
  1. package/CHANGELOG.md +188 -1
  2. package/README.md +27 -9
  3. package/lib/cjs/presentation-shared.d.ts +16 -8
  4. package/lib/cjs/presentation-shared.d.ts.map +1 -1
  5. package/lib/cjs/presentation-shared.js +10 -4
  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 +1 -1
  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 +13 -10
  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 +25 -11
  32. package/lib/cjs/shared/Utils.js.map +1 -1
  33. package/lib/cjs/shared/Values.d.ts +3 -3
  34. package/lib/cjs/shared/Values.d.ts.map +1 -1
  35. package/lib/cjs/shared/Values.js +13 -47
  36. package/lib/cjs/shared/Values.js.map +1 -1
  37. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +1 -1
  38. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
  39. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +10 -12
  40. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
  41. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +4 -3
  42. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
  43. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +8 -6
  44. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
  45. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
  46. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  47. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +51 -0
  48. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  49. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
  50. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  51. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +63 -0
  52. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  53. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
  54. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  55. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +39 -0
  56. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  57. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
  58. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  59. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +10 -0
  60. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  61. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
  62. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  63. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +335 -0
  64. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  65. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts +6 -0
  66. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  67. package/lib/cjs/shared/instance-label-factory-impls/Utils.js +24 -0
  68. package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +1 -0
  69. package/lib/esm/presentation-shared.d.ts +16 -8
  70. package/lib/esm/presentation-shared.d.ts.map +1 -1
  71. package/lib/esm/presentation-shared.js +6 -2
  72. package/lib/esm/presentation-shared.js.map +1 -1
  73. package/lib/esm/shared/ConcatenatedValue.d.ts +1 -1
  74. package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -1
  75. package/lib/esm/shared/ECSqlCore.d.ts +1 -1
  76. package/lib/esm/shared/ECSqlCore.d.ts.map +1 -1
  77. package/lib/esm/shared/Event.d.ts +20 -2
  78. package/lib/esm/shared/Event.d.ts.map +1 -1
  79. package/lib/esm/shared/Formatting.d.ts +1 -1
  80. package/lib/esm/shared/Formatting.d.ts.map +1 -1
  81. package/lib/esm/shared/Formatting.js +10 -6
  82. package/lib/esm/shared/Formatting.js.map +1 -1
  83. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
  84. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
  85. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +0 -133
  86. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
  87. package/lib/esm/shared/Logging.js +2 -1
  88. package/lib/esm/shared/Logging.js.map +1 -1
  89. package/lib/esm/shared/MappedTypes.d.ts +3 -13
  90. package/lib/esm/shared/MappedTypes.d.ts.map +1 -1
  91. package/lib/esm/shared/Metadata.d.ts +13 -10
  92. package/lib/esm/shared/Metadata.d.ts.map +1 -1
  93. package/lib/esm/shared/Metadata.js +4 -1
  94. package/lib/esm/shared/Metadata.js.map +1 -1
  95. package/lib/esm/shared/Utils.d.ts +12 -1
  96. package/lib/esm/shared/Utils.d.ts.map +1 -1
  97. package/lib/esm/shared/Utils.js +24 -11
  98. package/lib/esm/shared/Utils.js.map +1 -1
  99. package/lib/esm/shared/Values.d.ts +3 -3
  100. package/lib/esm/shared/Values.d.ts.map +1 -1
  101. package/lib/esm/shared/Values.js +13 -47
  102. package/lib/esm/shared/Values.js.map +1 -1
  103. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +1 -1
  104. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
  105. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +10 -12
  106. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
  107. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +4 -3
  108. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
  109. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +8 -6
  110. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
  111. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
  112. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  113. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +48 -0
  114. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  115. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
  116. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  117. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +60 -0
  118. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  119. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
  120. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  121. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +36 -0
  122. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  123. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
  124. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  125. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +9 -0
  126. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  127. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
  128. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  129. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +332 -0
  130. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  131. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +6 -0
  132. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  133. package/lib/esm/shared/instance-label-factory-impls/Utils.js +20 -0
  134. package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +1 -0
  135. package/package.json +15 -23
@@ -0,0 +1,198 @@
1
+ /**
2
+ * This module contains hard copies of the code from `@itwin/presentation-common` package.
3
+ */
4
+ /**
5
+ * This specification is designed for specifying schema requirements for the [[Ruleset]] or specific
6
+ * presentation rules.
7
+ */
8
+ export interface RequiredSchemaSpecification {
9
+ /** Specifies the schema to whom the requirement is being set. */
10
+ name: string;
11
+ /**
12
+ * Minimum required schema version (inclusive).
13
+ * Format: `{read version}.{write version}.{minor version}`, e.g. `2.1.15`.
14
+ *
15
+ * @pattern ^[\d]+\.[\d]+\.[\d]+$
16
+ */
17
+ minVersion?: string;
18
+ /**
19
+ * Maximum allowed schema version (exclusive).
20
+ * Format: `{read version}.{write version}.{minor version}`, e.g. `2.1.15`.
21
+ *
22
+ * @pattern ^[\d]+\.[\d]+\.[\d]+$
23
+ */
24
+ maxVersion?: string;
25
+ }
26
+ /**
27
+ * Base interface for all [[Rule]] implementations.
28
+ */
29
+ export interface RuleBase {
30
+ /** Used for serializing to JSON. */
31
+ ruleType: string;
32
+ /**
33
+ * Defines the order in which rules are handled, higher number means the rule is handled first. If priorities are
34
+ * equal, the rules are handled in the order they're defined.
35
+ *
36
+ * @type integer
37
+ */
38
+ priority?: number;
39
+ /**
40
+ * Tells the library that the rule should only be handled if no other rule of the same type was handled previously (based on rule
41
+ * priorities and definition order). This allows adding fallback rules which can be overridden by higher-priority rules.
42
+ */
43
+ onlyIfNotHandled?: boolean;
44
+ /**
45
+ * A list of [ECSchema requirements]($docs/presentation/RequiredSchemaSpecification.md) that need to be met for the rule to be used.
46
+ */
47
+ requiredSchemas?: RequiredSchemaSpecification[];
48
+ }
49
+ /**
50
+ * Instance label override rule provides a way to set instance label to one of its property values,
51
+ * other attributes and/or combination of them.
52
+ */
53
+ export interface InstanceLabelOverride extends RuleBase {
54
+ /** Used for serializing to JSON. */
55
+ ruleType: "InstanceLabelOverride";
56
+ /**
57
+ * Specifies the ECClass to apply this rule to.
58
+ */
59
+ class: SingleSchemaClassSpecification;
60
+ /**
61
+ * Specifications of values used to override label. The first non-empty value is used as the actual label.
62
+ */
63
+ values: InstanceLabelOverrideValueSpecification[];
64
+ }
65
+ /**
66
+ * Types of possible [[InstanceLabelOverride]] label values.
67
+ */
68
+ type InstanceLabelOverrideValueSpecificationType = "Composite" | "Property" | "ClassName" | "ClassLabel" | "BriefcaseId" | "LocalId" | "String" | "RelatedInstanceLabel";
69
+ /**
70
+ * Base interface for all [[InstanceLabelOverrideValueSpecification]] implementations.
71
+ */
72
+ export interface InstanceLabelOverrideValueSpecificationBase {
73
+ /** Type of the specification */
74
+ specType: `${InstanceLabelOverrideValueSpecificationType}`;
75
+ }
76
+ /**
77
+ * Specification allows creating a label value composited using multiple other specifications.
78
+ */
79
+ export interface InstanceLabelOverrideCompositeValueSpecification extends InstanceLabelOverrideValueSpecificationBase {
80
+ specType: "Composite";
81
+ /**
82
+ * Parts of the value.
83
+ *
84
+ * If any of the parts with `isRequired` flag evaluate to an empty string, the
85
+ * result of this specification is also an empty string.
86
+ */
87
+ parts: Array<{
88
+ spec: InstanceLabelOverrideValueSpecification;
89
+ isRequired?: boolean;
90
+ }>;
91
+ /** Separator to use when joining the parts. Defaults to a space character. */
92
+ separator?: string;
93
+ }
94
+ /**
95
+ * Specification uses property value as the label content.
96
+ */
97
+ export interface InstanceLabelOverridePropertyValueSpecification extends InstanceLabelOverrideValueSpecificationBase {
98
+ specType: "Property";
99
+ /**
100
+ * Name of the property whose value should be used.
101
+ * @note A property with this name must exist on the property class (see [[propertySource]]).
102
+ */
103
+ propertyName: string;
104
+ /**
105
+ * [Specification of the relationship path]($docs/presentation/RelationshipPathSpecification.md) from [[InstanceLabelOverride.class]]
106
+ * to class of the property. If omitted, [[InstanceLabelOverride.class]] is used as property class.
107
+ */
108
+ propertySource?: RelationshipPathSpecification;
109
+ }
110
+ /**
111
+ * Specification uses ECClass name as the label content.
112
+ */
113
+ export interface InstanceLabelOverrideClassNameSpecification extends InstanceLabelOverrideValueSpecificationBase {
114
+ specType: "ClassName";
115
+ /** Should full (`{schemaName}.{className}`) class name be used */
116
+ full?: boolean;
117
+ }
118
+ /**
119
+ * Specification uses ECClass display label as the label content.
120
+ */
121
+ export interface InstanceLabelOverrideClassLabelSpecification extends InstanceLabelOverrideValueSpecificationBase {
122
+ specType: "ClassLabel";
123
+ }
124
+ /**
125
+ * Specification returns ECInstance's briefcase ID in base36 format.
126
+ */
127
+ export interface InstanceLabelOverrideBriefcaseIdSpecification extends InstanceLabelOverrideValueSpecificationBase {
128
+ specType: "BriefcaseId";
129
+ }
130
+ /**
131
+ * Specification returns ECInstance's local ID in base36 format.
132
+ */
133
+ export interface InstanceLabelOverrideLocalIdSpecification extends InstanceLabelOverrideValueSpecificationBase {
134
+ specType: "LocalId";
135
+ }
136
+ /**
137
+ * Specification uses the specified value as the label content.
138
+ */
139
+ export interface InstanceLabelOverrideStringValueSpecification extends InstanceLabelOverrideValueSpecificationBase {
140
+ specType: "String";
141
+ /** The value to use as the label content. */
142
+ value: string;
143
+ }
144
+ /**
145
+ * Specification uses label of another related instance as the label content.
146
+ */
147
+ export interface InstanceLabelOverrideRelatedInstanceLabelSpecification extends InstanceLabelOverrideValueSpecificationBase {
148
+ specType: "RelatedInstanceLabel";
149
+ /**
150
+ * [Specification of the relationship path]($docs/presentation/RelationshipPathSpecification.md) from `InstanceLabelOverride.class`
151
+ * to class of the related instance.
152
+ */
153
+ pathToRelatedInstance: RelationshipPathSpecification;
154
+ }
155
+ /**
156
+ * Specification to define how the label for [[InstanceLabelOverride]] should be created.
157
+ */
158
+ export type InstanceLabelOverrideValueSpecification = InstanceLabelOverrideCompositeValueSpecification | InstanceLabelOverridePropertyValueSpecification | InstanceLabelOverrideStringValueSpecification | InstanceLabelOverrideClassNameSpecification | InstanceLabelOverrideClassLabelSpecification | InstanceLabelOverrideBriefcaseIdSpecification | InstanceLabelOverrideLocalIdSpecification | InstanceLabelOverrideRelatedInstanceLabelSpecification;
159
+ /**
160
+ * Defines direction of a relationship that should be followed
161
+ */
162
+ type RelationshipDirection = "Forward" | "Backward";
163
+ /**
164
+ * Specification of a single step in [[RelationshipPathSpecification]].
165
+ */
166
+ export interface RelationshipStepSpecification {
167
+ /** This attribute specifies the ECRelationship that should be used to traverse to target class. */
168
+ relationship: SingleSchemaClassSpecification;
169
+ /** This attribute specifies the direction in which the [[relationship]] should be followed. */
170
+ direction: `${RelationshipDirection}`;
171
+ /**
172
+ * This attribute may be used to specialize the target of the relationship.
173
+ */
174
+ targetClass?: SingleSchemaClassSpecification;
175
+ }
176
+ /**
177
+ * Relationship path specification is used to define a relationship path to an ECClass.
178
+ */
179
+ export type RelationshipPathSpecification = RelationshipStepSpecification | RelationshipStepSpecification[];
180
+ /**
181
+ * This specification is used to point to specific ECClass.
182
+ */
183
+ export interface SingleSchemaClassSpecification {
184
+ /**
185
+ * Specifies name of the schema which contains the target class.
186
+ *
187
+ * @pattern ^[\w\d]+$
188
+ */
189
+ schemaName: string;
190
+ /**
191
+ * Specifies name of the target class.
192
+ *
193
+ * @pattern ^[\w\d]+$
194
+ */
195
+ className: string;
196
+ }
197
+ export {};
198
+ //# sourceMappingURL=IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.Rules.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ /**
7
+ * This module contains hard copies of the code from `@itwin/presentation-common` package.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=IModelInstanceLabelSelectClauseFactory.Rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.Rules.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG"}
@@ -0,0 +1,34 @@
1
+ import type { ECSqlQueryExecutor } from "../ECSqlCore.js";
2
+ import type { IInstanceLabelSelectClauseFactory } from "../InstanceLabelSelectClauseFactory.js";
3
+ import type { ECClassHierarchyInspector, ECSchemaProvider } from "../Metadata.js";
4
+ /**
5
+ * Props for `createIModelInstanceLabelSelectClauseFactory`.
6
+ * @public
7
+ */
8
+ interface IModelInstanceLabelSelectClauseFactoryProps {
9
+ /**
10
+ * Combined access to the iModel for querying PresentationRules rulesets and inspecting class hierarchy.
11
+ * Follows the same combined-access pattern as other iModel-backed factories in this package.
12
+ */
13
+ imodelAccess: ECSqlQueryExecutor & ECClassHierarchyInspector & ECSchemaProvider;
14
+ /**
15
+ * A fallback label clause factory used when no applicable `InstanceLabelOverride` rules are found
16
+ * or when the `PresentationRules` schema is absent from the iModel.
17
+ * Defaults to the result of `createBisInstanceLabelSelectClauseFactory`.
18
+ */
19
+ defaultClauseFactory?: IInstanceLabelSelectClauseFactory;
20
+ }
21
+ /**
22
+ * Creates an instance label select clause factory that reads `InstanceLabelOverride` rules from
23
+ * `PresentationRules` rulesets stored in the iModel and compiles them into ECSQL label selectors.
24
+ *
25
+ * Rules are loaded lazily on first use and cached per factory instance. Rulesets are discovered
26
+ * by querying `PresentationRules.Ruleset`. When the `PresentationRules` schema is not imported
27
+ * into the iModel the factory transparently falls back to `defaultClauseFactory` (defaults
28
+ * to `createBisInstanceLabelSelectClauseFactory`).
29
+ *
30
+ * @public
31
+ */
32
+ export declare function createIModelInstanceLabelSelectClauseFactory(props: IModelInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
33
+ export {};
34
+ //# sourceMappingURL=IModelInstanceLabelSelectClauseFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAEV,iCAAiC,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAM,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAWtF;;;GAGG;AACH,UAAU,2CAA2C;IACnD;;;OAGG;IACH,YAAY,EAAE,kBAAkB,GAAG,yBAAyB,GAAG,gBAAgB,CAAC;IAEhF;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,iCAAiC,CAAC;CAC1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4CAA4C,CAC1D,KAAK,EAAE,2CAA2C,GACjD,iCAAiC,CAenC"}
@@ -0,0 +1,335 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ // cspell:words rilt
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.createIModelInstanceLabelSelectClauseFactory = createIModelInstanceLabelSelectClauseFactory;
9
+ const core_bentley_1 = require("@itwin/core-bentley");
10
+ const ECSqlJoinSnippets_js_1 = require("../ecsql-snippets/ECSqlJoinSnippets.js");
11
+ const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
12
+ const Metadata_js_1 = require("../Metadata.js");
13
+ const Utils_js_1 = require("../Utils.js");
14
+ const BisInstanceLabelSelectClauseFactory_js_1 = require("./BisInstanceLabelSelectClauseFactory.js");
15
+ const ClassBasedInstanceLabelSelectClauseFactory_js_1 = require("./ClassBasedInstanceLabelSelectClauseFactory.js");
16
+ /**
17
+ * Creates an instance label select clause factory that reads `InstanceLabelOverride` rules from
18
+ * `PresentationRules` rulesets stored in the iModel and compiles them into ECSQL label selectors.
19
+ *
20
+ * Rules are loaded lazily on first use and cached per factory instance. Rulesets are discovered
21
+ * by querying `PresentationRules.Ruleset`. When the `PresentationRules` schema is not imported
22
+ * into the iModel the factory transparently falls back to `defaultClauseFactory` (defaults
23
+ * to `createBisInstanceLabelSelectClauseFactory`).
24
+ *
25
+ * @public
26
+ */
27
+ function createIModelInstanceLabelSelectClauseFactory(props) {
28
+ let factoryCache;
29
+ async function getCachedFactory() {
30
+ if (!factoryCache) {
31
+ factoryCache = createIModelInstanceLabelSelectClauseFactoryImpl(props);
32
+ }
33
+ return factoryCache;
34
+ }
35
+ return {
36
+ async createSelectClause(clauseProps) {
37
+ const factory = await getCachedFactory();
38
+ return factory.createSelectClause(clauseProps);
39
+ },
40
+ };
41
+ }
42
+ async function createIModelInstanceLabelSelectClauseFactoryImpl(props) {
43
+ const defaultClauseFactory = props.defaultClauseFactory ??
44
+ (0, BisInstanceLabelSelectClauseFactory_js_1.createBisInstanceLabelSelectClauseFactory)({ classHierarchyInspector: props.imodelAccess });
45
+ const rules = await loadOverrideRules(props.imodelAccess);
46
+ if (rules.length === 0) {
47
+ return defaultClauseFactory;
48
+ }
49
+ rules.sort((lhs, rhs) => (rhs.priority ?? 1000) - (lhs.priority ?? 1000));
50
+ const clauses = rules.map((rule) => ({
51
+ className: `${rule.class.schemaName}.${rule.class.className}`,
52
+ clause: async (clauseProps) => compileOverrideClause({
53
+ rule,
54
+ clauseProps,
55
+ // `innerFactory` is declared below but is already assigned by the time this callback is invoked (never called synchronously)
56
+ labelFactory: innerFactory,
57
+ schemaProvider: props.imodelAccess,
58
+ }),
59
+ }));
60
+ const innerFactory = (0, ClassBasedInstanceLabelSelectClauseFactory_js_1.createClassBasedInstanceLabelSelectClauseFactory)({
61
+ classHierarchyInspector: props.imodelAccess,
62
+ clauses,
63
+ defaultClauseFactory,
64
+ });
65
+ return innerFactory;
66
+ }
67
+ // eslint-disable-next-line @typescript-eslint/naming-convention
68
+ const CLASS_NAME_PresentationRules = "PresentationRules.Ruleset";
69
+ async function loadOverrideRules(executor) {
70
+ const rules = [];
71
+ try {
72
+ const reader = executor.createQueryReader({
73
+ ecsql: `SELECT json_extract(JsonProperties, '$.jsonProperties') AS jsonProperties FROM ${CLASS_NAME_PresentationRules}`,
74
+ });
75
+ for await (const row of reader) {
76
+ const payload = row.jsonProperties;
77
+ if (payload === null || payload === undefined) {
78
+ continue;
79
+ }
80
+ let parsed;
81
+ try {
82
+ parsed = JSON.parse(payload);
83
+ }
84
+ catch {
85
+ continue;
86
+ }
87
+ if (!parsed || typeof parsed !== "object") {
88
+ continue;
89
+ }
90
+ const rulesetObj = parsed;
91
+ // Collect from top-level rules[]
92
+ const topRules = Array.isArray(rulesetObj.rules) ? rulesetObj.rules : [];
93
+ for (const rule of topRules) {
94
+ const normalized = normalizeInstanceLabelOverrideRule(rule);
95
+ if (normalized) {
96
+ rules.push(normalized);
97
+ }
98
+ }
99
+ }
100
+ }
101
+ catch (e) {
102
+ if (isPresentationRulesSchemaAbsenceError(e)) {
103
+ return [];
104
+ }
105
+ throw e;
106
+ }
107
+ return rules;
108
+ }
109
+ function isPresentationRulesSchemaAbsenceError(e) {
110
+ if (!(e instanceof Error)) {
111
+ return false;
112
+ }
113
+ return e.message.includes(`'${CLASS_NAME_PresentationRules}' does not exist`);
114
+ }
115
+ function isInstanceLabelOverrideRule(rule) {
116
+ return rule.ruleType === "InstanceLabelOverride";
117
+ }
118
+ function normalizeInstanceLabelOverrideRule(rule) {
119
+ if (!isInstanceLabelOverrideRule(rule)) {
120
+ return undefined;
121
+ }
122
+ if (rule.values.length === 0) {
123
+ return undefined;
124
+ }
125
+ return rule;
126
+ }
127
+ async function compileOverrideClause(props) {
128
+ const { rule, clauseProps, labelFactory, schemaProvider } = props;
129
+ (0, core_bentley_1.assert)(rule.values.length > 0);
130
+ const ctx = {
131
+ classAlias: clauseProps.classAlias,
132
+ selectorsConcatenator: clauseProps.selectorsConcatenator ?? ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector,
133
+ labelFactory,
134
+ visitedClasses: clauseProps.visitedClasses ?? new Set(),
135
+ schemaProvider,
136
+ ruleClassName: `${rule.class.schemaName}.${rule.class.className}`,
137
+ depth: clauseProps.depth ?? 0,
138
+ };
139
+ const compiledSpecs = await Promise.all(rule.values.map(async (spec) => compileValueSpec(spec, ctx)));
140
+ if (compiledSpecs.length === 1) {
141
+ return compiledSpecs[0];
142
+ }
143
+ return `COALESCE(${compiledSpecs.join(", ")})`;
144
+ }
145
+ async function compileValueSpec(spec, ctx) {
146
+ switch (spec.specType) {
147
+ case "String": {
148
+ return ctx.selectorsConcatenator([{ value: spec.value, type: "String" }]);
149
+ }
150
+ case "Property": {
151
+ if (spec.propertySource) {
152
+ const steps = normalizeRelationshipPath(spec.propertySource);
153
+ if (steps.length === 0) {
154
+ return "NULL";
155
+ }
156
+ const finalTargetAlias = subqueryAlias(PROPERTY_SOURCE_TARGET_ALIAS, ctx.depth);
157
+ const subquery = await buildRelationshipPathSubquery({
158
+ schemaProvider: ctx.schemaProvider,
159
+ steps,
160
+ ruleClassName: ctx.ruleClassName,
161
+ classAlias: ctx.classAlias,
162
+ selectExpression: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(finalTargetAlias, spec.propertyName),
163
+ finalTargetAlias,
164
+ depth: ctx.depth,
165
+ });
166
+ return subquery;
167
+ }
168
+ return (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, spec.propertyName);
169
+ }
170
+ case "ClassName": {
171
+ return `ec_classname(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECClassId")}, '${spec.full ? "s.c" : "c"}')`;
172
+ }
173
+ case "ClassLabel": {
174
+ return `(
175
+ SELECT COALESCE(
176
+ ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)("c", "DisplayLabel")},
177
+ ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)("c", "Name")}
178
+ )
179
+ FROM [meta].[ECClassDef] AS [c]
180
+ WHERE [c].[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECClassId")}
181
+ )`;
182
+ }
183
+ case "BriefcaseId": {
184
+ return `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECInstanceId")} >> 40) AS TEXT)`;
185
+ }
186
+ case "LocalId": {
187
+ return `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECInstanceId")} & ((1 << 40) - 1)) AS TEXT)`;
188
+ }
189
+ case "Composite": {
190
+ return compileCompositeSpec(spec, ctx);
191
+ }
192
+ case "RelatedInstanceLabel": {
193
+ const steps = normalizeRelationshipPath(spec.pathToRelatedInstance);
194
+ if (steps.length === 0) {
195
+ return "NULL";
196
+ }
197
+ const lastStep = steps[steps.length - 1];
198
+ let targetClassName;
199
+ if (lastStep.targetClass) {
200
+ targetClassName = `${lastStep.targetClass.schemaName}.${lastStep.targetClass.className}`;
201
+ }
202
+ else {
203
+ const relName = `${lastStep.relationship.schemaName}.${lastStep.relationship.className}`;
204
+ const relClass = await (0, Metadata_js_1.getClass)(ctx.schemaProvider, relName);
205
+ if (!relClass.isRelationshipClass()) {
206
+ throw new Error(`Class ${relName} is not a relationship class`);
207
+ }
208
+ const endpoint = lastStep.direction === "Backward" ? relClass.source : relClass.target;
209
+ const constraintClass = await endpoint.abstractConstraint;
210
+ if (!constraintClass) {
211
+ return "''";
212
+ }
213
+ targetClassName = constraintClass.fullName;
214
+ }
215
+ if (ctx.visitedClasses.has(targetClassName)) {
216
+ return "NULL";
217
+ }
218
+ const finalTargetAlias = subqueryAlias(RELATED_INSTANCE_LABEL_TARGET_ALIAS, ctx.depth);
219
+ const selectClauseProps = {
220
+ classAlias: finalTargetAlias,
221
+ className: targetClassName,
222
+ selectorsConcatenator: ctx.selectorsConcatenator,
223
+ visitedClasses: new Set(ctx.visitedClasses).add(targetClassName),
224
+ depth: ctx.depth + 1,
225
+ };
226
+ const subquery = await buildRelationshipPathSubquery({
227
+ schemaProvider: ctx.schemaProvider,
228
+ steps,
229
+ ruleClassName: ctx.ruleClassName,
230
+ classAlias: ctx.classAlias,
231
+ selectExpression: await ctx.labelFactory.createSelectClause(selectClauseProps),
232
+ finalTargetAlias,
233
+ depth: ctx.depth,
234
+ });
235
+ return subquery;
236
+ }
237
+ }
238
+ }
239
+ async function compileCompositeSpec(spec, ctx) {
240
+ if (spec.parts.length === 0) {
241
+ return "''";
242
+ }
243
+ const separator = spec.separator ?? " ";
244
+ const compiledParts = await Promise.all(spec.parts.map(async (part) => ({
245
+ selector: await compileValueSpec(part.spec, ctx),
246
+ isRequired: !!part.isRequired,
247
+ })));
248
+ const selectors = [];
249
+ compiledParts.forEach(({ selector }, index) => {
250
+ if (index > 0 && separator) {
251
+ selectors.push({ value: separator, type: "String" });
252
+ }
253
+ selectors.push({ selector });
254
+ });
255
+ const checkSelectors = compiledParts.filter((p) => p.isRequired).map((p) => `IFNULL(${p.selector}, '') <> ''`);
256
+ const checkSelector = checkSelectors.length > 0 ? checkSelectors.join(" AND ") : undefined;
257
+ return ctx.selectorsConcatenator(selectors, checkSelector);
258
+ }
259
+ function normalizeRelationshipPath(path) {
260
+ return Array.isArray(path) ? path : [path];
261
+ }
262
+ const ALIAS_PREFIX = "pres_";
263
+ const SUBQUERY_SOURCE_ALIAS = "src";
264
+ const PROPERTY_SOURCE_TARGET_ALIAS = "pst";
265
+ const RELATED_INSTANCE_LABEL_TARGET_ALIAS = "rilt";
266
+ const RELATIONSHIP_ALIAS = "r";
267
+ const INTERMEDIATE_TARGET_ALIAS = "m";
268
+ function subqueryAlias(prefix, depth, stepIndex) {
269
+ const alias = `${ALIAS_PREFIX}${prefix}${depth}`;
270
+ return stepIndex !== undefined ? `${alias}_${stepIndex}` : alias;
271
+ }
272
+ async function toJoinRelationshipPath(props) {
273
+ (0, core_bentley_1.assert)(props.steps.length > 0);
274
+ const result = [];
275
+ let currentSourceClassName = props.sourceClassName;
276
+ let currentSourceAlias = props.sourceAlias;
277
+ for (let i = 0; i < props.steps.length; i++) {
278
+ const step = props.steps[i];
279
+ const relationshipName = `${step.relationship.schemaName}.${step.relationship.className}`;
280
+ const relationshipReverse = step.direction === "Backward";
281
+ let targetClassName;
282
+ if (step.targetClass) {
283
+ targetClassName = `${step.targetClass.schemaName}.${step.targetClass.className}`;
284
+ }
285
+ else {
286
+ const relClass = await (0, Metadata_js_1.getClass)(props.schemaProvider, relationshipName);
287
+ if (!relClass.isRelationshipClass()) {
288
+ throw new Error(`Class ${relationshipName} is not a relationship class`);
289
+ }
290
+ const endpoint = relationshipReverse ? relClass.source : relClass.target;
291
+ const constraintClass = await endpoint.abstractConstraint;
292
+ if (!constraintClass) {
293
+ throw new Error(`Relationship's ${relationshipName} endpoint does not have an abstract constraint`);
294
+ }
295
+ targetClassName = constraintClass.fullName;
296
+ }
297
+ const isLastStep = i === props.steps.length - 1;
298
+ const targetAlias = isLastStep ? props.finalTargetAlias : subqueryAlias(INTERMEDIATE_TARGET_ALIAS, props.depth, i);
299
+ const relationshipAlias = subqueryAlias(RELATIONSHIP_ALIAS, props.depth, i);
300
+ result.push({
301
+ sourceClassName: currentSourceClassName,
302
+ targetClassName,
303
+ relationshipName,
304
+ relationshipReverse,
305
+ sourceAlias: currentSourceAlias,
306
+ targetAlias,
307
+ relationshipAlias,
308
+ });
309
+ currentSourceClassName = targetClassName;
310
+ currentSourceAlias = targetAlias;
311
+ }
312
+ return result;
313
+ }
314
+ async function buildRelationshipPathSubquery(props) {
315
+ (0, core_bentley_1.assert)(props.steps.length > 0);
316
+ const sourceAlias = subqueryAlias(SUBQUERY_SOURCE_ALIAS, props.depth);
317
+ const joinPath = await toJoinRelationshipPath({
318
+ schemaProvider: props.schemaProvider,
319
+ steps: props.steps,
320
+ sourceClassName: props.ruleClassName,
321
+ sourceAlias,
322
+ finalTargetAlias: props.finalTargetAlias,
323
+ depth: props.depth,
324
+ });
325
+ const joinClauses = await (0, ECSqlJoinSnippets_js_1.createRelationshipPathJoinClause)({ schemaProvider: props.schemaProvider, path: joinPath });
326
+ const { schemaName, className } = (0, Utils_js_1.parseFullClassName)(props.ruleClassName);
327
+ return `(
328
+ SELECT ${props.selectExpression}
329
+ FROM [${schemaName}].[${className}] [${sourceAlias}]
330
+ ${joinClauses}
331
+ WHERE [${sourceAlias}].[ECInstanceId] = [${props.classAlias}].[ECInstanceId]
332
+ LIMIT 1
333
+ )`;
334
+ }
335
+ //# sourceMappingURL=IModelInstanceLabelSelectClauseFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { TypedValueSelectClauseProps } from "../ecsql-snippets/ECSqlValueSelectorSnippets.js";
2
+ export declare function createECInstanceIdSuffixSelectors(classAlias: string): TypedValueSelectClauseProps[];
3
+ export declare function concatenate(props: {
4
+ selectorsConcatenator?: (selectors: TypedValueSelectClauseProps[], checkSelector?: string) => string;
5
+ }, selectors: TypedValueSelectClauseProps[], checkSelector?: string): string;
6
+ //# sourceMappingURL=Utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/Utils.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAEnG,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,EAAE,CAUnG;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE;IAAE,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,EAC/G,SAAS,EAAE,2BAA2B,EAAE,EACxC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAER"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createECInstanceIdSuffixSelectors = createECInstanceIdSuffixSelectors;
8
+ exports.concatenate = concatenate;
9
+ const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
10
+ function createECInstanceIdSuffixSelectors(classAlias) {
11
+ return [
12
+ { value: ` [`, type: "String" },
13
+ { selector: `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ECInstanceId")} >> 40) AS TEXT)` },
14
+ { value: `-`, type: "String" },
15
+ {
16
+ selector: `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ECInstanceId")} & ((1 << 40) - 1)) AS TEXT)`,
17
+ },
18
+ { value: `]`, type: "String" },
19
+ ];
20
+ }
21
+ function concatenate(props, selectors, checkSelector) {
22
+ return (props.selectorsConcatenator ?? ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector)(selectors, checkSelector);
23
+ }
24
+ //# sourceMappingURL=Utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/Utils.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAShG,8EAUC;AAED,kCAMC;AAzBD,mGAGyD;AAIzD,SAAgB,iCAAiC,CAAC,UAAkB;IAClE,OAAO;QACL,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,EAAE,QAAQ,EAAE,eAAe,IAAA,8DAA8B,EAAC,UAAU,EAAE,cAAc,CAAC,kBAAkB,EAAE;QACzG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B;YACE,QAAQ,EAAE,eAAe,IAAA,8DAA8B,EAAC,UAAU,EAAE,cAAc,CAAC,8BAA8B;SAClH;QACD,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CACzB,KAA+G,EAC/G,SAAwC,EACxC,aAAsB;IAEtB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,mEAAmC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACxG,CAAC"}