@itwin/presentation-common 3.4.0-dev.9 → 3.5.0-dev.5
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 +25 -1
- package/lib/cjs/presentation-common/Diagnostics.d.ts +82 -14
- package/lib/cjs/presentation-common/Diagnostics.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Diagnostics.js +52 -2
- package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
- package/lib/cjs/presentation-common/LocalizationHelper.d.ts +30 -0
- package/lib/cjs/presentation-common/LocalizationHelper.d.ts.map +1 -0
- package/lib/cjs/presentation-common/LocalizationHelper.js +111 -0
- package/lib/cjs/presentation-common/LocalizationHelper.js.map +1 -0
- package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +12 -3
- package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/cjs/presentation-common/RulesetsFactory.js +3 -6
- package/lib/cjs/presentation-common/RulesetsFactory.js.map +1 -1
- package/lib/cjs/presentation-common/content/Value.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Value.js +21 -7
- package/lib/cjs/presentation-common/content/Value.js.map +1 -1
- package/lib/cjs/presentation-common.d.ts +1 -0
- package/lib/cjs/presentation-common.d.ts.map +1 -1
- package/lib/cjs/presentation-common.js +1 -0
- package/lib/cjs/presentation-common.js.map +1 -1
- package/lib/esm/presentation-common/Diagnostics.d.ts +82 -14
- package/lib/esm/presentation-common/Diagnostics.d.ts.map +1 -1
- package/lib/esm/presentation-common/Diagnostics.js +49 -1
- package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
- package/lib/esm/presentation-common/LocalizationHelper.d.ts +30 -0
- package/lib/esm/presentation-common/LocalizationHelper.d.ts.map +1 -0
- package/lib/esm/presentation-common/LocalizationHelper.js +107 -0
- package/lib/esm/presentation-common/LocalizationHelper.js.map +1 -0
- package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +12 -3
- package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/esm/presentation-common/RulesetsFactory.js +3 -6
- package/lib/esm/presentation-common/RulesetsFactory.js.map +1 -1
- package/lib/esm/presentation-common/content/Value.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Value.js +21 -7
- package/lib/esm/presentation-common/content/Value.js.map +1 -1
- package/lib/esm/presentation-common.d.ts +1 -0
- package/lib/esm/presentation-common.d.ts.map +1 -1
- package/lib/esm/presentation-common.js +1 -0
- package/lib/esm/presentation-common.js.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,107 @@
|
|
|
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
|
+
/** @packageDocumentation
|
|
6
|
+
* @module Core
|
|
7
|
+
*/
|
|
8
|
+
import { LabelDefinition } from "./LabelDefinition";
|
|
9
|
+
import { Value } from "./content/Value";
|
|
10
|
+
const KEY_PATTERN = /@[\w\d\-_]+:[\w\d\-\._]+?@/g;
|
|
11
|
+
/** @internal */
|
|
12
|
+
export class LocalizationHelper {
|
|
13
|
+
constructor(props) {
|
|
14
|
+
this._getLocalizedString = props.getLocalizedString;
|
|
15
|
+
}
|
|
16
|
+
getLocalizedString(text) {
|
|
17
|
+
return text.replace(KEY_PATTERN, (key) => this._getLocalizedString(key.replace(/^@|@$/g, "")));
|
|
18
|
+
}
|
|
19
|
+
getLocalizedNodes(nodes) {
|
|
20
|
+
for (const node of nodes)
|
|
21
|
+
this.translateNode(node);
|
|
22
|
+
return nodes;
|
|
23
|
+
}
|
|
24
|
+
getLocalizedLabelDefinition(labelDefinition) {
|
|
25
|
+
this.translateLabelDefinition(labelDefinition);
|
|
26
|
+
return labelDefinition;
|
|
27
|
+
}
|
|
28
|
+
getLocalizedLabelDefinitions(labelDefinitions) {
|
|
29
|
+
labelDefinitions.forEach((labelDefinition) => this.translateLabelDefinition(labelDefinition));
|
|
30
|
+
return labelDefinitions;
|
|
31
|
+
}
|
|
32
|
+
getLocalizedContent(content) {
|
|
33
|
+
content.contentSet.forEach((item) => this.translateContentItem(item));
|
|
34
|
+
content.descriptor.fields.forEach((field) => this.translateContentDescriptorField(field));
|
|
35
|
+
content.descriptor.categories.forEach((category) => this.translateContentDescriptorCategory(category));
|
|
36
|
+
return content;
|
|
37
|
+
}
|
|
38
|
+
getLocalizedElementProperties(elem) {
|
|
39
|
+
elem.label = this.getLocalizedString(elem.label);
|
|
40
|
+
return elem;
|
|
41
|
+
}
|
|
42
|
+
translateContentItem(item) {
|
|
43
|
+
for (const key in item.displayValues) {
|
|
44
|
+
// istanbul ignore else
|
|
45
|
+
if (key)
|
|
46
|
+
item.displayValues[key] = this.translateContentItemDisplayValue(item.displayValues[key]);
|
|
47
|
+
}
|
|
48
|
+
for (const key in item.values) {
|
|
49
|
+
// istanbul ignore else
|
|
50
|
+
if (key)
|
|
51
|
+
item.values[key] = this.translateContentItemValue(item.values[key]);
|
|
52
|
+
}
|
|
53
|
+
this.translateLabelDefinition(item.label);
|
|
54
|
+
}
|
|
55
|
+
translateContentItemDisplayValue(value) {
|
|
56
|
+
// istanbul ignore else
|
|
57
|
+
if (typeof value === "string") {
|
|
58
|
+
value = this.getLocalizedString(value);
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
translateContentItemValue(value) {
|
|
63
|
+
if (typeof value === "string") {
|
|
64
|
+
value = this.getLocalizedString(value);
|
|
65
|
+
}
|
|
66
|
+
else if (Value.isNestedContent(value)) {
|
|
67
|
+
for (const nestedValue of value) {
|
|
68
|
+
for (const key in nestedValue.values) {
|
|
69
|
+
// istanbul ignore else
|
|
70
|
+
if (key)
|
|
71
|
+
nestedValue.values[key] = this.translateContentItemValue(nestedValue.values[key]);
|
|
72
|
+
}
|
|
73
|
+
for (const key in nestedValue.displayValues) {
|
|
74
|
+
// istanbul ignore else
|
|
75
|
+
if (key)
|
|
76
|
+
nestedValue.displayValues[key] = this.translateContentItemDisplayValue(nestedValue.displayValues[key]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
translateContentDescriptorField(field) {
|
|
83
|
+
field.label = this.getLocalizedString(field.label);
|
|
84
|
+
}
|
|
85
|
+
translateContentDescriptorCategory(category) {
|
|
86
|
+
category.label = this.getLocalizedString(category.label);
|
|
87
|
+
category.description = this.getLocalizedString(category.description);
|
|
88
|
+
}
|
|
89
|
+
translateNode(node) {
|
|
90
|
+
this.translateLabelDefinition(node.label);
|
|
91
|
+
// istanbul ignore else
|
|
92
|
+
if (node.description)
|
|
93
|
+
node.description = this.getLocalizedString(node.description);
|
|
94
|
+
}
|
|
95
|
+
translateLabelDefinition(labelDefinition) {
|
|
96
|
+
const translateComposite = (compositeValue) => {
|
|
97
|
+
compositeValue.values.map((value) => this.translateLabelDefinition(value));
|
|
98
|
+
};
|
|
99
|
+
if (labelDefinition.typeName === LabelDefinition.COMPOSITE_DEFINITION_TYPENAME)
|
|
100
|
+
translateComposite(labelDefinition.rawValue);
|
|
101
|
+
else if (labelDefinition.typeName === "string") {
|
|
102
|
+
labelDefinition.rawValue = this.getLocalizedString(labelDefinition.rawValue);
|
|
103
|
+
labelDefinition.displayValue = this.getLocalizedString(labelDefinition.displayValue);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=LocalizationHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalizationHelper.js","sourceRoot":"","sources":["../../../src/presentation-common/LocalizationHelper.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Core\r\n */\r\n\r\nimport { Node } from \"./hierarchy/Node\";\r\nimport { Content } from \"./content/Content\";\r\nimport { Item } from \"./content/Item\";\r\nimport { LabelCompositeValue, LabelDefinition } from \"./LabelDefinition\";\r\nimport { DisplayValue, Value } from \"./content/Value\";\r\nimport { Field } from \"./content/Fields\";\r\nimport { CategoryDescription } from \"./content/Category\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\n\r\nconst KEY_PATTERN = /@[\\w\\d\\-_]+:[\\w\\d\\-\\._]+?@/g;\r\n\r\n/** @internal */\r\nexport interface LocalizationHelperProps {\r\n getLocalizedString: (key: string) => string;\r\n}\r\n\r\n/** @internal */\r\nexport class LocalizationHelper {\r\n private _getLocalizedString: (key: string) => string;\r\n\r\n constructor(props: LocalizationHelperProps) {\r\n this._getLocalizedString = props.getLocalizedString;\r\n }\r\n\r\n public getLocalizedString(text: string) {\r\n return text.replace(KEY_PATTERN, (key) => this._getLocalizedString(key.replace(/^@|@$/g, \"\")));\r\n }\r\n\r\n public getLocalizedNodes(nodes: Node[]): Node[] {\r\n for (const node of nodes)\r\n this.translateNode(node);\r\n return nodes;\r\n }\r\n\r\n public getLocalizedLabelDefinition(labelDefinition: LabelDefinition): LabelDefinition {\r\n this.translateLabelDefinition(labelDefinition);\r\n return labelDefinition;\r\n }\r\n\r\n public getLocalizedLabelDefinitions(labelDefinitions: LabelDefinition[]) {\r\n labelDefinitions.forEach((labelDefinition) => this.translateLabelDefinition(labelDefinition));\r\n return labelDefinitions;\r\n }\r\n\r\n public getLocalizedContent(content: Content) {\r\n content.contentSet.forEach((item) => this.translateContentItem(item));\r\n content.descriptor.fields.forEach((field) => this.translateContentDescriptorField(field));\r\n content.descriptor.categories.forEach((category) => this.translateContentDescriptorCategory(category));\r\n return content;\r\n }\r\n\r\n public getLocalizedElementProperties(elem: ElementProperties) {\r\n elem.label = this.getLocalizedString(elem.label);\r\n return elem;\r\n }\r\n\r\n private translateContentItem(item: Item) {\r\n for (const key in item.displayValues) {\r\n // istanbul ignore else\r\n if (key)\r\n item.displayValues[key] = this.translateContentItemDisplayValue(item.displayValues[key]);\r\n }\r\n for (const key in item.values) {\r\n // istanbul ignore else\r\n if (key)\r\n item.values[key] = this.translateContentItemValue(item.values[key]);\r\n }\r\n this.translateLabelDefinition(item.label);\r\n }\r\n\r\n private translateContentItemDisplayValue(value: DisplayValue): DisplayValue {\r\n // istanbul ignore else\r\n if (typeof value === \"string\") {\r\n value = this.getLocalizedString(value);\r\n }\r\n return value;\r\n }\r\n\r\n private translateContentItemValue(value: Value): Value {\r\n if (typeof value === \"string\") {\r\n value = this.getLocalizedString(value);\r\n } else if (Value.isNestedContent(value)) {\r\n for (const nestedValue of value) {\r\n for (const key in nestedValue.values) {\r\n // istanbul ignore else\r\n if (key)\r\n nestedValue.values[key] = this.translateContentItemValue(nestedValue.values[key]);\r\n }\r\n for (const key in nestedValue.displayValues) {\r\n // istanbul ignore else\r\n if (key)\r\n nestedValue.displayValues[key] = this.translateContentItemDisplayValue(nestedValue.displayValues[key]);\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n private translateContentDescriptorField(field: Field) {\r\n field.label = this.getLocalizedString(field.label);\r\n }\r\n\r\n private translateContentDescriptorCategory(category: CategoryDescription) {\r\n category.label = this.getLocalizedString(category.label);\r\n category.description = this.getLocalizedString(category.description);\r\n }\r\n\r\n private translateNode(node: Node) {\r\n this.translateLabelDefinition(node.label);\r\n // istanbul ignore else\r\n if (node.description)\r\n node.description = this.getLocalizedString(node.description);\r\n }\r\n\r\n private translateLabelDefinition(labelDefinition: LabelDefinition) {\r\n const translateComposite = (compositeValue: LabelCompositeValue) => {\r\n compositeValue.values.map((value) => this.translateLabelDefinition(value));\r\n };\r\n\r\n if (labelDefinition.typeName === LabelDefinition.COMPOSITE_DEFINITION_TYPENAME)\r\n translateComposite(labelDefinition.rawValue as LabelCompositeValue);\r\n else if (labelDefinition.typeName === \"string\") {\r\n labelDefinition.rawValue = this.getLocalizedString(labelDefinition.rawValue as string);\r\n labelDefinition.displayValue = this.getLocalizedString(labelDefinition.displayValue);\r\n }\r\n }\r\n\r\n}\r\n"]}
|
|
@@ -26,7 +26,10 @@ import { Omit, PagedResponse } from "./Utils";
|
|
|
26
26
|
export declare type PresentationRpcRequestOptions<TManagerRequestOptions> = Omit<TManagerRequestOptions, "imodel" | "diagnostics"> & {
|
|
27
27
|
/** @internal ID of the client requesting data */
|
|
28
28
|
clientId?: string;
|
|
29
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* RPC request diagnostics options.
|
|
31
|
+
* @beta
|
|
32
|
+
*/
|
|
30
33
|
diagnostics?: RpcDiagnosticsOptions;
|
|
31
34
|
};
|
|
32
35
|
/**
|
|
@@ -40,10 +43,16 @@ export interface PresentationRpcResponseData<TResult = undefined> {
|
|
|
40
43
|
errorMessage?: string;
|
|
41
44
|
/** In case of a success response, the result */
|
|
42
45
|
result?: TResult;
|
|
43
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Diagnostics response.
|
|
48
|
+
* @beta
|
|
49
|
+
*/
|
|
44
50
|
diagnostics?: ClientDiagnostics;
|
|
45
51
|
}
|
|
46
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Data structure for RPC diagnostics options.
|
|
54
|
+
* @beta
|
|
55
|
+
*/
|
|
47
56
|
export declare type RpcDiagnosticsOptions = Omit<ClientDiagnosticsOptions, "handler">;
|
|
48
57
|
/**
|
|
49
58
|
* A promise of [[PresentationRpcResponseData]].
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationRpcInterface.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/PresentationRpcInterface.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAgB,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,8BAA8B,EAAE,+BAA+B,EAAE,iCAAiC,EAAE,qBAAqB,EACzH,4BAA4B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,4BAA4B,EACnH,4CAA4C,EAAE,mCAAmC,EAAE,uBAAuB,EAAE,KAAK,EAAE,4BAA4B,EAC/I,qCAAqC,EACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9C;;;GAGG;AACH,oBAAY,6BAA6B,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG;IAC3H,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"PresentationRpcInterface.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/PresentationRpcInterface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationRpcInterface.js","sourceRoot":"","sources":["../../../src/presentation-common/PresentationRpcInterface.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module RPC\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcInterface, RpcOperation } from \"@itwin/core-common\";\r\nimport { DescriptorJSON, DescriptorOverrides, SelectClassInfoJSON } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsOptions } from \"./Diagnostics\";\r\nimport { CompressedClassInfoJSON, InstanceKeyJSON } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationStatus } from \"./Error\";\r\nimport { NodeKeyJSON } from \"./hierarchy/Key\";\r\nimport { NodeJSON } from \"./hierarchy/Node\";\r\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\r\nimport { KeySetJSON } from \"./KeySet\";\r\nimport { LabelDefinitionJSON } from \"./LabelDefinition\";\r\nimport {\r\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\r\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyRequestOptions, Paged, SelectionScopeRequestOptions,\r\n SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { Omit, PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Base options for all presentation RPC requests.\r\n * @public\r\n */\r\nexport type PresentationRpcRequestOptions<TManagerRequestOptions> = Omit<TManagerRequestOptions, \"imodel\" | \"diagnostics\"> & {\r\n /** @internal ID of the client requesting data */\r\n clientId?: string;\r\n /** @alpha */\r\n diagnostics?: RpcDiagnosticsOptions;\r\n};\r\n\r\n/**\r\n * Data structure for presentation RPC responses\r\n * @public\r\n */\r\nexport interface PresentationRpcResponseData<TResult = undefined> {\r\n /** Response status code */\r\n statusCode: PresentationStatus;\r\n /** In case of an error response, the error message */\r\n errorMessage?: string;\r\n /** In case of a success response, the result */\r\n result?: TResult;\r\n /** @alpha */\r\n diagnostics?: ClientDiagnostics;\r\n}\r\n\r\n/** @alpha */\r\nexport type RpcDiagnosticsOptions = Omit<ClientDiagnosticsOptions, \"handler\">;\r\n\r\n/**\r\n * A promise of [[PresentationRpcResponseData]].\r\n * @public\r\n */\r\nexport type PresentationRpcResponse<TResult = undefined> = Promise<PresentationRpcResponseData<TResult>>;\r\n\r\n/**\r\n * Data structure for hierarchy request options.\r\n * @public\r\n */\r\nexport type HierarchyRpcRequestOptions = PresentationRpcRequestOptions<HierarchyRequestOptions<never, NodeKeyJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by ECInstance paths request options.\r\n * @public\r\n */\r\nexport type FilterByInstancePathsHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByInstancePathsHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by text request options.\r\n * @public\r\n */\r\nexport type FilterByTextHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByTextHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content sources RPC request options.\r\n * @beta\r\n */\r\nexport type ContentSourcesRpcRequestOptions = PresentationRpcRequestOptions<ContentSourcesRequestOptions<never>>;\r\n/**\r\n * Data structure for content sources RPC response.\r\n * @beta\r\n */\r\nexport interface ContentSourcesRpcResult {\r\n /** A list of objects containing content source information. */\r\n sources: SelectClassInfoJSON<Id64String>[];\r\n /** An `ECClassId` => [[CompressedClassInfoJSON]] map for deserializing [[sources]]. */\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n}\r\n\r\n/**\r\n * Data structure for content descriptor RPC request options.\r\n * @public\r\n */\r\nexport type ContentDescriptorRpcRequestOptions = PresentationRpcRequestOptions<ContentDescriptorRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content RPC request options.\r\n * @public\r\n */\r\nexport type ContentRpcRequestOptions = PresentationRpcRequestOptions<ContentRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for single element properties RPC request options.\r\n * @beta\r\n */\r\nexport type SingleElementPropertiesRpcRequestOptions = PresentationRpcRequestOptions<SingleElementPropertiesRequestOptions<never>>;\r\n\r\n/**\r\n * Data structure for distinct values' request options.\r\n * @public\r\n */\r\nexport type DistinctValuesRpcRequestOptions = PresentationRpcRequestOptions<DistinctValuesRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content instance keys' request options.\r\n * @beta\r\n */\r\nexport type ContentInstanceKeysRpcRequestOptions = PresentationRpcRequestOptions<ContentInstanceKeysRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for label request options.\r\n * @public\r\n */\r\nexport type DisplayLabelRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelRequestOptions<never, InstanceKeyJSON>>;\r\n\r\n/**\r\n * Data structure for labels request options.\r\n * @public\r\n */\r\nexport type DisplayLabelsRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelsRequestOptions<never, InstanceKeyJSON>>;\r\n\r\n/**\r\n * Data structure for selection scope request options.\r\n * @public\r\n */\r\nexport type SelectionScopeRpcRequestOptions = PresentationRpcRequestOptions<SelectionScopeRequestOptions<never>>;\r\n\r\n/**\r\n * @alpha\r\n */\r\nexport type ComputeSelectionRpcRequestOptions = PresentationRpcRequestOptions<ComputeSelectionRequestOptions<never>>;\r\n\r\n/**\r\n * Interface used for communication between Presentation backend and frontend.\r\n * @public\r\n */\r\nexport class PresentationRpcInterface extends RpcInterface {\r\n /** The immutable name of the interface. */\r\n public static readonly interfaceName = \"PresentationRpcInterface\"; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n /** The semantic version of the interface. */\r\n public static interfaceVersion = \"3.1.0\";\r\n\r\n /*===========================================================================================\r\n NOTE: Any add/remove/change to the methods below requires an update of the interface version.\r\n NOTE: Please consult the README in core/common/src/rpc for the semantic versioning rules.\r\n ===========================================================================================*/\r\n\r\n public async getNodesCount(_token: IModelRpcProps, _options: HierarchyRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedNodes(_token: IModelRpcProps, _options: Paged<HierarchyRpcRequestOptions>): PresentationRpcResponse<PagedResponse<NodeJSON>> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getNodePaths(_token: IModelRpcProps, _options: FilterByInstancePathsHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getFilteredNodePaths(_token: IModelRpcProps, _options: FilterByTextHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentSources(_token: IModelRpcProps, _options: ContentSourcesRpcRequestOptions): PresentationRpcResponse<ContentSourcesRpcResult> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentDescriptor(_token: IModelRpcProps, _options: ContentDescriptorRpcRequestOptions): PresentationRpcResponse<DescriptorJSON | undefined> {\r\n arguments[1] = { ...arguments[1], transport: \"unparsed-json\" };\r\n const response: PresentationRpcResponseData<DescriptorJSON | string | undefined> = await this.forward(arguments);\r\n if (response.statusCode === PresentationStatus.Success && typeof response.result === \"string\") {\r\n response.result = JSON.parse(response.result);\r\n }\r\n\r\n return response as PresentationRpcResponseData<DescriptorJSON | undefined>;\r\n }\r\n\r\n public async getContentSetSize(_token: IModelRpcProps, _options: ContentRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContent(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContentSet(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<PagedResponse<ItemJSON>> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getElementProperties(_token: IModelRpcProps, _options: SingleElementPropertiesRpcRequestOptions): PresentationRpcResponse<ElementProperties | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedDistinctValues(_token: IModelRpcProps, _options: DistinctValuesRpcRequestOptions): PresentationRpcResponse<PagedResponse<DisplayValueGroupJSON>> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n public async getContentInstanceKeys(_token: IModelRpcProps, _options: ContentInstanceKeysRpcRequestOptions): PresentationRpcResponse<{ total: number, items: KeySetJSON }> { return this.forward(arguments); }\r\n\r\n public async getDisplayLabelDefinition(_token: IModelRpcProps, _options: DisplayLabelRpcRequestOptions): PresentationRpcResponse<LabelDefinitionJSON> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedDisplayLabelDefinitions(_token: IModelRpcProps, _options: DisplayLabelsRpcRequestOptions): PresentationRpcResponse<PagedResponse<LabelDefinitionJSON>> { return this.forward(arguments); }\r\n\r\n public async getSelectionScopes(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions): PresentationRpcResponse<SelectionScope[]> { return this.forward(arguments); }\r\n\r\n // TODO: need to enforce paging on this\r\n public async computeSelection(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions, _ids: Id64String[], _scopeId: string): PresentationRpcResponse<KeySetJSON>;\r\n /** @alpha */\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions): PresentationRpcResponse<KeySetJSON>;\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions | SelectionScopeRpcRequestOptions, _ids?: Id64String[], _scopeId?: string): PresentationRpcResponse<KeySetJSON> { return this.forward(arguments); }\r\n}\r\n\r\n/** @alpha */\r\nexport enum PresentationIpcEvents {\r\n /**\r\n * ID of an event that's emitted when backend detects changes in presented data.\r\n */\r\n Update = \"presentation.onUpdate\",\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PresentationRpcInterface.js","sourceRoot":"","sources":["../../../src/presentation-common/PresentationRpcInterface.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;;;;;;;AAGH,OAAO,EAAkB,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAmJ7C;;;GAGG;AACH,MAAM,OAAO,wBAAyB,SAAQ,YAAY;IAOxD;;;iGAG6F;IAEtF,KAAK,CAAC,aAAa,CAAC,MAAsB,EAAE,QAAoC,IAAqC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAGtJ,KAAK,CAAC,aAAa,CAAC,MAAsB,EAAE,QAA2C,IAAsD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAErL,4CAA4C;IAErC,KAAK,CAAC,YAAY,CAAC,MAAsB,EAAE,QAAyD,IAAoD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEhM,4CAA4C;IAErC,KAAK,CAAC,oBAAoB,CAAC,MAAsB,EAAE,QAAgD,IAAoD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE/L,YAAY;IAEL,KAAK,CAAC,iBAAiB,CAAC,MAAsB,EAAE,QAAyC,IAAsD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAGhL,KAAK,CAAC,oBAAoB,CAAC,MAAsB,EAAE,QAA4C;QACpG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAqE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjH,IAAI,QAAQ,CAAC,UAAU,KAAK,kBAAkB,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;YAC7F,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC/C;QAED,OAAO,QAAmE,CAAC;IAC7E,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,MAAsB,EAAE,QAAkC,IAAqC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAGxJ,KAAK,CAAC,eAAe,CAAC,MAAsB,EAAE,QAAyC,IAA8G,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAGtO,KAAK,CAAC,kBAAkB,CAAC,MAAsB,EAAE,QAAyC,IAAsD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAExL,YAAY;IAEL,KAAK,CAAC,oBAAoB,CAAC,MAAsB,EAAE,QAAkD,IAA4D,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAGlM,KAAK,CAAC,sBAAsB,CAAC,MAAsB,EAAE,QAAyC,IAAmE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEzM,YAAY;IACL,KAAK,CAAC,sBAAsB,CAAC,MAAsB,EAAE,QAA8C,IAAmE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEvM,KAAK,CAAC,yBAAyB,CAAC,MAAsB,EAAE,QAAuC,IAAkD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAGlL,KAAK,CAAC,+BAA+B,CAAC,MAAsB,EAAE,QAAwC,IAAiE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAExM,KAAK,CAAC,kBAAkB,CAAC,MAAsB,EAAE,QAAyC,IAA+C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAO1K,KAAK,CAAC,gBAAgB,CAAC,MAAsB,EAAE,QAA6E,EAAE,IAAmB,EAAE,QAAiB,IAAyC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;AArErP,2CAA2C;AACpB,sCAAa,GAAG,0BAA0B,CAAC,CAAC,2DAA2D;AAE9H,6CAA6C;AAC/B,yCAAgB,GAAG,OAAO,CAAC;AAUzC;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;6DAC0H;AAIrL;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;4DACqI;AAIhM;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;oEACoI;AAI/L;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;iEAC4H;AAGvL;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;oEAS1D;AAKD;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;+DACkL;AAG7O;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;kEAC6H;AAIxL;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;oEAC8I;AAGzM;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;sEAC8I;AAQzM;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;+EACoJ;AAS/M;IADC,YAAY,CAAC,SAAS,CAAC,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC;gEAC0L;AAGvP,aAAa;AACb,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B;;OAEG;IACH,yDAAgC,CAAA;AAClC,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module RPC\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcInterface, RpcOperation } from \"@itwin/core-common\";\r\nimport { DescriptorJSON, DescriptorOverrides, SelectClassInfoJSON } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsOptions } from \"./Diagnostics\";\r\nimport { CompressedClassInfoJSON, InstanceKeyJSON } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationStatus } from \"./Error\";\r\nimport { NodeKeyJSON } from \"./hierarchy/Key\";\r\nimport { NodeJSON } from \"./hierarchy/Node\";\r\nimport { NodePathElementJSON } from \"./hierarchy/NodePathElement\";\r\nimport { KeySetJSON } from \"./KeySet\";\r\nimport { LabelDefinitionJSON } from \"./LabelDefinition\";\r\nimport {\r\n ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions,\r\n ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions,\r\n FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyRequestOptions, Paged, SelectionScopeRequestOptions,\r\n SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { Omit, PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Base options for all presentation RPC requests.\r\n * @public\r\n */\r\nexport type PresentationRpcRequestOptions<TManagerRequestOptions> = Omit<TManagerRequestOptions, \"imodel\" | \"diagnostics\"> & {\r\n /** @internal ID of the client requesting data */\r\n clientId?: string;\r\n /**\r\n * RPC request diagnostics options.\r\n * @beta\r\n */\r\n diagnostics?: RpcDiagnosticsOptions;\r\n};\r\n\r\n/**\r\n * Data structure for presentation RPC responses\r\n * @public\r\n */\r\nexport interface PresentationRpcResponseData<TResult = undefined> {\r\n /** Response status code */\r\n statusCode: PresentationStatus;\r\n /** In case of an error response, the error message */\r\n errorMessage?: string;\r\n /** In case of a success response, the result */\r\n result?: TResult;\r\n /**\r\n * Diagnostics response.\r\n * @beta\r\n */\r\n diagnostics?: ClientDiagnostics;\r\n}\r\n\r\n/**\r\n * Data structure for RPC diagnostics options.\r\n * @beta\r\n */\r\nexport type RpcDiagnosticsOptions = Omit<ClientDiagnosticsOptions, \"handler\">;\r\n\r\n/**\r\n * A promise of [[PresentationRpcResponseData]].\r\n * @public\r\n */\r\nexport type PresentationRpcResponse<TResult = undefined> = Promise<PresentationRpcResponseData<TResult>>;\r\n\r\n/**\r\n * Data structure for hierarchy request options.\r\n * @public\r\n */\r\nexport type HierarchyRpcRequestOptions = PresentationRpcRequestOptions<HierarchyRequestOptions<never, NodeKeyJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by ECInstance paths request options.\r\n * @public\r\n */\r\nexport type FilterByInstancePathsHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByInstancePathsHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for filtering hierarchy by text request options.\r\n * @public\r\n */\r\nexport type FilterByTextHierarchyRpcRequestOptions = PresentationRpcRequestOptions<FilterByTextHierarchyRequestOptions<never, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content sources RPC request options.\r\n * @beta\r\n */\r\nexport type ContentSourcesRpcRequestOptions = PresentationRpcRequestOptions<ContentSourcesRequestOptions<never>>;\r\n/**\r\n * Data structure for content sources RPC response.\r\n * @beta\r\n */\r\nexport interface ContentSourcesRpcResult {\r\n /** A list of objects containing content source information. */\r\n sources: SelectClassInfoJSON<Id64String>[];\r\n /** An `ECClassId` => [[CompressedClassInfoJSON]] map for deserializing [[sources]]. */\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n}\r\n\r\n/**\r\n * Data structure for content descriptor RPC request options.\r\n * @public\r\n */\r\nexport type ContentDescriptorRpcRequestOptions = PresentationRpcRequestOptions<ContentDescriptorRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content RPC request options.\r\n * @public\r\n */\r\nexport type ContentRpcRequestOptions = PresentationRpcRequestOptions<ContentRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for single element properties RPC request options.\r\n * @beta\r\n */\r\nexport type SingleElementPropertiesRpcRequestOptions = PresentationRpcRequestOptions<SingleElementPropertiesRequestOptions<never>>;\r\n\r\n/**\r\n * Data structure for distinct values' request options.\r\n * @public\r\n */\r\nexport type DistinctValuesRpcRequestOptions = PresentationRpcRequestOptions<DistinctValuesRequestOptions<never, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for content instance keys' request options.\r\n * @beta\r\n */\r\nexport type ContentInstanceKeysRpcRequestOptions = PresentationRpcRequestOptions<ContentInstanceKeysRequestOptions<never, KeySetJSON, RulesetVariableJSON>>;\r\n\r\n/**\r\n * Data structure for label request options.\r\n * @public\r\n */\r\nexport type DisplayLabelRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelRequestOptions<never, InstanceKeyJSON>>;\r\n\r\n/**\r\n * Data structure for labels request options.\r\n * @public\r\n */\r\nexport type DisplayLabelsRpcRequestOptions = PresentationRpcRequestOptions<DisplayLabelsRequestOptions<never, InstanceKeyJSON>>;\r\n\r\n/**\r\n * Data structure for selection scope request options.\r\n * @public\r\n */\r\nexport type SelectionScopeRpcRequestOptions = PresentationRpcRequestOptions<SelectionScopeRequestOptions<never>>;\r\n\r\n/**\r\n * @alpha\r\n */\r\nexport type ComputeSelectionRpcRequestOptions = PresentationRpcRequestOptions<ComputeSelectionRequestOptions<never>>;\r\n\r\n/**\r\n * Interface used for communication between Presentation backend and frontend.\r\n * @public\r\n */\r\nexport class PresentationRpcInterface extends RpcInterface {\r\n /** The immutable name of the interface. */\r\n public static readonly interfaceName = \"PresentationRpcInterface\"; // eslint-disable-line @typescript-eslint/naming-convention\r\n\r\n /** The semantic version of the interface. */\r\n public static interfaceVersion = \"3.1.0\";\r\n\r\n /*===========================================================================================\r\n NOTE: Any add/remove/change to the methods below requires an update of the interface version.\r\n NOTE: Please consult the README in core/common/src/rpc for the semantic versioning rules.\r\n ===========================================================================================*/\r\n\r\n public async getNodesCount(_token: IModelRpcProps, _options: HierarchyRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedNodes(_token: IModelRpcProps, _options: Paged<HierarchyRpcRequestOptions>): PresentationRpcResponse<PagedResponse<NodeJSON>> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getNodePaths(_token: IModelRpcProps, _options: FilterByInstancePathsHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n // TODO: add paged version of this (#387280)\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getFilteredNodePaths(_token: IModelRpcProps, _options: FilterByTextHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElementJSON[]> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentSources(_token: IModelRpcProps, _options: ContentSourcesRpcRequestOptions): PresentationRpcResponse<ContentSourcesRpcResult> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getContentDescriptor(_token: IModelRpcProps, _options: ContentDescriptorRpcRequestOptions): PresentationRpcResponse<DescriptorJSON | undefined> {\r\n arguments[1] = { ...arguments[1], transport: \"unparsed-json\" };\r\n const response: PresentationRpcResponseData<DescriptorJSON | string | undefined> = await this.forward(arguments);\r\n if (response.statusCode === PresentationStatus.Success && typeof response.result === \"string\") {\r\n response.result = JSON.parse(response.result);\r\n }\r\n\r\n return response as PresentationRpcResponseData<DescriptorJSON | undefined>;\r\n }\r\n\r\n public async getContentSetSize(_token: IModelRpcProps, _options: ContentRpcRequestOptions): PresentationRpcResponse<number> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContent(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedContentSet(_token: IModelRpcProps, _options: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<PagedResponse<ItemJSON>> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getElementProperties(_token: IModelRpcProps, _options: SingleElementPropertiesRpcRequestOptions): PresentationRpcResponse<ElementProperties | undefined> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedDistinctValues(_token: IModelRpcProps, _options: DistinctValuesRpcRequestOptions): PresentationRpcResponse<PagedResponse<DisplayValueGroupJSON>> { return this.forward(arguments); }\r\n\r\n /** @beta */\r\n public async getContentInstanceKeys(_token: IModelRpcProps, _options: ContentInstanceKeysRpcRequestOptions): PresentationRpcResponse<{ total: number, items: KeySetJSON }> { return this.forward(arguments); }\r\n\r\n public async getDisplayLabelDefinition(_token: IModelRpcProps, _options: DisplayLabelRpcRequestOptions): PresentationRpcResponse<LabelDefinitionJSON> { return this.forward(arguments); }\r\n\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async getPagedDisplayLabelDefinitions(_token: IModelRpcProps, _options: DisplayLabelsRpcRequestOptions): PresentationRpcResponse<PagedResponse<LabelDefinitionJSON>> { return this.forward(arguments); }\r\n\r\n public async getSelectionScopes(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions): PresentationRpcResponse<SelectionScope[]> { return this.forward(arguments); }\r\n\r\n // TODO: need to enforce paging on this\r\n public async computeSelection(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions, _ids: Id64String[], _scopeId: string): PresentationRpcResponse<KeySetJSON>;\r\n /** @alpha */\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions): PresentationRpcResponse<KeySetJSON>;\r\n @RpcOperation.setPolicy({ allowResponseCompression: true })\r\n public async computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions | SelectionScopeRpcRequestOptions, _ids?: Id64String[], _scopeId?: string): PresentationRpcResponse<KeySetJSON> { return this.forward(arguments); }\r\n}\r\n\r\n/** @alpha */\r\nexport enum PresentationIpcEvents {\r\n /**\r\n * ID of an event that's emitted when backend detects changes in presented data.\r\n */\r\n Update = \"presentation.onUpdate\",\r\n}\r\n"]}
|
|
@@ -145,10 +145,9 @@ const createComparison = (type, name, operator, value) => {
|
|
|
145
145
|
compareValue = value.toString();
|
|
146
146
|
break;
|
|
147
147
|
}
|
|
148
|
-
if (type.typeName === "navigation" && typeof value === "object" && Id64.isId64(value.id))
|
|
148
|
+
if (type.typeName === "navigation" && typeof value === "object" && Id64.isId64(value.id))
|
|
149
149
|
// note: this is temporary until we support hex ids in instance filters
|
|
150
150
|
compareValue = hexToDec(value.id);
|
|
151
|
-
}
|
|
152
151
|
if (type.typeName === "point2d" || type.typeName === "point3d") {
|
|
153
152
|
if (typeof value !== "object")
|
|
154
153
|
throw new Error("Expecting point values to be supplied as objects");
|
|
@@ -163,12 +162,10 @@ const createComparison = (type, name, operator, value) => {
|
|
|
163
162
|
comparison += ` AND ${createComparison(dimensionType, `${name}.z`, operator, pointValue.z)}`;
|
|
164
163
|
return comparison;
|
|
165
164
|
}
|
|
166
|
-
if (type.typeName === "double")
|
|
165
|
+
if (type.typeName === "double")
|
|
167
166
|
return `CompareDoubles(${name}, ${compareValue}) ${operator} 0`;
|
|
168
|
-
|
|
169
|
-
if (type.typeName === "dateTime") {
|
|
167
|
+
if (type.typeName === "dateTime")
|
|
170
168
|
return `CompareDateTimes(${name}, ${compareValue}) ${operator} 0`;
|
|
171
|
-
}
|
|
172
169
|
return `${name} ${operator} ${compareValue}`;
|
|
173
170
|
};
|
|
174
171
|
const createMultiClassSpecification = (classInfo) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RulesetsFactory.js","sourceRoot":"","sources":["../../../src/presentation-common/RulesetsFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Core\r\n */\r\n\r\nimport { Guid, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Field, PropertiesField } from \"./content/Fields\";\r\nimport { Item } from \"./content/Item\";\r\nimport { PrimitiveTypeDescription, PropertyValueFormat } from \"./content/TypeDescription\";\r\nimport { DisplayValue, Value } from \"./content/Value\";\r\nimport { ClassInfo, InstanceKey, RelationshipPath } from \"./EC\";\r\nimport { MultiSchemaClassesSpecification, SingleSchemaClassSpecification } from \"./rules/ClassSpecifications\";\r\nimport { ContentSpecificationTypes } from \"./rules/content/ContentSpecification\";\r\nimport { RelatedInstanceSpecification } from \"./rules/RelatedInstanceSpecification\";\r\nimport { RelationshipDirection } from \"./rules/RelationshipDirection\";\r\nimport { RuleTypes } from \"./rules/Rule\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\n\r\n/**\r\n * A factory class that can be used to create presentation rulesets targeted towards\r\n * specific use cases.\r\n *\r\n * @public\r\n */\r\nexport class RulesetsFactory {\r\n private createSimilarInstancesRulesetInfo(field: Field, record: Item) {\r\n if (!field.isPropertiesField())\r\n throw new Error(\"Can only create 'similar instances' ruleset for properties-based records\");\r\n if (field.type.valueFormat !== PropertyValueFormat.Primitive)\r\n throw new Error(\"Can only create 'similar instances' ruleset for primitive properties\");\r\n if (field.properties.length === 0)\r\n throw new Error(\"Invalid properties' field with no properties\");\r\n if (record.isFieldMerged(field.name))\r\n throw new Error(\"Can't create 'similar instances' ruleset for merged values\");\r\n if (!record.classInfo)\r\n throw new Error(\"Can't create 'similar instances' for records based on multiple different ECClass instances\");\r\n const propertyName = getPropertyName(field);\r\n const propertyValue = getPropertyValue(record, field);\r\n const relatedInstanceInfo = createRelatedInstanceSpecInfo(field);\r\n const relatedClass = relatedInstanceInfo?.class;\r\n const ruleset: Ruleset = {\r\n id: `SimilarInstances/${propertyName}/${Guid.createValue()}`,\r\n rules: [],\r\n };\r\n ruleset.rules.push({\r\n ruleType: RuleTypes.Content,\r\n specifications: [{\r\n specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses,\r\n classes: createMultiClassSpecification(record.classInfo),\r\n handleInstancesPolymorphically: true,\r\n relatedInstances: relatedInstanceInfo ? [relatedInstanceInfo.spec] : [],\r\n instanceFilter: createInstanceFilter(relatedInstanceInfo?.spec, field.type, propertyName, propertyValue.raw),\r\n }],\r\n });\r\n return { ruleset, relatedClass, propertyName, propertyValue };\r\n }\r\n\r\n /**\r\n * Create a ruleset with content rules for getting instances are of the\r\n * same ECClass and have the same property value as the provided `record`.\r\n * @param field A field identifying which property of the record we should use\r\n * @param record A record whose similar instances should be found\r\n * @param computeDisplayValue Optional callback function to calculate display value that's\r\n * used in ruleset's description. If not provided, display value from record is used instead.\r\n */\r\n public async createSimilarInstancesRuleset(field: Field, record: Item, computeDisplayValue?: ComputeDisplayValueCallback): Promise<{ ruleset: Ruleset, description: string }> {\r\n const info = this.createSimilarInstancesRulesetInfo(field, record);\r\n const description = await createDescriptionAsync(record, info.relatedClass, field, info.propertyValue, computeDisplayValue);\r\n return { ruleset: info.ruleset, description };\r\n }\r\n}\r\n\r\n/**\r\n * Definition of a function for calculating a display value.\r\n * @public\r\n */\r\nexport type ComputeDisplayValueCallback = (type: string, value: PrimitivePropertyValue, displayValue: string) => Promise<string>;\r\n\r\ninterface PrimitiveValueDef {\r\n raw: PrimitivePropertyValue;\r\n display: string;\r\n}\r\n\r\n/**\r\n * Value of a primitive property.\r\n * @public\r\n */\r\nexport type PrimitivePropertyValue = string | number | boolean | Point | InstanceKey | undefined;\r\n\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\r\ntype Point = { x: number, y: number, z?: number };\r\n\r\nconst toString = (displayValue: Value | DisplayValue): string => {\r\n if (!displayValue)\r\n return \"NULL\";\r\n return displayValue.toString();\r\n};\r\n\r\nconst createDescription = (record: Item, relatedClass: ClassInfo | undefined, field: Field, value: string): string => {\r\n const classInfo = relatedClass ?? record.classInfo!;\r\n return `[${classInfo.label}].[${field.label}] = ${value}`;\r\n};\r\n\r\nconst createDescriptionAsync = async (record: Item, relatedClass: ClassInfo | undefined, field: Field, value: PrimitiveValueDef, computeDisplayValue?: ComputeDisplayValueCallback): Promise<string> => {\r\n const displayValue = computeDisplayValue ? await computeDisplayValue(field.type.typeName, value.raw, value.display) : toString(value.display);\r\n return createDescription(record, relatedClass, field, displayValue);\r\n};\r\n\r\nconst getPropertyName = (field: PropertiesField) => {\r\n let name = field.properties[0].property.name;\r\n if (field.type.typeName === \"navigation\")\r\n name += \".Id\";\r\n return name;\r\n};\r\n\r\nconst isPrimitivePropertyValue = (value: Value): value is PrimitivePropertyValue => {\r\n if (Value.isPrimitive(value)) {\r\n return true;\r\n }\r\n\r\n if (Value.isMap(value)) {\r\n if (typeof value.x === \"number\"\r\n && typeof value.y === \"number\"\r\n && (value.z === undefined || typeof value.z === \"number\")) {\r\n return true;\r\n }\r\n\r\n if (typeof value.className === \"string\" && typeof value.id === \"string\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getPropertyValue = (record: Item, field: Field): PrimitiveValueDef => {\r\n const fieldNamesStack = [];\r\n let currField: Field | undefined = field;\r\n while (currField) {\r\n fieldNamesStack.push(currField.name);\r\n currField = currField.parent;\r\n }\r\n let currFieldName = fieldNamesStack.pop();\r\n let displayValue: DisplayValue = record.displayValues[currFieldName!];\r\n let value: Value = record.values[currFieldName!];\r\n currFieldName = fieldNamesStack.pop();\r\n while (currFieldName) {\r\n if (!Value.isNestedContent(value) || value.length === 0)\r\n throw new Error(\"Invalid record value\");\r\n if (value.length > 1)\r\n throw new Error(\"Can't create 'similar instances' for records related through many part of *-to-many relationship\");\r\n if (value[0].mergedFieldNames.indexOf(currFieldName) !== -1)\r\n throw new Error(\"Can't create 'similar instances' ruleset for merged values\");\r\n displayValue = value[0].displayValues[currFieldName];\r\n value = value[0].values[currFieldName];\r\n currFieldName = fieldNamesStack.pop();\r\n }\r\n if (!isPrimitivePropertyValue(value))\r\n throw new Error(\"Can only create 'similar instances' ruleset for primitive values\");\r\n return { raw: value, display: toString(displayValue) };\r\n};\r\n\r\nconst createInstanceFilter = (\r\n relatedInstanceSpec: Readonly<RelatedInstanceSpecification> | undefined,\r\n propertyType: PrimitiveTypeDescription,\r\n propertyName: string,\r\n propertyValue: PrimitivePropertyValue,\r\n): string => {\r\n const alias = relatedInstanceSpec ? relatedInstanceSpec.alias : \"this\";\r\n return createComparison(propertyType, `${alias}.${propertyName}`, \"=\", propertyValue);\r\n};\r\n\r\ntype Operator = \"=\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\";\r\nconst createComparison = (type: PrimitiveTypeDescription, name: string, operator: Operator, value: PrimitivePropertyValue): string => {\r\n let compareValue = \"\";\r\n switch (typeof value) {\r\n case \"undefined\": compareValue = \"NULL\"; break;\r\n case \"string\": compareValue = `\"${value.replace(/\"/g, `\"\"`)}\"`; break;\r\n case \"boolean\": compareValue = value ? \"TRUE\" : \"FALSE\"; break;\r\n case \"number\": compareValue = value.toString(); break;\r\n }\r\n if (type.typeName === \"navigation\" && typeof value === \"object\" && Id64.isId64((value as InstanceKey).id)) {\r\n // note: this is temporary until we support hex ids in instance filters\r\n compareValue = hexToDec((value as InstanceKey).id);\r\n }\r\n if (type.typeName === \"point2d\" || type.typeName === \"point3d\") {\r\n if (typeof value !== \"object\")\r\n throw new Error(\"Expecting point values to be supplied as objects\");\r\n const dimensionType: PrimitiveTypeDescription = {\r\n valueFormat: PropertyValueFormat.Primitive,\r\n typeName: \"double\",\r\n };\r\n const pointValue = value as Point;\r\n let comparison = `${createComparison(dimensionType, `${name}.x`, operator, pointValue.x)}`;\r\n comparison += ` AND ${createComparison(dimensionType, `${name}.y`, operator, pointValue.y)}`;\r\n if (type.typeName === \"point3d\" && pointValue.z !== undefined)\r\n comparison += ` AND ${createComparison(dimensionType, `${name}.z`, operator, pointValue.z)}`;\r\n return comparison;\r\n }\r\n if (type.typeName === \"double\") {\r\n return `CompareDoubles(${name}, ${compareValue}) ${operator} 0`;\r\n }\r\n if (type.typeName === \"dateTime\") {\r\n return `CompareDateTimes(${name}, ${compareValue}) ${operator} 0`;\r\n }\r\n return `${name} ${operator} ${compareValue}`;\r\n};\r\n\r\nconst createMultiClassSpecification = (classInfo: Readonly<ClassInfo>): MultiSchemaClassesSpecification => {\r\n const [schemaName, className] = classInfo.name.split(\":\");\r\n return { schemaName, classNames: [className] };\r\n};\r\n\r\nconst createSingleClassSpecification = (classInfo: Readonly<ClassInfo>): SingleSchemaClassSpecification => {\r\n const [schemaName, className] = classInfo.name.split(\":\");\r\n return { schemaName, className };\r\n};\r\n\r\nconst createRelatedInstanceSpec = (pathFromSelectToPropertyClass: RelationshipPath, index: number): { spec: RelatedInstanceSpecification, class: ClassInfo } => ({\r\n spec: {\r\n relationshipPath: pathFromSelectToPropertyClass.map((step) => ({\r\n relationship: createSingleClassSpecification(step.relationshipInfo),\r\n direction: step.isForwardRelationship ? RelationshipDirection.Forward : RelationshipDirection.Backward,\r\n targetClass: createSingleClassSpecification(step.targetClassInfo),\r\n })),\r\n isRequired: true,\r\n alias: `related_${index}`,\r\n },\r\n class: pathFromSelectToPropertyClass[pathFromSelectToPropertyClass.length - 1].targetClassInfo,\r\n});\r\n\r\nconst createPathFromSelectToPropertyClass = (field: PropertiesField): RelationshipPath => {\r\n let currField: Field = field;\r\n const pathFromPropertyToSelectClass: RelationshipPath = [];\r\n while (currField.parent) {\r\n pathFromPropertyToSelectClass.push(...currField.parent.pathToPrimaryClass);\r\n currField = currField.parent;\r\n }\r\n return RelationshipPath.reverse(pathFromPropertyToSelectClass);\r\n};\r\n\r\nconst createRelatedInstanceSpecInfo = (field: PropertiesField): { spec: RelatedInstanceSpecification, class: ClassInfo } | undefined => {\r\n const path = createPathFromSelectToPropertyClass(field);\r\n return path.length ? createRelatedInstanceSpec(path, 0) : undefined;\r\n};\r\n\r\nconst hexToDec = (id: Id64String) => {\r\n const digits = [0];\r\n for (let i = 2; i < id.length; ++i) {\r\n let carry = parseInt(id.charAt(i), 16);\r\n for (let j = 0; j < digits.length; ++j) {\r\n digits[j] = digits[j] * 16 + carry;\r\n carry = digits[j] / 10 | 0;\r\n digits[j] %= 10;\r\n }\r\n while (carry > 0) {\r\n digits.push(carry % 10);\r\n carry = carry / 10 | 0;\r\n }\r\n }\r\n return digits.reverse().join(\"\");\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"RulesetsFactory.js","sourceRoot":"","sources":["../../../src/presentation-common/RulesetsFactory.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAc,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAA4B,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAgB,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAA0B,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,iCAAiC,CAAC,KAAY,EAAE,MAAY;QAClE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,mBAAmB,CAAC,SAAS;YAC1D,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,SAAS;YACnB,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAChH,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,CAAC;QAChD,MAAM,OAAO,GAAY;YACvB,EAAE,EAAE,oBAAoB,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YAC5D,KAAK,EAAE,EAAE;SACV,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACjB,QAAQ,EAAE,SAAS,CAAC,OAAO;YAC3B,cAAc,EAAE,CAAC;oBACf,QAAQ,EAAE,yBAAyB,CAAC,iCAAiC;oBACrE,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,SAAS,CAAC;oBACxD,8BAA8B,EAAE,IAAI;oBACpC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;oBACvE,cAAc,EAAE,oBAAoB,CAAC,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC;iBAC7G,CAAC;SACH,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,6BAA6B,CAAC,KAAY,EAAE,MAAY,EAAE,mBAAiD;QACtH,MAAM,IAAI,GAAG,IAAI,CAAC,iCAAiC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAC5H,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;CACF;AAsBD,MAAM,QAAQ,GAAG,CAAC,YAAkC,EAAU,EAAE;IAC9D,IAAI,CAAC,YAAY;QACf,OAAO,MAAM,CAAC;IAChB,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,MAAY,EAAE,YAAmC,EAAE,KAAY,EAAE,KAAa,EAAU,EAAE;IACnH,MAAM,SAAS,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,MAAM,CAAC,SAAU,CAAC;IACpD,OAAO,IAAI,SAAS,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAY,EAAE,YAAmC,EAAE,KAAY,EAAE,KAAwB,EAAE,mBAAiD,EAAmB,EAAE;IACrM,MAAM,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9I,OAAO,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;IACjD,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,YAAY;QACtC,IAAI,IAAI,KAAK,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,KAAY,EAAmC,EAAE;IACjF,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACtB,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ;eAC1B,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ;eAC3B,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAC;SACb;QAED,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE;YACvE,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,MAAY,EAAE,KAAY,EAAqB,EAAE;IACzE,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAsB,KAAK,CAAC;IACzC,OAAO,SAAS,EAAE;QAChB,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;KAC9B;IACD,IAAI,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,YAAY,GAAiB,MAAM,CAAC,aAAa,CAAC,aAAc,CAAC,CAAC;IACtE,IAAI,KAAK,GAAU,MAAM,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC;IACjD,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;IACtC,OAAO,aAAa,EAAE;QACpB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kGAAkG,CAAC,CAAC;QACtH,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC;KACvC;IACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,mBAAuE,EACvE,YAAsC,EACtC,YAAoB,EACpB,aAAqC,EAC7B,EAAE;IACV,MAAM,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IACvE,OAAO,gBAAgB,CAAC,YAAY,EAAE,GAAG,KAAK,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;AACxF,CAAC,CAAC;AAGF,MAAM,gBAAgB,GAAG,CAAC,IAA8B,EAAE,IAAY,EAAE,QAAkB,EAAE,KAA6B,EAAU,EAAE;IACnI,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,QAAQ,OAAO,KAAK,EAAE;QACpB,KAAK,WAAW;YACd,YAAY,GAAG,MAAM,CAAC;YACtB,MAAM;QACR,KAAK,QAAQ;YACX,YAAY,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YAChD,MAAM;QACR,KAAK,SAAS;YACZ,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,MAAM;QACR,KAAK,QAAQ;YACX,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM;KACT;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAE,KAAqB,CAAC,EAAE,CAAC;QACvG,uEAAuE;QACvE,YAAY,GAAG,QAAQ,CAAE,KAAqB,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAEtE,MAAM,aAAa,GAA6B;YAC9C,WAAW,EAAE,mBAAmB,CAAC,SAAS;YAC1C,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,MAAM,UAAU,GAAG,KAAc,CAAC;QAClC,IAAI,UAAU,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,UAAU,IAAI,QAAQ,gBAAgB,CAAC,aAAa,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,KAAK,SAAS;YAC3D,UAAU,IAAI,QAAQ,gBAAgB,CAAC,aAAa,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAE/F,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;QAC5B,OAAO,kBAAkB,IAAI,KAAK,YAAY,KAAK,QAAQ,IAAI,CAAC;IAElE,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;QAC9B,OAAO,oBAAoB,IAAI,KAAK,YAAY,KAAK,QAAQ,IAAI,CAAC;IAEpE,OAAO,GAAG,IAAI,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,SAA8B,EAAmC,EAAE;IACxG,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,8BAA8B,GAAG,CAAC,SAA8B,EAAkC,EAAE;IACxG,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,6BAA+C,EAAE,KAAa,EAA4D,EAAE,CAAC,CAAC;IAC/J,IAAI,EAAE;QACJ,gBAAgB,EAAE,6BAA6B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7D,YAAY,EAAE,8BAA8B,CAAC,IAAI,CAAC,gBAAgB,CAAC;YACnE,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ;YACtG,WAAW,EAAE,8BAA8B,CAAC,IAAI,CAAC,eAAe,CAAC;SAClE,CAAC,CAAC;QACH,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,WAAW,KAAK,EAAE;KAC1B;IACD,KAAK,EAAE,6BAA6B,CAAC,6BAA6B,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe;CAC/F,CAAC,CAAC;AAEH,MAAM,mCAAmC,GAAG,CAAC,KAAsB,EAAoB,EAAE;IACvF,IAAI,SAAS,GAAU,KAAK,CAAC;IAC7B,MAAM,6BAA6B,GAAqB,EAAE,CAAC;IAC3D,OAAO,SAAS,CAAC,MAAM,EAAE;QACvB,6BAA6B,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3E,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;KAC9B;IACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,KAAsB,EAAwE,EAAE;IACrI,MAAM,IAAI,GAAG,mCAAmC,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,EAAc,EAAE,EAAE;IAClC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QAClC,IAAI,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACtC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACnC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACjB;QACD,OAAO,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YACxB,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;SACxB;KACF;IACD,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Core\r\n */\r\n\r\nimport { Guid, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Field, PropertiesField } from \"./content/Fields\";\r\nimport { Item } from \"./content/Item\";\r\nimport { PrimitiveTypeDescription, PropertyValueFormat } from \"./content/TypeDescription\";\r\nimport { DisplayValue, Value } from \"./content/Value\";\r\nimport { ClassInfo, InstanceKey, RelationshipPath } from \"./EC\";\r\nimport { MultiSchemaClassesSpecification, SingleSchemaClassSpecification } from \"./rules/ClassSpecifications\";\r\nimport { ContentSpecificationTypes } from \"./rules/content/ContentSpecification\";\r\nimport { RelatedInstanceSpecification } from \"./rules/RelatedInstanceSpecification\";\r\nimport { RelationshipDirection } from \"./rules/RelationshipDirection\";\r\nimport { RuleTypes } from \"./rules/Rule\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\n\r\n/**\r\n * A factory class that can be used to create presentation rulesets targeted towards\r\n * specific use cases.\r\n *\r\n * @public\r\n */\r\nexport class RulesetsFactory {\r\n private createSimilarInstancesRulesetInfo(field: Field, record: Item) {\r\n if (!field.isPropertiesField())\r\n throw new Error(\"Can only create 'similar instances' ruleset for properties-based records\");\r\n if (field.type.valueFormat !== PropertyValueFormat.Primitive)\r\n throw new Error(\"Can only create 'similar instances' ruleset for primitive properties\");\r\n if (field.properties.length === 0)\r\n throw new Error(\"Invalid properties' field with no properties\");\r\n if (record.isFieldMerged(field.name))\r\n throw new Error(\"Can't create 'similar instances' ruleset for merged values\");\r\n if (!record.classInfo)\r\n throw new Error(\"Can't create 'similar instances' for records based on multiple different ECClass instances\");\r\n const propertyName = getPropertyName(field);\r\n const propertyValue = getPropertyValue(record, field);\r\n const relatedInstanceInfo = createRelatedInstanceSpecInfo(field);\r\n const relatedClass = relatedInstanceInfo?.class;\r\n const ruleset: Ruleset = {\r\n id: `SimilarInstances/${propertyName}/${Guid.createValue()}`,\r\n rules: [],\r\n };\r\n ruleset.rules.push({\r\n ruleType: RuleTypes.Content,\r\n specifications: [{\r\n specType: ContentSpecificationTypes.ContentInstancesOfSpecificClasses,\r\n classes: createMultiClassSpecification(record.classInfo),\r\n handleInstancesPolymorphically: true,\r\n relatedInstances: relatedInstanceInfo ? [relatedInstanceInfo.spec] : [],\r\n instanceFilter: createInstanceFilter(relatedInstanceInfo?.spec, field.type, propertyName, propertyValue.raw),\r\n }],\r\n });\r\n return { ruleset, relatedClass, propertyName, propertyValue };\r\n }\r\n\r\n /**\r\n * Create a ruleset with content rules for getting instances are of the\r\n * same ECClass and have the same property value as the provided `record`.\r\n * @param field A field identifying which property of the record we should use\r\n * @param record A record whose similar instances should be found\r\n * @param computeDisplayValue Optional callback function to calculate display value that's\r\n * used in ruleset's description. If not provided, display value from record is used instead.\r\n */\r\n public async createSimilarInstancesRuleset(field: Field, record: Item, computeDisplayValue?: ComputeDisplayValueCallback): Promise<{ ruleset: Ruleset, description: string }> {\r\n const info = this.createSimilarInstancesRulesetInfo(field, record);\r\n const description = await createDescriptionAsync(record, info.relatedClass, field, info.propertyValue, computeDisplayValue);\r\n return { ruleset: info.ruleset, description };\r\n }\r\n}\r\n\r\n/**\r\n * Definition of a function for calculating a display value.\r\n * @public\r\n */\r\nexport type ComputeDisplayValueCallback = (type: string, value: PrimitivePropertyValue, displayValue: string) => Promise<string>;\r\n\r\ninterface PrimitiveValueDef {\r\n raw: PrimitivePropertyValue;\r\n display: string;\r\n}\r\n\r\n/**\r\n * Value of a primitive property.\r\n * @public\r\n */\r\nexport type PrimitivePropertyValue = string | number | boolean | Point | InstanceKey | undefined;\r\n\r\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\r\ntype Point = { x: number, y: number, z?: number };\r\n\r\nconst toString = (displayValue: Value | DisplayValue): string => {\r\n if (!displayValue)\r\n return \"NULL\";\r\n return displayValue.toString();\r\n};\r\n\r\nconst createDescription = (record: Item, relatedClass: ClassInfo | undefined, field: Field, value: string): string => {\r\n const classInfo = relatedClass ?? record.classInfo!;\r\n return `[${classInfo.label}].[${field.label}] = ${value}`;\r\n};\r\n\r\nconst createDescriptionAsync = async (record: Item, relatedClass: ClassInfo | undefined, field: Field, value: PrimitiveValueDef, computeDisplayValue?: ComputeDisplayValueCallback): Promise<string> => {\r\n const displayValue = computeDisplayValue ? await computeDisplayValue(field.type.typeName, value.raw, value.display) : toString(value.display);\r\n return createDescription(record, relatedClass, field, displayValue);\r\n};\r\n\r\nconst getPropertyName = (field: PropertiesField) => {\r\n let name = field.properties[0].property.name;\r\n if (field.type.typeName === \"navigation\")\r\n name += \".Id\";\r\n return name;\r\n};\r\n\r\nconst isPrimitivePropertyValue = (value: Value): value is PrimitivePropertyValue => {\r\n if (Value.isPrimitive(value)) {\r\n return true;\r\n }\r\n\r\n if (Value.isMap(value)) {\r\n if (typeof value.x === \"number\"\r\n && typeof value.y === \"number\"\r\n && (value.z === undefined || typeof value.z === \"number\")) {\r\n return true;\r\n }\r\n\r\n if (typeof value.className === \"string\" && typeof value.id === \"string\") {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getPropertyValue = (record: Item, field: Field): PrimitiveValueDef => {\r\n const fieldNamesStack = [];\r\n let currField: Field | undefined = field;\r\n while (currField) {\r\n fieldNamesStack.push(currField.name);\r\n currField = currField.parent;\r\n }\r\n let currFieldName = fieldNamesStack.pop();\r\n let displayValue: DisplayValue = record.displayValues[currFieldName!];\r\n let value: Value = record.values[currFieldName!];\r\n currFieldName = fieldNamesStack.pop();\r\n while (currFieldName) {\r\n if (!Value.isNestedContent(value) || value.length === 0)\r\n throw new Error(\"Invalid record value\");\r\n if (value.length > 1)\r\n throw new Error(\"Can't create 'similar instances' for records related through many part of *-to-many relationship\");\r\n if (value[0].mergedFieldNames.indexOf(currFieldName) !== -1)\r\n throw new Error(\"Can't create 'similar instances' ruleset for merged values\");\r\n displayValue = value[0].displayValues[currFieldName];\r\n value = value[0].values[currFieldName];\r\n currFieldName = fieldNamesStack.pop();\r\n }\r\n if (!isPrimitivePropertyValue(value))\r\n throw new Error(\"Can only create 'similar instances' ruleset for primitive values\");\r\n return { raw: value, display: toString(displayValue) };\r\n};\r\n\r\nconst createInstanceFilter = (\r\n relatedInstanceSpec: Readonly<RelatedInstanceSpecification> | undefined,\r\n propertyType: PrimitiveTypeDescription,\r\n propertyName: string,\r\n propertyValue: PrimitivePropertyValue,\r\n): string => {\r\n const alias = relatedInstanceSpec ? relatedInstanceSpec.alias : \"this\";\r\n return createComparison(propertyType, `${alias}.${propertyName}`, \"=\", propertyValue);\r\n};\r\n\r\ntype Operator = \"=\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\";\r\nconst createComparison = (type: PrimitiveTypeDescription, name: string, operator: Operator, value: PrimitivePropertyValue): string => {\r\n let compareValue = \"\";\r\n switch (typeof value) {\r\n case \"undefined\":\r\n compareValue = \"NULL\";\r\n break;\r\n case \"string\":\r\n compareValue = `\"${value.replace(/\"/g, `\"\"`)}\"`;\r\n break;\r\n case \"boolean\":\r\n compareValue = value ? \"TRUE\" : \"FALSE\";\r\n break;\r\n case \"number\":\r\n compareValue = value.toString();\r\n break;\r\n }\r\n\r\n if (type.typeName === \"navigation\" && typeof value === \"object\" && Id64.isId64((value as InstanceKey).id))\r\n // note: this is temporary until we support hex ids in instance filters\r\n compareValue = hexToDec((value as InstanceKey).id);\r\n\r\n if (type.typeName === \"point2d\" || type.typeName === \"point3d\") {\r\n if (typeof value !== \"object\")\r\n throw new Error(\"Expecting point values to be supplied as objects\");\r\n\r\n const dimensionType: PrimitiveTypeDescription = {\r\n valueFormat: PropertyValueFormat.Primitive,\r\n typeName: \"double\",\r\n };\r\n\r\n const pointValue = value as Point;\r\n let comparison = `${createComparison(dimensionType, `${name}.x`, operator, pointValue.x)}`;\r\n comparison += ` AND ${createComparison(dimensionType, `${name}.y`, operator, pointValue.y)}`;\r\n if (type.typeName === \"point3d\" && pointValue.z !== undefined)\r\n comparison += ` AND ${createComparison(dimensionType, `${name}.z`, operator, pointValue.z)}`;\r\n\r\n return comparison;\r\n }\r\n\r\n if (type.typeName === \"double\")\r\n return `CompareDoubles(${name}, ${compareValue}) ${operator} 0`;\r\n\r\n if (type.typeName === \"dateTime\")\r\n return `CompareDateTimes(${name}, ${compareValue}) ${operator} 0`;\r\n\r\n return `${name} ${operator} ${compareValue}`;\r\n};\r\n\r\nconst createMultiClassSpecification = (classInfo: Readonly<ClassInfo>): MultiSchemaClassesSpecification => {\r\n const [schemaName, className] = classInfo.name.split(\":\");\r\n return { schemaName, classNames: [className] };\r\n};\r\n\r\nconst createSingleClassSpecification = (classInfo: Readonly<ClassInfo>): SingleSchemaClassSpecification => {\r\n const [schemaName, className] = classInfo.name.split(\":\");\r\n return { schemaName, className };\r\n};\r\n\r\nconst createRelatedInstanceSpec = (pathFromSelectToPropertyClass: RelationshipPath, index: number): { spec: RelatedInstanceSpecification, class: ClassInfo } => ({\r\n spec: {\r\n relationshipPath: pathFromSelectToPropertyClass.map((step) => ({\r\n relationship: createSingleClassSpecification(step.relationshipInfo),\r\n direction: step.isForwardRelationship ? RelationshipDirection.Forward : RelationshipDirection.Backward,\r\n targetClass: createSingleClassSpecification(step.targetClassInfo),\r\n })),\r\n isRequired: true,\r\n alias: `related_${index}`,\r\n },\r\n class: pathFromSelectToPropertyClass[pathFromSelectToPropertyClass.length - 1].targetClassInfo,\r\n});\r\n\r\nconst createPathFromSelectToPropertyClass = (field: PropertiesField): RelationshipPath => {\r\n let currField: Field = field;\r\n const pathFromPropertyToSelectClass: RelationshipPath = [];\r\n while (currField.parent) {\r\n pathFromPropertyToSelectClass.push(...currField.parent.pathToPrimaryClass);\r\n currField = currField.parent;\r\n }\r\n return RelationshipPath.reverse(pathFromPropertyToSelectClass);\r\n};\r\n\r\nconst createRelatedInstanceSpecInfo = (field: PropertiesField): { spec: RelatedInstanceSpecification, class: ClassInfo } | undefined => {\r\n const path = createPathFromSelectToPropertyClass(field);\r\n return path.length ? createRelatedInstanceSpec(path, 0) : undefined;\r\n};\r\n\r\nconst hexToDec = (id: Id64String) => {\r\n const digits = [0];\r\n for (let i = 2; i < id.length; ++i) {\r\n let carry = parseInt(id.charAt(i), 16);\r\n for (let j = 0; j < digits.length; ++j) {\r\n digits[j] = digits[j] * 16 + carry;\r\n carry = digits[j] / 10 | 0;\r\n digits[j] %= 10;\r\n }\r\n while (carry > 0) {\r\n digits.push(carry % 10);\r\n carry = carry / 10 | 0;\r\n }\r\n }\r\n return digits.reverse().join(\"\");\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Value.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,oBAAY,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAE3G,cAAc;AACd,yBAAiB,KAAK,CAAC;IACrB,+BAA+B;IAC/B,SAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"Value.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Value.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,16 +10,24 @@ import { InstanceKey } from "../EC";
|
|
|
10
10
|
export var Value;
|
|
11
11
|
(function (Value) {
|
|
12
12
|
/** Is the value a primitive */
|
|
13
|
-
function isPrimitive(value) {
|
|
13
|
+
function isPrimitive(value) {
|
|
14
|
+
return isPrimitiveValue(value);
|
|
15
|
+
}
|
|
14
16
|
Value.isPrimitive = isPrimitive;
|
|
15
17
|
/** Is the value an array */
|
|
16
|
-
function isArray(value) {
|
|
18
|
+
function isArray(value) {
|
|
19
|
+
return isArrayValue(value);
|
|
20
|
+
}
|
|
17
21
|
Value.isArray = isArray;
|
|
18
22
|
/** Is the value a map / struct */
|
|
19
|
-
function isMap(value) {
|
|
23
|
+
function isMap(value) {
|
|
24
|
+
return isMapValue(value);
|
|
25
|
+
}
|
|
20
26
|
Value.isMap = isMap;
|
|
21
27
|
/** Is the value a nested content value */
|
|
22
|
-
function isNestedContent(value) {
|
|
28
|
+
function isNestedContent(value) {
|
|
29
|
+
return isNestedContentValue(value);
|
|
30
|
+
}
|
|
23
31
|
Value.isNestedContent = isNestedContent;
|
|
24
32
|
/** Serialize [[Value]] to JSON */
|
|
25
33
|
function fromJSON(json) {
|
|
@@ -52,13 +60,19 @@ export var Value;
|
|
|
52
60
|
export var DisplayValue;
|
|
53
61
|
(function (DisplayValue) {
|
|
54
62
|
/** Is the value a primitive */
|
|
55
|
-
function isPrimitive(value) {
|
|
63
|
+
function isPrimitive(value) {
|
|
64
|
+
return isPrimitiveValue(value);
|
|
65
|
+
}
|
|
56
66
|
DisplayValue.isPrimitive = isPrimitive;
|
|
57
67
|
/** Is the value an array */
|
|
58
|
-
function isArray(value) {
|
|
68
|
+
function isArray(value) {
|
|
69
|
+
return isArrayValue(value);
|
|
70
|
+
}
|
|
59
71
|
DisplayValue.isArray = isArray;
|
|
60
72
|
/** Is the value a map / struct */
|
|
61
|
-
function isMap(value) {
|
|
73
|
+
function isMap(value) {
|
|
74
|
+
return isMapValue(value);
|
|
75
|
+
}
|
|
62
76
|
DisplayValue.isMap = isMap;
|
|
63
77
|
/** Serialize [[DisplayValue]] to JSON */
|
|
64
78
|
function fromJSON(json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Value.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Content\r\n */\r\n\r\nimport { InstanceKey, InstanceKeyJSON } from \"../EC\";\r\nimport { ValuesDictionary } from \"../Utils\";\r\n\r\n/**\r\n * Raw value type\r\n * @public\r\n */\r\nexport type Value = string | number | boolean | undefined | ValuesMap | ValuesArray | NestedContentValue[];\r\n\r\n/** @public */\r\nexport namespace Value { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Is the value a primitive */\r\n export function isPrimitive(value: Value): value is string | number | boolean | undefined { return isPrimitiveValue(value); }\r\n\r\n /** Is the value an array */\r\n export function isArray(value: Value): value is ValuesArray { return isArrayValue(value); }\r\n\r\n /** Is the value a map / struct */\r\n export function isMap(value: Value): value is ValuesMap { return isMapValue(value); }\r\n\r\n /** Is the value a nested content value */\r\n export function isNestedContent(value: Value): value is NestedContentValue[] { return isNestedContentValue(value); }\r\n\r\n /** Serialize [[Value]] to JSON */\r\n export function fromJSON(json: ValueJSON): Value {\r\n if (json === null)\r\n return undefined;\r\n if (isNestedContentValue(json))\r\n return json.map(NestedContentValue.fromJSON);\r\n if (isArrayValue(json))\r\n return valuesArrayFromJSON(json);\r\n if (isMapValue(json))\r\n return valuesMapFromJSON(json);\r\n return json;\r\n }\r\n\r\n /** Deserialize [[Value]] from JSON */\r\n export function toJSON(value: Value): ValueJSON {\r\n if (undefined === value)\r\n return null;\r\n if (isNestedContentValue(value))\r\n return value.map(NestedContentValue.toJSON);\r\n if (isArrayValue(value))\r\n return valuesArrayToJSON(value);\r\n if (isMapValue(value))\r\n return valuesMapToJSON(value);\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * A map of raw values\r\n * @public\r\n */\r\nexport interface ValuesMap extends ValuesDictionary<Value> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * An array of raw values\r\n * @public\r\n */\r\nexport interface ValuesArray extends Array<Value> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Display value type.\r\n * @public\r\n */\r\nexport type DisplayValue = string | undefined | DisplayValuesMap | DisplayValuesArray;\r\n\r\n/** @public */\r\nexport namespace DisplayValue { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Is the value a primitive */\r\n export function isPrimitive(value: DisplayValue): value is string | undefined { return isPrimitiveValue(value); }\r\n\r\n /** Is the value an array */\r\n export function isArray(value: DisplayValue): value is DisplayValuesArray { return isArrayValue(value); }\r\n\r\n /** Is the value a map / struct */\r\n export function isMap(value: DisplayValue): value is DisplayValuesMap { return isMapValue(value); }\r\n\r\n /** Serialize [[DisplayValue]] to JSON */\r\n export function fromJSON(json: DisplayValueJSON): DisplayValue {\r\n if (json === null)\r\n return undefined;\r\n if (isArrayValue(json))\r\n return displayValuesArrayFromJSON(json);\r\n if (isMapValue(json))\r\n return displayValuesMapFromJSON(json);\r\n return json;\r\n }\r\n\r\n /** Deserialize [[DisplayValue]] from JSON */\r\n export function toJSON(value: DisplayValue): DisplayValueJSON {\r\n if (undefined === value)\r\n return null;\r\n if (isArrayValue(value))\r\n return displayValuesArrayToJSON(value);\r\n if (isMapValue(value))\r\n return displayValuesMapToJSON(value);\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * A map of display values\r\n * @public\r\n */\r\nexport interface DisplayValuesMap extends ValuesDictionary<DisplayValue> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * An array of display values\r\n * @public\r\n */\r\nexport interface DisplayValuesArray extends Array<DisplayValue> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Data structure that describes nested content value.\r\n * @public\r\n */\r\nexport interface NestedContentValue {\r\n /** Keys of instances whose content is contained in this value */\r\n primaryKeys: InstanceKey[];\r\n /** Content values map */\r\n values: ValuesDictionary<Value>;\r\n /** Content display values map */\r\n displayValues: ValuesDictionary<DisplayValue>;\r\n /** Names of fields whose values are merged */\r\n mergedFieldNames: string[];\r\n}\r\n\r\n/** @public */\r\nexport namespace NestedContentValue {\r\n /** Serialize [[NestedContentValue]] to JSON */\r\n export function toJSON(json: NestedContentValue): NestedContentValueJSON {\r\n return {\r\n primaryKeys: json.primaryKeys.map(InstanceKey.toJSON),\r\n values: valuesMapToJSON(json.values),\r\n displayValues: displayValuesMapToJSON(json.displayValues),\r\n mergedFieldNames: json.mergedFieldNames,\r\n };\r\n }\r\n\r\n /** Deserialize [[NestedContentValue]] from JSON */\r\n export function fromJSON(json: NestedContentValueJSON): NestedContentValue {\r\n return {\r\n primaryKeys: json.primaryKeys.map(InstanceKey.fromJSON),\r\n values: valuesMapFromJSON(json.values),\r\n displayValues: displayValuesMapFromJSON(json.displayValues),\r\n mergedFieldNames: json.mergedFieldNames,\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * JSON representation of [[Value]]\r\n * @public\r\n */\r\nexport type ValueJSON = string | number | boolean | null | ValuesMapJSON | ValuesArrayJSON | NestedContentValueJSON[];\r\n\r\n/**\r\n * JSON representation of [[ValuesMap]]\r\n * @public\r\n */\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[ValuesArray]]\r\n * @public\r\n */\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[DisplayValue]]\r\n * @public\r\n */\r\nexport type DisplayValueJSON = string | null | DisplayValuesMapJSON | DisplayValuesArrayJSON;\r\n\r\n/**\r\n * JSON representation of [[DisplayValuesMap]]\r\n * @public\r\n */\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[DisplayValuesArray]]\r\n * @public\r\n */\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[NestedContentValue]]\r\n * @public\r\n */\r\nexport interface NestedContentValueJSON {\r\n primaryKeys: InstanceKeyJSON[];\r\n values: ValuesDictionary<ValueJSON>;\r\n displayValues: ValuesDictionary<DisplayValueJSON>;\r\n mergedFieldNames: string[];\r\n}\r\n\r\n/**\r\n * A group of raw values and their common display value.\r\n * @public\r\n */\r\nexport interface DisplayValueGroup {\r\n /** Common display value for all grouped raw values */\r\n displayValue: DisplayValue;\r\n /** A list of grouped raw values */\r\n groupedRawValues: Value[];\r\n}\r\n\r\n/**\r\n * JSON representation of [[DisplayValueGroup]].\r\n * @public\r\n */\r\nexport interface DisplayValueGroupJSON {\r\n displayValue: DisplayValueJSON;\r\n groupedRawValues: ValueJSON[];\r\n}\r\n\r\n/** @public */\r\nexport namespace DisplayValueGroup {\r\n /** Serialize [[DisplayValueGroup]] to JSON */\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n groupedRawValues: group.groupedRawValues.map(Value.toJSON),\r\n };\r\n }\r\n\r\n /** Deserialize [[DisplayValueGroup]] from JSON */\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\nfunction isNestedContentValue(v: Value | ValueJSON): v is NestedContentValue[] | NestedContentValueJSON[] {\r\n return (v !== undefined) && Array.isArray(v)\r\n && ((v.length === 0)\r\n || (v[0] as NestedContentValue).primaryKeys !== undefined\r\n && (v[0] as NestedContentValue).values !== undefined\r\n && (v[0] as NestedContentValue).displayValues !== undefined\r\n && (v[0] as NestedContentValue).mergedFieldNames !== undefined);\r\n}\r\nfunction isArrayValue(v: Value | ValueJSON | DisplayValue | DisplayValueJSON): v is ValuesArray | ValuesArrayJSON | DisplayValuesArray | DisplayValuesArrayJSON {\r\n // note: we don't guarantee by 100% that v is ValuesArray | DisplayValuesArray, but merely make compiler happy.\r\n // we have other means to determine the type of value.\r\n return (v !== undefined) && Array.isArray(v);\r\n}\r\nfunction isMapValue(v: Value | ValueJSON | DisplayValue | DisplayValueJSON): v is ValuesMap | ValuesMapJSON | DisplayValuesMap | DisplayValuesMapJSON {\r\n return (v !== undefined) && (typeof v === \"object\") && !Array.isArray(v);\r\n}\r\nfunction isPrimitiveValue(v: Value | DisplayValue): v is string | number | boolean | undefined {\r\n return !isArrayValue(v) && !isMapValue(v);\r\n}\r\n\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n return json.map(Value.fromJSON);\r\n}\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n return values.map(Value.toJSON);\r\n}\r\nfunction valuesMapFromJSON(json: ValuesMapJSON): ValuesMap {\r\n const map: ValuesMap = {};\r\n for (const key in json) {\r\n /* istanbul ignore else */\r\n if (json.hasOwnProperty(key)) {\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n const map: ValuesMapJSON = {};\r\n for (const key in values) {\r\n /* istanbul ignore else */\r\n if (values.hasOwnProperty(key)) {\r\n map[key] = Value.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n return values.map(DisplayValue.toJSON);\r\n}\r\nfunction displayValuesMapFromJSON(json: DisplayValuesMapJSON): DisplayValuesMap {\r\n const map: DisplayValuesMap = {};\r\n for (const key in json) {\r\n /* istanbul ignore else */\r\n if (json.hasOwnProperty(key)) {\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n const map: DisplayValuesMapJSON = {};\r\n for (const key in values) {\r\n /* istanbul ignore else */\r\n if (values.hasOwnProperty(key)) {\r\n map[key] = DisplayValue.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Value.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Value.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Content\r\n */\r\n\r\nimport { InstanceKey, InstanceKeyJSON } from \"../EC\";\r\nimport { ValuesDictionary } from \"../Utils\";\r\n\r\n/**\r\n * Raw value type\r\n * @public\r\n */\r\nexport type Value = string | number | boolean | undefined | ValuesMap | ValuesArray | NestedContentValue[];\r\n\r\n/** @public */\r\nexport namespace Value { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Is the value a primitive */\r\n export function isPrimitive(value: Value): value is string | number | boolean | undefined {\r\n return isPrimitiveValue(value);\r\n }\r\n\r\n /** Is the value an array */\r\n export function isArray(value: Value): value is ValuesArray {\r\n return isArrayValue(value);\r\n }\r\n\r\n /** Is the value a map / struct */\r\n export function isMap(value: Value): value is ValuesMap {\r\n return isMapValue(value);\r\n }\r\n\r\n /** Is the value a nested content value */\r\n export function isNestedContent(value: Value): value is NestedContentValue[] {\r\n return isNestedContentValue(value);\r\n }\r\n\r\n /** Serialize [[Value]] to JSON */\r\n export function fromJSON(json: ValueJSON): Value {\r\n if (json === null)\r\n return undefined;\r\n if (isNestedContentValue(json))\r\n return json.map(NestedContentValue.fromJSON);\r\n if (isArrayValue(json))\r\n return valuesArrayFromJSON(json);\r\n if (isMapValue(json))\r\n return valuesMapFromJSON(json);\r\n return json;\r\n }\r\n\r\n /** Deserialize [[Value]] from JSON */\r\n export function toJSON(value: Value): ValueJSON {\r\n if (undefined === value)\r\n return null;\r\n if (isNestedContentValue(value))\r\n return value.map(NestedContentValue.toJSON);\r\n if (isArrayValue(value))\r\n return valuesArrayToJSON(value);\r\n if (isMapValue(value))\r\n return valuesMapToJSON(value);\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * A map of raw values\r\n * @public\r\n */\r\nexport interface ValuesMap extends ValuesDictionary<Value> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * An array of raw values\r\n * @public\r\n */\r\nexport interface ValuesArray extends Array<Value> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Display value type.\r\n * @public\r\n */\r\nexport type DisplayValue = string | undefined | DisplayValuesMap | DisplayValuesArray;\r\n\r\n/** @public */\r\nexport namespace DisplayValue { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Is the value a primitive */\r\n export function isPrimitive(value: DisplayValue): value is string | undefined {\r\n return isPrimitiveValue(value);\r\n }\r\n\r\n /** Is the value an array */\r\n export function isArray(value: DisplayValue): value is DisplayValuesArray {\r\n return isArrayValue(value);\r\n }\r\n\r\n /** Is the value a map / struct */\r\n export function isMap(value: DisplayValue): value is DisplayValuesMap {\r\n return isMapValue(value);\r\n }\r\n\r\n /** Serialize [[DisplayValue]] to JSON */\r\n export function fromJSON(json: DisplayValueJSON): DisplayValue {\r\n if (json === null)\r\n return undefined;\r\n if (isArrayValue(json))\r\n return displayValuesArrayFromJSON(json);\r\n if (isMapValue(json))\r\n return displayValuesMapFromJSON(json);\r\n return json;\r\n }\r\n\r\n /** Deserialize [[DisplayValue]] from JSON */\r\n export function toJSON(value: DisplayValue): DisplayValueJSON {\r\n if (undefined === value)\r\n return null;\r\n if (isArrayValue(value))\r\n return displayValuesArrayToJSON(value);\r\n if (isMapValue(value))\r\n return displayValuesMapToJSON(value);\r\n return value;\r\n }\r\n}\r\n\r\n/**\r\n * A map of display values\r\n * @public\r\n */\r\nexport interface DisplayValuesMap extends ValuesDictionary<DisplayValue> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * An array of display values\r\n * @public\r\n */\r\nexport interface DisplayValuesArray extends Array<DisplayValue> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Data structure that describes nested content value.\r\n * @public\r\n */\r\nexport interface NestedContentValue {\r\n /** Keys of instances whose content is contained in this value */\r\n primaryKeys: InstanceKey[];\r\n /** Content values map */\r\n values: ValuesDictionary<Value>;\r\n /** Content display values map */\r\n displayValues: ValuesDictionary<DisplayValue>;\r\n /** Names of fields whose values are merged */\r\n mergedFieldNames: string[];\r\n}\r\n\r\n/** @public */\r\nexport namespace NestedContentValue {\r\n /** Serialize [[NestedContentValue]] to JSON */\r\n export function toJSON(json: NestedContentValue): NestedContentValueJSON {\r\n return {\r\n primaryKeys: json.primaryKeys.map(InstanceKey.toJSON),\r\n values: valuesMapToJSON(json.values),\r\n displayValues: displayValuesMapToJSON(json.displayValues),\r\n mergedFieldNames: json.mergedFieldNames,\r\n };\r\n }\r\n\r\n /** Deserialize [[NestedContentValue]] from JSON */\r\n export function fromJSON(json: NestedContentValueJSON): NestedContentValue {\r\n return {\r\n primaryKeys: json.primaryKeys.map(InstanceKey.fromJSON),\r\n values: valuesMapFromJSON(json.values),\r\n displayValues: displayValuesMapFromJSON(json.displayValues),\r\n mergedFieldNames: json.mergedFieldNames,\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * JSON representation of [[Value]]\r\n * @public\r\n */\r\nexport type ValueJSON = string | number | boolean | null | ValuesMapJSON | ValuesArrayJSON | NestedContentValueJSON[];\r\n\r\n/**\r\n * JSON representation of [[ValuesMap]]\r\n * @public\r\n */\r\nexport interface ValuesMapJSON extends ValuesDictionary<ValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[ValuesArray]]\r\n * @public\r\n */\r\nexport interface ValuesArrayJSON extends Array<ValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[DisplayValue]]\r\n * @public\r\n */\r\nexport type DisplayValueJSON = string | null | DisplayValuesMapJSON | DisplayValuesArrayJSON;\r\n\r\n/**\r\n * JSON representation of [[DisplayValuesMap]]\r\n * @public\r\n */\r\nexport interface DisplayValuesMapJSON extends ValuesDictionary<DisplayValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[DisplayValuesArray]]\r\n * @public\r\n */\r\nexport interface DisplayValuesArrayJSON extends Array<DisplayValueJSON> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * JSON representation of [[NestedContentValue]]\r\n * @public\r\n */\r\nexport interface NestedContentValueJSON {\r\n primaryKeys: InstanceKeyJSON[];\r\n values: ValuesDictionary<ValueJSON>;\r\n displayValues: ValuesDictionary<DisplayValueJSON>;\r\n mergedFieldNames: string[];\r\n}\r\n\r\n/**\r\n * A group of raw values and their common display value.\r\n * @public\r\n */\r\nexport interface DisplayValueGroup {\r\n /** Common display value for all grouped raw values */\r\n displayValue: DisplayValue;\r\n /** A list of grouped raw values */\r\n groupedRawValues: Value[];\r\n}\r\n\r\n/**\r\n * JSON representation of [[DisplayValueGroup]].\r\n * @public\r\n */\r\nexport interface DisplayValueGroupJSON {\r\n displayValue: DisplayValueJSON;\r\n groupedRawValues: ValueJSON[];\r\n}\r\n\r\n/** @public */\r\nexport namespace DisplayValueGroup {\r\n /** Serialize [[DisplayValueGroup]] to JSON */\r\n export function toJSON(group: DisplayValueGroup): DisplayValueGroupJSON {\r\n return {\r\n displayValue: DisplayValue.toJSON(group.displayValue),\r\n groupedRawValues: group.groupedRawValues.map(Value.toJSON),\r\n };\r\n }\r\n\r\n /** Deserialize [[DisplayValueGroup]] from JSON */\r\n export function fromJSON(json: DisplayValueGroupJSON): DisplayValueGroup {\r\n return {\r\n displayValue: DisplayValue.fromJSON(json.displayValue),\r\n groupedRawValues: json.groupedRawValues.map(Value.fromJSON),\r\n };\r\n }\r\n}\r\n\r\nfunction isNestedContentValue(v: Value | ValueJSON): v is NestedContentValue[] | NestedContentValueJSON[] {\r\n return (v !== undefined) && Array.isArray(v)\r\n && ((v.length === 0)\r\n || (v[0] as NestedContentValue).primaryKeys !== undefined\r\n && (v[0] as NestedContentValue).values !== undefined\r\n && (v[0] as NestedContentValue).displayValues !== undefined\r\n && (v[0] as NestedContentValue).mergedFieldNames !== undefined);\r\n}\r\nfunction isArrayValue(v: Value | ValueJSON | DisplayValue | DisplayValueJSON): v is ValuesArray | ValuesArrayJSON | DisplayValuesArray | DisplayValuesArrayJSON {\r\n // note: we don't guarantee by 100% that v is ValuesArray | DisplayValuesArray, but merely make compiler happy.\r\n // we have other means to determine the type of value.\r\n return (v !== undefined) && Array.isArray(v);\r\n}\r\nfunction isMapValue(v: Value | ValueJSON | DisplayValue | DisplayValueJSON): v is ValuesMap | ValuesMapJSON | DisplayValuesMap | DisplayValuesMapJSON {\r\n return (v !== undefined) && (typeof v === \"object\") && !Array.isArray(v);\r\n}\r\nfunction isPrimitiveValue(v: Value | DisplayValue): v is string | number | boolean | undefined {\r\n return !isArrayValue(v) && !isMapValue(v);\r\n}\r\n\r\nfunction valuesArrayFromJSON(json: ValuesArrayJSON): ValuesArray {\r\n return json.map(Value.fromJSON);\r\n}\r\nfunction valuesArrayToJSON(values: ValuesArray): ValuesArrayJSON {\r\n return values.map(Value.toJSON);\r\n}\r\nfunction valuesMapFromJSON(json: ValuesMapJSON): ValuesMap {\r\n const map: ValuesMap = {};\r\n for (const key in json) {\r\n /* istanbul ignore else */\r\n if (json.hasOwnProperty(key)) {\r\n map[key] = Value.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\nfunction valuesMapToJSON(values: ValuesMap): ValuesMapJSON {\r\n const map: ValuesMapJSON = {};\r\n for (const key in values) {\r\n /* istanbul ignore else */\r\n if (values.hasOwnProperty(key)) {\r\n map[key] = Value.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n\r\nfunction displayValuesArrayFromJSON(json: DisplayValuesArrayJSON): DisplayValuesArray {\r\n return json.map(DisplayValue.fromJSON);\r\n}\r\nfunction displayValuesArrayToJSON(values: DisplayValuesArray): DisplayValuesArrayJSON {\r\n return values.map(DisplayValue.toJSON);\r\n}\r\nfunction displayValuesMapFromJSON(json: DisplayValuesMapJSON): DisplayValuesMap {\r\n const map: DisplayValuesMap = {};\r\n for (const key in json) {\r\n /* istanbul ignore else */\r\n if (json.hasOwnProperty(key)) {\r\n map[key] = DisplayValue.fromJSON(json[key]);\r\n }\r\n }\r\n return map;\r\n}\r\nfunction displayValuesMapToJSON(values: DisplayValuesMap): DisplayValuesMapJSON {\r\n const map: DisplayValuesMapJSON = {};\r\n for (const key in values) {\r\n /* istanbul ignore else */\r\n if (values.hasOwnProperty(key)) {\r\n map[key] = DisplayValue.toJSON(values[key]);\r\n }\r\n }\r\n return map;\r\n}\r\n"]}
|
|
@@ -17,6 +17,7 @@ export * from "./presentation-common/RulesetsFactory";
|
|
|
17
17
|
export * from "./presentation-common/Update";
|
|
18
18
|
export * from "./presentation-common/Utils";
|
|
19
19
|
export * from "./presentation-common/PresentationIpcInterface";
|
|
20
|
+
export * from "./presentation-common/LocalizationHelper";
|
|
20
21
|
/**
|
|
21
22
|
* @module RPC
|
|
22
23
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation-common.d.ts","sourceRoot":"","sources":["../../src/presentation-common.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kDAAkD,CAAC;AACjE,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"presentation-common.d.ts","sourceRoot":"","sources":["../../src/presentation-common.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,kDAAkD,CAAC;AACjE,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AAEzD;;;;;;GAMG;AACH,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AAExD;;;;;GAKG;AACH,cAAc,gDAAgD,CAAC;AAE/D;;;;;GAKG;AACH,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qCAAqC,CAAC;AACpD,cAAc,gDAAgD,CAAC;AAE/D;;;;;GAKG;AACH,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iDAAiD,CAAC;AAEhE;;;;;GAKG;AACH,cAAc,qDAAqD,CAAC;AACpE,cAAc,8DAA8D,CAAC;AAC7E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,6EAA6E,CAAC;AAC5F,cAAc,mFAAmF,CAAC;AAClG,cAAc,sDAAsD,CAAC;AACrE,cAAc,yDAAyD,CAAC;AACxE,cAAc,yEAAyE,CAAC;AACxF,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,wDAAwD,CAAC;AACvE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,iEAAiE,CAAC;AAChF,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AACxE,cAAc,oFAAoF,CAAC;AACnG,cAAc,0EAA0E,CAAC;AACzF,cAAc,iDAAiD,CAAC;AAChE,cAAc,0DAA0D,CAAC;AACzE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,wEAAwE,CAAC;AACvF,cAAc,qEAAqE,CAAC;AACpF,cAAc,iFAAiF,CAAC;AAChG,cAAc,+DAA+D,CAAC;AAC9E,cAAc,6EAA6E,CAAC;AAC5F,cAAc,4EAA4E,CAAC;AAC3F,cAAc,2EAA2E,CAAC;AAC1F,cAAc,8EAA8E,CAAC;AAC7F,cAAc,iDAAiD,CAAC;AAChE,cAAc,0DAA0D,CAAC;AACzE,cAAc,mDAAmD,CAAC;AAClE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,kCAAkC,CAAC;AACjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kDAAkD,CAAC;AACjE,cAAc,uCAAuC,CAAC"}
|
|
@@ -21,6 +21,7 @@ export * from "./presentation-common/RulesetsFactory";
|
|
|
21
21
|
export * from "./presentation-common/Update";
|
|
22
22
|
export * from "./presentation-common/Utils";
|
|
23
23
|
export * from "./presentation-common/PresentationIpcInterface";
|
|
24
|
+
export * from "./presentation-common/LocalizationHelper";
|
|
24
25
|
/**
|
|
25
26
|
* @module RPC
|
|
26
27
|
*
|