@itwin/presentation-shared 0.1.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 (124) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE.md +9 -0
  3. package/README.md +434 -0
  4. package/lib/cjs/presentation-shared.d.ts +13 -0
  5. package/lib/cjs/presentation-shared.d.ts.map +1 -0
  6. package/lib/cjs/presentation-shared.js +58 -0
  7. package/lib/cjs/presentation-shared.js.map +1 -0
  8. package/lib/cjs/shared/ConcatenatedValue.d.ts +47 -0
  9. package/lib/cjs/shared/ConcatenatedValue.d.ts.map +1 -0
  10. package/lib/cjs/shared/ConcatenatedValue.js +45 -0
  11. package/lib/cjs/shared/ConcatenatedValue.js.map +1 -0
  12. package/lib/cjs/shared/ECSqlCore.d.ts +91 -0
  13. package/lib/cjs/shared/ECSqlCore.d.ts.map +1 -0
  14. package/lib/cjs/shared/ECSqlCore.js +7 -0
  15. package/lib/cjs/shared/ECSqlCore.js.map +1 -0
  16. package/lib/cjs/shared/Event.d.ts +9 -0
  17. package/lib/cjs/shared/Event.d.ts.map +1 -0
  18. package/lib/cjs/shared/Event.js +7 -0
  19. package/lib/cjs/shared/Event.js.map +1 -0
  20. package/lib/cjs/shared/Formatting.d.ts +39 -0
  21. package/lib/cjs/shared/Formatting.d.ts.map +1 -0
  22. package/lib/cjs/shared/Formatting.js +132 -0
  23. package/lib/cjs/shared/Formatting.js.map +1 -0
  24. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +129 -0
  25. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  26. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +167 -0
  27. package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  28. package/lib/cjs/shared/InternalUtils.d.ts +3 -0
  29. package/lib/cjs/shared/InternalUtils.d.ts.map +1 -0
  30. package/lib/cjs/shared/InternalUtils.js +14 -0
  31. package/lib/cjs/shared/InternalUtils.js.map +1 -0
  32. package/lib/cjs/shared/Logging.d.ts +27 -0
  33. package/lib/cjs/shared/Logging.d.ts.map +1 -0
  34. package/lib/cjs/shared/Logging.js +20 -0
  35. package/lib/cjs/shared/Logging.js.map +1 -0
  36. package/lib/cjs/shared/MappedTypes.d.ts +11 -0
  37. package/lib/cjs/shared/MappedTypes.d.ts.map +1 -0
  38. package/lib/cjs/shared/MappedTypes.js +7 -0
  39. package/lib/cjs/shared/MappedTypes.js.map +1 -0
  40. package/lib/cjs/shared/Metadata.d.ts +268 -0
  41. package/lib/cjs/shared/Metadata.d.ts.map +1 -0
  42. package/lib/cjs/shared/Metadata.js +54 -0
  43. package/lib/cjs/shared/Metadata.js.map +1 -0
  44. package/lib/cjs/shared/Utils.d.ts +26 -0
  45. package/lib/cjs/shared/Utils.d.ts.map +1 -0
  46. package/lib/cjs/shared/Utils.js +50 -0
  47. package/lib/cjs/shared/Utils.js.map +1 -0
  48. package/lib/cjs/shared/Values.d.ts +119 -0
  49. package/lib/cjs/shared/Values.d.ts.map +1 -0
  50. package/lib/cjs/shared/Values.js +156 -0
  51. package/lib/cjs/shared/Values.js.map +1 -0
  52. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +48 -0
  53. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  54. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +139 -0
  55. package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  56. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +116 -0
  57. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  58. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +244 -0
  59. package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  60. package/lib/cjs/shared/ecsql-snippets/index.d.ts +3 -0
  61. package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +1 -0
  62. package/lib/cjs/shared/ecsql-snippets/index.js +16 -0
  63. package/lib/cjs/shared/ecsql-snippets/index.js.map +1 -0
  64. package/lib/esm/presentation-shared.d.ts +13 -0
  65. package/lib/esm/presentation-shared.d.ts.map +1 -0
  66. package/lib/esm/presentation-shared.js +15 -0
  67. package/lib/esm/presentation-shared.js.map +1 -0
  68. package/lib/esm/shared/ConcatenatedValue.d.ts +47 -0
  69. package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -0
  70. package/lib/esm/shared/ConcatenatedValue.js +42 -0
  71. package/lib/esm/shared/ConcatenatedValue.js.map +1 -0
  72. package/lib/esm/shared/ECSqlCore.d.ts +91 -0
  73. package/lib/esm/shared/ECSqlCore.d.ts.map +1 -0
  74. package/lib/esm/shared/ECSqlCore.js +6 -0
  75. package/lib/esm/shared/ECSqlCore.js.map +1 -0
  76. package/lib/esm/shared/Event.d.ts +9 -0
  77. package/lib/esm/shared/Event.d.ts.map +1 -0
  78. package/lib/esm/shared/Event.js +6 -0
  79. package/lib/esm/shared/Event.js.map +1 -0
  80. package/lib/esm/shared/Formatting.d.ts +39 -0
  81. package/lib/esm/shared/Formatting.d.ts.map +1 -0
  82. package/lib/esm/shared/Formatting.js +127 -0
  83. package/lib/esm/shared/Formatting.js.map +1 -0
  84. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +129 -0
  85. package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
  86. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +160 -0
  87. package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
  88. package/lib/esm/shared/InternalUtils.d.ts +3 -0
  89. package/lib/esm/shared/InternalUtils.d.ts.map +1 -0
  90. package/lib/esm/shared/InternalUtils.js +10 -0
  91. package/lib/esm/shared/InternalUtils.js.map +1 -0
  92. package/lib/esm/shared/Logging.d.ts +27 -0
  93. package/lib/esm/shared/Logging.d.ts.map +1 -0
  94. package/lib/esm/shared/Logging.js +17 -0
  95. package/lib/esm/shared/Logging.js.map +1 -0
  96. package/lib/esm/shared/MappedTypes.d.ts +11 -0
  97. package/lib/esm/shared/MappedTypes.d.ts.map +1 -0
  98. package/lib/esm/shared/MappedTypes.js +6 -0
  99. package/lib/esm/shared/MappedTypes.js.map +1 -0
  100. package/lib/esm/shared/Metadata.d.ts +268 -0
  101. package/lib/esm/shared/Metadata.d.ts.map +1 -0
  102. package/lib/esm/shared/Metadata.js +49 -0
  103. package/lib/esm/shared/Metadata.js.map +1 -0
  104. package/lib/esm/shared/Utils.d.ts +26 -0
  105. package/lib/esm/shared/Utils.d.ts.map +1 -0
  106. package/lib/esm/shared/Utils.js +44 -0
  107. package/lib/esm/shared/Utils.js.map +1 -0
  108. package/lib/esm/shared/Values.d.ts +119 -0
  109. package/lib/esm/shared/Values.d.ts.map +1 -0
  110. package/lib/esm/shared/Values.js +153 -0
  111. package/lib/esm/shared/Values.js.map +1 -0
  112. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +48 -0
  113. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
  114. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +135 -0
  115. package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
  116. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +116 -0
  117. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
  118. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +236 -0
  119. package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
  120. package/lib/esm/shared/ecsql-snippets/index.d.ts +3 -0
  121. package/lib/esm/shared/ecsql-snippets/index.d.ts.map +1 -0
  122. package/lib/esm/shared/ecsql-snippets/index.js +7 -0
  123. package/lib/esm/shared/ecsql-snippets/index.js.map +1 -0
  124. package/package.json +59 -0
