@itwin/presentation-shared 2.0.0-alpha.11 → 2.0.0-alpha.13
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 +175 -0
- package/README.md +19 -34
- package/lib/{esm/presentation-shared.d.ts → presentation-shared.d.ts} +7 -5
- package/lib/presentation-shared.d.ts.map +1 -0
- package/lib/{esm/presentation-shared.js → presentation-shared.js} +6 -2
- package/lib/presentation-shared.js.map +1 -0
- package/lib/shared/ConcatenatedValue.d.ts.map +1 -0
- package/lib/shared/ConcatenatedValue.js.map +1 -0
- package/lib/{cjs/shared → shared}/ECSqlCore.d.ts +9 -0
- package/lib/shared/ECSqlCore.d.ts.map +1 -0
- package/lib/shared/ECSqlCore.js +37 -0
- package/lib/shared/ECSqlCore.js.map +1 -0
- package/lib/shared/EachValueFrom.d.ts +30 -0
- package/lib/shared/EachValueFrom.d.ts.map +1 -0
- package/lib/shared/EachValueFrom.js +115 -0
- package/lib/shared/EachValueFrom.js.map +1 -0
- package/lib/shared/Event.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/Event.js.map +1 -1
- package/lib/shared/Formatting.d.ts.map +1 -0
- package/lib/shared/Formatting.js.map +1 -0
- package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.d.ts +1 -1
- package/lib/shared/InstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/shared/InstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/shared/Logging.d.ts.map +1 -0
- package/lib/shared/Logging.js.map +1 -0
- package/lib/shared/MappedTypes.d.ts +48 -0
- package/lib/shared/MappedTypes.d.ts.map +1 -0
- package/lib/shared/MappedTypes.js.map +1 -0
- package/lib/{cjs/shared → shared}/Metadata.d.ts +53 -44
- package/lib/shared/Metadata.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/Metadata.js +7 -6
- package/lib/shared/Metadata.js.map +1 -0
- package/lib/{cjs/shared → shared}/Utils.d.ts +0 -6
- package/lib/shared/Utils.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/Utils.js +0 -15
- package/lib/shared/Utils.js.map +1 -0
- package/lib/{esm/shared → shared}/Values.d.ts +23 -13
- package/lib/shared/Values.d.ts.map +1 -0
- package/lib/shared/Values.js +121 -0
- package/lib/shared/Values.js.map +1 -0
- package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +174 -0
- package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -0
- package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js +177 -0
- package/lib/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -0
- package/lib/{cjs/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +3 -3
- package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/ecsql-snippets/ECSqlValueSelectorSnippets.js +3 -3
- package/lib/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +1 -0
- package/lib/{cjs/shared → shared}/ecsql-snippets/index.d.ts +1 -1
- package/lib/shared/ecsql-snippets/index.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/ecsql-snippets/index.js +1 -1
- package/lib/shared/ecsql-snippets/index.js.map +1 -0
- package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +2 -2
- package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +1 -4
- package/lib/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/{cjs/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +3 -3
- package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +3 -3
- package/lib/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +1 -0
- package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +1 -0
- package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +2 -2
- package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +1 -0
- package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +4 -5
- package/lib/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +1 -0
- package/lib/shared/instance-label-factory-impls/Utils.d.ts.map +1 -0
- package/lib/shared/instance-label-factory-impls/Utils.js.map +1 -0
- package/package.json +16 -17
- package/lib/cjs/package.json +0 -1
- package/lib/cjs/presentation-shared.d.ts +0 -21
- package/lib/cjs/presentation-shared.d.ts.map +0 -1
- package/lib/cjs/presentation-shared.js +0 -75
- package/lib/cjs/presentation-shared.js.map +0 -1
- package/lib/cjs/shared/ConcatenatedValue.d.ts.map +0 -1
- package/lib/cjs/shared/ConcatenatedValue.js +0 -49
- package/lib/cjs/shared/ConcatenatedValue.js.map +0 -1
- package/lib/cjs/shared/ECSqlCore.d.ts.map +0 -1
- package/lib/cjs/shared/ECSqlCore.js +0 -7
- package/lib/cjs/shared/ECSqlCore.js.map +0 -1
- package/lib/cjs/shared/Event.d.ts.map +0 -1
- package/lib/cjs/shared/Event.js +0 -7
- package/lib/cjs/shared/Event.js.map +0 -1
- package/lib/cjs/shared/Formatting.d.ts.map +0 -1
- package/lib/cjs/shared/Formatting.js +0 -118
- package/lib/cjs/shared/Formatting.js.map +0 -1
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts +0 -73
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js +0 -30
- package/lib/cjs/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/cjs/shared/Logging.d.ts.map +0 -1
- package/lib/cjs/shared/Logging.js +0 -21
- package/lib/cjs/shared/Logging.js.map +0 -1
- package/lib/cjs/shared/MappedTypes.d.ts +0 -17
- package/lib/cjs/shared/MappedTypes.d.ts.map +0 -1
- package/lib/cjs/shared/MappedTypes.js +0 -7
- package/lib/cjs/shared/MappedTypes.js.map +0 -1
- package/lib/cjs/shared/Metadata.d.ts.map +0 -1
- package/lib/cjs/shared/Metadata.js +0 -56
- package/lib/cjs/shared/Metadata.js.map +0 -1
- package/lib/cjs/shared/Utils.d.ts.map +0 -1
- package/lib/cjs/shared/Utils.js +0 -123
- package/lib/cjs/shared/Utils.js.map +0 -1
- package/lib/cjs/shared/Values.d.ts +0 -121
- package/lib/cjs/shared/Values.d.ts.map +0 -1
- package/lib/cjs/shared/Values.js +0 -118
- package/lib/cjs/shared/Values.js.map +0 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -66
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -171
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js +0 -275
- package/lib/cjs/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
- package/lib/cjs/shared/ecsql-snippets/index.d.ts.map +0 -1
- package/lib/cjs/shared/ecsql-snippets/index.js +0 -19
- package/lib/cjs/shared/ecsql-snippets/index.js.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts +0 -17
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js +0 -54
- package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js +0 -63
- package/lib/cjs/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -40
- package/lib/cjs/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -10
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js +0 -336
- package/lib/cjs/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
- package/lib/cjs/shared/instance-label-factory-impls/Utils.js +0 -26
- package/lib/cjs/shared/instance-label-factory-impls/Utils.js.map +0 -1
- package/lib/esm/presentation-shared.d.ts.map +0 -1
- package/lib/esm/presentation-shared.js.map +0 -1
- package/lib/esm/shared/ConcatenatedValue.d.ts +0 -46
- package/lib/esm/shared/ConcatenatedValue.d.ts.map +0 -1
- package/lib/esm/shared/ConcatenatedValue.js.map +0 -1
- package/lib/esm/shared/ECSqlCore.d.ts +0 -99
- package/lib/esm/shared/ECSqlCore.d.ts.map +0 -1
- package/lib/esm/shared/ECSqlCore.js +0 -6
- package/lib/esm/shared/ECSqlCore.js.map +0 -1
- package/lib/esm/shared/Event.d.ts +0 -27
- package/lib/esm/shared/Event.d.ts.map +0 -1
- package/lib/esm/shared/Formatting.d.ts +0 -44
- package/lib/esm/shared/Formatting.d.ts.map +0 -1
- package/lib/esm/shared/Formatting.js.map +0 -1
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/esm/shared/InstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/esm/shared/Logging.d.ts +0 -27
- package/lib/esm/shared/Logging.d.ts.map +0 -1
- package/lib/esm/shared/Logging.js.map +0 -1
- package/lib/esm/shared/MappedTypes.d.ts +0 -17
- package/lib/esm/shared/MappedTypes.d.ts.map +0 -1
- package/lib/esm/shared/MappedTypes.js.map +0 -1
- package/lib/esm/shared/Metadata.d.ts +0 -505
- package/lib/esm/shared/Metadata.d.ts.map +0 -1
- package/lib/esm/shared/Metadata.js.map +0 -1
- package/lib/esm/shared/Utils.d.ts +0 -66
- package/lib/esm/shared/Utils.d.ts.map +0 -1
- package/lib/esm/shared/Utils.js.map +0 -1
- package/lib/esm/shared/Values.d.ts.map +0 -1
- package/lib/esm/shared/Values.js +0 -115
- package/lib/esm/shared/Values.js.map +0 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts +0 -66
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +0 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +0 -168
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +0 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts +0 -130
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.d.ts.map +0 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlValueSelectorSnippets.js.map +0 -1
- package/lib/esm/shared/ecsql-snippets/index.d.ts +0 -3
- package/lib/esm/shared/ecsql-snippets/index.d.ts.map +0 -1
- package/lib/esm/shared/ecsql-snippets/index.js.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts +0 -39
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -12
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -198
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts +0 -34
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.d.ts.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.js.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts +0 -7
- package/lib/esm/shared/instance-label-factory-impls/Utils.d.ts.map +0 -1
- package/lib/esm/shared/instance-label-factory-impls/Utils.js.map +0 -1
- /package/lib/{cjs/shared → shared}/ConcatenatedValue.d.ts +0 -0
- /package/lib/{esm/shared → shared}/ConcatenatedValue.js +0 -0
- /package/lib/{cjs/shared → shared}/Event.d.ts +0 -0
- /package/lib/{esm/shared → shared}/Event.js +0 -0
- /package/lib/{cjs/shared → shared}/Formatting.d.ts +0 -0
- /package/lib/{esm/shared → shared}/Formatting.js +0 -0
- /package/lib/{esm/shared → shared}/InstanceLabelSelectClauseFactory.js +0 -0
- /package/lib/{cjs/shared → shared}/Logging.d.ts +0 -0
- /package/lib/{esm/shared → shared}/Logging.js +0 -0
- /package/lib/{esm/shared → shared}/MappedTypes.js +0 -0
- /package/lib/{cjs/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.d.ts +0 -0
- /package/lib/{esm/shared → shared}/instance-label-factory-impls/DefaultInstanceLabelSelectClauseFactory.js +0 -0
- /package/lib/{cjs/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.d.ts +0 -0
- /package/lib/{esm/shared → shared}/instance-label-factory-impls/IModelInstanceLabelSelectClauseFactory.Rules.js +0 -0
- /package/lib/{cjs/shared → shared}/instance-label-factory-impls/Utils.d.ts +0 -0
- /package/lib/{esm/shared → shared}/instance-label-factory-impls/Utils.js +0 -0
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.createRelationshipPathJoinClause = createRelationshipPathJoinClause;
|
|
8
|
-
const Metadata_js_1 = require("../Metadata.js");
|
|
9
|
-
const ECSqlValueSelectorSnippets_js_1 = require("./ECSqlValueSelectorSnippets.js");
|
|
10
|
-
/**
|
|
11
|
-
* Creates an ECSQL JOIN snippet for given relationships' path.
|
|
12
|
-
*
|
|
13
|
-
* When a step specifies `instanceFilter`, its resolved expression is appended as an `AND`
|
|
14
|
-
* condition to the target class JOIN's `ON` clause. In the outer-join case the condition also
|
|
15
|
-
* appears on the `INNER JOIN` inside the subquery so the pre-joined subquery is already
|
|
16
|
-
* filtered. Bindings declared in `instanceFilter.bindings` across all steps are collected
|
|
17
|
-
* and returned alongside the SQL string.
|
|
18
|
-
*
|
|
19
|
-
* Possible results:
|
|
20
|
-
* - When the relationship is represented by a navigation property on either source or target:
|
|
21
|
-
* ```SQL
|
|
22
|
-
* INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[navigation_property_name].[Id] = [source_alias].[ECInstanceId]
|
|
23
|
-
* ```
|
|
24
|
-
* - When outer joining through a non-navigation-property relationship:
|
|
25
|
-
* ```SQL
|
|
26
|
-
* OUTER JOIN (
|
|
27
|
-
* SELECT [relationship_alias].*
|
|
28
|
-
* FROM [relationship_schema_name].[relationship_class_name] [relationship_alias]
|
|
29
|
-
* INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
|
|
30
|
-
* ) [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
|
|
31
|
-
* OUTER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
|
|
32
|
-
* ```
|
|
33
|
-
* - When inner joining through a non-navigation-property relationship:
|
|
34
|
-
* ```SQL
|
|
35
|
-
* INNER JOIN [relationship_schema_name].[relationship_class_name] [relationship_alias] ON [relationship_alias].[SourceECInstanceId] = [source_alias].[ECInstanceId]
|
|
36
|
-
* INNER JOIN [target_schema_name].[target_class_name] [target_alias] ON [target_alias].[ECInstanceId] = [relationship_alias].[TargetECInstanceId]
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
* @returns An object containing:
|
|
40
|
-
* - `joins`: the ECSQL JOIN clause string to embed in a query.
|
|
41
|
-
* - `bindings`: ECSQL parameter bindings collected from `instanceFilter.bindings` across all steps,
|
|
42
|
-
* or `undefined` if no step specified any bindings.
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
async function createRelationshipPathJoinClause(props) {
|
|
46
|
-
if (props.path.length === 0) {
|
|
47
|
-
return { joins: "" };
|
|
48
|
-
}
|
|
49
|
-
let prev = {
|
|
50
|
-
alias: props.path[0].sourceAlias,
|
|
51
|
-
joinPropertyName: "ECInstanceId",
|
|
52
|
-
className: props.path[0].sourceClassName,
|
|
53
|
-
};
|
|
54
|
-
let joins = "";
|
|
55
|
-
const bindings = {};
|
|
56
|
-
for (const stepDef of props.path) {
|
|
57
|
-
const step = await getRelationshipPathStepClasses(props.schemaProvider, stepDef);
|
|
58
|
-
const navigationProperty = await getNavigationProperty(step);
|
|
59
|
-
const filterCondition = resolveInstanceFilterCondition(step);
|
|
60
|
-
if (step.instanceFilter?.bindings) {
|
|
61
|
-
for (const [key, value] of Object.entries(step.instanceFilter.bindings)) {
|
|
62
|
-
if (key in bindings) {
|
|
63
|
-
throw new Error(`Binding key "${key}" is used in multiple steps of the relationship path. Each binding key must be unique across all steps.`);
|
|
64
|
-
}
|
|
65
|
-
bindings[key] = value;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (navigationProperty) {
|
|
69
|
-
const isNavigationPropertyForward = navigationProperty.direction === "Forward";
|
|
70
|
-
const relationshipJoinPropertyNames = isNavigationPropertyForward === !step.relationshipReverse
|
|
71
|
-
? {
|
|
72
|
-
this: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId"),
|
|
73
|
-
next: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, navigationProperty.name, "Id"),
|
|
74
|
-
}
|
|
75
|
-
: {
|
|
76
|
-
this: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, navigationProperty.name, "Id"),
|
|
77
|
-
next: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName),
|
|
78
|
-
};
|
|
79
|
-
joins += `
|
|
80
|
-
${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
|
|
81
|
-
ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}${filterCondition}
|
|
82
|
-
`;
|
|
83
|
-
prev = { alias: step.targetAlias, className: step.target.fullName, joinPropertyName: "ECInstanceId" };
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
const relationshipJoinPropertyNames = !step.relationshipReverse
|
|
87
|
-
? { this: "SourceECInstanceId", next: "TargetECInstanceId" }
|
|
88
|
-
: { this: "TargetECInstanceId", next: "SourceECInstanceId" };
|
|
89
|
-
if (step.joinType === "outer") {
|
|
90
|
-
joins += `
|
|
91
|
-
${getJoinClause("outer")} (
|
|
92
|
-
SELECT [${step.relationshipAlias}].*
|
|
93
|
-
FROM ${getClassSelectClause(step.relationship, step.relationshipAlias)}
|
|
94
|
-
${getJoinClause("inner")} ${getClassSelectClause(step.target, step.targetAlias)}
|
|
95
|
-
ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")}
|
|
96
|
-
= ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.next)}${filterCondition}
|
|
97
|
-
) [${step.relationshipAlias}]
|
|
98
|
-
ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.this)}
|
|
99
|
-
= ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
|
|
100
|
-
`;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
joins += `
|
|
104
|
-
${getJoinClause("inner")} ${getClassSelectClause(step.relationship, step.relationshipAlias)}
|
|
105
|
-
ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.this)}
|
|
106
|
-
= ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
|
|
107
|
-
`;
|
|
108
|
-
}
|
|
109
|
-
joins += `
|
|
110
|
-
${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
|
|
111
|
-
ON ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")}
|
|
112
|
-
= ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(step.relationshipAlias, relationshipJoinPropertyNames.next)}${filterCondition}
|
|
113
|
-
`;
|
|
114
|
-
prev = { alias: step.targetAlias, className: step.target.fullName, joinPropertyName: "ECInstanceId" };
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return { joins, bindings: Object.keys(bindings).length > 0 ? bindings : undefined };
|
|
118
|
-
}
|
|
119
|
-
function resolveInstanceFilterCondition(step) {
|
|
120
|
-
if (!step.instanceFilter) {
|
|
121
|
-
return "";
|
|
122
|
-
}
|
|
123
|
-
const { expression, targetAlias = "this", relationshipAlias = "rel" } = step.instanceFilter;
|
|
124
|
-
const resolvedExpression = expression
|
|
125
|
-
.replaceAll(`[${targetAlias}].`, `[${step.targetAlias}].`)
|
|
126
|
-
.replaceAll(`${targetAlias}.`, `[${step.targetAlias}].`)
|
|
127
|
-
.replaceAll(`[${relationshipAlias}].`, `[${step.relationshipAlias}].`)
|
|
128
|
-
.replaceAll(`${relationshipAlias}.`, `[${step.relationshipAlias}].`);
|
|
129
|
-
return ` AND (${resolvedExpression})`;
|
|
130
|
-
}
|
|
131
|
-
async function getRelationshipPathStepClasses(schemaProvider, step) {
|
|
132
|
-
const { sourceClassName, relationshipName, targetClassName, ...rest } = step;
|
|
133
|
-
return {
|
|
134
|
-
...rest,
|
|
135
|
-
source: await (0, Metadata_js_1.getClass)(schemaProvider, sourceClassName),
|
|
136
|
-
relationship: (await (0, Metadata_js_1.getClass)(schemaProvider, relationshipName)),
|
|
137
|
-
target: await (0, Metadata_js_1.getClass)(schemaProvider, targetClassName),
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
async function getNavigationProperty(step) {
|
|
141
|
-
const source = !step.relationshipReverse ? step.source : step.target;
|
|
142
|
-
const target = !step.relationshipReverse ? step.target : step.source;
|
|
143
|
-
for (const prop of await source.getProperties()) {
|
|
144
|
-
/* v8 ignore else -- @preserve */
|
|
145
|
-
if (prop.isNavigation() &&
|
|
146
|
-
prop.direction === "Forward" &&
|
|
147
|
-
(await prop.relationshipClass).fullName === step.relationship.fullName) {
|
|
148
|
-
return prop;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
for (const prop of await target.getProperties()) {
|
|
152
|
-
/* v8 ignore else -- @preserve */
|
|
153
|
-
if (prop.isNavigation() &&
|
|
154
|
-
prop.direction === "Backward" &&
|
|
155
|
-
(await prop.relationshipClass).fullName === step.relationship.fullName) {
|
|
156
|
-
return prop;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return undefined;
|
|
160
|
-
}
|
|
161
|
-
function getJoinClause(type) {
|
|
162
|
-
if (type === "outer") {
|
|
163
|
-
return "OUTER JOIN";
|
|
164
|
-
}
|
|
165
|
-
return "INNER JOIN";
|
|
166
|
-
}
|
|
167
|
-
function getClassSelectClause(ecClass, alias) {
|
|
168
|
-
const classSelector = `[${ecClass.schema.name}].[${ecClass.name}]`;
|
|
169
|
-
return `${classSelector} [${alias}]`;
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=ECSqlJoinSnippets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlValueSelectorSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;GAGG;AACH,KAAK,gCAAgC,GAAG;IACtC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,CACA;IACE,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,GACD;IAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAC3F,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG,gCAAgC,CAAC;AAEjG,cAAc;AAEd,yBAAiB,2BAA2B,CAAC;IAC3C,SAAgB,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,GAAG,KAAK,IAAI,mBAAmB,CAEjG;IACD,SAAgB,wBAAwB,CACtC,KAAK,EAAE,2BAA2B,GACjC,KAAK,IAAI,gCAAgC,CAE3C;CACF;AAED;;;;GAIG;AACH,wBAAsB,yCAAyC,CAAC,EAC9D,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,GACb,EAAE;IACD,oCAAoC;IACpC,cAAc,EAAE,gBAAgB,CAAC;IACjC,uEAAuE;IACvE,iBAAiB,EAAE,EAAE,CAAC,aAAa,CAAC;IACpC,2DAA2D;IAC3D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAsD5C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAMR;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,UAqBhF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAG3E;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,UAIjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEtG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,2BAA2B,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,UAMnH;AA2CD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,2BAA2B,EAAE,EACxC,aAAa,CAAC,EAAE,MAAM,UASvB"}
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.TypedValueSelectClauseProps = void 0;
|
|
8
|
-
exports.createPrimitivePropertyValueSelectorProps = createPrimitivePropertyValueSelectorProps;
|
|
9
|
-
exports.createRawPropertyValueSelector = createRawPropertyValueSelector;
|
|
10
|
-
exports.createRawPrimitiveValueSelector = createRawPrimitiveValueSelector;
|
|
11
|
-
exports.createClassSelector = createClassSelector;
|
|
12
|
-
exports.createInstanceKeySelector = createInstanceKeySelector;
|
|
13
|
-
exports.createNullableSelector = createNullableSelector;
|
|
14
|
-
exports.createConcatenatedValueJsonSelector = createConcatenatedValueJsonSelector;
|
|
15
|
-
exports.createConcatenatedValueStringSelector = createConcatenatedValueStringSelector;
|
|
16
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
17
|
-
const Metadata_js_1 = require("../Metadata.js");
|
|
18
|
-
const Utils_js_1 = require("../Utils.js");
|
|
19
|
-
const Values_js_1 = require("../Values.js");
|
|
20
|
-
/** @public */
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
22
|
-
var TypedValueSelectClauseProps;
|
|
23
|
-
(function (TypedValueSelectClauseProps) {
|
|
24
|
-
function isPrimitiveValue(props) {
|
|
25
|
-
return "value" in props;
|
|
26
|
-
}
|
|
27
|
-
TypedValueSelectClauseProps.isPrimitiveValue = isPrimitiveValue;
|
|
28
|
-
function isPrimitiveValueSelector(props) {
|
|
29
|
-
return "selector" in props;
|
|
30
|
-
}
|
|
31
|
-
TypedValueSelectClauseProps.isPrimitiveValueSelector = isPrimitiveValueSelector;
|
|
32
|
-
})(TypedValueSelectClauseProps || (exports.TypedValueSelectClauseProps = TypedValueSelectClauseProps = {}));
|
|
33
|
-
/**
|
|
34
|
-
* A function for a creating a `TypedPrimitiveValueSelectorProps` object from given primitive ECProperty information.
|
|
35
|
-
* @throws Error if the property is not found, is not primitive or has unsupported primitive type (Binary, IGeometry).
|
|
36
|
-
* @public
|
|
37
|
-
*/
|
|
38
|
-
async function createPrimitivePropertyValueSelectorProps({ schemaProvider, propertyClassAlias, propertyClassName, propertyName, }) {
|
|
39
|
-
const ecClass = await (0, Metadata_js_1.getClass)(schemaProvider, propertyClassName);
|
|
40
|
-
const property = await ecClass.getProperty(propertyName);
|
|
41
|
-
if (!property) {
|
|
42
|
-
throw new Error(`The property "${propertyName}" not found in class "${propertyClassName}".`);
|
|
43
|
-
}
|
|
44
|
-
const propertySelector = createRawPropertyValueSelector(propertyClassAlias, propertyName);
|
|
45
|
-
if (property.isNavigation()) {
|
|
46
|
-
return { selector: `${propertySelector}.[Id]`, type: "Id" };
|
|
47
|
-
}
|
|
48
|
-
if (!property.isPrimitive()) {
|
|
49
|
-
throw new Error(`The property "${propertyName}" should be of either navigation or primitive type.`);
|
|
50
|
-
}
|
|
51
|
-
const propertyValueType = property.primitiveType;
|
|
52
|
-
const extendedType = property.extendedTypeName;
|
|
53
|
-
switch (propertyValueType) {
|
|
54
|
-
case "IGeometry":
|
|
55
|
-
throw new Error(`The property "${propertyName}" of type "IGeometry" is not supported.`);
|
|
56
|
-
case "Binary":
|
|
57
|
-
if (extendedType === "BeGuid") {
|
|
58
|
-
return { selector: `GuidToStr(${propertySelector})`, type: "String" };
|
|
59
|
-
}
|
|
60
|
-
throw new Error(`The property "${propertyName}" of type "Binary" is not supported.`);
|
|
61
|
-
case "Point2d":
|
|
62
|
-
return {
|
|
63
|
-
selector: `json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y])`,
|
|
64
|
-
type: "Point2d",
|
|
65
|
-
...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
|
|
66
|
-
};
|
|
67
|
-
case "Point3d":
|
|
68
|
-
return {
|
|
69
|
-
selector: `json_object('x', ${propertySelector}.[x], 'y', ${propertySelector}.[y], 'z', ${propertySelector}.[z])`,
|
|
70
|
-
type: "Point3d",
|
|
71
|
-
...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
|
|
72
|
-
};
|
|
73
|
-
case "Double":
|
|
74
|
-
const koqName = (await property.kindOfQuantity)?.fullName;
|
|
75
|
-
return {
|
|
76
|
-
selector: propertySelector,
|
|
77
|
-
type: "Double",
|
|
78
|
-
...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
|
|
79
|
-
...(koqName ? { koqName } : /* v8 ignore next */ {}),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
selector: propertySelector,
|
|
84
|
-
type: propertyValueType,
|
|
85
|
-
...(extendedType ? { extendedType } : /* v8 ignore next */ {}),
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Creates an ECSQL selector for raw property value, or, optionally - it's component. Example result:
|
|
90
|
-
* `[classAlias].[propertyName].[componentName]`.
|
|
91
|
-
*
|
|
92
|
-
* @public
|
|
93
|
-
*/
|
|
94
|
-
function createRawPropertyValueSelector(classAlias, propertyName, componentName) {
|
|
95
|
-
let propertySelector = `[${classAlias}].[${propertyName}]`;
|
|
96
|
-
if (componentName) {
|
|
97
|
-
propertySelector += `.[${componentName}]`;
|
|
98
|
-
}
|
|
99
|
-
return propertySelector;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Creates an ECSQL selector for a raw primitive value.
|
|
103
|
-
* - `undefined` is selected as `NULL`.
|
|
104
|
-
* - `Date` values are selected in julian day format.
|
|
105
|
-
* - `Point2d` and `Point3d` values are selected as serialized JSON objects, e.g. `{ x: 1, y: 2, z: 3 }`.
|
|
106
|
-
* - Other kinds of values are selected as-is.
|
|
107
|
-
*
|
|
108
|
-
* @public
|
|
109
|
-
*/
|
|
110
|
-
function createRawPrimitiveValueSelector(value) {
|
|
111
|
-
if (value === undefined) {
|
|
112
|
-
return "NULL";
|
|
113
|
-
}
|
|
114
|
-
if (value instanceof Date) {
|
|
115
|
-
return `julianday('${value.toISOString()}')`;
|
|
116
|
-
}
|
|
117
|
-
if (Values_js_1.PrimitiveValue.isPoint3d(value)) {
|
|
118
|
-
return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
|
|
119
|
-
}
|
|
120
|
-
if (Values_js_1.PrimitiveValue.isPoint2d(value)) {
|
|
121
|
-
return `json_object('x', ${value.x}, 'y', ${value.y})`;
|
|
122
|
-
}
|
|
123
|
-
switch (typeof value) {
|
|
124
|
-
case "string":
|
|
125
|
-
return core_bentley_1.Id64.isId64(value) ? value : `'${value}'`;
|
|
126
|
-
case "number":
|
|
127
|
-
return value.toString();
|
|
128
|
-
case "boolean":
|
|
129
|
-
return value ? "TRUE" : "FALSE";
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Converts a full class name (`SchemaName.ClassName` or `SchemaName:ClassName`) into a
|
|
134
|
-
* bracket-quoted ECSQL class selector: `[SchemaName].[ClassName]`.
|
|
135
|
-
*
|
|
136
|
-
* @throws Error if the provided full class name is not valid.
|
|
137
|
-
* @public
|
|
138
|
-
*/
|
|
139
|
-
function createClassSelector(fullClassName) {
|
|
140
|
-
const { schemaName, className } = (0, Utils_js_1.parseFullClassName)(fullClassName);
|
|
141
|
-
return `[${schemaName}].[${className}]`;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Creates an ECSQL selector that results in a stringified `InstanceKey` object.
|
|
145
|
-
* @public
|
|
146
|
-
*/
|
|
147
|
-
function createInstanceKeySelector(props) {
|
|
148
|
-
const classIdSelector = `[${props.alias}].[ECClassId]`;
|
|
149
|
-
const instanceHexIdSelector = `IdToHex([${props.alias}].[ECInstanceId])`;
|
|
150
|
-
return `json_object('className', ec_classname(${classIdSelector}, 's.c'), 'id', ${instanceHexIdSelector})`;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Creates a clause for returning `NULL` when `checkSelector` returns a falsy value, or result of `valueSelector`
|
|
154
|
-
* otherwise. Example result: `IIF(CHECK_SELECTOR, VALUE_SELECTOR, NULL)`.
|
|
155
|
-
*
|
|
156
|
-
* @note In SQL `NULL` is not considered falsy, so when checking for `NULL` values, the `checkSelector` should
|
|
157
|
-
* be like `{selector} IS NOT NULL` rather than just `${selector}`.
|
|
158
|
-
*
|
|
159
|
-
* @public
|
|
160
|
-
*/
|
|
161
|
-
function createNullableSelector(props) {
|
|
162
|
-
return `IIF(${props.checkSelector}, ${props.valueSelector}, NULL)`;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Create an ECSQL selector combined of multiple typed value selectors in a form of a JSON array. This allows handling results
|
|
166
|
-
* of each value selector individually when parsing query result.
|
|
167
|
-
*
|
|
168
|
-
* Example result: `json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...)`.
|
|
169
|
-
*
|
|
170
|
-
* Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
|
|
171
|
-
* `NULL` result when the argument selector results in `NULL`. Example result with `checkSelector`:
|
|
172
|
-
* `IIF(CHECK_SELECTOR, json_array(VALUE_SELECTOR_1, VALUE_SELECTOR_2, ...), NULL)`.
|
|
173
|
-
*
|
|
174
|
-
* @note The resulting JSON is of `ConcatenatedValue` type and it's recommended to use `ConcatenatedValue.serialize` to
|
|
175
|
-
* handle each individual part.
|
|
176
|
-
*
|
|
177
|
-
* @see `ConcatenatedValue`
|
|
178
|
-
*
|
|
179
|
-
* @public
|
|
180
|
-
*/
|
|
181
|
-
function createConcatenatedValueJsonSelector(selectors, checkSelector) {
|
|
182
|
-
const combinedSelectors = `json_array(${selectors.map((sel) => createTypedValueJsonSelector(sel)).join(", ")})`;
|
|
183
|
-
if (checkSelector) {
|
|
184
|
-
return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
|
|
185
|
-
}
|
|
186
|
-
return combinedSelectors;
|
|
187
|
-
}
|
|
188
|
-
function createTypedValueJsonSelector(props) {
|
|
189
|
-
let valueSelector;
|
|
190
|
-
if (TypedValueSelectClauseProps.isPrimitiveValue(props)) {
|
|
191
|
-
valueSelector = createPrimitiveValueJsonSelector(props.value);
|
|
192
|
-
}
|
|
193
|
-
else if (props.type) {
|
|
194
|
-
valueSelector = props.selector;
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
return props.selector;
|
|
198
|
-
}
|
|
199
|
-
const args = {
|
|
200
|
-
value: valueSelector,
|
|
201
|
-
type: `'${props.type}'`,
|
|
202
|
-
...(props.extendedType ? { extendedType: `'${props.extendedType}'` } : {}),
|
|
203
|
-
...(props.type === "Double" && props.koqName ? { koqName: `'${props.koqName}'` } : {}),
|
|
204
|
-
};
|
|
205
|
-
return `
|
|
206
|
-
json_object(${Object.entries(args)
|
|
207
|
-
.map(([key, value]) => `'${key}', ${value}`)
|
|
208
|
-
.join(", ")})
|
|
209
|
-
`;
|
|
210
|
-
}
|
|
211
|
-
function createPrimitiveValueJsonSelector(value) {
|
|
212
|
-
if (value instanceof Date) {
|
|
213
|
-
return `'${value.toISOString()}'`;
|
|
214
|
-
}
|
|
215
|
-
if (Values_js_1.PrimitiveValue.isPoint3d(value)) {
|
|
216
|
-
return `json_object('x', ${value.x}, 'y', ${value.y}, 'z', ${value.z})`;
|
|
217
|
-
}
|
|
218
|
-
if (Values_js_1.PrimitiveValue.isPoint2d(value)) {
|
|
219
|
-
return `json_object('x', ${value.x}, 'y', ${value.y})`;
|
|
220
|
-
}
|
|
221
|
-
switch (typeof value) {
|
|
222
|
-
case "string":
|
|
223
|
-
return core_bentley_1.Id64.isId64(value) ? value : `'${value}'`;
|
|
224
|
-
case "number":
|
|
225
|
-
return value.toString();
|
|
226
|
-
case "boolean":
|
|
227
|
-
return value ? "TRUE" : "FALSE";
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Create an ECSQL selector combined of multiple typed value selectors in a form of a string.
|
|
232
|
-
*
|
|
233
|
-
* Example result: `VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ...`.
|
|
234
|
-
*
|
|
235
|
-
* Optionally, the function also accepts a `checkSelector` argument, which can be used to make the selector return
|
|
236
|
-
* `NULL` result when `checkSelector` results in a falsy value. Example result with `checkSelector`:
|
|
237
|
-
* `IIF(CHECK_SELECTOR, VALUE_SELECTOR_1 || VALUE_SELECTOR_2 || ..., NULL)`.
|
|
238
|
-
*
|
|
239
|
-
* @note Not all types of `TypedValueSelectClauseProps` can be serialized to a user-friendly string, e.g. when
|
|
240
|
-
* selecting a numeric value with units, this function is going to select the raw value. To create properly formatted
|
|
241
|
-
* concatenated values:
|
|
242
|
-
* 1. They should be selected with `createConcatenatedValueJsonSelector`, which returns a serialized JSON object.
|
|
243
|
-
* 2. The JSON should be parsed from resulting string and passed to `ConcatenatedValue.serialize`, which additionally
|
|
244
|
-
* takes a formatter. One can be created using `createDefaultValueFormatter`.
|
|
245
|
-
*
|
|
246
|
-
* @public
|
|
247
|
-
*/
|
|
248
|
-
function createConcatenatedValueStringSelector(selectors, checkSelector) {
|
|
249
|
-
const combinedSelectors = selectors.length
|
|
250
|
-
? selectors.map((sel) => createTypedValueStringSelector(sel)).join(" || ")
|
|
251
|
-
: "''";
|
|
252
|
-
if (checkSelector) {
|
|
253
|
-
return createNullableSelector({ checkSelector, valueSelector: combinedSelectors });
|
|
254
|
-
}
|
|
255
|
-
return combinedSelectors;
|
|
256
|
-
}
|
|
257
|
-
function createTypedValueStringSelector(props) {
|
|
258
|
-
if (TypedValueSelectClauseProps.isPrimitiveValueSelector(props)) {
|
|
259
|
-
return `CAST(${props.selector} AS TEXT)`;
|
|
260
|
-
}
|
|
261
|
-
return createPrimitiveValueStringSelector(props.value);
|
|
262
|
-
}
|
|
263
|
-
function createPrimitiveValueStringSelector(value) {
|
|
264
|
-
if (value instanceof Date) {
|
|
265
|
-
return `'${value.toLocaleString()}'`;
|
|
266
|
-
}
|
|
267
|
-
if (Values_js_1.PrimitiveValue.isPoint3d(value)) {
|
|
268
|
-
return `'(${value.x}, ${value.y}, ${value.z})'`;
|
|
269
|
-
}
|
|
270
|
-
if (Values_js_1.PrimitiveValue.isPoint2d(value)) {
|
|
271
|
-
return `'(${value.x}, ${value.y})'`;
|
|
272
|
-
}
|
|
273
|
-
return `'${value.toString()}'`;
|
|
274
|
-
}
|
|
275
|
-
//# sourceMappingURL=ECSqlValueSelectorSnippets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlValueSelectorSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlValueSelectorSnippets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,EACrC,yBAAyB,EACzB,yCAAyC,GAC1C,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.createRelationshipPathJoinClause = exports.createPrimitivePropertyValueSelectorProps = exports.createInstanceKeySelector = exports.createConcatenatedValueStringSelector = exports.createConcatenatedValueJsonSelector = exports.createNullableSelector = exports.createRawPrimitiveValueSelector = exports.createRawPropertyValueSelector = exports.createClassSelector = void 0;
|
|
8
|
-
var ECSqlValueSelectorSnippets_js_1 = require("./ECSqlValueSelectorSnippets.js");
|
|
9
|
-
Object.defineProperty(exports, "createClassSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createClassSelector; } });
|
|
10
|
-
Object.defineProperty(exports, "createRawPropertyValueSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector; } });
|
|
11
|
-
Object.defineProperty(exports, "createRawPrimitiveValueSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createRawPrimitiveValueSelector; } });
|
|
12
|
-
Object.defineProperty(exports, "createNullableSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createNullableSelector; } });
|
|
13
|
-
Object.defineProperty(exports, "createConcatenatedValueJsonSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createConcatenatedValueJsonSelector; } });
|
|
14
|
-
Object.defineProperty(exports, "createConcatenatedValueStringSelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createConcatenatedValueStringSelector; } });
|
|
15
|
-
Object.defineProperty(exports, "createInstanceKeySelector", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createInstanceKeySelector; } });
|
|
16
|
-
Object.defineProperty(exports, "createPrimitivePropertyValueSelectorProps", { enumerable: true, get: function () { return ECSqlValueSelectorSnippets_js_1.createPrimitivePropertyValueSelectorProps; } });
|
|
17
|
-
var ECSqlJoinSnippets_js_1 = require("./ECSqlJoinSnippets.js");
|
|
18
|
-
Object.defineProperty(exports, "createRelationshipPathJoinClause", { enumerable: true, get: function () { return ECSqlJoinSnippets_js_1.createRelationshipPathJoinClause; } });
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/index.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,iFASyC;AARvC,oIAAA,mBAAmB,OAAA;AACnB,+IAAA,8BAA8B,OAAA;AAC9B,gJAAA,+BAA+B,OAAA;AAC/B,uIAAA,sBAAsB,OAAA;AACtB,oJAAA,mCAAmC,OAAA;AACnC,sJAAA,qCAAqC,OAAA;AACrC,0IAAA,yBAAyB,OAAA;AACzB,0JAAA,yCAAyC,OAAA;AAE3C,+DAA0E;AAAjE,wIAAA,gCAAgC,OAAA"}
|
package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { IInstanceLabelSelectClauseFactory } from "../InstanceLabelSelectClauseFactory.js";
|
|
2
|
-
import type { ECClassHierarchyInspector } from "../Metadata.js";
|
|
3
|
-
/**
|
|
4
|
-
* Props for `createBisInstanceLabelSelectClauseFactory`.
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
interface BisInstanceLabelSelectClauseFactoryProps {
|
|
8
|
-
classHierarchyInspector: ECClassHierarchyInspector;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Creates a label select clause according to BIS instance label rules.
|
|
12
|
-
* @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
|
|
13
|
-
* @public
|
|
14
|
-
*/
|
|
15
|
-
export declare function createBisInstanceLabelSelectClauseFactory(props: BisInstanceLabelSelectClauseFactoryProps): IInstanceLabelSelectClauseFactory;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=BisInstanceLabelSelectClauseFactory.d.ts.map
|
package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BisInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE;;;GAGG;AACH,UAAU,wCAAwC;IAChD,uBAAuB,EAAE,yBAAyB,CAAC;CACpD;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACvD,KAAK,EAAE,wCAAwC,GAC9C,iCAAiC,CA6CnC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.createBisInstanceLabelSelectClauseFactory = createBisInstanceLabelSelectClauseFactory;
|
|
8
|
-
const ECSqlValueSelectorSnippets_js_1 = require("../ecsql-snippets/ECSqlValueSelectorSnippets.js");
|
|
9
|
-
const ClassBasedInstanceLabelSelectClauseFactory_js_1 = require("./ClassBasedInstanceLabelSelectClauseFactory.js");
|
|
10
|
-
const Utils_js_1 = require("./Utils.js");
|
|
11
|
-
/**
|
|
12
|
-
* Creates a label select clause according to BIS instance label rules.
|
|
13
|
-
* @see https://www.itwinjs.org/presentation/advanced/defaultbisrules/#label-overrides
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
function createBisInstanceLabelSelectClauseFactory(props) {
|
|
17
|
-
const clauses = [];
|
|
18
|
-
const factory = (0, ClassBasedInstanceLabelSelectClauseFactory_js_1.createClassBasedInstanceLabelSelectClauseFactory)({
|
|
19
|
-
classHierarchyInspector: props.classHierarchyInspector,
|
|
20
|
-
clauses,
|
|
21
|
-
});
|
|
22
|
-
clauses.push({
|
|
23
|
-
className: "BisCore.GeometricElement",
|
|
24
|
-
clause: async ({ classAlias, ...rest }) => `
|
|
25
|
-
COALESCE(
|
|
26
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "CodeValue")},
|
|
27
|
-
${(0, Utils_js_1.concatenate)(rest, [
|
|
28
|
-
{ selector: (0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel") },
|
|
29
|
-
...(0, Utils_js_1.createECInstanceIdSuffixSelectors)(classAlias),
|
|
30
|
-
], `${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel")} IS NOT NULL`)}
|
|
31
|
-
)
|
|
32
|
-
`,
|
|
33
|
-
}, {
|
|
34
|
-
className: "BisCore.Element",
|
|
35
|
-
clause: async ({ classAlias }) => `
|
|
36
|
-
COALESCE(
|
|
37
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "UserLabel")},
|
|
38
|
-
${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "CodeValue")}
|
|
39
|
-
)
|
|
40
|
-
`,
|
|
41
|
-
}, {
|
|
42
|
-
className: "BisCore.Model",
|
|
43
|
-
clause: async ({ classAlias, ...rest }) => {
|
|
44
|
-
const elementAlias = `${Utils_js_1.ALIAS_PREFIX}e`;
|
|
45
|
-
return `(
|
|
46
|
-
SELECT ${await factory.createSelectClause({ ...rest, classAlias: elementAlias, className: "BisCore.Element" })}
|
|
47
|
-
FROM [bis].[Element] AS ${elementAlias}
|
|
48
|
-
WHERE ${elementAlias}.[ECInstanceId] = ${(0, ECSqlValueSelectorSnippets_js_1.createRawPropertyValueSelector)(classAlias, "ModeledElement", "Id")}
|
|
49
|
-
)`;
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
return factory;
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=BisInstanceLabelSelectClauseFactory.js.map
|
package/lib/cjs/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BisInstanceLabelSelectClauseFactory.js","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/BisInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;AAuBhG,8FA+CC;AApED,mGAAiG;AACjG,mHAAmH;AACnH,yCAA0F;AAc1F;;;;GAIG;AACH,SAAgB,yCAAyC,CACvD,KAA+C;IAE/C,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,gGAAgD,EAAC;QAC/D,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;QACtD,OAAO;KACR,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,CACV;QACE,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC;;YAErC,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC;YACvD,IAAA,sBAAW,EACX,IAAI,EACJ;YACE,EAAE,QAAQ,EAAE,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE;YACrE,GAAG,IAAA,4CAAiC,EAAC,UAAU,CAAC;SACjD,EACD,GAAG,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC,cAAc,CACzE;;OAEJ;KACF,EACD;QACE,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;;YAE5B,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC;YACvD,IAAA,8DAA8B,EAAC,UAAU,EAAE,WAAW,CAAC;;OAE5D;KACF,EACD;QACE,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;YACxC,MAAM,YAAY,GAAG,GAAG,uBAAY,GAAG,CAAC;YACxC,OAAO;iBACE,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;kCACpF,YAAY;gBAC9B,YAAY,qBAAqB,IAAA,8DAA8B,EAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,CAAC;QAC3G,CAAC;QACH,CAAC;KACF,CACF,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClassBasedInstanceLabelSelectClauseFactory.d.ts","sourceRoot":"","sources":["../../../../src/shared/instance-label-factory-impls/ClassBasedInstanceLabelSelectClauseFactory.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,oCAAoC,EACpC,iCAAiC,EAClC,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB;IACtB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC;IAC5B,iEAAiE;IACjE,MAAM,EAAE,CAAC,KAAK,EAAE,oCAAoC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAED;;;GAGG;AACH,MAAM,WAAW,+CAA+C;IAC9D,iDAAiD;IACjD,uBAAuB,EAAE,yBAAyB,CAAC;IAEnD;;;;;;OAMG;IACH,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAEvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,iCAAiC,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,gDAAgD,CAC9D,KAAK,EAAE,+CAA+C,GACrD,iCAAiC,CAyDnC"}
|