@itwin/presentation-shared 2.0.0-alpha.9 → 2.0.0

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 (190) hide show
  1. package/CHANGELOG.md +675 -0
  2. package/README.md +59 -27
  3. package/lib/presentation-shared.d.ts +24 -0
  4. package/lib/presentation-shared.d.ts.map +1 -0
  5. package/lib/presentation-shared.js +22 -0
  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 +16 -2
  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/{esm/shared → shared}/Formatting.js +10 -6
  21. package/lib/shared/Formatting.js.map +1 -0
  22. package/lib/shared/HiddenClasses.d.ts +21 -0
  23. package/lib/shared/HiddenClasses.d.ts.map +1 -0
  24. package/lib/shared/HiddenClasses.js +52 -0
  25. package/lib/shared/HiddenClasses.js.map +1 -0
  26. package/lib/{cjs/shared → shared}/InstanceLabelSelectClauseFactory.d.ts +3 -63
  27. package/lib/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  28. package/lib/shared/InstanceLabelSelectClauseFactory.js +27 -0
  29. package/lib/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  30. package/lib/shared/Logging.d.ts.map +1 -0
  31. package/lib/{esm/shared → shared}/Logging.js +2 -1
  32. package/lib/shared/Logging.js.map +1 -0
  33. package/lib/shared/MappedTypes.d.ts +55 -0
  34. package/lib/shared/MappedTypes.d.ts.map +1 -0
  35. package/lib/shared/MappedTypes.js.map +1 -0
  36. package/lib/shared/Metadata.d.ts +572 -0
  37. package/lib/shared/Metadata.d.ts.map +1 -0
  38. package/lib/{esm/shared → shared}/Metadata.js +7 -3
  39. package/lib/shared/Metadata.js.map +1 -0
  40. package/lib/{cjs/shared → shared}/Utils.d.ts +0 -6
  41. package/lib/shared/Utils.d.ts.map +1 -0
  42. package/lib/{esm/shared → shared}/Utils.js +16 -21
  43. package/lib/shared/Utils.js.map +1 -0
  44. package/lib/shared/Values.d.ts +144 -0
  45. package/lib/shared/Values.d.ts.map +1 -0
  46. package/lib/shared/Values.js +121 -0
  47. package/lib/shared/Values.js.map +1 -0
  48. package/lib/shared/ecsql-snippets/ECSqlHiddenClassesSnippets.d.ts +40 -0
  49. package/lib/shared/ecsql-snippets/ECSqlHiddenClassesSnippets.d.ts.map +1 -0
  50. package/lib/shared/ecsql-snippets/ECSqlHiddenClassesSnippets.js +66 -0
  51. package/lib/shared/ecsql-snippets/ECSqlHiddenClassesSnippets.js.map +1 -0
  52. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +174 -0
  53. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  54. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js +177 -0
  55. package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  56. package/lib/{cjs/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +9 -1
  57. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  58. package/lib/{esm/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.js +22 -8
  59. package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  60. package/lib/shared/ecsql-snippets/index.d.ts +4 -0
  61. package/lib/shared/ecsql-snippets/index.d.ts.map +1 -0
  62. package/lib/shared/ecsql-snippets/index.js +8 -0
  63. package/lib/shared/ecsql-snippets/index.js.map +1 -0
  64. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
  65. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  66. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +48 -0
  67. package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
  68. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
  69. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  70. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +60 -0
  71. package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
  72. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
  73. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  74. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +37 -0
  75. package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
  76. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
  77. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
  78. package/lib/{esm/shared/ECSqlCore.js → shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js} +4 -1
  79. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
  80. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
  81. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
  82. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +332 -0
  83. package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
  84. package/lib/shared/instance-label-factory-impls/Utils.d.ts +7 -0
  85. package/lib/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
  86. package/lib/shared/instance-label-factory-impls/Utils.js +21 -0
  87. package/lib/shared/instance-label-factory-impls/Utils.js.map +1 -0
  88. package/package.json +22 -31
  89. package/lib/cjs/package.json +0 -1
  90. package/lib/cjs/presentation-shared.d.ts +0 -17
  91. package/lib/cjs/presentation-shared.d.ts.map +0 -1
  92. package/lib/cjs/presentation-shared.js +0 -71
  93. package/lib/cjs/presentation-shared.js.map +0 -1
  94. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +0 -1
  95. package/lib/cjs/shared/ConcatenatedValue.js +0 -49
  96. package/lib/cjs/shared/ConcatenatedValue.js.map +0 -1
  97. package/lib/cjs/shared/ECSqlCore.d.ts.map +0 -1
  98. package/lib/cjs/shared/ECSqlCore.js +0 -7
  99. package/lib/cjs/shared/ECSqlCore.js.map +0 -1
  100. package/lib/cjs/shared/Event.d.ts.map +0 -1
  101. package/lib/cjs/shared/Event.js +0 -7
  102. package/lib/cjs/shared/Event.js.map +0 -1
  103. package/lib/cjs/shared/Formatting.d.ts.map +0 -1
  104. package/lib/cjs/shared/Formatting.js +0 -114
  105. package/lib/cjs/shared/Formatting.js.map +0 -1
  106. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  107. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -166
  108. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  109. package/lib/cjs/shared/Logging.d.ts.map +0 -1
  110. package/lib/cjs/shared/Logging.js +0 -20
  111. package/lib/cjs/shared/Logging.js.map +0 -1
  112. package/lib/cjs/shared/MappedTypes.d.ts +0 -17
  113. package/lib/cjs/shared/MappedTypes.d.ts.map +0 -1
  114. package/lib/cjs/shared/MappedTypes.js +0 -7
  115. package/lib/cjs/shared/MappedTypes.js.map +0 -1
  116. package/lib/cjs/shared/Metadata.d.ts +0 -294
  117. package/lib/cjs/shared/Metadata.d.ts.map +0 -1
  118. package/lib/cjs/shared/Metadata.js +0 -53
  119. package/lib/cjs/shared/Metadata.js.map +0 -1
  120. package/lib/cjs/shared/Utils.d.ts.map +0 -1
  121. package/lib/cjs/shared/Utils.js +0 -113
  122. package/lib/cjs/shared/Utils.js.map +0 -1
  123. package/lib/cjs/shared/Values.d.ts +0 -107
  124. package/lib/cjs/shared/Values.d.ts.map +0 -1
  125. package/lib/cjs/shared/Values.js +0 -155
  126. package/lib/cjs/shared/Values.js.map +0 -1
  127. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -51
  128. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  129. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -140
  130. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  131. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  132. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +0 -260
  133. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  134. package/lib/cjs/shared/ecsql-snippets/index.d.ts +0 -3
  135. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +0 -1
  136. package/lib/cjs/shared/ecsql-snippets/index.js +0 -18
  137. package/lib/cjs/shared/ecsql-snippets/index.js.map +0 -1
  138. package/lib/esm/presentation-shared.d.ts +0 -17
  139. package/lib/esm/presentation-shared.d.ts.map +0 -1
  140. package/lib/esm/presentation-shared.js +0 -14
  141. package/lib/esm/presentation-shared.js.map +0 -1
  142. package/lib/esm/shared/ConcatenatedValue.d.ts +0 -46
  143. package/lib/esm/shared/ConcatenatedValue.d.ts.map +0 -1
  144. package/lib/esm/shared/ConcatenatedValue.js.map +0 -1
  145. package/lib/esm/shared/ECSqlCore.d.ts +0 -94
  146. package/lib/esm/shared/ECSqlCore.d.ts.map +0 -1
  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 +0 -133
  154. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  155. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +0 -160
  156. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  157. package/lib/esm/shared/Logging.d.ts +0 -27
  158. package/lib/esm/shared/Logging.d.ts.map +0 -1
  159. package/lib/esm/shared/Logging.js.map +0 -1
  160. package/lib/esm/shared/MappedTypes.d.ts +0 -17
  161. package/lib/esm/shared/MappedTypes.d.ts.map +0 -1
  162. package/lib/esm/shared/MappedTypes.js.map +0 -1
  163. package/lib/esm/shared/Metadata.d.ts +0 -294
  164. package/lib/esm/shared/Metadata.d.ts.map +0 -1
  165. package/lib/esm/shared/Metadata.js.map +0 -1
  166. package/lib/esm/shared/Utils.d.ts +0 -66
  167. package/lib/esm/shared/Utils.d.ts.map +0 -1
  168. package/lib/esm/shared/Utils.js.map +0 -1
  169. package/lib/esm/shared/Values.d.ts +0 -107
  170. package/lib/esm/shared/Values.d.ts.map +0 -1
  171. package/lib/esm/shared/Values.js +0 -152
  172. package/lib/esm/shared/Values.js.map +0 -1
  173. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -51
  174. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  175. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -137
  176. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  177. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +0 -122
  178. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  179. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  180. package/lib/esm/shared/ecsql-snippets/index.d.ts +0 -3
  181. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +0 -1
  182. package/lib/esm/shared/ecsql-snippets/index.js +0 -7
  183. package/lib/esm/shared/ecsql-snippets/index.js.map +0 -1
  184. /package/lib/{cjs/shared → shared}/ConcatenatedValue.d.ts +0 -0
  185. /package/lib/{esm/shared → shared}/ConcatenatedValue.js +0 -0
  186. /package/lib/{cjs/shared → shared}/Event.d.ts +0 -0
  187. /package/lib/{esm/shared → shared}/Event.js +0 -0
  188. /package/lib/{cjs/shared → shared}/Formatting.d.ts +0 -0
  189. /package/lib/{cjs/shared → shared}/Logging.d.ts +0 -0
  190. /package/lib/{esm/shared → shared}/MappedTypes.js +0 -0
@@ -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,17 +0,0 @@
1
- import * as ECSql from "./shared/ecsql-snippets/index.js";
2
- export { ECSql };
3
- export { ConcatenatedValue, ConcatenatedValuePart } from "./shared/ConcatenatedValue.js";
4
- export type { ECSqlBinding, ECSqlQueryDef, ECSqlQueryExecutor, ECSqlQueryReaderOptions, ECSqlQueryRow } from "./shared/ECSqlCore.js";
5
- export type { IPrimitiveValueFormatter } from "./shared/Formatting.js";
6
- export { createDefaultValueFormatter, formatConcatenatedValue } from "./shared/Formatting.js";
7
- export type { IInstanceLabelSelectClauseFactory } from "./shared/InstanceLabelSelectClauseFactory.js";
8
- export { createDefaultInstanceLabelSelectClauseFactory, createClassBasedInstanceLabelSelectClauseFactory, createBisInstanceLabelSelectClauseFactory, parseInstanceLabel, } from "./shared/InstanceLabelSelectClauseFactory.js";
9
- export type { ILogger, LogFunction, LogLevel } from "./shared/Logging.js";
10
- export { NOOP_LOGGER } from "./shared/Logging.js";
11
- export type { ArrayElement, OmitOverUnion, Props } from "./shared/MappedTypes.js";
12
- export type { EC, ECClassHierarchyInspector, ECSchemaProvider } from "./shared/Metadata.js";
13
- export { createCachingECClassHierarchyInspector, getClass } from "./shared/Metadata.js";
14
- export { createMainThreadReleaseOnTimePassedHandler, julianToDateTime, compareFullClassNames, normalizeFullClassName, parseFullClassName, releaseMainThread, trimWhitespace, } from "./shared/Utils.js";
15
- export { InstanceKey, PrimitiveValue, TypedPrimitiveValue } from "./shared/Values.js";
16
- export type { Event, RaisableEvent, EventArgs, EventListener } from "./shared/Event.js";
17
- //# sourceMappingURL=presentation-shared.d.ts.map
@@ -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,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrI,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,EACL,6CAA6C,EAC7C,gDAAgD,EAChD,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AACtD,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,EAAE,EAAE,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,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,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,14 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- import * as ECSql from "./shared/ecsql-snippets/index.js";
6
- export { ECSql };
7
- export { ConcatenatedValue, ConcatenatedValuePart } from "./shared/ConcatenatedValue.js";
8
- export { createDefaultValueFormatter, formatConcatenatedValue } from "./shared/Formatting.js";
9
- export { createDefaultInstanceLabelSelectClauseFactory, createClassBasedInstanceLabelSelectClauseFactory, createBisInstanceLabelSelectClauseFactory, parseInstanceLabel, } from "./shared/InstanceLabelSelectClauseFactory.js";
10
- export { NOOP_LOGGER } from "./shared/Logging.js";
11
- export { createCachingECClassHierarchyInspector, getClass } from "./shared/Metadata.js";
12
- export { createMainThreadReleaseOnTimePassedHandler, julianToDateTime, compareFullClassNames, normalizeFullClassName, parseFullClassName, releaseMainThread, trimWhitespace, } from "./shared/Utils.js";
13
- export { InstanceKey, PrimitiveValue, TypedPrimitiveValue } from "./shared/Values.js";
14
- //# sourceMappingURL=presentation-shared.js.map
@@ -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,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGzF,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAE9F,OAAO,EACL,6CAA6C,EAC7C,gDAAgD,EAChD,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,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"}
@@ -1,94 +0,0 @@
1
- import type { Id64String } from "@itwin/core-bentley";
2
- /**
3
- * Defines an ECSql binding consisting of a value and its type. Necessary to differentiate between numeric
4
- * types and `Id64String` vs `string`.
5
- *
6
- * @public
7
- */
8
- export type ECSqlBinding = {
9
- type: "boolean";
10
- value?: boolean;
11
- } | {
12
- type: "double" | "int" | "long";
13
- value?: number;
14
- } | {
15
- type: "id";
16
- value?: Id64String;
17
- } | {
18
- type: "idset";
19
- value?: Id64String[];
20
- } | {
21
- type: "string";
22
- value?: string;
23
- } | {
24
- type: "point2d";
25
- value?: {
26
- x: number;
27
- y: number;
28
- };
29
- } | {
30
- type: "point3d";
31
- value?: {
32
- x: number;
33
- y: number;
34
- z: number;
35
- };
36
- };
37
- /**
38
- * Defines an ECSQL query and its bindings.
39
- * @public
40
- */
41
- export interface ECSqlQueryDef {
42
- /** A list of CTEs used in the query. */
43
- ctes?: string[];
44
- /**
45
- * The ECSQL query to execute.
46
- * @note In case the query uses CTEs, they should be specified in the `ctes` rather than included in the `ecsql`.
47
- */
48
- ecsql: string;
49
- /**
50
- * Values to bind to the query.
51
- * @see https://www.itwinjs.org/learning/ecsql/#ecsql-parameters
52
- */
53
- bindings?: ECSqlBinding[];
54
- }
55
- /**
56
- * Defines requested ECSQL result row format.
57
- * @see [QueryRowFormat](https://www.itwinjs.org/reference/core-common/imodels/queryrowformat/)
58
- * @public
59
- */
60
- type ECSqlQueryRowFormat = "ECSqlPropertyNames" | "Indexes";
61
- /**
62
- * Defines options for ECSQL query reader.
63
- * @see [QueryOptions](https://www.itwinjs.org/reference/core-common/imodels/queryoptions/)
64
- * @public
65
- */
66
- export interface ECSqlQueryReaderOptions {
67
- rowFormat?: ECSqlQueryRowFormat;
68
- restartToken?: string;
69
- }
70
- /**
71
- * Represents a single row of an ECSQL query result.
72
- * @see [QueryRowProxy](https://www.itwinjs.org/reference/core-common/imodels/queryrowproxy/)
73
- * @public
74
- */
75
- export interface ECSqlQueryRow {
76
- [propertyName: string]: any;
77
- [propertyIndex: number]: any;
78
- }
79
- /**
80
- * Represents ECSQL query results reader.
81
- * @see [ECSqlReader](https://www.itwinjs.org/reference/core-common/imodels/ecsqlreader/)
82
- * @public
83
- */
84
- type ECSqlQueryReader = AsyncIterableIterator<ECSqlQueryRow>;
85
- /**
86
- * An interface for something that knows how to create an ECSQL query reader.
87
- * @see `createECSqlQueryExecutor` in `@itwin/presentation-core-interop`.
88
- * @public
89
- */
90
- export interface ECSqlQueryExecutor {
91
- createQueryReader(query: ECSqlQueryDef, config?: ECSqlQueryReaderOptions): ECSqlQueryReader;
92
- }
93
- export {};
94
- //# sourceMappingURL=ECSqlCore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlCore.d.ts","sourceRoot":"","sources":["../../../src/shared/ECSqlCore.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACD;IACE,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;;;GAIG;AACH,KAAK,mBAAmB,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED;;;;GAIG;AACH,KAAK,gBAAgB,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,uBAAuB,GAAG,gBAAgB,CAAC;CAC7F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlCore.js","sourceRoot":"","sources":["../../../src/shared/ECSqlCore.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
@@ -1,27 +0,0 @@
1
- import type { Props } from "./MappedTypes.js";
2
- /**
3
- * An interface that allows subscribing and unsubscribing listeners that are called upon an event.
4
- * @public
5
- */
6
- export interface Event<TListener extends (...args: any[]) => void = () => void> {
7
- addListener: (listener: TListener) => () => void;
8
- removeListener: (listener: TListener) => void;
9
- }
10
- /**
11
- * An `Event` that can be raised.
12
- * @public
13
- */
14
- export interface RaisableEvent<TListener extends (...args: any[]) => void = () => void> extends Event<TListener> {
15
- raiseEvent: (...args: Parameters<TListener>) => void;
16
- }
17
- /**
18
- * Returns type of the given `Event` listener.
19
- * @public
20
- */
21
- export type EventListener<TEvent extends {}> = TEvent extends Event<infer TListener> ? TListener : never;
22
- /**
23
- * Returns type of the given `Event` arguments.
24
- * @public
25
- */
26
- export type EventArgs<TEvent extends {}> = Props<EventListener<TEvent>>;
27
- //# sourceMappingURL=Event.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/shared/Event.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,KAAK,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAC5E,WAAW,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,MAAM,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAE,SAAQ,KAAK,CAAC,SAAS,CAAC;IAC9G,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;CACtD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,EAAE,IAAI,MAAM,SAAS,KAAK,CAAC,MAAM,SAAS,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;AAEzG;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,EAAE,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -1,44 +0,0 @@
1
- import { ConcatenatedValue } from "./ConcatenatedValue.js";
2
- import type { TypedPrimitiveValue } from "./Values.js";
3
- /**
4
- * A type definition for a function that knows how to create a display string for a typed primitive value.
5
- * @see `createDefaultValueFormatter`
6
- * @public
7
- */
8
- export type IPrimitiveValueFormatter = (value: TypedPrimitiveValue) => Promise<string>;
9
- /**
10
- * Formats a concatenated value into a string, taking into account different types of `ConcatenatedValuePart` that
11
- * the value consists of.
12
- *
13
- * @public
14
- */
15
- export declare function formatConcatenatedValue(props: {
16
- value: ConcatenatedValue | string;
17
- valueFormatter: IPrimitiveValueFormatter;
18
- }): Promise<string>;
19
- /**
20
- * A values' formatter that knows how to format the following types:
21
- *
22
- * - `Boolean` values are formatted to either "true" or "false".
23
- *
24
- * - `Integer` and `Long` values are rounded to the closest integer.
25
- *
26
- * - `Double` values are rounded to 2 decimal places.
27
- *
28
- * - `DateTime` values accept 2 formats in addition to `Date`:
29
- * - if the value is numeric, assume it's a julian day format,
30
- * - if the value is string, assume it's an ISO 8601 format.
31
- *
32
- * If extended type is set to `ShortDate`, the date is formatted as locale date string. Otherwise, it's
33
- * formatted as locale date + time string.
34
- *
35
- * - `Point2d` values are formatted in `(x, y)` format.
36
- *
37
- * - `Point3d` values are formatted in `(x, y, z)` format.
38
- *
39
- * - `String` and `Id` values are returned as-is.
40
- *
41
- * @public
42
- */
43
- export declare function createDefaultValueFormatter(): IPrimitiveValueFormatter;
44
- //# sourceMappingURL=Formatting.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Formatting.d.ts","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,wBAAwB,CAAC;AAGlF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAAC,cAAc,EAAE,wBAAwB,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBrJ;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAatE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Formatting.js","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":"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"}
@@ -1,133 +0,0 @@
1
- import type { ConcatenatedValue } from "./ConcatenatedValue.js";
2
- import type { TypedValueSelectClauseProps } from "./ecsql-snippets/ECSqlValueSelectorSnippets.js";
3
- import type { EC, ECClassHierarchyInspector } from "./Metadata.js";
4
- /**
5
- * Props for `IInstanceLabelSelectClauseFactory.createSelectClause`.
6
- * @public
7
- */
8
- interface CreateInstanceLabelSelectClauseProps {
9
- /**
10
- * Alias of an ECSQL class referring to the target instance whose label should be selected.
11
- *
12
- * Example:
13
- * ```ts
14
- * const selectClause = `
15
- * SELECT ${await factory.createSelectClause({ classAlias: "x" })}
16
- * FROM bis.GeometricElement3d AS x
17
- * `;
18
- * ```
19
- */
20
- classAlias: string;
21
- /**
22
- * An optional full name of the class whose instance label is to be selected.
23
- *
24
- * The attribute's purpose is purely for optimization and `IInstanceLabelSelectClauseFactory` should not
25
- * rely on this to be set to a leaf class or set at all. However, when this name is provided, some factory
26
- * implementations may be able to create a more efficient select clause (e.g. drop some pieces of clause
27
- * that don't apply for given class).
28
- */
29
- className?: EC.FullClassName;
30
- /**
31
- * An optional function for concatenating multiple `TypedValueSelectClauseProps`. Selectors' concatenation
32
- * is used when a label consists of multiple pieces, e.g.:
33
- * - `[` - string,
34
- * - `this.PropertyX` - property value selector,
35
- * - `]` - string.
36
- *
37
- * It's concatenator's job to serialize those pieces into a single selector and, depending on the use case,
38
- * it may do that in multiple ways. For example:
39
- *
40
- * - `createConcatenatedValueJsonSelector` serializes parts into a JSON array selector. This allows the array to
41
- * be parsed after the query is run, where each part can be handled individually without losing its metadata.
42
- * This is the default value.
43
- *
44
- * - `createConcatenatedValueStringSelector` concatenates parts into a string using SQLite's `||` operator. While
45
- * this way of concatenation looses metadata (thus disabling formatting of the values), it tries to produce the
46
- * value to be as close as possible to the formatted one. This concatenator may be used to create a label for using
47
- * in the query `WHERE` clause.
48
- *
49
- * @see `createConcatenatedValueJsonSelector`
50
- * @see `createConcatenatedValueStringSelector`
51
- */
52
- selectorsConcatenator?: (selectors: TypedValueSelectClauseProps[], checkSelector?: string) => string;
53
- }
54
- /**
55
- * An interface for a factory that knows how create instance label select clauses.
56
- * @see `createDefaultInstanceLabelSelectClauseFactory`
57
- * @see `createClassBasedInstanceLabelSelectClauseFactory`
58
- * @see `createBisInstanceLabelSelectClauseFactory`
59
- * @public
60
- */
61
- export interface IInstanceLabelSelectClauseFactory {
62
- /** Creates a select clause for an instance label. */
63
- createSelectClause(props: CreateInstanceLabelSelectClauseProps): Promise<string>;
64
- }
65
- /**
66
- * Parses an instance label from query result into a string or a `ConcatenatedValue`. The latter type of result
67
- * is expected when label selector is created using `IInstanceLabelSelectClauseFactory.createSelectClause` with
68
- * `createConcatenatedValueJsonSelector`.
69
- *
70
- * @public
71
- */
72
- export declare function parseInstanceLabel(value: string | undefined): ConcatenatedValue | string;
73
- /**
74
- * Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
75
- * local and briefcase IDs are calculated based on ECInstance ID:
76
- * - `{briefcase id} = ECInstanceId >> 40`
77
- * - `{local id} = ECInstanceId & (1 << 40 - 1)`
78
- *
79
- * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
80
- * @public
81
- */
82
- export declare function createDefaultInstanceLabelSelectClauseFactory(): IInstanceLabelSelectClauseFactory;
83
- /**
84
- * An association of a class and an instance label select clause factory method.
85
- * @public
86
- */
87
- interface ClassBasedLabelSelectClause {
88
- /** Full class name */
89
- className: EC.FullClassName;
90
- /** A factory method to create an instance label select clause */
91
- clause: (props: CreateInstanceLabelSelectClauseProps) => Promise<string>;
92
- }
93
- /**
94
- * Props for `createClassBasedInstanceLabelSelectClauseFactory`.
95
- * @public
96
- */
97
- interface ClassBasedInstanceLabelSelectClauseFactoryProps {
98
- /** Access to ECClass hierarchy in the iModel. */
99
- classHierarchyInspector: ECClassHierarchyInspector;
100
- /**
101
- * A prioritized list of instance label selectors associated to classes they should be applied to.
102
- *
103
- * Because the list may contain clauses for classes in the same class hierarchy, and the factory
104
- * handles them in given order, the order of clauses should be from the most specific class to the
105
- * most general one.
106
- */
107
- clauses: ClassBasedLabelSelectClause[];
108
- /**
109
- * A fallback label clause factory for when class-based factory doesn't produce a label.
110
- * Defaults to the result of `createDefaultInstanceLabelSelectClauseFactory`.
111
- */
112
- defaultClauseFactory?: IInstanceLabelSelectClauseFactory;
113
- }
114
- /**
115
- * Creates an instance label select clause based on its class.
116
- * @public
117
- */
118
- export declare function createClassBasedInstanceLabelSelectClauseFactory(props: ClassBasedInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
119
- /**
120
- * Props for `createBisInstanceLabelSelectClauseFactory`.
121
- * @public
122
- */
123
- interface BisInstanceLabelSelectClauseFactoryProps {
124
- classHierarchyInspector: ECClassHierarchyInspector;
125
- }
126
- /**
127
- * Creates a label select clause according to BIS instance label rules.
128
- * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
129
- * @public
130
- */
131
- export declare function createBisInstanceLabelSelectClauseFactory(props: BisInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
132
- export {};
133
- //# sourceMappingURL=InstanceLabelSelectClauseFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/InstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,KAAK,EAAE,EAAE,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAEnE;;;GAGG;AACH,UAAU,oCAAoC;IAC5C;;;;;;;;;;OAUG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACtG;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iCAAiC;IAChD,qDAAqD;IACrD,kBAAkB,CAAC,KAAK,EAAE,oCAAoC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,MAAM,CAaxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,6CAA6C,IAAI,iCAAiC,CAmBjG;AAED;;;GAGG;AACH,UAAU,2BAA2B;IACnC,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,UAAU,+CAA+C;IACvD,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,CAAC,KAAK,EAAE,+CAA+C,GAAG,iCAAiC,CA0D1J;AAED;;;GAGG;AACH,UAAU,wCAAwC;IAChD,uBAAuB,EAAE,yBAAyB,CAAC;CACpD;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CAAC,KAAK,EAAE,wCAAwC,GAAG,iCAAiC,CAuC5I"}
@@ -1,160 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- import { createConcatenatedValueJsonSelector, createRawPropertyValueSelector } from "./ecsql-snippets/ECSqlValueSelectorSnippets.js";
6
- /**
7
- * Parses an instance label from query result into a string or a `ConcatenatedValue`. The latter type of result
8
- * is expected when label selector is created using `IInstanceLabelSelectClauseFactory.createSelectClause` with
9
- * `createConcatenatedValueJsonSelector`.
10
- *
11
- * @public
12
- */
13
- export function parseInstanceLabel(value) {
14
- if (!value) {
15
- return "";
16
- }
17
- if ((value.startsWith("[") && value.endsWith("]")) || (value.startsWith("{") && value.endsWith("}"))) {
18
- try {
19
- return JSON.parse(value);
20
- }
21
- catch {
22
- // fall through
23
- }
24
- }
25
- // not a JSON object/array
26
- return value;
27
- }
28
- /**
29
- * Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
30
- * local and briefcase IDs are calculated based on ECInstance ID:
31
- * - `{briefcase id} = ECInstanceId >> 40`
32
- * - `{local id} = ECInstanceId & (1 << 40 - 1)`
33
- *
34
- * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
35
- * @public
36
- */
37
- export function createDefaultInstanceLabelSelectClauseFactory() {
38
- return {
39
- async createSelectClause(props) {
40
- return `(
41
- SELECT
42
- ${concatenate(props, [
43
- {
44
- selector: `COALESCE(
45
- ${createRawPropertyValueSelector("c", "DisplayLabel")},
46
- ${createRawPropertyValueSelector("c", "Name")}
47
- )`,
48
- },
49
- ...createECInstanceIdSuffixSelectors(props.classAlias),
50
- ])}
51
- FROM [meta].[ECClassDef] AS [c]
52
- WHERE [c].[ECInstanceId] = ${createRawPropertyValueSelector(props.classAlias, "ECClassId")}
53
- )`;
54
- },
55
- };
56
- }
57
- /**
58
- * Creates an instance label select clause based on its class.
59
- * @public
60
- */
61
- export function createClassBasedInstanceLabelSelectClauseFactory(props) {
62
- const { classHierarchyInspector, clauses: labelClausesByClass } = props;
63
- const defaultClauseFactory = props.defaultClauseFactory ?? createDefaultInstanceLabelSelectClauseFactory();
64
- async function getLabelClausesForClass(queryClassName) {
65
- const matchingLabelClauses = await Promise.all(labelClausesByClass.map(async (entry) => {
66
- if (await classHierarchyInspector.classDerivesFrom(entry.className, queryClassName)) {
67
- // label selector is intended for a more specific class than we're selecting from - need to include it
68
- // as query results (on polymorphic select) are going to include more specific class instances too
69
- return entry;
70
- }
71
- if (await classHierarchyInspector.classDerivesFrom(queryClassName, entry.className)) {
72
- // label selector is intended for a base class of what query is selecting - need to include it as
73
- // we want base class label selectors to apply to subclass instances
74
- return entry;
75
- }
76
- return undefined;
77
- }));
78
- function filterNotUndefined(x) {
79
- return !!x;
80
- }
81
- return matchingLabelClauses.filter(filterNotUndefined);
82
- }
83
- return {
84
- async createSelectClause(clauseProps) {
85
- if (labelClausesByClass.length === 0) {
86
- return defaultClauseFactory.createSelectClause(clauseProps);
87
- }
88
- const labelClausePromises = clauseProps.className ? await getLabelClausesForClass(clauseProps.className) : labelClausesByClass;
89
- if (labelClausePromises.length === 0) {
90
- return defaultClauseFactory.createSelectClause(clauseProps);
91
- }
92
- const labelClauses = await Promise.all(labelClausePromises.map(async ({ className, clause }) => ({
93
- className,
94
- clause: await clause(clauseProps),
95
- })));
96
- return `COALESCE(
97
- ${labelClauses
98
- .map(({ className, clause }) => `
99
- IIF(
100
- ${createRawPropertyValueSelector(clauseProps.classAlias, "ECClassId")} IS (${className}),
101
- ${clause.trim()},
102
- NULL
103
- )
104
- `.trim())
105
- .join(", ")},
106
- ${await defaultClauseFactory.createSelectClause(clauseProps)}
107
- )`;
108
- },
109
- };
110
- }
111
- /**
112
- * Creates a label select clause according to BIS instance label rules.
113
- * @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
114
- * @public
115
- */
116
- export function createBisInstanceLabelSelectClauseFactory(props) {
117
- const clauses = [];
118
- const factory = createClassBasedInstanceLabelSelectClauseFactory({
119
- classHierarchyInspector: props.classHierarchyInspector,
120
- clauses,
121
- });
122
- clauses.push({
123
- className: "BisCore.GeometricElement",
124
- clause: async ({ classAlias, ...rest }) => `
125
- COALESCE(
126
- ${createRawPropertyValueSelector(classAlias, "CodeValue")},
127
- ${concatenate(rest, [{ selector: createRawPropertyValueSelector(classAlias, "UserLabel") }, ...createECInstanceIdSuffixSelectors(classAlias)], `${createRawPropertyValueSelector(classAlias, "UserLabel")} IS NOT NULL`)}
128
- )
129
- `,
130
- }, {
131
- className: "BisCore.Element",
132
- clause: async ({ classAlias }) => `
133
- COALESCE(
134
- ${createRawPropertyValueSelector(classAlias, "UserLabel")},
135
- ${createRawPropertyValueSelector(classAlias, "CodeValue")}
136
- )
137
- `,
138
- }, {
139
- className: "BisCore.Model",
140
- clause: async ({ classAlias, ...rest }) => `(
141
- SELECT ${await factory.createSelectClause({ ...rest, classAlias: "e", className: "BisCore.Element" })}
142
- FROM [bis].[Element] AS [e]
143
- WHERE [e].[ECInstanceId] = ${createRawPropertyValueSelector(classAlias, "ModeledElement", "Id")}
144
- )`,
145
- });
146
- return factory;
147
- }
148
- function createECInstanceIdSuffixSelectors(classAlias) {
149
- return [
150
- { value: ` [`, type: "String" },
151
- { selector: `CAST(base36(${createRawPropertyValueSelector(classAlias, "ECInstanceId")} >> 40) AS TEXT)` },
152
- { value: `-`, type: "String" },
153
- { selector: `CAST(base36(${createRawPropertyValueSelector(classAlias, "ECInstanceId")} & ((1 << 40) - 1)) AS TEXT)` },
154
- { value: `]`, type: "String" },
155
- ];
156
- }
157
- function concatenate(props, selectors, checkSelector) {
158
- return (props.selectorsConcatenator ?? createConcatenatedValueJsonSelector)(selectors, checkSelector);
159
- }
160
- //# sourceMappingURL=InstanceLabelSelectClauseFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../src/shared/InstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"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"}