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

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 (209) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/lib/{esm/presentation-shared.d.ts → presentation-shared.d.ts} +6 -5
  3. package/lib/presentation-shared.d.ts.map +1 -0
  4. package/lib/{esm/presentation-shared.js → presentation-shared.js} +3 -3
  5. package/lib/presentation-shared.js.map +1 -0
  6. package/lib/shared/ConcatenatedValue.d.ts.map +1 -0
  7. package/lib/shared/ConcatenatedValue.js.map +1 -0
  8. package/lib/{cjs/shared → shared}/ECSqlCore.d.ts +15 -1
  9. package/lib/shared/ECSqlCore.d.ts.map +1 -0
  10. package/lib/shared/ECSqlCore.js +37 -0
  11. package/lib/shared/ECSqlCore.js.map +1 -0
  12. package/lib/shared/Event.d.ts.map +1 -0
  13. package/lib/{esm/shared → shared}/Event.js.map +1 -1
  14. package/lib/shared/Formatting.d.ts.map +1 -0
  15. package/lib/shared/Formatting.js.map +1 -0
  16. package/lib/{cjs/shared → shared}/InstanceLabelSelectClauseFactory.d.ts +1 -1
  17. package/lib/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  18. package/lib/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  19. package/lib/shared/Logging.d.ts.map +1 -0
  20. package/lib/shared/Logging.js.map +1 -0
  21. package/lib/shared/MappedTypes.d.ts +48 -0
  22. package/lib/shared/MappedTypes.d.ts.map +1 -0
  23. package/lib/shared/MappedTypes.js.map +1 -0
  24. package/lib/{cjs/shared → shared}/Metadata.d.ts +225 -11
  25. package/lib/shared/Metadata.d.ts.map +1 -0
  26. package/lib/shared/Metadata.js.map +1 -0
  27. package/lib/{cjs/shared → shared}/Utils.d.ts +0 -6
  28. package/lib/shared/Utils.d.ts.map +1 -0
  29. package/lib/{esm/shared → shared}/Utils.js +16 -19
  30. package/lib/shared/Utils.js.map +1 -0
  31. package/lib/{esm/shared → shared}/Values.d.ts +44 -20
  32. package/lib/shared/Values.d.ts.map +1 -0
  33. package/lib/shared/Values.js +121 -0
  34. package/lib/shared/Values.js.map +1 -0
  35. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +167 -0
  36. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  37. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js +177 -0
  38. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  39. package/lib/{cjs/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +9 -1
  40. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  41. package/lib/{esm/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.js +12 -0
  42. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  43. package/lib/shared/ecsql-snippets/index.d.ts +3 -0
  44. package/lib/shared/ecsql-snippets/index.d.ts.map +1 -0
  45. package/lib/shared/ecsql-snippets/index.js +7 -0
  46. package/lib/shared/ecsql-snippets/index.js.map +1 -0
  47. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  48. package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +9 -6
  49. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  50. package/lib/{esm/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +1 -1
  51. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  52. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  53. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  54. package/lib/{esm/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +6 -5
  55. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  56. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  57. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  58. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  59. package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +4 -3
  60. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  61. package/lib/{esm/shared → shared}/instance-label-factory-impls/Utils.d.ts +1 -0
  62. package/lib/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  63. package/lib/{esm/shared → shared}/instance-label-factory-impls/Utils.js +1 -0
  64. package/lib/shared/instance-label-factory-impls/Utils.js.map +1 -0
  65. package/package.json +16 -18
  66. package/lib/cjs/package.json +0 -1
  67. package/lib/cjs/presentation-shared.d.ts +0 -21
  68. package/lib/cjs/presentation-shared.d.ts.map +0 -1
  69. package/lib/cjs/presentation-shared.js +0 -76
  70. package/lib/cjs/presentation-shared.js.map +0 -1
  71. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +0 -1
  72. package/lib/cjs/shared/ConcatenatedValue.js +0 -49
  73. package/lib/cjs/shared/ConcatenatedValue.js.map +0 -1
  74. package/lib/cjs/shared/ECSqlCore.d.ts.map +0 -1
  75. package/lib/cjs/shared/ECSqlCore.js +0 -7
  76. package/lib/cjs/shared/ECSqlCore.js.map +0 -1
  77. package/lib/cjs/shared/Event.d.ts.map +0 -1
  78. package/lib/cjs/shared/Event.js +0 -7
  79. package/lib/cjs/shared/Event.js.map +0 -1
  80. package/lib/cjs/shared/Formatting.d.ts.map +0 -1
  81. package/lib/cjs/shared/Formatting.js +0 -118
  82. package/lib/cjs/shared/Formatting.js.map +0 -1
  83. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  84. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -30
  85. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  86. package/lib/cjs/shared/Logging.d.ts.map +0 -1
  87. package/lib/cjs/shared/Logging.js +0 -21
  88. package/lib/cjs/shared/Logging.js.map +0 -1
  89. package/lib/cjs/shared/MappedTypes.d.ts +0 -17
  90. package/lib/cjs/shared/MappedTypes.d.ts.map +0 -1
  91. package/lib/cjs/shared/MappedTypes.js +0 -7
  92. package/lib/cjs/shared/MappedTypes.js.map +0 -1
  93. package/lib/cjs/shared/Metadata.d.ts.map +0 -1
  94. package/lib/cjs/shared/Metadata.js +0 -56
  95. package/lib/cjs/shared/Metadata.js.map +0 -1
  96. package/lib/cjs/shared/Utils.d.ts.map +0 -1
  97. package/lib/cjs/shared/Utils.js +0 -111
  98. package/lib/cjs/shared/Utils.js.map +0 -1
  99. package/lib/cjs/shared/Values.d.ts +0 -107
  100. package/lib/cjs/shared/Values.d.ts.map +0 -1
  101. package/lib/cjs/shared/Values.js +0 -122
  102. package/lib/cjs/shared/Values.js.map +0 -1
  103. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -51
  104. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  105. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -138
  106. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  107. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  108. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +0 -262
  109. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  110. package/lib/cjs/shared/ecsql-snippets/index.d.ts +0 -3
  111. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +0 -1
  112. package/lib/cjs/shared/ecsql-snippets/index.js +0 -18
  113. package/lib/cjs/shared/ecsql-snippets/index.js.map +0 -1
  114. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  115. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +0 -51
  116. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
  117. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +0 -39
  118. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  119. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +0 -63
  120. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
  121. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  122. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -39
  123. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
  124. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
  125. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -10
  126. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
  127. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  128. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +0 -335
  129. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
  130. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts +0 -6
  131. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
  132. package/lib/cjs/shared/instance-label-factory-impls/Utils.js +0 -24
  133. package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +0 -1
  134. package/lib/esm/presentation-shared.d.ts.map +0 -1
  135. package/lib/esm/presentation-shared.js.map +0 -1
  136. package/lib/esm/shared/ConcatenatedValue.d.ts +0 -46
  137. package/lib/esm/shared/ConcatenatedValue.d.ts.map +0 -1
  138. package/lib/esm/shared/ConcatenatedValue.js.map +0 -1
  139. package/lib/esm/shared/ECSqlCore.d.ts +0 -94
  140. package/lib/esm/shared/ECSqlCore.d.ts.map +0 -1
  141. package/lib/esm/shared/ECSqlCore.js +0 -6
  142. package/lib/esm/shared/ECSqlCore.js.map +0 -1
  143. package/lib/esm/shared/Event.d.ts +0 -27
  144. package/lib/esm/shared/Event.d.ts.map +0 -1
  145. package/lib/esm/shared/Formatting.d.ts +0 -44
  146. package/lib/esm/shared/Formatting.d.ts.map +0 -1
  147. package/lib/esm/shared/Formatting.js.map +0 -1
  148. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +0 -73
  149. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  150. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  151. package/lib/esm/shared/Logging.d.ts +0 -27
  152. package/lib/esm/shared/Logging.d.ts.map +0 -1
  153. package/lib/esm/shared/Logging.js.map +0 -1
  154. package/lib/esm/shared/MappedTypes.d.ts +0 -17
  155. package/lib/esm/shared/MappedTypes.d.ts.map +0 -1
  156. package/lib/esm/shared/MappedTypes.js.map +0 -1
  157. package/lib/esm/shared/Metadata.d.ts +0 -294
  158. package/lib/esm/shared/Metadata.d.ts.map +0 -1
  159. package/lib/esm/shared/Metadata.js.map +0 -1
  160. package/lib/esm/shared/Utils.d.ts +0 -66
  161. package/lib/esm/shared/Utils.d.ts.map +0 -1
  162. package/lib/esm/shared/Utils.js.map +0 -1
  163. package/lib/esm/shared/Values.d.ts.map +0 -1
  164. package/lib/esm/shared/Values.js +0 -119
  165. package/lib/esm/shared/Values.js.map +0 -1
  166. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -51
  167. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  168. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -135
  169. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  170. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +0 -122
  171. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  172. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  173. package/lib/esm/shared/ecsql-snippets/index.d.ts +0 -3
  174. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +0 -1
  175. package/lib/esm/shared/ecsql-snippets/index.js +0 -7
  176. package/lib/esm/shared/ecsql-snippets/index.js.map +0 -1
  177. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +0 -17
  178. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  179. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
  180. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  181. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
  182. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -12
  183. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  184. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
  185. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -198
  186. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
  187. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
  188. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +0 -34
  189. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  190. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
  191. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
  192. package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +0 -1
  193. /package/lib/{cjs/shared → shared}/ConcatenatedValue.d.ts +0 -0
  194. /package/lib/{esm/shared → shared}/ConcatenatedValue.js +0 -0
  195. /package/lib/{cjs/shared → shared}/Event.d.ts +0 -0
  196. /package/lib/{esm/shared → shared}/Event.js +0 -0
  197. /package/lib/{cjs/shared → shared}/Formatting.d.ts +0 -0
  198. /package/lib/{esm/shared → shared}/Formatting.js +0 -0
  199. /package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.js +0 -0
  200. /package/lib/{cjs/shared → shared}/Logging.d.ts +0 -0
  201. /package/lib/{esm/shared → shared}/Logging.js +0 -0
  202. /package/lib/{esm/shared → shared}/MappedTypes.js +0 -0
  203. /package/lib/{esm/shared → shared}/Metadata.js +0 -0
  204. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +0 -0
  205. /package/lib/{esm/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +0 -0
  206. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -0
  207. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -0
  208. /package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -0
  209. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +0 -0
@@ -1,138 +0,0 @@
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.createRelationshipPathJoinClause = createRelationshipPathJoinClause;
8
- const Metadata_js_1 = require("../Metadata.js");
9
- const ECSqlValueSelectorSnippets_js_1 = require("./ECSqlValueSelectorSnippets.js");
10
- /**
11
- * Creates an ECSQL JOIN snippet for given relationships' path.
12
- *
13
- * Possible results:
14
- * - When the relationship is represented by a navigation property on either source or target:
15
- * ```SQL
16
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[navigation_property_name].[Id] = [source_alias].[ECInstanceId]
17
- * ```
18
- * - When outer joining through a non-navigation-property relationship:
19
- * ```SQL
20
- * LEFT JOIN (
21
- * SELECT [relationship_alias].*
22
- * FROM [relationship_schema_name].[relationship_class_name] [relationship_alias]
23
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
24
- * ) [relationship_alias]
25
- * LEFT JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
26
- * ```
27
- * - When inner joining through a non-navigation-property relationship:
28
- * ```SQL
29
- * INNER JOIN [relationship_schema_name].[relationship_class_name] [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
30
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
31
- * ```
32
- * @public
33
- */
34
- async function createRelationshipPathJoinClause(props) {
35
- if (props.path.length === 0) {
36
- return "";
37
- }
38
- let prev = {
39
- alias: props.path[0].sourceAlias,
40
- joinPropertyName: "ECInstanceId",
41
- className: props.path[0].sourceClassName,
42
- };
43
- let clause = "";
44
- for (const stepDef of props.path) {
45
- const step = await getRelationshipPathStepClasses(props.schemaProvider, stepDef);
46
- const navigationProperty = await getNavigationProperty(step);
47
- if (navigationProperty) {
48
- const isNavigationPropertyForward = navigationProperty.direction === "Forward";
49
- const relationshipJoinPropertyNames = isNavigationPropertyForward === !step.relationshipReverse
50
- ? {
51
- this: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId"),
52
- next: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, navigationProperty.name, "Id"),
53
- }
54
- : {
55
- this: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, navigationProperty.name, "Id"),
56
- next: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName),
57
- };
58
- clause += `
59
- ${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
60
- ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}
61
- `;
62
- prev = { alias: step.targetAlias, className: step.target.fullName, joinPropertyName: "ECInstanceId" };
63
- }
64
- else {
65
- const relationshipJoinPropertyNames = !step.relationshipReverse
66
- ? { this: "SourceECInstanceId", next: "TargetECInstanceId" }
67
- : { this: "TargetECInstanceId", next: "SourceECInstanceId" };
68
- if (step.joinType === "outer") {
69
- clause += `
70
- ${getJoinClause("outer")} (
71
- SELECT [${step.relationshipAlias}].*
72
- FROM ${getClassSelectClause(step.relationship, step.relationshipAlias)}
73
- ${getJoinClause("inner")} ${getClassSelectClause(step.target, step.targetAlias)}
74
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")}
75
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.next)}
76
- ) [${step.relationshipAlias}]
77
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.this)}
78
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
79
- `;
80
- }
81
- else {
82
- clause += `
83
- ${getJoinClause("inner")} ${getClassSelectClause(step.relationship, step.relationshipAlias)}
84
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.this)}
85
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
86
- `;
87
- }
88
- clause += `
89
- ${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
90
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")}
91
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.next)}
92
- `;
93
- prev = { alias: step.targetAlias, className: step.target.fullName, joinPropertyName: "ECInstanceId" };
94
- }
95
- }
96
- return clause;
97
- }
98
- async function getRelationshipPathStepClasses(schemaProvider, step) {
99
- const { sourceClassName, relationshipName, targetClassName, ...rest } = step;
100
- return {
101
- ...rest,
102
- source: await (0, Metadata_js_1.getClass)(schemaProvider, sourceClassName),
103
- relationship: (await (0, Metadata_js_1.getClass)(schemaProvider, relationshipName)),
104
- target: await (0, Metadata_js_1.getClass)(schemaProvider, targetClassName),
105
- };
106
- }
107
- async function getNavigationProperty(step) {
108
- const source = !step.relationshipReverse ? step.source : step.target;
109
- const target = !step.relationshipReverse ? step.target : step.source;
110
- for (const prop of await source.getProperties()) {
111
- /* v8 ignore else -- @preserve */
112
- if (prop.isNavigation() &&
113
- prop.direction === "Forward" &&
114
- (await prop.relationshipClass).fullName === step.relationship.fullName) {
115
- return prop;
116
- }
117
- }
118
- for (const prop of await target.getProperties()) {
119
- /* v8 ignore else -- @preserve */
120
- if (prop.isNavigation() &&
121
- prop.direction === "Backward" &&
122
- (await prop.relationshipClass).fullName === step.relationship.fullName) {
123
- return prop;
124
- }
125
- }
126
- return undefined;
127
- }
128
- function getJoinClause(type) {
129
- if (type === "outer") {
130
- return "OUTER JOIN";
131
- }
132
- return "INNER JOIN";
133
- }
134
- function getClassSelectClause(ecClass, alias) {
135
- const classSelector = `[${ecClass.schema.name}].[${ecClass.name}]`;
136
- return `${classSelector} [${alias}]`;
137
- }
138
- //# sourceMappingURL=ECSqlJoinSnippets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlValueSelectorSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"AAOA,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;;;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"}
@@ -1,262 +0,0 @@
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.TypedValueSelectClauseProps = void 0;
8
- exports.createPrimitivePropertyValueSelectorProps = createPrimitivePropertyValueSelectorProps;
9
- exports.createRawPropertyValueSelector = createRawPropertyValueSelector;
10
- exports.createRawPrimitiveValueSelector = createRawPrimitiveValueSelector;
11
- exports.createInstanceKeySelector = createInstanceKeySelector;
12
- exports.createNullableSelector = createNullableSelector;
13
- exports.createConcatenatedValueJsonSelector = createConcatenatedValueJsonSelector;
14
- exports.createConcatenatedValueStringSelector = createConcatenatedValueStringSelector;
15
- const core_bentley_1 = require("@itwin/core-bentley");
16
- const Metadata_js_1 = require("../Metadata.js");
17
- const Values_js_1 = require("../Values.js");
18
- /** @public */
19
- // eslint-disable-next-line @typescript-eslint/no-redeclare
20
- var TypedValueSelectClauseProps;
21
- (function (TypedValueSelectClauseProps) {
22
- function isPrimitiveValue(props) {
23
- return "value" in props;
24
- }
25
- TypedValueSelectClauseProps.isPrimitiveValue = isPrimitiveValue;
26
- function isPrimitiveValueSelector(props) {
27
- return "selector" in props;
28
- }
29
- TypedValueSelectClauseProps.isPrimitiveValueSelector = isPrimitiveValueSelector;
30
- })(TypedValueSelectClauseProps || (exports.TypedValueSelectClauseProps = TypedValueSelectClauseProps = {}));
31
- /**
32
- * A function for a creating a `TypedPrimitiveValueSelectorProps` object from given primitive ECProperty information.
33
- * @throws Error if the property is not found, is not primitive or has unsupported primitive type (Binary, IGeometry).
34
- * @public
35
- */
36
- async function createPrimitivePropertyValueSelectorProps({ schemaProvider, propertyClassAlias, propertyClassName, propertyName, }) {
37
- const ecClass = await (0, Metadata_js_1.getClass)(schemaProvider, propertyClassName);
38
- const property = await ecClass.getProperty(propertyName);
39
- if (!property) {
40
- throw new Error(`The property "${propertyName}" not found in class "${propertyClassName}".`);
41
- }
42
- const propertySelector = createRawPropertyValueSelector(propertyClassAlias, propertyName);
43
- if (property.isNavigation()) {
44
- return { selector: `${propertySelector}.[Id]`, type: "Id" };
45
- }
46
- if (!property.isPrimitive()) {
47
- throw new Error(`The property "${propertyName}" should be of either navigation or primitive type.`);
48
- }
49
- const propertyValueType = property.primitiveType;
50
- const extendedType = property.extendedTypeName;
51
- switch (propertyValueType) {
52
- case "IGeometry":
53
- throw new Error(`The property "${propertyName}" of type "IGeometry" is not supported.`);
54
- case "Binary":
55
- if (extendedType === "BeGuid") {
56
- return { selector: `GuidToStr(${propertySelector})`, type: "String" };
57
- }
58
- throw new Error(`The property "${propertyName}" of type "Binary" is not supported.`);
59
- case "Point2d":
60
- return {
61
- selector: `json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y])`,
62
- type: "Point2d",
63
- ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
64
- };
65
- case "Point3d":
66
- return {
67
- selector: `json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y], 'z', ${propertySelector}.[z])`,
68
- type: "Point3d",
69
- ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
70
- };
71
- case "Double":
72
- const koqName = (await property.kindOfQuantity)?.fullName;
73
- return {
74
- selector: propertySelector,
75
- type: "Double",
76
- ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
77
- ...(koqName ? { koqName } : /* v8 ignore next */ {}),
78
- };
79
- }
80
- return {
81
- selector: propertySelector,
82
- type: propertyValueType,
83
- ...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
84
- };
85
- }
86
- /**
87
- * Creates an ECSQL selector for raw property value, or, optionally - it's component. Example result:
88
- * `[classAlias].[propertyName].[componentName]`.
89
- *
90
- * @public
91
- */
92
- function createRawPropertyValueSelector(classAlias, propertyName, componentName) {
93
- let propertySelector = `[${classAlias}].[${propertyName}]`;
94
- if (componentName) {
95
- propertySelector += `.[${componentName}]`;
96
- }
97
- return propertySelector;
98
- }
99
- /**
100
- * Creates an ECSQL selector for a raw primitive value.
101
- * - `undefined` is selected as `NULL`.
102
- * - `Date` values are selected in julian day format.
103
- * - `Point2d` and `Point3d` values are selected as serialized JSON objects, e.g. `{ x: 1, y: 2, z: 3 }`.
104
- * - Other kinds of values are selected as-is.
105
- *
106
- * @public
107
- */
108
- function createRawPrimitiveValueSelector(value) {
109
- if (value === undefined) {
110
- return "NULL";
111
- }
112
- if (value instanceof Date) {
113
- return `julianday('${value.toISOString()}')`;
114
- }
115
- if (Values_js_1.PrimitiveValue.isPoint3d(value)) {
116
- return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
117
- }
118
- if (Values_js_1.PrimitiveValue.isPoint2d(value)) {
119
- return `json_object('x', ${value.x}, 'y', ${value.y})`;
120
- }
121
- switch (typeof value) {
122
- case "string":
123
- return core_bentley_1.Id64.isId64(value) ? value : `'${value}'`;
124
- case "number":
125
- return value.toString();
126
- case "boolean":
127
- return value ? "TRUE" : "FALSE";
128
- }
129
- }
130
- /**
131
- * Creates an ECSQL selector that results in a stringified `InstanceKey` object.
132
- * @public
133
- */
134
- function createInstanceKeySelector(props) {
135
- const classIdSelector = `[${props.alias}].[ECClassId]`;
136
- const instanceHexIdSelector = `IdToHex([${props.alias}].[ECInstanceId])`;
137
- return `json_object('className', ec_classname(${classIdSelector}, 's.c'), 'id', ${instanceHexIdSelector})`;
138
- }
139
- /**
140
- * Creates a clause for returning `NULL` when `checkSelector` returns a falsy value, or result of `valueSelector`
141
- * otherwise. Example result: `IIF(CHECK_SELECTOR, VALUE_SELECTOR, NULL)`.
142
- *
143
- * @note In SQL `NULL` is not considered falsy, so when checking for `NULL` values, the `checkSelector` should
144
- * be like `{selector} IS NOT NULL` rather than just `${selector}`.
145
- *
146
- * @public
147
- */
148
- function createNullableSelector(props) {
149
- return `IIF(${props.checkSelector}, ${props.valueSelector}, NULL)`;
150
- }
151
- /**
152
- * Create an ECSQL selector combined of multiple typed value selectors in a form of a JSON array. This allows handling results
153
- * of each value selector individually when parsing query result.
154
- *
155
- * Example result: `json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...)`.
156
- *
157
- * Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
158
- * `NULL` result when the argument selector results in `NULL`. Example result with `checkSelector`:
159
- * `IIF(CHECK_SELECTOR, json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...), NULL)`.
160
- *
161
- * @note The resulting JSON is of `ConcatenatedValue` type and it's recommended to use `ConcatenatedValue.serialize` to
162
- * handle each individual part.
163
- *
164
- * @see `ConcatenatedValue`
165
- *
166
- * @public
167
- */
168
- function createConcatenatedValueJsonSelector(selectors, checkSelector) {
169
- const combinedSelectors = `json_array(${selectors.map((sel) => createTypedValueJsonSelector(sel)).join(", ")})`;
170
- if (checkSelector) {
171
- return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
172
- }
173
- return combinedSelectors;
174
- }
175
- function createTypedValueJsonSelector(props) {
176
- let valueSelector;
177
- if (TypedValueSelectClauseProps.isPrimitiveValue(props)) {
178
- valueSelector = createPrimitiveValueJsonSelector(props.value);
179
- }
180
- else if (props.type) {
181
- valueSelector = props.selector;
182
- }
183
- else {
184
- return props.selector;
185
- }
186
- const args = {
187
- value: valueSelector,
188
- type: `'${props.type}'`,
189
- ...(props.extendedType ? { extendedType: `'${props.extendedType}'` } : {}),
190
- ...(props.type === "Double" && props.koqName ? { koqName: `'${props.koqName}'` } : {}),
191
- };
192
- return `
193
- json_object(${Object.entries(args)
194
- .map(([key, value]) => `'${key}', ${value}`)
195
- .join(", ")})
196
- `;
197
- }
198
- function createPrimitiveValueJsonSelector(value) {
199
- if (value instanceof Date) {
200
- return `'${value.toISOString()}'`;
201
- }
202
- if (Values_js_1.PrimitiveValue.isPoint3d(value)) {
203
- return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
204
- }
205
- if (Values_js_1.PrimitiveValue.isPoint2d(value)) {
206
- return `json_object('x', ${value.x}, 'y', ${value.y})`;
207
- }
208
- switch (typeof value) {
209
- case "string":
210
- return core_bentley_1.Id64.isId64(value) ? value : `'${value}'`;
211
- case "number":
212
- return value.toString();
213
- case "boolean":
214
- return value ? "TRUE" : "FALSE";
215
- }
216
- }
217
- /**
218
- * Create an ECSQL selector combined of multiple typed value selectors in a form of a string.
219
- *
220
- * Example result: `VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ...`.
221
- *
222
- * Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
223
- * `NULL` result when `checkSelector` results in a falsy value. Example result with `checkSelector`:
224
- * `IIF(CHECK_SELECTOR, VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ..., NULL)`.
225
- *
226
- * @note Not all types of `TypedValueSelectClauseProps` can be serialized to a user-friendly string, e.g. when
227
- * selecting a numeric value with units, this function is going to select the raw value. To create properly formatted
228
- * concatenated values:
229
- * 1. They should be selected with `createConcatenatedValueJsonSelector`, which returns a serialized JSON object.
230
- * 2. The JSON should be parsed from resulting string and passed to `ConcatenatedValue.serialize`, which additionally
231
- * takes a formatter. One can be created using `createDefaultValueFormatter`.
232
- *
233
- * @public
234
- */
235
- function createConcatenatedValueStringSelector(selectors, checkSelector) {
236
- const combinedSelectors = selectors.length
237
- ? selectors.map((sel) => createTypedValueStringSelector(sel)).join(" || ")
238
- : "''";
239
- if (checkSelector) {
240
- return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
241
- }
242
- return combinedSelectors;
243
- }
244
- function createTypedValueStringSelector(props) {
245
- if (TypedValueSelectClauseProps.isPrimitiveValueSelector(props)) {
246
- return `CAST(${props.selector} AS TEXT)`;
247
- }
248
- return createPrimitiveValueStringSelector(props.value);
249
- }
250
- function createPrimitiveValueStringSelector(value) {
251
- if (value instanceof Date) {
252
- return `'${value.toLocaleString()}'`;
253
- }
254
- if (Values_js_1.PrimitiveValue.isPoint3d(value)) {
255
- return `'(${value.x}, ${value.y}, ${value.z})'`;
256
- }
257
- if (Values_js_1.PrimitiveValue.isPoint2d(value)) {
258
- return `'(${value.x}, ${value.y})'`;
259
- }
260
- return `'${value.toString()}'`;
261
- }
262
- //# sourceMappingURL=ECSqlValueSelectorSnippets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlValueSelectorSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, createInstanceKeySelector, createPrimitivePropertyValueSelectorProps, } from "./ECSqlValueSelectorSnippets.js";
2
- export { createRelationshipPathJoinClause } from "./ECSqlJoinSnippets.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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,18 +0,0 @@
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.createRelationshipPathJoinClause = exports.createPrimitivePropertyValueSelectorProps = exports.createInstanceKeySelector = exports.createConcatenatedValueStringSelector = exports.createConcatenatedValueJsonSelector = exports.createNullableSelector = exports.createRawPrimitiveValueSelector = exports.createRawPropertyValueSelector = void 0;
8
- var ECSqlValueSelectorSnippets_js_1 = require("./ECSqlValueSelectorSnippets.js");
9
- Object.defineProperty(exports, "createRawPropertyValueSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector; } });
10
- Object.defineProperty(exports, "createRawPrimitiveValueSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createRawPrimitiveValueSelector; } });
11
- Object.defineProperty(exports, "createNullableSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createNullableSelector; } });
12
- Object.defineProperty(exports, "createConcatenatedValueJsonSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector; } });
13
- Object.defineProperty(exports, "createConcatenatedValueStringSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createConcatenatedValueStringSelector; } });
14
- Object.defineProperty(exports, "createInstanceKeySelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createInstanceKeySelector; } });
15
- Object.defineProperty(exports, "createPrimitivePropertyValueSelectorProps", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createPrimitivePropertyValueSelectorProps; } });
16
- var ECSqlJoinSnippets_js_1 = require("./ECSqlJoinSnippets.js");
17
- Object.defineProperty(exports, "createRelationshipPathJoinClause", { enumerable: true, get: function () { return ECSqlJoinSnippets_js_1.createRelationshipPathJoinClause; } });
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,iFAQyC;AAPvC,+IAAA,8BAA8B,OAAA;AAC9B,gJAAA,+BAA+B,OAAA;AAC/B,uIAAA,sBAAsB,OAAA;AACtB,oJAAA,mCAAmC,OAAA;AACnC,sJAAA,qCAAqC,OAAA;AACrC,0IAAA,yBAAyB,OAAA;AACzB,0JAAA,yCAAyC,OAAA;AAE3C,+DAA0E;AAAjE,wIAAA,gCAAgC,OAAA"}
@@ -1 +0,0 @@
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,CA0CnC"}
@@ -1,51 +0,0 @@
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.createBisInstanceLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory;
8
- const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
9
- const ClassBasedInstanceLabelSelectClauseFactory_js_1 = require("./ClassBasedInstanceLabelSelectClauseFactory.js");
10
- const Utils_js_1 = require("./Utils.js");
11
- /**
12
- * Creates a label select clause according to BIS instance label rules.
13
- * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
14
- * @public
15
- */
16
- function createBisInstanceLabelSelectClauseFactory(props) {
17
- const clauses = [];
18
- const factory = (0, ClassBasedInstanceLabelSelectClauseFactory_js_1.createClassBasedInstanceLabelSelectClauseFactory)({
19
- classHierarchyInspector: props.classHierarchyInspector,
20
- clauses,
21
- });
22
- clauses.push({
23
- className: "BisCore.GeometricElement",
24
- clause: async ({ classAlias, ...rest }) => `
25
- COALESCE(
26
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "CodeValue")},
27
- ${(0, Utils_js_1.concatenate)(rest, [
28
- { selector: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel") },
29
- ...(0, Utils_js_1.createECInstanceIdSuffixSelectors)(classAlias),
30
- ], `${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel")} IS NOT NULL`)}
31
- )
32
- `,
33
- }, {
34
- className: "BisCore.Element",
35
- clause: async ({ classAlias }) => `
36
- COALESCE(
37
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel")},
38
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "CodeValue")}
39
- )
40
- `,
41
- }, {
42
- className: "BisCore.Model",
43
- clause: async ({ classAlias, ...rest }) => `(
44
- SELECT ${await factory.createSelectClause({ ...rest, classAlias: "e", className: "BisCore.Element" })}
45
- FROM [bis].[Element] AS [e]
46
- WHERE [e].[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ModeledElement", "Id")}
47
- )`,
48
- });
49
- return factory;
50
- }
51
- //# sourceMappingURL=BisInstanceLabelSelectClauseFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BisInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAuBhG,8FA4CC;AAjED,mGAAiG;AACjG,mHAAmH;AACnH,yCAA4E;AAc5E;;;;GAIG;AACH,SAAgB,yCAAyC,CACvD,KAA+C;IAE/C,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,gGAAgD,EAAC;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,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC;YACvD,IAAA,sBAAW,EACX,IAAI,EACJ;YACE,EAAE,QAAQ,EAAE,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE;YACrE,GAAG,IAAA,4CAAiC,EAAC,UAAU,CAAC;SACjD,EACD,GAAG,IAAA,8DAA8B,EAAC,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,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC;YACvD,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC;;OAE5D;KACF,EACD;QACE,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC;iBAChC,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;;qCAExE,IAAA,8DAA8B,EAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,CAAC;QAC/F;KACH,CACF,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,39 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,63 +0,0 @@
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.createClassBasedInstanceLabelSelectClauseFactory = createClassBasedInstanceLabelSelectClauseFactory;
8
- const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
9
- const DefaultInstanceLabelSelectClauseFactory_js_1 = require("./DefaultInstanceLabelSelectClauseFactory.js");
10
- /**
11
- * Creates an instance label select clause based on its class.
12
- * @public
13
- */
14
- function createClassBasedInstanceLabelSelectClauseFactory(props) {
15
- const { classHierarchyInspector, clauses: labelClausesByClass } = props;
16
- const defaultClauseFactory = props.defaultClauseFactory ?? (0, DefaultInstanceLabelSelectClauseFactory_js_1.createDefaultInstanceLabelSelectClauseFactory)();
17
- async function getLabelClausesForClass(queryClassName) {
18
- const matchingLabelClauses = await Promise.all(labelClausesByClass.map(async (entry) => {
19
- if (await classHierarchyInspector.classDerivesFrom(entry.className, queryClassName)) {
20
- // label selector is intended for a more specific class than we're selecting from - need to include it
21
- // as query results (on polymorphic select) are going to include more specific class instances too
22
- return entry;
23
- }
24
- if (await classHierarchyInspector.classDerivesFrom(queryClassName, entry.className)) {
25
- // label selector is intended for a base class of what query is selecting - need to include it as
26
- // we want base class label selectors to apply to subclass instances
27
- return entry;
28
- }
29
- return undefined;
30
- }));
31
- function filterNotUndefined(x) {
32
- return !!x;
33
- }
34
- return matchingLabelClauses.filter(filterNotUndefined);
35
- }
36
- return {
37
- async createSelectClause(clauseProps) {
38
- if (labelClausesByClass.length === 0) {
39
- return defaultClauseFactory.createSelectClause(clauseProps);
40
- }
41
- const labelClausePromises = clauseProps.className
42
- ? await getLabelClausesForClass(clauseProps.className)
43
- : labelClausesByClass;
44
- if (labelClausePromises.length === 0) {
45
- return defaultClauseFactory.createSelectClause(clauseProps);
46
- }
47
- const labelClauses = await Promise.all(labelClausePromises.map(async ({ className, clause }) => ({ className, clause: await clause(clauseProps) })));
48
- return `COALESCE(
49
- ${labelClauses
50
- .map(({ className, clause }) => `
51
- IIF(
52
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(clauseProps.classAlias, "ECClassId")} IS (${className}),
53
- ${clause.trim()},
54
- NULL
55
- )
56
- `.trim())
57
- .join(", ")},
58
- ${await defaultClauseFactory.createSelectClause(clauseProps)}
59
- )`;
60
- },
61
- };
62
- }
63
- //# sourceMappingURL=ClassBasedInstanceLabelSelectClauseFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassBasedInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAkDhG,4GA2DC;AA3GD,mGAAiG;AACjG,6GAA6G;AA2C7G;;;GAGG;AACH,SAAgB,gDAAgD,CAC9D,KAAsD;IAEtD,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC;IACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,IAAI,IAAA,0FAA6C,GAAE,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,IAAA,8DAA8B,EAAC,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"}