@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logging.d.ts","sourceRoot":"","sources":["../../src/shared/Logging.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC1D,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;GAGG;AAEH,eAAO,MAAM,WAAW,EAAE,OAMzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../src/shared/Logging.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AA0BhG;;;GAGG;AACH,qBAAqB;AACrB,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;IACtB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;IACjB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC;AACF,oBAAoB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An utility `Omit` type which works with union types.
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
export type OmitOverUnion<T, K extends PropertyKey> = T extends T ? Omit<T, K> : never;
|
|
6
|
+
/**
|
|
7
|
+
* An utility generic type to get array element's type.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
|
|
11
|
+
/**
|
|
12
|
+
* Extracts the union of parameter tuples from a function type, including all of its
|
|
13
|
+
* overload signatures.
|
|
14
|
+
*
|
|
15
|
+
* `Parameters` from the standard library only ever reflects the last overload signature,
|
|
16
|
+
* so this helper matches against up to four call signatures to recover the full set.
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
type OverloadParameters<TFunc> = TFunc extends {
|
|
20
|
+
(...args: infer A1): any;
|
|
21
|
+
(...args: infer A2): any;
|
|
22
|
+
(...args: infer A3): any;
|
|
23
|
+
(...args: infer A4): any;
|
|
24
|
+
} ? A1 | A2 | A3 | A4 : TFunc extends {
|
|
25
|
+
(...args: infer A1): any;
|
|
26
|
+
(...args: infer A2): any;
|
|
27
|
+
(...args: infer A3): any;
|
|
28
|
+
} ? A1 | A2 | A3 : TFunc extends {
|
|
29
|
+
(...args: infer A1): any;
|
|
30
|
+
(...args: infer A2): any;
|
|
31
|
+
} ? A1 | A2 : TFunc extends (...args: infer A1) => any ? A1 : never;
|
|
32
|
+
/**
|
|
33
|
+
* Maps a single parameter tuple to the type of its lone object argument, preserving
|
|
34
|
+
* `undefined` when the argument is optional.
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
type PropsFromParameters<TParams> = TParams extends [infer TProps] ? Exclude<TProps, undefined> extends object ? TProps : never : TParams extends [(infer TProps)?] ? Exclude<TProps, undefined> extends object ? TProps | undefined : never : never;
|
|
38
|
+
/**
|
|
39
|
+
* Returns type of `TFunc` parameter, when `TFunc` accepts exactly one object argument
|
|
40
|
+
* that can also be `undefined` / optional.
|
|
41
|
+
*
|
|
42
|
+
* When `TFunc` is an overloaded function, the result is a union of the parameter types
|
|
43
|
+
* across all of its overload signatures.
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
export type Props<TFunc extends (...args: any[]) => any> = PropsFromParameters<OverloadParameters<TFunc>>;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=MappedTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;;;;;;;GAOG;AACH,KAAK,kBAAkB,CAAC,KAAK,IAAI,KAAK,SAAS;IAC7C,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GACG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GACjB,KAAK,SAAS;IAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;CAAE,GAC5F,EAAE,GAAG,EAAE,GAAG,EAAE,GACZ,KAAK,SAAS;IAAE,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;CAAE,GAClE,EAAE,GAAG,EAAE,GACP,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,GACtC,EAAE,GACF,KAAK,CAAC;AAEhB;;;;GAIG;AACH,KAAK,mBAAmB,CAAC,OAAO,IAAI,OAAO,SAAS,CAAC,MAAM,MAAM,CAAC,GAC9D,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,GACvC,MAAM,GACN,KAAK,GACP,OAAO,SAAS,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,GACvC,MAAM,GAAG,SAAS,GAClB,KAAK,GACP,KAAK,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,MAAM,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MappedTypes.js","sourceRoot":"","sources":["../../src/shared/MappedTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
|
|
@@ -7,18 +7,30 @@ import type { ECSqlBinding } from "./ECSqlCore.js";
|
|
|
7
7
|
*/
|
|
8
8
|
export interface ECSchemaProvider {
|
|
9
9
|
getSchema(schemaName: string): Promise<EC.Schema | undefined>;
|
|
10
|
+
/**
|
|
11
|
+
* Checks whether the class identified by `derivedClassFullName` is the same as, or derives from, the class
|
|
12
|
+
* identified by `candidateBaseClassFullName`. A class is considered to derive from itself.
|
|
13
|
+
*
|
|
14
|
+
* The result may be returned synchronously when the class hierarchy information is already available, or as a
|
|
15
|
+
* promise otherwise.
|
|
16
|
+
*/
|
|
17
|
+
classDerivesFrom(derivedClassFullName: EC.FullClassNameDotNotation, candidateBaseClassFullName: EC.FullClassNameDotNotation): Promise<boolean> | boolean;
|
|
10
18
|
}
|
|
11
19
|
/**
|
|
12
20
|
* An interface for a class hierarchy inspector that can be used to determine if one class derives from another.
|
|
13
21
|
* @see `createCachingECClassHierarchyInspector`
|
|
22
|
+
* @deprecated in 2.0. Use `ECSchemaProvider` instead - it now exposes `classDerivesFrom` directly.
|
|
14
23
|
* @public
|
|
15
24
|
*/
|
|
16
25
|
export interface ECClassHierarchyInspector {
|
|
17
|
-
classDerivesFrom(derivedClassFullName: EC.
|
|
26
|
+
classDerivesFrom(derivedClassFullName: EC.FullClassNameDotNotation, candidateBaseClassFullName: EC.FullClassNameDotNotation): Promise<boolean> | boolean;
|
|
18
27
|
}
|
|
19
28
|
/**
|
|
20
29
|
* Creates a new `ECClassHierarchyInspector` that caches results of `derivesFrom` calls.
|
|
30
|
+
*
|
|
21
31
|
* @public
|
|
32
|
+
* @deprecated in 2.0. Use `createECSchemaProvider` from `@itwin/presentation-core-interop` instead - the created
|
|
33
|
+
* `ECSchemaProvider` exposes `classDerivesFrom` directly, without the need for a separate class hierarchy inspector.
|
|
22
34
|
*/
|
|
23
35
|
export declare function createCachingECClassHierarchyInspector(props: {
|
|
24
36
|
/** Schema provider used to load schemas and their classes. */
|
|
@@ -55,10 +67,14 @@ export declare namespace EC {
|
|
|
55
67
|
*/
|
|
56
68
|
interface Schema {
|
|
57
69
|
name: string;
|
|
70
|
+
description?: string;
|
|
58
71
|
/** The schema version. Format: `"read.write.minor"`, comparison order: write > read > minor. */
|
|
59
72
|
version: SchemaVersion;
|
|
60
|
-
|
|
61
|
-
|
|
73
|
+
isHidden: boolean;
|
|
74
|
+
getClass(name: string): Class | undefined;
|
|
75
|
+
getEnumeration(name: string): Enumeration | undefined;
|
|
76
|
+
getKindOfQuantity(name: string): KindOfQuantity | undefined;
|
|
77
|
+
getPropertyCategory(name: string): PropertyCategory | undefined;
|
|
62
78
|
}
|
|
63
79
|
/**
|
|
64
80
|
* Represents an ECSchema item - a class, relationship, etc.
|
|
@@ -67,7 +83,7 @@ export declare namespace EC {
|
|
|
67
83
|
*/
|
|
68
84
|
interface SchemaItem {
|
|
69
85
|
schema: Schema;
|
|
70
|
-
fullName:
|
|
86
|
+
fullName: FullClassNameDotNotation;
|
|
71
87
|
name: string;
|
|
72
88
|
label?: string;
|
|
73
89
|
description?: string;
|
|
@@ -78,26 +94,31 @@ export declare namespace EC {
|
|
|
78
94
|
* @public
|
|
79
95
|
*/
|
|
80
96
|
interface Class extends SchemaItem {
|
|
81
|
-
baseClass
|
|
82
|
-
|
|
83
|
-
is(
|
|
84
|
-
|
|
85
|
-
|
|
97
|
+
baseClass?: Class;
|
|
98
|
+
isHidden?: boolean;
|
|
99
|
+
is(className: string, schemaName: string): boolean;
|
|
100
|
+
is(other: Class): boolean;
|
|
101
|
+
getProperty(name: string): Property | undefined;
|
|
102
|
+
getProperties(): Array<Property>;
|
|
86
103
|
/** Gets only the properties defined directly on this class, excluding those inherited from base classes. */
|
|
87
|
-
getOwnProperties():
|
|
104
|
+
getOwnProperties(): Array<Property>;
|
|
88
105
|
isEntityClass(): this is EntityClass;
|
|
89
106
|
isRelationshipClass(): this is RelationshipClass;
|
|
90
107
|
isStructClass(): this is StructClass;
|
|
91
108
|
isMixin(): this is Mixin;
|
|
92
|
-
|
|
93
|
-
|
|
109
|
+
getDerivedClassNames(props?: {
|
|
110
|
+
onlyDirect?: boolean;
|
|
111
|
+
}): EC.FullClassNameDotNotation[];
|
|
94
112
|
}
|
|
95
113
|
/**
|
|
96
114
|
* Represents an entity class.
|
|
97
115
|
* @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/entityclass/
|
|
98
116
|
* @public
|
|
99
117
|
*/
|
|
100
|
-
|
|
118
|
+
interface EntityClass extends Class {
|
|
119
|
+
/** Gets the mixins applied directly to this entity class. */
|
|
120
|
+
getMixins(): Mixin[];
|
|
121
|
+
}
|
|
101
122
|
/**
|
|
102
123
|
* Represents a struct class.
|
|
103
124
|
* @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/structclass/
|
|
@@ -115,7 +136,10 @@ export declare namespace EC {
|
|
|
115
136
|
* @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/kindofquantity/
|
|
116
137
|
* @public
|
|
117
138
|
*/
|
|
118
|
-
|
|
139
|
+
interface KindOfQuantity extends SchemaItem {
|
|
140
|
+
relativeError: number;
|
|
141
|
+
persistenceUnit: string;
|
|
142
|
+
}
|
|
119
143
|
/**
|
|
120
144
|
* Represents a property category used to group related properties.
|
|
121
145
|
* @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/propertycategory/
|
|
@@ -132,7 +156,8 @@ export declare namespace EC {
|
|
|
132
156
|
*/
|
|
133
157
|
interface RelationshipConstraintMultiplicity {
|
|
134
158
|
lowerLimit: number;
|
|
135
|
-
|
|
159
|
+
/** `"unbounded"` when the constraint declares no upper bound (`*`). */
|
|
160
|
+
upperLimit: number | "unbounded";
|
|
136
161
|
}
|
|
137
162
|
/**
|
|
138
163
|
* Represents a relationship constraint.
|
|
@@ -142,7 +167,8 @@ export declare namespace EC {
|
|
|
142
167
|
interface RelationshipConstraint {
|
|
143
168
|
multiplicity: RelationshipConstraintMultiplicity;
|
|
144
169
|
polymorphic: boolean;
|
|
145
|
-
|
|
170
|
+
constraintClasses: Class[];
|
|
171
|
+
abstractConstraint?: EntityClass | Mixin | RelationshipClass;
|
|
146
172
|
}
|
|
147
173
|
/**
|
|
148
174
|
* Represents a relationship class.
|
|
@@ -182,16 +208,17 @@ export declare namespace EC {
|
|
|
182
208
|
*/
|
|
183
209
|
interface Property {
|
|
184
210
|
name: string;
|
|
211
|
+
description?: string;
|
|
185
212
|
class: Class;
|
|
186
213
|
label?: string;
|
|
187
|
-
|
|
188
|
-
|
|
214
|
+
isHidden: boolean;
|
|
215
|
+
kindOfQuantity?: KindOfQuantity;
|
|
216
|
+
category?: PropertyCategory;
|
|
189
217
|
isArray(): this is ArrayProperty;
|
|
190
218
|
isStruct(): this is StructProperty;
|
|
191
219
|
isPrimitive(): this is PrimitiveProperty;
|
|
192
220
|
isEnumeration(): this is EnumerationProperty;
|
|
193
221
|
isNavigation(): this is NavigationProperty;
|
|
194
|
-
getCustomAttributes(): Promise<CustomAttributeSet>;
|
|
195
222
|
}
|
|
196
223
|
/**
|
|
197
224
|
* Defines array property attributes.
|
|
@@ -240,7 +267,7 @@ export declare namespace EC {
|
|
|
240
267
|
* @public
|
|
241
268
|
*/
|
|
242
269
|
interface EnumerationProperty extends Property {
|
|
243
|
-
enumeration
|
|
270
|
+
enumeration?: Enumeration;
|
|
244
271
|
extendedTypeName?: string;
|
|
245
272
|
}
|
|
246
273
|
/**
|
|
@@ -249,7 +276,7 @@ export declare namespace EC {
|
|
|
249
276
|
* @public
|
|
250
277
|
*/
|
|
251
278
|
interface NavigationProperty extends Property {
|
|
252
|
-
relationshipClass:
|
|
279
|
+
relationshipClass: RelationshipClass;
|
|
253
280
|
direction: "Forward" | "Backward";
|
|
254
281
|
}
|
|
255
282
|
/**
|
|
@@ -267,24 +294,6 @@ export declare namespace EC {
|
|
|
267
294
|
primitiveType: PrimitiveType;
|
|
268
295
|
extendedTypeName?: string;
|
|
269
296
|
}
|
|
270
|
-
/**
|
|
271
|
-
* Defines a set of custom attributes that may be applied to a class or property.
|
|
272
|
-
* @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/customattribute/
|
|
273
|
-
* @public
|
|
274
|
-
*/
|
|
275
|
-
interface CustomAttributeSet {
|
|
276
|
-
[Symbol.iterator]: () => IterableIterator<[FullClassName, CustomAttribute]>;
|
|
277
|
-
get(className: FullClassName): CustomAttribute | undefined;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Defines a custom attribute that may be applied to a class or property.
|
|
281
|
-
* @see https://www.itwinjs.org/reference/ecschema-metadata/metadata/customattribute/
|
|
282
|
-
* @public
|
|
283
|
-
*/
|
|
284
|
-
interface CustomAttribute {
|
|
285
|
-
className: FullClassName;
|
|
286
|
-
[propName: string]: any;
|
|
287
|
-
}
|
|
288
297
|
}
|
|
289
298
|
/**
|
|
290
299
|
* A union of all primitive value types supported by the Presentation packages.
|
|
@@ -419,7 +428,7 @@ export interface NavigationValueDescriptor {
|
|
|
419
428
|
* Full name of the relationship's target-constraint class the navigation points at
|
|
420
429
|
* (the referenced instance's class, or its base constraint class).
|
|
421
430
|
*/
|
|
422
|
-
targetClassName: EC.
|
|
431
|
+
targetClassName: EC.FullClassNameDotNotation;
|
|
423
432
|
}
|
|
424
433
|
/**
|
|
425
434
|
* Describes a single step through an ECRelationship from source ECClass to target ECClass.
|
|
@@ -427,11 +436,11 @@ export interface NavigationValueDescriptor {
|
|
|
427
436
|
*/
|
|
428
437
|
export interface RelationshipPathStep {
|
|
429
438
|
/** Full name of the source ECClass */
|
|
430
|
-
sourceClassName: EC.
|
|
439
|
+
sourceClassName: EC.FullClassNameDotNotation;
|
|
431
440
|
/** Full name of the target ECClass */
|
|
432
|
-
targetClassName: EC.
|
|
441
|
+
targetClassName: EC.FullClassNameDotNotation;
|
|
433
442
|
/** Full name of the ECRelationshipClass */
|
|
434
|
-
relationshipName: EC.
|
|
443
|
+
relationshipName: EC.FullClassNameDotNotation;
|
|
435
444
|
/**
|
|
436
445
|
* Indicates that the relationship direction be reversed. This should be set to `true` when step direction
|
|
437
446
|
* doesn't match relationship direction, e.g. relationship is from source `A` to target `B` and the step
|
|
@@ -500,6 +509,6 @@ export type RelationshipPath<TStep extends RelationshipPathStep = RelationshipPa
|
|
|
500
509
|
* @throws Error if the schema or class is not found.
|
|
501
510
|
* @public
|
|
502
511
|
*/
|
|
503
|
-
export declare function getClass(schemaProvider: ECSchemaProvider, fullClassName: EC.
|
|
512
|
+
export declare function getClass(schemaProvider: ECSchemaProvider, fullClassName: EC.FullClassNameDotNotation): Promise<EC.Class>;
|
|
504
513
|
export {};
|
|
505
514
|
//# sourceMappingURL=Metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metadata.d.ts","sourceRoot":"","sources":["../../src/shared/Metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,10 @@ import { LRUMap } from "@itwin/core-bentley";
|
|
|
6
6
|
import { parseFullClassName } from "./Utils.js";
|
|
7
7
|
/**
|
|
8
8
|
* Creates a new `ECClassHierarchyInspector` that caches results of `derivesFrom` calls.
|
|
9
|
+
*
|
|
9
10
|
* @public
|
|
11
|
+
* @deprecated in 2.0. Use `createECSchemaProvider` from `@itwin/presentation-core-interop` instead - the created
|
|
12
|
+
* `ECSchemaProvider` exposes `classDerivesFrom` directly, without the need for a separate class hierarchy inspector.
|
|
10
13
|
*/
|
|
11
14
|
export function createCachingECClassHierarchyInspector(props) {
|
|
12
15
|
const map = new LRUMap(props.cacheSize ?? 0);
|
|
@@ -18,11 +21,9 @@ export function createCachingECClassHierarchyInspector(props) {
|
|
|
18
21
|
const cacheKey = createCacheKey(derivedClassFullName, candidateBaseClassFullName);
|
|
19
22
|
let result = map.get(cacheKey);
|
|
20
23
|
if (result === undefined) {
|
|
21
|
-
result =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
]).then(async ([derivedClass, baseClass]) => {
|
|
25
|
-
const resolvedResult = await derivedClass.is(baseClass);
|
|
24
|
+
result = getClass(props.schemaProvider, derivedClassFullName).then((derivedClass) => {
|
|
25
|
+
const { schemaName: candidateBaseClassSchemaName, className: candidateBaseClassName } = parseFullClassName(candidateBaseClassFullName);
|
|
26
|
+
const resolvedResult = derivedClass.is(candidateBaseClassName, candidateBaseClassSchemaName);
|
|
26
27
|
map.set(cacheKey, resolvedResult);
|
|
27
28
|
return resolvedResult;
|
|
28
29
|
});
|
|
@@ -43,7 +44,7 @@ export async function getClass(schemaProvider, fullClassName) {
|
|
|
43
44
|
if (!schema) {
|
|
44
45
|
throw new Error(`Schema "${schemaName}" not found.`);
|
|
45
46
|
}
|
|
46
|
-
const lookupClass =
|
|
47
|
+
const lookupClass = schema.getClass(className);
|
|
47
48
|
if (!lookupClass) {
|
|
48
49
|
throw new Error(`Class "${className}" not found in schema "${schemaName}".`);
|
|
49
50
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/shared/Metadata.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAuChD;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CAAC,KAMtD;IACC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAqC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACjF,SAAS,cAAc,CAAC,gBAA6C,EAAE,aAA0C;QAC/G,OAAO,GAAG,gBAAgB,IAAI,aAAa,EAAE,CAAC;IAChD,CAAC;IACD,OAAO;QACL,gBAAgB,CACd,oBAAiD,EACjD,0BAAuD;YAEvD,MAAM,QAAQ,GAAG,cAAc,CAAC,oBAAoB,EAAE,0BAA0B,CAAC,CAAC;YAClF,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;oBAClF,MAAM,EAAE,UAAU,EAAE,4BAA4B,EAAE,SAAS,EAAE,sBAAsB,EAAE,GACnF,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;oBACjD,MAAM,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC,sBAAsB,EAAE,4BAA4B,CAAC,CAAC;oBAC7F,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;oBAClC,OAAO,cAAc,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAygBD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,cAAgC,EAChC,aAA0C;IAE1C,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,cAAc,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,0BAA0B,UAAU,IAAI,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -18,12 +18,6 @@ export declare function parseFullClassName(fullClassName: string): {
|
|
|
18
18
|
* @public
|
|
19
19
|
*/
|
|
20
20
|
export declare function normalizeFullClassName(fullClassName: string): EC.FullClassNameDotNotation;
|
|
21
|
-
/**
|
|
22
|
-
* An utility that compares two full class names in a case insensitive way, ignoring different
|
|
23
|
-
* supported schema-class name separators (`.` or `:`).
|
|
24
|
-
* @public
|
|
25
|
-
*/
|
|
26
|
-
export declare function compareFullClassNames(lhs: EC.FullClassName, rhs: EC.FullClassName): number;
|
|
27
21
|
/**
|
|
28
22
|
* An utility to remove all extra whitespace from a given string.
|
|
29
23
|
* @public
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/shared/Utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM;IAmB7C,UAAU;IAA+B,SAAS;EAC5D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,EAAE,CAAC,wBAAwB,CAGzF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AACpD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAc5E;;;;;GAKG;AACH,wBAAsB,iBAAiB,kBAEtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0CAA0C,CAAC,mBAAmB,SAAK,SAEtE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CASrC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAGzD"}
|
|
@@ -39,21 +39,6 @@ export function normalizeFullClassName(fullClassName) {
|
|
|
39
39
|
const { schemaName, className } = parseFullClassName(fullClassName);
|
|
40
40
|
return `${schemaName}.${className}`;
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
43
|
-
* An utility that compares two full class names in a case insensitive way, ignoring different
|
|
44
|
-
* supported schema-class name separators (`.` or `:`).
|
|
45
|
-
* @public
|
|
46
|
-
*/
|
|
47
|
-
export function compareFullClassNames(lhs, rhs) {
|
|
48
|
-
const parsed = { lhs: parseFullClassName(lhs), rhs: parseFullClassName(rhs) };
|
|
49
|
-
const schemaCompare = parsed.lhs.schemaName
|
|
50
|
-
.toLocaleLowerCase()
|
|
51
|
-
.localeCompare(parsed.rhs.schemaName.toLocaleLowerCase());
|
|
52
|
-
if (schemaCompare !== 0) {
|
|
53
|
-
return schemaCompare;
|
|
54
|
-
}
|
|
55
|
-
return parsed.lhs.className.toLocaleLowerCase().localeCompare(parsed.rhs.className.toLocaleLowerCase());
|
|
56
|
-
}
|
|
57
42
|
/** @public */
|
|
58
43
|
export function trimWhitespace(str) {
|
|
59
44
|
if (!str) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/shared/Utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import type { EC, PrimitiveValueType } from "./Metadata.js";
|
|
|
6
6
|
*/
|
|
7
7
|
export interface InstanceKey {
|
|
8
8
|
/** Full class name in format `SchemaName.ClassName` */
|
|
9
|
-
className: EC.
|
|
9
|
+
className: EC.FullClassNameDotNotation;
|
|
10
10
|
/** ECInstance ID */
|
|
11
11
|
id: Id64String;
|
|
12
12
|
}
|
|
@@ -30,7 +30,7 @@ export declare namespace InstanceKey {
|
|
|
30
30
|
* A data structure for a 2d point.
|
|
31
31
|
* @public
|
|
32
32
|
*/
|
|
33
|
-
export interface
|
|
33
|
+
export interface Point2dValue {
|
|
34
34
|
x: number;
|
|
35
35
|
y: number;
|
|
36
36
|
}
|
|
@@ -38,7 +38,7 @@ export interface Point2d {
|
|
|
38
38
|
* A data structure for a 3d point.
|
|
39
39
|
* @public
|
|
40
40
|
*/
|
|
41
|
-
export interface
|
|
41
|
+
export interface Point3dValue {
|
|
42
42
|
x: number;
|
|
43
43
|
y: number;
|
|
44
44
|
z: number;
|
|
@@ -47,20 +47,20 @@ export interface Point3d {
|
|
|
47
47
|
* A union for all supported primitive value types.
|
|
48
48
|
* @public
|
|
49
49
|
*/
|
|
50
|
-
export type PrimitiveValue = Id64String | string | number | boolean | Date |
|
|
50
|
+
export type PrimitiveValue = Id64String | string | number | boolean | Date | Point2dValue | Point3dValue;
|
|
51
51
|
/** @public */
|
|
52
52
|
export declare namespace PrimitiveValue {
|
|
53
53
|
/**
|
|
54
|
-
* Checks whether the given value is a `
|
|
55
|
-
* @note Since `
|
|
54
|
+
* Checks whether the given value is a `Point2dValue`.
|
|
55
|
+
* @note Since `Point3dValue` is a superset of `Point2dValue`, this function will return `true` for `Point3dValue` as well.
|
|
56
56
|
* @public
|
|
57
57
|
*/
|
|
58
|
-
function isPoint2d(value: PrimitiveValue): value is
|
|
58
|
+
function isPoint2d(value: PrimitiveValue): value is Point2dValue;
|
|
59
59
|
/**
|
|
60
|
-
* Checks whether the given value is a `
|
|
60
|
+
* Checks whether the given value is a `Point3dValue`.
|
|
61
61
|
* @public
|
|
62
62
|
*/
|
|
63
|
-
function isPoint3d(value: PrimitiveValue): value is
|
|
63
|
+
function isPoint3d(value: PrimitiveValue): value is Point3dValue;
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* A type for a primitive value, its type and, optionally, its extended type.
|
|
@@ -69,7 +69,15 @@ export declare namespace PrimitiveValue {
|
|
|
69
69
|
*/
|
|
70
70
|
export type TypedPrimitiveValue = ({
|
|
71
71
|
value: number;
|
|
72
|
-
type: Extract<PrimitiveValueType, "Double"
|
|
72
|
+
type: Extract<PrimitiveValueType, "Double">;
|
|
73
|
+
koqName?: string;
|
|
74
|
+
} | {
|
|
75
|
+
value: number;
|
|
76
|
+
type: Extract<PrimitiveValueType, "Integer">;
|
|
77
|
+
koqName?: string;
|
|
78
|
+
} | {
|
|
79
|
+
value: number;
|
|
80
|
+
type: Extract<PrimitiveValueType, "Long">;
|
|
73
81
|
koqName?: string;
|
|
74
82
|
} | {
|
|
75
83
|
value: boolean;
|
|
@@ -84,10 +92,10 @@ export type TypedPrimitiveValue = ({
|
|
|
84
92
|
value: number | string | Date;
|
|
85
93
|
type: Extract<PrimitiveValueType, "DateTime">;
|
|
86
94
|
} | {
|
|
87
|
-
value:
|
|
95
|
+
value: Point2dValue;
|
|
88
96
|
type: Extract<PrimitiveValueType, "Point2d">;
|
|
89
97
|
} | {
|
|
90
|
-
value:
|
|
98
|
+
value: Point3dValue;
|
|
91
99
|
type: Extract<PrimitiveValueType, "Point3d">;
|
|
92
100
|
}) & {
|
|
93
101
|
extendedType?: string;
|
|
@@ -99,7 +107,9 @@ export declare namespace TypedPrimitiveValue {
|
|
|
99
107
|
* @throws Error if primitive type and value are incompatible.
|
|
100
108
|
* @public
|
|
101
109
|
*/
|
|
102
|
-
function create(value:
|
|
110
|
+
function create<TValue extends PrimitiveValue, TType extends PrimitiveValueType>(value: TValue, type: TType, koqName?: string, extendedType?: string): Extract<TypedPrimitiveValue, {
|
|
111
|
+
type: TType;
|
|
112
|
+
}>;
|
|
103
113
|
}
|
|
104
114
|
/**
|
|
105
115
|
* A composite value representing a struct (named record with member values).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Values.d.ts","sourceRoot":"","sources":["../../src/shared/Values.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { compareStrings, Id64 } from "@itwin/core-bentley";
|
|
6
|
+
/** @public */
|
|
7
|
+
export var InstanceKey;
|
|
8
|
+
(function (InstanceKey) {
|
|
9
|
+
/**
|
|
10
|
+
* Checks whether the two given instance keys are equal.
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
function equals(lhs, rhs) {
|
|
14
|
+
return compare(lhs, rhs) === 0;
|
|
15
|
+
}
|
|
16
|
+
InstanceKey.equals = equals;
|
|
17
|
+
/**
|
|
18
|
+
* Compares two given instance keys.
|
|
19
|
+
* @returns
|
|
20
|
+
*- `0` if they are equal
|
|
21
|
+
*- `negative value` if lhs key is less than rhs key
|
|
22
|
+
*- `positive value` if lhs key is more than rhs key
|
|
23
|
+
*/
|
|
24
|
+
function compare(lhs, rhs) {
|
|
25
|
+
const classNameCompareResult = compareStrings(lhs.className, rhs.className);
|
|
26
|
+
if (classNameCompareResult !== 0) {
|
|
27
|
+
return classNameCompareResult;
|
|
28
|
+
}
|
|
29
|
+
return compareStrings(lhs.id, rhs.id);
|
|
30
|
+
}
|
|
31
|
+
InstanceKey.compare = compare;
|
|
32
|
+
})(InstanceKey || (InstanceKey = {}));
|
|
33
|
+
/** @public */
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
35
|
+
export var PrimitiveValue;
|
|
36
|
+
(function (PrimitiveValue) {
|
|
37
|
+
/**
|
|
38
|
+
* Checks whether the given value is a `Point2dValue`.
|
|
39
|
+
* @note Since `Point3dValue` is a superset of `Point2dValue`, this function will return `true` for `Point3dValue` as well.
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
function isPoint2d(value) {
|
|
43
|
+
if (typeof value !== "object") {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return "x" in value && "y" in value;
|
|
47
|
+
}
|
|
48
|
+
PrimitiveValue.isPoint2d = isPoint2d;
|
|
49
|
+
/**
|
|
50
|
+
* Checks whether the given value is a `Point3dValue`.
|
|
51
|
+
* @public
|
|
52
|
+
*/
|
|
53
|
+
function isPoint3d(value) {
|
|
54
|
+
if (typeof value !== "object") {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return "x" in value && "y" in value && "z" in value;
|
|
58
|
+
}
|
|
59
|
+
PrimitiveValue.isPoint3d = isPoint3d;
|
|
60
|
+
})(PrimitiveValue || (PrimitiveValue = {}));
|
|
61
|
+
/** @public */
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
63
|
+
export var TypedPrimitiveValue;
|
|
64
|
+
(function (TypedPrimitiveValue) {
|
|
65
|
+
/**
|
|
66
|
+
* A function for a creating a `TypedPrimitiveValue` object.
|
|
67
|
+
* @throws Error if primitive type and value are incompatible.
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
function create(value, type, koqName, extendedType) {
|
|
71
|
+
// The function's return type narrows `TypedPrimitiveValue` based on the generic `TType`. TypeScript can't verify that the
|
|
72
|
+
// objects created below satisfy that narrowed type, because narrowing the `type`/`value` variables via control flow doesn't
|
|
73
|
+
// narrow the `TType` type parameter itself (it stays generic within the function body). So we build the value with a concrete
|
|
74
|
+
// `TypedPrimitiveValue` return type - which TypeScript does check branch-by-branch - and apply the narrowing with a single
|
|
75
|
+
// cast at the boundary, rather than casting every `return` statement individually.
|
|
76
|
+
return (function () {
|
|
77
|
+
switch (type) {
|
|
78
|
+
case "Double":
|
|
79
|
+
case "Integer":
|
|
80
|
+
case "Long":
|
|
81
|
+
if (typeof value === "number") {
|
|
82
|
+
return { type, koqName, extendedType, value };
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
case "Boolean":
|
|
86
|
+
if (typeof value === "boolean") {
|
|
87
|
+
return { type, extendedType, value };
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
case "Id":
|
|
91
|
+
if (typeof value === "string" && Id64.isId64(value)) {
|
|
92
|
+
return { type, extendedType, value };
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
case "String":
|
|
96
|
+
if (typeof value === "string") {
|
|
97
|
+
return { type, extendedType, value };
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case "DateTime":
|
|
101
|
+
if (typeof value === "string" || typeof value === "number" || value instanceof Date) {
|
|
102
|
+
return { type, extendedType, value };
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
case "Point3d":
|
|
106
|
+
if (PrimitiveValue.isPoint3d(value)) {
|
|
107
|
+
return { type, extendedType, value };
|
|
108
|
+
}
|
|
109
|
+
break;
|
|
110
|
+
case "Point2d":
|
|
111
|
+
if (PrimitiveValue.isPoint2d(value)) {
|
|
112
|
+
return { type, extendedType, value };
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
throw new Error(`PrimitiveValueType ${type} isn't compatible with value ${JSON.stringify(value)}`);
|
|
117
|
+
})();
|
|
118
|
+
}
|
|
119
|
+
TypedPrimitiveValue.create = create;
|
|
120
|
+
})(TypedPrimitiveValue || (TypedPrimitiveValue = {}));
|
|
121
|
+
//# sourceMappingURL=Values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Values.js","sourceRoot":"","sources":["../../src/shared/Values.ts"],"names":[],"mappings":"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"}
|