@@ -0,0 +1,244 @@
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.createConcatenatedValueStringSelector = exports.createConcatenatedValueJsonSelector = exports.createNullableSelector = exports.createRawPrimitiveValueSelector = exports.createRawPropertyValueSelector = exports.TypedValueSelectClauseProps = void 0;
8
+ const core_bentley_1 = require("@itwin/core-bentley");
9
+ const Values_1 = require("../Values");
10
+ /** @internal */
11
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
12
+ var TypedValueSelectClauseProps;
13
+ (function (TypedValueSelectClauseProps) {
14
+ /** @internal */
15
+ function isPropertySelector(props) {
16
+ return !!props.propertyName;
17
+ }
18
+ TypedValueSelectClauseProps.isPropertySelector = isPropertySelector;
19
+ /** @internal */
20
+ function isPrimitiveValue(props) {
21
+ return !!props.value;
22
+ }
23
+ TypedValueSelectClauseProps.isPrimitiveValue = isPrimitiveValue;
24
+ /** @internal */
25
+ function isPrimitiveValueSelector(props) {
26
+ return !!props.selector;
27
+ }
28
+ TypedValueSelectClauseProps.isPrimitiveValueSelector = isPrimitiveValueSelector;
29
+ })(TypedValueSelectClauseProps || (exports.TypedValueSelectClauseProps = TypedValueSelectClauseProps = {}));
30
+ /**
31
+ * Creates an ECSQL selector for raw property value, or, optionally - it's component. Example result:
32
+ * `[classAlias].[propertyName].[componentName]`.
33
+ *
34
+ * @beta
35
+ */
36
+ function createRawPropertyValueSelector(classAlias, propertyName, componentName) {
37
+ let propertySelector = `[${classAlias}].[${propertyName}]`;
38
+ if (componentName) {
39
+ propertySelector += `.[${componentName}]`;
40
+ }
41
+ return propertySelector;
42
+ }
43
+ exports.createRawPropertyValueSelector = createRawPropertyValueSelector;
44
+ /**
45
+ * Creates an ECSQL selector for a raw primitive value.
46
+ * - `undefined` is selected as `NULL`.
47
+ * - `Date` values are selected in julian day format.
48
+ * - `Point2d` and `Point3d` values are selected as serialized JSON objects, e.g. `{ x: 1, y: 2, z: 3 }`.
49
+ * - Other kinds of values are selected as-is.
50
+ *
51
+ * @beta
52
+ */
53
+ function createRawPrimitiveValueSelector(value) {
54
+ if (value === undefined) {
55
+ return "NULL";
56
+ }
57
+ if (value instanceof Date) {
58
+ return `julianday('${value.toISOString()}')`;
59
+ }
60
+ if (Values_1.PrimitiveValue.isPoint3d(value)) {
61
+ return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
62
+ }
63
+ if (Values_1.PrimitiveValue.isPoint2d(value)) {
64
+ return `json_object('x', ${value.x}, 'y', ${value.y})`;
65
+ }
66
+ switch (typeof value) {
67
+ case "string":
68
+ return core_bentley_1.Id64.isId64(value) ? value : `'${value}'`;
69
+ case "number":
70
+ return value.toString();
71
+ case "boolean":
72
+ return value ? "TRUE" : "FALSE";
73
+ }
74
+ }
75
+ exports.createRawPrimitiveValueSelector = createRawPrimitiveValueSelector;
76
+ /**
77
+ * Creates a clause for returning `NULL` when `checkSelector` returns a falsy value, or result of `valueSelector`
78
+ * otherwise. Example result: `IIF(CHECK_SELECTOR, VALUE_SELECTOR, NULL)`.
79
+ *
80
+ * @note In SQL `NULL` is not considered falsy, so when checking for `NULL` values, the `checkSelector` should
81
+ * be like `{selector} IS NOT NULL` rather than just `${selector}`.
82
+ *
83
+ * @beta
84
+ */
85
+ function createNullableSelector(props) {
86
+ return `IIF(${props.checkSelector}, ${props.valueSelector}, NULL)`;
87
+ }
88
+ exports.createNullableSelector = createNullableSelector;
89
+ /**
90
+ * Create an ECSQL selector combined of multiple typed value selectors in a form of a JSON array. This allows handling results
91
+ * of each value selector individually when parsing query result.
92
+ *
93
+ * Example result: `json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...)`.
94
+ *
95
+ * Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
96
+ * `NULL` result when the argument selector results in `NULL`. Example result with `checkSelector`:
97
+ * `IIF(CHECK_SELECTOR, json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...), NULL)`.
98
+ *
99
+ * @note The resulting JSON is of `ConcatenatedValue` type and it's recommended to use `ConcatenatedValue.serialize` to
100
+ * handle each individual part.
101
+ *
102
+ * @see `ConcatenatedValue`
103
+ *
104
+ * @beta
105
+ */
106
+ function createConcatenatedValueJsonSelector(selectors, checkSelector) {
107
+ const combinedSelectors = `json_array(${selectors.map((sel) => createTypedValueJsonSelector(sel)).join(", ")})`;
108
+ if (checkSelector) {
109
+ return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
110
+ }
111
+ return combinedSelectors;
112
+ }
113
+ exports.createConcatenatedValueJsonSelector = createConcatenatedValueJsonSelector;
114
+ function createTypedValueJsonSelector(props) {
115
+ if (TypedValueSelectClauseProps.isPropertySelector(props)) {
116
+ if (props.specialType) {
117
+ // eslint-disable-next-line @typescript-eslint/no-shadow
118
+ const [valueSelector, typeOverride] = createSpecialPropertyValueJsonSelector(props.propertyClassAlias, props.propertyName, props.specialType);
119
+ return createTypedValueJsonSelector({ selector: valueSelector, type: typeOverride });
120
+ }
121
+ return `
122
+ json_object(
123
+ 'className', '${props.propertyClassName}',
124
+ 'propertyName', '${props.propertyName}',
125
+ 'value', ${createRawPropertyValueSelector(props.propertyClassAlias, props.propertyName)}
126
+ )
127
+ `;
128
+ }
129
+ if (TypedValueSelectClauseProps.isPrimitiveValueSelector(props)) {
130
+ if (props.type) {
131
+ return `
132
+ json_object(
133
+ 'value', ${props.selector},
134
+ 'type', '${props.type}'
135
+ )
136
+ `;
137
+ }
138
+ return props.selector;
139
+ }
140
+ return `
141
+ json_object(
142
+ 'value', ${createPrimitiveValueJsonSelector(props.value)},
143
+ 'type', '${props.type}'
144
+ )
145
+ `;
146
+ }
147
+ function createSpecialPropertyValueJsonSelector(classAlias, propertyName, specialType) {
148
+ const propertySelector = `[${classAlias}].[${propertyName}]`;
149
+ switch (specialType) {
150
+ case "Navigation":
151
+ return [`${propertySelector}.[Id]`, "Id"];
152
+ case "Guid":
153
+ return [`GuidToStr(${propertySelector})`, "String"];
154
+ case "Point2d":
155
+ return [`json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y])`, "Point2d"];
156
+ case "Point3d":
157
+ return [`json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y], 'z', ${propertySelector}.[z])`, "Point3d"];
158
+ }
159
+ }
160
+ function createPrimitiveValueJsonSelector(value) {
161
+ if (value instanceof Date) {
162
+ return `'${value.toISOString()}'`;
163
+ }
164
+ if (Values_1.PrimitiveValue.isPoint3d(value)) {
165
+ return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
166
+ }
167
+ if (Values_1.PrimitiveValue.isPoint2d(value)) {
168
+ return `json_object('x', ${value.x}, 'y', ${value.y})`;
169
+ }
170
+ switch (typeof value) {
171
+ case "string":
172
+ return core_bentley_1.Id64.isId64(value) ? value : `'${value}'`;
173
+ case "number":
174
+ return value.toString();
175
+ case "boolean":
176
+ return value ? "TRUE" : "FALSE";
177
+ }
178
+ }
179
+ /**
180
+ * Create an ECSQL selector combined of multiple typed value selectors in a form of a string.
181
+ *
182
+ * Example result: `VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ...`.
183
+ *
184
+ * Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
185
+ * `NULL` result when `checkSelector` results in a falsy value. Example result with `checkSelector`:
186
+ * `IIF(CHECK_SELECTOR, VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ..., NULL)`.
187
+ *
188
+ * @note Not all types of `TypedValueSelectClauseProps` can be serialized to a user-friendly string, e.g. when
189
+ * selecting a numeric value with units, this function is going to select the raw value. To create properly formatted
190
+ * concatenated values:
191
+ * 1. They should be selected with `createConcatenatedValueJsonSelector`, which returns a serialized JSON object.
192
+ * 2. The JSON should be parsed from resulting string and passed to `ConcatenatedValue.serialize`, which additionally
193
+ * takes a formatter. One can be created using `createDefaultValueFormatter`.
194
+ *
195
+ * @beta
196
+ */
197
+ function createConcatenatedValueStringSelector(selectors, checkSelector) {
198
+ const combinedSelectors = selectors.length ? selectors.map((sel) => createTypedValueStringSelector(sel)).join(" || ") : "''";
199
+ if (checkSelector) {
200
+ return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
201
+ }
202
+ return combinedSelectors;
203
+ }
204
+ exports.createConcatenatedValueStringSelector = createConcatenatedValueStringSelector;
205
+ function createTypedValueStringSelector(props) {
206
+ if (TypedValueSelectClauseProps.isPropertySelector(props)) {
207
+ if (props.specialType) {
208
+ // eslint-disable-next-line @typescript-eslint/no-shadow
209
+ const [valueSelector, typeOverride] = createSpecialPropertyValueStringSelector(props.propertyClassAlias, props.propertyName, props.specialType);
210
+ return createTypedValueStringSelector({ selector: valueSelector, type: typeOverride });
211
+ }
212
+ return createRawPropertyValueSelector(props.propertyClassAlias, props.propertyName);
213
+ }
214
+ if (TypedValueSelectClauseProps.isPrimitiveValueSelector(props)) {
215
+ return props.selector;
216
+ }
217
+ return createPrimitiveValueStringSelector(props.value);
218
+ }
219
+ function createSpecialPropertyValueStringSelector(classAlias, propertyName, specialType) {
220
+ const propertySelector = createRawPropertyValueSelector(classAlias, propertyName);
221
+ switch (specialType) {
222
+ case "Navigation":
223
+ return [`CAST(${propertySelector}.[Id] AS TEXT)`, "Id"];
224
+ case "Guid":
225
+ return [`GuidToStr(${propertySelector})`, "String"];
226
+ case "Point2d":
227
+ return [`'(' || ${propertySelector}.[x] || ', ' || ${propertySelector}.[y] || ')'`, "Point2d"];
228
+ case "Point3d":
229
+ return [`'(' || ${propertySelector}.[x] || ', ' || ${propertySelector}.[y] || ', ' || ${propertySelector}.[z] || ')'`, "Point3d"];
230
+ }
231
+ }
232
+ function createPrimitiveValueStringSelector(value) {
233
+ if (value instanceof Date) {
234
+ return `'${value.toLocaleString()}'`;
235
+ }
236
+ if (Values_1.PrimitiveValue.isPoint3d(value)) {
237
+ return `'(${value.x}, ${value.y}, ${value.z})'`;
238
+ }
239
+ if (Values_1.PrimitiveValue.isPoint2d(value)) {
240
+ return `'(${value.x}, ${value.y})'`;
241
+ }
242
+ return `'${value.toString()}'`;
243
+ }
244
+ //# sourceMappingURL=ECSqlValueSelectorSnippets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECSqlValueSelectorSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createRawPropertyValueSelector, createRawPrimitiveValueSelector, createNullableSelector, createConcatenatedValueJsonSelector, createConcatenatedValueStringSelector, } from "./ECSqlValueSelectorSnippets";
2
+ export { createRelationshipPathJoinClause } from "./ECSqlJoinSnippets";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,GACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
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.createConcatenatedValueStringSelector = exports.createConcatenatedValueJsonSelector = exports.createNullableSelector = exports.createRawPrimitiveValueSelector = exports.createRawPropertyValueSelector = void 0;
8
+ var ECSqlValueSelectorSnippets_1 = require("./ECSqlValueSelectorSnippets");
9
+ Object.defineProperty(exports, "createRawPropertyValueSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector; } });
10
+ Object.defineProperty(exports, "createRawPrimitiveValueSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_1.createRawPrimitiveValueSelector; } });
11
+ Object.defineProperty(exports, "createNullableSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_1.createNullableSelector; } });
12
+ Object.defineProperty(exports, "createConcatenatedValueJsonSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_1.createConcatenatedValueJsonSelector; } });
13
+ Object.defineProperty(exports, "createConcatenatedValueStringSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_1.createConcatenatedValueStringSelector; } });
14
+ var ECSqlJoinSnippets_1 = require("./ECSqlJoinSnippets");
15
+ Object.defineProperty(exports, "createRelationshipPathJoinClause", { enumerable: true, get: function () { return ECSqlJoinSnippets_1.createRelationshipPathJoinClause; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,2EAMsC;AALpC,4IAAA,8BAA8B,OAAA;AAC9B,6IAAA,+BAA+B,OAAA;AAC/B,oIAAA,sBAAsB,OAAA;AACtB,iJAAA,mCAAmC,OAAA;AACnC,mJAAA,qCAAqC,OAAA;AAEvC,yDAAuE;AAA9D,qIAAA,gCAAgC,OAAA"}
@@ -0,0 +1,13 @@
1
+ import * as ECSql from "./shared/ecsql-snippets";
2
+ export { ECSql };
3
+ export { ConcatenatedValue, ConcatenatedValuePart } from "./shared/ConcatenatedValue";
4
+ export { ECSqlBinding, ECSqlQueryDef, ECSqlQueryExecutor, ECSqlQueryReaderOptions, ECSqlQueryRow } from "./shared/ECSqlCore";
5
+ export { createDefaultValueFormatter, formatConcatenatedValue, IPrimitiveValueFormatter } from "./shared/Formatting";
6
+ export { IInstanceLabelSelectClauseFactory, createDefaultInstanceLabelSelectClauseFactory, createClassBasedInstanceLabelSelectClauseFactory, createBisInstanceLabelSelectClauseFactory, parseInstanceLabel, } from "./shared/InstanceLabelSelectClauseFactory";
7
+ export { ILogger, NOOP_LOGGER, LogFunction, LogLevel } from "./shared/Logging";
8
+ export { ArrayElement, OmitOverUnion } from "./shared/MappedTypes";
9
+ export { createCachingECClassHierarchyInspector, EC, getClass, ECClassHierarchyInspector, ECSchemaProvider } from "./shared/Metadata";
10
+ export { normalizeFullClassName, parseFullClassName, trimWhitespace } from "./shared/Utils";
11
+ export { InstanceKey, PrimitiveValue, TypedPrimitiveValue } from "./shared/Values";
12
+ export { Event } from "./shared/Event";
13
+ //# sourceMappingURL=presentation-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation-shared.d.ts","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACrH,OAAO,EACL,iCAAiC,EACjC,6CAA6C,EAC7C,gDAAgD,EAChD,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,sCAAsC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtI,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,15 @@
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
+ // eslint-disable-next-line @itwin/no-internal-barrel-imports
6
+ import * as ECSql from "./shared/ecsql-snippets";
7
+ export { ECSql };
8
+ export { ConcatenatedValue, ConcatenatedValuePart } from "./shared/ConcatenatedValue";
9
+ export { createDefaultValueFormatter, formatConcatenatedValue } from "./shared/Formatting";
10
+ export { createDefaultInstanceLabelSelectClauseFactory, createClassBasedInstanceLabelSelectClauseFactory, createBisInstanceLabelSelectClauseFactory, parseInstanceLabel, } from "./shared/InstanceLabelSelectClauseFactory";
11
+ export { NOOP_LOGGER } from "./shared/Logging";
12
+ export { createCachingECClassHierarchyInspector, getClass } from "./shared/Metadata";
13
+ export { normalizeFullClassName, parseFullClassName, trimWhitespace } from "./shared/Utils";
14
+ export { InstanceKey, PrimitiveValue, TypedPrimitiveValue } from "./shared/Values";
15
+ //# sourceMappingURL=presentation-shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation-shared.js","sourceRoot":"","sources":["../../src/presentation-shared.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,6DAA6D;AAC7D,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAA4B,MAAM,qBAAqB,CAAC;AACrH,OAAO,EAEL,6CAA6C,EAC7C,gDAAgD,EAChD,yCAAyC,EACzC,kBAAkB,GACnB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAW,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,sCAAsC,EAAM,QAAQ,EAA+C,MAAM,mBAAmB,CAAC;AACtI,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { PrimitivePropertyValue, TypedPrimitiveValue } from "./Values";
2
+ /**
3
+ * A part of a `ConcatenatedValue`, describing one piece of the value. Possible types:
4
+ * - `PrimitivePropertyValue` describes an ECProperty value. Generally the value is formatted according to
5
+ * property metadata before concatenating with other parts.
6
+ * - `TypedPrimitiveValue` describes a value with its type. Generally the value is formatted
7
+ * according to its type information before concatenating with other parts.
8
+ * - `string` is just concatenated to other parts as-is.
9
+ *
10
+ * @see `ConcatenatedValue`
11
+ * @beta
12
+ */
13
+ export type ConcatenatedValuePart = PrimitivePropertyValue | TypedPrimitiveValue | string;
14
+ /** @beta */
15
+ export declare namespace ConcatenatedValuePart {
16
+ /** @beta */
17
+ function isString(part: ConcatenatedValuePart): part is string;
18
+ /** @beta */
19
+ function isPrimitive(part: ConcatenatedValuePart): part is TypedPrimitiveValue;
20
+ /** @beta */
21
+ function isProperty(part: ConcatenatedValuePart): part is PrimitivePropertyValue;
22
+ }
23
+ /**
24
+ * A data structure that contains `ConcatenatedValuePart` objects describing
25
+ * pieces that may be formatted and concatenated together.
26
+ *
27
+ * @beta
28
+ */
29
+ export type ConcatenatedValue = ConcatenatedValuePart[];
30
+ /** @beta */
31
+ export declare namespace ConcatenatedValue {
32
+ /**
33
+ * Serialize given `ConcatenatedValue` to string using a formatter function. The parts are
34
+ * each formatted individually and then joined together.
35
+ *
36
+ * @beta
37
+ */
38
+ function serialize(props: {
39
+ /** The parts to join. */
40
+ parts: ConcatenatedValue;
41
+ /** Parts formatter to convert each part to string */
42
+ partFormatter: (part: ConcatenatedValuePart) => Promise<string>;
43
+ /** Optional separator for joining the parts. Defaults to an empty string. */
44
+ separator?: string;
45
+ }): Promise<string>;
46
+ }
47
+ //# sourceMappingURL=ConcatenatedValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcatenatedValue.d.ts","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEvE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE1F,YAAY;AAEZ,yBAAiB,qBAAqB,CAAC;IACrC,YAAY;IACZ,SAAgB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,MAAM,CAEpE;IAED,YAAY;IACZ,SAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,mBAAmB,CAEpF;IAED,YAAY;IACZ,SAAgB,UAAU,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,sBAAsB,CAGtF;CACF;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,CAAC;AAExD,YAAY;AAEZ,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,qBAAqB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,6EAA6E;QAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlB;CACF"}
@@ -0,0 +1,42 @@
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
+ /** @beta */
6
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
7
+ export var ConcatenatedValuePart;
8
+ (function (ConcatenatedValuePart) {
9
+ /** @beta */
10
+ function isString(part) {
11
+ return typeof part === "string";
12
+ }
13
+ ConcatenatedValuePart.isString = isString;
14
+ /** @beta */
15
+ function isPrimitive(part) {
16
+ return !!part.type;
17
+ }
18
+ ConcatenatedValuePart.isPrimitive = isPrimitive;
19
+ /** @beta */
20
+ function isProperty(part) {
21
+ const candidate = part;
22
+ return !!candidate.className && !!candidate.propertyName;
23
+ }
24
+ ConcatenatedValuePart.isProperty = isProperty;
25
+ })(ConcatenatedValuePart || (ConcatenatedValuePart = {}));
26
+ /** @beta */
27
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
28
+ export var ConcatenatedValue;
29
+ (function (ConcatenatedValue) {
30
+ /**
31
+ * Serialize given `ConcatenatedValue` to string using a formatter function. The parts are
32
+ * each formatted individually and then joined together.
33
+ *
34
+ * @beta
35
+ */
36
+ async function serialize(props) {
37
+ const { parts, partFormatter } = props;
38
+ return (await Promise.all(parts.map(partFormatter))).join(props.separator ?? "");
39
+ }
40
+ ConcatenatedValue.serialize = serialize;
41
+ })(ConcatenatedValue || (ConcatenatedValue = {}));
42
+ //# sourceMappingURL=ConcatenatedValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcatenatedValue.js","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAiBhG,YAAY;AACZ,2DAA2D;AAC3D,MAAM,KAAW,qBAAqB,CAgBrC;AAhBD,WAAiB,qBAAqB;IACpC,YAAY;IACZ,SAAgB,QAAQ,CAAC,IAA2B;QAClD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;IAClC,CAAC;IAFe,8BAAQ,WAEvB,CAAA;IAED,YAAY;IACZ,SAAgB,WAAW,CAAC,IAA2B;QACrD,OAAO,CAAC,CAAE,IAA4B,CAAC,IAAI,CAAC;IAC9C,CAAC;IAFe,iCAAW,cAE1B,CAAA;IAED,YAAY;IACZ,SAAgB,UAAU,CAAC,IAA2B;QACpD,MAAM,SAAS,GAAG,IAA8B,CAAC;QACjD,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;IAC3D,CAAC;IAHe,gCAAU,aAGzB,CAAA;AACH,CAAC,EAhBgB,qBAAqB,KAArB,qBAAqB,QAgBrC;AAUD,YAAY;AACZ,2DAA2D;AAC3D,MAAM,KAAW,iBAAiB,CAkBjC;AAlBD,WAAiB,iBAAiB;IAChC;;;;;OAKG;IACI,KAAK,UAAU,SAAS,CAAC,KAO/B;QACC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QACvC,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IAVqB,2BAAS,YAU9B,CAAA;AACH,CAAC,EAlBgB,iBAAiB,KAAjB,iBAAiB,QAkBjC"}
@@ -0,0 +1,91 @@
1
+ import { 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
+ * @beta
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
+ * @beta
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
+ */
59
+ type ECSqlQueryRowFormat = "ECSqlPropertyNames" | "Indexes";
60
+ /**
61
+ * Defines options for ECSQL query reader.
62
+ * @see [QueryOptions](https://www.itwinjs.org/reference/core-common/imodels/queryoptions/)
63
+ * @beta
64
+ */
65
+ export interface ECSqlQueryReaderOptions {
66
+ rowFormat?: ECSqlQueryRowFormat;
67
+ }
68
+ /**
69
+ * Represents a single row of an ECSQL query result.
70
+ * @see [QueryRowProxy](https://www.itwinjs.org/reference/core-common/imodels/queryrowproxy/)
71
+ * @beta
72
+ */
73
+ export interface ECSqlQueryRow {
74
+ [propertyName: string]: any;
75
+ [propertyIndex: number]: any;
76
+ }
77
+ /**
78
+ * Represents ECSQL query results reader.
79
+ * @see [ECSqlReader](https://www.itwinjs.org/reference/core-common/imodels/ecsqlreader/)
80
+ */
81
+ type ECSqlQueryReader = AsyncIterableIterator<ECSqlQueryRow>;
82
+ /**
83
+ * An interface for something that knows how to create an ECSQL query reader.
84
+ * @see `createECSqlQueryExecutor` in `@itwin/presentation-core-interop`.
85
+ * @beta
86
+ */
87
+ export interface ECSqlQueryExecutor {
88
+ createQueryReader(query: ECSqlQueryDef, config?: ECSqlQueryReaderOptions): ECSqlQueryReader;
89
+ }
90
+ export {};
91
+ //# sourceMappingURL=ECSqlCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECSqlCore.d.ts","sourceRoot":"","sources":["../../../src/shared/ECSqlCore.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;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;;;GAGG;AACH,KAAK,mBAAmB,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,CAAC;IAC5B,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC;CAC9B;AAED;;;GAGG;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"}
@@ -0,0 +1,6 @@
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
+ export {};
6
+ //# sourceMappingURL=ECSqlCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECSqlCore.js","sourceRoot":"","sources":["../../../src/shared/ECSqlCore.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * An interface that allows subscribing and unsubscribing listeners that are called upon an event.
3
+ * @beta
4
+ */
5
+ export interface Event<TListener extends (...args: any[]) => void = () => void> {
6
+ addListener(listener: TListener): () => void;
7
+ removeListener(listener: TListener): void;
8
+ }
9
+ //# sourceMappingURL=Event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Event.d.ts","sourceRoot":"","sources":["../../../src/shared/Event.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,WAAW,KAAK,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAC5E,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,IAAI,CAAC;IAC7C,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3C"}
@@ -0,0 +1,6 @@
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
+ export {};
6
+ //# sourceMappingURL=Event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Event.js","sourceRoot":"","sources":["../../../src/shared/Event.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
@@ -0,0 +1,39 @@
1
+ import { ConcatenatedValue } from "./ConcatenatedValue";
2
+ import { ECSchemaProvider } from "./Metadata";
3
+ import { TypedPrimitiveValue } from "./Values";
4
+ /**
5
+ * A type definition for a function that knows how to create a display string for a typed primitive value.
6
+ * @see `createDefaultValueFormatter`
7
+ * @beta
8
+ */
9
+ export type IPrimitiveValueFormatter = (value: TypedPrimitiveValue) => Promise<string>;
10
+ /**
11
+ * Formats a concatenated value into a string, taking into account different types of `ConcatenatedValuePart` that
12
+ * the value consists of.
13
+ *
14
+ * @throws Error if a `ConcatenatedValuePart` in given `ConcatenatedValue` references a non-primitive, `IGeometry` or `Binary` property.
15
+ * @beta
16
+ */
17
+ export declare function formatConcatenatedValue(props: {
18
+ value: ConcatenatedValue | string;
19
+ schemaProvider: ECSchemaProvider;
20
+ valueFormatter: IPrimitiveValueFormatter;
21
+ }): Promise<string>;
22
+ /**
23
+ * A values' formatter that knows how to format the following types:
24
+ * - `Boolean` values are formatted to either "true" or "false".
25
+ * - `Integer` and `Long` values are rounded to the closest integer.
26
+ * - `Double` values are rounded to 2 decimal places.
27
+ * - `DateTime` values accept 2 formats in addition to `Date`:
28
+ * - if the value is numeric, assume it's a julian day format,
29
+ * - if the value is string, assume it's an ISO 8601 format.
30
+ * If extended type is set to `ShortDate`, the date is formatted as locale date string. Otherwise, it's
31
+ * formatted as locale date + time string.
32
+ * - `Point2d` values are formatted in `(x, y)` format.
33
+ * - `Point3d` values are formatted in `(x, y, z)` format.
34
+ * - `String` and `Id` values are turned as-is.
35
+ *
36
+ * @beta
37
+ */
38
+ export declare function createDefaultValueFormatter(): IPrimitiveValueFormatter;
39
+ //# sourceMappingURL=Formatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Formatting.d.ts","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEvF;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAClC,cAAc,EAAE,gBAAgB,CAAC;IACjC,cAAc,EAAE,wBAAwB,CAAC;CAC1C,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ClB;AAOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,CAatE"}