@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
@@ -7,6 +7,12 @@ import { createRawPropertyValueSelector } from "./ECSqlValueSelectorSnippets.js"
7
7
  /**
8
8
  * Creates an ECSQL JOIN snippet for given relationships' path.
9
9
  *
10
+ * When a step specifies `instanceFilter`, its resolved expression is appended as an `AND`
11
+ * condition to the target class JOIN's `ON` clause. In the outer-join case the condition also
12
+ * appears on the `INNER JOIN` inside the subquery so the pre-joined subquery is already
13
+ * filtered. Bindings declared in `instanceFilter.bindings` across all steps are collected
14
+ * and returned alongside the SQL string.
15
+ *
10
16
  * Possible results:
11
17
  * - When the relationship is represented by a navigation property on either source or target:
12
18
  * ```SQL
@@ -14,33 +20,48 @@ import { createRawPropertyValueSelector } from "./ECSqlValueSelectorSnippets.js"
14
20
  * ```
15
21
  * - When outer joining through a non-navigation-property relationship:
16
22
  * ```SQL
17
- * LEFT JOIN (
23
+ * OUTER JOIN (
18
24
  * SELECT [relationship_alias].*
19
25
  * FROM [relationship_schema_name].[relationship_class_name] [relationship_alias]
20
26
  * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
21
- * ) [relationship_alias]
22
- * LEFT JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
27
+ * ) [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
28
+ * OUTER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
23
29
  * ```
24
30
  * - When inner joining through a non-navigation-property relationship:
25
31
  * ```SQL
26
32
  * INNER JOIN [relationship_schema_name].[relationship_class_name] [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
27
33
  * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
28
34
  * ```
35
+ *
36
+ * @returns An object containing:
37
+ * - `joins`: the ECSQL JOIN clause string to embed in a query.
38
+ * - `bindings`: ECSQL parameter bindings collected from `instanceFilter.bindings` across all steps,
39
+ * or `undefined` if no step specified any bindings.
29
40
  * @public
30
41
  */
