@itwin/presentation-shared 2.0.0-alpha.11 → 2.0.0-alpha.13

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 (212) hide show
  1. package/CHANGELOG.md +175 -0
  2. package/README.md +19 -34
  3. package/lib/{esm/presentation-shared.d.ts → presentation-shared.d.ts} +7 -5
  4. package/lib/presentation-shared.d.ts.map +1 -0
  5. package/lib/{esm/presentation-shared.js → presentation-shared.js} +6 -2
  6. package/lib/presentation-shared.js.map +1 -0
  7. package/lib/shared/ConcatenatedValue.d.ts.map +1 -0
  8. package/lib/shared/ConcatenatedValue.js.map +1 -0
  9. package/lib/{cjs/shared → shared}/ECSqlCore.d.ts +9 -0
  10. package/lib/shared/ECSqlCore.d.ts.map +1 -0
  11. package/lib/shared/ECSqlCore.js +37 -0
  12. package/lib/shared/ECSqlCore.js.map +1 -0
  13. package/lib/shared/EachValueFrom.d.ts +30 -0
  14. package/lib/shared/EachValueFrom.d.ts.map +1 -0
  15. package/lib/shared/EachValueFrom.js +115 -0
  16. package/lib/shared/EachValueFrom.js.map +1 -0
  17. package/lib/shared/Event.d.ts.map +1 -0
  18. package/lib/{esm/shared → shared}/Event.js.map +1 -1
  19. package/lib/shared/Formatting.d.ts.map +1 -0
  20. package/lib/shared/Formatting.js.map +1 -0
  21. package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.d.ts +1 -1
  22. package/lib/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  23. package/lib/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  24. package/lib/shared/Logging.d.ts.map +1 -0
  25. package/lib/shared/Logging.js.map +1 -0
  26. package/lib/shared/MappedTypes.d.ts +48 -0
  27. package/lib/shared/MappedTypes.d.ts.map +1 -0
  28. package/lib/shared/MappedTypes.js.map +1 -0
  29. package/lib/{cjs/shared → shared}/Metadata.d.ts +53 -44
  30. package/lib/shared/Metadata.d.ts.map +1 -0
  31. package/lib/{esm/shared → shared}/Metadata.js +7 -6
  32. package/lib/shared/Metadata.js.map +1 -0
  33. package/lib/{cjs/shared → shared}/Utils.d.ts +0 -6
  34. package/lib/shared/Utils.d.ts.map +1 -0
  35. package/lib/{esm/shared → shared}/Utils.js +0 -15
  36. package/lib/shared/Utils.js.map +1 -0
  37. package/lib/{esm/shared → shared}/Values.d.ts +23 -13
  38. package/lib/shared/Values.d.ts.map +1 -0
  39. package/lib/shared/Values.js +121 -0
  40. package/lib/shared/Values.js.map +1 -0
  41. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +174 -0
  42. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  43. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js +177 -0
  44. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  45. package/lib/{cjs/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +3 -3
  46. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  47. package/lib/{esm/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.js +3 -3
  48. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  49. package/lib/{cjs/shared → shared}/ecsql-snippets/index.d.ts +1 -1
  50. package/lib/shared/ecsql-snippets/index.d.ts.map +1 -0
  51. package/lib/{esm/shared → shared}/ecsql-snippets/index.js +1 -1
  52. package/lib/shared/ecsql-snippets/index.js.map +1 -0
  53. package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +2 -2
  54. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  55. package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +1 -4
  56. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  57. package/lib/{cjs/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +3 -3
  58. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  59. package/lib/{esm/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +3 -3
  60. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  61. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  62. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  63. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  64. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  65. package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +2 -2
  66. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  67. package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +4 -5
  68. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  69. package/lib/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  70. package/lib/shared/instance-label-factory-impls/Utils.js.map +1 -0
  71. package/package.json +16 -17
  72. package/lib/cjs/package.json +0 -1
  73. package/lib/cjs/presentation-shared.d.ts +0 -21
  74. package/lib/cjs/presentation-shared.d.ts.map +0 -1
  75. package/lib/cjs/presentation-shared.js +0 -75
  76. package/lib/cjs/presentation-shared.js.map +0 -1
  77. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +0 -1
  78. package/lib/cjs/shared/ConcatenatedValue.js +0 -49
  79. package/lib/cjs/shared/ConcatenatedValue.js.map +0 -1
  80. package/lib/cjs/shared/ECSqlCore.d.ts.map +0 -1
  81. package/lib/cjs/shared/ECSqlCore.js +0 -7
  82. package/lib/cjs/shared/ECSqlCore.js.map +0 -1
  83. package/lib/cjs/shared/Event.d.ts.map +0 -1
  84. package/lib/cjs/shared/Event.js +0 -7
  85. package/lib/cjs/shared/Event.js.map +0 -1
  86. package/lib/cjs/shared/Formatting.d.ts.map +0 -1
  87. package/lib/cjs/shared/Formatting.js +0 -118
  88. package/lib/cjs/shared/Formatting.js.map +0 -1
  89. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +0 -73
  90. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  91. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -30
  92. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  93. package/lib/cjs/shared/Logging.d.ts.map +0 -1
  94. package/lib/cjs/shared/Logging.js +0 -21
  95. package/lib/cjs/shared/Logging.js.map +0 -1
  96. package/lib/cjs/shared/MappedTypes.d.ts +0 -17
  97. package/lib/cjs/shared/MappedTypes.d.ts.map +0 -1
  98. package/lib/cjs/shared/MappedTypes.js +0 -7
  99. package/lib/cjs/shared/MappedTypes.js.map +0 -1
  100. package/lib/cjs/shared/Metadata.d.ts.map +0 -1
  101. package/lib/cjs/shared/Metadata.js +0 -56
  102. package/lib/cjs/shared/Metadata.js.map +0 -1
  103. package/lib/cjs/shared/Utils.d.ts.map +0 -1
  104. package/lib/cjs/shared/Utils.js +0 -123
  105. package/lib/cjs/shared/Utils.js.map +0 -1
  106. package/lib/cjs/shared/Values.d.ts +0 -121
  107. package/lib/cjs/shared/Values.d.ts.map +0 -1
  108. package/lib/cjs/shared/Values.js +0 -118
  109. package/lib/cjs/shared/Values.js.map +0 -1
  110. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -66
  111. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  112. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -171
  113. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  114. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  115. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +0 -275
  116. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  117. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +0 -1
  118. package/lib/cjs/shared/ecsql-snippets/index.js +0 -19
  119. package/lib/cjs/shared/ecsql-snippets/index.js.map +0 -1
  120. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +0 -17
  121. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  122. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +0 -54
  123. package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
  124. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  125. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +0 -63
  126. package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
  127. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  128. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -40
  129. package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
  130. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
  131. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -10
  132. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
  133. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  134. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +0 -336
  135. package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
  136. package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
  137. package/lib/cjs/shared/instance-label-factory-impls/Utils.js +0 -26
  138. package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +0 -1
  139. package/lib/esm/presentation-shared.d.ts.map +0 -1
  140. package/lib/esm/presentation-shared.js.map +0 -1
  141. package/lib/esm/shared/ConcatenatedValue.d.ts +0 -46
  142. package/lib/esm/shared/ConcatenatedValue.d.ts.map +0 -1
  143. package/lib/esm/shared/ConcatenatedValue.js.map +0 -1
  144. package/lib/esm/shared/ECSqlCore.d.ts +0 -99
  145. package/lib/esm/shared/ECSqlCore.d.ts.map +0 -1
  146. package/lib/esm/shared/ECSqlCore.js +0 -6
  147. package/lib/esm/shared/ECSqlCore.js.map +0 -1
  148. package/lib/esm/shared/Event.d.ts +0 -27
  149. package/lib/esm/shared/Event.d.ts.map +0 -1
  150. package/lib/esm/shared/Formatting.d.ts +0 -44
  151. package/lib/esm/shared/Formatting.d.ts.map +0 -1
  152. package/lib/esm/shared/Formatting.js.map +0 -1
  153. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  154. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  155. package/lib/esm/shared/Logging.d.ts +0 -27
  156. package/lib/esm/shared/Logging.d.ts.map +0 -1
  157. package/lib/esm/shared/Logging.js.map +0 -1
  158. package/lib/esm/shared/MappedTypes.d.ts +0 -17
  159. package/lib/esm/shared/MappedTypes.d.ts.map +0 -1
  160. package/lib/esm/shared/MappedTypes.js.map +0 -1
  161. package/lib/esm/shared/Metadata.d.ts +0 -505
  162. package/lib/esm/shared/Metadata.d.ts.map +0 -1
  163. package/lib/esm/shared/Metadata.js.map +0 -1
  164. package/lib/esm/shared/Utils.d.ts +0 -66
  165. package/lib/esm/shared/Utils.d.ts.map +0 -1
  166. package/lib/esm/shared/Utils.js.map +0 -1
  167. package/lib/esm/shared/Values.d.ts.map +0 -1
  168. package/lib/esm/shared/Values.js +0 -115
  169. package/lib/esm/shared/Values.js.map +0 -1
  170. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -66
  171. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  172. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -168
  173. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  174. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +0 -130
  175. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  176. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  177. package/lib/esm/shared/ecsql-snippets/index.d.ts +0 -3
  178. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +0 -1
  179. package/lib/esm/shared/ecsql-snippets/index.js.map +0 -1
  180. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  181. package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
  182. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +0 -39
  183. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  184. package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
  185. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -12
  186. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  187. package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
  188. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -198
  189. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
  190. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
  191. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +0 -34
  192. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
  193. package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
  194. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +0 -7
  195. package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
  196. package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +0 -1
  197. /package/lib/{cjs/shared → shared}/ConcatenatedValue.d.ts +0 -0
  198. /package/lib/{esm/shared → shared}/ConcatenatedValue.js +0 -0
  199. /package/lib/{cjs/shared → shared}/Event.d.ts +0 -0
  200. /package/lib/{esm/shared → shared}/Event.js +0 -0
  201. /package/lib/{cjs/shared → shared}/Formatting.d.ts +0 -0
  202. /package/lib/{esm/shared → shared}/Formatting.js +0 -0
  203. /package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.js +0 -0
  204. /package/lib/{cjs/shared → shared}/Logging.d.ts +0 -0
  205. /package/lib/{esm/shared → shared}/Logging.js +0 -0
  206. /package/lib/{esm/shared → shared}/MappedTypes.js +0 -0
  207. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -0
  208. /package/lib/{esm/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -0
  209. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -0
  210. /package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -0
  211. /package/lib/{cjs/shared → shared}/instance-label-factory-impls/Utils.d.ts +0 -0
  212. /package/lib/{esm/shared → shared}/instance-label-factory-impls/Utils.js +0 -0
@@ -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"}
@@ -1 +0,0 @@
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"}
@@ -1,40 +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.createDefaultInstanceLabelSelectClauseFactory = createDefaultInstanceLabelSelectClauseFactory;
8
- const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
9
- const Utils_js_1 = require("./Utils.js");
10
- /**
11
- * Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
12
- * local and briefcase IDs are calculated based on ECInstance ID:
13
- * - `{briefcase id} = ECInstanceId >> 40`
14
- * - `{local id} = ECInstanceId & (1 << 40 - 1)`
15
- *
16
- * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
17
- * @public
18
- */
19
- function createDefaultInstanceLabelSelectClauseFactory() {
20
- const alias = `${Utils_js_1.ALIAS_PREFIX}c`;
21
- return {
22
- async createSelectClause(props) {
23
- return `(
24
- SELECT
25
- ${(0, Utils_js_1.concatenate)(props, [
26
- {
27
- selector: `COALESCE(
28
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(alias, "DisplayLabel")},
29
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(alias, "Name")}
30
- )`,
31
- },
32
- ...(0, Utils_js_1.createECInstanceIdSuffixSelectors)(props.classAlias),
33
- ])}
34
- FROM [meta].[ECClassDef] AS ${alias}
35
- WHERE ${alias}.[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(props.classAlias, "ECClassId")}
36
- )`;
37
- },
38
- };
39
- }
40
- //# sourceMappingURL=DefaultInstanceLabelSelectClauseFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAgBhG,sGAoBC;AAlCD,mGAAiG;AACjG,yCAA0F;AAI1F;;;;;;;;GAQG;AACH,SAAgB,6CAA6C;IAC3D,MAAM,KAAK,GAAG,GAAG,uBAAY,GAAG,CAAC;IACjC,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,KAAK;YAC5B,OAAO;;YAED,IAAA,sBAAW,EAAC,KAAK,EAAE;gBACnB;oBACE,QAAQ,EAAE;kBACN,IAAA,8DAA8B,EAAC,KAAK,EAAE,cAAc,CAAC;kBACrD,IAAA,8DAA8B,EAAC,KAAK,EAAE,MAAM,CAAC;gBAC/C;iBACH;gBACD,GAAG,IAAA,4CAAiC,EAAC,KAAK,CAAC,UAAU,CAAC;aACvD,CAAC;sCAC0B,KAAK;gBAC3B,KAAK,qBAAqB,IAAA,8DAA8B,EAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC;QAC/F,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.Rules.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.ts"],"names":[],"mappings":"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"}
@@ -1,10 +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
- /**
7
- * This module contains hard copies of the code from `@itwin/presentation-common` package.
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- //# sourceMappingURL=IModelInstanceLabelSelectClauseFactory.Rules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.Rules.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;AAChG;;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAEV,iCAAiC,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAM,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAWtF;;;GAGG;AACH,UAAU,2CAA2C;IACnD;;;OAGG;IACH,YAAY,EAAE,kBAAkB,GAAG,yBAAyB,GAAG,gBAAgB,CAAC;IAEhF;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,iCAAiC,CAAC;CAC1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4CAA4C,CAC1D,KAAK,EAAE,2CAA2C,GACjD,iCAAiC,CAenC"}
@@ -1,336 +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
- // cspell:words rilt
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.createIModelInstanceLabelSelectClauseFactory = createIModelInstanceLabelSelectClauseFactory;
9
- const core_bentley_1 = require("@itwin/core-bentley");
10
- const ECSqlJoinSnippets_js_1 = require("../ecsql-snippets/ECSqlJoinSnippets.js");
11
- const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
12
- const Metadata_js_1 = require("../Metadata.js");
13
- const Utils_js_1 = require("../Utils.js");
14
- const BisInstanceLabelSelectClauseFactory_js_1 = require("./BisInstanceLabelSelectClauseFactory.js");
15
- const ClassBasedInstanceLabelSelectClauseFactory_js_1 = require("./ClassBasedInstanceLabelSelectClauseFactory.js");
16
- const Utils_js_2 = require("./Utils.js");
17
- /**
18
- * Creates an instance label select clause factory that reads `InstanceLabelOverride` rules from
19
- * `PresentationRules` rulesets stored in the iModel and compiles them into ECSQL label selectors.
20
- *
21
- * Rules are loaded lazily on first use and cached per factory instance. Rulesets are discovered
22
- * by querying `PresentationRules.Ruleset`. When the `PresentationRules` schema is not imported
23
- * into the iModel the factory transparently falls back to `defaultClauseFactory` (defaults
24
- * to `createBisInstanceLabelSelectClauseFactory`).
25
- *
26
- * @public
27
- */
28
- function createIModelInstanceLabelSelectClauseFactory(props) {
29
- let factoryCache;
30
- async function getCachedFactory() {
31
- if (!factoryCache) {
32
- factoryCache = createIModelInstanceLabelSelectClauseFactoryImpl(props);
33
- }
34
- return factoryCache;
35
- }
36
- return {
37
- async createSelectClause(clauseProps) {
38
- const factory = await getCachedFactory();
39
- return factory.createSelectClause(clauseProps);
40
- },
41
- };
42
- }
43
- async function createIModelInstanceLabelSelectClauseFactoryImpl(props) {
44
- const defaultClauseFactory = props.defaultClauseFactory ??
45
- (0, BisInstanceLabelSelectClauseFactory_js_1.createBisInstanceLabelSelectClauseFactory)({ classHierarchyInspector: props.imodelAccess });
46
- const rules = await loadOverrideRules(props.imodelAccess);
47
- if (rules.length === 0) {
48
- return defaultClauseFactory;
49
- }
50
- rules.sort((lhs, rhs) => (rhs.priority ?? 1000) - (lhs.priority ?? 1000));
51
- const clauses = rules.map((rule) => ({
52
- className: `${rule.class.schemaName}.${rule.class.className}`,
53
- clause: async (clauseProps) => compileOverrideClause({
54
- rule,
55
- clauseProps,
56
- // `innerFactory` is declared below but is already assigned by the time this callback is invoked (never called synchronously)
57
- labelFactory: innerFactory,
58
- schemaProvider: props.imodelAccess,
59
- }),
60
- }));
61
- const innerFactory = (0, ClassBasedInstanceLabelSelectClauseFactory_js_1.createClassBasedInstanceLabelSelectClauseFactory)({
62
- classHierarchyInspector: props.imodelAccess,
63
- clauses,
64
- defaultClauseFactory,
65
- });
66
- return innerFactory;
67
- }
68
- // eslint-disable-next-line @typescript-eslint/naming-convention
69
- const CLASS_NAME_PresentationRules = "PresentationRules.Ruleset";
70
- async function loadOverrideRules(executor) {
71
- const rules = [];
72
- try {
73
- const reader = executor.createQueryReader({
74
- ecsql: `SELECT json_extract(JsonProperties, '$.jsonProperties') AS jsonProperties FROM ${CLASS_NAME_PresentationRules}`,
75
- });
76
- for await (const row of reader) {
77
- const payload = row.jsonProperties;
78
- if (payload === null || payload === undefined) {
79
- continue;
80
- }
81
- let parsed;
82
- try {
83
- parsed = JSON.parse(payload);
84
- }
85
- catch {
86
- continue;
87
- }
88
- if (!parsed || typeof parsed !== "object") {
89
- continue;
90
- }
91
- const rulesetObj = parsed;
92
- // Collect from top-level rules[]
93
- const topRules = Array.isArray(rulesetObj.rules) ? rulesetObj.rules : [];
94
- for (const rule of topRules) {
95
- const normalized = normalizeInstanceLabelOverrideRule(rule);
96
- if (normalized) {
97
- rules.push(normalized);
98
- }
99
- }
100
- }
101
- }
102
- catch (e) {
103
- if (isPresentationRulesSchemaAbsenceError(e)) {
104
- return [];
105
- }
106
- throw e;
107
- }
108
- return rules;
109
- }
110
- function isPresentationRulesSchemaAbsenceError(e) {
111
- if (!(e instanceof Error)) {
112
- return false;
113
- }
114
- return e.message.includes(`'${CLASS_NAME_PresentationRules}' does not exist`);
115
- }
116
- function isInstanceLabelOverrideRule(rule) {
117
- return rule.ruleType === "InstanceLabelOverride";
118
- }
119
- function normalizeInstanceLabelOverrideRule(rule) {
120
- if (!isInstanceLabelOverrideRule(rule)) {
121
- return undefined;
122
- }
123
- if (rule.values.length === 0) {
124
- return undefined;
125
- }
126
- return rule;
127
- }
128
- async function compileOverrideClause(props) {
129
- const { rule, clauseProps, labelFactory, schemaProvider } = props;
130
- (0, core_bentley_1.assert)(rule.values.length > 0);
131
- const ctx = {
132
- classAlias: clauseProps.classAlias,
133
- selectorsConcatenator: clauseProps.selectorsConcatenator ?? ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector,
134
- labelFactory,
135
- visitedClasses: clauseProps.visitedClasses ?? new Set(),
136
- schemaProvider,
137
- ruleClassName: `${rule.class.schemaName}.${rule.class.className}`,
138
- depth: clauseProps.depth ?? 0,
139
- };
140
- const compiledSpecs = await Promise.all(rule.values.map(async (spec) => compileValueSpec(spec, ctx)));
141
- if (compiledSpecs.length === 1) {
142
- return compiledSpecs[0];
143
- }
144
- return `COALESCE(${compiledSpecs.join(", ")})`;
145
- }
146
- async function compileValueSpec(spec, ctx) {
147
- switch (spec.specType) {
148
- case "String": {
149
- return ctx.selectorsConcatenator([{ value: spec.value, type: "String" }]);
150
- }
151
- case "Property": {
152
- if (spec.propertySource) {
153
- const steps = normalizeRelationshipPath(spec.propertySource);
154
- if (steps.length === 0) {
155
- return "NULL";
156
- }
157
- const finalTargetAlias = subqueryAlias(PROPERTY_SOURCE_TARGET_ALIAS, ctx.depth);
158
- const subquery = await buildRelationshipPathSubquery({
159
- schemaProvider: ctx.schemaProvider,
160
- steps,
161
- ruleClassName: ctx.ruleClassName,
162
- classAlias: ctx.classAlias,
163
- selectExpression: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(finalTargetAlias, spec.propertyName),
164
- finalTargetAlias,
165
- depth: ctx.depth,
166
- });
167
- return subquery;
168
- }
169
- return (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, spec.propertyName);
170
- }
171
- case "ClassName": {
172
- return `ec_classname(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECClassId")}, '${spec.full ? "s.c" : "c"}')`;
173
- }
174
- case "ClassLabel": {
175
- return `(
176
- SELECT COALESCE(
177
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)("c", "DisplayLabel")},
178
- ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)("c", "Name")}
179
- )
180
- FROM [meta].[ECClassDef] AS [c]
181
- WHERE [c].[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECClassId")}
182
- )`;
183
- }
184
- case "BriefcaseId": {
185
- return `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECInstanceId")} >> 40) AS TEXT)`;
186
- }
187
- case "LocalId": {
188
- return `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(ctx.classAlias, "ECInstanceId")} & ((1 << 40) - 1)) AS TEXT)`;
189
- }
190
- case "Composite": {
191
- return compileCompositeSpec(spec, ctx);
192
- }
193
- case "RelatedInstanceLabel": {
194
- const steps = normalizeRelationshipPath(spec.pathToRelatedInstance);
195
- if (steps.length === 0) {
196
- return "NULL";
197
- }
198
- const lastStep = steps[steps.length - 1];
199
- let targetClassName;
200
- if (lastStep.targetClass) {
201
- targetClassName = `${lastStep.targetClass.schemaName}.${lastStep.targetClass.className}`;
202
- }
203
- else {
204
- const relName = `${lastStep.relationship.schemaName}.${lastStep.relationship.className}`;
205
- const relClass = await (0, Metadata_js_1.getClass)(ctx.schemaProvider, relName);
206
- if (!relClass.isRelationshipClass()) {
207
- throw new Error(`Class ${relName} is not a relationship class`);
208
- }
209
- const endpoint = lastStep.direction === "Backward" ? relClass.source : relClass.target;
210
- const constraintClass = await endpoint.abstractConstraint;
211
- if (!constraintClass) {
212
- return "''";
213
- }
214
- targetClassName = constraintClass.fullName;
215
- }
216
- if (ctx.visitedClasses.has(targetClassName)) {
217
- return "NULL";
218
- }
219
- const finalTargetAlias = subqueryAlias(RELATED_INSTANCE_LABEL_TARGET_ALIAS, ctx.depth);
220
- const selectClauseProps = {
221
- classAlias: finalTargetAlias,
222
- className: targetClassName,
223
- selectorsConcatenator: ctx.selectorsConcatenator,
224
- visitedClasses: new Set(ctx.visitedClasses).add(targetClassName),
225
- depth: ctx.depth + 1,
226
- };
227
- const subquery = await buildRelationshipPathSubquery({
228
- schemaProvider: ctx.schemaProvider,
229
- steps,
230
- ruleClassName: ctx.ruleClassName,
231
- classAlias: ctx.classAlias,
232
- selectExpression: await ctx.labelFactory.createSelectClause(selectClauseProps),
233
- finalTargetAlias,
234
- depth: ctx.depth,
235
- });
236
- return subquery;
237
- }
238
- }
239
- }
240
- async function compileCompositeSpec(spec, ctx) {
241
- if (spec.parts.length === 0) {
242
- return "''";
243
- }
244
- const separator = spec.separator ?? " ";
245
- const compiledParts = await Promise.all(spec.parts.map(async (part) => ({
246
- selector: await compileValueSpec(part.spec, ctx),
247
- isRequired: !!part.isRequired,
248
- })));
249
- const selectors = [];
250
- compiledParts.forEach(({ selector }, index) => {
251
- if (index > 0 && separator) {
252
- selectors.push({ value: separator, type: "String" });
253
- }
254
- selectors.push({ selector });
255
- });
256
- const checkSelectors = compiledParts.filter((p) => p.isRequired).map((p) => `IFNULL(${p.selector}, '') <> ''`);
257
- const checkSelector = checkSelectors.length > 0 ? checkSelectors.join(" AND ") : undefined;
258
- return ctx.selectorsConcatenator(selectors, checkSelector);
259
- }
260
- function normalizeRelationshipPath(path) {
261
- return Array.isArray(path) ? path : [path];
262
- }
263
- const SUBQUERY_SOURCE_ALIAS = "src";
264
- const PROPERTY_SOURCE_TARGET_ALIAS = "pst";
265
- const RELATED_INSTANCE_LABEL_TARGET_ALIAS = "rilt";
266
- const RELATIONSHIP_ALIAS = "r";
267
- const INTERMEDIATE_TARGET_ALIAS = "m";
268
- function subqueryAlias(prefix, depth, stepIndex) {
269
- const alias = `${Utils_js_2.ALIAS_PREFIX}${prefix}${depth}`;
270
- return stepIndex !== undefined ? `${alias}_${stepIndex}` : alias;
271
- }
272
- async function toJoinRelationshipPath(props) {
273
- (0, core_bentley_1.assert)(props.steps.length > 0);
274
- const result = [];
275
- let currentSourceClassName = props.sourceClassName;
276
- let currentSourceAlias = props.sourceAlias;
277
- for (let i = 0; i < props.steps.length; i++) {
278
- const step = props.steps[i];
279
- const relationshipName = `${step.relationship.schemaName}.${step.relationship.className}`;
280
- const relationshipReverse = step.direction === "Backward";
281
- let targetClassName;
282
- if (step.targetClass) {
283
- targetClassName = `${step.targetClass.schemaName}.${step.targetClass.className}`;
284
- }
285
- else {
286
- const relClass = await (0, Metadata_js_1.getClass)(props.schemaProvider, relationshipName);
287
- if (!relClass.isRelationshipClass()) {
288
- throw new Error(`Class ${relationshipName} is not a relationship class`);
289
- }
290
- const endpoint = relationshipReverse ? relClass.source : relClass.target;
291
- const constraintClass = await endpoint.abstractConstraint;
292
- if (!constraintClass) {
293
- throw new Error(`Relationship's ${relationshipName} endpoint does not have an abstract constraint`);
294
- }
295
- targetClassName = constraintClass.fullName;
296
- }
297
- const isLastStep = i === props.steps.length - 1;
298
- const targetAlias = isLastStep ? props.finalTargetAlias : subqueryAlias(INTERMEDIATE_TARGET_ALIAS, props.depth, i);
299
- const relationshipAlias = subqueryAlias(RELATIONSHIP_ALIAS, props.depth, i);
300
- result.push({
301
- sourceClassName: currentSourceClassName,
302
- targetClassName,
303
- relationshipName,
304
- relationshipReverse,
305
- sourceAlias: currentSourceAlias,
306
- targetAlias,
307
- relationshipAlias,
308
- });
309
- currentSourceClassName = targetClassName;
310
- currentSourceAlias = targetAlias;
311
- }
312
- return result;
313
- }
314
- async function buildRelationshipPathSubquery(props) {
315
- (0, core_bentley_1.assert)(props.steps.length > 0);
316
- const sourceAlias = subqueryAlias(SUBQUERY_SOURCE_ALIAS, props.depth);
317
- const joinPath = await toJoinRelationshipPath({
318
- schemaProvider: props.schemaProvider,
319
- steps: props.steps,
320
- sourceClassName: props.ruleClassName,
321
- sourceAlias,
322
- finalTargetAlias: props.finalTargetAlias,
323
- depth: props.depth,
324
- });
325
- const joinResult = await (0, ECSqlJoinSnippets_js_1.createRelationshipPathJoinClause)({ schemaProvider: props.schemaProvider, path: joinPath });
326
- (0, core_bentley_1.assert)(!joinResult.bindings, "Output of `toJoinRelationshipPath` should not contain an instance filter, thus no bindings");
327
- const { schemaName, className } = (0, Utils_js_1.parseFullClassName)(props.ruleClassName);
328
- return `(
329
- SELECT ${props.selectExpression}
330
- FROM [${schemaName}].[${className}] [${sourceAlias}]
331
- ${joinResult.joins}
332
- WHERE [${sourceAlias}].[ECInstanceId] = [${props.classAlias}].[ECInstanceId]
333
- LIMIT 1
334
- )`;
335
- }
336
- //# sourceMappingURL=IModelInstanceLabelSelectClauseFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IModelInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/Utils.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAEnG,eAAO,MAAM,YAAY,UAAU,CAAC;AAEpC,wBAAgB,iCAAiC,CAAC,UAAU,EAAE,MAAM,GAAG,2BAA2B,EAAE,CAUnG;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE;IAAE,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,EAC/G,SAAS,EAAE,2BAA2B,EAAE,EACxC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAER"}
@@ -1,26 +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.ALIAS_PREFIX = void 0;
8
- exports.createECInstanceIdSuffixSelectors = createECInstanceIdSuffixSelectors;
9
- exports.concatenate = concatenate;
10
- const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
11
- exports.ALIAS_PREFIX = "pres_";
12
- function createECInstanceIdSuffixSelectors(classAlias) {
13
- return [
14
- { value: ` [`, type: "String" },
15
- { selector: `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ECInstanceId")} >> 40) AS TEXT)` },
16
- { value: `-`, type: "String" },
17
- {
18
- selector: `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ECInstanceId")} & ((1 << 40) - 1)) AS TEXT)`,
19
- },
20
- { value: `]`, type: "String" },
21
- ];
22
- }
23
- function concatenate(props, selectors, checkSelector) {
24
- return (props.selectorsConcatenator ?? ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector)(selectors, checkSelector);
25
- }
26
- //# sourceMappingURL=Utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/Utils.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAWhG,8EAUC;AAED,kCAMC;AA3BD,mGAGyD;AAI5C,QAAA,YAAY,GAAG,OAAO,CAAC;AAEpC,SAAgB,iCAAiC,CAAC,UAAkB;IAClE,OAAO;QACL,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,EAAE,QAAQ,EAAE,eAAe,IAAA,8DAA8B,EAAC,UAAU,EAAE,cAAc,CAAC,kBAAkB,EAAE;QACzG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B;YACE,QAAQ,EAAE,eAAe,IAAA,8DAA8B,EAAC,UAAU,EAAE,cAAc,CAAC,8BAA8B;SAClH;QACD,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CACzB,KAA+G,EAC/G,SAAwC,EACxC,aAAsB;IAEtB,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,mEAAmC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACxG,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"presentation-shared.d.ts","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,YAAY,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,6CAA6C,EAAE,MAAM,kFAAkF,CAAC;AACjJ,OAAO,EAAE,gDAAgD,EAAE,MAAM,qFAAqF,CAAC;AACvJ,OAAO,EAAE,yCAAyC,EAAE,MAAM,8EAA8E,CAAC;AACzI,OAAO,EAAE,4CAA4C,EAAE,MAAM,iFAAiF,CAAC;AAC/I,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EACV,oBAAoB,EACpB,EAAE,EACF,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"presentation-shared.js","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AASzF,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,6CAA6C,EAAE,MAAM,kFAAkF,CAAC;AACjJ,OAAO,EAAE,gDAAgD,EAAE,MAAM,qFAAqF,CAAC;AACvJ,OAAO,EAAE,yCAAyC,EAAE,MAAM,8EAA8E,CAAC;AACzI,OAAO,EAAE,4CAA4C,EAAE,MAAM,iFAAiF,CAAC;AAE/I,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAalD,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,46 +0,0 @@
1
- import type { TypedPrimitiveValue } from "./Values.js";
2
- /**
3
- * A part of a `ConcatenatedValue`, describing one piece of the value. Possible types:
4
- * - `ConcatenatedValue` describes a nested concatenated value.
5
- * - `TypedPrimitiveValue` describes a value with its type. Generally the value is formatted
6
- * according to its type information before concatenating with other parts.
7
- * - `string` is just concatenated to other parts as-is.
8
- *
9
- * @see `ConcatenatedValue`
10
- * @public
11
- */
12
- export type ConcatenatedValuePart = ConcatenatedValue | TypedPrimitiveValue | string;
13
- /** @public */
14
- export declare namespace ConcatenatedValuePart {
15
- /** @public */
16
- function isString(part: ConcatenatedValuePart): part is string;
17
- /** @public */
18
- function isPrimitive(part: ConcatenatedValuePart): part is TypedPrimitiveValue;
19
- /** @public */
20
- function isConcatenatedValue(part: ConcatenatedValuePart): part is ConcatenatedValue;
21
- }
22
- /**
23
- * A data structure that contains `ConcatenatedValuePart` objects describing
24
- * pieces that may be formatted and concatenated together.
25
- *
26
- * @public
27
- */
28
- export type ConcatenatedValue = ConcatenatedValuePart[];
29
- /** @public */
30
- export declare namespace ConcatenatedValue {
31
- /**
32
- * Serialize given `ConcatenatedValue` to string using a formatter function. The parts are
33
- * each formatted individually and then joined together.
34
- *
35
- * @public
36
- */
37
- function serialize(props: {
38
- /** The parts to join. */
39
- parts: ConcatenatedValue;
40
- /** Parts formatter to convert each part to string */
41
- partFormatter: (part: Exclude<ConcatenatedValuePart, ConcatenatedValue>) => Promise<string>;
42
- /** Optional separator for joining the parts. Defaults to an empty string. */
43
- separator?: string;
44
- }): Promise<string>;
45
- }
46
- //# sourceMappingURL=ConcatenatedValue.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConcatenatedValue.d.ts","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAErF,cAAc;AAEd,yBAAiB,qBAAqB,CAAC;IACrC,cAAc;IACd,SAAgB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,MAAM,CAEpE;IAED,cAAc;IACd,SAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,mBAAmB,CAEpF;IAED,cAAc;IACd,SAAgB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,iBAAiB,CAE1F;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC;AAExD,cAAc;AAEd,yBAAiB,iBAAiB,CAAC;IACjC;;;;;OAKG;IACH,SAAsB,SAAS,CAAC,KAAK,EAAE;QACrC,yBAAyB;QACzB,KAAK,EAAE,iBAAiB,CAAC;QACzB,qDAAqD;QACrD,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5F,6EAA6E;QAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConcatenatedValue.js","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAgBhG,cAAc;AACd,2DAA2D;AAC3D,MAAM,KAAW,qBAAqB,CAerC;AAfD,WAAiB,qBAAqB;IACpC,cAAc;IACd,SAAgB,QAAQ,CAAC,IAA2B;QAClD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;IAClC,CAAC;IAFe,8BAAQ,WAEvB,CAAA;IAED,cAAc;IACd,SAAgB,WAAW,CAAC,IAA2B;QACrD,OAAO,CAAC,CAAE,IAA4B,CAAC,IAAI,CAAC;IAC9C,CAAC;IAFe,iCAAW,cAE1B,CAAA;IAED,cAAc;IACd,SAAgB,mBAAmB,CAAC,IAA2B;QAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAFe,yCAAmB,sBAElC,CAAA;AACH,CAAC,EAfgB,qBAAqB,KAArB,qBAAqB,QAerC;AAUD,cAAc;AACd,2DAA2D;AAC3D,MAAM,KAAW,iBAAiB,CA2BjC;AA3BD,WAAiB,iBAAiB;IAChC;;;;;OAKG;IACI,KAAK,UAAU,SAAS,CAAC,KAO/B;QACC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAnBqB,2BAAS,YAmB9B,CAAA;AACH,CAAC,EA3BgB,iBAAiB,KAAjB,iBAAiB,QA2BjC"}