@itwin/presentation-shared 2.0.0-alpha.1 → 2.0.0-alpha.11
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.
- package/CHANGELOG.md +296 -1
- package/README.md +27 -9
- package/lib/cjs/presentation-shared.d.ts +18 -10
- package/lib/cjs/presentation-shared.d.ts.map +1 -1
- package/lib/cjs/presentation-shared.js +11 -6
- package/lib/cjs/presentation-shared.js.map +1 -1
- package/lib/cjs/shared/ConcatenatedValue.d.ts +1 -1
- package/lib/cjs/shared/ConcatenatedValue.d.ts.map +1 -1
- package/lib/cjs/shared/ECSqlCore.d.ts +7 -2
- package/lib/cjs/shared/ECSqlCore.d.ts.map +1 -1
- package/lib/cjs/shared/Event.d.ts +20 -2
- package/lib/cjs/shared/Event.d.ts.map +1 -1
- package/lib/cjs/shared/Formatting.d.ts +1 -1
- package/lib/cjs/shared/Formatting.d.ts.map +1 -1
- package/lib/cjs/shared/Formatting.js +10 -6
- package/lib/cjs/shared/Formatting.js.map +1 -1
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -136
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
- package/lib/cjs/shared/Logging.js +2 -1
- package/lib/cjs/shared/Logging.js.map +1 -1
- package/lib/cjs/shared/MappedTypes.d.ts +3 -13
- package/lib/cjs/shared/MappedTypes.d.ts.map +1 -1
- package/lib/cjs/shared/Metadata.d.ts +225 -11
- package/lib/cjs/shared/Metadata.d.ts.map +1 -1
- package/lib/cjs/shared/Metadata.js +4 -1
- package/lib/cjs/shared/Metadata.js.map +1 -1
- package/lib/cjs/shared/Utils.d.ts +12 -1
- package/lib/cjs/shared/Utils.d.ts.map +1 -1
- package/lib/cjs/shared/Utils.js +37 -11
- package/lib/cjs/shared/Utils.js.map +1 -1
- package/lib/cjs/shared/Values.d.ts +27 -13
- package/lib/cjs/shared/Values.d.ts.map +1 -1
- package/lib/cjs/shared/Values.js +13 -51
- package/lib/cjs/shared/Values.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +20 -5
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +56 -25
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +12 -3
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +21 -6
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/index.d.ts +1 -1
- package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/index.js +2 -1
- package/lib/cjs/shared/ecsql-snippets/index.js.map +1 -1
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +54 -0
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +63 -0
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +40 -0
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +10 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +336 -0
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts +7 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.js +26 -0
- package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +1 -0
- package/lib/esm/presentation-shared.d.ts +18 -10
- package/lib/esm/presentation-shared.d.ts.map +1 -1
- package/lib/esm/presentation-shared.js +7 -4
- package/lib/esm/presentation-shared.js.map +1 -1
- package/lib/esm/shared/ConcatenatedValue.d.ts +1 -1
- package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -1
- package/lib/esm/shared/ECSqlCore.d.ts +7 -2
- package/lib/esm/shared/ECSqlCore.d.ts.map +1 -1
- package/lib/esm/shared/Event.d.ts +20 -2
- package/lib/esm/shared/Event.d.ts.map +1 -1
- package/lib/esm/shared/Formatting.d.ts +1 -1
- package/lib/esm/shared/Formatting.d.ts.map +1 -1
- package/lib/esm/shared/Formatting.js +10 -6
- package/lib/esm/shared/Formatting.js.map +1 -1
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts +5 -65
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -1
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.js +0 -133
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +1 -1
- package/lib/esm/shared/Logging.js +2 -1
- package/lib/esm/shared/Logging.js.map +1 -1
- package/lib/esm/shared/MappedTypes.d.ts +3 -13
- package/lib/esm/shared/MappedTypes.d.ts.map +1 -1
- package/lib/esm/shared/Metadata.d.ts +225 -11
- package/lib/esm/shared/Metadata.d.ts.map +1 -1
- package/lib/esm/shared/Metadata.js +4 -1
- package/lib/esm/shared/Metadata.js.map +1 -1
- package/lib/esm/shared/Utils.d.ts +12 -1
- package/lib/esm/shared/Utils.d.ts.map +1 -1
- package/lib/esm/shared/Utils.js +36 -11
- package/lib/esm/shared/Utils.js.map +1 -1
- package/lib/esm/shared/Values.d.ts +27 -13
- package/lib/esm/shared/Values.d.ts.map +1 -1
- package/lib/esm/shared/Values.js +13 -51
- package/lib/esm/shared/Values.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +20 -5
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +56 -25
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +12 -3
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +20 -6
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/index.d.ts +1 -1
- package/lib/esm/shared/ecsql-snippets/index.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/index.js +1 -1
- package/lib/esm/shared/ecsql-snippets/index.js.map +1 -1
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +17 -0
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +51 -0
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +39 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +60 -0
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +12 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +37 -0
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +198 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +9 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +34 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +333 -0
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +7 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.js +21 -0
- package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +1 -0
- package/package.json +16 -24
|
@@ -25,10 +25,7 @@ async function formatConcatenatedValue(props) {
|
|
|
25
25
|
partFormatter: async (part) => {
|
|
26
26
|
// strings are converted to typed strings
|
|
27
27
|
if (ConcatenatedValue_js_1.ConcatenatedValuePart.isString(part)) {
|
|
28
|
-
part = {
|
|
29
|
-
value: part,
|
|
30
|
-
type: "String",
|
|
31
|
-
};
|
|
28
|
+
part = { value: part, type: "String" };
|
|
32
29
|
}
|
|
33
30
|
// finally, use provided value formatter to create a string from `TypedPrimitiveValue`
|
|
34
31
|
return valueFormatter(part);
|
|
@@ -68,7 +65,10 @@ function createDefaultValueFormatter() {
|
|
|
68
65
|
return result;
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
|
-
(0, core_bentley_1.assert)(typeof value.value === "undefined" ||
|
|
68
|
+
(0, core_bentley_1.assert)(typeof value.value === "undefined" ||
|
|
69
|
+
typeof value.value === "boolean" ||
|
|
70
|
+
typeof value.value === "number" ||
|
|
71
|
+
typeof value.value === "string");
|
|
72
72
|
return value.value.toString();
|
|
73
73
|
};
|
|
74
74
|
}
|
|
@@ -89,7 +89,11 @@ function applyNumericFormatting(value) {
|
|
|
89
89
|
}
|
|
90
90
|
function applyDatesFormatting(value) {
|
|
91
91
|
function getDate(julianOrDate) {
|
|
92
|
-
return typeof julianOrDate === "number"
|
|
92
|
+
return typeof julianOrDate === "number"
|
|
93
|
+
? (0, Utils_js_1.julianToDateTime)(julianOrDate)
|
|
94
|
+
: typeof julianOrDate === "string"
|
|
95
|
+
? new Date(julianOrDate)
|
|
96
|
+
: julianOrDate;
|
|
93
97
|
}
|
|
94
98
|
if (value.type !== "DateTime") {
|
|
95
99
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatting.js","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;
|
|
1
|
+
{"version":3,"file":"Formatting.js","sourceRoot":"","sources":["../../../src/shared/Formatting.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAqBhG,0DAmBC;AA0BD,kEAkBC;AAlFD,sDAA6C;AAC7C,iEAAkF;AAClF,yCAA8C;AAW9C;;;;;GAKG;AACI,KAAK,UAAU,uBAAuB,CAAC,KAG7C;IACC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,wCAAiB,CAAC,SAAS,CAAC;QACjC,KAAK,EAAE,KAAK;QACZ,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5B,yCAAyC;YACzC,IAAI,4CAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACzC,CAAC;YACD,sFAAsF;YACtF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,2BAA2B;IACzC,MAAM,UAAU,GAAG,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;IACjH,OAAO,KAAK,WAAW,KAA0B;QAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,IAAA,qBAAM,EACJ,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW;YAChC,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS;YAChC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAClC,CAAC;QACF,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA0B;IACxD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA0B;IACxD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0B;IACtD,SAAS,OAAO,CAAC,YAAoC;QACnD,OAAO,OAAO,YAAY,KAAK,QAAQ;YACrC,CAAC,CAAC,IAAA,2BAAgB,EAAC,YAAY,CAAC;YAChC,CAAC,CAAC,OAAO,YAAY,KAAK,QAAQ;gBAChC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;gBACxB,CAAC,CAAC,YAAY,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA0B;IACvD,SAAS,eAAe,CAAC,CAAS;QAChC,OAAO,sBAAsB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAE,CAAC;IAC/D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IACrH,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;IAClF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ConcatenatedValue } from "./ConcatenatedValue.js";
|
|
2
|
-
import { TypedValueSelectClauseProps } from "./ecsql-snippets/ECSqlValueSelectorSnippets.js";
|
|
3
|
-
import {
|
|
1
|
+
import type { ConcatenatedValue } from "./ConcatenatedValue.js";
|
|
2
|
+
import type { TypedValueSelectClauseProps } from "./ecsql-snippets/ECSqlValueSelectorSnippets.js";
|
|
3
|
+
import type { EC } from "./Metadata.js";
|
|
4
4
|
/**
|
|
5
5
|
* Props for `IInstanceLabelSelectClauseFactory.createSelectClause`.
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
|
-
interface CreateInstanceLabelSelectClauseProps {
|
|
8
|
+
export interface CreateInstanceLabelSelectClauseProps {
|
|
9
9
|
/**
|
|
10
10
|
* Alias of an ECSQL class referring to the target instance whose label should be selected.
|
|
11
11
|
*
|
|
@@ -26,7 +26,7 @@ interface CreateInstanceLabelSelectClauseProps {
|
|
|
26
26
|
* implementations may be able to create a more efficient select clause (e.g. drop some pieces of clause
|
|
27
27
|
* that don't apply for given class).
|
|
28
28
|
*/
|
|
29
|
-
className?:
|
|
29
|
+
className?: EC.FullClassName;
|
|
30
30
|
/**
|
|
31
31
|
* An optional function for concatenating multiple `TypedValueSelectClauseProps`. Selectors' concatenation
|
|
32
32
|
* is used when a label consists of multiple pieces, e.g.:
|
|
@@ -70,64 +70,4 @@ export interface IInstanceLabelSelectClauseFactory {
|
|
|
70
70
|
* @public
|
|
71
71
|
*/
|
|
72
72
|
export declare function parseInstanceLabel(value: string | undefined): ConcatenatedValue | string;
|
|
73
|
-
/**
|
|
74
|
-
* Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
|
|
75
|
-
* local and briefcase IDs are calculated based on ECInstance ID:
|
|
76
|
-
* - `{briefcase id} = ECInstanceId >> 40`
|
|
77
|
-
* - `{local id} = ECInstanceId & (1 << 40 - 1)`
|
|
78
|
-
*
|
|
79
|
-
* @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
|
|
80
|
-
* @public
|
|
81
|
-
*/
|
|
82
|
-
export declare function createDefaultInstanceLabelSelectClauseFactory(): IInstanceLabelSelectClauseFactory;
|
|
83
|
-
/**
|
|
84
|
-
* An association of a class and an instance label select clause factory method.
|
|
85
|
-
* @public
|
|
86
|
-
*/
|
|
87
|
-
interface ClassBasedLabelSelectClause {
|
|
88
|
-
/** Full class name */
|
|
89
|
-
className: string;
|
|
90
|
-
/** A factory method to create an instance label select clause */
|
|
91
|
-
clause: (props: CreateInstanceLabelSelectClauseProps) => Promise<string>;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Props for `createClassBasedInstanceLabelSelectClauseFactory`.
|
|
95
|
-
* @public
|
|
96
|
-
*/
|
|
97
|
-
interface ClassBasedInstanceLabelSelectClauseFactoryProps {
|
|
98
|
-
/** Access to ECClass hierarchy in the iModel. */
|
|
99
|
-
classHierarchyInspector: ECClassHierarchyInspector;
|
|
100
|
-
/**
|
|
101
|
-
* A prioritized list of instance label selectors associated to classes they should be applied to.
|
|
102
|
-
*
|
|
103
|
-
* Because the list may contain clauses for classes in the same class hierarchy, and the factory
|
|
104
|
-
* handles them in given order, the order of clauses should be from the most specific class to the
|
|
105
|
-
* most general one.
|
|
106
|
-
*/
|
|
107
|
-
clauses: ClassBasedLabelSelectClause[];
|
|
108
|
-
/**
|
|
109
|
-
* A fallback label clause factory for when class-based factory doesn't produce a label.
|
|
110
|
-
* Defaults to the result of `createDefaultInstanceLabelSelectClauseFactory`.
|
|
111
|
-
*/
|
|
112
|
-
defaultClauseFactory?: IInstanceLabelSelectClauseFactory;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Creates an instance label select clause based on its class.
|
|
116
|
-
* @public
|
|
117
|
-
*/
|
|
118
|
-
export declare function createClassBasedInstanceLabelSelectClauseFactory(props: ClassBasedInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
|
|
119
|
-
/**
|
|
120
|
-
* Props for `createBisInstanceLabelSelectClauseFactory`.
|
|
121
|
-
* @public
|
|
122
|
-
*/
|
|
123
|
-
interface BisInstanceLabelSelectClauseFactoryProps {
|
|
124
|
-
classHierarchyInspector: ECClassHierarchyInspector;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Creates a label select clause according to BIS instance label rules.
|
|
128
|
-
* @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
|
|
129
|
-
* @public
|
|
130
|
-
*/
|
|
131
|
-
export declare function createBisInstanceLabelSelectClauseFactory(props: BisInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
|
|
132
|
-
export {};
|
|
133
73
|
//# sourceMappingURL=InstanceLabelSelectClauseFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/InstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"InstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../src/shared/InstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,oCAAoC;IACnD;;;;;;;;;;OAUG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC;IAE7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACtG;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iCAAiC;IAChD,qDAAqD;IACrD,kBAAkB,CAAC,KAAK,EAAE,oCAAoC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,MAAM,CAaxF"}
|
|
@@ -5,10 +5,6 @@
|
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.parseInstanceLabel = parseInstanceLabel;
|
|
8
|
-
exports.createDefaultInstanceLabelSelectClauseFactory = createDefaultInstanceLabelSelectClauseFactory;
|
|
9
|
-
exports.createClassBasedInstanceLabelSelectClauseFactory = createClassBasedInstanceLabelSelectClauseFactory;
|
|
10
|
-
exports.createBisInstanceLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory;
|
|
11
|
-
const ECSqlValueSelectorSnippets_js_1 = require("./ecsql-snippets/ECSqlValueSelectorSnippets.js");
|
|
12
8
|
/**
|
|
13
9
|
* Parses an instance label from query result into a string or a `ConcatenatedValue`. The latter type of result
|
|
14
10
|
* is expected when label selector is created using `IInstanceLabelSelectClauseFactory.createSelectClause` with
|
|
@@ -31,136 +27,4 @@ function parseInstanceLabel(value) {
|
|
|
31
27
|
// not a JSON object/array
|
|
32
28
|
return value;
|
|
33
29
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Creates a label select clause in a format `Class label [base36(briefcase id)-base36(local id)]`, where
|
|
36
|
-
* local and briefcase IDs are calculated based on ECInstance ID:
|
|
37
|
-
* - `{briefcase id} = ECInstanceId >> 40`
|
|
38
|
-
* - `{local id} = ECInstanceId & (1 << 40 - 1)`
|
|
39
|
-
*
|
|
40
|
-
* @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
|
|
41
|
-
* @public
|
|
42
|
-
*/
|
|
43
|
-
function createDefaultInstanceLabelSelectClauseFactory() {
|
|
44
|
-
return {
|
|
45
|
-
async createSelectClause(props) {
|
|
46
|
-
return `(
|
|
47
|
-
SELECT
|
|
48
|
-
${concatenate(props, [
|
|
49
|
-
{
|
|
50
|
-
selector: `COALESCE(
|
|
51
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)("c", "DisplayLabel")},
|
|
52
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)("c", "Name")}
|
|
53
|
-
)`,
|
|
54
|
-
},
|
|
55
|
-
...createECInstanceIdSuffixSelectors(props.classAlias),
|
|
56
|
-
])}
|
|
57
|
-
FROM [meta].[ECClassDef] AS [c]
|
|
58
|
-
WHERE [c].[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(props.classAlias, "ECClassId")}
|
|
59
|
-
)`;
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Creates an instance label select clause based on its class.
|
|
65
|
-
* @public
|
|
66
|
-
*/
|
|
67
|
-
function createClassBasedInstanceLabelSelectClauseFactory(props) {
|
|
68
|
-
const { classHierarchyInspector, clauses: labelClausesByClass } = props;
|
|
69
|
-
const defaultClauseFactory = props.defaultClauseFactory ?? createDefaultInstanceLabelSelectClauseFactory();
|
|
70
|
-
async function getLabelClausesForClass(queryClassName) {
|
|
71
|
-
const matchingLabelClauses = await Promise.all(labelClausesByClass.map(async (entry) => {
|
|
72
|
-
if (await classHierarchyInspector.classDerivesFrom(entry.className, queryClassName)) {
|
|
73
|
-
// label selector is intended for a more specific class than we're selecting from - need to include it
|
|
74
|
-
// as query results (on polymorphic select) are going to include more specific class instances too
|
|
75
|
-
return entry;
|
|
76
|
-
}
|
|
77
|
-
if (await classHierarchyInspector.classDerivesFrom(queryClassName, entry.className)) {
|
|
78
|
-
// label selector is intended for a base class of what query is selecting - need to include it as
|
|
79
|
-
// we want base class label selectors to apply to subclass instances
|
|
80
|
-
return entry;
|
|
81
|
-
}
|
|
82
|
-
return undefined;
|
|
83
|
-
}));
|
|
84
|
-
function filterNotUndefined(x) {
|
|
85
|
-
return !!x;
|
|
86
|
-
}
|
|
87
|
-
return matchingLabelClauses.filter(filterNotUndefined);
|
|
88
|
-
}
|
|
89
|
-
return {
|
|
90
|
-
async createSelectClause(clauseProps) {
|
|
91
|
-
if (labelClausesByClass.length === 0) {
|
|
92
|
-
return defaultClauseFactory.createSelectClause(clauseProps);
|
|
93
|
-
}
|
|
94
|
-
const labelClausePromises = clauseProps.className ? await getLabelClausesForClass(clauseProps.className) : labelClausesByClass;
|
|
95
|
-
if (labelClausePromises.length === 0) {
|
|
96
|
-
return defaultClauseFactory.createSelectClause(clauseProps);
|
|
97
|
-
}
|
|
98
|
-
const labelClauses = await Promise.all(labelClausePromises.map(async ({ className, clause }) => ({
|
|
99
|
-
className,
|
|
100
|
-
clause: await clause(clauseProps),
|
|
101
|
-
})));
|
|
102
|
-
return `COALESCE(
|
|
103
|
-
${labelClauses
|
|
104
|
-
.map(({ className, clause }) => `
|
|
105
|
-
IIF(
|
|
106
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(clauseProps.classAlias, "ECClassId")} IS (${className}),
|
|
107
|
-
${clause.trim()},
|
|
108
|
-
NULL
|
|
109
|
-
)
|
|
110
|
-
`.trim())
|
|
111
|
-
.join(", ")},
|
|
112
|
-
${await defaultClauseFactory.createSelectClause(clauseProps)}
|
|
113
|
-
)`;
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Creates a label select clause according to BIS instance label rules.
|
|
119
|
-
* @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
|
|
120
|
-
* @public
|
|
121
|
-
*/
|
|
122
|
-
function createBisInstanceLabelSelectClauseFactory(props) {
|
|
123
|
-
const clauses = [];
|
|
124
|
-
const factory = createClassBasedInstanceLabelSelectClauseFactory({
|
|
125
|
-
classHierarchyInspector: props.classHierarchyInspector,
|
|
126
|
-
clauses,
|
|
127
|
-
});
|
|
128
|
-
clauses.push({
|
|
129
|
-
className: "BisCore.GeometricElement",
|
|
130
|
-
clause: async ({ classAlias, ...rest }) => `
|
|
131
|
-
COALESCE(
|
|
132
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "CodeValue")},
|
|
133
|
-
${concatenate(rest, [{ selector: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel") }, ...createECInstanceIdSuffixSelectors(classAlias)], `${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel")} IS NOT NULL`)}
|
|
134
|
-
)
|
|
135
|
-
`,
|
|
136
|
-
}, {
|
|
137
|
-
className: "BisCore.Element",
|
|
138
|
-
clause: async ({ classAlias }) => `
|
|
139
|
-
COALESCE(
|
|
140
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel")},
|
|
141
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "CodeValue")}
|
|
142
|
-
)
|
|
143
|
-
`,
|
|
144
|
-
}, {
|
|
145
|
-
className: "BisCore.Model",
|
|
146
|
-
clause: async ({ classAlias, ...rest }) => `(
|
|
147
|
-
SELECT ${await factory.createSelectClause({ ...rest, classAlias: "e", className: "BisCore.Element" })}
|
|
148
|
-
FROM [bis].[Element] AS [e]
|
|
149
|
-
WHERE [e].[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ModeledElement", "Id")}
|
|
150
|
-
)`,
|
|
151
|
-
});
|
|
152
|
-
return factory;
|
|
153
|
-
}
|
|
154
|
-
function createECInstanceIdSuffixSelectors(classAlias) {
|
|
155
|
-
return [
|
|
156
|
-
{ value: ` [`, type: "String" },
|
|
157
|
-
{ selector: `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ECInstanceId")} >> 40) AS TEXT)` },
|
|
158
|
-
{ value: `-`, type: "String" },
|
|
159
|
-
{ selector: `CAST(base36(${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ECInstanceId")} & ((1 << 40) - 1)) AS TEXT)` },
|
|
160
|
-
{ value: `]`, type: "String" },
|
|
161
|
-
];
|
|
162
|
-
}
|
|
163
|
-
function concatenate(props, selectors, checkSelector) {
|
|
164
|
-
return (props.selectorsConcatenator ?? ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector)(selectors, checkSelector);
|
|
165
|
-
}
|
|
166
30
|
//# sourceMappingURL=InstanceLabelSelectClauseFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../src/shared/InstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;
|
|
1
|
+
{"version":3,"file":"InstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../src/shared/InstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AA8EhG,gDAaC;AApBD;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,KAAyB;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrG,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IACD,0BAA0B;IAC1B,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -9,7 +9,7 @@ exports.NOOP_LOGGER = void 0;
|
|
|
9
9
|
* A logger implementation that does nothing.
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
/*
|
|
12
|
+
/* v8 ignore start */
|
|
13
13
|
exports.NOOP_LOGGER = {
|
|
14
14
|
isEnabled: () => false,
|
|
15
15
|
logError: () => { },
|
|
@@ -17,4 +17,5 @@ exports.NOOP_LOGGER = {
|
|
|
17
17
|
logInfo: () => { },
|
|
18
18
|
logTrace: () => { },
|
|
19
19
|
};
|
|
20
|
+
/* v8 ignore stop */
|
|
20
21
|
//# sourceMappingURL=Logging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../../src/shared/Logging.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AA0BhG;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../../src/shared/Logging.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AA0BhG;;;GAGG;AACH,qBAAqB;AACR,QAAA,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;AACF,oBAAoB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Event } from "./Event.js";
|
|
2
1
|
/**
|
|
3
2
|
* An utility `Omit` type which works with union types.
|
|
4
3
|
* @public
|
|
@@ -10,18 +9,9 @@ export type OmitOverUnion<T, K extends PropertyKey> = T extends T ? Omit<T, K> :
|
|
|
10
9
|
*/
|
|
11
10
|
export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
|
|
12
11
|
/**
|
|
13
|
-
* Returns type of
|
|
12
|
+
* Returns type of `TFunc` parameter, when `TFunc` accepts exactly one object argument
|
|
13
|
+
* that can also be `undefined` / optional.
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
|
-
export type Props<TFunc extends (...args: any[]) => any> = Parameters<TFunc>[
|
|
17
|
-
/**
|
|
18
|
-
* Returns type of the given `Event` listener.
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
export type EventListener<TEvent extends Event> = TEvent extends Event<infer TListener> ? TListener : never;
|
|
22
|
-
/**
|
|
23
|
-
* Returns type of the given `Event` arguments.
|
|
24
|
-
* @public
|
|
25
|
-
*/
|
|
26
|
-
export type EventArgs<TEvent extends Event> = Props<EventListener<TEvent>>;
|
|
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;
|
|
27
17
|
//# sourceMappingURL=MappedTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappedTypes.d.ts","sourceRoot":"","sources":["../../../src/shared/MappedTypes.ts"],"names":[],"mappings":"AAKA
|
|
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,GAC7G,WAAW,GACX,KAAK,CAAC;AAEV;;;;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"}
|