@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,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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"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Defines a type for a logging function.
3
- * @public
4
- */
5
- export type LogFunction = (category: string, message: string) => void;
6
- /**
7
- * Defines logging severities.
8
- * @public
9
- */
10
- export type LogLevel = "error" | "warning" | "info" | "trace";
11
- /**
12
- * An interface for a logger used by presentation packages.
13
- * @public
14
- */
15
- export interface ILogger {
16
- isEnabled: (category: string, level: LogLevel) => boolean;
17
- logError: LogFunction;
18
- logWarning: LogFunction;
19
- logInfo: LogFunction;
20
- logTrace: LogFunction;
21
- }
22
- /**
23
- * A logger implementation that does nothing.
24
- * @public
25
- */
26
- export declare const NOOP_LOGGER: ILogger;
27
- //# sourceMappingURL=Logging.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logging.d.ts","sourceRoot":"","sources":["../../../src/shared/Logging.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC1D,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;GAGG;AAEH,eAAO,MAAM,WAAW,EAAE,OAMzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../../src/shared/Logging.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AA0BhG;;;GAGG;AACH,sBAAsB;AACtB,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;IACtB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;IACjB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * An utility `Omit` type which works with union types.
3
- * @public
4
- */
5
- export type OmitOverUnion<T, K extends PropertyKey> = T extends T ? Omit<T, K> : never;
6
- /**
7
- * An utility generic type to get array element's type.
8
- * @public
9
- */
10
- export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
11
- /**
12
- * Returns type of `TFunc` parameter, when `TFunc` accepts exactly one object argument
13
- * that can also be `undefined` / optional.
14
- * @public
15
- */
16
- export type Props<TFunc extends (...args: any[]) => any> = Parameters<TFunc> extends [infer TProps] ? Exclude<TProps, undefined> extends object ? TProps : never : Parameters<TFunc> extends [(infer TProps)?] ? Exclude<TProps, undefined> extends object ? TProps | undefined : never : never;
17
- //# sourceMappingURL=MappedTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MappedTypes.d.ts","sourceRoot":"","sources":["../../../src/shared/MappedTypes.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AAEvF;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,SAAS,OAAO,EAAE,IAAI,SAAS,SAAS,SAAS,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC;AAExI;;;;GAIG;AACH,MAAM,MAAM,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IACrD,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,GACvC,MAAM,GACN,KAAK,GACP,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,GACvC,MAAM,GAAG,SAAS,GAClB,KAAK,GACP,KAAK,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MappedTypes.js","sourceRoot":"","sources":["../../../src/shared/MappedTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
@@ -1,291 +0,0 @@
1
- /**
2
- * An interface for an object that knows how to get an ECSchema from an iModel.
3
- *
4
- * @see `createECSchemaProvider` in `@itwin/presentation-core-interop`.
5
- * @public
6
- */
7
- export interface ECSchemaProvider {
8
- getSchema(schemaName: string): Promise<EC.Schema | undefined>;
9
- }
10
- /**
11
- * An interface for a class hierarchy inspector that can be used to determine if one class derives from another.
12
- * @see `createCachingECClassHierarchyInspector`
13
- * @public
14
- */
15
- export interface ECClassHierarchyInspector {
16
- classDerivesFrom(derivedClassFullName: string, candidateBaseClassFullName: string): Promise<boolean> | boolean;
17
- }
18
- /**
19
- * Creates a new `ECClassHierarchyInspector` that caches results of `derivesFrom` calls.
20
- * @public
21
- */
22
- export declare function createCachingECClassHierarchyInspector(props: {
23
- /** Schema provider used to load schemas and their classes. */
24
- schemaProvider: ECSchemaProvider;
25
- /** Optional cache size, describing the number of derived/base class combinations to store in cache. Defaults to `0`, which means no caching. */
26
- cacheSize?: number;
27
- }): ECClassHierarchyInspector;
28
- /**
29
- * A namespace containing various [EC types](https://www.itwinjs.org/bis/ec/).
30
- * @public
31
- * @see `ECSchemaProvider`
32
- */
33
- export declare namespace EC {
34
- /**
35
- * Represents an ECSchema that contains classes, relationships, etc.
36
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/schema/
37
- * @public
38
- */
39
- interface Schema {
40
- name: string;
41
- getClass(name: string): Promise<Class | undefined>;
42
- getCustomAttributes(): Promise<CustomAttributeSet>;
43
- }
44
- /**
45
- * Represents an ECSchema item - a class, relationship, etc.
46
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/schemaitem/
47
- * @public
48
- */
49
- interface SchemaItem {
50
- schema: Schema;
51
- fullName: string;
52
- name: string;
53
- label?: string;
54
- }
55
- /**
56
- * Represents an ECClass.
57
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/ecclass/
58
- * @public
59
- */
60
- interface Class extends SchemaItem {
61
- baseClass: Promise<Class | undefined>;
62
- is(className: string, schemaName: string): Promise<boolean>;
63
- is(other: Class): Promise<boolean>;
64
- getProperty(name: string): Promise<Property | undefined>;
65
- getProperties(): Promise<Array<Property>>;
66
- isEntityClass(): this is EntityClass;
67
- isRelationshipClass(): this is RelationshipClass;
68
- isStructClass(): this is StructClass;
69
- isMixin(): this is Mixin;
70
- getDerivedClasses(): Promise<Class[]>;
71
- getCustomAttributes(): Promise<CustomAttributeSet>;
72
- }
73
- /**
74
- * Represents an entity class.
75
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/entityclass/
76
- * @public
77
- */
78
- type EntityClass = Class;
79
- /**
80
- * Represents a struct class.
81
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/structclass/
82
- * @public
83
- */
84
- type StructClass = Class;
85
- /**
86
- * Represents a mixin.
87
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/mixin/
88
- * @public
89
- */
90
- type Mixin = Class;
91
- /**
92
- * Represents a kind of quantity.
93
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/kindofquantity/
94
- * @public
95
- */
96
- type KindOfQuantity = SchemaItem;
97
- /**
98
- * Represents a relationship constraint multiplicity.
99
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/relationshipmultiplicity/
100
- * @public
101
- */
102
- interface RelationshipConstraintMultiplicity {
103
- lowerLimit: number;
104
- upperLimit: number;
105
- }
106
- /**
107
- * Represents a relationship constraint.
108
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/relationshipconstraint/
109
- * @public
110
- */
111
- interface RelationshipConstraint {
112
- multiplicity: RelationshipConstraintMultiplicity;
113
- polymorphic: boolean;
114
- abstractConstraint: Promise<EntityClass | Mixin | RelationshipClass | undefined>;
115
- }
116
- /**
117
- * Represents a relationship class.
118
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/relationshipclass/
119
- * @public
120
- */
121
- interface RelationshipClass extends Class {
122
- direction: "Forward" | "Backward";
123
- source: RelationshipConstraint;
124
- target: RelationshipConstraint;
125
- }
126
- /**
127
- * Represents an enumerator.
128
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/enumerator/
129
- * @public
130
- */
131
- interface Enumerator<T> {
132
- name: string;
133
- value: T;
134
- label?: string;
135
- description?: string;
136
- }
137
- /**
138
- * Represents an enumeration.
139
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/enumeration/
140
- * @public
141
- */
142
- interface Enumeration extends SchemaItem {
143
- enumerators: Array<Enumerator<string | number>>;
144
- type: "String" | "Number";
145
- isStrict: boolean;
146
- }
147
- /**
148
- * Represents a property.
149
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/property/
150
- * @public
151
- */
152
- interface Property {
153
- name: string;
154
- class: Class;
155
- label?: string;
156
- kindOfQuantity: Promise<KindOfQuantity | undefined>;
157
- isArray(): this is ArrayProperty;
158
- isStruct(): this is StructProperty;
159
- isPrimitive(): this is PrimitiveProperty;
160
- isEnumeration(): this is EnumerationProperty;
161
- isNavigation(): this is NavigationProperty;
162
- getCustomAttributes(): Promise<CustomAttributeSet>;
163
- }
164
- /**
165
- * Defines array property attributes.
166
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/arrayproperty/
167
- * @public
168
- */
169
- interface ArrayPropertyAttributes {
170
- minOccurs: number;
171
- maxOccurs?: number;
172
- }
173
- /**
174
- * Defines a structs array property.
175
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/structarrayproperty/
176
- * @public
177
- */
178
- type StructArrayProperty = StructProperty & ArrayPropertyAttributes;
179
- /**
180
- * Defines an enumerations array property.
181
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/enumerationarrayproperty/
182
- * @public
183
- */
184
- type EnumerationArrayProperty = EnumerationProperty & ArrayPropertyAttributes;
185
- /**
186
- * Defines a primitives array property.
187
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/primitivearrayproperty/
188
- * @public
189
- */
190
- type PrimitiveArrayProperty = PrimitiveProperty & ArrayPropertyAttributes;
191
- /**
192
- * Defines an array property.
193
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/anyarrayproperty/
194
- * @public
195
- */
196
- type ArrayProperty = StructArrayProperty | EnumerationArrayProperty | PrimitiveArrayProperty;
197
- /**
198
- * Defines a struct property.
199
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/structproperty/
200
- * @public
201
- */
202
- interface StructProperty extends Property {
203
- structClass: StructClass;
204
- }
205
- /**
206
- * Defines an enumeration property.
207
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/enumerationproperty/
208
- * @public
209
- */
210
- interface EnumerationProperty extends Property {
211
- enumeration: Promise<Enumeration | undefined>;
212
- extendedTypeName?: string;
213
- }
214
- /**
215
- * Defines a navigation property.
216
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/navigationproperty/
217
- * @public
218
- */
219
- interface NavigationProperty extends Property {
220
- relationshipClass: Promise<RelationshipClass>;
221
- direction: "Forward" | "Backward";
222
- }
223
- /**
224
- * Defines a primitive property type.
225
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/primitivetype/
226
- * @public
227
- */
228
- type PrimitiveType = "Binary" | "Boolean" | "DateTime" | "Double" | "Integer" | "Long" | "Point2d" | "Point3d" | "String" | "IGeometry";
229
- /**
230
- * Defines a primitive property.
231
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/primitiveproperty/
232
- * @public
233
- */
234
- interface PrimitiveProperty extends Property {
235
- primitiveType: PrimitiveType;
236
- extendedTypeName?: string;
237
- }
238
- /**
239
- * Defines a set of custom attributes that may be applied to a class or property.
240
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/customattribute/
241
- * @public
242
- */
243
- interface CustomAttributeSet {
244
- [Symbol.iterator]: () => IterableIterator<[string, CustomAttribute]>;
245
- get(className: string): CustomAttribute | undefined;
246
- }
247
- /**
248
- * Defines a custom attribute that may be applied to a class or property.
249
- * @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/customattribute/
250
- * @public
251
- */
252
- interface CustomAttribute {
253
- className: string;
254
- [propName: string]: any;
255
- }
256
- }
257
- /**
258
- * An identifiers' union of all supported primitive value types.
259
- * @public
260
- */
261
- export type PrimitiveValueType = "Id" | Exclude<EC.PrimitiveType, "Binary" | "IGeometry">;
262
- /**
263
- * Describes a single step through an ECRelationship from source ECClass to target ECClass.
264
- * @public
265
- */
266
- export interface RelationshipPathStep {
267
- /** Full name of the source ECClass */
268
- sourceClassName: string;
269
- /** Full name of the target ECClass */
270
- targetClassName: string;
271
- /** Full name of the ECRelationshipClass */
272
- relationshipName: string;
273
- /**
274
- * Indicates that the relationship direction be reversed. This should be set to `true` when step direction
275
- * doesn't match relationship direction, e.g. relationship is from source `A` to target `B` and the step
276
- * describes a step from `B` to `A`.
277
- */
278
- relationshipReverse?: boolean;
279
- }
280
- /**
281
- * Describes a path from source ECClass to target ECClass through multiple ECRelationships.
282
- * @public
283
- */
284
- export type RelationshipPath<TStep extends RelationshipPathStep = RelationshipPathStep> = TStep[];
285
- /**
286
- * Finds a class with the specified full class name using the given `ECSchemaProvider`.
287
- * @throws Error if the schema or class is not found.
288
- * @public
289
- */
290
- export declare function getClass(schemaProvider: ECSchemaProvider, fullClassName: string): Promise<EC.Class>;
291
- //# sourceMappingURL=Metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Metadata.d.ts","sourceRoot":"","sources":["../../../src/shared/Metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../../src/shared/Metadata.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAqBhD;;;GAGG;AACH,MAAM,UAAU,sCAAsC,CAAC,KAKtD;IACC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAqC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjF,SAAS,cAAc,CAAC,gBAAwB,EAAE,aAAqB;QACrE,OAAO,GAAG,gBAAgB,IAAI,aAAa,EAAE,CAAC;IAChD,CAAC;IACD,OAAO;QACL,gBAAgB,CAAC,oBAA4B,EAAE,0BAAkC;YAC/E,MAAM,QAAQ,GAAG,cAAc,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;YAClF,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAC3I,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE;oBAClC,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;oBACxD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;oBAClC,OAAO,cAAc,CAAC;gBACxB,CAAC,CACF,CAAC;gBACF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AA8RD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,cAAgC,EAAE,aAAqB;IACpF,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,0BAA0B,UAAU,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1,61 +0,0 @@
1
- /**
2
- * An utility to parse schema and class names from full class name, where
3
- * schema and class names are separated by either `:` or `.`.
4
- * @public
5
- */
6
- export declare function parseFullClassName(fullClassName: string): {
7
- schemaName: string;
8
- className: string;
9
- };
10
- /**
11
- * An utility to normalize full class name from either `SchemaName:ClassName` or
12
- * `SchemaName.ClassName` to always use the dot format.
13
- * @public
14
- */
15
- export declare function normalizeFullClassName(fullClassName: string): string;
16
- /**
17
- * An utility that compares two full class names in a case insensitive way, ignoring different
18
- * supported schema-class name separators (`.` or `:`).
19
- * @public
20
- */
21
- export declare function compareFullClassNames(lhs: string, rhs: string): number;
22
- /**
23
- * An utility to remove all extra whitespace from a given string.
24
- * @public
25
- */
26
- export declare function trimWhitespace(str: string): string;
27
- /**
28
- * An utility to remove all extra whitespace from a given string.
29
- * @public
30
- */
31
- export declare function trimWhitespace(str: string | undefined): string | undefined;
32
- /**
33
- * An utility that returns a promise that immediately resolves. Awaiting on the returned
34
- * promise releases the main thread and allows other tasks to run.
35
- *
36
- * @public
37
- */
38
- export declare function releaseMainThread(): Promise<void>;
39
- /**
40
- * An utility that returns a `releaseMainThread` promise if the given amount of time has passed since the handler
41
- * was created or the main thread was last released using this handler. Otherwise, returns `undefined`.
42
- *
43
- * Example:
44
- * ```ts
45
- * const releaseMainThread = createMainThreadReleaseOnTimePassedHandler();
46
- * for (const value of someVeryLargeArray) {
47
- * await releaseMainThread();
48
- * // do something with value
49
- * }
50
- * ```
51
- *
52
- * @param releaseOnTimePassed The amount of time in milliseconds after which the main thread should be released. Defaults to `40` ms.
53
- * @public
54
- */
55
- export declare function createMainThreadReleaseOnTimePassedHandler(releaseOnTimePassed?: number): () => Promise<void> | undefined;
56
- /**
57
- * An utility to convert a julian day format to `Date`.
58
- * @public
59
- */
60
- export declare function julianToDateTime(julianDate: number): Date;
61
- //# sourceMappingURL=Utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../src/shared/Utils.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM;;;EAIvD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CASpE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUtE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AACpD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAe5E;;;;;GAKG;AACH,wBAAsB,iBAAiB,kBAEtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0CAA0C,CAAC,mBAAmB,SAAK,SAEtE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CASrC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAGzD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/shared/Utils.ts"],"names":[],"mappings":"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"}