@itwin/presentation-backend 5.0.0-dev.56 → 5.0.0-dev.58
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/lib/cjs/presentation-backend/NativePlatform.js +2 -0
- package/lib/cjs/presentation-backend/NativePlatform.js.map +1 -1
- package/lib/cjs/presentation-backend/Presentation.js +8 -2
- package/lib/cjs/presentation-backend/Presentation.js.map +1 -1
- package/lib/cjs/presentation-backend/PresentationIpcHandler.js +1 -4
- package/lib/cjs/presentation-backend/PresentationIpcHandler.js.map +1 -1
- package/lib/cjs/presentation-backend/PresentationManager.d.ts.map +1 -1
- package/lib/cjs/presentation-backend/PresentationManager.js +16 -12
- package/lib/cjs/presentation-backend/PresentationManager.js.map +1 -1
- package/lib/cjs/presentation-backend/PresentationManagerDetail.d.ts +3 -1
- package/lib/cjs/presentation-backend/PresentationManagerDetail.d.ts.map +1 -1
- package/lib/cjs/presentation-backend/PresentationManagerDetail.js +51 -17
- package/lib/cjs/presentation-backend/PresentationManagerDetail.js.map +1 -1
- package/lib/cjs/presentation-backend/PresentationRpcImpl.d.ts +5 -5
- package/lib/cjs/presentation-backend/PresentationRpcImpl.d.ts.map +1 -1
- package/lib/cjs/presentation-backend/PresentationRpcImpl.js +11 -36
- package/lib/cjs/presentation-backend/PresentationRpcImpl.js.map +1 -1
- package/lib/cjs/presentation-backend/RulesetEmbedder.js +5 -3
- package/lib/cjs/presentation-backend/RulesetEmbedder.js.map +1 -1
- package/lib/cjs/presentation-backend/RulesetManager.js +2 -1
- package/lib/cjs/presentation-backend/RulesetManager.js.map +1 -1
- package/lib/cjs/presentation-backend/RulesetVariablesManager.js +2 -0
- package/lib/cjs/presentation-backend/RulesetVariablesManager.js.map +1 -1
- package/lib/cjs/presentation-backend/TemporaryStorage.js +29 -25
- package/lib/cjs/presentation-backend/TemporaryStorage.js.map +1 -1
- package/package.json +14 -14
|
@@ -29,6 +29,7 @@ exports.getKeysForContentRequest = getKeysForContentRequest;
|
|
|
29
29
|
exports.bisElementInstanceKeysProcessor = bisElementInstanceKeysProcessor;
|
|
30
30
|
exports.ipcUpdatesHandler = ipcUpdatesHandler;
|
|
31
31
|
exports.noopUpdatesHandler = noopUpdatesHandler;
|
|
32
|
+
exports.parseHierarchyLevelFromString = parseHierarchyLevelFromString;
|
|
32
33
|
/*---------------------------------------------------------------------------------------------
|
|
33
34
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
34
35
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
@@ -45,6 +46,12 @@ const RulesetManager_1 = require("./RulesetManager");
|
|
|
45
46
|
const Utils_1 = require("./Utils");
|
|
46
47
|
/** @internal */
|
|
47
48
|
class PresentationManagerDetail {
|
|
49
|
+
_disposed;
|
|
50
|
+
_nativePlatform;
|
|
51
|
+
_onManagerUsed;
|
|
52
|
+
_diagnosticsOptions;
|
|
53
|
+
rulesets;
|
|
54
|
+
activeUnitSystem;
|
|
48
55
|
constructor(params) {
|
|
49
56
|
this._disposed = false;
|
|
50
57
|
this._nativePlatform =
|
|
@@ -111,7 +118,9 @@ class PresentationManagerDetail {
|
|
|
111
118
|
...strippedOptions,
|
|
112
119
|
paths: instancePaths,
|
|
113
120
|
};
|
|
114
|
-
|
|
121
|
+
const paths = (0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(await this.request(params)));
|
|
122
|
+
paths.forEach(fixNodePathElementFromAddon);
|
|
123
|
+
return paths;
|
|
115
124
|
}
|
|
116
125
|
async getFilteredNodePaths(requestOptions) {
|
|
117
126
|
const { rulesetOrId, ...strippedOptions } = requestOptions;
|
|
@@ -120,7 +129,9 @@ class PresentationManagerDetail {
|
|
|
120
129
|
rulesetId: this.registerRuleset(rulesetOrId),
|
|
121
130
|
...strippedOptions,
|
|
122
131
|
};
|
|
123
|
-
|
|
132
|
+
const paths = (0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(await this.request(params)));
|
|
133
|
+
paths.forEach(fixNodePathElementFromAddon);
|
|
134
|
+
return paths;
|
|
124
135
|
}
|
|
125
136
|
async getContentDescriptor(requestOptions) {
|
|
126
137
|
const { rulesetOrId, contentFlags, ...strippedOptions } = requestOptions;
|
|
@@ -142,7 +153,7 @@ class PresentationManagerDetail {
|
|
|
142
153
|
const reviver = (key, value) => {
|
|
143
154
|
return key === "" ? presentation_common_1.SelectClassInfo.listFromCompressedJSON(value.sources, value.classesMap) : value;
|
|
144
155
|
};
|
|
145
|
-
return JSON.parse(await this.request(params), reviver);
|
|
156
|
+
return (0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(await this.request(params), reviver));
|
|
146
157
|
}
|
|
147
158
|
async getContentSetSize(requestOptions) {
|
|
148
159
|
const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;
|
|
@@ -164,8 +175,9 @@ class PresentationManagerDetail {
|
|
|
164
175
|
keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),
|
|
165
176
|
descriptorOverrides: createContentDescriptorOverrides(descriptor),
|
|
166
177
|
};
|
|
167
|
-
|
|
168
|
-
|
|
178
|
+
return JSON.parse(await this.request(params))
|
|
179
|
+
.map((json) => presentation_common_1.Item.fromJSON((0, presentation_common_1.deepReplaceNullsToUndefined)(json)))
|
|
180
|
+
.filter((item) => !!item);
|
|
169
181
|
}
|
|
170
182
|
async getContent(requestOptions) {
|
|
171
183
|
const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;
|
|
@@ -176,7 +188,7 @@ class PresentationManagerDetail {
|
|
|
176
188
|
keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),
|
|
177
189
|
descriptorOverrides: createContentDescriptorOverrides(descriptor),
|
|
178
190
|
};
|
|
179
|
-
return JSON.parse(await this.request(params)
|
|
191
|
+
return presentation_common_1.Content.fromJSON((0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(await this.request(params))));
|
|
180
192
|
}
|
|
181
193
|
async getPagedDistinctValues(requestOptions) {
|
|
182
194
|
const { rulesetOrId, ...strippedOptions } = requestOptions;
|
|
@@ -188,23 +200,14 @@ class PresentationManagerDetail {
|
|
|
188
200
|
keys: getKeysForContentRequest(keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),
|
|
189
201
|
descriptorOverrides: createContentDescriptorOverrides(descriptor),
|
|
190
202
|
};
|
|
191
|
-
|
|
192
|
-
return key === ""
|
|
193
|
-
? {
|
|
194
|
-
total: value.total,
|
|
195
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
196
|
-
items: value.items.map(presentation_common_1.DisplayValueGroup.fromJSON),
|
|
197
|
-
}
|
|
198
|
-
: value;
|
|
199
|
-
};
|
|
200
|
-
return JSON.parse(await this.request(params), reviver);
|
|
203
|
+
return (0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(await this.request(params)));
|
|
201
204
|
}
|
|
202
205
|
async getDisplayLabelDefinition(requestOptions) {
|
|
203
206
|
const params = {
|
|
204
207
|
requestId: NativePlatform_1.NativePlatformRequestTypes.GetDisplayLabel,
|
|
205
208
|
...requestOptions,
|
|
206
209
|
};
|
|
207
|
-
return JSON.parse(await this.request(params));
|
|
210
|
+
return (0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(await this.request(params)));
|
|
208
211
|
}
|
|
209
212
|
async getDisplayLabelDefinitions(requestOptions) {
|
|
210
213
|
const concreteKeys = requestOptions.keys
|
|
@@ -471,4 +474,35 @@ function ipcUpdatesHandler(info) {
|
|
|
471
474
|
/** @internal */
|
|
472
475
|
// istanbul ignore next
|
|
473
476
|
function noopUpdatesHandler(_info) { }
|
|
477
|
+
/** @internal */
|
|
478
|
+
function parseHierarchyLevelFromString(serializedHierarchyLevel) {
|
|
479
|
+
const hl = (0, presentation_common_1.deepReplaceNullsToUndefined)(JSON.parse(serializedHierarchyLevel));
|
|
480
|
+
hl.nodes.forEach(fixNodeFromAddon);
|
|
481
|
+
return hl;
|
|
482
|
+
}
|
|
483
|
+
function fixNodePathElementFromAddon(npe) {
|
|
484
|
+
fixNodeFromAddon(npe.node);
|
|
485
|
+
npe.children.forEach(fixNodePathElementFromAddon);
|
|
486
|
+
// istanbul ignore next
|
|
487
|
+
if (npe.filteringData && isAddonNodePathFilteringData(npe.filteringData)) {
|
|
488
|
+
npe.filteringData = {
|
|
489
|
+
matchesCount: npe.filteringData.occurances,
|
|
490
|
+
childMatchesCount: npe.filteringData.childrenOccurances,
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
return npe;
|
|
494
|
+
}
|
|
495
|
+
function isAddonNodePathFilteringData(filteringData) {
|
|
496
|
+
return "occurances" in filteringData;
|
|
497
|
+
}
|
|
498
|
+
function fixNodeFromAddon(node) {
|
|
499
|
+
// FIXME: this is a temporary workaround until the addon starts serializing node labels
|
|
500
|
+
// under the "label" property
|
|
501
|
+
// istanbul ignore next
|
|
502
|
+
if (node.labelDefinition) {
|
|
503
|
+
node.label = node.labelDefinition;
|
|
504
|
+
delete node.labelDefinition;
|
|
505
|
+
}
|
|
506
|
+
return node;
|
|
507
|
+
}
|
|
474
508
|
//# sourceMappingURL=PresentationManagerDetail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationManagerDetail.js","sourceRoot":"","sources":["../../../src/presentation-backend/PresentationManagerDetail.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport * as hash from \"object-hash\";\nimport * as path from \"path\";\nimport { IModelDb, IModelJsNative, IpcHost } from \"@itwin/core-backend\";\nimport { BeEvent, Logger } from \"@itwin/core-bentley\";\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\nimport {\n Content,\n ContentDescriptorRequestOptions,\n ContentFlags,\n ContentRequestOptions,\n ContentSourcesRequestOptions,\n DefaultContentDisplayTypes,\n Descriptor,\n DescriptorOverrides,\n DiagnosticsOptions,\n DiagnosticsScopeLogs,\n DisplayLabelRequestOptions,\n DisplayLabelsRequestOptions,\n DisplayValueGroup,\n DistinctValuesRequestOptions,\n FilterByInstancePathsHierarchyRequestOptions,\n FilterByTextHierarchyRequestOptions,\n FormatsMap,\n HierarchyLevelDescriptorRequestOptions,\n HierarchyRequestOptions,\n InstanceKey,\n Item,\n Key,\n KeySet,\n LabelDefinition,\n NodeKey,\n NodePathElement,\n Paged,\n PagedResponse,\n PresentationIpcEvents,\n Prioritized,\n Ruleset,\n RulesetVariable,\n SelectClassInfo,\n UpdateInfo,\n WithCancelEvent,\n} from \"@itwin/presentation-common\";\nimport { PresentationBackendLoggerCategory } from \"./BackendLoggerCategory\";\nimport {\n createDefaultNativePlatform,\n NativePlatformDefinition,\n NativePlatformRequestTypes,\n NativePlatformResponse,\n NativePresentationDefaultUnitFormats,\n NativePresentationKeySetJSON,\n NativePresentationUnitSystem,\n PresentationNativePlatformResponseError,\n} from \"./NativePlatform\";\nimport { HierarchyCacheConfig, HierarchyCacheMode, PresentationManagerProps } from \"./PresentationManager\";\nimport { RulesetManager, RulesetManagerImpl } from \"./RulesetManager\";\nimport { BackendDiagnosticsAttribute, BackendDiagnosticsOptions, combineDiagnosticsOptions, getElementKey, reportDiagnostics } from \"./Utils\";\n\n/** @internal */\nexport class PresentationManagerDetail implements Disposable {\n private _disposed: boolean;\n private _nativePlatform: NativePlatformDefinition | undefined;\n private _onManagerUsed: (() => void) | undefined;\n private _diagnosticsOptions: BackendDiagnosticsOptions | undefined;\n\n public rulesets: RulesetManager;\n public activeUnitSystem: UnitSystemKey | undefined;\n\n constructor(params: PresentationManagerProps) {\n this._disposed = false;\n\n this._nativePlatform =\n params.addon ??\n createNativePlatform(\n params.id ?? \"\",\n params.workerThreadsCount ?? 2,\n IpcHost.isValid ? ipcUpdatesHandler : noopUpdatesHandler,\n params.caching,\n params.defaultFormats,\n params.useMmap,\n );\n\n setupRulesets(this._nativePlatform, params.supplementalRulesetDirectories ?? [], params.rulesetDirectories ?? []);\n this.activeUnitSystem = params.defaultUnitSystem;\n\n this._onManagerUsed = undefined;\n this.rulesets = new RulesetManagerImpl(() => this.getNativePlatform());\n this._diagnosticsOptions = params.diagnostics;\n }\n\n public [Symbol.dispose](): void {\n if (this._disposed) {\n return;\n }\n\n this.getNativePlatform()[Symbol.dispose]();\n this._nativePlatform = undefined;\n\n this._disposed = true;\n }\n\n public getNativePlatform(): NativePlatformDefinition {\n if (this._disposed) {\n throw new Error(\"Attempting to use Presentation manager after disposal\");\n }\n return this._nativePlatform!;\n }\n\n public setOnManagerUsedHandler(handler: () => void) {\n this._onManagerUsed = handler;\n }\n\n public async getNodes(\n requestOptions: WithCancelEvent<Prioritized<Paged<HierarchyRequestOptions<IModelDb, NodeKey, RulesetVariable>>>> & BackendDiagnosticsAttribute,\n ): Promise<string> {\n const { rulesetOrId, parentKey, ...strippedOptions } = requestOptions;\n const params = {\n requestId: parentKey ? NativePlatformRequestTypes.GetChildren : NativePlatformRequestTypes.GetRootNodes,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n nodeKey: parentKey,\n };\n return this.request(params);\n }\n\n public async getNodesCount(\n requestOptions: WithCancelEvent<Prioritized<HierarchyRequestOptions<IModelDb, NodeKey, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<number> {\n const { rulesetOrId, parentKey, ...strippedOptions } = requestOptions;\n const params = {\n requestId: parentKey ? NativePlatformRequestTypes.GetChildrenCount : NativePlatformRequestTypes.GetRootNodesCount,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n nodeKey: parentKey,\n };\n return JSON.parse(await this.request(params));\n }\n\n public async getNodesDescriptor(\n requestOptions: WithCancelEvent<Prioritized<HierarchyLevelDescriptorRequestOptions<IModelDb, NodeKey, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<string> {\n const { rulesetOrId, parentKey, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetNodesDescriptor,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n nodeKey: parentKey,\n };\n return this.request(params);\n }\n\n public async getNodePaths(\n requestOptions: WithCancelEvent<Prioritized<FilterByInstancePathsHierarchyRequestOptions<IModelDb, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<NodePathElement[]> {\n const { rulesetOrId, instancePaths, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetNodePaths,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n paths: instancePaths,\n };\n return JSON.parse(await this.request(params), NodePathElement.listReviver);\n }\n\n public async getFilteredNodePaths(\n requestOptions: WithCancelEvent<Prioritized<FilterByTextHierarchyRequestOptions<IModelDb, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<NodePathElement[]> {\n const { rulesetOrId, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetFilteredNodePaths,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n };\n return JSON.parse(await this.request(params), NodePathElement.listReviver);\n }\n\n public async getContentDescriptor(requestOptions: WithCancelEvent<Prioritized<ContentDescriptorRequestOptions<IModelDb, KeySet>>>): Promise<string> {\n const { rulesetOrId, contentFlags, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContentDescriptor,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n contentFlags: contentFlags ?? ContentFlags.DescriptorOnly, // only set \"descriptor only\" flag if there are no flags provided\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n };\n return this.request(params);\n }\n\n public async getContentSources(\n requestOptions: WithCancelEvent<Prioritized<ContentSourcesRequestOptions<IModelDb>>> & BackendDiagnosticsAttribute,\n ): Promise<SelectClassInfo[]> {\n const params = {\n requestId: NativePlatformRequestTypes.GetContentSources,\n rulesetId: \"ElementProperties\",\n ...requestOptions,\n };\n const reviver = (key: string, value: any) => {\n return key === \"\" ? SelectClassInfo.listFromCompressedJSON(value.sources, value.classesMap) : value;\n };\n return JSON.parse(await this.request(params), reviver);\n }\n\n public async getContentSetSize(\n requestOptions: WithCancelEvent<Prioritized<ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>> &\n BackendDiagnosticsAttribute,\n ): Promise<number> {\n const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContentSetSize,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n return JSON.parse(await this.request(params));\n }\n\n public async getContentSet(\n requestOptions: WithCancelEvent<Prioritized<Paged<ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>>> &\n BackendDiagnosticsAttribute,\n ): Promise<Item[]> {\n const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContentSet,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n // eslint-disable-next-line @typescript-eslint/unbound-method\n return JSON.parse(await this.request(params), Item.listReviver);\n }\n\n public async getContent(\n requestOptions: WithCancelEvent<Prioritized<Paged<ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>>> &\n BackendDiagnosticsAttribute,\n ): Promise<Content | undefined> {\n const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContent,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n return JSON.parse(await this.request(params), (key, value) => Content.reviver(key, value));\n }\n\n public async getPagedDistinctValues(\n requestOptions: WithCancelEvent<Prioritized<DistinctValuesRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>> &\n BackendDiagnosticsAttribute,\n ): Promise<PagedResponse<DisplayValueGroup>> {\n const { rulesetOrId, ...strippedOptions } = requestOptions;\n const { descriptor, keys, ...strippedOptionsNoDescriptorAndKeys } = strippedOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetPagedDistinctValues,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptionsNoDescriptorAndKeys,\n keys: getKeysForContentRequest(keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n const reviver = (key: string, value: any) => {\n return key === \"\"\n ? {\n total: value.total,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n items: value.items.map(DisplayValueGroup.fromJSON),\n }\n : value;\n };\n return JSON.parse(await this.request(params), reviver);\n }\n\n public async getDisplayLabelDefinition(\n requestOptions: WithCancelEvent<Prioritized<DisplayLabelRequestOptions<IModelDb, InstanceKey>>> & BackendDiagnosticsAttribute,\n ): Promise<LabelDefinition> {\n const params = {\n requestId: NativePlatformRequestTypes.GetDisplayLabel,\n ...requestOptions,\n };\n return JSON.parse(await this.request(params));\n }\n\n public async getDisplayLabelDefinitions(\n requestOptions: WithCancelEvent<Prioritized<Paged<DisplayLabelsRequestOptions<IModelDb, InstanceKey>>>> & BackendDiagnosticsAttribute,\n ): Promise<LabelDefinition[]> {\n const concreteKeys = requestOptions.keys\n .map((k) => {\n if (k.className === \"BisCore:Element\") {\n return getElementKey(requestOptions.imodel, k.id);\n }\n return k;\n })\n .filter<InstanceKey>((k): k is InstanceKey => !!k);\n const contentRequestOptions: ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet> = {\n ...requestOptions,\n rulesetOrId: \"RulesDrivenECPresentationManager_RulesetId_DisplayLabel\",\n descriptor: {\n displayType: DefaultContentDisplayTypes.List,\n contentFlags: ContentFlags.ShowLabels | ContentFlags.NoFields,\n },\n keys: new KeySet(concreteKeys),\n };\n const content = await this.getContent(contentRequestOptions);\n return concreteKeys.map((key) => {\n const item = content ? content.contentSet.find((it) => it.primaryKeys.length > 0 && InstanceKey.compare(it.primaryKeys[0], key) === 0) : undefined;\n if (!item) {\n return { displayValue: \"\", rawValue: \"\", typeName: \"\" };\n }\n return item.label;\n });\n }\n\n /** Registers given ruleset and replaces the ruleset with its ID in the resulting object */\n public registerRuleset(rulesetOrId: Ruleset | string): string {\n if (typeof rulesetOrId === \"object\") {\n const rulesetWithNativeId = { ...rulesetOrId, id: this.getRulesetId(rulesetOrId) };\n return this.rulesets.add(rulesetWithNativeId).id;\n }\n\n return rulesetOrId;\n }\n\n /** @internal */\n public getRulesetId(rulesetOrId: Ruleset | string): string {\n return getRulesetIdObject(rulesetOrId).uniqueId;\n }\n\n public async request(params: RequestParams): Promise<string> {\n this._onManagerUsed?.();\n const { requestId, imodel, unitSystem, diagnostics: requestDiagnostics, cancelEvent, ...strippedParams } = params;\n const imodelAddon = this.getNativePlatform().getImodelAddon(imodel);\n const response = await withOptionalDiagnostics([this._diagnosticsOptions, requestDiagnostics], async (diagnosticsOptions) => {\n const nativeRequestParams: any = {\n requestId,\n params: {\n unitSystem: toOptionalNativeUnitSystem(unitSystem ?? this.activeUnitSystem),\n ...strippedParams,\n ...(diagnosticsOptions ? { diagnostics: diagnosticsOptions } : undefined),\n },\n };\n return this.getNativePlatform().handleRequest(imodelAddon, JSON.stringify(nativeRequestParams), cancelEvent);\n });\n return response.result;\n }\n}\n\nasync function withOptionalDiagnostics(\n diagnosticsOptions: Array<BackendDiagnosticsOptions | undefined>,\n nativePlatformRequestHandler: (combinedDiagnosticsOptions: DiagnosticsOptions | undefined) => Promise<NativePlatformResponse<string>>,\n): Promise<NativePlatformResponse<string>> {\n const contexts = diagnosticsOptions.map((d) => d?.requestContextSupplier?.());\n const combinedOptions = combineDiagnosticsOptions(...diagnosticsOptions);\n let responseDiagnostics: DiagnosticsScopeLogs | undefined;\n try {\n const response = await nativePlatformRequestHandler(combinedOptions);\n responseDiagnostics = response.diagnostics;\n return response;\n } catch (e) {\n if (e instanceof PresentationNativePlatformResponseError) {\n responseDiagnostics = e.diagnostics;\n }\n throw e;\n } finally {\n if (responseDiagnostics) {\n const diagnostics = { logs: [responseDiagnostics] };\n diagnosticsOptions.forEach((options, i) => {\n options && reportDiagnostics(diagnostics, options, contexts[i]);\n });\n }\n }\n}\n\ninterface RequestParams {\n diagnostics?: BackendDiagnosticsOptions;\n requestId: string;\n imodel: IModelDb;\n unitSystem?: UnitSystemKey;\n cancelEvent?: BeEvent<() => void>;\n}\n\nfunction setupRulesets(nativePlatform: NativePlatformDefinition, supplementalRulesetDirectories: string[], primaryRulesetDirectories: string[]): void {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const elementPropertiesRuleset: Ruleset = require(\"./primary-presentation-rules/ElementProperties.PresentationRuleSet.json\");\n nativePlatform.addRuleset(JSON.stringify(elementPropertiesRuleset));\n\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const bisSupplementalRuleset: Ruleset = require(\"./supplemental-presentation-rules/BisCore.PresentationRuleSet.json\");\n nativePlatform.registerSupplementalRuleset(JSON.stringify(bisSupplementalRuleset));\n\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const funcSupplementalRuleset: Ruleset = require(\"./supplemental-presentation-rules/Functional.PresentationRuleSet.json\");\n nativePlatform.registerSupplementalRuleset(JSON.stringify(funcSupplementalRuleset));\n\n nativePlatform.setupSupplementalRulesetDirectories(collateAssetDirectories(supplementalRulesetDirectories));\n nativePlatform.setupRulesetDirectories(collateAssetDirectories(primaryRulesetDirectories));\n}\n\ninterface RulesetIdObject {\n uniqueId: string;\n parts: {\n id: string;\n hash?: string;\n };\n}\n\n/** @internal */\nexport function getRulesetIdObject(rulesetOrId: Ruleset | string): RulesetIdObject {\n if (typeof rulesetOrId === \"object\") {\n if (IpcHost.isValid) {\n // in case of native apps we don't want to enforce ruleset id uniqueness as ruleset variables\n // are stored on a backend and creating new id will lose those variables\n return {\n uniqueId: rulesetOrId.id,\n parts: { id: rulesetOrId.id },\n };\n }\n\n const hashedId = hash.MD5(rulesetOrId);\n return {\n uniqueId: `${rulesetOrId.id}-${hashedId}`,\n parts: {\n id: rulesetOrId.id,\n hash: hashedId,\n },\n };\n }\n\n return { uniqueId: rulesetOrId, parts: { id: rulesetOrId } };\n}\n\n/** @internal */\nexport function getKeysForContentRequest(\n keys: Readonly<KeySet>,\n classInstanceKeysProcessor?: (keys: Map<string, Set<string>>) => void,\n): NativePresentationKeySetJSON {\n const result: NativePresentationKeySetJSON = {\n instanceKeys: [],\n nodeKeys: [],\n };\n const classInstancesMap = new Map<string, Set<string>>();\n keys.forEach((key) => {\n if (Key.isNodeKey(key)) {\n result.nodeKeys.push(key);\n }\n\n if (Key.isInstanceKey(key)) {\n addInstanceKey(classInstancesMap, key);\n }\n });\n\n if (classInstanceKeysProcessor) {\n classInstanceKeysProcessor(classInstancesMap);\n }\n\n for (const entry of classInstancesMap) {\n if (entry[1].size > 0) {\n result.instanceKeys.push([entry[\"0\"], [...entry[1]]]);\n }\n }\n\n return result;\n}\n\n/** @internal */\nexport function bisElementInstanceKeysProcessor(imodel: IModelDb, classInstancesMap: Map<string, Set<string>>) {\n const elementClassName = \"BisCore:Element\";\n const elementIds = classInstancesMap.get(elementClassName);\n if (elementIds) {\n const deleteElementIds = new Array<string>();\n elementIds.forEach((elementId) => {\n const concreteKey = getElementKey(imodel, elementId);\n if (concreteKey && concreteKey.className !== elementClassName) {\n deleteElementIds.push(elementId);\n addInstanceKey(classInstancesMap, { className: concreteKey.className, id: elementId });\n }\n });\n for (const id of deleteElementIds) {\n elementIds.delete(id);\n }\n }\n}\n\nfunction addInstanceKey(classInstancesMap: Map<string, Set<string>>, key: InstanceKey): void {\n let set = classInstancesMap.get(key.className);\n // istanbul ignore else\n if (!set) {\n set = new Set();\n classInstancesMap.set(key.className, set);\n }\n set.add(key.id);\n}\n\nfunction createNativePlatform(\n id: string,\n workerThreadsCount: number,\n updateCallback: (updateInfo: UpdateInfo | undefined) => void,\n caching: PresentationManagerProps[\"caching\"],\n defaultFormats: FormatsMap | undefined,\n useMmap: boolean | number | undefined,\n): NativePlatformDefinition {\n return new (createDefaultNativePlatform({\n id,\n taskAllocationsMap: { [Number.MAX_SAFE_INTEGER]: workerThreadsCount },\n updateCallback,\n cacheConfig: createCacheConfig(caching?.hierarchies),\n contentCacheSize: caching?.content?.size,\n workerConnectionCacheSize: caching?.workerConnectionCacheSize,\n defaultFormats: toNativeUnitFormatsMap(defaultFormats),\n useMmap,\n }))();\n\n function createCacheConfig(config?: HierarchyCacheConfig): IModelJsNative.ECPresentationHierarchyCacheConfig {\n switch (config?.mode) {\n case HierarchyCacheMode.Disk:\n return { ...config, directory: normalizeDirectory(config.directory) };\n\n case HierarchyCacheMode.Hybrid:\n return {\n ...config,\n disk: config.disk ? { ...config.disk, directory: normalizeDirectory(config.disk.directory) } : undefined,\n };\n\n case HierarchyCacheMode.Memory:\n return config;\n\n default:\n return { mode: HierarchyCacheMode.Disk, directory: \"\" };\n }\n }\n\n function normalizeDirectory(directory?: string): string {\n return directory ? path.resolve(directory) : \"\";\n }\n\n function toNativeUnitFormatsMap(map: FormatsMap | undefined): NativePresentationDefaultUnitFormats | undefined {\n if (!map) {\n return undefined;\n }\n\n const nativeFormatsMap: NativePresentationDefaultUnitFormats = {};\n Object.entries(map).forEach(([phenomenon, formats]) => {\n nativeFormatsMap[phenomenon] = (Array.isArray(formats) ? formats : [formats]).map((unitSystemsFormat) => ({\n unitSystems: unitSystemsFormat.unitSystems.map(toNativeUnitSystem),\n format: unitSystemsFormat.format,\n }));\n });\n return nativeFormatsMap;\n }\n}\n\nfunction toOptionalNativeUnitSystem(unitSystem: UnitSystemKey | undefined): NativePresentationUnitSystem | undefined {\n return unitSystem ? toNativeUnitSystem(unitSystem) : undefined;\n}\n\nfunction toNativeUnitSystem(unitSystem: UnitSystemKey): NativePresentationUnitSystem {\n switch (unitSystem) {\n case \"imperial\":\n return NativePresentationUnitSystem.BritishImperial;\n case \"metric\":\n return NativePresentationUnitSystem.Metric;\n case \"usCustomary\":\n return NativePresentationUnitSystem.UsCustomary;\n case \"usSurvey\":\n return NativePresentationUnitSystem.UsSurvey;\n }\n}\n\nfunction collateAssetDirectories(dirs: string[]): string[] {\n return [...new Set(dirs)];\n}\nconst createContentDescriptorOverrides = (descriptorOrOverrides: Descriptor | DescriptorOverrides): DescriptorOverrides => {\n if (descriptorOrOverrides instanceof Descriptor) {\n return descriptorOrOverrides.createDescriptorOverrides();\n }\n return descriptorOrOverrides;\n};\n\nfunction parseUpdateInfo(info: UpdateInfo | undefined) {\n if (info === undefined) {\n return undefined;\n }\n\n const parsedInfo: UpdateInfo = {};\n for (const fileName in info) {\n // istanbul ignore if\n if (!info.hasOwnProperty(fileName)) {\n continue;\n }\n\n const imodelDb = IModelDb.findByFilename(fileName);\n if (!imodelDb) {\n Logger.logError(PresentationBackendLoggerCategory.PresentationManager, `Update records IModelDb not found with path ${fileName}`);\n continue;\n }\n\n parsedInfo[imodelDb.getRpcProps().key] = info[fileName];\n }\n return Object.keys(parsedInfo).length > 0 ? parsedInfo : undefined;\n}\n\n/** @internal */\nexport function ipcUpdatesHandler(info: UpdateInfo | undefined) {\n const parsed = parseUpdateInfo(info);\n if (parsed) {\n IpcHost.send(PresentationIpcEvents.Update, parsed);\n }\n}\n\n/** @internal */\n// istanbul ignore next\nexport function noopUpdatesHandler(_info: UpdateInfo | undefined) {}\n"]}
|
|
1
|
+
{"version":3,"file":"PresentationManagerDetail.js","sourceRoot":"","sources":["../../../src/presentation-backend/PresentationManagerDetail.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\nimport * as hash from \"object-hash\";\nimport * as path from \"path\";\nimport { IModelDb, IModelJsNative, IpcHost } from \"@itwin/core-backend\";\nimport { BeEvent, Logger } from \"@itwin/core-bentley\";\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\nimport {\n Content,\n ContentDescriptorRequestOptions,\n ContentFlags,\n ContentRequestOptions,\n ContentSourcesRequestOptions,\n deepReplaceNullsToUndefined,\n DefaultContentDisplayTypes,\n Descriptor,\n DescriptorOverrides,\n DiagnosticsOptions,\n DiagnosticsScopeLogs,\n DisplayLabelRequestOptions,\n DisplayLabelsRequestOptions,\n DisplayValueGroup,\n DistinctValuesRequestOptions,\n FilterByInstancePathsHierarchyRequestOptions,\n FilterByTextHierarchyRequestOptions,\n FormatsMap,\n HierarchyLevel,\n HierarchyLevelDescriptorRequestOptions,\n HierarchyRequestOptions,\n InstanceKey,\n Item,\n ItemJSON,\n Key,\n KeySet,\n LabelDefinition,\n Node,\n NodeKey,\n NodePathElement,\n NodePathFilteringData,\n Paged,\n PagedResponse,\n PresentationIpcEvents,\n Prioritized,\n Ruleset,\n RulesetVariable,\n SelectClassInfo,\n UpdateInfo,\n WithCancelEvent,\n} from \"@itwin/presentation-common\";\nimport { PresentationBackendLoggerCategory } from \"./BackendLoggerCategory\";\nimport {\n createDefaultNativePlatform,\n NativePlatformDefinition,\n NativePlatformRequestTypes,\n NativePlatformResponse,\n NativePresentationDefaultUnitFormats,\n NativePresentationKeySetJSON,\n NativePresentationUnitSystem,\n PresentationNativePlatformResponseError,\n} from \"./NativePlatform\";\nimport { HierarchyCacheConfig, HierarchyCacheMode, PresentationManagerProps } from \"./PresentationManager\";\nimport { RulesetManager, RulesetManagerImpl } from \"./RulesetManager\";\nimport { BackendDiagnosticsAttribute, BackendDiagnosticsOptions, combineDiagnosticsOptions, getElementKey, reportDiagnostics } from \"./Utils\";\n\n/** @internal */\nexport class PresentationManagerDetail implements Disposable {\n private _disposed: boolean;\n private _nativePlatform: NativePlatformDefinition | undefined;\n private _onManagerUsed: (() => void) | undefined;\n private _diagnosticsOptions: BackendDiagnosticsOptions | undefined;\n\n public rulesets: RulesetManager;\n public activeUnitSystem: UnitSystemKey | undefined;\n\n constructor(params: PresentationManagerProps) {\n this._disposed = false;\n\n this._nativePlatform =\n params.addon ??\n createNativePlatform(\n params.id ?? \"\",\n params.workerThreadsCount ?? 2,\n IpcHost.isValid ? ipcUpdatesHandler : noopUpdatesHandler,\n params.caching,\n params.defaultFormats,\n params.useMmap,\n );\n\n setupRulesets(this._nativePlatform, params.supplementalRulesetDirectories ?? [], params.rulesetDirectories ?? []);\n this.activeUnitSystem = params.defaultUnitSystem;\n\n this._onManagerUsed = undefined;\n this.rulesets = new RulesetManagerImpl(() => this.getNativePlatform());\n this._diagnosticsOptions = params.diagnostics;\n }\n\n public [Symbol.dispose](): void {\n if (this._disposed) {\n return;\n }\n\n this.getNativePlatform()[Symbol.dispose]();\n this._nativePlatform = undefined;\n\n this._disposed = true;\n }\n\n public getNativePlatform(): NativePlatformDefinition {\n if (this._disposed) {\n throw new Error(\"Attempting to use Presentation manager after disposal\");\n }\n return this._nativePlatform!;\n }\n\n public setOnManagerUsedHandler(handler: () => void) {\n this._onManagerUsed = handler;\n }\n\n public async getNodes(\n requestOptions: WithCancelEvent<Prioritized<Paged<HierarchyRequestOptions<IModelDb, NodeKey, RulesetVariable>>>> & BackendDiagnosticsAttribute,\n ): Promise<string> {\n const { rulesetOrId, parentKey, ...strippedOptions } = requestOptions;\n const params = {\n requestId: parentKey ? NativePlatformRequestTypes.GetChildren : NativePlatformRequestTypes.GetRootNodes,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n nodeKey: parentKey,\n };\n return this.request(params);\n }\n\n public async getNodesCount(\n requestOptions: WithCancelEvent<Prioritized<HierarchyRequestOptions<IModelDb, NodeKey, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<number> {\n const { rulesetOrId, parentKey, ...strippedOptions } = requestOptions;\n const params = {\n requestId: parentKey ? NativePlatformRequestTypes.GetChildrenCount : NativePlatformRequestTypes.GetRootNodesCount,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n nodeKey: parentKey,\n };\n return JSON.parse(await this.request(params));\n }\n\n public async getNodesDescriptor(\n requestOptions: WithCancelEvent<Prioritized<HierarchyLevelDescriptorRequestOptions<IModelDb, NodeKey, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<string> {\n const { rulesetOrId, parentKey, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetNodesDescriptor,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n nodeKey: parentKey,\n };\n return this.request(params);\n }\n\n public async getNodePaths(\n requestOptions: WithCancelEvent<Prioritized<FilterByInstancePathsHierarchyRequestOptions<IModelDb, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<NodePathElement[]> {\n const { rulesetOrId, instancePaths, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetNodePaths,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n paths: instancePaths,\n };\n const paths: NodePathElement[] = deepReplaceNullsToUndefined(JSON.parse(await this.request(params)));\n paths.forEach(fixNodePathElementFromAddon);\n return paths;\n }\n\n public async getFilteredNodePaths(\n requestOptions: WithCancelEvent<Prioritized<FilterByTextHierarchyRequestOptions<IModelDb, RulesetVariable>>> & BackendDiagnosticsAttribute,\n ): Promise<NodePathElement[]> {\n const { rulesetOrId, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetFilteredNodePaths,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n };\n const paths: NodePathElement[] = deepReplaceNullsToUndefined(JSON.parse(await this.request(params)));\n paths.forEach(fixNodePathElementFromAddon);\n return paths;\n }\n\n public async getContentDescriptor(requestOptions: WithCancelEvent<Prioritized<ContentDescriptorRequestOptions<IModelDb, KeySet>>>): Promise<string> {\n const { rulesetOrId, contentFlags, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContentDescriptor,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n contentFlags: contentFlags ?? ContentFlags.DescriptorOnly, // only set \"descriptor only\" flag if there are no flags provided\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n };\n return this.request(params);\n }\n\n public async getContentSources(\n requestOptions: WithCancelEvent<Prioritized<ContentSourcesRequestOptions<IModelDb>>> & BackendDiagnosticsAttribute,\n ): Promise<SelectClassInfo[]> {\n const params = {\n requestId: NativePlatformRequestTypes.GetContentSources,\n rulesetId: \"ElementProperties\",\n ...requestOptions,\n };\n const reviver = (key: string, value: any) => {\n return key === \"\" ? SelectClassInfo.listFromCompressedJSON(value.sources, value.classesMap) : value;\n };\n return deepReplaceNullsToUndefined(JSON.parse(await this.request(params), reviver));\n }\n\n public async getContentSetSize(\n requestOptions: WithCancelEvent<Prioritized<ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>> &\n BackendDiagnosticsAttribute,\n ): Promise<number> {\n const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContentSetSize,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n return JSON.parse(await this.request(params));\n }\n\n public async getContentSet(\n requestOptions: WithCancelEvent<Prioritized<Paged<ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>>> &\n BackendDiagnosticsAttribute,\n ): Promise<Item[]> {\n const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContentSet,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n return JSON.parse(await this.request(params))\n .map((json: ItemJSON) => Item.fromJSON(deepReplaceNullsToUndefined(json)))\n .filter((item: Item | undefined): item is Item => !!item);\n }\n\n public async getContent(\n requestOptions: WithCancelEvent<Prioritized<Paged<ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>>> &\n BackendDiagnosticsAttribute,\n ): Promise<Content | undefined> {\n const { rulesetOrId, descriptor, ...strippedOptions } = requestOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetContent,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptions,\n keys: getKeysForContentRequest(requestOptions.keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n return Content.fromJSON(deepReplaceNullsToUndefined(JSON.parse(await this.request(params))));\n }\n\n public async getPagedDistinctValues(\n requestOptions: WithCancelEvent<Prioritized<DistinctValuesRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet, RulesetVariable>>> &\n BackendDiagnosticsAttribute,\n ): Promise<PagedResponse<DisplayValueGroup>> {\n const { rulesetOrId, ...strippedOptions } = requestOptions;\n const { descriptor, keys, ...strippedOptionsNoDescriptorAndKeys } = strippedOptions;\n const params = {\n requestId: NativePlatformRequestTypes.GetPagedDistinctValues,\n rulesetId: this.registerRuleset(rulesetOrId),\n ...strippedOptionsNoDescriptorAndKeys,\n keys: getKeysForContentRequest(keys, (map) => bisElementInstanceKeysProcessor(requestOptions.imodel, map)),\n descriptorOverrides: createContentDescriptorOverrides(descriptor),\n };\n return deepReplaceNullsToUndefined(JSON.parse(await this.request(params)));\n }\n\n public async getDisplayLabelDefinition(\n requestOptions: WithCancelEvent<Prioritized<DisplayLabelRequestOptions<IModelDb, InstanceKey>>> & BackendDiagnosticsAttribute,\n ): Promise<LabelDefinition> {\n const params = {\n requestId: NativePlatformRequestTypes.GetDisplayLabel,\n ...requestOptions,\n };\n return deepReplaceNullsToUndefined(JSON.parse(await this.request(params)));\n }\n\n public async getDisplayLabelDefinitions(\n requestOptions: WithCancelEvent<Prioritized<Paged<DisplayLabelsRequestOptions<IModelDb, InstanceKey>>>> & BackendDiagnosticsAttribute,\n ): Promise<LabelDefinition[]> {\n const concreteKeys = requestOptions.keys\n .map((k) => {\n if (k.className === \"BisCore:Element\") {\n return getElementKey(requestOptions.imodel, k.id);\n }\n return k;\n })\n .filter<InstanceKey>((k): k is InstanceKey => !!k);\n const contentRequestOptions: ContentRequestOptions<IModelDb, Descriptor | DescriptorOverrides, KeySet> = {\n ...requestOptions,\n rulesetOrId: \"RulesDrivenECPresentationManager_RulesetId_DisplayLabel\",\n descriptor: {\n displayType: DefaultContentDisplayTypes.List,\n contentFlags: ContentFlags.ShowLabels | ContentFlags.NoFields,\n },\n keys: new KeySet(concreteKeys),\n };\n const content = await this.getContent(contentRequestOptions);\n return concreteKeys.map((key) => {\n const item = content ? content.contentSet.find((it) => it.primaryKeys.length > 0 && InstanceKey.compare(it.primaryKeys[0], key) === 0) : undefined;\n if (!item) {\n return { displayValue: \"\", rawValue: \"\", typeName: \"\" };\n }\n return item.label;\n });\n }\n\n /** Registers given ruleset and replaces the ruleset with its ID in the resulting object */\n public registerRuleset(rulesetOrId: Ruleset | string): string {\n if (typeof rulesetOrId === \"object\") {\n const rulesetWithNativeId = { ...rulesetOrId, id: this.getRulesetId(rulesetOrId) };\n return this.rulesets.add(rulesetWithNativeId).id;\n }\n\n return rulesetOrId;\n }\n\n /** @internal */\n public getRulesetId(rulesetOrId: Ruleset | string): string {\n return getRulesetIdObject(rulesetOrId).uniqueId;\n }\n\n public async request(params: RequestParams): Promise<string> {\n this._onManagerUsed?.();\n const { requestId, imodel, unitSystem, diagnostics: requestDiagnostics, cancelEvent, ...strippedParams } = params;\n const imodelAddon = this.getNativePlatform().getImodelAddon(imodel);\n const response = await withOptionalDiagnostics([this._diagnosticsOptions, requestDiagnostics], async (diagnosticsOptions) => {\n const nativeRequestParams: any = {\n requestId,\n params: {\n unitSystem: toOptionalNativeUnitSystem(unitSystem ?? this.activeUnitSystem),\n ...strippedParams,\n ...(diagnosticsOptions ? { diagnostics: diagnosticsOptions } : undefined),\n },\n };\n return this.getNativePlatform().handleRequest(imodelAddon, JSON.stringify(nativeRequestParams), cancelEvent);\n });\n return response.result;\n }\n}\n\nasync function withOptionalDiagnostics(\n diagnosticsOptions: Array<BackendDiagnosticsOptions | undefined>,\n nativePlatformRequestHandler: (combinedDiagnosticsOptions: DiagnosticsOptions | undefined) => Promise<NativePlatformResponse<string>>,\n): Promise<NativePlatformResponse<string>> {\n const contexts = diagnosticsOptions.map((d) => d?.requestContextSupplier?.());\n const combinedOptions = combineDiagnosticsOptions(...diagnosticsOptions);\n let responseDiagnostics: DiagnosticsScopeLogs | undefined;\n try {\n const response = await nativePlatformRequestHandler(combinedOptions);\n responseDiagnostics = response.diagnostics;\n return response;\n } catch (e) {\n if (e instanceof PresentationNativePlatformResponseError) {\n responseDiagnostics = e.diagnostics;\n }\n throw e;\n } finally {\n if (responseDiagnostics) {\n const diagnostics = { logs: [responseDiagnostics] };\n diagnosticsOptions.forEach((options, i) => {\n options && reportDiagnostics(diagnostics, options, contexts[i]);\n });\n }\n }\n}\n\ninterface RequestParams {\n diagnostics?: BackendDiagnosticsOptions;\n requestId: string;\n imodel: IModelDb;\n unitSystem?: UnitSystemKey;\n cancelEvent?: BeEvent<() => void>;\n}\n\nfunction setupRulesets(nativePlatform: NativePlatformDefinition, supplementalRulesetDirectories: string[], primaryRulesetDirectories: string[]): void {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const elementPropertiesRuleset: Ruleset = require(\"./primary-presentation-rules/ElementProperties.PresentationRuleSet.json\");\n nativePlatform.addRuleset(JSON.stringify(elementPropertiesRuleset));\n\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const bisSupplementalRuleset: Ruleset = require(\"./supplemental-presentation-rules/BisCore.PresentationRuleSet.json\");\n nativePlatform.registerSupplementalRuleset(JSON.stringify(bisSupplementalRuleset));\n\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const funcSupplementalRuleset: Ruleset = require(\"./supplemental-presentation-rules/Functional.PresentationRuleSet.json\");\n nativePlatform.registerSupplementalRuleset(JSON.stringify(funcSupplementalRuleset));\n\n nativePlatform.setupSupplementalRulesetDirectories(collateAssetDirectories(supplementalRulesetDirectories));\n nativePlatform.setupRulesetDirectories(collateAssetDirectories(primaryRulesetDirectories));\n}\n\ninterface RulesetIdObject {\n uniqueId: string;\n parts: {\n id: string;\n hash?: string;\n };\n}\n\n/** @internal */\nexport function getRulesetIdObject(rulesetOrId: Ruleset | string): RulesetIdObject {\n if (typeof rulesetOrId === \"object\") {\n if (IpcHost.isValid) {\n // in case of native apps we don't want to enforce ruleset id uniqueness as ruleset variables\n // are stored on a backend and creating new id will lose those variables\n return {\n uniqueId: rulesetOrId.id,\n parts: { id: rulesetOrId.id },\n };\n }\n\n const hashedId = hash.MD5(rulesetOrId);\n return {\n uniqueId: `${rulesetOrId.id}-${hashedId}`,\n parts: {\n id: rulesetOrId.id,\n hash: hashedId,\n },\n };\n }\n\n return { uniqueId: rulesetOrId, parts: { id: rulesetOrId } };\n}\n\n/** @internal */\nexport function getKeysForContentRequest(\n keys: Readonly<KeySet>,\n classInstanceKeysProcessor?: (keys: Map<string, Set<string>>) => void,\n): NativePresentationKeySetJSON {\n const result: NativePresentationKeySetJSON = {\n instanceKeys: [],\n nodeKeys: [],\n };\n const classInstancesMap = new Map<string, Set<string>>();\n keys.forEach((key) => {\n if (Key.isNodeKey(key)) {\n result.nodeKeys.push(key);\n }\n\n if (Key.isInstanceKey(key)) {\n addInstanceKey(classInstancesMap, key);\n }\n });\n\n if (classInstanceKeysProcessor) {\n classInstanceKeysProcessor(classInstancesMap);\n }\n\n for (const entry of classInstancesMap) {\n if (entry[1].size > 0) {\n result.instanceKeys.push([entry[\"0\"], [...entry[1]]]);\n }\n }\n\n return result;\n}\n\n/** @internal */\nexport function bisElementInstanceKeysProcessor(imodel: IModelDb, classInstancesMap: Map<string, Set<string>>) {\n const elementClassName = \"BisCore:Element\";\n const elementIds = classInstancesMap.get(elementClassName);\n if (elementIds) {\n const deleteElementIds = new Array<string>();\n elementIds.forEach((elementId) => {\n const concreteKey = getElementKey(imodel, elementId);\n if (concreteKey && concreteKey.className !== elementClassName) {\n deleteElementIds.push(elementId);\n addInstanceKey(classInstancesMap, { className: concreteKey.className, id: elementId });\n }\n });\n for (const id of deleteElementIds) {\n elementIds.delete(id);\n }\n }\n}\n\nfunction addInstanceKey(classInstancesMap: Map<string, Set<string>>, key: InstanceKey): void {\n let set = classInstancesMap.get(key.className);\n // istanbul ignore else\n if (!set) {\n set = new Set();\n classInstancesMap.set(key.className, set);\n }\n set.add(key.id);\n}\n\nfunction createNativePlatform(\n id: string,\n workerThreadsCount: number,\n updateCallback: (updateInfo: UpdateInfo | undefined) => void,\n caching: PresentationManagerProps[\"caching\"],\n defaultFormats: FormatsMap | undefined,\n useMmap: boolean | number | undefined,\n): NativePlatformDefinition {\n return new (createDefaultNativePlatform({\n id,\n taskAllocationsMap: { [Number.MAX_SAFE_INTEGER]: workerThreadsCount },\n updateCallback,\n cacheConfig: createCacheConfig(caching?.hierarchies),\n contentCacheSize: caching?.content?.size,\n workerConnectionCacheSize: caching?.workerConnectionCacheSize,\n defaultFormats: toNativeUnitFormatsMap(defaultFormats),\n useMmap,\n }))();\n\n function createCacheConfig(config?: HierarchyCacheConfig): IModelJsNative.ECPresentationHierarchyCacheConfig {\n switch (config?.mode) {\n case HierarchyCacheMode.Disk:\n return { ...config, directory: normalizeDirectory(config.directory) };\n\n case HierarchyCacheMode.Hybrid:\n return {\n ...config,\n disk: config.disk ? { ...config.disk, directory: normalizeDirectory(config.disk.directory) } : undefined,\n };\n\n case HierarchyCacheMode.Memory:\n return config;\n\n default:\n return { mode: HierarchyCacheMode.Disk, directory: \"\" };\n }\n }\n\n function normalizeDirectory(directory?: string): string {\n return directory ? path.resolve(directory) : \"\";\n }\n\n function toNativeUnitFormatsMap(map: FormatsMap | undefined): NativePresentationDefaultUnitFormats | undefined {\n if (!map) {\n return undefined;\n }\n\n const nativeFormatsMap: NativePresentationDefaultUnitFormats = {};\n Object.entries(map).forEach(([phenomenon, formats]) => {\n nativeFormatsMap[phenomenon] = (Array.isArray(formats) ? formats : [formats]).map((unitSystemsFormat) => ({\n unitSystems: unitSystemsFormat.unitSystems.map(toNativeUnitSystem),\n format: unitSystemsFormat.format,\n }));\n });\n return nativeFormatsMap;\n }\n}\n\nfunction toOptionalNativeUnitSystem(unitSystem: UnitSystemKey | undefined): NativePresentationUnitSystem | undefined {\n return unitSystem ? toNativeUnitSystem(unitSystem) : undefined;\n}\n\nfunction toNativeUnitSystem(unitSystem: UnitSystemKey): NativePresentationUnitSystem {\n switch (unitSystem) {\n case \"imperial\":\n return NativePresentationUnitSystem.BritishImperial;\n case \"metric\":\n return NativePresentationUnitSystem.Metric;\n case \"usCustomary\":\n return NativePresentationUnitSystem.UsCustomary;\n case \"usSurvey\":\n return NativePresentationUnitSystem.UsSurvey;\n }\n}\n\nfunction collateAssetDirectories(dirs: string[]): string[] {\n return [...new Set(dirs)];\n}\nconst createContentDescriptorOverrides = (descriptorOrOverrides: Descriptor | DescriptorOverrides): DescriptorOverrides => {\n if (descriptorOrOverrides instanceof Descriptor) {\n return descriptorOrOverrides.createDescriptorOverrides();\n }\n return descriptorOrOverrides;\n};\n\nfunction parseUpdateInfo(info: UpdateInfo | undefined) {\n if (info === undefined) {\n return undefined;\n }\n\n const parsedInfo: UpdateInfo = {};\n for (const fileName in info) {\n // istanbul ignore if\n if (!info.hasOwnProperty(fileName)) {\n continue;\n }\n\n const imodelDb = IModelDb.findByFilename(fileName);\n if (!imodelDb) {\n Logger.logError(PresentationBackendLoggerCategory.PresentationManager, `Update records IModelDb not found with path ${fileName}`);\n continue;\n }\n\n parsedInfo[imodelDb.getRpcProps().key] = info[fileName];\n }\n return Object.keys(parsedInfo).length > 0 ? parsedInfo : undefined;\n}\n\n/** @internal */\nexport function ipcUpdatesHandler(info: UpdateInfo | undefined) {\n const parsed = parseUpdateInfo(info);\n if (parsed) {\n IpcHost.send(PresentationIpcEvents.Update, parsed);\n }\n}\n\n/** @internal */\n// istanbul ignore next\nexport function noopUpdatesHandler(_info: UpdateInfo | undefined) {}\n\n/** @internal */\nexport function parseHierarchyLevelFromString(serializedHierarchyLevel: string): HierarchyLevel {\n const hl: HierarchyLevel = deepReplaceNullsToUndefined(JSON.parse(serializedHierarchyLevel));\n hl.nodes.forEach(fixNodeFromAddon);\n return hl;\n}\n\nfunction fixNodePathElementFromAddon(npe: NodePathElement & { filteringData?: NodePathFilteringData | AddonNodePathFilteringData }): NodePathElement {\n fixNodeFromAddon(npe.node);\n npe.children.forEach(fixNodePathElementFromAddon);\n // istanbul ignore next\n if (npe.filteringData && isAddonNodePathFilteringData(npe.filteringData)) {\n npe.filteringData = {\n matchesCount: npe.filteringData.occurances,\n childMatchesCount: npe.filteringData.childrenOccurances,\n };\n }\n return npe;\n}\ninterface AddonNodePathFilteringData {\n childrenOccurances: number;\n occurances: number;\n}\nfunction isAddonNodePathFilteringData(filteringData: NodePathFilteringData | AddonNodePathFilteringData): filteringData is AddonNodePathFilteringData {\n return \"occurances\" in filteringData;\n}\n\nfunction fixNodeFromAddon(node: Node & { labelDefinition?: LabelDefinition }): Node {\n // FIXME: this is a temporary workaround until the addon starts serializing node labels\n // under the \"label\" property\n // istanbul ignore next\n if (node.labelDefinition) {\n node.label = node.labelDefinition;\n delete node.labelDefinition;\n }\n return node;\n}\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { Id64String } from "@itwin/core-bentley";
|
|
5
5
|
import { IModelRpcProps } from "@itwin/core-common";
|
|
6
|
-
import { ComputeSelectionRpcRequestOptions, ContentDescriptorRpcRequestOptions, ContentInstanceKeysRpcRequestOptions, ContentRpcRequestOptions, ContentSourcesRpcRequestOptions, ContentSourcesRpcResult, DescriptorJSON, DisplayLabelRpcRequestOptions, DisplayLabelsRpcRequestOptions,
|
|
6
|
+
import { ComputeSelectionRpcRequestOptions, ContentDescriptorRpcRequestOptions, ContentInstanceKeysRpcRequestOptions, ContentRpcRequestOptions, ContentSourcesRpcRequestOptions, ContentSourcesRpcResult, DescriptorJSON, DisplayLabelRpcRequestOptions, DisplayLabelsRpcRequestOptions, DisplayValueGroup, DistinctValuesRpcRequestOptions, ElementProperties, FilterByInstancePathsHierarchyRpcRequestOptions, FilterByTextHierarchyRpcRequestOptions, HierarchyLevelDescriptorRpcRequestOptions, HierarchyRpcRequestOptions, ItemJSON, KeySetJSON, LabelDefinition, Node, NodePathElement, Paged, PagedResponse, PresentationRpcInterface, PresentationRpcResponse, SelectionScope, SelectionScopeRpcRequestOptions, SingleElementPropertiesRpcRequestOptions } from "@itwin/presentation-common";
|
|
7
7
|
import { PresentationManager } from "./PresentationManager";
|
|
8
8
|
import { TemporaryStorage } from "./TemporaryStorage";
|
|
9
9
|
/** @internal */
|
|
@@ -37,10 +37,10 @@ export declare class PresentationRpcImpl extends PresentationRpcInterface implem
|
|
|
37
37
|
private getIModel;
|
|
38
38
|
private makeRequest;
|
|
39
39
|
getNodesCount(token: IModelRpcProps, requestOptions: HierarchyRpcRequestOptions): PresentationRpcResponse<number>;
|
|
40
|
-
getPagedNodes(token: IModelRpcProps, requestOptions: Paged<HierarchyRpcRequestOptions>): PresentationRpcResponse<PagedResponse<
|
|
40
|
+
getPagedNodes(token: IModelRpcProps, requestOptions: Paged<HierarchyRpcRequestOptions>): PresentationRpcResponse<PagedResponse<Node>>;
|
|
41
41
|
getNodesDescriptor(token: IModelRpcProps, requestOptions: HierarchyLevelDescriptorRpcRequestOptions): PresentationRpcResponse<string | DescriptorJSON | undefined>;
|
|
42
|
-
getNodePaths(token: IModelRpcProps, requestOptions: FilterByInstancePathsHierarchyRpcRequestOptions): PresentationRpcResponse<
|
|
43
|
-
getFilteredNodePaths(token: IModelRpcProps, requestOptions: FilterByTextHierarchyRpcRequestOptions): PresentationRpcResponse<
|
|
42
|
+
getNodePaths(token: IModelRpcProps, requestOptions: FilterByInstancePathsHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElement[]>;
|
|
43
|
+
getFilteredNodePaths(token: IModelRpcProps, requestOptions: FilterByTextHierarchyRpcRequestOptions): PresentationRpcResponse<NodePathElement[]>;
|
|
44
44
|
getContentSources(token: IModelRpcProps, requestOptions: ContentSourcesRpcRequestOptions): PresentationRpcResponse<ContentSourcesRpcResult>;
|
|
45
45
|
getContentDescriptor(token: IModelRpcProps, requestOptions: ContentDescriptorRpcRequestOptions): PresentationRpcResponse<DescriptorJSON | undefined>;
|
|
46
46
|
getContentSetSize(token: IModelRpcProps, requestOptions: ContentRpcRequestOptions): PresentationRpcResponse<number>;
|
|
@@ -50,7 +50,7 @@ export declare class PresentationRpcImpl extends PresentationRpcInterface implem
|
|
|
50
50
|
} | undefined>;
|
|
51
51
|
getPagedContentSet(token: IModelRpcProps, requestOptions: Paged<ContentRpcRequestOptions>): PresentationRpcResponse<PagedResponse<ItemJSON>>;
|
|
52
52
|
getElementProperties(token: IModelRpcProps, requestOptions: SingleElementPropertiesRpcRequestOptions): PresentationRpcResponse<ElementProperties | undefined>;
|
|
53
|
-
getPagedDistinctValues(token: IModelRpcProps, requestOptions: DistinctValuesRpcRequestOptions): PresentationRpcResponse<PagedResponse<
|
|
53
|
+
getPagedDistinctValues(token: IModelRpcProps, requestOptions: DistinctValuesRpcRequestOptions): PresentationRpcResponse<PagedResponse<DisplayValueGroup>>;
|
|
54
54
|
getContentInstanceKeys(token: IModelRpcProps, requestOptions: ContentInstanceKeysRpcRequestOptions): PresentationRpcResponse<{
|
|
55
55
|
total: number;
|
|
56
56
|
items: KeySetJSON;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/presentation-backend/PresentationRpcImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAW,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAIL,iCAAiC,EACjC,kCAAkC,EAElC,oCAAoC,EACpC,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EAEvB,cAAc,EAEd,6BAA6B,EAC7B,8BAA8B,
|
|
1
|
+
{"version":3,"file":"PresentationRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/presentation-backend/PresentationRpcImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const presentation_common_1 = require("@itwin/presentation-common");
|
|
|
14
14
|
const BackendLoggerCategory_1 = require("./BackendLoggerCategory");
|
|
15
15
|
const Presentation_1 = require("./Presentation");
|
|
16
16
|
const TemporaryStorage_1 = require("./TemporaryStorage");
|
|
17
|
+
const PresentationManagerDetail_1 = require("./PresentationManagerDetail");
|
|
17
18
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
18
19
|
const packageJsonVersion = require("../../../package.json").version;
|
|
19
20
|
/** @internal */
|
|
@@ -28,6 +29,9 @@ const DEFAULT_REQUEST_TIMEOUT = 5000;
|
|
|
28
29
|
* @internal
|
|
29
30
|
*/
|
|
30
31
|
class PresentationRpcImpl extends presentation_common_1.PresentationRpcInterface {
|
|
32
|
+
_requestTimeout;
|
|
33
|
+
_pendingRequests;
|
|
34
|
+
_cancelEvents;
|
|
31
35
|
constructor(props) {
|
|
32
36
|
super();
|
|
33
37
|
this._requestTimeout = props?.requestTimeout ?? DEFAULT_REQUEST_TIMEOUT;
|
|
@@ -185,52 +189,36 @@ class PresentationRpcImpl extends presentation_common_1.PresentationRpcInterface
|
|
|
185
189
|
}
|
|
186
190
|
async getNodesCount(token, requestOptions) {
|
|
187
191
|
return this.makeRequest(token, "getNodesCount", requestOptions, async (options) => {
|
|
188
|
-
options = {
|
|
189
|
-
...options,
|
|
190
|
-
parentKey: nodeKeyFromJson(options.parentKey),
|
|
191
|
-
};
|
|
192
192
|
return this.getManager(requestOptions.clientId).getNodesCount(options);
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
195
|
async getPagedNodes(token, requestOptions) {
|
|
196
196
|
return this.makeRequest(token, "getPagedNodes", requestOptions, async (options) => {
|
|
197
|
-
options = enforceValidPageSize(
|
|
198
|
-
|
|
199
|
-
parentKey: nodeKeyFromJson(options.parentKey),
|
|
200
|
-
});
|
|
201
|
-
const [serializedNodesJson, count] = await Promise.all([
|
|
197
|
+
options = enforceValidPageSize(options);
|
|
198
|
+
const [serializedHierarchyLevel, count] = await Promise.all([
|
|
202
199
|
this.getManager(requestOptions.clientId).getDetail().getNodes(options),
|
|
203
200
|
this.getManager(requestOptions.clientId).getNodesCount(options),
|
|
204
201
|
]);
|
|
205
|
-
|
|
206
|
-
const nodesJson = JSON.parse(serializedNodesJson);
|
|
202
|
+
const hierarchyLevel = (0, PresentationManagerDetail_1.parseHierarchyLevelFromString)(serializedHierarchyLevel);
|
|
207
203
|
return {
|
|
208
204
|
total: count,
|
|
209
|
-
items:
|
|
205
|
+
items: hierarchyLevel.nodes,
|
|
210
206
|
};
|
|
211
207
|
});
|
|
212
208
|
}
|
|
213
209
|
async getNodesDescriptor(token, requestOptions) {
|
|
214
210
|
return this.makeRequest(token, "getNodesDescriptor", requestOptions, async (options) => {
|
|
215
|
-
options = {
|
|
216
|
-
...options,
|
|
217
|
-
parentKey: nodeKeyFromJson(options.parentKey),
|
|
218
|
-
};
|
|
219
211
|
return this.getManager(requestOptions.clientId).getDetail().getNodesDescriptor(options);
|
|
220
212
|
});
|
|
221
213
|
}
|
|
222
214
|
async getNodePaths(token, requestOptions) {
|
|
223
215
|
return this.makeRequest(token, "getNodePaths", requestOptions, async (options) => {
|
|
224
|
-
|
|
225
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
226
|
-
return result.map(presentation_common_1.NodePathElement.toJSON);
|
|
216
|
+
return this.getManager(requestOptions.clientId).getDetail().getNodePaths(options);
|
|
227
217
|
});
|
|
228
218
|
}
|
|
229
219
|
async getFilteredNodePaths(token, requestOptions) {
|
|
230
220
|
return this.makeRequest(token, "getFilteredNodePaths", requestOptions, async (options) => {
|
|
231
|
-
|
|
232
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
233
|
-
return result.map(presentation_common_1.NodePathElement.toJSON);
|
|
221
|
+
return this.getManager(requestOptions.clientId).getDetail().getFilteredNodePaths(options);
|
|
234
222
|
});
|
|
235
223
|
}
|
|
236
224
|
async getContentSources(token, requestOptions) {
|
|
@@ -330,12 +318,7 @@ class PresentationRpcImpl extends presentation_common_1.PresentationRpcInterface
|
|
|
330
318
|
...options,
|
|
331
319
|
keys: presentation_common_1.KeySet.fromJSON(options.keys),
|
|
332
320
|
});
|
|
333
|
-
|
|
334
|
-
return {
|
|
335
|
-
...response,
|
|
336
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
337
|
-
items: response.items.map(presentation_common_1.DisplayValueGroup.toJSON),
|
|
338
|
-
};
|
|
321
|
+
return this.getManager(requestOptions.clientId).getDetail().getPagedDistinctValues(options);
|
|
339
322
|
});
|
|
340
323
|
}
|
|
341
324
|
async getContentInstanceKeys(token, requestOptions) {
|
|
@@ -412,12 +395,4 @@ const getValidPageSize = (size, maxPageSize) => {
|
|
|
412
395
|
const requestedSize = size ?? 0;
|
|
413
396
|
return requestedSize === 0 || requestedSize > maxPageSize ? maxPageSize : requestedSize;
|
|
414
397
|
};
|
|
415
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
416
|
-
const nodeKeyFromJson = (json) => {
|
|
417
|
-
if (!json) {
|
|
418
|
-
return undefined;
|
|
419
|
-
}
|
|
420
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
421
|
-
return presentation_common_1.NodeKey.fromJSON(json);
|
|
422
|
-
};
|
|
423
398
|
//# sourceMappingURL=PresentationRpcImpl.js.map
|