31
42
  export async function createRelationshipPathJoinClause(props) {
32
43
  if (props.path.length === 0) {
33
- return "";
44
+ return { joins: "" };
34
45
  }
35
46
  let prev = {
36
47
  alias: props.path[0].sourceAlias,
37
48
  joinPropertyName: "ECInstanceId",
38
49
  className: props.path[0].sourceClassName,
39
50
  };
40
- let clause = "";
51
+ let joins = "";
52
+ const bindings = {};
41
53
  for (const stepDef of props.path) {
42
54
  const step = await getRelationshipPathStepClasses(props.schemaProvider, stepDef);
43
55
  const navigationProperty = await getNavigationProperty(step);
56
+ const filterCondition = resolveInstanceFilterCondition(step);
57
+ if (step.instanceFilter?.bindings) {
58
+ for (const [key, value] of Object.entries(step.instanceFilter.bindings)) {
59
+ if (key in bindings) {
60
+ throw new Error(`Binding key "${key}" is used in multiple steps of the relationship path. Each binding key must be unique across all steps.`);
61
+ }
62
+ bindings[key] = value;
63
+ }
64
+ }
44
65
  if (navigationProperty) {
45
66
  const isNavigationPropertyForward = navigationProperty.direction === "Forward";
46
67
  const relationshipJoinPropertyNames = isNavigationPropertyForward === !step.relationshipReverse
@@ -52,53 +73,57 @@ export async function createRelationshipPathJoinClause(props) {
52
73
  this: createRawPropertyValueSelector(step.targetAlias, navigationProperty.name, "Id"),
53
74
  next: createRawPropertyValueSelector(prev.alias, prev.joinPropertyName),
54
75
  };
55
- clause += `
76
+ joins += `
56
77
  ${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
57
- ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}
78
+ ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}${filterCondition}
58
79
  `;
59
- prev = {
60
- alias: step.targetAlias,
61
- className: step.target.fullName,
62
- joinPropertyName: "ECInstanceId",
63
- };
80
+ prev = { alias: step.targetAlias, className: step.target.fullName, joinPropertyName: "ECInstanceId" };
64
81
  }
65
82
  else {
66
83
  const relationshipJoinPropertyNames = !step.relationshipReverse
67
84
  ? { this: "SourceECInstanceId", next: "TargetECInstanceId" }
68
85
  : { this: "TargetECInstanceId", next: "SourceECInstanceId" };
69
86
  if (step.joinType === "outer") {
70
- clause += `
87
+ joins += `
71
88
  ${getJoinClause("outer")} (
72
89
  SELECT [${step.relationshipAlias}].*
73
90
  FROM ${getClassSelectClause(step.relationship, step.relationshipAlias)}
74
91
  ${getJoinClause("inner")} ${getClassSelectClause(step.target, step.targetAlias)}
75
92
  ON ${createRawPropertyValueSelector(step.targetAlias, "ECInstanceId")}
76
- = ${createRawPropertyValueSelector(step.relationshipAlias, relationshipJoinPropertyNames.next)}
93
+ = ${createRawPropertyValueSelector(step.relationshipAlias, relationshipJoinPropertyNames.next)}${filterCondition}
77
94
  ) [${step.relationshipAlias}]
78
95
  ON ${createRawPropertyValueSelector(step.relationshipAlias, relationshipJoinPropertyNames.this)}
79
96
  = ${createRawPropertyValueSelector(prev.alias, prev.joinPropertyName)}
80
97
  `;
81
98
  }
82
99
  else {
83
- clause += `
100
+ joins += `
84
101
  ${getJoinClause("inner")} ${getClassSelectClause(step.relationship, step.relationshipAlias)}
85
102
  ON ${createRawPropertyValueSelector(step.relationshipAlias, relationshipJoinPropertyNames.this)}
86
103
  = ${createRawPropertyValueSelector(prev.alias, prev.joinPropertyName)}
87
104
  `;
88
105
  }
89
- clause += `
106
+ joins += `
90
107
  ${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
91
108
  ON ${createRawPropertyValueSelector(step.targetAlias, "ECInstanceId")}
92
- = ${createRawPropertyValueSelector(step.relationshipAlias, relationshipJoinPropertyNames.next)}
109
+ = ${createRawPropertyValueSelector(step.relationshipAlias, relationshipJoinPropertyNames.next)}${filterCondition}
93
110
  `;
94
- prev = {
95
- alias: step.targetAlias,
96
- className: step.target.fullName,
97
- joinPropertyName: "ECInstanceId",
98
- };
111
+ prev = { alias: step.targetAlias, className: step.target.fullName, joinPropertyName: "ECInstanceId" };
99
112
  }
100
113
  }
101
- return clause;
114
+ return { joins, bindings: Object.keys(bindings).length > 0 ? bindings : undefined };
115
+ }
116
+ function resolveInstanceFilterCondition(step) {
117
+ if (!step.instanceFilter) {
118
+ return "";
119
+ }
120
+ const { expression, targetAlias = "this", relationshipAlias = "rel" } = step.instanceFilter;
121
+ const resolvedExpression = expression
122
+ .replaceAll(`[${targetAlias}].`, `[${step.targetAlias}].`)
123
+ .replaceAll(`${targetAlias}.`, `[${step.targetAlias}].`)
124
+ .replaceAll(`[${relationshipAlias}].`, `[${step.relationshipAlias}].`)
125
+ .replaceAll(`${relationshipAlias}.`, `[${step.relationshipAlias}].`);
126
+ return ` AND (${resolvedExpression})`;
102
127
  }
