@itwin/presentation-shared 0.2.0 → 0.3.1
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 +21 -0
- package/lib/cjs/shared/ConcatenatedValue.d.ts +5 -2
- package/lib/cjs/shared/ConcatenatedValue.d.ts.map +1 -1
- package/lib/cjs/shared/ConcatenatedValue.js +12 -2
- package/lib/cjs/shared/ConcatenatedValue.js.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js +11 -7
- package/lib/cjs/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
- package/lib/esm/shared/ConcatenatedValue.d.ts +5 -2
- package/lib/esm/shared/ConcatenatedValue.d.ts.map +1 -1
- package/lib/esm/shared/ConcatenatedValue.js +12 -2
- package/lib/esm/shared/ConcatenatedValue.js.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.d.ts.map +1 -1
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js +11 -7
- package/lib/esm/shared/ecsql-snippets/ECSqlJoinSnippets.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @itwin/presentation-shared
|
|
2
2
|
|
|
3
|
+
## 0.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#631](https://github.com/iTwin/presentation/pull/631): Fix `ECSql.createRelationshipPathJoinClause` creating an invalid JOIN clause in case of reversed relationship step that uses a navigation property.
|
|
8
|
+
|
|
9
|
+
## 0.3.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#628](https://github.com/iTwin/presentation/pull/628): Added support for nested concatenated values by adding `ConcatenatedValue` to the `ConcatenatedValuePart` union. In addition:
|
|
14
|
+
|
|
15
|
+
- A type guard `ConcatenatedValuePart.isConcatenatedValue` has been added to distinguish it from other types of `ConcatenatedValuePart`.
|
|
16
|
+
- `ConcatenatedValue.serialize` has been modified to handle the new type of part seamlessly, so the `partFormatter` prop function receives the same 3 types of `ConcatenatedValuePart`, expanded from nested `ConcatenatedValue` if necessary.
|
|
17
|
+
|
|
18
|
+
The change makes combining multiple concatenated values easier, e.g. now you can do this:
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
const value: ConcatenatedValue = [createConcatenatedValueX(), { type: "String", value: " - " }, createConcatenatedValueY()];
|
|
22
|
+
```
|
|
23
|
+
|
|
3
24
|
## 0.2.0
|
|
4
25
|
|
|
5
26
|
### Minor Changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PrimitivePropertyValue, TypedPrimitiveValue } from "./Values";
|
|
2
2
|
/**
|
|
3
3
|
* A part of a `ConcatenatedValue`, describing one piece of the value. Possible types:
|
|
4
|
+
* - `ConcatenatedValue` describes a nested concatenated value.
|
|
4
5
|
* - `PrimitivePropertyValue` describes an ECProperty value. Generally the value is formatted according to
|
|
5
6
|
* property metadata before concatenating with other parts.
|
|
6
7
|
* - `TypedPrimitiveValue` describes a value with its type. Generally the value is formatted
|
|
@@ -10,7 +11,7 @@ import { PrimitivePropertyValue, TypedPrimitiveValue } from "./Values";
|
|
|
10
11
|
* @see `ConcatenatedValue`
|
|
11
12
|
* @beta
|
|
12
13
|
*/
|
|
13
|
-
export type ConcatenatedValuePart = PrimitivePropertyValue | TypedPrimitiveValue | string;
|
|
14
|
+
export type ConcatenatedValuePart = ConcatenatedValue | PrimitivePropertyValue | TypedPrimitiveValue | string;
|
|
14
15
|
/** @beta */
|
|
15
16
|
export declare namespace ConcatenatedValuePart {
|
|
16
17
|
/** @beta */
|
|
@@ -19,6 +20,8 @@ export declare namespace ConcatenatedValuePart {
|
|
|
19
20
|
function isPrimitive(part: ConcatenatedValuePart): part is TypedPrimitiveValue;
|
|
20
21
|
/** @beta */
|
|
21
22
|
function isProperty(part: ConcatenatedValuePart): part is PrimitivePropertyValue;
|
|
23
|
+
/** @beta */
|
|
24
|
+
function isConcatenatedValue(part: ConcatenatedValuePart): part is ConcatenatedValue;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* A data structure that contains `ConcatenatedValuePart` objects describing
|
|
@@ -39,7 +42,7 @@ export declare namespace ConcatenatedValue {
|
|
|
39
42
|
/** The parts to join. */
|
|
40
43
|
parts: ConcatenatedValue;
|
|
41
44
|
/** Parts formatter to convert each part to string */
|
|
42
|
-
partFormatter: (part: ConcatenatedValuePart) => Promise<string>;
|
|
45
|
+
partFormatter: (part: Exclude<ConcatenatedValuePart, ConcatenatedValue>) => Promise<string>;
|
|
43
46
|
/** Optional separator for joining the parts. Defaults to an empty string. */
|
|
44
47
|
separator?: string;
|
|
45
48
|
}): Promise<string>;
|
|
@@ -1 +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
|
|
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;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE9G,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;IAED,YAAY;IACZ,SAAgB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,iBAAiB,CAE1F;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,OAAO,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5F,6EAA6E;QAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;CACF"}
|
|
@@ -25,6 +25,11 @@ var ConcatenatedValuePart;
|
|
|
25
25
|
return !!candidate.className && !!candidate.propertyName;
|
|
26
26
|
}
|
|
27
27
|
ConcatenatedValuePart.isProperty = isProperty;
|
|
28
|
+
/** @beta */
|
|
29
|
+
function isConcatenatedValue(part) {
|
|
30
|
+
return Array.isArray(part);
|
|
31
|
+
}
|
|
32
|
+
ConcatenatedValuePart.isConcatenatedValue = isConcatenatedValue;
|
|
28
33
|
})(ConcatenatedValuePart || (exports.ConcatenatedValuePart = ConcatenatedValuePart = {}));
|
|
29
34
|
/** @beta */
|
|
30
35
|
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
@@ -37,8 +42,13 @@ var ConcatenatedValue;
|
|
|
37
42
|
* @beta
|
|
38
43
|
*/
|
|
39
44
|
async function serialize(props) {
|
|
40
|
-
const { parts, partFormatter } = props;
|
|
41
|
-
return (await Promise.all(parts.map(
|
|
45
|
+
const { parts, partFormatter, separator } = props;
|
|
46
|
+
return (await Promise.all(parts.map(async (part) => {
|
|
47
|
+
if (ConcatenatedValuePart.isConcatenatedValue(part)) {
|
|
48
|
+
return serialize({ parts: part, partFormatter, separator });
|
|
49
|
+
}
|
|
50
|
+
return partFormatter(part);
|
|
51
|
+
}))).join(separator ?? "");
|
|
42
52
|
}
|
|
43
53
|
ConcatenatedValue.serialize = serialize;
|
|
44
54
|
})(ConcatenatedValue || (exports.ConcatenatedValue = ConcatenatedValue = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcatenatedValue.js","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;
|
|
1
|
+
{"version":3,"file":"ConcatenatedValue.js","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAkBhG,YAAY;AACZ,2DAA2D;AAC3D,IAAiB,qBAAqB,CAqBrC;AArBD,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;IAED,YAAY;IACZ,SAAgB,mBAAmB,CAAC,IAA2B;QAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAFe,yCAAmB,sBAElC,CAAA;AACH,CAAC,EArBgB,qBAAqB,qCAArB,qBAAqB,QAqBrC;AAUD,YAAY;AACZ,2DAA2D;AAC3D,IAAiB,iBAAiB,CA2BjC;AA3BD,WAAiB,iBAAiB;IAChC;;;;;OAKG;IACI,KAAK,UAAU,SAAS,CAAC,KAO/B;QACC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAnBqB,2BAAS,YAmB9B,CAAA;AACH,CAAC,EA3BgB,iBAAiB,iCAAjB,iBAAiB,QA2BjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlJoinSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAM,gBAAgB,EAAY,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGrG;;GAEG;AACH,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,KAAK,oBAAoB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAEvE;;GAEG;AACH,UAAU,qCAAqC;IAC7C,cAAc,EAAE,gBAAgB,CAAC;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,qCAAqC,
|
|
1
|
+
{"version":3,"file":"ECSqlJoinSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAM,gBAAgB,EAAY,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGrG;;GAEG;AACH,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,KAAK,oBAAoB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAEvE;;GAEG;AACH,UAAU,qCAAqC;IAC7C,cAAc,EAAE,gBAAgB,CAAC;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,qCAAqC,mBAsElG"}
|
|
@@ -45,15 +45,19 @@ async function createRelationshipPathJoinClause(props) {
|
|
|
45
45
|
const step = await getRelationshipPathStepClasses(props.schemaProvider, stepDef);
|
|
46
46
|
const navigationProperty = await getNavigationProperty(step);
|
|
47
47
|
if (navigationProperty) {
|
|
48
|
-
const
|
|
48
|
+
const isNavigationPropertyForward = navigationProperty.direction === "Forward";
|
|
49
|
+
const relationshipJoinPropertyNames = isNavigationPropertyForward === !step.relationshipReverse
|
|
50
|
+
? {
|
|
51
|
+
this: (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId"),
|
|
52
|
+
next: (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(prev.alias, navigationProperty.name, "Id"),
|
|
53
|
+
}
|
|
54
|
+
: {
|
|
55
|
+
this: (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(step.targetAlias, navigationProperty.name, "Id"),
|
|
56
|
+
next: (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName),
|
|
57
|
+
};
|
|
49
58
|
clause += `
|
|
50
59
|
${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
|
|
51
|
-
|
|
52
|
-
? (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(step.targetAlias, "ECInstanceId")
|
|
53
|
-
: (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(step.targetAlias, navigationProperty.name, "Id")}
|
|
54
|
-
= ${propertyDirectionMatchesRelationshipDirection
|
|
55
|
-
? (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(prev.alias, navigationProperty.name, "Id")
|
|
56
|
-
: (0, ECSqlValueSelectorSnippets_1.createRawPropertyValueSelector)(prev.alias, prev.joinPropertyName)}
|
|
60
|
+
ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}
|
|
57
61
|
`;
|
|
58
62
|
prev = {
|
|
59
63
|
alias: step.targetAlias,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":";AAAA;;;gGAGgG;;;AAEhG,0CAAqG;AACrG,6EAA8E;AAyB9E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACI,KAAK,UAAU,gCAAgC,CAAC,KAA4C;IACjG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,GAAG;QACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;QAChC,gBAAgB,EAAE,cAAc;QAChC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe;KACzC,CAAC;IACF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PrimitivePropertyValue, TypedPrimitiveValue } from "./Values";
|
|
2
2
|
/**
|
|
3
3
|
* A part of a `ConcatenatedValue`, describing one piece of the value. Possible types:
|
|
4
|
+
* - `ConcatenatedValue` describes a nested concatenated value.
|
|
4
5
|
* - `PrimitivePropertyValue` describes an ECProperty value. Generally the value is formatted according to
|
|
5
6
|
* property metadata before concatenating with other parts.
|
|
6
7
|
* - `TypedPrimitiveValue` describes a value with its type. Generally the value is formatted
|
|
@@ -10,7 +11,7 @@ import { PrimitivePropertyValue, TypedPrimitiveValue } from "./Values";
|
|
|
10
11
|
* @see `ConcatenatedValue`
|
|
11
12
|
* @beta
|
|
12
13
|
*/
|
|
13
|
-
export type ConcatenatedValuePart = PrimitivePropertyValue | TypedPrimitiveValue | string;
|
|
14
|
+
export type ConcatenatedValuePart = ConcatenatedValue | PrimitivePropertyValue | TypedPrimitiveValue | string;
|
|
14
15
|
/** @beta */
|
|
15
16
|
export declare namespace ConcatenatedValuePart {
|
|
16
17
|
/** @beta */
|
|
@@ -19,6 +20,8 @@ export declare namespace ConcatenatedValuePart {
|
|
|
19
20
|
function isPrimitive(part: ConcatenatedValuePart): part is TypedPrimitiveValue;
|
|
20
21
|
/** @beta */
|
|
21
22
|
function isProperty(part: ConcatenatedValuePart): part is PrimitivePropertyValue;
|
|
23
|
+
/** @beta */
|
|
24
|
+
function isConcatenatedValue(part: ConcatenatedValuePart): part is ConcatenatedValue;
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* A data structure that contains `ConcatenatedValuePart` objects describing
|
|
@@ -39,7 +42,7 @@ export declare namespace ConcatenatedValue {
|
|
|
39
42
|
/** The parts to join. */
|
|
40
43
|
parts: ConcatenatedValue;
|
|
41
44
|
/** Parts formatter to convert each part to string */
|
|
42
|
-
partFormatter: (part: ConcatenatedValuePart) => Promise<string>;
|
|
45
|
+
partFormatter: (part: Exclude<ConcatenatedValuePart, ConcatenatedValue>) => Promise<string>;
|
|
43
46
|
/** Optional separator for joining the parts. Defaults to an empty string. */
|
|
44
47
|
separator?: string;
|
|
45
48
|
}): Promise<string>;
|
|
@@ -1 +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
|
|
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;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAE9G,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;IAED,YAAY;IACZ,SAAgB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,IAAI,iBAAiB,CAE1F;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,OAAO,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5F,6EAA6E;QAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;CACF"}
|
|
@@ -22,6 +22,11 @@ export var ConcatenatedValuePart;
|
|
|
22
22
|
return !!candidate.className && !!candidate.propertyName;
|
|
23
23
|
}
|
|
24
24
|
ConcatenatedValuePart.isProperty = isProperty;
|
|
25
|
+
/** @beta */
|
|
26
|
+
function isConcatenatedValue(part) {
|
|
27
|
+
return Array.isArray(part);
|
|
28
|
+
}
|
|
29
|
+
ConcatenatedValuePart.isConcatenatedValue = isConcatenatedValue;
|
|
25
30
|
})(ConcatenatedValuePart || (ConcatenatedValuePart = {}));
|
|
26
31
|
/** @beta */
|
|
27
32
|
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
@@ -34,8 +39,13 @@ export var ConcatenatedValue;
|
|
|
34
39
|
* @beta
|
|
35
40
|
*/
|
|
36
41
|
async function serialize(props) {
|
|
37
|
-
const { parts, partFormatter } = props;
|
|
38
|
-
return (await Promise.all(parts.map(
|
|
42
|
+
const { parts, partFormatter, separator } = props;
|
|
43
|
+
return (await Promise.all(parts.map(async (part) => {
|
|
44
|
+
if (ConcatenatedValuePart.isConcatenatedValue(part)) {
|
|
45
|
+
return serialize({ parts: part, partFormatter, separator });
|
|
46
|
+
}
|
|
47
|
+
return partFormatter(part);
|
|
48
|
+
}))).join(separator ?? "");
|
|
39
49
|
}
|
|
40
50
|
ConcatenatedValue.serialize = serialize;
|
|
41
51
|
})(ConcatenatedValue || (ConcatenatedValue = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcatenatedValue.js","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;
|
|
1
|
+
{"version":3,"file":"ConcatenatedValue.js","sourceRoot":"","sources":["../../../src/shared/ConcatenatedValue.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAkBhG,YAAY;AACZ,2DAA2D;AAC3D,MAAM,KAAW,qBAAqB,CAqBrC;AArBD,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;IAED,YAAY;IACZ,SAAgB,mBAAmB,CAAC,IAA2B;QAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAFe,yCAAmB,sBAElC,CAAA;AACH,CAAC,EArBgB,qBAAqB,KAArB,qBAAqB,QAqBrC;AAUD,YAAY;AACZ,2DAA2D;AAC3D,MAAM,KAAW,iBAAiB,CA2BjC;AA3BD,WAAiB,iBAAiB;IAChC;;;;;OAKG;IACI,KAAK,UAAU,SAAS,CAAC,KAO/B;QACC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvB,IAAI,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAnBqB,2BAAS,YAmB9B,CAAA;AACH,CAAC,EA3BgB,iBAAiB,KAAjB,iBAAiB,QA2BjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlJoinSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAM,gBAAgB,EAAY,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGrG;;GAEG;AACH,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,KAAK,oBAAoB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAEvE;;GAEG;AACH,UAAU,qCAAqC;IAC7C,cAAc,EAAE,gBAAgB,CAAC;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,qCAAqC,
|
|
1
|
+
{"version":3,"file":"ECSqlJoinSnippets.d.ts","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAM,gBAAgB,EAAY,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGrG;;GAEG;AACH,UAAU,wBAAyB,SAAQ,oBAAoB;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,KAAK,oBAAoB,GAAG,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;AAEvE;;GAEG;AACH,UAAU,qCAAqC;IAC7C,cAAc,EAAE,gBAAgB,CAAC;IACjC,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,qCAAqC,mBAsElG"}
|
|
@@ -42,15 +42,19 @@ export async function createRelationshipPathJoinClause(props) {
|
|
|
42
42
|
const step = await getRelationshipPathStepClasses(props.schemaProvider, stepDef);
|
|
43
43
|
const navigationProperty = await getNavigationProperty(step);
|
|
44
44
|
if (navigationProperty) {
|
|
45
|
-
const
|
|
45
|
+
const isNavigationPropertyForward = navigationProperty.direction === "Forward";
|
|
46
|
+
const relationshipJoinPropertyNames = isNavigationPropertyForward === !step.relationshipReverse
|
|
47
|
+
? {
|
|
48
|
+
this: createRawPropertyValueSelector(step.targetAlias, "ECInstanceId"),
|
|
49
|
+
next: createRawPropertyValueSelector(prev.alias, navigationProperty.name, "Id"),
|
|
50
|
+
}
|
|
51
|
+
: {
|
|
52
|
+
this: createRawPropertyValueSelector(step.targetAlias, navigationProperty.name, "Id"),
|
|
53
|
+
next: createRawPropertyValueSelector(prev.alias, prev.joinPropertyName),
|
|
54
|
+
};
|
|
46
55
|
clause += `
|
|
47
56
|
${getJoinClause(step.joinType)} ${getClassSelectClause(step.target, step.targetAlias)}
|
|
48
|
-
|
|
49
|
-
? createRawPropertyValueSelector(step.targetAlias, "ECInstanceId")
|
|
50
|
-
: createRawPropertyValueSelector(step.targetAlias, navigationProperty.name, "Id")}
|
|
51
|
-
= ${propertyDirectionMatchesRelationshipDirection
|
|
52
|
-
? createRawPropertyValueSelector(prev.alias, navigationProperty.name, "Id")
|
|
53
|
-
: createRawPropertyValueSelector(prev.alias, prev.joinPropertyName)}
|
|
57
|
+
ON ${relationshipJoinPropertyNames.this} = ${relationshipJoinPropertyNames.next}
|
|
54
58
|
`;
|
|
55
59
|
prev = {
|
|
56
60
|
alias: step.targetAlias,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAwB,QAAQ,EAA0C,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAyB9E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,KAA4C;IACjG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,GAAG;QACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW;QAChC,gBAAgB,EAAE,cAAc;QAChC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe;KACzC,CAAC;IACF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,8BAA8B,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"ECSqlJoinSnippets.js","sourceRoot":"","sources":["../../../../src/shared/ecsql-snippets/ECSqlJoinSnippets.ts"],"names":[],"mappings":"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"}
|