@itwin/presentation-shared 2.0.0-alpha.8 → 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 +736 -1
  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/{esm/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 +6 -7
  41. package/lib/shared/Utils.d.ts.map +1 -0
  42. package/lib/{esm/shared → shared}/Utils.js +21 -27
  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 +10 -2
  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 +0 -133
  107. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
  108. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -166
  109. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
  110. package/lib/cjs/shared/Logging.d.ts.map +0 -1
  111. package/lib/cjs/shared/Logging.js +0 -20
  112. package/lib/cjs/shared/Logging.js.map +0 -1
  113. package/lib/cjs/shared/MappedTypes.d.ts +0 -17
  114. package/lib/cjs/shared/MappedTypes.d.ts.map +0 -1
  115. package/lib/cjs/shared/MappedTypes.js +0 -7
  116. package/lib/cjs/shared/MappedTypes.js.map +0 -1
  117. package/lib/cjs/shared/Metadata.d.ts +0 -291
  118. package/lib/cjs/shared/Metadata.d.ts.map +0 -1
  119. package/lib/cjs/shared/Metadata.js +0 -53
  120. package/lib/cjs/shared/Metadata.js.map +0 -1
  121. package/lib/cjs/shared/Utils.d.ts.map +0 -1
  122. package/lib/cjs/shared/Utils.js +0 -114
  123. package/lib/cjs/shared/Utils.js.map +0 -1
  124. package/lib/cjs/shared/Values.d.ts +0 -107
  125. package/lib/cjs/shared/Values.d.ts.map +0 -1
  126. package/lib/cjs/shared/Values.js +0 -155
  127. package/lib/cjs/shared/Values.js.map +0 -1
  128. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -51
  129. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
  130. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -140
  131. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
  132. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
  133. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +0 -260
  134. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
  135. package/lib/cjs/shared/ecsql-snippets/index.d.ts +0 -3
  136. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +0 -1
  137. package/lib/cjs/shared/ecsql-snippets/index.js +0 -18
  138. package/lib/cjs/shared/ecsql-snippets/index.js.map +0 -1
  139. package/lib/esm/presentation-shared.d.ts +0 -17
  140. package/lib/esm/presentation-shared.d.ts.map +0 -1
  141. package/lib/esm/presentation-shared.js +0 -14
  142. package/lib/esm/presentation-shared.js.map +0 -1
  143. package/lib/esm/shared/ConcatenatedValue.d.ts +0 -46
  144. package/lib/esm/shared/ConcatenatedValue.d.ts.map +0 -1
  145. package/lib/esm/shared/ConcatenatedValue.js.map +0 -1
  146. package/lib/esm/shared/ECSqlCore.d.ts +0 -94
  147. package/lib/esm/shared/ECSqlCore.d.ts.map +0 -1
  148. package/lib/esm/shared/ECSqlCore.js.map +0 -1
  149. package/lib/esm/shared/Event.d.ts +0 -27
  150. package/lib/esm/shared/Event.d.ts.map +0 -1
  151. package/lib/esm/shared/Formatting.d.ts +0 -44
  152. package/lib/esm/shared/Formatting.d.ts.map +0 -1
  153. package/lib/esm/shared/Formatting.js.map +0 -1
  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 -291
  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 -61
  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,114 +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.parseFullClassName = parseFullClassName;
8
- exports.normalizeFullClassName = normalizeFullClassName;
9
- exports.compareFullClassNames = compareFullClassNames;
10
- exports.trimWhitespace = trimWhitespace;
11
- exports.releaseMainThread = releaseMainThread;
12
- exports.createMainThreadReleaseOnTimePassedHandler = createMainThreadReleaseOnTimePassedHandler;
13
- exports.julianToDateTime = julianToDateTime;
14
- const core_bentley_1 = require("@itwin/core-bentley");
15
- /**
16
- * An utility to parse schema and class names from full class name, where
17
- * schema and class names are separated by either `:` or `.`.
18
- * @public
19
- */
20
- function parseFullClassName(fullClassName) {
21
- const [schemaName, className] = fullClassName.split(/[\.:]/);
22
- (0, core_bentley_1.assert)(!!schemaName && !!className, "Invalid full class name");
23
- return { schemaName, className };
24
- }
25
- /**
26
- * An utility to normalize full class name from either `SchemaName:ClassName` or
27
- * `SchemaName.ClassName` to always use the dot format.
28
- * @public
29
- */
30
- function normalizeFullClassName(fullClassName) {
31
- const colonPos = fullClassName.indexOf(":");
32
- if (-1 === colonPos) {
33
- (0, core_bentley_1.assert)(fullClassName.indexOf(".") !== -1, "Invalid full class name");
34
- return fullClassName;
35
- }
36
- const schemaName = fullClassName.slice(0, colonPos);
37
- const className = fullClassName.slice(colonPos + 1);
38
- return `${schemaName}.${className}`;
39
- }
40
- /**
41
- * An utility that compares two full class names in a case insensitive way, ignoring different
42
- * supported schema-class name separators (`.` or `:`).
43
- * @public
44
- */
45
- function compareFullClassNames(lhs, rhs) {
46
- const parsed = {
47
- lhs: parseFullClassName(lhs),
48
- rhs: parseFullClassName(rhs),
49
- };
50
- const schemaCompare = parsed.lhs.schemaName.toLocaleLowerCase().localeCompare(parsed.rhs.schemaName.toLocaleLowerCase());
51
- if (schemaCompare !== 0) {
52
- return schemaCompare;
53
- }
54
- return parsed.lhs.className.toLocaleLowerCase().localeCompare(parsed.rhs.className.toLocaleLowerCase());
55
- }
56
- /** @public */
57
- function trimWhitespace(str) {
58
- /* c8 ignore next 3 */
59
- if (!str) {
60
- return str;
61
- }
62
- return str
63
- .replaceAll(/\s+/gm, " ") // replace all consecutive spaces with a single space
64
- .replaceAll(/\(\s+/g, "(") // remove spaces after opening parentheses
65
- .replaceAll(/\s+\)/g, ")") // remove spaces before closing parentheses
66
- .replaceAll(/\s+,/g, ",") // remove spaces before comma
67
- .trim(); // remove spaces from beginning and end of the string
68
- }
69
- /**
70
- * An utility that returns a promise that immediately resolves. Awaiting on the returned
71
- * promise releases the main thread and allows other tasks to run.
72
- *
73
- * @public
74
- */
75
- async function releaseMainThread() {
76
- return new Promise((resolve) => setTimeout(resolve, 0));
77
- }
78
- /**
79
- * An utility that returns a `releaseMainThread` promise if the given amount of time has passed since the handler
80
- * was created or the main thread was last released using this handler. Otherwise, returns `undefined`.
81
- *
82
- * Example:
83
- * ```ts
84
- * const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();
85
- * for (const value of someVeryLargeArray) {
86
- * await releaseMainThread();
87
- * // do something with value
88
- * }
89
- * ```
90
- *
91
- * @param releaseOnTimePassed The amount of time in milliseconds after which the main thread should be released. Defaults to `40` ms.
92
- * @public
93
- */
94
- function createMainThreadReleaseOnTimePassedHandler(releaseOnTimePassed = 40) {
95
- let start = Date.now();
96
- return () => {
97
- const elapsed = Date.now() - start;
98
- if (elapsed < releaseOnTimePassed) {
99
- return undefined;
100
- }
101
- return releaseMainThread().then(() => {
102
- start = Date.now();
103
- });
104
- };
105
- }
106
- /**
107
- * An utility to convert a julian day format to `Date`.
108
- * @public
109
- */
110
- function julianToDateTime(julianDate) {
111
- const millis = (julianDate - 2440587.5) * 86400000;
112
- return new Date(millis);
113
- }
114
- //# sourceMappingURL=Utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/shared/Utils.ts"],"names":[],"mappings":"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"}
@@ -1,107 +0,0 @@
1
- import type { Id64String } from "@itwin/core-bentley";
2
- import type { PrimitiveValueType } from "./Metadata.js";
3
- /**
4
- * A data structure uniquely identifying an ECInstance in an iModel.
5
- * @public
6
- */
7
- export interface InstanceKey {
8
- /** Full class name in format `SchemaName.ClassName` */
9
- className: string;
10
- /** ECInstance ID */
11
- id: Id64String;
12
- }
13
- /** @public */
14
- export declare namespace InstanceKey {
15
- /**
16
- * Checks whether the two given instance keys are equal.
17
- * @public
18
- */
19
- function equals(lhs: InstanceKey, rhs: InstanceKey): boolean;
20
- /**
21
- * Compares two given instance keys.
22
- * @returns
23
- *- `0` if they are equal
24
- *- `negative value` if lhs key is less than rhs key
25
- *- `positive value` if lhs key is more than rhs key
26
- */
27
- function compare(lhs: InstanceKey, rhs: InstanceKey): number;
28
- }
29
- /**
30
- * A data structure for a 2d point.
31
- * @public
32
- */
33
- export interface Point2d {
34
- x: number;
35
- y: number;
36
- }
37
- /**
38
- * A data structure for a 3d point.
39
- * @public
40
- */
41
- export interface Point3d {
42
- x: number;
43
- y: number;
44
- z: number;
45
- }
46
- /**
47
- * A union for all supported primitive value types.
48
- * @public
49
- */
50
- export type PrimitiveValue = Id64String | string | number | boolean | Date | Point2d | Point3d;
51
- /** @public */
52
- export declare namespace PrimitiveValue {
53
- /**
54
- * Checks whether the given value is a `Point2d`.
55
- * @note Since `Point3d` is a superset of `Point2d`, this function will return `true` for `Point3d` as well.
56
- * @public
57
- */
58
- function isPoint2d(value: PrimitiveValue): value is Point2d;
59
- /**
60
- * Checks whether the given value is a `Point3d`.
61
- * @public
62
- */
63
- function isPoint3d(value: PrimitiveValue): value is Point3d;
64
- }
65
- /**
66
- * A type for a primitive value, its type and, optionally, its extended type.
67
- * @note Use `TypedPrimitiveValue.create` to create an instance of this type.
68
- * @public
69
- */
70
- export type TypedPrimitiveValue = ({
71
- value: number;
72
- type: "Integer" | "Long";
73
- } | {
74
- value: number;
75
- type: "Double";
76
- koqName?: string;
77
- } | {
78
- value: boolean;
79
- type: "Boolean";
80
- } | {
81
- value: Id64String;
82
- type: "Id";
83
- } | {
84
- value: string;
85
- type: "String";
86
- } | {
87
- value: number | string | Date;
88
- type: "DateTime";
89
- } | {
90
- value: Point2d;
91
- type: "Point2d";
92
- } | {
93
- value: Point3d;
94
- type: "Point3d";
95
- }) & {
96
- extendedType?: string;
97
- };
98
- /** @public */
99
- export declare namespace TypedPrimitiveValue {
100
- /**
101
- * A function for a creating a `TypedPrimitiveValue` object.
102
- * @throws Error if primitive type and value are incompatible.
103
- * @public
104
- */
105
- function create(value: PrimitiveValue, type: PrimitiveValueType, koqName?: string, extendedType?: string): TypedPrimitiveValue;
106
- }
107
- //# sourceMappingURL=Values.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Values.d.ts","sourceRoot":"","sources":["../../../src/shared/Values.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,EAAE,EAAE,UAAU,CAAC;CAChB;AAED,cAAc;AACd,yBAAiB,WAAW,CAAC;IAC3B;;;OAGG;IACH,SAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAElE;IACD;;;;;;OAMG;IACH,SAAgB,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CASlE;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/F,cAAc;AAEd,yBAAiB,cAAc,CAAC;IAC9B;;;;OAIG;IACH,SAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,IAAI,OAAO,CAKjE;IAED;;;OAGG;IACH,SAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,IAAI,OAAO,CAKjE;CACF;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAC9B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;CAC1B,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACE,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB,GACD;IACE,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;CACZ,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;CAChB,GACD;IACE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;CAClB,GACD;IACE,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB,GACD;IACE,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB,CACJ,GAAG;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,cAAc;AAEd,yBAAiB,mBAAmB,CAAC;IACnC;;;;OAIG;IACH,SAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,mBAAmB,CA8EpI;CACF"}
@@ -1,155 +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.TypedPrimitiveValue = exports.PrimitiveValue = exports.InstanceKey = void 0;
8
- const core_bentley_1 = require("@itwin/core-bentley");
9
- const Utils_js_1 = require("./Utils.js");
10
- /** @public */
11
- var InstanceKey;
12
- (function (InstanceKey) {
13
- /**
14
- * Checks whether the two given instance keys are equal.
15
- * @public
16
- */
17
- function equals(lhs, rhs) {
18
- return compare(lhs, rhs) === 0;
19
- }
20
- InstanceKey.equals = equals;
21
- /**
22
- * Compares two given instance keys.
23
- * @returns
24
- *- `0` if they are equal
25
- *- `negative value` if lhs key is less than rhs key
26
- *- `positive value` if lhs key is more than rhs key
27
- */
28
- function compare(lhs, rhs) {
29
- const classNameCompareResult = (0, core_bentley_1.compareStrings)((0, Utils_js_1.normalizeFullClassName)(lhs.className).toLocaleLowerCase(), (0, Utils_js_1.normalizeFullClassName)(rhs.className).toLocaleLowerCase());
30
- if (classNameCompareResult !== 0) {
31
- return classNameCompareResult;
32
- }
33
- return (0, core_bentley_1.compareStrings)(lhs.id, rhs.id);
34
- }
35
- InstanceKey.compare = compare;
36
- })(InstanceKey || (exports.InstanceKey = InstanceKey = {}));
37
- /** @public */
38
- // eslint-disable-next-line @typescript-eslint/no-redeclare
39
- var PrimitiveValue;
40
- (function (PrimitiveValue) {
41
- /**
42
- * Checks whether the given value is a `Point2d`.
43
- * @note Since `Point3d` is a superset of `Point2d`, this function will return `true` for `Point3d` as well.
44
- * @public
45
- */
46
- function isPoint2d(value) {
47
- if (typeof value !== "object") {
48
- return false;
49
- }
50
- return "x" in value && "y" in value;
51
- }
52
- PrimitiveValue.isPoint2d = isPoint2d;
53
- /**
54
- * Checks whether the given value is a `Point3d`.
55
- * @public
56
- */
57
- function isPoint3d(value) {
58
- if (typeof value !== "object") {
59
- return false;
60
- }
61
- return "x" in value && "y" in value && "z" in value;
62
- }
63
- PrimitiveValue.isPoint3d = isPoint3d;
64
- })(PrimitiveValue || (exports.PrimitiveValue = PrimitiveValue = {}));
65
- /** @public */
66
- // eslint-disable-next-line @typescript-eslint/no-redeclare
67
- var TypedPrimitiveValue;
68
- (function (TypedPrimitiveValue) {
69
- /**
70
- * A function for a creating a `TypedPrimitiveValue` object.
71
- * @throws Error if primitive type and value are incompatible.
72
- * @public
73
- */
74
- function create(value, type, koqName, extendedType) {
75
- switch (type) {
76
- case "Integer":
77
- case "Long":
78
- if (typeof value === "number") {
79
- return {
80
- type,
81
- extendedType,
82
- value,
83
- };
84
- }
85
- break;
86
- case "Double":
87
- if (typeof value === "number") {
88
- return {
89
- type,
90
- koqName,
91
- extendedType,
92
- value,
93
- };
94
- }
95
- break;
96
- case "Boolean":
97
- if (typeof value === "boolean") {
98
- return {
99
- type,
100
- extendedType,
101
- value,
102
- };
103
- }
104
- break;
105
- case "Id":
106
- if (typeof value === "string" && core_bentley_1.Id64.isId64(value)) {
107
- return {
108
- type,
109
- extendedType,
110
- value,
111
- };
112
- }
113
- break;
114
- case "String":
115
- if (typeof value === "string") {
116
- return {
117
- type,
118
- extendedType,
119
- value,
120
- };
121
- }
122
- break;
123
- case "DateTime":
124
- if (typeof value === "string" || typeof value === "number" || value instanceof Date) {
125
- return {
126
- type,
127
- extendedType,
128
- value,
129
- };
130
- }
131
- break;
132
- case "Point3d":
133
- if (PrimitiveValue.isPoint3d(value)) {
134
- return {
135
- type,
136
- extendedType,
137
- value,
138
- };
139
- }
140
- break;
141
- case "Point2d":
142
- if (PrimitiveValue.isPoint2d(value)) {
143
- return {
144
- type,
145
- extendedType,
146
- value,
147
- };
148
- }
149
- break;
150
- }
151
- throw new Error(`PrimitiveValueType ${type} isn't compatible with value ${JSON.stringify(value)}`);
152
- }
153
- TypedPrimitiveValue.create = create;
154
- })(TypedPrimitiveValue || (exports.TypedPrimitiveValue = TypedPrimitiveValue = {}));
155
- //# sourceMappingURL=Values.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Values.js","sourceRoot":"","sources":["../../../src/shared/Values.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import type { ECSchemaProvider, RelationshipPath, RelationshipPathStep } from "../Metadata.js";
2
- /**
3
- * Describes a single JOIN step from source to target through a relationship.
4
- * @public
5
- */
6
- interface JoinRelationshipPathStep extends RelationshipPathStep {
7
- sourceAlias: string;
8
- targetAlias: string;
9
- relationshipAlias: string;
10
- joinType?: "inner" | "outer";
11
- }
12
- /**
13
- * Describes a path of JOINs from source to target.
14
- * @public
15
- */
16
- type JoinRelationshipPath = RelationshipPath<JoinRelationshipPathStep>;
17
- /**
18
- * Props for `createRelationshipPathJoinClause`.
19
- * @public
20
- */
21
- interface CreateRelationshipPathJoinClauseProps {
22
- schemaProvider: ECSchemaProvider;
23
- path: JoinRelationshipPath;
24
- }
25
- /**
26
- * Creates an ECSQL JOIN snippet for given relationships' path.
27
- *
28
- * Possible results:
29
- * - When the relationship is represented by a navigation property on either source or target:
30
- * ```SQL
31
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[navigation_property_name].[Id] = [source_alias].[ECInstanceId]
32
- * ```
33
- * - When outer joining through a non-navigation-property relationship:
34
- * ```SQL
35
- * LEFT JOIN (
36
- * SELECT [relationship_alias].*
37
- * FROM [relationship_schema_name].[relationship_class_name] [relationship_alias]
38
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
39
- * ) [relationship_alias]
40
- * LEFT JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
41
- * ```
42
- * - When inner joining through a non-navigation-property relationship:
43
- * ```SQL
44
- * INNER JOIN [relationship_schema_name].[relationship_class_name] [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
45
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
46
- * ```
47
- * @public
48
- */
49
- export declare function createRelationshipPathJoinClause(props: CreateRelationshipPathJoinClauseProps): Promise<string>;
50
- export {};
51
- //# sourceMappingURL=ECSqlJoinSnippets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlJoinSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAM,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEnG;;;GAGG;AACH,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,KAAK,oBAAoB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAEvE;;;GAGG;AACH,UAAU,qCAAqC;IAC7C,cAAc,EAAE,gBAAgB,CAAC;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,qCAAqC,mBAsElG"}
@@ -1,140 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createRelationshipPathJoinClause = createRelationshipPathJoinClause;
8
- const Metadata_js_1 = require("../Metadata.js");
9
- const ECSqlValueSelectorSnippets_js_1 = require("./ECSqlValueSelectorSnippets.js");
10
- /**
11
- * Creates an ECSQL JOIN snippet for given relationships' path.
12
- *
13
- * Possible results:
14
- * - When the relationship is represented by a navigation property on either source or target:
15
- * ```SQL
16
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[navigation_property_name].[Id] = [source_alias].[ECInstanceId]
17
- * ```
18
- * - When outer joining through a non-navigation-property relationship:
19
- * ```SQL
20
- * LEFT JOIN (
21
- * SELECT [relationship_alias].*
22
- * FROM [relationship_schema_name].[relationship_class_name] [relationship_alias]
23
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
24
- * ) [relationship_alias]
25
- * LEFT JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
26
- * ```
27
- * - When inner joining through a non-navigation-property relationship:
28
- * ```SQL
29
- * INNER JOIN [relationship_schema_name].[relationship_class_name] [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
30
- * INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
31
- * ```
32
- * @public
33
- */
34
- async function createRelationshipPathJoinClause(props) {
35
- if (props.path.length === 0) {
36
- return "";
37
- }
38
- let prev = {
39
- alias: props.path[0].sourceAlias,
40
- joinPropertyName: "ECInstanceId",
41
- className: props.path[0].sourceClassName,
42
- };
43
- let clause = "";
44
- for (const stepDef of props.path) {
45
- const step = await getRelationshipPathStepClasses(props.schemaProvider, stepDef);
46
- const navigationProperty = await getNavigationProperty(step);
47
- if (navigationProperty) {
48
- const isNavigationPropertyForward = navigationProperty.direction === "Forward";
49
- const relationshipJoinPropertyNames = isNavigationPropertyForward === !step.relationshipReverse
50
- ? {
51
- this: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId"),
52
- next: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, navigationProperty.name, "Id"),
53
- }
54
- : {
55
- this: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, navigationProperty.name, "Id"),
56
- next: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName),
57
- };
58
- clause += `
59
- ${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
60
- ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}
61
- `;
62
- prev = {
63
- alias: step.targetAlias,
64
- className: step.target.fullName,
65
- joinPropertyName: "ECInstanceId",
66
- };
67
- }
68
- else {
69
- const relationshipJoinPropertyNames = !step.relationshipReverse
70
- ? { this: "SourceECInstanceId", next: "TargetECInstanceId" }
71
- : { this: "TargetECInstanceId", next: "SourceECInstanceId" };
72
- if (step.joinType === "outer") {
73
- clause += `
74
- ${getJoinClause("outer")} (
75
- SELECT [${step.relationshipAlias}].*
76
- FROM ${getClassSelectClause(step.relationship, step.relationshipAlias)}
77
- ${getJoinClause("inner")} ${getClassSelectClause(step.target, step.targetAlias)}
78
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")}
79
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.next)}
80
- ) [${step.relationshipAlias}]
81
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.this)}
82
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
83
- `;
84
- }
85
- else {
86
- clause += `
87
- ${getJoinClause("inner")} ${getClassSelectClause(step.relationship, step.relationshipAlias)}
88
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.this)}
89
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
90
- `;
91
- }
92
- clause += `
93
- ${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
94
- ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")}
95
- = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.next)}
96
- `;
97
- prev = {
98
- alias: step.targetAlias,
99
- className: step.target.fullName,
100
- joinPropertyName: "ECInstanceId",
101
- };
102
- }
103
- }
104
- return clause;
105
- }
106
- async function getRelationshipPathStepClasses(schemaProvider, step) {
107
- const { sourceClassName, relationshipName, targetClassName, ...rest } = step;
108
- return {
109
- ...rest,
110
- source: await (0, Metadata_js_1.getClass)(schemaProvider, sourceClassName),
111
- relationship: (await (0, Metadata_js_1.getClass)(schemaProvider, relationshipName)),
112
- target: await (0, Metadata_js_1.getClass)(schemaProvider, targetClassName),
113
- };
114
- }
115
- async function getNavigationProperty(step) {
116
- const source = !step.relationshipReverse ? step.source : step.target;
117
- const target = !step.relationshipReverse ? step.target : step.source;
118
- for (const prop of await source.getProperties()) {
119
- if (prop.isNavigation() && prop.direction === "Forward" && (await prop.relationshipClass).fullName === step.relationship.fullName) {
120
- return prop;
121
- }
122
- }
123
- for (const prop of await target.getProperties()) {
124
- if (prop.isNavigation() && prop.direction === "Backward" && (await prop.relationshipClass).fullName === step.relationship.fullName) {
125
- return prop;
126
- }
127
- }
128
- return undefined;
129
- }
130
- function getJoinClause(type) {
131
- if (type === "outer") {
132
- return "OUTER JOIN";
133
- }
134
- return "INNER JOIN";
135
- }
136
- function getClassSelectClause(ecClass, alias) {
137
- const classSelector = `[${ecClass.schema.name}].[${ecClass.name}]`;
138
- return `${classSelector} [${alias}]`;
139
- }
140
- //# sourceMappingURL=ECSqlJoinSnippets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ECSqlValueSelectorSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;GAGG;AACH,KAAK,gCAAgC,GAAG;IACtC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,CACA;IACE,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,gCAAgC,CAAC;AAEjG,cAAc;AAEd,yBAAiB,2BAA2B,CAAC;IAC3C,SAAgB,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,IAAI,mBAAmB,CAEjG;IACD,SAAgB,wBAAwB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,IAAI,gCAAgC,CAEtH;CACF;AAED;;;;GAIG;AACH,wBAAsB,yCAAyC,CAAC,EAC9D,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,EAAE;IACD,oCAAoC;IACpC,cAAc,EAAE,gBAAgB,CAAC;IACjC,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAsD5C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvH;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,UAqBhF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,UAIjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,UAMnH;AA2CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,UAMrH"}