103
128
  async function getRelationshipPathStepClasses(schemaProvider, step) {
104
129
  const { sourceClassName, relationshipName, targetClassName, ...rest } = step;
@@ -113,12 +138,18 @@ async function getNavigationProperty(step) {
113
138
  const source = !step.relationshipReverse ? step.source : step.target;
114
139
  const target = !step.relationshipReverse ? step.target : step.source;
115
140
  for (const prop of await source.getProperties()) {
116
- if (prop.isNavigation() && prop.direction === "Forward" && (await prop.relationshipClass).fullName === step.relationship.fullName) {
141
+ /* v8 ignore else -- @preserve */
142
+ if (prop.isNavigation() &&
143
+ prop.direction === "Forward" &&
144
+ (await prop.relationshipClass).fullName === step.relationship.fullName) {
117
145
  return prop;
118
146
  }
119
147
  }
120
148
  for (const prop of await target.getProperties()) {
121
- if (prop.isNavigation() && prop.direction === "Backward" && (await prop.relationshipClass).fullName === step.relationship.fullName) {
149
+ /* v8 ignore else -- @preserve */
150
+ if (prop.isNavigation() &&
151
+ prop.direction === "Backward" &&
152
+ (await prop.relationshipClass).fullName === step.relationship.fullName) {
122
153
  return prop;
123
154
  }
124
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { ECSchemaProvider, PrimitiveValueType } from "../Metadata.js";
2
- import { PrimitiveValue, TypedPrimitiveValue } from "../Values.js";
1
+ import { PrimitiveValue } from "../Values.js";
2
+ import type { EC, ECSchemaProvider, PrimitiveValueType } from "../Metadata.js";
3
+ import type { TypedPrimitiveValue } from "../Values.js";
3
4
  /**
4
5
  * Props for selecting a `TypedPrimitiveValue` using given ECSQL selector.
5
6
  * @public
@@ -37,7 +38,7 @@ export declare function createPrimitivePropertyValueSelectorProps({ schemaProvid
37
38
  /** Access to schema information. */
38
39
  schemaProvider: ECSchemaProvider;
39
40
  /** Full class name of the property. Format: `SchemaName.ClassName`. */
40
- propertyClassName: string;
41
+ propertyClassName: EC.FullClassName;
41
42
  /** Query alias of the class that contains the property. */
42
43
  propertyClassAlias: string;
43
44
  /** Name of the property to create `TypedPrimitiveValue` for. */
@@ -60,6 +61,14 @@ export declare function createRawPropertyValueSelector(classAlias: string, prope
60
61
  * @public
61
62
  */
62
63
  export declare function createRawPrimitiveValueSelector(value: PrimitiveValue | undefined): string;
64
+ /**
65
+ * Converts a full class name (`SchemaName.ClassName` or `SchemaName:ClassName`) into a
66
+ * bracket-quoted ECSQL class selector: `[SchemaName].[ClassName]`.
67
+ *
68
+ * @throws Error if the provided full class name is not valid.
69
+ * @public
70
+ */
71
+ export declare function createClassSelector(fullClassName: EC.FullClassName): string;
63
72
  /**
64
73
  * Creates an ECSQL selector that results in a stringified `InstanceKey` object.
65
74
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlValueSelectorSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAY,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnE;;;GAGG;AACH,KAAK,gCAAgC,GAAG;IACtC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,CACA;IACE,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,gCAAgC,CAAC;AAEjG,cAAc;AAEd,yBAAiB,2BAA2B,CAAC;IAC3C,SAAgB,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,IAAI,mBAAmB,CAEjG;IACD,SAAgB,wBAAwB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,IAAI,gCAAgC,CAEtH;CACF;AAED;;;;GAIG;AACH,wBAAsB,yCAAyC,CAAC,EAC9D,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,EAAE;IACD,oCAAoC;IACpC,cAAc,EAAE,gBAAgB,CAAC;IACjC,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAsD5C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvH;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,UAqBhF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,UAIjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,UAMnH;AA2CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,UAMrH"}
1
+ {"version":3,"file":"ECSqlValueSelectorSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;GAGG;AACH,KAAK,gCAAgC,GAAG;IACtC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,CACA;IACE,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAC3F,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,gCAAgC,CAAC;AAEjG,cAAc;AAEd,yBAAiB,2BAA2B,CAAC;IAC3C,SAAgB,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,IAAI,mBAAmB,CAEjG;IACD,SAAgB,wBAAwB,CACtC,KAAK,EAAE,2BAA2B,GACjC,KAAK,IAAI,gCAAgC,CAE3C;CACF;AAED;;;;GAIG;AACH,wBAAsB,yCAAyC,CAAC,EAC9D,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,EAAE;IACD,oCAAoC;IACpC,cAAc,EAAE,gBAAgB,CAAC;IACjC,uEAAuE;IACvE,iBAAiB,EAAE,EAAE,CAAC,aAAa,CAAC;IACpC,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAsD5C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAMR;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,UAqBhF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAG3E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,UAIjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,UAMnH;AA2CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,2BAA2B,EAAE,EACxC,aAAa,CAAC,EAAE,MAAM,UASvB"}
@@ -4,6 +4,7 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { Id64 } from "@itwin/core-bentley";
6
6
  import { getClass } from "../Metadata.js";
7
+ import { parseFullClassName } from "../Utils.js";
7
8
  import { PrimitiveValue } from "../Values.js";
8
9
  /** @public */
9
10
  // eslint-disable-next-line @typescript-eslint/no-redeclare
@@ -50,27 +51,27 @@ export async function createPrimitivePropertyValueSelectorProps({ schemaProvider
50
51
  return {
51
52
  selector: `json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y])`,
52
53
  type: "Point2d",
53
- ...(extendedType ? { extendedType } : /* c8 ignore next */ {}),
54
+ ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
54
55
  };
55
56
  case "Point3d":
56
57
  return {
57
58
  selector: `json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y], 'z', ${propertySelector}.[z])`,
58
59
  type: "Point3d",
59
- ...(extendedType ? { extendedType } : /* c8 ignore next */ {}),
60
+ ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
60
61
  };
61
62
  case "Double":
62
63
  const koqName = (await property.kindOfQuantity)?.fullName;
63
64
  return {
64
65
  selector: propertySelector,
65
66
  type: "Double",
66
- ...(extendedType ? { extendedType } : /* c8 ignore next */ {}),
67
- ...(koqName ? { koqName } : /* c8 ignore next */ {}),
67
+ ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
68
+ ...(koqName ? { koqName } : /* v8 ignore next */ {}),
68
69
  };
69
70
  }
70
71
  return {
71
72
  selector: propertySelector,
72
73
  type: propertyValueType,
73
- ...(extendedType ? { extendedType } : /* c8 ignore next */ {}),
74
+ ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
74
75
  };
75
76
  }
76
77
  /**
@@ -117,6 +118,17 @@ export function createRawPrimitiveValueSelector(value) {
117
118
  return value ? "TRUE" : "FALSE";
118
119
  }
119
120
  }
121
+ /**
122
+ * Converts a full class name (`SchemaName.ClassName` or `SchemaName:ClassName`) into a
123
+ * bracket-quoted ECSQL class selector: `[SchemaName].[ClassName]`.
124
+ *
125
+ * @throws Error if the provided full class name is not valid.
126
+ * @public
127
+ */
128
+ export function createClassSelector(fullClassName) {
129
+ const { schemaName, className } = parseFullClassName(fullClassName);
130
+ return `[${schemaName}].[${className}]`;
131
+ }
120
132
  /**
121
133
  * Creates an ECSQL selector that results in a stringified `InstanceKey` object.
122
134
  * @public
@@ -223,7 +235,9 @@ function createPrimitiveValueJsonSelector(value) {
223
235
  * @public
224
236
  */
225
237
  export function createConcatenatedValueStringSelector(selectors, checkSelector) {
226
- const combinedSelectors = selectors.length ? selectors.map((sel) => createTypedValueStringSelector(sel)).join(" || ") : "''";
238
+ const combinedSelectors = selectors.length
239
+ ? selectors.map((sel) => createTypedValueStringSelector(sel)).join(" || ")
240
+ : "''";
227
241
  if (checkSelector) {
228
242
  return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
229
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlValueSelectorSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ECSqlValueSelectorSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, createInstanceKeySelector, createPrimitivePropertyValueSelectorProps, } from "./ECSqlValueSelectorSnippets.js";
1
+ export { createClassSelector, createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, createInstanceKeySelector, createPrimitivePropertyValueSelectorProps, } from "./ECSqlValueSelectorSnippets.js";
2
2
  export { createRelationshipPathJoinClause } from "./ECSqlJoinSnippets.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC"}
@@ -2,6 +2,6 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- export { createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, createInstanceKeySelector, createPrimitivePropertyValueSelectorProps, } from "./ECSqlValueSelectorSnippets.js";
5
+ export { createClassSelector, createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, createInstanceKeySelector, createPrimitivePropertyValueSelectorProps, } from "./ECSqlValueSelectorSnippets.js";
6
6
  export { createRelationshipPathJoinClause } from "./ECSqlJoinSnippets.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { IInstanceLabelSelectClauseFactory } from "../InstanceLabelSelectClauseFactory.js";
2
+ import type { ECClassHierarchyInspector } from "../Metadata.js";
3
+ /**
4
+ * Props for `createBisInstanceLabelSelectClauseFactory`.
5
+ * @public
6
+ */
7
+ interface BisInstanceLabelSelectClauseFactoryProps {
8
+ classHierarchyInspector: ECClassHierarchyInspector;
9
+ }
10
+ /**
11
+ * Creates a label select clause according to BIS instance label rules.
12
+ * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
13
+ * @public
14
+ */
15
+ export declare function createBisInstanceLabelSelectClauseFactory(props: BisInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
16
+ export {};
17
+ //# sourceMappingURL=BisInstanceLabelSelectClauseFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BisInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE;;;GAGG;AACH,UAAU,wCAAwC;IAChD,uBAAuB,EAAE,yBAAyB,CAAC;CACpD;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,wCAAwC,GAC9C,iCAAiC,CA6CnC"}
@@ -0,0 +1,51 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { createRawPropertyValueSelector } from "../ecsql-snippets/ECSqlValueSelectorSnippets.js";
6
+ import { createClassBasedInstanceLabelSelectClauseFactory } from "./ClassBasedInstanceLabelSelectClauseFactory.js";
7
+ import { ALIAS_PREFIX, concatenate, createECInstanceIdSuffixSelectors } from "./Utils.js";
8
+ /**
9
+ * Creates a label select clause according to BIS instance label rules.
10
+ * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
11
+ * @public
12
+ */
13
+ export function createBisInstanceLabelSelectClauseFactory(props) {
14
+ const clauses = [];
15
+ const factory = createClassBasedInstanceLabelSelectClauseFactory({
16
+ classHierarchyInspector: props.classHierarchyInspector,
17
+ clauses,
18
+ });
19
+ clauses.push({
20
+ className: "BisCore.GeometricElement",
21
+ clause: async ({ classAlias, ...rest }) => `
22
+ COALESCE(
23
+ ${createRawPropertyValueSelector(classAlias, "CodeValue")},
24
+ ${concatenate(rest, [
25
+ { selector: createRawPropertyValueSelector(classAlias, "UserLabel") },
26
+ ...createECInstanceIdSuffixSelectors(classAlias),
27
+ ], `${createRawPropertyValueSelector(classAlias, "UserLabel")} IS NOT NULL`)}
28
+ )
29
+ `,
30
+ }, {
31
+ className: "BisCore.Element",
32
+ clause: async ({ classAlias }) => `
33
+ COALESCE(
34
+ ${createRawPropertyValueSelector(classAlias, "UserLabel")},
35
+ ${createRawPropertyValueSelector(classAlias, "CodeValue")}
36
+ )
37
+ `,
38
+ }, {
39
+ className: "BisCore.Model",
40
+ clause: async ({ classAlias, ...rest }) => {
41
+ const elementAlias = `${ALIAS_PREFIX}e`;
42
+ return `(
43
+ SELECT ${await factory.createSelectClause({ ...rest, classAlias: elementAlias, className: "BisCore.Element" })}
44
+ FROM [bis].[Element] AS ${elementAlias}
45
+ WHERE ${elementAlias}.[ECInstanceId] = ${createRawPropertyValueSelector(classAlias, "ModeledElement", "Id")}
46
+ )`;
47
+ },
48
+ });
49
+ return factory;
50
+ }
51
+ //# sourceMappingURL=BisInstanceLabelSelectClauseFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BisInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,gDAAgD,EAAE,MAAM,iDAAiD,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAc1F;;;;GAIG;AACH,MAAM,UAAU,yCAAyC,CACvD,KAA+C;IAE/C,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,gDAAgD,CAAC;QAC/D,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;QACtD,OAAO;KACR,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CACV;QACE,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC;;YAErC,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC;YACvD,WAAW,CACX,IAAI,EACJ;YACE,EAAE,QAAQ,EAAE,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;YACrE,GAAG,iCAAiC,CAAC,UAAU,CAAC;SACjD,EACD,GAAG,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC,cAAc,CACzE;;OAEJ;KACF,EACD;QACE,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;;YAE5B,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC;YACvD,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC;;OAE5D;KACF,EACD;QACE,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;YACxC,MAAM,YAAY,GAAG,GAAG,YAAY,GAAG,CAAC;YACxC,OAAO;iBACE,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;kCACpF,YAAY;gBAC9B,YAAY,qBAAqB,8BAA8B,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,CAAC;QAC3G,CAAC;QACH,CAAC;KACF,CACF,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { CreateInstanceLabelSelectClauseProps, IInstanceLabelSelectClauseFactory } from "../InstanceLabelSelectClauseFactory.js";
2
+ import type { EC, ECClassHierarchyInspector } from "../Metadata.js";
3
+ /**
4
+ * An association of a class and an instance label select clause factory method.
5
+ * @public
6
+ */
7
+ export interface ClassBasedLabelSelectClause {
8
+ /** Full class name */
9
+ className: EC.FullClassName;
10
+ /** A factory method to create an instance label select clause */
11
+ clause: (props: CreateInstanceLabelSelectClauseProps) => Promise<string>;
12
+ }
13
+ /**
14
+ * Props for `createClassBasedInstanceLabelSelectClauseFactory`.
15
+ * @public
16
+ */
17
+ export interface ClassBasedInstanceLabelSelectClauseFactoryProps {
18
+ /** Access to ECClass hierarchy in the iModel. */
19
+ classHierarchyInspector: ECClassHierarchyInspector;
20
+ /**
21
+ * A prioritized list of instance label selectors associated to classes they should be applied to.
22
+ *
23
+ * Because the list may contain clauses for classes in the same class hierarchy, and the factory
24
+ * handles them in given order, the order of clauses should be from the most specific class to the
25
+ * most general one.
26
+ */
27
+ clauses: ClassBasedLabelSelectClause[];
28
+ /**
29
+ * A fallback label clause factory for when class-based factory doesn't produce a label.
30
+ * Defaults to the result of `createDefaultInstanceLabelSelectClauseFactory`.
31
+ */
32
+ defaultClauseFactory?: IInstanceLabelSelectClauseFactory;
33
+ }
34
+ /**
35
+ * Creates an instance label select clause based on its class.
36
+ * @public
37
+ */
38
+ export declare function createClassBasedInstanceLabelSelectClauseFactory(props: ClassBasedInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
39
+ //# sourceMappingURL=ClassBasedInstanceLabelSelectClauseFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassBasedInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,oCAAoC,EACpC,iCAAiC,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB;IACtB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC;IAC5B,iEAAiE;IACjE,MAAM,EAAE,CAAC,KAAK,EAAE,oCAAoC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED;;;GAGG;AACH,MAAM,WAAW,+CAA+C;IAC9D,iDAAiD;IACjD,uBAAuB,EAAE,yBAAyB,CAAC;IAEnD;;;;;;OAMG;IACH,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAEvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,iCAAiC,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,gDAAgD,CAC9D,KAAK,EAAE,+CAA+C,GACrD,iCAAiC,CAyDnC"}
@@ -0,0 +1,60 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { createRawPropertyValueSelector } from "../ecsql-snippets/ECSqlValueSelectorSnippets.js";
6
+ import { createDefaultInstanceLabelSelectClauseFactory } from "./DefaultInstanceLabelSelectClauseFactory.js";
7
+ /**
8
+ * Creates an instance label select clause based on its class.
9
+ * @public
10
+ */
11
+ export function createClassBasedInstanceLabelSelectClauseFactory(props) {
12
+ const { classHierarchyInspector, clauses: labelClausesByClass } = props;
13
+ const defaultClauseFactory = props.defaultClauseFactory ?? createDefaultInstanceLabelSelectClauseFactory();
14
+ async function getLabelClausesForClass(queryClassName) {
15
+ const matchingLabelClauses = await Promise.all(labelClausesByClass.map(async (entry) => {
16
+ if (await classHierarchyInspector.classDerivesFrom(entry.className, queryClassName)) {
17
+ // label selector is intended for a more specific class than we're selecting from - need to include it
18
+ // as query results (on polymorphic select) are going to include more specific class instances too
19
+ return entry;
20
+ }
21
+ if (await classHierarchyInspector.classDerivesFrom(queryClassName, entry.className)) {
22
+ // label selector is intended for a base class of what query is selecting - need to include it as
23
+ // we want base class label selectors to apply to subclass instances
24
+ return entry;
25
+ }
26
+ return undefined;
27
+ }));
28
+ function filterNotUndefined(x) {
29
+ return !!x;
30
+ }
31
+ return matchingLabelClauses.filter(filterNotUndefined);
32
+ }
33
+ return {
34
+ async createSelectClause(clauseProps) {
35
+ if (labelClausesByClass.length === 0) {
36
+ return defaultClauseFactory.createSelectClause(clauseProps);
37
+ }
38
+ const labelClausePromises = clauseProps.className
39
+ ? await getLabelClausesForClass(clauseProps.className)
40
+ : labelClausesByClass;
41
+ if (labelClausePromises.length === 0) {
42
+ return defaultClauseFactory.createSelectClause(clauseProps);
43
+ }
44
+ const labelClauses = await Promise.all(labelClausePromises.map(async ({ className, clause }) => ({ className, clause: await clause(clauseProps) })));
45
+ return `COALESCE(
46
+ ${labelClauses
47
+ .map(({ className, clause }) => `
48
+ IIF(
49
+ ${createRawPropertyValueSelector(clauseProps.classAlias, "ECClassId")} IS (${className}),
50
+ ${clause.trim()},
51
+ NULL
52
+ )
53
+ `.trim())
54
+ .join(", ")},
55
+ ${await defaultClauseFactory.createSelectClause(clauseProps)}
56
+ )`;
57
+ },
58
+ };
59
+ }
60
+ //# sourceMappingURL=ClassBasedInstanceLabelSelectClauseFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassBasedInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,6CAA6C,EAAE,MAAM,8CAA8C,CAAC;AA2C7G;;;GAGG;AACH,MAAM,UAAU,gDAAgD,CAC9D,KAAsD;IAEtD,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,IAAI,6CAA6C,EAAE,CAAC;IAC3G,KAAK,UAAU,uBAAuB,CAAC,cAAgC;QACrE,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5C,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACtC,IAAI,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;gBACpF,sGAAsG;gBACtG,kGAAkG;gBAClG,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpF,iGAAiG;gBACjG,oEAAoE;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QACF,SAAS,kBAAkB,CAAI,CAAgB;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC;QACD,OAAO,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzD,CAAC;IACD,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,WAAiD;YACxE,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,mBAAmB,GAAG,WAAW,CAAC,SAAS;gBAC/C,CAAC,CAAC,MAAM,uBAAuB,CAAC,WAAW,CAAC,SAAS,CAAC;gBACtD,CAAC,CAAC,mBAAmB,CAAC;YACxB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAC7G,CAAC;YAEF,OAAO;UACH,YAAY;iBACX,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7B;;kBAEM,8BAA8B,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,SAAS;kBACpF,MAAM,CAAC,IAAI,EAAE;;;aAGlB,CAAC,IAAI,EAAE,CACT;iBACA,IAAI,CAAC,IAAI,CAAC;UACX,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,WAAW,CAAC;QAC5D,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { IInstanceLabelSelectClauseFactory } from "../InstanceLabelSelectClauseFactory.js";
2
+ /**
3
+ * Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
4
+ * local and briefcase IDs are calculated based on ECInstance ID:
5
+ * - `{briefcase id} = ECInstanceId >> 40`
6
+ * - `{local id} = ECInstanceId & (1 << 40 - 1)`
7
+ *
8
+ * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
9
+ * @public
10
+ */
11
+ export declare function createDefaultInstanceLabelSelectClauseFactory(): IInstanceLabelSelectClauseFactory;
12
+ //# sourceMappingURL=DefaultInstanceLabelSelectClauseFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAEhG;;;;;;;;GAQG;AACH,wBAAgB,6CAA6C,IAAI,iCAAiC,CAoBjG"}
@@ -0,0 +1,37 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { createRawPropertyValueSelector } from "../ecsql-snippets/ECSqlValueSelectorSnippets.js";
6
+ import { ALIAS_PREFIX, concatenate, createECInstanceIdSuffixSelectors } from "./Utils.js";
7
+ /**
8
+ * Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
9
+ * local and briefcase IDs are calculated based on ECInstance ID:
10
+ * - `{briefcase id} = ECInstanceId >> 40`
11
+ * - `{local id} = ECInstanceId & (1 << 40 - 1)`
12
+ *
13
+ * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
14
+ * @public
15
+ */
16
+ export function createDefaultInstanceLabelSelectClauseFactory() {
17
+ const alias = `${ALIAS_PREFIX}c`;
18
+ return {
19
+ async createSelectClause(props) {
20
+ return `(
21
+ SELECT
22
+ ${concatenate(props, [
23
+ {
24
+ selector: `COALESCE(
25
+ ${createRawPropertyValueSelector(alias, "DisplayLabel")},
26
+ ${createRawPropertyValueSelector(alias, "Name")}
27
+ )`,
28
+ },
29
+ ...createECInstanceIdSuffixSelectors(props.classAlias),
30
+ ])}
31
+ FROM [meta].[ECClassDef] AS ${alias}
32
+ WHERE ${alias}.[ECInstanceId] = ${createRawPropertyValueSelector(props.classAlias, "ECClassId")}
33
+ )`;
34
+ },
35
+ };
36
+ }
37
+ //# sourceMappingURL=DefaultInstanceLabelSelectClauseFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAI1F;;;;;;;;GAQG;AACH,MAAM,UAAU,6CAA6C;IAC3D,MAAM,KAAK,GAAG,GAAG,YAAY,GAAG,CAAC;IACjC,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,KAAK;YAC5B,OAAO;;YAED,WAAW,CAAC,KAAK,EAAE;gBACnB;oBACE,QAAQ,EAAE;kBACN,8BAA8B,CAAC,KAAK,EAAE,cAAc,CAAC;kBACrD,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC/C;iBACH;gBACD,GAAG,iCAAiC,CAAC,KAAK,CAAC,UAAU,CAAC;aACvD,CAAC;sCAC0B,KAAK;gBAC3B,KAAK,qBAAqB,8BAA8B,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;QAC/F,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}