@itwin/presentation-common 3.3.0-dev.7 → 3.3.0-dev.70
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 +36 -1
- package/lib/cjs/presentation-common/Diagnostics.d.ts +17 -3
- package/lib/cjs/presentation-common/Diagnostics.d.ts.map +1 -1
- package/lib/cjs/presentation-common/Diagnostics.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts +17 -3
- package/lib/cjs/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.js +6 -1
- package/lib/cjs/presentation-common/PresentationManagerOptions.js.map +1 -1
- package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts +12 -4
- package/lib/cjs/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
- package/lib/cjs/presentation-common/PresentationRpcInterface.js +50 -4
- package/lib/cjs/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts +20 -19
- package/lib/cjs/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
- package/lib/cjs/presentation-common/RpcRequestsHandler.js +3 -4
- package/lib/cjs/presentation-common/RpcRequestsHandler.js.map +1 -1
- package/lib/cjs/presentation-common/content/Descriptor.d.ts +7 -1
- package/lib/cjs/presentation-common/content/Descriptor.d.ts.map +1 -1
- package/lib/cjs/presentation-common/content/Descriptor.js +6 -0
- package/lib/cjs/presentation-common/content/Descriptor.js.map +1 -1
- package/lib/cjs/presentation-common/selection/SelectionScope.d.ts +9 -0
- package/lib/cjs/presentation-common/selection/SelectionScope.d.ts.map +1 -1
- package/lib/cjs/presentation-common/selection/SelectionScope.js.map +1 -1
- package/lib/esm/presentation-common/Diagnostics.d.ts +17 -3
- package/lib/esm/presentation-common/Diagnostics.d.ts.map +1 -1
- package/lib/esm/presentation-common/Diagnostics.js.map +1 -1
- package/lib/esm/presentation-common/PresentationManagerOptions.d.ts +17 -3
- package/lib/esm/presentation-common/PresentationManagerOptions.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationManagerOptions.js +4 -0
- package/lib/esm/presentation-common/PresentationManagerOptions.js.map +1 -1
- package/lib/esm/presentation-common/PresentationRpcInterface.d.ts +12 -4
- package/lib/esm/presentation-common/PresentationRpcInterface.d.ts.map +1 -1
- package/lib/esm/presentation-common/PresentationRpcInterface.js +50 -4
- package/lib/esm/presentation-common/PresentationRpcInterface.js.map +1 -1
- package/lib/esm/presentation-common/RpcRequestsHandler.d.ts +20 -19
- package/lib/esm/presentation-common/RpcRequestsHandler.d.ts.map +1 -1
- package/lib/esm/presentation-common/RpcRequestsHandler.js +3 -4
- package/lib/esm/presentation-common/RpcRequestsHandler.js.map +1 -1
- package/lib/esm/presentation-common/content/Descriptor.d.ts +7 -1
- package/lib/esm/presentation-common/content/Descriptor.d.ts.map +1 -1
- package/lib/esm/presentation-common/content/Descriptor.js +6 -0
- package/lib/esm/presentation-common/content/Descriptor.js.map +1 -1
- package/lib/esm/presentation-common/selection/SelectionScope.d.ts +9 -0
- package/lib/esm/presentation-common/selection/SelectionScope.d.ts.map +1 -1
- package/lib/esm/presentation-common/selection/SelectionScope.js.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcRequestsHandler.js","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.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 { Guid, Id64String, IDisposable, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcManager } from \"@itwin/core-common\";\r\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory\";\r\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { DiagnosticsScopeLogs } from \"./Diagnostics\";\r\nimport { InstanceKeyJSON } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationError, 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 ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions,\r\n DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions,\r\n HierarchyRequestOptions, Paged, RequestOptions, RequestOptionsWithRuleset, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport {\r\n ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse,\r\n} from \"./PresentationRpcInterface\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Configuration parameters for [[RpcRequestsHandler]].\r\n *\r\n * @internal\r\n */\r\nexport interface RpcRequestsHandlerProps {\r\n /**\r\n * Optional ID used to identify client that requests data. If not specified,\r\n * the handler creates a unique GUID as a client id.\r\n * @internal\r\n */\r\n clientId?: string;\r\n}\r\n\r\n/**\r\n * RPC requests handler that wraps [[PresentationRpcInterface]] and\r\n * adds handling for cases when backend needs to be synced with client\r\n * state.\r\n *\r\n * @internal\r\n */\r\nexport class RpcRequestsHandler implements IDisposable {\r\n public readonly maxRequestRepeatCount: number = 5;\r\n\r\n /** ID that identifies this handler as a client */\r\n public readonly clientId: string;\r\n\r\n public constructor(props?: RpcRequestsHandlerProps) {\r\n this.clientId = (props && props.clientId) ? props.clientId : Guid.createValue();\r\n }\r\n\r\n public dispose() {\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private get rpcClient(): PresentationRpcInterface { return RpcManager.getClientForInterface(PresentationRpcInterface); }\r\n\r\n private async requestRepeatedly<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: (logs: DiagnosticsScopeLogs[]) => void, repeatCount: number = 1): Promise<TResult> {\r\n let diagnostics: DiagnosticsScopeLogs[] | undefined;\r\n let error: unknown | undefined;\r\n let shouldRepeat = false;\r\n try {\r\n const response = await func();\r\n diagnostics = response.diagnostics;\r\n\r\n if (response.statusCode === PresentationStatus.Success)\r\n return response.result!;\r\n\r\n if (response.statusCode === PresentationStatus.BackendTimeout && repeatCount < this.maxRequestRepeatCount)\r\n shouldRepeat = true;\r\n else\r\n error = new PresentationError(response.statusCode, response.errorMessage);\r\n\r\n } catch (e) {\r\n error = e;\r\n if (repeatCount < this.maxRequestRepeatCount)\r\n shouldRepeat = true;\r\n\r\n } finally {\r\n if (diagnosticsHandler && diagnostics)\r\n diagnosticsHandler(diagnostics);\r\n }\r\n\r\n if (shouldRepeat) {\r\n ++repeatCount;\r\n return this.requestRepeatedly(func, diagnosticsHandler, repeatCount);\r\n }\r\n\r\n throw error;\r\n }\r\n\r\n /**\r\n * Send the request to backend.\r\n *\r\n * If the backend responds with [[PresentationStatus.BackendTimeout]] or there's an RPC-related error,\r\n * the request is repeated up to `this._maxRequestRepeatCount` times. If we fail to get a valid success or error\r\n * response from the backend, throw the last encountered error.\r\n *\r\n * @internal\r\n */\r\n public async request<TResult, TOptions extends RequestOptions<IModelRpcProps>, TArg = any>(\r\n func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>,\r\n options: TOptions,\r\n ...additionalOptions: TArg[]): Promise<TResult> {\r\n const { imodel, diagnostics, ...optionsNoIModel } = options;\r\n const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};\r\n if (isOptionsWithRuleset(optionsNoIModel))\r\n optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);\r\n const rpcOptions: PresentationRpcRequestOptions<TOptions> = {\r\n ...optionsNoIModel,\r\n clientId: this.clientId,\r\n };\r\n if (diagnostics)\r\n rpcOptions.diagnostics = diagnosticsOptions;\r\n const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\r\n return this.requestRepeatedly(doRequest, diagnosticsHandler);\r\n }\r\n\r\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKeyJSON, RulesetVariableJSON>): Promise<number> {\r\n return this.request<number, HierarchyRequestOptions<IModelRpcProps, NodeKeyJSON, RulesetVariableJSON>>(\r\n this.rpcClient.getNodesCount.bind(this.rpcClient), options);\r\n }\r\n public async getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKeyJSON, RulesetVariableJSON>>): Promise<PagedResponse<NodeJSON>> {\r\n return this.request<PagedResponse<NodeJSON>, Paged<HierarchyRequestOptions<IModelRpcProps, NodeKeyJSON, RulesetVariableJSON>>>(\r\n this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON>): Promise<NodePathElementJSON[]> {\r\n return this.request<NodePathElementJSON[], FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON>>(\r\n this.rpcClient.getNodePaths.bind(this.rpcClient), options);\r\n }\r\n public async getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON>): Promise<NodePathElementJSON[]> {\r\n return this.request<NodePathElementJSON[], FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON>>(\r\n this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps>): Promise<ContentSourcesRpcResult> {\r\n return this.request<ContentSourcesRpcResult, ContentSourcesRequestOptions<IModelRpcProps>>(\r\n this.rpcClient.getContentSources.bind(this.rpcClient), options);\r\n }\r\n public async getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON>): Promise<DescriptorJSON | undefined> {\r\n return this.request<DescriptorJSON | undefined, ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON>>(\r\n this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\r\n }\r\n public async getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>): Promise<number> {\r\n return this.request<number, ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>(\r\n this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>) {\r\n return this.request<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined, Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>>(\r\n this.rpcClient.getPagedContent.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>) {\r\n return this.request<PagedResponse<ItemJSON>, Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>>(\r\n this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>): Promise<PagedResponse<DisplayValueGroupJSON>> {\r\n return this.request<PagedResponse<DisplayValueGroupJSON>, DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON>>(\r\n this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps>): Promise<ElementProperties | undefined> {\r\n return this.request<ElementProperties | undefined, SingleElementPropertiesRequestOptions<IModelRpcProps>>(\r\n this.rpcClient.getElementProperties.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON>): Promise<{ total: number, items: KeySetJSON }> {\r\n return this.request<{ total: number, items: KeySetJSON }, ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON>>(\r\n this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKeyJSON>): Promise<LabelDefinitionJSON> {\r\n return this.request<LabelDefinitionJSON, DisplayLabelRequestOptions<IModelRpcProps, InstanceKeyJSON>, any>(\r\n this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\r\n }\r\n public async getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKeyJSON>): Promise<PagedResponse<LabelDefinitionJSON>> {\r\n return this.request<PagedResponse<LabelDefinitionJSON>, DisplayLabelsRequestOptions<IModelRpcProps, InstanceKeyJSON>, any>(\r\n this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps>): Promise<SelectionScope[]> {\r\n return this.request<SelectionScope[], SelectionScopeRequestOptions<IModelRpcProps>>(\r\n this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);\r\n }\r\n public async computeSelection(options: SelectionScopeRequestOptions<IModelRpcProps>, ids: Id64String[], scopeId: string): Promise<KeySetJSON> {\r\n return this.request<KeySetJSON, SelectionScopeRequestOptions<IModelRpcProps>>(\r\n this.rpcClient.computeSelection.bind(this.rpcClient), options, ids, scopeId);\r\n }\r\n}\r\n\r\nfunction isOptionsWithRuleset(options: Object): options is { rulesetOrId: Ruleset} {\r\n return (typeof (options as RequestOptionsWithRuleset<any, any>).rulesetOrId === \"object\");\r\n}\r\n\r\ntype RulesetWithRequiredProperties = {\r\n [key in keyof Ruleset]-?: true;\r\n};\r\n\r\nconst RULESET_SUPPORTED_PROPERTIES_OBJ: RulesetWithRequiredProperties = {\r\n id: true,\r\n rules: true,\r\n version: true,\r\n requiredSchemas: true,\r\n supplementationInfo: true,\r\n vars: true,\r\n};\r\n\r\nfunction cleanupRuleset(ruleset: Ruleset): Ruleset {\r\n const cleanedUpRuleset: Ruleset = { ...ruleset };\r\n\r\n for (const propertyKey of Object.keys(cleanedUpRuleset)) {\r\n if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {\r\n if (propertyKey === \"$schema\")\r\n delete (cleanedUpRuleset as any)[propertyKey];\r\n else\r\n Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);\r\n }\r\n }\r\n\r\n return cleanedUpRuleset;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"RpcRequestsHandler.js","sourceRoot":"","sources":["../../../src/presentation-common/RpcRequestsHandler.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAgE;AAChE,oDAAgE;AAChE,iEAA0E;AAO1E,mCAAgE;AAYhE,yEAEoC;AAoBpC;;;;;;GAMG;AACH,MAAa,kBAAkB;IAM7B,YAAmB,KAA+B;QALlC,0BAAqB,GAAW,CAAC,CAAC;QAMhD,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAI,CAAC,WAAW,EAAE,CAAC;IAClF,CAAC;IAEM,OAAO;IACd,CAAC;IAED,gEAAgE;IAChE,IAAY,SAAS,KAA+B,OAAO,wBAAU,CAAC,qBAAqB,CAAC,mDAAwB,CAAC,CAAC,CAAC,CAAC;IAEhH,KAAK,CAAC,iBAAiB,CAAU,IAA4C,EAAE,kBAA6C,EAAE,cAAsB,CAAC;QAC3J,IAAI,WAA0C,CAAC;QAC/C,IAAI,KAA0B,CAAC;QAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;YAC9B,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YAEnC,IAAI,QAAQ,CAAC,UAAU,KAAK,0BAAkB,CAAC,OAAO;gBACpD,OAAO,QAAQ,CAAC,MAAO,CAAC;YAE1B,IAAI,QAAQ,CAAC,UAAU,KAAK,0BAAkB,CAAC,cAAc,IAAI,WAAW,GAAG,IAAI,CAAC,qBAAqB;gBACvG,YAAY,GAAG,IAAI,CAAC;;gBAEpB,KAAK,GAAG,IAAI,yBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;SAE7E;QAAC,OAAO,CAAC,EAAE;YACV,KAAK,GAAG,CAAC,CAAC;YACV,IAAI,WAAW,GAAG,IAAI,CAAC,qBAAqB;gBAC1C,YAAY,GAAG,IAAI,CAAC;SAEvB;gBAAS;YACR,kBAAkB,IAAI,WAAW,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;SACtE;QAED,IAAI,YAAY,EAAE;YAChB,EAAE,WAAW,CAAC;YACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;SACtE;QAED,MAAM,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,OAAO,CAClB,IAAoI,EACpI,OAAiB,EACjB,GAAG,iBAAyB;QAE5B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC;QAC5D,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC;QACjF,IAAI,oBAAoB,CAAC,eAAe,CAAC;YACvC,eAAe,CAAC,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAC5E,MAAM,UAAU,GAA4C;YAC1D,GAAG,eAAe;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;QACF,IAAI,WAAW;YACb,UAAU,CAAC,WAAW,GAAG,kBAAkB,CAAC;QAC9C,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAA+G;QACxI,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IACM,KAAK,CAAC,aAAa,CAAC,OAAsH;QAC/I,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,OAAuH;QAC/I,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IACM,KAAK,CAAC,oBAAoB,CAAC,OAA8G;QAC9I,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,OAAkF;QAC/G,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IACM,KAAK,CAAC,oBAAoB,CAAC,OAAsH;QACtJ,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACM,KAAK,CAAC,iBAAiB,CAAC,OAAiI;QAC9J,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IACM,KAAK,CAAC,eAAe,CAAC,OAAwI;QACnK,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IACM,KAAK,CAAC,kBAAkB,CAAC,OAAwI;QACtK,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,OAAwI;QAC1K,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,OAA2F;QAC3H,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,OAAwH;QAC1J,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAC,OAAiG;QACtI,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IACM,KAAK,CAAC,+BAA+B,CAAC,OAAkG;QAC7I,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,OAAkF;QAChH,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IACM,KAAK,CAAC,gBAAgB,CAAC,OAAoF;QAChH,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CACF;AApJD,gDAoJC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,OAAO,CAAC,OAAQ,OAA+C,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC;AAC5F,CAAC;AAMD,MAAM,gCAAgC,GAAkC;IACtE,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,gBAAgB,GAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IAEjD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;QACvD,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;YACjE,IAAI,WAAW,KAAK,SAAS;gBAC3B,OAAQ,gBAAwB,CAAC,WAAW,CAAC,CAAC;;gBAE9C,qBAAM,CAAC,UAAU,CAAC,uDAAgC,CAAC,OAAO,EAAE,qDAAqD,WAAW,2DAA2D,CAAC,CAAC;SAC5L;KACF;IAED,OAAO,gBAAgB,CAAC;AAC1B,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 RPC\r\n */\r\n\r\nimport { Guid, IDisposable, Logger } from \"@itwin/core-bentley\";\r\nimport { IModelRpcProps, RpcManager } from \"@itwin/core-common\";\r\nimport { PresentationCommonLoggerCategory } from \"./CommonLoggerCategory\";\r\nimport { DescriptorJSON, DescriptorOverrides } from \"./content/Descriptor\";\r\nimport { ItemJSON } from \"./content/Item\";\r\nimport { DisplayValueGroupJSON } from \"./content/Value\";\r\nimport { ClientDiagnostics, ClientDiagnosticsAttribute, ClientDiagnosticsHandler } from \"./Diagnostics\";\r\nimport { InstanceKeyJSON } from \"./EC\";\r\nimport { ElementProperties } from \"./ElementProperties\";\r\nimport { PresentationError, 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, RequestOptions,\r\n RequestOptionsWithRuleset, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions,\r\n} from \"./PresentationManagerOptions\";\r\nimport {\r\n ContentSourcesRpcResult, PresentationRpcInterface, PresentationRpcRequestOptions, PresentationRpcResponse,\r\n} from \"./PresentationRpcInterface\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\nimport { RulesetVariableJSON } from \"./RulesetVariables\";\r\nimport { SelectionScope } from \"./selection/SelectionScope\";\r\nimport { PagedResponse } from \"./Utils\";\r\n\r\n/**\r\n * Configuration parameters for [[RpcRequestsHandler]].\r\n *\r\n * @internal\r\n */\r\nexport interface RpcRequestsHandlerProps {\r\n /**\r\n * Optional ID used to identify client that requests data. If not specified,\r\n * the handler creates a unique GUID as a client id.\r\n * @internal\r\n */\r\n clientId?: string;\r\n}\r\n\r\n/**\r\n * RPC requests handler that wraps [[PresentationRpcInterface]] and\r\n * adds handling for cases when backend needs to be synced with client\r\n * state.\r\n *\r\n * @internal\r\n */\r\nexport class RpcRequestsHandler implements IDisposable {\r\n public readonly maxRequestRepeatCount: number = 5;\r\n\r\n /** ID that identifies this handler as a client */\r\n public readonly clientId: string;\r\n\r\n public constructor(props?: RpcRequestsHandlerProps) {\r\n this.clientId = (props && props.clientId) ? props.clientId : Guid.createValue();\r\n }\r\n\r\n public dispose() {\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private get rpcClient(): PresentationRpcInterface { return RpcManager.getClientForInterface(PresentationRpcInterface); }\r\n\r\n private async requestRepeatedly<TResult>(func: () => PresentationRpcResponse<TResult>, diagnosticsHandler?: ClientDiagnosticsHandler, repeatCount: number = 1): Promise<TResult> {\r\n let diagnostics: ClientDiagnostics | undefined;\r\n let error: unknown | undefined;\r\n let shouldRepeat = false;\r\n try {\r\n const response = await func();\r\n diagnostics = response.diagnostics;\r\n\r\n if (response.statusCode === PresentationStatus.Success)\r\n return response.result!;\r\n\r\n if (response.statusCode === PresentationStatus.BackendTimeout && repeatCount < this.maxRequestRepeatCount)\r\n shouldRepeat = true;\r\n else\r\n error = new PresentationError(response.statusCode, response.errorMessage);\r\n\r\n } catch (e) {\r\n error = e;\r\n if (repeatCount < this.maxRequestRepeatCount)\r\n shouldRepeat = true;\r\n\r\n } finally {\r\n diagnosticsHandler && diagnostics && diagnosticsHandler(diagnostics);\r\n }\r\n\r\n if (shouldRepeat) {\r\n ++repeatCount;\r\n return this.requestRepeatedly(func, diagnosticsHandler, repeatCount);\r\n }\r\n\r\n throw error;\r\n }\r\n\r\n /**\r\n * Send the request to backend.\r\n *\r\n * If the backend responds with [[PresentationStatus.BackendTimeout]] or there's an RPC-related error,\r\n * the request is repeated up to `this._maxRequestRepeatCount` times. If we fail to get a valid success or error\r\n * response from the backend, throw the last encountered error.\r\n *\r\n * @internal\r\n */\r\n public async request<TResult, TOptions extends (RequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute), TArg = any>(\r\n func: (token: IModelRpcProps, options: PresentationRpcRequestOptions<TOptions>, ...args: TArg[]) => PresentationRpcResponse<TResult>,\r\n options: TOptions,\r\n ...additionalOptions: TArg[]\r\n ): Promise<TResult> {\r\n const { imodel, diagnostics, ...optionsNoIModel } = options;\r\n const { handler: diagnosticsHandler, ...diagnosticsOptions } = diagnostics ?? {};\r\n if (isOptionsWithRuleset(optionsNoIModel))\r\n optionsNoIModel.rulesetOrId = cleanupRuleset(optionsNoIModel.rulesetOrId);\r\n const rpcOptions: PresentationRpcRequestOptions<TOptions> = {\r\n ...optionsNoIModel,\r\n clientId: this.clientId,\r\n };\r\n if (diagnostics)\r\n rpcOptions.diagnostics = diagnosticsOptions;\r\n const doRequest = async () => func(imodel, rpcOptions, ...additionalOptions);\r\n return this.requestRepeatedly(doRequest, diagnosticsHandler);\r\n }\r\n\r\n public async getNodesCount(options: HierarchyRequestOptions<IModelRpcProps, NodeKeyJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\r\n return this.request<number, typeof options>(\r\n this.rpcClient.getNodesCount.bind(this.rpcClient), options);\r\n }\r\n public async getPagedNodes(options: Paged<HierarchyRequestOptions<IModelRpcProps, NodeKeyJSON, RulesetVariableJSON>> & ClientDiagnosticsAttribute): Promise<PagedResponse<NodeJSON>> {\r\n return this.request<PagedResponse<NodeJSON>, typeof options>(\r\n this.rpcClient.getPagedNodes.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getNodePaths(options: FilterByInstancePathsHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\r\n return this.request<NodePathElementJSON[], typeof options>(\r\n this.rpcClient.getNodePaths.bind(this.rpcClient), options);\r\n }\r\n public async getFilteredNodePaths(options: FilterByTextHierarchyRequestOptions<IModelRpcProps, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<NodePathElementJSON[]> {\r\n return this.request<NodePathElementJSON[], typeof options>(\r\n this.rpcClient.getFilteredNodePaths.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentSources(options: ContentSourcesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ContentSourcesRpcResult> {\r\n return this.request<ContentSourcesRpcResult, typeof options>(\r\n this.rpcClient.getContentSources.bind(this.rpcClient), options);\r\n }\r\n public async getContentDescriptor(options: ContentDescriptorRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<DescriptorJSON | undefined> {\r\n return this.request<DescriptorJSON | undefined, typeof options>(\r\n this.rpcClient.getContentDescriptor.bind(this.rpcClient), options);\r\n }\r\n public async getContentSetSize(options: ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<number> {\r\n return this.request<number, typeof options>(\r\n this.rpcClient.getContentSetSize.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContent(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\r\n return this.request<{ descriptor: DescriptorJSON, contentSet: PagedResponse<ItemJSON> } | undefined, typeof options>(\r\n this.rpcClient.getPagedContent.bind(this.rpcClient), options);\r\n }\r\n public async getPagedContentSet(options: Paged<ContentRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute>) {\r\n return this.request<PagedResponse<ItemJSON>, typeof options>(\r\n this.rpcClient.getPagedContentSet.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getPagedDistinctValues(options: DistinctValuesRequestOptions<IModelRpcProps, DescriptorOverrides, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<DisplayValueGroupJSON>> {\r\n return this.request<PagedResponse<DisplayValueGroupJSON>, typeof options>(\r\n this.rpcClient.getPagedDistinctValues.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getElementProperties(options: SingleElementPropertiesRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<ElementProperties | undefined> {\r\n return this.request<ElementProperties | undefined, typeof options>(\r\n this.rpcClient.getElementProperties.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getContentInstanceKeys(options: ContentInstanceKeysRequestOptions<IModelRpcProps, KeySetJSON, RulesetVariableJSON> & ClientDiagnosticsAttribute): Promise<{ total: number, items: KeySetJSON }> {\r\n return this.request<{ total: number, items: KeySetJSON }, typeof options>(\r\n this.rpcClient.getContentInstanceKeys.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getDisplayLabelDefinition(options: DisplayLabelRequestOptions<IModelRpcProps, InstanceKeyJSON> & ClientDiagnosticsAttribute): Promise<LabelDefinitionJSON> {\r\n return this.request<LabelDefinitionJSON, typeof options>(\r\n this.rpcClient.getDisplayLabelDefinition.bind(this.rpcClient), options);\r\n }\r\n public async getPagedDisplayLabelDefinitions(options: DisplayLabelsRequestOptions<IModelRpcProps, InstanceKeyJSON> & ClientDiagnosticsAttribute): Promise<PagedResponse<LabelDefinitionJSON>> {\r\n return this.request<PagedResponse<LabelDefinitionJSON>, typeof options>(\r\n this.rpcClient.getPagedDisplayLabelDefinitions.bind(this.rpcClient), options);\r\n }\r\n\r\n public async getSelectionScopes(options: SelectionScopeRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<SelectionScope[]> {\r\n return this.request<SelectionScope[], typeof options>(\r\n this.rpcClient.getSelectionScopes.bind(this.rpcClient), options);\r\n }\r\n public async computeSelection(options: ComputeSelectionRequestOptions<IModelRpcProps> & ClientDiagnosticsAttribute): Promise<KeySetJSON> {\r\n return this.request<KeySetJSON, typeof options>(\r\n this.rpcClient.computeSelection.bind(this.rpcClient), options);\r\n }\r\n}\r\n\r\nfunction isOptionsWithRuleset(options: Object): options is { rulesetOrId: Ruleset } {\r\n return (typeof (options as RequestOptionsWithRuleset<any, any>).rulesetOrId === \"object\");\r\n}\r\n\r\ntype RulesetWithRequiredProperties = {\r\n [key in keyof Ruleset]-?: true;\r\n};\r\n\r\nconst RULESET_SUPPORTED_PROPERTIES_OBJ: RulesetWithRequiredProperties = {\r\n id: true,\r\n rules: true,\r\n version: true,\r\n requiredSchemas: true,\r\n supplementationInfo: true,\r\n vars: true,\r\n};\r\n\r\nfunction cleanupRuleset(ruleset: Ruleset): Ruleset {\r\n const cleanedUpRuleset: Ruleset = { ...ruleset };\r\n\r\n for (const propertyKey of Object.keys(cleanedUpRuleset)) {\r\n if (!RULESET_SUPPORTED_PROPERTIES_OBJ.hasOwnProperty(propertyKey)) {\r\n if (propertyKey === \"$schema\")\r\n delete (cleanedUpRuleset as any)[propertyKey];\r\n else\r\n Logger.logWarning(PresentationCommonLoggerCategory.Package, `Provided ruleset contains unrecognized attribute '${propertyKey}'. It either doesn't exist or may be no longer supported.`);\r\n }\r\n }\r\n\r\n return cleanedUpRuleset;\r\n}\r\n"]}
|
|
@@ -82,7 +82,13 @@ export declare enum ContentFlags {
|
|
|
82
82
|
*
|
|
83
83
|
* @beta
|
|
84
84
|
*/
|
|
85
|
-
IncludeInputKeys = 256
|
|
85
|
+
IncludeInputKeys = 256,
|
|
86
|
+
/**
|
|
87
|
+
* Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain
|
|
88
|
+
* operations to make obtaining content descriptor faster.
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
DescriptorOnly = 512
|
|
86
92
|
}
|
|
87
93
|
/**
|
|
88
94
|
* Data sorting direction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Descriptor.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAU,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,SAAS,EAAE,aAAa,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,wCAAwC,EACnI,4CAA4C,EAAE,gBAAgB,EAAE,oBAAoB,EACrF,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAkB,MAAM,UAAU,CAAC;AAE7E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,eAAe,EAAE,SAAS,CAAC;IAE3B,2CAA2C;IAC3C,mBAAmB,EAAE,OAAO,CAAC;IAE7B,8DAA8D;IAC9D,0BAA0B,CAAC,EAAE,wCAAwC,EAAE,CAAC;IAExE,kHAAkH;IAClH,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE1C,wDAAwD;IACxD,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE/C,iHAAiH;IACjH,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,cAAc,GAAG,aAAa;IACjE,eAAe,EAAE,cAAc,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,CAAC,EAAE,4CAA4C,CAAC,cAAc,CAAC,EAAE,CAAC;IAC5F,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC;IAC9D,yBAAyB,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC;IACnE,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC;CAC/D;AAED,cAAc;AACd,yBAAiB,eAAe,CAAC;IAC/B,2DAA2D;IAC3D,SAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,GAAG,eAAe,CAU5I;IAED,uDAAuD;IACvD,SAAgB,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAWjJ;IAED;;;;;;OAMG;IACH,SAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,GAAG,eAAe,EAAE,CAExJ;CACF;AAED;;;GAGG;AACH,oBAAY,YAAY;IACtB,+DAA+D;IAC/D,QAAQ,IAAS;IAEjB;;;OAGG;IACH,UAAU,IAAS;IAEnB,2DAA2D;IAC3D,UAAU,IAAS;IAEnB,uIAAuI;IACvI,YAAY,IAAS;IAErB,uCAAuC;IACvC,cAAc,KAAS;IAEvB,oGAAoG;IACpG,QAAQ,KAAS;IAEjB;;;;;OAKG;IACH,gBAAgB,MAAS;
|
|
1
|
+
{"version":3,"file":"Descriptor.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,12 @@ var ContentFlags;
|
|
|
82
82
|
* @beta
|
|
83
83
|
*/
|
|
84
84
|
ContentFlags[ContentFlags["IncludeInputKeys"] = 256] = "IncludeInputKeys";
|
|
85
|
+
/**
|
|
86
|
+
* Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain
|
|
87
|
+
* operations to make obtaining content descriptor faster.
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
ContentFlags[ContentFlags["DescriptorOnly"] = 512] = "DescriptorOnly";
|
|
85
91
|
})(ContentFlags = exports.ContentFlags || (exports.ContentFlags = {}));
|
|
86
92
|
/**
|
|
87
93
|
* Data sorting direction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.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 { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n ClassInfo, ClassInfoJSON, CompressedClassInfoJSON, RelatedClassInfo, RelatedClassInfoJSON, RelatedClassInfoWithOptionalRelationship,\r\n RelatedClassInfoWithOptionalRelationshipJSON, RelationshipPath, RelationshipPathJSON,\r\n} from \"../EC\";\r\nimport { CategoryDescription, CategoryDescriptionJSON } from \"./Category\";\r\nimport { Field, FieldDescriptor, FieldJSON, getFieldByName } from \"./Fields\";\r\n\r\n/**\r\n * Data structure that describes an ECClass in content [[Descriptor]].\r\n * @public\r\n */\r\nexport interface SelectClassInfo {\r\n /** Information about the ECClass */\r\n selectClassInfo: ClassInfo;\r\n\r\n /** Is the class handled polymorphically */\r\n isSelectPolymorphic: boolean;\r\n\r\n /** Relationship path from input class to the select class. */\r\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationship[];\r\n\r\n /** Relationship paths to [related property]($docs/presentation/content/Terminology#related-properties) classes */\r\n relatedPropertyPaths?: RelationshipPath[];\r\n\r\n /** Relationship paths to navigation property classes */\r\n navigationPropertyClasses?: RelatedClassInfo[];\r\n\r\n /** Relationship paths to [related instance]($docs/presentation/content/Terminology#related-instance) classes. */\r\n relatedInstancePaths?: RelationshipPath[];\r\n}\r\n\r\n/**\r\n * Serialized [[SelectClassInfo]] JSON representation\r\n * @public\r\n */\r\nexport interface SelectClassInfoJSON<TClassInfoJSON = ClassInfoJSON> {\r\n selectClassInfo: TClassInfoJSON;\r\n isSelectPolymorphic: boolean;\r\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationshipJSON<TClassInfoJSON>[];\r\n relatedPropertyPaths?: RelationshipPathJSON<TClassInfoJSON>[];\r\n navigationPropertyClasses?: RelatedClassInfoJSON<TClassInfoJSON>[];\r\n relatedInstancePaths?: RelationshipPathJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/** @public */\r\nexport namespace SelectClassInfo {\r\n /** Deserialize [[SelectClassInfo]] from compressed JSON */\r\n export function fromCompressedJSON(json: SelectClassInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo {\r\n assert(classesMap.hasOwnProperty(json.selectClassInfo));\r\n return {\r\n selectClassInfo: { id: json.selectClassInfo, ...classesMap[json.selectClassInfo] },\r\n isSelectPolymorphic: json.isSelectPolymorphic,\r\n ...(json.navigationPropertyClasses ? { navigationPropertyClasses: json.navigationPropertyClasses.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap)) } : undefined),\r\n ...(json.relatedInstancePaths ? { relatedInstancePaths: json.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\r\n ...(json.pathFromInputToSelectClass ? { pathFromInputToSelectClass: json.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.fromCompressedJSON(item, classesMap)) } : undefined),\r\n ...(json.relatedPropertyPaths ? { relatedPropertyPaths: json.relatedPropertyPaths.map((path) => path.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\r\n };\r\n }\r\n\r\n /** Serialize [[SelectClassInfo]] to compressed JSON */\r\n export function toCompressedJSON(selectClass: SelectClassInfo, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfoJSON<string> {\r\n const { id, ...leftOverClassInfo } = selectClass.selectClassInfo;\r\n classesMap[id] = leftOverClassInfo;\r\n return {\r\n selectClassInfo: id,\r\n isSelectPolymorphic: selectClass.isSelectPolymorphic,\r\n ...(selectClass.relatedInstancePaths ? { relatedInstancePaths: selectClass.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.toCompressedJSON(item, classesMap))) } : undefined),\r\n ...(selectClass.navigationPropertyClasses ? { navigationPropertyClasses: selectClass.navigationPropertyClasses.map((propertyClass) => RelatedClassInfo.toCompressedJSON(propertyClass, classesMap)) } : undefined),\r\n ...(selectClass.pathFromInputToSelectClass ? { pathFromInputToSelectClass: selectClass.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.toCompressedJSON(item, classesMap)) } : undefined),\r\n ...(selectClass.relatedPropertyPaths ? { relatedPropertyPaths: selectClass.relatedPropertyPaths.map((path) => path.map((relatedClass) => RelatedClassInfo.toCompressedJSON(relatedClass, classesMap))) } : undefined),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[SelectClassInfo]] list from JSON\r\n * @param json JSON or JSON serialized to string to deserialize from\r\n * @returns Deserialized [[SelectClassInfo]] objects list\r\n *\r\n * @internal\r\n */\r\n export function listFromCompressedJSON(json: SelectClassInfoJSON<Id64String>[], classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo[] {\r\n return json.map((sci) => fromCompressedJSON(sci, classesMap));\r\n }\r\n}\r\n\r\n/**\r\n * Flags that control content format.\r\n * @public\r\n */\r\nexport enum ContentFlags {\r\n /** Each content record only has [[InstanceKey]] and no data */\r\n KeysOnly = 1 << 0,\r\n\r\n /**\r\n * Each content record additionally has an image id\r\n * @deprecated Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n ShowImages = 1 << 1,\r\n\r\n /** Each content record additionally has a display label */\r\n ShowLabels = 1 << 2,\r\n\r\n /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */\r\n MergeResults = 1 << 3,\r\n\r\n /** Content has only distinct values */\r\n DistinctValues = 1 << 4,\r\n\r\n /** Doesn't create property or calculated fields. Can be used in conjunction with [[ShowLabels]]. */\r\n NoFields = 1 << 5,\r\n\r\n /**\r\n * Set related input keys on [[Item]] objects when creating content. This helps identify which [[Item]] is associated to which\r\n * given input key at the cost of performance creating those items.\r\n *\r\n * @beta\r\n */\r\n IncludeInputKeys = 1 << 8,\r\n}\r\n\r\n/**\r\n * Data sorting direction\r\n * @public\r\n */\r\nexport enum SortDirection {\r\n Ascending,\r\n Descending,\r\n}\r\n\r\n/**\r\n * Data structure that contains selection information. Used\r\n * for cases when requesting content after a selection change.\r\n *\r\n * @public\r\n */\r\nexport interface SelectionInfo {\r\n /** Name of selection provider which cause the selection change */\r\n providerName: string;\r\n /** Level of selection that changed */\r\n level?: number;\r\n}\r\n\r\n/**\r\n * Serialized [[Descriptor]] JSON representation.\r\n * @public\r\n */\r\nexport interface DescriptorJSON {\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n connectionId: string;\r\n inputKeysHash: string;\r\n contentOptions: any;\r\n selectionInfo?: SelectionInfo;\r\n displayType: string;\r\n selectClasses: SelectClassInfoJSON<Id64String>[];\r\n categories: CategoryDescriptionJSON[];\r\n fields: FieldJSON<Id64String>[];\r\n sortingFieldName?: string;\r\n sortDirection?: SortDirection;\r\n contentFlags: number;\r\n filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Descriptor overrides that can be used to customize content\r\n * @public\r\n */\r\nexport interface DescriptorOverrides {\r\n /**\r\n * Content display type. Can be accessed in presentation rules and used\r\n * to modify content in various ways. Defaults to empty string.\r\n */\r\n displayType?: string;\r\n\r\n /** Content flags used for content customization. See [[ContentFlags]] */\r\n contentFlags?: number;\r\n\r\n /** Fields selector that allows excluding or including only specified fields. */\r\n fieldsSelector?: {\r\n /** Should the specified fields be included or excluded */\r\n type: \"include\" | \"exclude\";\r\n /** A list of field descriptors that identify fields to include / exclude */\r\n fields: FieldDescriptor[];\r\n };\r\n\r\n /** Specification for sorting data. */\r\n sorting?: {\r\n /** Identifier of the field to use for sorting */\r\n field: FieldDescriptor;\r\n /** Sort direction */\r\n direction: SortDirection;\r\n };\r\n\r\n /** [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content */\r\n filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Descriptor properties\r\n * @public\r\n */\r\nexport interface DescriptorSource {\r\n /** Id of the connection used to create the descriptor */\r\n readonly connectionId?: string;\r\n /** Hash of the input keys used to create the descriptor */\r\n readonly inputKeysHash?: string;\r\n /** Selection info used to create the descriptor */\r\n readonly selectionInfo?: SelectionInfo;\r\n /** Display type used to create the descriptor */\r\n readonly displayType: string;\r\n /** A list of classes that will be selected from when creating content with this descriptor */\r\n readonly selectClasses: SelectClassInfo[];\r\n /** A list of content field categories used in this descriptor */\r\n readonly categories: CategoryDescription[];\r\n /** A list of fields contained in the descriptor */\r\n readonly fields: Field[];\r\n /** [[ContentFlags]] used to create the descriptor */\r\n readonly contentFlags: number;\r\n /** Field used to sort the content */\r\n readonly sortingField?: Field;\r\n /** Sorting direction */\r\n readonly sortDirection?: SortDirection;\r\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\r\n readonly filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes content: fields, sorting, filtering, format, etc.\r\n * Descriptor may be changed to control how content is created.\r\n *\r\n * @public\r\n */\r\nexport class Descriptor implements DescriptorSource {\r\n /** Id of the connection used to create the descriptor */\r\n public readonly connectionId?: string;\r\n /** Hash of the input keys used to create the descriptor */\r\n public readonly inputKeysHash?: string;\r\n /** Extended options used to create the descriptor */\r\n public readonly contentOptions: any;\r\n /** Selection info used to create the descriptor */\r\n public readonly selectionInfo?: SelectionInfo;\r\n /** Display type used to create the descriptor */\r\n public readonly displayType: string;\r\n /** A list of classes that will be selected when creating content with this descriptor */\r\n public readonly selectClasses: SelectClassInfo[];\r\n /** A list of content field categories used in this descriptor */\r\n public readonly categories: CategoryDescription[];\r\n /** A list of fields contained in the descriptor */\r\n public readonly fields: Field[];\r\n /** [[ContentFlags]] used to create the descriptor */\r\n public readonly contentFlags: number;\r\n /** Field used to sort the content */\r\n public sortingField?: Field;\r\n /** Sorting direction */\r\n public sortDirection?: SortDirection;\r\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\r\n public filterExpression?: string;\r\n\r\n /** Construct a new Descriptor using a [[DescriptorSource]] */\r\n public constructor(source: DescriptorSource) {\r\n this.connectionId = source.connectionId;\r\n this.inputKeysHash = source.inputKeysHash;\r\n this.selectionInfo = source.selectionInfo;\r\n this.displayType = source.displayType;\r\n this.contentFlags = source.contentFlags;\r\n this.selectClasses = [...source.selectClasses];\r\n this.categories = [...source.categories];\r\n this.fields = [...source.fields];\r\n this.sortingField = source.sortingField;\r\n this.sortDirection = source.sortDirection;\r\n this.filterExpression = source.filterExpression;\r\n }\r\n\r\n /** Serialize [[Descriptor]] to JSON */\r\n public toJSON(): DescriptorJSON {\r\n const classesMap: { [id: string]: CompressedClassInfoJSON } = {};\r\n const selectClasses: SelectClassInfoJSON<string>[] = this.selectClasses.map((selectClass) => SelectClassInfo.toCompressedJSON(selectClass, classesMap));\r\n const fields: FieldJSON<string>[] = this.fields.map((field) => field.toCompressedJSON(classesMap));\r\n return Object.assign(\r\n {\r\n connectionId: this.connectionId,\r\n inputKeysHash: this.inputKeysHash,\r\n contentOptions: this.contentOptions,\r\n displayType: this.displayType,\r\n contentFlags: this.contentFlags,\r\n categories: this.categories.map(CategoryDescription.toJSON),\r\n fields,\r\n selectClasses,\r\n classesMap,\r\n },\r\n this.sortingField !== undefined && { sortingFieldName: this.sortingField.name },\r\n this.sortDirection !== undefined && { sortDirection: this.sortDirection },\r\n this.filterExpression !== undefined && { filterExpression: this.filterExpression },\r\n this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo },\r\n );\r\n }\r\n\r\n /** Deserialize [[Descriptor]] from JSON */\r\n public static fromJSON(json: DescriptorJSON | undefined): Descriptor | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const { classesMap, ...leftOverJson } = json;\r\n const categories = CategoryDescription.listFromJSON(json.categories);\r\n const selectClasses = SelectClassInfo.listFromCompressedJSON(json.selectClasses, classesMap);\r\n const fields = this.getFieldsFromJSON(json.fields, (fieldJson) => Field.fromCompressedJSON(fieldJson, classesMap, categories));\r\n return new Descriptor({\r\n ...leftOverJson,\r\n selectClasses,\r\n categories,\r\n fields,\r\n sortingField: getFieldByName(fields, json.sortingFieldName, true),\r\n });\r\n }\r\n\r\n private static getFieldsFromJSON(json: FieldJSON[], factory: (json: FieldJSON) => Field | undefined): Field[] {\r\n return json.map((fieldJson: FieldJSON) => {\r\n const field = factory(fieldJson);\r\n if (field)\r\n field.rebuildParentship();\r\n return field;\r\n }).filter((field): field is Field => !!field);\r\n }\r\n\r\n /**\r\n * Get field by its name\r\n * @param name Name of the field to find\r\n * @param recurse Recurse into nested fields\r\n */\r\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\r\n return getFieldByName(this.fields, name, recurse);\r\n }\r\n\r\n /**\r\n * Create descriptor overrides object from this descriptor.\r\n * @public\r\n */\r\n public createDescriptorOverrides(): DescriptorOverrides {\r\n const overrides: DescriptorOverrides = {};\r\n if (this.displayType)\r\n overrides.displayType = this.displayType;\r\n if (this.contentFlags !== 0)\r\n overrides.contentFlags = this.contentFlags;\r\n if (this.filterExpression)\r\n overrides.filterExpression = this.filterExpression;\r\n if (this.sortingField)\r\n overrides.sorting = { field: this.sortingField.getFieldDescriptor(), direction: this.sortDirection ?? SortDirection.Ascending };\r\n return overrides;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../../../../src/presentation-common/content/Descriptor.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 { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n ClassInfo, ClassInfoJSON, CompressedClassInfoJSON, RelatedClassInfo, RelatedClassInfoJSON, RelatedClassInfoWithOptionalRelationship,\r\n RelatedClassInfoWithOptionalRelationshipJSON, RelationshipPath, RelationshipPathJSON,\r\n} from \"../EC\";\r\nimport { CategoryDescription, CategoryDescriptionJSON } from \"./Category\";\r\nimport { Field, FieldDescriptor, FieldJSON, getFieldByName } from \"./Fields\";\r\n\r\n/**\r\n * Data structure that describes an ECClass in content [[Descriptor]].\r\n * @public\r\n */\r\nexport interface SelectClassInfo {\r\n /** Information about the ECClass */\r\n selectClassInfo: ClassInfo;\r\n\r\n /** Is the class handled polymorphically */\r\n isSelectPolymorphic: boolean;\r\n\r\n /** Relationship path from input class to the select class. */\r\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationship[];\r\n\r\n /** Relationship paths to [related property]($docs/presentation/content/Terminology#related-properties) classes */\r\n relatedPropertyPaths?: RelationshipPath[];\r\n\r\n /** Relationship paths to navigation property classes */\r\n navigationPropertyClasses?: RelatedClassInfo[];\r\n\r\n /** Relationship paths to [related instance]($docs/presentation/content/Terminology#related-instance) classes. */\r\n relatedInstancePaths?: RelationshipPath[];\r\n}\r\n\r\n/**\r\n * Serialized [[SelectClassInfo]] JSON representation\r\n * @public\r\n */\r\nexport interface SelectClassInfoJSON<TClassInfoJSON = ClassInfoJSON> {\r\n selectClassInfo: TClassInfoJSON;\r\n isSelectPolymorphic: boolean;\r\n pathFromInputToSelectClass?: RelatedClassInfoWithOptionalRelationshipJSON<TClassInfoJSON>[];\r\n relatedPropertyPaths?: RelationshipPathJSON<TClassInfoJSON>[];\r\n navigationPropertyClasses?: RelatedClassInfoJSON<TClassInfoJSON>[];\r\n relatedInstancePaths?: RelationshipPathJSON<TClassInfoJSON>[];\r\n}\r\n\r\n/** @public */\r\nexport namespace SelectClassInfo {\r\n /** Deserialize [[SelectClassInfo]] from compressed JSON */\r\n export function fromCompressedJSON(json: SelectClassInfoJSON<string>, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo {\r\n assert(classesMap.hasOwnProperty(json.selectClassInfo));\r\n return {\r\n selectClassInfo: { id: json.selectClassInfo, ...classesMap[json.selectClassInfo] },\r\n isSelectPolymorphic: json.isSelectPolymorphic,\r\n ...(json.navigationPropertyClasses ? { navigationPropertyClasses: json.navigationPropertyClasses.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap)) } : undefined),\r\n ...(json.relatedInstancePaths ? { relatedInstancePaths: json.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\r\n ...(json.pathFromInputToSelectClass ? { pathFromInputToSelectClass: json.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.fromCompressedJSON(item, classesMap)) } : undefined),\r\n ...(json.relatedPropertyPaths ? { relatedPropertyPaths: json.relatedPropertyPaths.map((path) => path.map((item) => RelatedClassInfo.fromCompressedJSON(item, classesMap))) } : undefined),\r\n };\r\n }\r\n\r\n /** Serialize [[SelectClassInfo]] to compressed JSON */\r\n export function toCompressedJSON(selectClass: SelectClassInfo, classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfoJSON<string> {\r\n const { id, ...leftOverClassInfo } = selectClass.selectClassInfo;\r\n classesMap[id] = leftOverClassInfo;\r\n return {\r\n selectClassInfo: id,\r\n isSelectPolymorphic: selectClass.isSelectPolymorphic,\r\n ...(selectClass.relatedInstancePaths ? { relatedInstancePaths: selectClass.relatedInstancePaths.map((rip) => rip.map((item) => RelatedClassInfo.toCompressedJSON(item, classesMap))) } : undefined),\r\n ...(selectClass.navigationPropertyClasses ? { navigationPropertyClasses: selectClass.navigationPropertyClasses.map((propertyClass) => RelatedClassInfo.toCompressedJSON(propertyClass, classesMap)) } : undefined),\r\n ...(selectClass.pathFromInputToSelectClass ? { pathFromInputToSelectClass: selectClass.pathFromInputToSelectClass.map((item) => RelatedClassInfoWithOptionalRelationship.toCompressedJSON(item, classesMap)) } : undefined),\r\n ...(selectClass.relatedPropertyPaths ? { relatedPropertyPaths: selectClass.relatedPropertyPaths.map((path) => path.map((relatedClass) => RelatedClassInfo.toCompressedJSON(relatedClass, classesMap))) } : undefined),\r\n };\r\n }\r\n\r\n /**\r\n * Deserialize [[SelectClassInfo]] list from JSON\r\n * @param json JSON or JSON serialized to string to deserialize from\r\n * @returns Deserialized [[SelectClassInfo]] objects list\r\n *\r\n * @internal\r\n */\r\n export function listFromCompressedJSON(json: SelectClassInfoJSON<Id64String>[], classesMap: { [id: string]: CompressedClassInfoJSON }): SelectClassInfo[] {\r\n return json.map((sci) => fromCompressedJSON(sci, classesMap));\r\n }\r\n}\r\n\r\n/**\r\n * Flags that control content format.\r\n * @public\r\n */\r\nexport enum ContentFlags {\r\n /** Each content record only has [[InstanceKey]] and no data */\r\n KeysOnly = 1 << 0,\r\n\r\n /**\r\n * Each content record additionally has an image id\r\n * @deprecated Use [[ExtendedDataRule]] instead. See [extended data usage page]($docs/presentation/customization/ExtendedDataUsage.md) for more details.\r\n */\r\n ShowImages = 1 << 1,\r\n\r\n /** Each content record additionally has a display label */\r\n ShowLabels = 1 << 2,\r\n\r\n /** All content records are merged into a single record (see [Merging values]($docs/presentation/content/terminology#value-merging)) */\r\n MergeResults = 1 << 3,\r\n\r\n /** Content has only distinct values */\r\n DistinctValues = 1 << 4,\r\n\r\n /** Doesn't create property or calculated fields. Can be used in conjunction with [[ShowLabels]]. */\r\n NoFields = 1 << 5,\r\n\r\n /**\r\n * Set related input keys on [[Item]] objects when creating content. This helps identify which [[Item]] is associated to which\r\n * given input key at the cost of performance creating those items.\r\n *\r\n * @beta\r\n */\r\n IncludeInputKeys = 1 << 8,\r\n\r\n /**\r\n * Produce content descriptor that is not intended for querying content. Allows the implementation to omit certain\r\n * operations to make obtaining content descriptor faster.\r\n * @internal\r\n */\r\n DescriptorOnly = 1 << 9,\r\n}\r\n\r\n/**\r\n * Data sorting direction\r\n * @public\r\n */\r\nexport enum SortDirection {\r\n Ascending,\r\n Descending,\r\n}\r\n\r\n/**\r\n * Data structure that contains selection information. Used\r\n * for cases when requesting content after a selection change.\r\n *\r\n * @public\r\n */\r\nexport interface SelectionInfo {\r\n /** Name of selection provider which cause the selection change */\r\n providerName: string;\r\n /** Level of selection that changed */\r\n level?: number;\r\n}\r\n\r\n/**\r\n * Serialized [[Descriptor]] JSON representation.\r\n * @public\r\n */\r\nexport interface DescriptorJSON {\r\n classesMap: { [id: string]: CompressedClassInfoJSON };\r\n connectionId: string;\r\n inputKeysHash: string;\r\n contentOptions: any;\r\n selectionInfo?: SelectionInfo;\r\n displayType: string;\r\n selectClasses: SelectClassInfoJSON<Id64String>[];\r\n categories: CategoryDescriptionJSON[];\r\n fields: FieldJSON<Id64String>[];\r\n sortingFieldName?: string;\r\n sortDirection?: SortDirection;\r\n contentFlags: number;\r\n filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Descriptor overrides that can be used to customize content\r\n * @public\r\n */\r\nexport interface DescriptorOverrides {\r\n /**\r\n * Content display type. Can be accessed in presentation rules and used\r\n * to modify content in various ways. Defaults to empty string.\r\n */\r\n displayType?: string;\r\n\r\n /** Content flags used for content customization. See [[ContentFlags]] */\r\n contentFlags?: number;\r\n\r\n /** Fields selector that allows excluding or including only specified fields. */\r\n fieldsSelector?: {\r\n /** Should the specified fields be included or excluded */\r\n type: \"include\" | \"exclude\";\r\n /** A list of field descriptors that identify fields to include / exclude */\r\n fields: FieldDescriptor[];\r\n };\r\n\r\n /** Specification for sorting data. */\r\n sorting?: {\r\n /** Identifier of the field to use for sorting */\r\n field: FieldDescriptor;\r\n /** Sort direction */\r\n direction: SortDirection;\r\n };\r\n\r\n /** [ECExpression]($docs/presentation/advanced/ECExpressions.md) for filtering content */\r\n filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Descriptor properties\r\n * @public\r\n */\r\nexport interface DescriptorSource {\r\n /** Id of the connection used to create the descriptor */\r\n readonly connectionId?: string;\r\n /** Hash of the input keys used to create the descriptor */\r\n readonly inputKeysHash?: string;\r\n /** Selection info used to create the descriptor */\r\n readonly selectionInfo?: SelectionInfo;\r\n /** Display type used to create the descriptor */\r\n readonly displayType: string;\r\n /** A list of classes that will be selected from when creating content with this descriptor */\r\n readonly selectClasses: SelectClassInfo[];\r\n /** A list of content field categories used in this descriptor */\r\n readonly categories: CategoryDescription[];\r\n /** A list of fields contained in the descriptor */\r\n readonly fields: Field[];\r\n /** [[ContentFlags]] used to create the descriptor */\r\n readonly contentFlags: number;\r\n /** Field used to sort the content */\r\n readonly sortingField?: Field;\r\n /** Sorting direction */\r\n readonly sortDirection?: SortDirection;\r\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\r\n readonly filterExpression?: string;\r\n}\r\n\r\n/**\r\n * Data structure that describes content: fields, sorting, filtering, format, etc.\r\n * Descriptor may be changed to control how content is created.\r\n *\r\n * @public\r\n */\r\nexport class Descriptor implements DescriptorSource {\r\n /** Id of the connection used to create the descriptor */\r\n public readonly connectionId?: string;\r\n /** Hash of the input keys used to create the descriptor */\r\n public readonly inputKeysHash?: string;\r\n /** Extended options used to create the descriptor */\r\n public readonly contentOptions: any;\r\n /** Selection info used to create the descriptor */\r\n public readonly selectionInfo?: SelectionInfo;\r\n /** Display type used to create the descriptor */\r\n public readonly displayType: string;\r\n /** A list of classes that will be selected when creating content with this descriptor */\r\n public readonly selectClasses: SelectClassInfo[];\r\n /** A list of content field categories used in this descriptor */\r\n public readonly categories: CategoryDescription[];\r\n /** A list of fields contained in the descriptor */\r\n public readonly fields: Field[];\r\n /** [[ContentFlags]] used to create the descriptor */\r\n public readonly contentFlags: number;\r\n /** Field used to sort the content */\r\n public sortingField?: Field;\r\n /** Sorting direction */\r\n public sortDirection?: SortDirection;\r\n /** Content filtering [ECExpression]($docs/presentation/advanced/ECExpressions) */\r\n public filterExpression?: string;\r\n\r\n /** Construct a new Descriptor using a [[DescriptorSource]] */\r\n public constructor(source: DescriptorSource) {\r\n this.connectionId = source.connectionId;\r\n this.inputKeysHash = source.inputKeysHash;\r\n this.selectionInfo = source.selectionInfo;\r\n this.displayType = source.displayType;\r\n this.contentFlags = source.contentFlags;\r\n this.selectClasses = [...source.selectClasses];\r\n this.categories = [...source.categories];\r\n this.fields = [...source.fields];\r\n this.sortingField = source.sortingField;\r\n this.sortDirection = source.sortDirection;\r\n this.filterExpression = source.filterExpression;\r\n }\r\n\r\n /** Serialize [[Descriptor]] to JSON */\r\n public toJSON(): DescriptorJSON {\r\n const classesMap: { [id: string]: CompressedClassInfoJSON } = {};\r\n const selectClasses: SelectClassInfoJSON<string>[] = this.selectClasses.map((selectClass) => SelectClassInfo.toCompressedJSON(selectClass, classesMap));\r\n const fields: FieldJSON<string>[] = this.fields.map((field) => field.toCompressedJSON(classesMap));\r\n return Object.assign(\r\n {\r\n connectionId: this.connectionId,\r\n inputKeysHash: this.inputKeysHash,\r\n contentOptions: this.contentOptions,\r\n displayType: this.displayType,\r\n contentFlags: this.contentFlags,\r\n categories: this.categories.map(CategoryDescription.toJSON),\r\n fields,\r\n selectClasses,\r\n classesMap,\r\n },\r\n this.sortingField !== undefined && { sortingFieldName: this.sortingField.name },\r\n this.sortDirection !== undefined && { sortDirection: this.sortDirection },\r\n this.filterExpression !== undefined && { filterExpression: this.filterExpression },\r\n this.selectionInfo !== undefined && { selectionInfo: this.selectionInfo },\r\n );\r\n }\r\n\r\n /** Deserialize [[Descriptor]] from JSON */\r\n public static fromJSON(json: DescriptorJSON | undefined): Descriptor | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const { classesMap, ...leftOverJson } = json;\r\n const categories = CategoryDescription.listFromJSON(json.categories);\r\n const selectClasses = SelectClassInfo.listFromCompressedJSON(json.selectClasses, classesMap);\r\n const fields = this.getFieldsFromJSON(json.fields, (fieldJson) => Field.fromCompressedJSON(fieldJson, classesMap, categories));\r\n return new Descriptor({\r\n ...leftOverJson,\r\n selectClasses,\r\n categories,\r\n fields,\r\n sortingField: getFieldByName(fields, json.sortingFieldName, true),\r\n });\r\n }\r\n\r\n private static getFieldsFromJSON(json: FieldJSON[], factory: (json: FieldJSON) => Field | undefined): Field[] {\r\n return json.map((fieldJson: FieldJSON) => {\r\n const field = factory(fieldJson);\r\n if (field)\r\n field.rebuildParentship();\r\n return field;\r\n }).filter((field): field is Field => !!field);\r\n }\r\n\r\n /**\r\n * Get field by its name\r\n * @param name Name of the field to find\r\n * @param recurse Recurse into nested fields\r\n */\r\n public getFieldByName(name: string, recurse?: boolean): Field | undefined {\r\n return getFieldByName(this.fields, name, recurse);\r\n }\r\n\r\n /**\r\n * Create descriptor overrides object from this descriptor.\r\n * @public\r\n */\r\n public createDescriptorOverrides(): DescriptorOverrides {\r\n const overrides: DescriptorOverrides = {};\r\n if (this.displayType)\r\n overrides.displayType = this.displayType;\r\n if (this.contentFlags !== 0)\r\n overrides.contentFlags = this.contentFlags;\r\n if (this.filterExpression)\r\n overrides.filterExpression = this.filterExpression;\r\n if (this.sortingField)\r\n overrides.sorting = { field: this.sortingField.getFieldDescriptor(), direction: this.sortDirection ?? SortDirection.Ascending };\r\n return overrides;\r\n }\r\n}\r\n"]}
|
|
@@ -14,4 +14,13 @@ export interface SelectionScope {
|
|
|
14
14
|
/** Description */
|
|
15
15
|
description?: string;
|
|
16
16
|
}
|
|
17
|
+
/** @alpha */
|
|
18
|
+
export interface ElementSelectionScopeProps {
|
|
19
|
+
id: "element";
|
|
20
|
+
ancestorLevel?: number;
|
|
21
|
+
}
|
|
22
|
+
/** @alpha */
|
|
23
|
+
export declare type SelectionScopeProps = ElementSelectionScopeProps | {
|
|
24
|
+
id: string;
|
|
25
|
+
};
|
|
17
26
|
//# sourceMappingURL=SelectionScope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/selection/SelectionScope.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
1
|
+
{"version":3,"file":"SelectionScope.d.ts","sourceRoot":"","sources":["../../../../src/presentation-common/selection/SelectionScope.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,aAAa;AACb,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,SAAS,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,aAAa;AACb,oBAAY,mBAAmB,GAAG,0BAA0B,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionScope.js","sourceRoot":"","sources":["../../../../src/presentation-common/selection/SelectionScope.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 UnifiedSelection\r\n */\r\n\r\n/**\r\n * Data structure that describes a [selection scope]($docs/presentation/unified-selection/index#selection-scopes)\r\n *\r\n * @public\r\n */\r\nexport interface SelectionScope {\r\n /** Unique ID of the selection scope */\r\n id: string;\r\n /** Label */\r\n label: string;\r\n /** Description */\r\n description?: string;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SelectionScope.js","sourceRoot":"","sources":["../../../../src/presentation-common/selection/SelectionScope.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 UnifiedSelection\r\n */\r\n\r\n/**\r\n * Data structure that describes a [selection scope]($docs/presentation/unified-selection/index#selection-scopes)\r\n *\r\n * @public\r\n */\r\nexport interface SelectionScope {\r\n /** Unique ID of the selection scope */\r\n id: string;\r\n /** Label */\r\n label: string;\r\n /** Description */\r\n description?: string;\r\n}\r\n\r\n/** @alpha */\r\nexport interface ElementSelectionScopeProps {\r\n id: \"element\";\r\n ancestorLevel?: number;\r\n}\r\n\r\n/** @alpha */\r\nexport type SelectionScopeProps = ElementSelectionScopeProps | { id: string };\r\n"]}
|
|
@@ -4,6 +4,14 @@
|
|
|
4
4
|
/** @alpha */
|
|
5
5
|
export declare type DiagnosticsLoggerSeverity = "error" | "warning" | "info" | "debug" | "trace";
|
|
6
6
|
/** @alpha */
|
|
7
|
+
export interface Diagnostics {
|
|
8
|
+
logs?: DiagnosticsScopeLogs[];
|
|
9
|
+
}
|
|
10
|
+
/** @alpha */
|
|
11
|
+
export interface ClientDiagnostics extends Diagnostics {
|
|
12
|
+
backendVersion?: string;
|
|
13
|
+
}
|
|
14
|
+
/** @alpha */
|
|
7
15
|
export interface DiagnosticsOptions {
|
|
8
16
|
/** Measure performance */
|
|
9
17
|
perf?: boolean;
|
|
@@ -13,10 +21,16 @@ export interface DiagnosticsOptions {
|
|
|
13
21
|
editor?: boolean | DiagnosticsLoggerSeverity;
|
|
14
22
|
}
|
|
15
23
|
/** @alpha */
|
|
16
|
-
export declare type
|
|
24
|
+
export declare type ClientDiagnosticsHandler = (logs: ClientDiagnostics) => void;
|
|
17
25
|
/** @alpha */
|
|
18
|
-
export interface
|
|
19
|
-
|
|
26
|
+
export interface ClientDiagnosticsOptions extends DiagnosticsOptions {
|
|
27
|
+
backendVersion?: boolean;
|
|
28
|
+
handler: ClientDiagnosticsHandler;
|
|
29
|
+
}
|
|
30
|
+
/** @public */
|
|
31
|
+
export interface ClientDiagnosticsAttribute {
|
|
32
|
+
/** @alpha */
|
|
33
|
+
diagnostics?: ClientDiagnosticsOptions;
|
|
20
34
|
}
|
|
21
35
|
/** @alpha */
|
|
22
36
|
export interface DiagnosticsLogMessage {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diagnostics.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/Diagnostics.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,aAAa;AACb,oBAAY,yBAAyB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzF,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,GAAG,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IAC1C,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;CAC9C;AAED,aAAa;AACb,oBAAY,
|
|
1
|
+
{"version":3,"file":"Diagnostics.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/Diagnostics.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,aAAa;AACb,oBAAY,yBAAyB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzF,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,aAAa;AACb,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,GAAG,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IAC1C,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;CAC9C;AAED,aAAa;AACb,oBAAY,wBAAwB,GAAG,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEzE,aAAa;AACb,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAED,cAAc;AACd,MAAM,WAAW,0BAA0B;IACzC,aAAa;IACb,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED,aAAa;AACb,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE;QACR,GAAG,CAAC,EAAE,yBAAyB,CAAC;QAChC,MAAM,CAAC,EAAE,yBAAyB,CAAC;KACpC,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,aAAa;AACb,oBAAY,mBAAmB,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAE/E,aAAa;AACb,yBAAiB,mBAAmB,CAAC;IACnC,SAAgB,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,qBAAqB,CAEpF;IACD,SAAgB,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,IAAI,oBAAoB,CAEjF;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Diagnostics.js","sourceRoot":"","sources":["../../../src/presentation-common/Diagnostics.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;
|
|
1
|
+
{"version":3,"file":"Diagnostics.js","sourceRoot":"","sources":["../../../src/presentation-common/Diagnostics.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AA6DH,aAAa;AACb,MAAM,KAAW,mBAAmB,CAOnC;AAPD,WAAiB,mBAAmB;IAClC,SAAgB,SAAS,CAAC,KAA0B;QAClD,OAAO,CAAC,CAAE,KAAa,CAAC,OAAO,CAAC;IAClC,CAAC;IAFe,6BAAS,YAExB,CAAA;IACD,SAAgB,OAAO,CAAC,KAA0B;QAChD,OAAO,CAAC,CAAE,KAAa,CAAC,KAAK,CAAC;IAChC,CAAC;IAFe,2BAAO,UAEtB,CAAA;AACH,CAAC,EAPgB,mBAAmB,KAAnB,mBAAmB,QAOnC","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\n/** @alpha */\r\nexport type DiagnosticsLoggerSeverity = \"error\" | \"warning\" | \"info\" | \"debug\" | \"trace\";\r\n\r\n/** @alpha */\r\nexport interface Diagnostics {\r\n logs?: DiagnosticsScopeLogs[];\r\n}\r\n\r\n/** @alpha */\r\nexport interface ClientDiagnostics extends Diagnostics {\r\n backendVersion?: string;\r\n}\r\n\r\n/** @alpha */\r\nexport interface DiagnosticsOptions {\r\n /** Measure performance */\r\n perf?: boolean;\r\n /** Severity for developer log messages */\r\n dev?: boolean | DiagnosticsLoggerSeverity;\r\n /** Severity for presentation rules' editor log messages */\r\n editor?: boolean | DiagnosticsLoggerSeverity;\r\n}\r\n\r\n/** @alpha */\r\nexport type ClientDiagnosticsHandler = (logs: ClientDiagnostics) => void;\r\n\r\n/** @alpha */\r\nexport interface ClientDiagnosticsOptions extends DiagnosticsOptions {\r\n backendVersion?: boolean;\r\n handler: ClientDiagnosticsHandler;\r\n}\r\n\r\n/** @public */\r\nexport interface ClientDiagnosticsAttribute {\r\n /** @alpha */\r\n diagnostics?: ClientDiagnosticsOptions;\r\n}\r\n\r\n/** @alpha */\r\nexport interface DiagnosticsLogMessage {\r\n severity: {\r\n dev?: DiagnosticsLoggerSeverity;\r\n editor?: DiagnosticsLoggerSeverity;\r\n };\r\n category: string;\r\n message: string;\r\n timestamp: number;\r\n}\r\n\r\n/** @alpha */\r\nexport interface DiagnosticsScopeLogs {\r\n scope: string;\r\n duration?: number;\r\n logs?: DiagnosticsLogEntry[];\r\n}\r\n\r\n/** @alpha */\r\nexport type DiagnosticsLogEntry = DiagnosticsLogMessage | DiagnosticsScopeLogs;\r\n\r\n/** @alpha */\r\nexport namespace DiagnosticsLogEntry { // eslint-disable-line @typescript-eslint/no-redeclare\r\n export function isMessage(entry: DiagnosticsLogEntry): entry is DiagnosticsLogMessage {\r\n return !!(entry as any).message;\r\n }\r\n export function isScope(entry: DiagnosticsLogEntry): entry is DiagnosticsScopeLogs {\r\n return !!(entry as any).scope;\r\n }\r\n}\r\n"]}
|
|
@@ -5,10 +5,10 @@ import { Id64String } from "@itwin/core-bentley";
|
|
|
5
5
|
import { UnitSystemKey } from "@itwin/core-quantity";
|
|
6
6
|
import { SelectionInfo } from "./content/Descriptor";
|
|
7
7
|
import { FieldDescriptor } from "./content/Fields";
|
|
8
|
-
import { DiagnosticsOptionsWithHandler } from "./Diagnostics";
|
|
9
8
|
import { InstanceKey } from "./EC";
|
|
10
9
|
import { Ruleset } from "./rules/Ruleset";
|
|
11
10
|
import { RulesetVariable } from "./RulesetVariables";
|
|
11
|
+
import { SelectionScopeProps } from "./selection/SelectionScope";
|
|
12
12
|
/**
|
|
13
13
|
* A generic request options type used for both hierarchy and content requests.
|
|
14
14
|
* @public
|
|
@@ -23,8 +23,12 @@ export interface RequestOptions<TIModel> {
|
|
|
23
23
|
* unit is used if unit system is not specified.
|
|
24
24
|
*/
|
|
25
25
|
unitSystem?: UnitSystemKey;
|
|
26
|
-
/**
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Expected form of response. This property is set automatically on newer frontends.
|
|
28
|
+
* `unparsed-json` — deliver response from native addon without parsing it.
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
transport?: "unparsed-json";
|
|
28
32
|
}
|
|
29
33
|
/**
|
|
30
34
|
* Options for requests that require presentation ruleset. Not
|
|
@@ -171,6 +175,16 @@ export interface DisplayLabelsRequestOptions<TIModel, TInstanceKey> extends Requ
|
|
|
171
175
|
*/
|
|
172
176
|
export interface SelectionScopeRequestOptions<TIModel> extends RequestOptions<TIModel> {
|
|
173
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Request options used for calculating selection based on picked instance ksy and selection scope
|
|
180
|
+
* @alpha
|
|
181
|
+
*/
|
|
182
|
+
export interface ComputeSelectionRequestOptions<TIModel> extends RequestOptions<TIModel> {
|
|
183
|
+
elementIds: Id64String[];
|
|
184
|
+
scope: SelectionScopeProps;
|
|
185
|
+
}
|
|
186
|
+
/** @internal */
|
|
187
|
+
export declare function isComputeSelectionRequestOptions<TIModel>(options: ComputeSelectionRequestOptions<TIModel> | SelectionScopeRequestOptions<TIModel>): options is ComputeSelectionRequestOptions<TIModel>;
|
|
174
188
|
/**
|
|
175
189
|
* Data structure for comparing a hierarchy after ruleset or ruleset variable changes.
|
|
176
190
|
* @public
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationManagerOptions.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/PresentationManagerOptions.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PresentationManagerOptions.d.ts","sourceRoot":"","sources":["../../../src/presentation-common/PresentationManagerOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
/** @packageDocumentation
|
|
6
6
|
* @module Core
|
|
7
7
|
*/
|
|
8
|
+
/** @internal */
|
|
9
|
+
export function isComputeSelectionRequestOptions(options) {
|
|
10
|
+
return !!options.elementIds;
|
|
11
|
+
}
|
|
8
12
|
/**
|
|
9
13
|
* Checks if supplied request options are for single or multiple element properties.
|
|
10
14
|
* @beta
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PresentationManagerOptions.js","sourceRoot":"","sources":["../../../src/presentation-common/PresentationManagerOptions.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AA+OH;;;GAGG;AACH,MAAM,UAAU,uCAAuC,CAAU,OAAiD;IAChH,OAAQ,OAA0D,CAAC,SAAS,KAAK,SAAS,CAAC;AAC7F,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 { Id64String } from \"@itwin/core-bentley\";\r\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { SelectionInfo } from \"./content/Descriptor\";\r\nimport { FieldDescriptor } from \"./content/Fields\";\r\nimport { DiagnosticsOptionsWithHandler } from \"./Diagnostics\";\r\nimport { InstanceKey } from \"./EC\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\nimport { RulesetVariable } from \"./RulesetVariables\";\r\n\r\n/**\r\n * A generic request options type used for both hierarchy and content requests.\r\n * @public\r\n */\r\nexport interface RequestOptions<TIModel> {\r\n /** iModel to request data from */\r\n imodel: TIModel;\r\n\r\n /** Optional locale to use when formatting / localizing data */\r\n locale?: string;\r\n\r\n /**\r\n * Unit system to use when formatting property values with units. Default presentation\r\n * unit is used if unit system is not specified.\r\n */\r\n unitSystem?: UnitSystemKey;\r\n\r\n /** @alpha */\r\n diagnostics?: DiagnosticsOptionsWithHandler;\r\n}\r\n\r\n/**\r\n * Options for requests that require presentation ruleset. Not\r\n * meant to be used directly, see one of the subclasses.\r\n *\r\n * @public\r\n */\r\nexport interface RequestOptionsWithRuleset<TIModel, TRulesetVariable = RulesetVariable> extends RequestOptions<TIModel> {\r\n /** Ruleset or id of the ruleset to use when requesting data */\r\n rulesetOrId: Ruleset | string;\r\n\r\n /** Ruleset variables to use when requesting data */\r\n rulesetVariables?: TRulesetVariable[];\r\n}\r\n\r\n/**\r\n * Request type for hierarchy requests.\r\n * @public\r\n */\r\nexport interface HierarchyRequestOptions<TIModel, TNodeKey, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** Key of the parent node to get children for */\r\n parentKey?: TNodeKey;\r\n}\r\n\r\n/**\r\n * Request type of filtering hierarchies by given ECInstance paths.\r\n * @public\r\n */\r\nexport interface FilterByInstancePathsHierarchyRequestOptions<TIModel, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** A list of paths from root ECInstance to target ECInstance. */\r\n instancePaths: InstanceKey[][];\r\n\r\n /**\r\n * An optional index (`0 <= markedIndex < instancePaths.length`) to mark one of the instance paths. The\r\n * path is marked using `NodePathElement.isMarked` flag in the result.\r\n */\r\n markedIndex?: number;\r\n}\r\n\r\n/**\r\n * Request type of filtering hierarchies by given text.\r\n * @public\r\n */\r\nexport interface FilterByTextHierarchyRequestOptions<TIModel, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** Text to filter the hierarchy by. */\r\n filterText: string;\r\n}\r\n\r\n/**\r\n * Request type for content sources requests.\r\n * @beta\r\n */\r\nexport interface ContentSourcesRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n /** Full names of classes to get content sources for. */\r\n classes: string[];\r\n}\r\n\r\n/**\r\n * Request type for content descriptor requests.\r\n * @public\r\n */\r\nexport interface ContentDescriptorRequestOptions<TIModel, TKeySet, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /**\r\n * Content display type.\r\n * @see [[DefaultContentDisplayTypes]]\r\n */\r\n displayType: string;\r\n /** Input keys for getting the content */\r\n keys: TKeySet;\r\n /** Information about the selection event that was the cause of this content request */\r\n selection?: SelectionInfo;\r\n}\r\n\r\n/**\r\n * Request type for content requests.\r\n * @public\r\n */\r\nexport interface ContentRequestOptions<TIModel, TDescriptor, TKeySet, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** Content descriptor for customizing the returned content */\r\n descriptor: TDescriptor;\r\n /** Input keys for getting the content */\r\n keys: TKeySet;\r\n}\r\n\r\n/**\r\n * Request type for distinct values' requests.\r\n * @public\r\n */\r\nexport interface DistinctValuesRequestOptions<TIModel, TDescriptor, TKeySet, TRulesetVariable = RulesetVariable> extends Paged<RequestOptionsWithRuleset<TIModel, TRulesetVariable>> {\r\n /** Content descriptor for customizing the returned content */\r\n descriptor: TDescriptor;\r\n /** Input keys for getting the content */\r\n keys: TKeySet;\r\n /** Descriptor for a field distinct values are requested for */\r\n fieldDescriptor: FieldDescriptor;\r\n}\r\n\r\n/**\r\n * Request type for element properties requests\r\n * @beta\r\n */\r\nexport type ElementPropertiesRequestOptions<TIModel> = SingleElementPropertiesRequestOptions<TIModel> | MultiElementPropertiesRequestOptions<TIModel>;\r\n\r\n/**\r\n * Request type for single element properties requests.\r\n * @beta\r\n */\r\nexport interface SingleElementPropertiesRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n /** ID of the element to get properties for. */\r\n elementId: Id64String;\r\n}\r\n\r\n/**\r\n * Request type for multiple elements properties requests.\r\n * @beta\r\n */\r\nexport interface MultiElementPropertiesRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n /** Classes of the elements to get properties for. If `elementClasses` is undefined all classes\r\n * are used. Classes should be specified in one of these formats: \"<schema name or alias>.<class_name>\",\r\n * \"<schema name or alias>:<class_name>\".\r\n */\r\n elementClasses?: string[];\r\n}\r\n\r\n/**\r\n * Request type for content instance keys' requests.\r\n * @beta\r\n */\r\nexport interface ContentInstanceKeysRequestOptions<TIModel, TKeySet, TRulesetVariable = RulesetVariable> extends Paged<RequestOptionsWithRuleset<TIModel, TRulesetVariable>> {\r\n /**\r\n * Content display type.\r\n * @see [[DefaultContentDisplayTypes]]\r\n */\r\n displayType?: string;\r\n /** Input keys for getting the content. */\r\n keys: TKeySet;\r\n}\r\n\r\n/**\r\n * Request type for label requests\r\n * @public\r\n */\r\nexport interface DisplayLabelRequestOptions<TIModel, TInstanceKey> extends RequestOptions<TIModel> {\r\n /** Key of ECInstance to get label for */\r\n key: TInstanceKey;\r\n}\r\n\r\n/**\r\n * Request type for labels requests\r\n * @public\r\n */\r\nexport interface DisplayLabelsRequestOptions<TIModel, TInstanceKey> extends RequestOptions<TIModel> {\r\n /** Keys of ECInstances to get labels for */\r\n keys: TInstanceKey[];\r\n}\r\n\r\n/**\r\n * Request options used for selection scope related requests\r\n * @public\r\n */\r\nexport interface SelectionScopeRequestOptions<TIModel> extends RequestOptions<TIModel> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Data structure for comparing a hierarchy after ruleset or ruleset variable changes.\r\n * @public\r\n */\r\nexport interface HierarchyCompareOptions<TIModel, TNodeKey, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n prev: {\r\n rulesetOrId?: Ruleset | string;\r\n rulesetVariables?: TRulesetVariable[];\r\n };\r\n expandedNodeKeys?: TNodeKey[];\r\n continuationToken?: {\r\n prevHierarchyNode: string;\r\n currHierarchyNode: string;\r\n };\r\n resultSetSize?: number;\r\n}\r\n\r\n/**\r\n * Paging options\r\n * @public\r\n */\r\nexport interface PageOptions {\r\n /** Inclusive start 0-based index of the page */\r\n start?: number;\r\n /** Maximum size of the page */\r\n size?: number;\r\n}\r\n\r\n/**\r\n * A wrapper type that injects [[PageOptions]] into supplied type\r\n * @public\r\n */\r\nexport type Paged<TOptions extends {}> = TOptions & {\r\n /** Optional paging parameters */\r\n paging?: PageOptions;\r\n};\r\n\r\n/**\r\n * A wrapper type that injects priority into supplied type.\r\n * @public\r\n */\r\nexport type Prioritized<TOptions extends {}> = TOptions & {\r\n /** Optional priority */\r\n priority?: number;\r\n};\r\n\r\n/**\r\n * Checks if supplied request options are for single or multiple element properties.\r\n * @beta\r\n */\r\nexport function isSingleElementPropertiesRequestOptions<TIModel>(options: ElementPropertiesRequestOptions<TIModel>): options is SingleElementPropertiesRequestOptions<TIModel> {\r\n return (options as SingleElementPropertiesRequestOptions<TIModel>).elementId !== undefined;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"PresentationManagerOptions.js","sourceRoot":"","sources":["../../../src/presentation-common/PresentationManagerOptions.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AA6MH,gBAAgB;AAChB,MAAM,UAAU,gCAAgC,CAAU,OAAwF;IAChJ,OAAO,CAAC,CAAE,OAAmD,CAAC,UAAU,CAAC;AAC3E,CAAC;AAgDD;;;GAGG;AACH,MAAM,UAAU,uCAAuC,CAAU,OAAiD;IAChH,OAAQ,OAA0D,CAAC,SAAS,KAAK,SAAS,CAAC;AAC7F,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 { Id64String } from \"@itwin/core-bentley\";\r\nimport { UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { SelectionInfo } from \"./content/Descriptor\";\r\nimport { FieldDescriptor } from \"./content/Fields\";\r\nimport { InstanceKey } from \"./EC\";\r\nimport { Ruleset } from \"./rules/Ruleset\";\r\nimport { RulesetVariable } from \"./RulesetVariables\";\r\nimport { SelectionScopeProps } from \"./selection/SelectionScope\";\r\n\r\n/**\r\n * A generic request options type used for both hierarchy and content requests.\r\n * @public\r\n */\r\nexport interface RequestOptions<TIModel> {\r\n /** iModel to request data from */\r\n imodel: TIModel;\r\n\r\n /** Optional locale to use when formatting / localizing data */\r\n locale?: string;\r\n\r\n /**\r\n * Unit system to use when formatting property values with units. Default presentation\r\n * unit is used if unit system is not specified.\r\n */\r\n unitSystem?: UnitSystemKey;\r\n\r\n /**\r\n * Expected form of response. This property is set automatically on newer frontends.\r\n * `unparsed-json` — deliver response from native addon without parsing it.\r\n * @internal\r\n */\r\n transport?: \"unparsed-json\";\r\n}\r\n\r\n/**\r\n * Options for requests that require presentation ruleset. Not\r\n * meant to be used directly, see one of the subclasses.\r\n *\r\n * @public\r\n */\r\nexport interface RequestOptionsWithRuleset<TIModel, TRulesetVariable = RulesetVariable> extends RequestOptions<TIModel> {\r\n /** Ruleset or id of the ruleset to use when requesting data */\r\n rulesetOrId: Ruleset | string;\r\n\r\n /** Ruleset variables to use when requesting data */\r\n rulesetVariables?: TRulesetVariable[];\r\n}\r\n\r\n/**\r\n * Request type for hierarchy requests.\r\n * @public\r\n */\r\nexport interface HierarchyRequestOptions<TIModel, TNodeKey, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** Key of the parent node to get children for */\r\n parentKey?: TNodeKey;\r\n}\r\n\r\n/**\r\n * Request type of filtering hierarchies by given ECInstance paths.\r\n * @public\r\n */\r\nexport interface FilterByInstancePathsHierarchyRequestOptions<TIModel, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** A list of paths from root ECInstance to target ECInstance. */\r\n instancePaths: InstanceKey[][];\r\n\r\n /**\r\n * An optional index (`0 <= markedIndex < instancePaths.length`) to mark one of the instance paths. The\r\n * path is marked using `NodePathElement.isMarked` flag in the result.\r\n */\r\n markedIndex?: number;\r\n}\r\n\r\n/**\r\n * Request type of filtering hierarchies by given text.\r\n * @public\r\n */\r\nexport interface FilterByTextHierarchyRequestOptions<TIModel, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** Text to filter the hierarchy by. */\r\n filterText: string;\r\n}\r\n\r\n/**\r\n * Request type for content sources requests.\r\n * @beta\r\n */\r\nexport interface ContentSourcesRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n /** Full names of classes to get content sources for. */\r\n classes: string[];\r\n}\r\n\r\n/**\r\n * Request type for content descriptor requests.\r\n * @public\r\n */\r\nexport interface ContentDescriptorRequestOptions<TIModel, TKeySet, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /**\r\n * Content display type.\r\n * @see [[DefaultContentDisplayTypes]]\r\n */\r\n displayType: string;\r\n /** Input keys for getting the content */\r\n keys: TKeySet;\r\n /** Information about the selection event that was the cause of this content request */\r\n selection?: SelectionInfo;\r\n}\r\n\r\n/**\r\n * Request type for content requests.\r\n * @public\r\n */\r\nexport interface ContentRequestOptions<TIModel, TDescriptor, TKeySet, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n /** Content descriptor for customizing the returned content */\r\n descriptor: TDescriptor;\r\n /** Input keys for getting the content */\r\n keys: TKeySet;\r\n}\r\n\r\n/**\r\n * Request type for distinct values' requests.\r\n * @public\r\n */\r\nexport interface DistinctValuesRequestOptions<TIModel, TDescriptor, TKeySet, TRulesetVariable = RulesetVariable> extends Paged<RequestOptionsWithRuleset<TIModel, TRulesetVariable>> {\r\n /** Content descriptor for customizing the returned content */\r\n descriptor: TDescriptor;\r\n /** Input keys for getting the content */\r\n keys: TKeySet;\r\n /** Descriptor for a field distinct values are requested for */\r\n fieldDescriptor: FieldDescriptor;\r\n}\r\n\r\n/**\r\n * Request type for element properties requests\r\n * @beta\r\n */\r\nexport type ElementPropertiesRequestOptions<TIModel> = SingleElementPropertiesRequestOptions<TIModel> | MultiElementPropertiesRequestOptions<TIModel>;\r\n\r\n/**\r\n * Request type for single element properties requests.\r\n * @beta\r\n */\r\nexport interface SingleElementPropertiesRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n /** ID of the element to get properties for. */\r\n elementId: Id64String;\r\n}\r\n\r\n/**\r\n * Request type for multiple elements properties requests.\r\n * @beta\r\n */\r\nexport interface MultiElementPropertiesRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n /** Classes of the elements to get properties for. If `elementClasses` is undefined all classes\r\n * are used. Classes should be specified in one of these formats: \"<schema name or alias>.<class_name>\",\r\n * \"<schema name or alias>:<class_name>\".\r\n */\r\n elementClasses?: string[];\r\n}\r\n\r\n/**\r\n * Request type for content instance keys' requests.\r\n * @beta\r\n */\r\nexport interface ContentInstanceKeysRequestOptions<TIModel, TKeySet, TRulesetVariable = RulesetVariable> extends Paged<RequestOptionsWithRuleset<TIModel, TRulesetVariable>> {\r\n /**\r\n * Content display type.\r\n * @see [[DefaultContentDisplayTypes]]\r\n */\r\n displayType?: string;\r\n /** Input keys for getting the content. */\r\n keys: TKeySet;\r\n}\r\n\r\n/**\r\n * Request type for label requests\r\n * @public\r\n */\r\nexport interface DisplayLabelRequestOptions<TIModel, TInstanceKey> extends RequestOptions<TIModel> {\r\n /** Key of ECInstance to get label for */\r\n key: TInstanceKey;\r\n}\r\n\r\n/**\r\n * Request type for labels requests\r\n * @public\r\n */\r\nexport interface DisplayLabelsRequestOptions<TIModel, TInstanceKey> extends RequestOptions<TIModel> {\r\n /** Keys of ECInstances to get labels for */\r\n keys: TInstanceKey[];\r\n}\r\n\r\n/**\r\n * Request options used for selection scope related requests\r\n * @public\r\n */\r\nexport interface SelectionScopeRequestOptions<TIModel> extends RequestOptions<TIModel> { } // eslint-disable-line @typescript-eslint/no-empty-interface\r\n\r\n/**\r\n * Request options used for calculating selection based on picked instance ksy and selection scope\r\n * @alpha\r\n */\r\nexport interface ComputeSelectionRequestOptions<TIModel> extends RequestOptions<TIModel> {\r\n elementIds: Id64String[];\r\n scope: SelectionScopeProps;\r\n}\r\n/** @internal */\r\nexport function isComputeSelectionRequestOptions<TIModel>(options: ComputeSelectionRequestOptions<TIModel> | SelectionScopeRequestOptions<TIModel>): options is ComputeSelectionRequestOptions<TIModel> {\r\n return !!(options as ComputeSelectionRequestOptions<TIModel>).elementIds;\r\n}\r\n\r\n/**\r\n * Data structure for comparing a hierarchy after ruleset or ruleset variable changes.\r\n * @public\r\n */\r\nexport interface HierarchyCompareOptions<TIModel, TNodeKey, TRulesetVariable = RulesetVariable> extends RequestOptionsWithRuleset<TIModel, TRulesetVariable> {\r\n prev: {\r\n rulesetOrId?: Ruleset | string;\r\n rulesetVariables?: TRulesetVariable[];\r\n };\r\n expandedNodeKeys?: TNodeKey[];\r\n continuationToken?: {\r\n prevHierarchyNode: string;\r\n currHierarchyNode: string;\r\n };\r\n resultSetSize?: number;\r\n}\r\n\r\n/**\r\n * Paging options\r\n * @public\r\n */\r\nexport interface PageOptions {\r\n /** Inclusive start 0-based index of the page */\r\n start?: number;\r\n /** Maximum size of the page */\r\n size?: number;\r\n}\r\n\r\n/**\r\n * A wrapper type that injects [[PageOptions]] into supplied type\r\n * @public\r\n */\r\nexport type Paged<TOptions extends {}> = TOptions & {\r\n /** Optional paging parameters */\r\n paging?: PageOptions;\r\n};\r\n\r\n/**\r\n * A wrapper type that injects priority into supplied type.\r\n * @public\r\n */\r\nexport type Prioritized<TOptions extends {}> = TOptions & {\r\n /** Optional priority */\r\n priority?: number;\r\n};\r\n\r\n/**\r\n * Checks if supplied request options are for single or multiple element properties.\r\n * @beta\r\n */\r\nexport function isSingleElementPropertiesRequestOptions<TIModel>(options: ElementPropertiesRequestOptions<TIModel>): options is SingleElementPropertiesRequestOptions<TIModel> {\r\n return (options as SingleElementPropertiesRequestOptions<TIModel>).elementId !== undefined;\r\n}\r\n"]}
|
|
@@ -6,7 +6,7 @@ import { IModelRpcProps, RpcInterface } from "@itwin/core-common";
|
|
|
6
6
|
import { DescriptorJSON, DescriptorOverrides, SelectClassInfoJSON } from "./content/Descriptor";
|
|
7
7
|
import { ItemJSON } from "./content/Item";
|
|
8
8
|
import { DisplayValueGroupJSON } from "./content/Value";
|
|
9
|
-
import {
|
|
9
|
+
import { ClientDiagnostics, ClientDiagnosticsOptions } from "./Diagnostics";
|
|
10
10
|
import { CompressedClassInfoJSON, InstanceKeyJSON } from "./EC";
|
|
11
11
|
import { ElementProperties } from "./ElementProperties";
|
|
12
12
|
import { PresentationStatus } from "./Error";
|
|
@@ -15,7 +15,7 @@ import { NodeJSON } from "./hierarchy/Node";
|
|
|
15
15
|
import { NodePathElementJSON } from "./hierarchy/NodePathElement";
|
|
16
16
|
import { KeySetJSON } from "./KeySet";
|
|
17
17
|
import { LabelDefinitionJSON } from "./LabelDefinition";
|
|
18
|
-
import { ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyRequestOptions, Paged, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions } from "./PresentationManagerOptions";
|
|
18
|
+
import { ComputeSelectionRequestOptions, ContentDescriptorRequestOptions, ContentInstanceKeysRequestOptions, ContentRequestOptions, ContentSourcesRequestOptions, DisplayLabelRequestOptions, DisplayLabelsRequestOptions, DistinctValuesRequestOptions, FilterByInstancePathsHierarchyRequestOptions, FilterByTextHierarchyRequestOptions, HierarchyRequestOptions, Paged, SelectionScopeRequestOptions, SingleElementPropertiesRequestOptions } from "./PresentationManagerOptions";
|
|
19
19
|
import { RulesetVariableJSON } from "./RulesetVariables";
|
|
20
20
|
import { SelectionScope } from "./selection/SelectionScope";
|
|
21
21
|
import { Omit, PagedResponse } from "./Utils";
|
|
@@ -27,7 +27,7 @@ export declare type PresentationRpcRequestOptions<TManagerRequestOptions> = Omit
|
|
|
27
27
|
/** @internal ID of the client requesting data */
|
|
28
28
|
clientId?: string;
|
|
29
29
|
/** @alpha */
|
|
30
|
-
diagnostics?:
|
|
30
|
+
diagnostics?: RpcDiagnosticsOptions;
|
|
31
31
|
};
|
|
32
32
|
/**
|
|
33
33
|
* Data structure for presentation RPC responses
|
|
@@ -41,8 +41,10 @@ export interface PresentationRpcResponseData<TResult = undefined> {
|
|
|
41
41
|
/** In case of a success response, the result */
|
|
42
42
|
result?: TResult;
|
|
43
43
|
/** @alpha */
|
|
44
|
-
diagnostics?:
|
|
44
|
+
diagnostics?: ClientDiagnostics;
|
|
45
45
|
}
|
|
46
|
+
/** @alpha */
|
|
47
|
+
export declare type RpcDiagnosticsOptions = Omit<ClientDiagnosticsOptions, "handler">;
|
|
46
48
|
/**
|
|
47
49
|
* A promise of [[PresentationRpcResponseData]].
|
|
48
50
|
* @public
|
|
@@ -120,6 +122,10 @@ export declare type DisplayLabelsRpcRequestOptions = PresentationRpcRequestOptio
|
|
|
120
122
|
* @public
|
|
121
123
|
*/
|
|
122
124
|
export declare type SelectionScopeRpcRequestOptions = PresentationRpcRequestOptions<SelectionScopeRequestOptions<never>>;
|
|
125
|
+
/**
|
|
126
|
+
* @alpha
|
|
127
|
+
*/
|
|
128
|
+
export declare type ComputeSelectionRpcRequestOptions = PresentationRpcRequestOptions<ComputeSelectionRequestOptions<never>>;
|
|
123
129
|
/**
|
|
124
130
|
* Interface used for communication between Presentation backend and frontend.
|
|
125
131
|
* @public
|
|
@@ -154,6 +160,8 @@ export declare class PresentationRpcInterface extends RpcInterface {
|
|
|
154
160
|
getPagedDisplayLabelDefinitions(_token: IModelRpcProps, _options: DisplayLabelsRpcRequestOptions): PresentationRpcResponse<PagedResponse<LabelDefinitionJSON>>;
|
|
155
161
|
getSelectionScopes(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions): PresentationRpcResponse<SelectionScope[]>;
|
|
156
162
|
computeSelection(_token: IModelRpcProps, _options: SelectionScopeRpcRequestOptions, _ids: Id64String[], _scopeId: string): PresentationRpcResponse<KeySetJSON>;
|
|
163
|
+
/** @alpha */
|
|
164
|
+
computeSelection(_token: IModelRpcProps, _options: ComputeSelectionRpcRequestOptions): PresentationRpcResponse<KeySetJSON>;
|
|
157
165
|
}
|
|
158
166
|
/** @alpha */
|
|
159
167
|
export declare enum PresentationIpcEvents {
|
|
@@ -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,
|
|
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,aAAa;IACb,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,2BAA2B,CAAC,OAAO,GAAG,SAAS;IAC9D,2BAA2B;IAC3B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa;IACb,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,aAAa;AACb,oBAAY,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;AAE9E;;;GAGG;AACH,oBAAY,uBAAuB,CAAC,OAAO,GAAG,SAAS,IAAI,OAAO,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzG;;;GAGG;AACH,oBAAY,0BAA0B,GAAG,6BAA6B,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEzI;;;GAGG;AACH,oBAAY,+CAA+C,GAAG,6BAA6B,CAAC,4CAA4C,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEtK;;;GAGG;AACH,oBAAY,sCAAsC,GAAG,6BAA6B,CAAC,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEpJ;;;GAGG;AACH,oBAAY,+BAA+B,GAAG,6BAA6B,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;AACjH;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,+DAA+D;IAC/D,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;IAC3C,uFAAuF;IACvF,UAAU,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAC;CACvD;AAED;;;GAGG;AACH,oBAAY,kCAAkC,GAAG,6BAA6B,CAAC,+BAA+B,CAAC,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAExJ;;;GAGG;AACH,oBAAY,wBAAwB,GAAG,6BAA6B,CAAC,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEzJ;;;GAGG;AACH,oBAAY,wCAAwC,GAAG,6BAA6B,CAAC,qCAAqC,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnI;;;GAGG;AACH,oBAAY,+BAA+B,GAAG,6BAA6B,CAAC,4BAA4B,CAAC,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEvK;;;GAGG;AACH,oBAAY,oCAAoC,GAAG,6BAA6B,CAAC,iCAAiC,CAAC,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAE5J;;;GAGG;AACH,oBAAY,6BAA6B,GAAG,6BAA6B,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;AAE9H;;;GAGG;AACH,oBAAY,8BAA8B,GAAG,6BAA6B,CAAC,2BAA2B,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;AAEhI;;;GAGG;AACH,oBAAY,+BAA+B,GAAG,6BAA6B,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjH;;GAEG;AACH,oBAAY,iCAAiC,GAAG,6BAA6B,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;AAErH;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,2CAA2C;IAC3C,gBAAuB,aAAa,8BAA8B;IAElE,6CAA6C;IAC7C,OAAc,gBAAgB,SAAW;IAO5B,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,0BAA0B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAG5G,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,0BAA0B,CAAC,GAAG,uBAAuB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAIpI,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,+CAA+C,GAAG,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;IAI/I,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,sCAAsC,GAAG,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;IAE3J,YAAY;IAEC,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,+BAA+B,GAAG,uBAAuB,CAAC,uBAAuB,CAAC;IAGtI,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,kCAAkC,GAAG,uBAAuB,CAAC,cAAc,GAAG,SAAS,CAAC;IAU/I,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,wBAAwB,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAG9G,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,uBAAuB,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAG5L,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,uBAAuB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEpJ,YAAY;IAEC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,wCAAwC,GAAG,uBAAuB,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAGxJ,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,+BAA+B,GAAG,uBAAuB,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAErK,YAAY;IACC,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,oCAAoC,GAAG,uBAAuB,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IAE7J,yBAAyB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,6BAA6B,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;IAGxI,+BAA+B,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,8BAA8B,GAAG,uBAAuB,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAE9J,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,+BAA+B,GAAG,uBAAuB,CAAC,cAAc,EAAE,CAAC;IAGhI,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,+BAA+B,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;IAC3K,aAAa;IACA,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,iCAAiC,GAAG,uBAAuB,CAAC,UAAU,CAAC;CAGxI;AAED,aAAa;AACb,oBAAY,qBAAqB;IAC/B;;OAEG;IACH,MAAM,0BAA0B;CACjC"}
|