@itwin/core-backend 3.0.0-dev.98 → 3.0.0

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.
Files changed (163) hide show
  1. package/CHANGELOG.md +211 -67
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AliCloudStorageService.d.ts +8 -2
  4. package/lib/cjs/AliCloudStorageService.d.ts.map +1 -1
  5. package/lib/cjs/AliCloudStorageService.js +4 -5
  6. package/lib/cjs/AliCloudStorageService.js.map +1 -1
  7. package/lib/cjs/BackendHubAccess.d.ts +9 -9
  8. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  9. package/lib/cjs/BackendHubAccess.js.map +1 -1
  10. package/lib/cjs/BriefcaseManager.js +4 -3
  11. package/lib/cjs/BriefcaseManager.js.map +1 -1
  12. package/lib/cjs/Category.d.ts +1 -1
  13. package/lib/cjs/Category.d.ts.map +1 -1
  14. package/lib/cjs/Category.js +6 -6
  15. package/lib/cjs/Category.js.map +1 -1
  16. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  17. package/lib/cjs/ChangeSummaryManager.js +2 -0
  18. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  19. package/lib/cjs/ChangedElementsDb.d.ts +2 -0
  20. package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
  21. package/lib/cjs/ChangedElementsDb.js +1 -1
  22. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  23. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  24. package/lib/cjs/CheckpointManager.js +10 -7
  25. package/lib/cjs/CheckpointManager.js.map +1 -1
  26. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  27. package/lib/cjs/ClassRegistry.js +10 -3
  28. package/lib/cjs/ClassRegistry.js.map +1 -1
  29. package/lib/cjs/CloudStorageBackend.d.ts +2 -3
  30. package/lib/cjs/CloudStorageBackend.d.ts.map +1 -1
  31. package/lib/cjs/CloudStorageBackend.js +5 -2
  32. package/lib/cjs/CloudStorageBackend.js.map +1 -1
  33. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  34. package/lib/cjs/ConcurrentQuery.js +7 -0
  35. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  36. package/lib/cjs/DevTools.d.ts +2 -2
  37. package/lib/cjs/DevTools.d.ts.map +1 -1
  38. package/lib/cjs/DevTools.js +2 -2
  39. package/lib/cjs/DevTools.js.map +1 -1
  40. package/lib/cjs/DisplayStyle.d.ts +2 -2
  41. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  42. package/lib/cjs/DisplayStyle.js +15 -47
  43. package/lib/cjs/DisplayStyle.js.map +1 -1
  44. package/lib/cjs/ECDb.d.ts +5 -9
  45. package/lib/cjs/ECDb.d.ts.map +1 -1
  46. package/lib/cjs/ECDb.js +11 -14
  47. package/lib/cjs/ECDb.js.map +1 -1
  48. package/lib/cjs/ECSchemaXmlContext.d.ts +1 -0
  49. package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -1
  50. package/lib/cjs/ECSchemaXmlContext.js +10 -4
  51. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  52. package/lib/cjs/ECSqlStatement.d.ts +8 -8
  53. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  54. package/lib/cjs/ECSqlStatement.js +24 -15
  55. package/lib/cjs/ECSqlStatement.js.map +1 -1
  56. package/lib/cjs/Element.d.ts +16 -16
  57. package/lib/cjs/Element.d.ts.map +1 -1
  58. package/lib/cjs/Element.js +9 -9
  59. package/lib/cjs/Element.js.map +1 -1
  60. package/lib/cjs/ElementAspect.d.ts +2 -2
  61. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  62. package/lib/cjs/ElementAspect.js +2 -2
  63. package/lib/cjs/ElementAspect.js.map +1 -1
  64. package/lib/cjs/ElementGraphics.js +1 -1
  65. package/lib/cjs/ElementGraphics.js.map +1 -1
  66. package/lib/cjs/Entity.d.ts +11 -3
  67. package/lib/cjs/Entity.d.ts.map +1 -1
  68. package/lib/cjs/Entity.js +10 -2
  69. package/lib/cjs/Entity.js.map +1 -1
  70. package/lib/cjs/ExportGraphics.d.ts +1 -1
  71. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  72. package/lib/cjs/ExportGraphics.js +3 -0
  73. package/lib/cjs/ExportGraphics.js.map +1 -1
  74. package/lib/cjs/GeometrySummary.d.ts.map +1 -1
  75. package/lib/cjs/GeometrySummary.js +5 -2
  76. package/lib/cjs/GeometrySummary.js.map +1 -1
  77. package/lib/cjs/IModelDb.d.ts +44 -26
  78. package/lib/cjs/IModelDb.d.ts.map +1 -1
  79. package/lib/cjs/IModelDb.js +114 -42
  80. package/lib/cjs/IModelDb.js.map +1 -1
  81. package/lib/cjs/IModelHost.d.ts +40 -19
  82. package/lib/cjs/IModelHost.d.ts.map +1 -1
  83. package/lib/cjs/IModelHost.js +70 -20
  84. package/lib/cjs/IModelHost.js.map +1 -1
  85. package/lib/cjs/IModelJsFs.js +1 -1
  86. package/lib/cjs/IModelJsFs.js.map +1 -1
  87. package/lib/cjs/IpcHost.js +2 -1
  88. package/lib/cjs/IpcHost.js.map +1 -1
  89. package/lib/cjs/LocalhostIpcHost.d.ts.map +1 -1
  90. package/lib/cjs/LocalhostIpcHost.js +10 -3
  91. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  92. package/lib/cjs/Material.d.ts +1 -1
  93. package/lib/cjs/Material.d.ts.map +1 -1
  94. package/lib/cjs/Material.js +1 -1
  95. package/lib/cjs/Material.js.map +1 -1
  96. package/lib/cjs/Model.d.ts +4 -4
  97. package/lib/cjs/Model.d.ts.map +1 -1
  98. package/lib/cjs/Model.js +3 -3
  99. package/lib/cjs/Model.js.map +1 -1
  100. package/lib/cjs/NativeHost.d.ts +4 -22
  101. package/lib/cjs/NativeHost.d.ts.map +1 -1
  102. package/lib/cjs/NativeHost.js +4 -56
  103. package/lib/cjs/NativeHost.js.map +1 -1
  104. package/lib/cjs/Relationship.d.ts +10 -9
  105. package/lib/cjs/Relationship.d.ts.map +1 -1
  106. package/lib/cjs/Relationship.js +14 -8
  107. package/lib/cjs/Relationship.js.map +1 -1
  108. package/lib/cjs/RpcBackend.d.ts +4 -0
  109. package/lib/cjs/RpcBackend.d.ts.map +1 -1
  110. package/lib/cjs/RpcBackend.js +7 -0
  111. package/lib/cjs/RpcBackend.js.map +1 -1
  112. package/lib/cjs/SQLiteDb.js +1 -1
  113. package/lib/cjs/SQLiteDb.js.map +1 -1
  114. package/lib/cjs/ServerBasedLocks.d.ts +4 -10
  115. package/lib/cjs/ServerBasedLocks.d.ts.map +1 -1
  116. package/lib/cjs/ServerBasedLocks.js +12 -20
  117. package/lib/cjs/ServerBasedLocks.js.map +1 -1
  118. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  119. package/lib/cjs/SqliteStatement.js.map +1 -1
  120. package/lib/cjs/Texture.js +1 -1
  121. package/lib/cjs/Texture.js.map +1 -1
  122. package/lib/cjs/TxnManager.js +1 -1
  123. package/lib/cjs/TxnManager.js.map +1 -1
  124. package/lib/cjs/ViewDefinition.d.ts +11 -11
  125. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  126. package/lib/cjs/ViewDefinition.js +5 -5
  127. package/lib/cjs/ViewDefinition.js.map +1 -1
  128. package/lib/cjs/assets/Settings.schema.json +25 -0
  129. package/lib/cjs/core-backend.d.ts +8 -1
  130. package/lib/cjs/core-backend.d.ts.map +1 -1
  131. package/lib/cjs/core-backend.js +9 -1
  132. package/lib/cjs/core-backend.js.map +1 -1
  133. package/lib/cjs/domains/FunctionalElements.d.ts +1 -1
  134. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
  135. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  136. package/lib/cjs/domains/GenericElements.d.ts +2 -2
  137. package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
  138. package/lib/cjs/domains/GenericElements.js.map +1 -1
  139. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
  140. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +33 -24
  141. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  142. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
  143. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +10 -7
  144. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  145. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  146. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +11 -1
  147. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  148. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts.map +1 -1
  149. package/lib/cjs/rpc-impl/WipRpcImpl.js +3 -0
  150. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  151. package/lib/cjs/workspace/Settings.d.ts +182 -0
  152. package/lib/cjs/workspace/Settings.d.ts.map +1 -0
  153. package/lib/cjs/workspace/Settings.js +144 -0
  154. package/lib/cjs/workspace/Settings.js.map +1 -0
  155. package/lib/cjs/workspace/SettingsSpecRegistry.d.ts +68 -0
  156. package/lib/cjs/workspace/SettingsSpecRegistry.d.ts.map +1 -0
  157. package/lib/cjs/workspace/SettingsSpecRegistry.js +122 -0
  158. package/lib/cjs/workspace/SettingsSpecRegistry.js.map +1 -0
  159. package/lib/cjs/workspace/Workspace.d.ts +306 -0
  160. package/lib/cjs/workspace/Workspace.d.ts.map +1 -0
  161. package/lib/cjs/workspace/Workspace.js +372 -0
  162. package/lib/cjs/workspace/Workspace.js.map +1 -0
  163. package/package.json +33 -19
@@ -1 +1 @@
1
- {"version":3,"file":"FunctionalElements.js","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.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 Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n FunctionalElementProps, IModel, InformationPartitionElementProps, ModelProps, RelatedElement, TypeDefinitionElementProps,\r\n} from \"@itwin/core-common\";\r\nimport { InformationPartitionElement, RoleElement, TypeDefinitionElement } from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { RoleModel } from \"../Model\";\r\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\r\nimport { DrawingGraphicRepresentsElement, ElementRefersToElements } from \"../Relationship\";\r\n\r\n/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented\r\n * to a Subject and broken down by a FunctionalModel.\r\n * @public\r\n */\r\nexport class FunctionalPartition extends InformationPartitionElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalPartition\"; }\r\n /** @internal */\r\n public constructor(props: InformationPartitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A container for persisting FunctionalElements.\r\n * @public\r\n */\r\nexport class FunctionalModel extends RoleModel {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalModel\"; }\r\n public constructor(props: ModelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** Insert a FunctionalPartition and a FunctionalModel that breaks it down.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The FunctionalPartition will be inserted as a child of this Subject element.\r\n * @param name The name of the FunctionalPartition that the new FunctionalModel will break down.\r\n * @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: FunctionalPartition.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: FunctionalPartition.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n return iModelDb.models.insertModel({\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n });\r\n }\r\n}\r\n\r\n/** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement.\r\n * @public\r\n */\r\nexport abstract class FunctionalElement extends RoleElement implements FunctionalElementProps {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalElement\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalBreakdownElement is a *folder* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalBreakdownElement extends FunctionalElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalBreakdownElement\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class FunctionalComposite extends FunctionalBreakdownElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalComposite\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalComponentElement is a *leaf* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalComponentElement extends FunctionalElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalComponentElement\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Defines a set of properties (the 'type') that can be associated with a Functional Element.\r\n * @public\r\n */\r\nexport abstract class FunctionalType extends TypeDefinitionElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalType\"; }\r\n /** @internal */\r\n public constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Relates a [[FunctionalElement]] to its [[FunctionalType]]\r\n * @public\r\n */\r\nexport class FunctionalElementIsOfType extends RelatedElement {\r\n /** @internal */\r\n public static get className(): string { return \"FunctionalElementIsOfType\"; }\r\n public static classFullName = \"Functional:FunctionalElementIsOfType\";\r\n public constructor(id: Id64String, relClassName: string = FunctionalElementIsOfType.classFullName) {\r\n super({ id, relClassName });\r\n }\r\n}\r\n\r\n/** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills.\r\n * @public\r\n */\r\nexport class PhysicalElementFulfillsFunction extends ElementRefersToElements {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalElementFulfillsFunction\"; }\r\n}\r\n\r\n/** Relates a [[DrawingGraphic]] to the [[FunctionalElement]] that it represents\r\n * @public\r\n */\r\nexport class DrawingGraphicRepresentsFunctionalElement extends DrawingGraphicRepresentsElement {\r\n /** @internal */\r\n public static override get className(): string { return \"DrawingGraphicRepresentsFunctionalElement\"; }\r\n}\r\n"]}
1
+ {"version":3,"file":"FunctionalElements.js","sourceRoot":"","sources":["../../../src/domains/FunctionalElements.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 Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n FunctionalElementProps, IModel, InformationPartitionElementProps, ModelProps, RelatedElement, TypeDefinitionElementProps,\r\n} from \"@itwin/core-common\";\r\nimport { InformationPartitionElement, RoleElement, TypeDefinitionElement } from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { RoleModel } from \"../Model\";\r\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\r\nimport { DrawingGraphicRepresentsElement, ElementRefersToElements } from \"../Relationship\";\r\n\r\n/** A FunctionalPartition element is a key part of the iModel information hierarchy and is always parented\r\n * to a Subject and broken down by a FunctionalModel.\r\n * @public\r\n */\r\nexport class FunctionalPartition extends InformationPartitionElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalPartition\"; }\r\n /** @internal */\r\n public constructor(props: InformationPartitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A container for persisting FunctionalElements.\r\n * @public\r\n */\r\nexport class FunctionalModel extends RoleModel {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalModel\"; }\r\n public constructor(props: ModelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** Insert a FunctionalPartition and a FunctionalModel that breaks it down.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The FunctionalPartition will be inserted as a child of this Subject element.\r\n * @param name The name of the FunctionalPartition that the new FunctionalModel will break down.\r\n * @returns The Id of the newly inserted FunctionalPartition and FunctionalModel (same value).\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: FunctionalPartition.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: FunctionalPartition.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n return iModelDb.models.insertModel({\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n });\r\n }\r\n}\r\n\r\n/** A FunctionalElement captures functional requirements that will ultimately be fulfilled by a PhysicalElement.\r\n * @public\r\n */\r\nexport abstract class FunctionalElement extends RoleElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalElement\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalBreakdownElement is a *folder* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalBreakdownElement extends FunctionalElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalBreakdownElement\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class FunctionalComposite extends FunctionalBreakdownElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalComposite\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A FunctionalComponentElement is a *leaf* node in the functional hierarchy.\r\n * @public\r\n */\r\nexport abstract class FunctionalComponentElement extends FunctionalElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalComponentElement\"; }\r\n /** @internal */\r\n public constructor(props: FunctionalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Defines a set of properties (the 'type') that can be associated with a Functional Element.\r\n * @public\r\n */\r\nexport abstract class FunctionalType extends TypeDefinitionElement {\r\n /** @internal */\r\n public static override get className(): string { return \"FunctionalType\"; }\r\n /** @internal */\r\n public constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** Relates a [[FunctionalElement]] to its [[FunctionalType]]\r\n * @public\r\n */\r\nexport class FunctionalElementIsOfType extends RelatedElement {\r\n /** @internal */\r\n public static get className(): string { return \"FunctionalElementIsOfType\"; }\r\n public static classFullName = \"Functional:FunctionalElementIsOfType\";\r\n public constructor(id: Id64String, relClassName: string = FunctionalElementIsOfType.classFullName) {\r\n super({ id, relClassName });\r\n }\r\n}\r\n\r\n/** Relates a [[PhysicalElement]] to the [[FunctionalElement]] elements that it fulfills.\r\n * @public\r\n */\r\nexport class PhysicalElementFulfillsFunction extends ElementRefersToElements {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalElementFulfillsFunction\"; }\r\n}\r\n\r\n/** Relates a [[DrawingGraphic]] to the [[FunctionalElement]] that it represents\r\n * @public\r\n */\r\nexport class DrawingGraphicRepresentsFunctionalElement extends DrawingGraphicRepresentsElement {\r\n /** @internal */\r\n public static override get className(): string { return \"DrawingGraphicRepresentsFunctionalElement\"; }\r\n}\r\n"]}
@@ -26,7 +26,7 @@ export declare class TitleText extends DetailingSymbol {
26
26
  /** A graphical DetailingSymbol that contains a view attachment label.
27
27
  * @public
28
28
  */
29
- export declare class ViewAttachmentLabel extends DetailingSymbol implements ViewAttachmentLabelProps {
29
+ export declare class ViewAttachmentLabel extends DetailingSymbol {
30
30
  /** @internal */
31
31
  static get className(): string;
32
32
  constructor(props: ViewAttachmentLabelProps, iModel: IModelDb);
@@ -34,7 +34,7 @@ export declare class ViewAttachmentLabel extends DetailingSymbol implements View
34
34
  /** A graphical DetailingSymbol that calls out a reference to another drawing.
35
35
  * @public
36
36
  */
37
- export declare abstract class Callout extends DetailingSymbol implements CalloutProps {
37
+ export declare abstract class Callout extends DetailingSymbol {
38
38
  /** @internal */
39
39
  static get className(): string;
40
40
  constructor(props: CalloutProps, iModel: IModelDb);
@@ -1 +1 @@
1
- {"version":3,"file":"GenericElements.d.ts","sourceRoot":"","sources":["../../../src/domains/GenericElements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericElements.d.ts","sourceRoot":"","sources":["../../../src/domains/GenericElements.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,YAAY,EAAE,sBAAsB,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,qBAAqB,EACzF,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,wBAAwB,EAC5I,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAwB,eAAe,EAAE,uBAAuB,EAChH,eAAe,EAAE,YAAY,EAAE,sBAAsB,EACtD,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGnE;;GAEG;AACH,8BAAsB,eAAgB,SAAQ,kBAAkB;IAC9D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA8B;gBACzD,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,QAAQ;CAGpE;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,eAAe;IAC5C,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAwB;gBACnD,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,QAAQ;CAGpE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAkC;gBAC7D,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,QAAQ;CAGrE;AAED;;GAEG;AACH,8BAAsB,OAAQ,SAAQ,eAAe;IACnD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAsB;gBACjD,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,OAAO;IACzC,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA6B;gBACxD,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA+B;gBAC1D,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA0B;gBACrD,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA4B;gBACvD,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA+B;gBAC1D,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,QAAQ;IAGjE;;;;;;;OAOG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU;CAe5H;AAED;;;GAGG;AACH,qBAAa,SAAU,SAAQ,kBAAkB;IAC/C,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAwB;gBACnD,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,QAAQ;CAGpE;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA6B;gBACxD,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ;CAGjE;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,sBAAsB;IACzD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA8B;gBACzD,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,QAAQ;CAGpE;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,qBAAqB;IACnD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAyB;gBACpD,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ;IAGtD;;;;;;OAMG;WACW,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;CAahG;AAED;;GAEG;AACH,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAoB;gBAC/C,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAAuB;gBAClD,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ;CAGzD;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA+B;gBAC1D,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ;CAGnE;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA2B;gBACtD,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ;CAG9D;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,gBAAgB;IAChB,WAA2B,SAAS,IAAI,MAAM,CAA8B;gBACzD,KAAK,EAAE,0BAA0B,EAAE,MAAM,EAAE,QAAQ;CAGvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenericElements.js","sourceRoot":"","sources":["../../../src/domains/GenericElements.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,oDAG4B;AAC5B,wCAGoB;AAEpB,0CAA+C;AAC/C,oCAAmE;AACnE,sEAAyE;AAEzE;;GAEG;AACH,MAAsB,eAAgB,SAAQ,4BAAkB;IAC9D,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAC5E,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,0CAMC;AAED;;GAEG;AACH,MAAa,SAAU,SAAQ,eAAe;IAC5C,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC;IACtE,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,8BAMC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,eAAe;IACtD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,qBAAqB,CAAC,CAAC,CAAC;IAChF,YAAmB,KAA+B,EAAE,MAAgB;QAClE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,kDAMC;AAED;;GAEG;AACH,MAAsB,OAAQ,SAAQ,eAAe;IACnD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,SAAS,CAAC,CAAC,CAAC;IACpE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,0BAMC;AAED;;GAEG;AACH,MAAa,cAAe,SAAQ,OAAO;IACzC,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,gBAAgB,CAAC,CAAC,CAAC;IAC3E,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,wCAMC;AAED;;GAEG;AACH,MAAa,gBAAiB,SAAQ,OAAO;IAC3C,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC7E,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,4CAMC;AAED;;GAEG;AACH,MAAa,WAAY,SAAQ,OAAO;IACtC,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,aAAa,CAAC,CAAC,CAAC;IACxE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,kCAMC;AAED;;GAEG;AACH,MAAa,aAAc,SAAQ,OAAO;IACxC,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,eAAe,CAAC,CAAC,CAAC;IAC1E,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,sCAMC;AAED;;GAEG;AACH,MAAa,uBAAwB,SAAQ,wBAAgB;IAC3D,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC7E,YAAmB,KAA4B,EAAE,MAAgB;QAC/D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;IACD;;;;;;;OAOG;IACI,MAAM,CAAC,MAAM,CAAC,QAAkB,EAAE,eAA2B,EAAE,IAAY,EAAE,gBAA0B;QAC5G,MAAM,cAAc,GAAqC;YACvD,aAAa,EAAE,8BAAoB,CAAC,aAAa;YACjD,KAAK,EAAE,oBAAM,CAAC,iBAAiB;YAC/B,MAAM,EAAE,IAAI,qDAA4B,CAAC,eAAe,CAAC;YACzD,IAAI,EAAE,8BAAoB,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;SACvE,CAAC;QACF,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,UAAU,GAA0B;YACxC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;YACnC,gBAAgB;SACjB,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;CACF;AA7BD,0DA6BC;AAED;;;GAGG;AACH,MAAa,SAAU,SAAQ,4BAAkB;IAC/C,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC;IACtE,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,8BAMC;AAED;;;GAGG;AACH,MAAa,cAAe,SAAQ,yBAAe;IACjD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,gBAAgB,CAAC,CAAC,CAAC;IAC3E,YAAmB,KAA2B,EAAE,MAAgB;QAC9D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,wCAMC;AAED;;;GAGG;AACH,MAAa,eAAgB,SAAQ,gCAAsB;IACzD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAC5E,YAAmB,KAA8B,EAAE,MAAgB;QACjE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,0CAMC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,6BAAqB;IACnD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,YAAY,CAAC,CAAC,CAAC;IACvE,YAAmB,KAAiB,EAAE,MAAgB;QACpD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;IACD;;;;;;OAMG;IACI,MAAM,CAAC,MAAM,CAAC,QAAkB,EAAE,eAA2B,EAAE,IAAY;QAChF,MAAM,cAAc,GAAqC;YACvD,aAAa,EAAE,mCAAyB,CAAC,aAAa;YACtD,KAAK,EAAE,oBAAM,CAAC,iBAAiB;YAC/B,MAAM,EAAE,IAAI,qDAA4B,CAAC,eAAe,CAAC;YACzD,IAAI,EAAE,mCAAyB,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC;SAC5E,CAAC;QACF,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AA1BD,gCA0BC;AAED;;GAEG;AACH,MAAa,KAAM,SAAQ,iCAAuB;IAChD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,OAAO,CAAC,CAAC,CAAC;IAClE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,sBAMC;AAED;;;GAGG;AACH,MAAa,eAAgB,SAAQ,kBAAQ;IAC3C,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,UAAU,CAAC,CAAC,CAAC;IACrE,YAAmB,KAAmB,EAAE,MAAgB;QACtD,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,0CAMC;AAED;;;GAGG;AACH,MAAa,uBAAwB,SAAQ,2BAAgB;IAC3D,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,kBAAkB,CAAC,CAAC,CAAC;IAC7E,YAAmB,KAA6B,EAAE,MAAgB;QAChE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,0DAMC;AAED;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,sBAAY;IACnD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,cAAc,CAAC,CAAC,CAAC;IACzE,YAAmB,KAAwB,EAAE,MAAgB;QAC3D,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,kDAMC;AAED;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,yBAAe;IACzD,gBAAgB;IACT,MAAM,KAAc,SAAS,KAAa,OAAO,iBAAiB,CAAC,CAAC,CAAC;IAC5E,YAAmB,KAAiC,EAAE,MAAgB;QACpE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvB,CAAC;CACF;AAND,wDAMC","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 Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n CalloutProps, DefinitionElementProps, ElementProps, GeometricElement2dProps, GeometricElement3dProps, GeometricModel3dProps, IModel,\r\n InformationPartitionElementProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, TypeDefinitionElementProps, ViewAttachmentLabelProps,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n Document, GraphicalElement2d, GraphicalElement3d, GraphicalPartition3d, GraphicalType2d, GroupInformationElement, GroupInformationPartition,\r\n PhysicalElement, PhysicalType, SpatialLocationElement,\r\n} from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { PhysicalMaterial } from \"../Material\";\r\nimport { GraphicalModel3d, GroupInformationModel } from \"../Model\";\r\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\r\n\r\n/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].\r\n * @public\r\n */\r\nexport abstract class DetailingSymbol extends GraphicalElement2d {\r\n /** @internal */\r\n public static override get className(): string { return \"DetailingSymbol\"; }\r\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical DetailingSymbol that contains title text.\r\n * @public\r\n */\r\nexport class TitleText extends DetailingSymbol {\r\n /** @internal */\r\n public static override get className(): string { return \"TitleText\"; }\r\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical DetailingSymbol that contains a view attachment label.\r\n * @public\r\n */\r\nexport class ViewAttachmentLabel extends DetailingSymbol implements ViewAttachmentLabelProps {\r\n /** @internal */\r\n public static override get className(): string { return \"ViewAttachmentLabel\"; }\r\n public constructor(props: ViewAttachmentLabelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical DetailingSymbol that calls out a reference to another drawing.\r\n * @public\r\n */\r\nexport abstract class Callout extends DetailingSymbol implements CalloutProps {\r\n /** @internal */\r\n public static override get className(): string { return \"Callout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references a section drawing.\r\n * @public\r\n */\r\nexport class SectionCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"SectionCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references an elevation drawing.\r\n * @public\r\n */\r\nexport class ElevationCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"ElevationCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references a plan drawing.\r\n * @public\r\n */\r\nexport class PlanCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"PlanCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references a detail drawing.\r\n * @public\r\n */\r\nexport class DetailCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"DetailCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A generic container for persisting BisCore:GraphicalElement3d instances.\r\n * @public\r\n */\r\nexport class GenericGraphicalModel3d extends GraphicalModel3d {\r\n /** @internal */\r\n public static override get className(): string { return \"GraphicalModel3d\"; }\r\n public constructor(props: GeometricModel3dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The GraphicalPartition3d will be inserted as a child of this Subject element.\r\n * @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.\r\n * @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.\r\n * @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: GraphicalPartition3d.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: GraphicalPartition3d.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n const modelProps: GeometricModel3dProps = {\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n isPlanProjection,\r\n };\r\n return iModelDb.models.insertModel(modelProps);\r\n }\r\n}\r\n\r\n/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.\r\n * @note More-specific BisCore:GraphicalElement3d subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class Graphic3d extends GraphicalElement3d {\r\n /** @internal */\r\n public static override get className(): string { return \"Graphic3d\"; }\r\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:PhysicalObject class is used when physical elements cannot be further classified.\r\n * @note More-specific BisCore:PhysicalElement subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class PhysicalObject extends PhysicalElement {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalObject\"; }\r\n public constructor(props: PhysicalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:SpatialLocation class is used when spatial locations cannot be further classified.\r\n * @note More-specific BisCore:SpatialLocationElement subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class SpatialLocation extends SpatialLocationElement {\r\n /** @internal */\r\n public static override get className(): string { return \"SpatialLocation\"; }\r\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A generic container for BisCore:GroupInformationElement instances.\r\n * @public\r\n */\r\nexport class GroupModel extends GroupInformationModel {\r\n /** @internal */\r\n public static override get className(): string { return \"GroupModel\"; }\r\n public constructor(props: ModelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** Insert a GroupInformationPartition and a GroupModel that breaks it down.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The GroupInformationPartition will be inserted as a child of this Subject element.\r\n * @param name The name of the GroupInformationPartition that the new GroupModel will break down.\r\n * @returns The Id of the newly inserted GroupModel.\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: GroupInformationPartition.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: GroupInformationPartition.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n return iModelDb.models.insertModel({\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n });\r\n }\r\n}\r\n\r\n/** The Generic:Group class is used when the group cannot be further classified.\r\n * @public\r\n */\r\nexport class Group extends GroupInformationElement {\r\n /** @internal */\r\n public static override get className(): string { return \"Group\"; }\r\n public constructor(props: ElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:Document class is used when a document cannot be further classified.\r\n * @note More-specific BisCore:Document subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericDocument extends Document {\r\n /** @internal */\r\n public static override get className(): string { return \"Document\"; }\r\n public constructor(props: ElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:PhysicalMaterial class is used when the physical material cannot be further classified.\r\n * @note More-specific BisCore:PhysicalMaterial subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericPhysicalMaterial extends PhysicalMaterial {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalMaterial\"; }\r\n public constructor(props: DefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:PhysicalType class is used when the physical type cannot be further classified.\r\n * @note More-specific BisCore:PhysicalType subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericPhysicalType extends PhysicalType {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalType\"; }\r\n public constructor(props: PhysicalTypeProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:GraphicalType2d class is used when graphical types cannot be further classified.\r\n * @note More-specific BisCore:GraphicalType2d subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericGraphicalType2d extends GraphicalType2d {\r\n /** @internal */\r\n public static override get className(): string { return \"GraphicalType2d\"; }\r\n public constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"GenericElements.js","sourceRoot":"","sources":["../../../src/domains/GenericElements.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 Elements\r\n */\r\n\r\nimport { Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n CalloutProps, DefinitionElementProps, ElementProps, GeometricElement2dProps, GeometricElement3dProps, GeometricModel3dProps, IModel,\r\n InformationPartitionElementProps, ModelProps, PhysicalElementProps, PhysicalTypeProps, TypeDefinitionElementProps, ViewAttachmentLabelProps,\r\n} from \"@itwin/core-common\";\r\nimport {\r\n Document, GraphicalElement2d, GraphicalElement3d, GraphicalPartition3d, GraphicalType2d, GroupInformationElement, GroupInformationPartition,\r\n PhysicalElement, PhysicalType, SpatialLocationElement,\r\n} from \"../Element\";\r\nimport { IModelDb } from \"../IModelDb\";\r\nimport { PhysicalMaterial } from \"../Material\";\r\nimport { GraphicalModel3d, GroupInformationModel } from \"../Model\";\r\nimport { SubjectOwnsPartitionElements } from \"../NavigationRelationship\";\r\n\r\n/** A graphical detailing symbol that is placed on a [[Drawing]] or [[Sheet]].\r\n * @public\r\n */\r\nexport abstract class DetailingSymbol extends GraphicalElement2d {\r\n /** @internal */\r\n public static override get className(): string { return \"DetailingSymbol\"; }\r\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical DetailingSymbol that contains title text.\r\n * @public\r\n */\r\nexport class TitleText extends DetailingSymbol {\r\n /** @internal */\r\n public static override get className(): string { return \"TitleText\"; }\r\n public constructor(props: GeometricElement2dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical DetailingSymbol that contains a view attachment label.\r\n * @public\r\n */\r\nexport class ViewAttachmentLabel extends DetailingSymbol {\r\n /** @internal */\r\n public static override get className(): string { return \"ViewAttachmentLabel\"; }\r\n public constructor(props: ViewAttachmentLabelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical DetailingSymbol that calls out a reference to another drawing.\r\n * @public\r\n */\r\nexport abstract class Callout extends DetailingSymbol {\r\n /** @internal */\r\n public static override get className(): string { return \"Callout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references a section drawing.\r\n * @public\r\n */\r\nexport class SectionCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"SectionCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references an elevation drawing.\r\n * @public\r\n */\r\nexport class ElevationCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"ElevationCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references a plan drawing.\r\n * @public\r\n */\r\nexport class PlanCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"PlanCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A graphical Callout that references a detail drawing.\r\n * @public\r\n */\r\nexport class DetailCallout extends Callout {\r\n /** @internal */\r\n public static override get className(): string { return \"DetailCallout\"; }\r\n public constructor(props: CalloutProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A generic container for persisting BisCore:GraphicalElement3d instances.\r\n * @public\r\n */\r\nexport class GenericGraphicalModel3d extends GraphicalModel3d {\r\n /** @internal */\r\n public static override get className(): string { return \"GraphicalModel3d\"; }\r\n public constructor(props: GeometricModel3dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** Insert a BisCore:GraphicalPartition3d and a Generic:GraphicalModel3d that sub-models it.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The GraphicalPartition3d will be inserted as a child of this Subject element.\r\n * @param name The name of the GraphicalPartition3d that the new Generic:GraphicalModel3d will sub-model.\r\n * @param isPlanProjection Optional value (default is false) that indicates if the contents of this model are expected to be in an XY plane.\r\n * @returns The Id of the newly inserted GraphicalPartition3d and GraphicalModel3d (same value).\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string, isPlanProjection?: boolean): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: GraphicalPartition3d.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: GraphicalPartition3d.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n const modelProps: GeometricModel3dProps = {\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n isPlanProjection,\r\n };\r\n return iModelDb.models.insertModel(modelProps);\r\n }\r\n}\r\n\r\n/** The Generic:Graphic3d class is used when 3D graphics cannot be further classified.\r\n * @note More-specific BisCore:GraphicalElement3d subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class Graphic3d extends GraphicalElement3d {\r\n /** @internal */\r\n public static override get className(): string { return \"Graphic3d\"; }\r\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:PhysicalObject class is used when physical elements cannot be further classified.\r\n * @note More-specific BisCore:PhysicalElement subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class PhysicalObject extends PhysicalElement {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalObject\"; }\r\n public constructor(props: PhysicalElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:SpatialLocation class is used when spatial locations cannot be further classified.\r\n * @note More-specific BisCore:SpatialLocationElement subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class SpatialLocation extends SpatialLocationElement {\r\n /** @internal */\r\n public static override get className(): string { return \"SpatialLocation\"; }\r\n public constructor(props: GeometricElement3dProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** A generic container for BisCore:GroupInformationElement instances.\r\n * @public\r\n */\r\nexport class GroupModel extends GroupInformationModel {\r\n /** @internal */\r\n public static override get className(): string { return \"GroupModel\"; }\r\n public constructor(props: ModelProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n /** Insert a GroupInformationPartition and a GroupModel that breaks it down.\r\n * @param iModelDb Insert into this iModel\r\n * @param parentSubjectId The GroupInformationPartition will be inserted as a child of this Subject element.\r\n * @param name The name of the GroupInformationPartition that the new GroupModel will break down.\r\n * @returns The Id of the newly inserted GroupModel.\r\n * @throws [[IModelError]] if there is an insert problem.\r\n */\r\n public static insert(iModelDb: IModelDb, parentSubjectId: Id64String, name: string): Id64String {\r\n const partitionProps: InformationPartitionElementProps = {\r\n classFullName: GroupInformationPartition.classFullName,\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsPartitionElements(parentSubjectId),\r\n code: GroupInformationPartition.createCode(iModelDb, parentSubjectId, name),\r\n };\r\n const partitionId = iModelDb.elements.insertElement(partitionProps);\r\n return iModelDb.models.insertModel({\r\n classFullName: this.classFullName,\r\n modeledElement: { id: partitionId },\r\n });\r\n }\r\n}\r\n\r\n/** The Generic:Group class is used when the group cannot be further classified.\r\n * @public\r\n */\r\nexport class Group extends GroupInformationElement {\r\n /** @internal */\r\n public static override get className(): string { return \"Group\"; }\r\n public constructor(props: ElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:Document class is used when a document cannot be further classified.\r\n * @note More-specific BisCore:Document subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericDocument extends Document {\r\n /** @internal */\r\n public static override get className(): string { return \"Document\"; }\r\n public constructor(props: ElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:PhysicalMaterial class is used when the physical material cannot be further classified.\r\n * @note More-specific BisCore:PhysicalMaterial subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericPhysicalMaterial extends PhysicalMaterial {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalMaterial\"; }\r\n public constructor(props: DefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:PhysicalType class is used when the physical type cannot be further classified.\r\n * @note More-specific BisCore:PhysicalType subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericPhysicalType extends PhysicalType {\r\n /** @internal */\r\n public static override get className(): string { return \"PhysicalType\"; }\r\n public constructor(props: PhysicalTypeProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n\r\n/** The Generic:GraphicalType2d class is used when graphical types cannot be further classified.\r\n * @note More-specific BisCore:GraphicalType2d subclasses should be used wherever possible.\r\n * @public\r\n */\r\nexport class GenericGraphicalType2d extends GraphicalType2d {\r\n /** @internal */\r\n public static override get className(): string { return \"GraphicalType2d\"; }\r\n public constructor(props: TypeDefinitionElementProps, iModel: IModelDb) {\r\n super(props, iModel);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelReadRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/rpc-impl/IModelReadRpcImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelReadRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/rpc-impl/IModelReadRpcImpl.ts"],"names":[],"mappings":"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"}
@@ -16,25 +16,34 @@ const ConcurrentQuery_1 = require("../ConcurrentQuery");
16
16
  const GeometrySummary_1 = require("../GeometrySummary");
17
17
  const RpcBriefcaseUtility_1 = require("./RpcBriefcaseUtility");
18
18
  const RpcBackend_1 = require("../RpcBackend");
19
+ const BackendLoggerCategory_1 = require("../BackendLoggerCategory");
19
20
  /** The backend implementation of IModelReadRpcInterface.
20
21
  * @internal
21
22
  */
22
23
  class IModelReadRpcImpl extends core_common_1.RpcInterface {
23
24
  static register() { core_common_1.RpcManager.registerImpl(core_common_1.IModelReadRpcInterface, IModelReadRpcImpl); }
24
25
  async getConnectionProps(tokenProps) {
25
- return RpcBriefcaseUtility_1.RpcBriefcaseUtility.openWithTimeout(RpcBackend_1.RpcTrace.currentActivity, tokenProps, core_common_1.SyncMode.FixedVersion);
26
+ return RpcBriefcaseUtility_1.RpcBriefcaseUtility.openWithTimeout(RpcBackend_1.RpcTrace.expectCurrentActivity, tokenProps, core_common_1.SyncMode.FixedVersion);
26
27
  }
27
28
  async queryRows(tokenProps, request) {
28
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
29
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
30
+ if (iModelDb.isReadonly && request.usePrimaryConn === true) {
31
+ core_bentley_1.Logger.logWarning(BackendLoggerCategory_1.BackendLoggerCategory.IModelDb, "usePrimaryConn is only supported on imodel that is opened in read/write mode. The option will be ignored.", request);
32
+ request.usePrimaryConn = false;
33
+ }
29
34
  return ConcurrentQuery_1.ConcurrentQuery.executeQueryRequest(iModelDb.nativeDb, request);
30
35
  }
31
36
  async queryBlob(tokenProps, request) {
32
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
37
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
38
+ if (iModelDb.isReadonly && request.usePrimaryConn === true) {
39
+ core_bentley_1.Logger.logWarning(BackendLoggerCategory_1.BackendLoggerCategory.IModelDb, "usePrimaryConn is only supported on imodel that is opened in read/write mode. The option will be ignored.", request);
40
+ request.usePrimaryConn = false;
41
+ }
33
42
  return ConcurrentQuery_1.ConcurrentQuery.executeBlobRequest(iModelDb.nativeDb, request);
34
43
  }
35
44
  async queryModelRanges(tokenProps, modelIdsList) {
36
45
  const modelIds = new Set(modelIdsList);
37
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
46
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
38
47
  const ranges = [];
39
48
  for (const id of modelIds) {
40
49
  try {
@@ -54,7 +63,7 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
54
63
  }
55
64
  async getModelProps(tokenProps, modelIdsList) {
56
65
  const modelIds = new Set(modelIdsList);
57
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
66
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
58
67
  const modelJsonArray = [];
59
68
  for (const id of modelIds) {
60
69
  try {
@@ -74,7 +83,7 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
74
83
  }
75
84
  async getElementProps(tokenProps, elementIdsList) {
76
85
  const elementIds = new Set(elementIdsList);
77
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
86
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
78
87
  const elementProps = [];
79
88
  for (const id of elementIds) {
80
89
  try {
@@ -98,11 +107,11 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
98
107
  else {
99
108
  props.code = core_common_1.Code.fromJSON(identifier);
100
109
  }
101
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
110
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
102
111
  return iModelDb.elements.tryGetElementProps(props);
103
112
  }
104
113
  async getGeometrySummary(tokenProps, request) {
105
- const iModel = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
114
+ const iModel = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
106
115
  return (0, GeometrySummary_1.generateGeometrySummaries)(request, iModel);
107
116
  }
108
117
  async queryElementProps(tokenProps, params) {
@@ -111,12 +120,12 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
111
120
  return res;
112
121
  }
113
122
  async queryEntityIds(tokenProps, params) {
114
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
123
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
115
124
  const res = iModelDb.queryEntityIds(params);
116
125
  return [...res];
117
126
  }
118
127
  async getClassHierarchy(tokenProps, classFullName) {
119
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
128
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
120
129
  const classArray = [];
121
130
  while (true) {
122
131
  const classMetaData = iModelDb.getMetaData(classFullName);
@@ -129,7 +138,7 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
129
138
  }
130
139
  async getAllCodeSpecs(tokenProps) {
131
140
  const codeSpecs = [];
132
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
141
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
133
142
  iModelDb.withPreparedStatement("SELECT ECInstanceId AS id, name, jsonProperties FROM BisCore.CodeSpec", (statement) => {
134
143
  for (const row of statement)
135
144
  codeSpecs.push({ id: row.id, name: row.name, jsonProperties: JSON.parse(row.jsonProperties) });
@@ -137,37 +146,37 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
137
146
  return codeSpecs;
138
147
  }
139
148
  async getViewStateData(tokenProps, viewDefinitionId, options) {
140
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
149
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
141
150
  return iModelDb.views.getViewStateData(viewDefinitionId, options);
142
151
  }
143
152
  async readFontJson(tokenProps) {
144
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
153
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
145
154
  return iModelDb.nativeDb.readFontMap();
146
155
  }
147
156
  async requestSnap(tokenProps, sessionId, props) {
148
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
157
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
149
158
  return iModelDb.requestSnap(sessionId, props);
150
159
  }
151
160
  async cancelSnap(tokenProps, sessionId) {
152
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
161
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
153
162
  return iModelDb.cancelSnap(sessionId);
154
163
  }
155
164
  async getGeometryContainment(tokenProps, props) {
156
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
165
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
157
166
  return iModelDb.getGeometryContainment(props);
158
167
  }
159
168
  async getMassProperties(tokenProps, props) {
160
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
169
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
161
170
  return iModelDb.getMassProperties(props);
162
171
  }
163
172
  async getToolTipMessage(tokenProps, id) {
164
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
173
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
165
174
  const el = iModelDb.elements.getElement(id);
166
175
  return (el === undefined) ? [] : el.getToolTipMessage();
167
176
  }
168
177
  /** Send a view thumbnail to the frontend. This is a binary transfer with the metadata in a 16-byte prefix header. */
169
178
  async getViewThumbnail(tokenProps, viewId) {
170
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
179
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
171
180
  const thumbnail = iModelDb.views.getThumbnail(viewId);
172
181
  if (undefined === thumbnail || 0 === thumbnail.image.length)
173
182
  throw new core_common_1.NoContentError();
@@ -177,7 +186,7 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
177
186
  return val;
178
187
  }
179
188
  async getDefaultViewId(tokenProps) {
180
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
189
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
181
190
  const spec = { namespace: "dgn_View", name: "DefaultView" };
182
191
  const blob = iModelDb.queryFilePropertyBlob(spec);
183
192
  if (undefined === blob || 8 !== blob.length)
@@ -186,20 +195,20 @@ class IModelReadRpcImpl extends core_common_1.RpcInterface {
186
195
  return core_bentley_1.Id64.fromUint32Pair(view[0], view[1]);
187
196
  }
188
197
  async getSpatialCategoryId(tokenProps, categoryName) {
189
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
198
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
190
199
  const dictionary = iModelDb.models.getModel(core_common_1.IModel.dictionaryId);
191
200
  return Category_1.SpatialCategory.queryCategoryIdByName(iModelDb, dictionary.id, categoryName);
192
201
  }
193
202
  async getIModelCoordinatesFromGeoCoordinates(tokenProps, props) {
194
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
203
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
195
204
  return iModelDb.getIModelCoordinatesFromGeoCoordinates(props);
196
205
  }
197
206
  async getGeoCoordinatesFromIModelCoordinates(tokenProps, props) {
198
- const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
207
+ const iModelDb = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
199
208
  return iModelDb.getGeoCoordinatesFromIModelCoordinates(props);
200
209
  }
201
210
  async queryTextureData(tokenProps, textureLoadProps) {
202
- const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
211
+ const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
203
212
  return db.queryTextureData(textureLoadProps);
204
213
  }
205
214
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IModelReadRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/IModelReadRpcImpl.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 RpcInterface\r\n */\r\n\r\nimport { GuidString, Id64, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport {\r\n Code, CodeProps, DbBlobRequest, DbBlobResponse, DbQueryRequest, DbQueryResponse, ElementLoadOptions, ElementLoadProps, ElementProps, EntityMetaData,\r\n EntityQueryParams, FontMapProps, GeoCoordinatesRequestProps, GeoCoordinatesResponseProps, GeometryContainmentRequestProps,\r\n GeometryContainmentResponseProps, GeometrySummaryRequestProps, ImageSourceFormat, IModel, IModelConnectionProps, IModelCoordinatesRequestProps,\r\n IModelCoordinatesResponseProps, IModelError, IModelReadRpcInterface, IModelRpcOpenProps, IModelRpcProps, MassPropertiesRequestProps,\r\n MassPropertiesResponseProps, ModelProps, NoContentError, RpcInterface, RpcManager, SnapRequestProps, SnapResponseProps, SyncMode,\r\n TextureData, TextureLoadProps, ViewStateLoadProps, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { Range3d, Range3dProps } from \"@itwin/core-geometry\";\r\nimport { SpatialCategory } from \"../Category\";\r\nimport { ConcurrentQuery } from \"../ConcurrentQuery\";\r\nimport { generateGeometrySummaries } from \"../GeometrySummary\";\r\nimport { DictionaryModel } from \"../Model\";\r\nimport { RpcBriefcaseUtility } from \"./RpcBriefcaseUtility\";\r\nimport { RpcTrace } from \"../RpcBackend\";\r\n\r\n/** The backend implementation of IModelReadRpcInterface.\r\n * @internal\r\n */\r\nexport class IModelReadRpcImpl extends RpcInterface implements IModelReadRpcInterface {\r\n\r\n public static register() { RpcManager.registerImpl(IModelReadRpcInterface, IModelReadRpcImpl); }\r\n\r\n public async getConnectionProps(tokenProps: IModelRpcOpenProps): Promise<IModelConnectionProps> {\r\n return RpcBriefcaseUtility.openWithTimeout(RpcTrace.currentActivity!, tokenProps, SyncMode.FixedVersion);\r\n }\r\n\r\n public async queryRows(tokenProps: IModelRpcProps, request: DbQueryRequest): Promise<DbQueryResponse> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return ConcurrentQuery.executeQueryRequest(iModelDb.nativeDb, request);\r\n }\r\n public async queryBlob(tokenProps: IModelRpcProps, request: DbBlobRequest): Promise<DbBlobResponse> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return ConcurrentQuery.executeBlobRequest(iModelDb.nativeDb, request);\r\n }\r\n public async queryModelRanges(tokenProps: IModelRpcProps, modelIdsList: Id64String[]): Promise<Range3dProps[]> {\r\n const modelIds = new Set(modelIdsList);\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const ranges: Range3dProps[] = [];\r\n for (const id of modelIds) {\r\n try {\r\n ranges.push(iModelDb.nativeDb.queryModelExtents({ id }).modelExtents);\r\n } catch (err: any) {\r\n if ((err as IModelError).errorNumber === IModelStatus.NoGeometry) { // if there was no geometry, just return null range\r\n ranges.push(new Range3d());\r\n continue;\r\n }\r\n\r\n if (modelIds.size === 1)\r\n throw err; // if they're asking for more than one model, don't throw on error.\r\n continue;\r\n }\r\n }\r\n return ranges;\r\n }\r\n\r\n public async getModelProps(tokenProps: IModelRpcProps, modelIdsList: Id64String[]): Promise<ModelProps[]> {\r\n const modelIds = new Set(modelIdsList);\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const modelJsonArray: ModelProps[] = [];\r\n for (const id of modelIds) {\r\n try {\r\n const modelProps = iModelDb.models.getModelJson({ id });\r\n modelJsonArray.push(modelProps);\r\n } catch (error) {\r\n if (modelIds.size === 1)\r\n throw error; // if they're asking for more than one model, don't throw on error.\r\n }\r\n }\r\n return modelJsonArray;\r\n }\r\n\r\n public async queryModelProps(tokenProps: IModelRpcProps, params: EntityQueryParams): Promise<ModelProps[]> {\r\n const ids = await this.queryEntityIds(tokenProps, params);\r\n return this.getModelProps(tokenProps, [...ids]);\r\n }\r\n\r\n public async getElementProps(tokenProps: IModelRpcProps, elementIdsList: Id64String[]): Promise<ElementProps[]> {\r\n const elementIds = new Set(elementIdsList);\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const elementProps: ElementProps[] = [];\r\n for (const id of elementIds) {\r\n try {\r\n elementProps.push(iModelDb.elements.getElementJson({ id }));\r\n } catch (error) {\r\n if (elementIds.size === 1)\r\n throw error; // if they're asking for more than one element, don't throw on error.\r\n }\r\n }\r\n return elementProps;\r\n }\r\n\r\n public async loadElementProps(tokenProps: IModelRpcProps, identifier: Id64String | GuidString | CodeProps, options?: ElementLoadOptions): Promise<ElementProps | undefined> {\r\n const props: ElementLoadProps = options ? { ...options } : {};\r\n if (typeof identifier === \"string\") {\r\n if (Id64.isId64(identifier))\r\n props.id = identifier;\r\n else\r\n props.federationGuid = identifier;\r\n } else {\r\n props.code = Code.fromJSON(identifier);\r\n }\r\n\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.elements.tryGetElementProps(props);\r\n }\r\n\r\n public async getGeometrySummary(tokenProps: IModelRpcProps, request: GeometrySummaryRequestProps): Promise<string> {\r\n const iModel = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return generateGeometrySummaries(request, iModel);\r\n }\r\n\r\n public async queryElementProps(tokenProps: IModelRpcProps, params: EntityQueryParams): Promise<ElementProps[]> {\r\n const ids = await this.queryEntityIds(tokenProps, params);\r\n const res = this.getElementProps(tokenProps, [...ids]);\r\n return res;\r\n }\r\n\r\n public async queryEntityIds(tokenProps: IModelRpcProps, params: EntityQueryParams): Promise<Id64String[]> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const res = iModelDb.queryEntityIds(params);\r\n return [...res];\r\n }\r\n\r\n public async getClassHierarchy(tokenProps: IModelRpcProps, classFullName: string): Promise<string[]> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const classArray: string[] = [];\r\n while (true) {\r\n const classMetaData: EntityMetaData = iModelDb.getMetaData(classFullName);\r\n classArray.push(classFullName);\r\n if (!classMetaData.baseClasses || classMetaData.baseClasses.length === 0)\r\n break;\r\n\r\n classFullName = classMetaData.baseClasses[0];\r\n }\r\n return classArray;\r\n }\r\n\r\n public async getAllCodeSpecs(tokenProps: IModelRpcProps): Promise<any[]> {\r\n const codeSpecs: any[] = [];\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n iModelDb.withPreparedStatement(\"SELECT ECInstanceId AS id, name, jsonProperties FROM BisCore.CodeSpec\", (statement) => {\r\n for (const row of statement)\r\n codeSpecs.push({ id: row.id, name: row.name, jsonProperties: JSON.parse(row.jsonProperties) });\r\n });\r\n return codeSpecs;\r\n }\r\n\r\n public async getViewStateData(tokenProps: IModelRpcProps, viewDefinitionId: string, options?: ViewStateLoadProps): Promise<ViewStateProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.views.getViewStateData(viewDefinitionId, options);\r\n }\r\n\r\n public async readFontJson(tokenProps: IModelRpcProps): Promise<FontMapProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.nativeDb.readFontMap();\r\n }\r\n\r\n public async requestSnap(tokenProps: IModelRpcProps, sessionId: string, props: SnapRequestProps): Promise<SnapResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.requestSnap(sessionId, props);\r\n }\r\n\r\n public async cancelSnap(tokenProps: IModelRpcProps, sessionId: string): Promise<void> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.cancelSnap(sessionId);\r\n }\r\n\r\n public async getGeometryContainment(tokenProps: IModelRpcProps, props: GeometryContainmentRequestProps): Promise<GeometryContainmentResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.getGeometryContainment(props);\r\n }\r\n\r\n public async getMassProperties(tokenProps: IModelRpcProps, props: MassPropertiesRequestProps): Promise<MassPropertiesResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.getMassProperties(props);\r\n }\r\n\r\n public async getToolTipMessage(tokenProps: IModelRpcProps, id: string): Promise<string[]> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const el = iModelDb.elements.getElement(id);\r\n return (el === undefined) ? [] : el.getToolTipMessage();\r\n }\r\n\r\n /** Send a view thumbnail to the frontend. This is a binary transfer with the metadata in a 16-byte prefix header. */\r\n public async getViewThumbnail(tokenProps: IModelRpcProps, viewId: string): Promise<Uint8Array> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const thumbnail = iModelDb.views.getThumbnail(viewId);\r\n if (undefined === thumbnail || 0 === thumbnail.image.length)\r\n throw new NoContentError();\r\n\r\n const val = new Uint8Array(thumbnail.image.length + 16); // allocate a new buffer 16 bytes larger than the image size\r\n new Uint32Array(val.buffer, 0, 4).set([thumbnail.image.length, thumbnail.format === \"jpeg\" ? ImageSourceFormat.Jpeg : ImageSourceFormat.Png, thumbnail.width, thumbnail.height]); // Put the metadata in the first 16 bytes.\r\n val.set(thumbnail.image, 16); // put the image data at offset 16 after metadata\r\n return val;\r\n }\r\n\r\n public async getDefaultViewId(tokenProps: IModelRpcProps): Promise<Id64String> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const spec = { namespace: \"dgn_View\", name: \"DefaultView\" };\r\n const blob = iModelDb.queryFilePropertyBlob(spec);\r\n if (undefined === blob || 8 !== blob.length)\r\n return Id64.invalid;\r\n\r\n const view = new Uint32Array(blob.buffer);\r\n return Id64.fromUint32Pair(view[0], view[1]);\r\n }\r\n public async getSpatialCategoryId(tokenProps: IModelRpcProps, categoryName: string): Promise<Id64String | undefined> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n const dictionary: DictionaryModel = iModelDb.models.getModel<DictionaryModel>(IModel.dictionaryId);\r\n return SpatialCategory.queryCategoryIdByName(iModelDb, dictionary.id, categoryName);\r\n }\r\n\r\n public async getIModelCoordinatesFromGeoCoordinates(tokenProps: IModelRpcProps, props: IModelCoordinatesRequestProps): Promise<IModelCoordinatesResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.getIModelCoordinatesFromGeoCoordinates(props);\r\n }\r\n\r\n public async getGeoCoordinatesFromIModelCoordinates(tokenProps: IModelRpcProps, props: GeoCoordinatesRequestProps): Promise<GeoCoordinatesResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return iModelDb.getGeoCoordinatesFromIModelCoordinates(props);\r\n }\r\n\r\n public async queryTextureData(tokenProps: IModelRpcProps, textureLoadProps: TextureLoadProps): Promise<TextureData | undefined> {\r\n const db = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.currentActivity!.accessToken, tokenProps);\r\n return db.queryTextureData(textureLoadProps);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"IModelReadRpcImpl.js","sourceRoot":"","sources":["../../../src/rpc-impl/IModelReadRpcImpl.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 RpcInterface\r\n */\r\n\r\nimport { GuidString, Id64, Id64String, IModelStatus, Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n Code, CodeProps, DbBlobRequest, DbBlobResponse, DbQueryRequest, DbQueryResponse, ElementLoadOptions, ElementLoadProps, ElementProps, EntityMetaData,\r\n EntityQueryParams, FontMapProps, GeoCoordinatesRequestProps, GeoCoordinatesResponseProps, GeometryContainmentRequestProps,\r\n GeometryContainmentResponseProps, GeometrySummaryRequestProps, ImageSourceFormat, IModel, IModelConnectionProps, IModelCoordinatesRequestProps,\r\n IModelCoordinatesResponseProps, IModelError, IModelReadRpcInterface, IModelRpcOpenProps, IModelRpcProps, MassPropertiesRequestProps,\r\n MassPropertiesResponseProps, ModelProps, NoContentError, RpcInterface, RpcManager, SnapRequestProps, SnapResponseProps, SyncMode,\r\n TextureData, TextureLoadProps, ViewStateLoadProps, ViewStateProps,\r\n} from \"@itwin/core-common\";\r\nimport { Range3d, Range3dProps } from \"@itwin/core-geometry\";\r\nimport { SpatialCategory } from \"../Category\";\r\nimport { ConcurrentQuery } from \"../ConcurrentQuery\";\r\nimport { generateGeometrySummaries } from \"../GeometrySummary\";\r\nimport { DictionaryModel } from \"../Model\";\r\nimport { RpcBriefcaseUtility } from \"./RpcBriefcaseUtility\";\r\nimport { RpcTrace } from \"../RpcBackend\";\r\nimport { BackendLoggerCategory } from \"../BackendLoggerCategory\";\r\n\r\n/** The backend implementation of IModelReadRpcInterface.\r\n * @internal\r\n */\r\nexport class IModelReadRpcImpl extends RpcInterface implements IModelReadRpcInterface {\r\n\r\n public static register() { RpcManager.registerImpl(IModelReadRpcInterface, IModelReadRpcImpl); }\r\n\r\n public async getConnectionProps(tokenProps: IModelRpcOpenProps): Promise<IModelConnectionProps> {\r\n return RpcBriefcaseUtility.openWithTimeout(RpcTrace.expectCurrentActivity, tokenProps, SyncMode.FixedVersion);\r\n }\r\n\r\n public async queryRows(tokenProps: IModelRpcProps, request: DbQueryRequest): Promise<DbQueryResponse> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n if (iModelDb.isReadonly && request.usePrimaryConn === true) {\r\n Logger.logWarning(BackendLoggerCategory.IModelDb, \"usePrimaryConn is only supported on imodel that is opened in read/write mode. The option will be ignored.\", request);\r\n request.usePrimaryConn = false;\r\n }\r\n return ConcurrentQuery.executeQueryRequest(iModelDb.nativeDb, request);\r\n }\r\n public async queryBlob(tokenProps: IModelRpcProps, request: DbBlobRequest): Promise<DbBlobResponse> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n if (iModelDb.isReadonly && request.usePrimaryConn === true) {\r\n Logger.logWarning(BackendLoggerCategory.IModelDb, \"usePrimaryConn is only supported on imodel that is opened in read/write mode. The option will be ignored.\", request);\r\n request.usePrimaryConn = false;\r\n }\r\n return ConcurrentQuery.executeBlobRequest(iModelDb.nativeDb, request);\r\n }\r\n public async queryModelRanges(tokenProps: IModelRpcProps, modelIdsList: Id64String[]): Promise<Range3dProps[]> {\r\n const modelIds = new Set(modelIdsList);\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const ranges: Range3dProps[] = [];\r\n for (const id of modelIds) {\r\n try {\r\n ranges.push(iModelDb.nativeDb.queryModelExtents({ id }).modelExtents);\r\n } catch (err: any) {\r\n if ((err as IModelError).errorNumber === IModelStatus.NoGeometry) { // if there was no geometry, just return null range\r\n ranges.push(new Range3d());\r\n continue;\r\n }\r\n\r\n if (modelIds.size === 1)\r\n throw err; // if they're asking for more than one model, don't throw on error.\r\n continue;\r\n }\r\n }\r\n return ranges;\r\n }\r\n\r\n public async getModelProps(tokenProps: IModelRpcProps, modelIdsList: Id64String[]): Promise<ModelProps[]> {\r\n const modelIds = new Set(modelIdsList);\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const modelJsonArray: ModelProps[] = [];\r\n for (const id of modelIds) {\r\n try {\r\n const modelProps = iModelDb.models.getModelJson({ id });\r\n modelJsonArray.push(modelProps);\r\n } catch (error) {\r\n if (modelIds.size === 1)\r\n throw error; // if they're asking for more than one model, don't throw on error.\r\n }\r\n }\r\n return modelJsonArray;\r\n }\r\n\r\n public async queryModelProps(tokenProps: IModelRpcProps, params: EntityQueryParams): Promise<ModelProps[]> {\r\n const ids = await this.queryEntityIds(tokenProps, params);\r\n return this.getModelProps(tokenProps, [...ids]);\r\n }\r\n\r\n public async getElementProps(tokenProps: IModelRpcProps, elementIdsList: Id64String[]): Promise<ElementProps[]> {\r\n const elementIds = new Set(elementIdsList);\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const elementProps: ElementProps[] = [];\r\n for (const id of elementIds) {\r\n try {\r\n elementProps.push(iModelDb.elements.getElementJson({ id }));\r\n } catch (error) {\r\n if (elementIds.size === 1)\r\n throw error; // if they're asking for more than one element, don't throw on error.\r\n }\r\n }\r\n return elementProps;\r\n }\r\n\r\n public async loadElementProps(tokenProps: IModelRpcProps, identifier: Id64String | GuidString | CodeProps, options?: ElementLoadOptions): Promise<ElementProps | undefined> {\r\n const props: ElementLoadProps = options ? { ...options } : {};\r\n if (typeof identifier === \"string\") {\r\n if (Id64.isId64(identifier))\r\n props.id = identifier;\r\n else\r\n props.federationGuid = identifier;\r\n } else {\r\n props.code = Code.fromJSON(identifier);\r\n }\r\n\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.elements.tryGetElementProps(props);\r\n }\r\n\r\n public async getGeometrySummary(tokenProps: IModelRpcProps, request: GeometrySummaryRequestProps): Promise<string> {\r\n const iModel = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return generateGeometrySummaries(request, iModel);\r\n }\r\n\r\n public async queryElementProps(tokenProps: IModelRpcProps, params: EntityQueryParams): Promise<ElementProps[]> {\r\n const ids = await this.queryEntityIds(tokenProps, params);\r\n const res = this.getElementProps(tokenProps, [...ids]);\r\n return res;\r\n }\r\n\r\n public async queryEntityIds(tokenProps: IModelRpcProps, params: EntityQueryParams): Promise<Id64String[]> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const res = iModelDb.queryEntityIds(params);\r\n return [...res];\r\n }\r\n\r\n public async getClassHierarchy(tokenProps: IModelRpcProps, classFullName: string): Promise<string[]> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const classArray: string[] = [];\r\n while (true) {\r\n const classMetaData: EntityMetaData = iModelDb.getMetaData(classFullName);\r\n classArray.push(classFullName);\r\n if (!classMetaData.baseClasses || classMetaData.baseClasses.length === 0)\r\n break;\r\n\r\n classFullName = classMetaData.baseClasses[0];\r\n }\r\n return classArray;\r\n }\r\n\r\n public async getAllCodeSpecs(tokenProps: IModelRpcProps): Promise<any[]> {\r\n const codeSpecs: any[] = [];\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n iModelDb.withPreparedStatement(\"SELECT ECInstanceId AS id, name, jsonProperties FROM BisCore.CodeSpec\", (statement) => {\r\n for (const row of statement)\r\n codeSpecs.push({ id: row.id, name: row.name, jsonProperties: JSON.parse(row.jsonProperties) });\r\n });\r\n return codeSpecs;\r\n }\r\n\r\n public async getViewStateData(tokenProps: IModelRpcProps, viewDefinitionId: string, options?: ViewStateLoadProps): Promise<ViewStateProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.views.getViewStateData(viewDefinitionId, options);\r\n }\r\n\r\n public async readFontJson(tokenProps: IModelRpcProps): Promise<FontMapProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.nativeDb.readFontMap();\r\n }\r\n\r\n public async requestSnap(tokenProps: IModelRpcProps, sessionId: string, props: SnapRequestProps): Promise<SnapResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.requestSnap(sessionId, props);\r\n }\r\n\r\n public async cancelSnap(tokenProps: IModelRpcProps, sessionId: string): Promise<void> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.cancelSnap(sessionId);\r\n }\r\n\r\n public async getGeometryContainment(tokenProps: IModelRpcProps, props: GeometryContainmentRequestProps): Promise<GeometryContainmentResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.getGeometryContainment(props);\r\n }\r\n\r\n public async getMassProperties(tokenProps: IModelRpcProps, props: MassPropertiesRequestProps): Promise<MassPropertiesResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.getMassProperties(props);\r\n }\r\n\r\n public async getToolTipMessage(tokenProps: IModelRpcProps, id: string): Promise<string[]> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const el = iModelDb.elements.getElement(id);\r\n return (el === undefined) ? [] : el.getToolTipMessage();\r\n }\r\n\r\n /** Send a view thumbnail to the frontend. This is a binary transfer with the metadata in a 16-byte prefix header. */\r\n public async getViewThumbnail(tokenProps: IModelRpcProps, viewId: string): Promise<Uint8Array> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const thumbnail = iModelDb.views.getThumbnail(viewId);\r\n if (undefined === thumbnail || 0 === thumbnail.image.length)\r\n throw new NoContentError();\r\n\r\n const val = new Uint8Array(thumbnail.image.length + 16); // allocate a new buffer 16 bytes larger than the image size\r\n new Uint32Array(val.buffer, 0, 4).set([thumbnail.image.length, thumbnail.format === \"jpeg\" ? ImageSourceFormat.Jpeg : ImageSourceFormat.Png, thumbnail.width, thumbnail.height]); // Put the metadata in the first 16 bytes.\r\n val.set(thumbnail.image, 16); // put the image data at offset 16 after metadata\r\n return val;\r\n }\r\n\r\n public async getDefaultViewId(tokenProps: IModelRpcProps): Promise<Id64String> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const spec = { namespace: \"dgn_View\", name: \"DefaultView\" };\r\n const blob = iModelDb.queryFilePropertyBlob(spec);\r\n if (undefined === blob || 8 !== blob.length)\r\n return Id64.invalid;\r\n\r\n const view = new Uint32Array(blob.buffer);\r\n return Id64.fromUint32Pair(view[0], view[1]);\r\n }\r\n public async getSpatialCategoryId(tokenProps: IModelRpcProps, categoryName: string): Promise<Id64String | undefined> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n const dictionary: DictionaryModel = iModelDb.models.getModel<DictionaryModel>(IModel.dictionaryId);\r\n return SpatialCategory.queryCategoryIdByName(iModelDb, dictionary.id, categoryName);\r\n }\r\n\r\n public async getIModelCoordinatesFromGeoCoordinates(tokenProps: IModelRpcProps, props: IModelCoordinatesRequestProps): Promise<IModelCoordinatesResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.getIModelCoordinatesFromGeoCoordinates(props);\r\n }\r\n\r\n public async getGeoCoordinatesFromIModelCoordinates(tokenProps: IModelRpcProps, props: GeoCoordinatesRequestProps): Promise<GeoCoordinatesResponseProps> {\r\n const iModelDb = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return iModelDb.getGeoCoordinatesFromIModelCoordinates(props);\r\n }\r\n\r\n public async queryTextureData(tokenProps: IModelRpcProps, textureLoadProps: TextureLoadProps): Promise<TextureData | undefined> {\r\n const db = await RpcBriefcaseUtility.findOpenIModel(RpcTrace.expectCurrentActivity.accessToken, tokenProps);\r\n return db.queryTextureData(textureLoadProps);\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IModelTileRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/rpc-impl/IModelTileRpcImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAmC,SAAS,EAAU,MAAM,qBAAqB,CAAC;AACzF,OAAO,EACL,+BAA+B,EAAE,wBAAwB,EAAyB,2BAA2B,EAAE,cAAc,EAC7H,sBAAsB,EAAE,mBAAmB,EAAE,YAAY,EAAiD,qBAAqB,EAC/H,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EACvD,MAAM,oBAAoB,CAAC;AA6K5B,gBAAgB;AAChB,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,sBAAsB;WACrE,QAAQ;IAET,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI9F,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1F,mBAAmB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxI,mBAAmB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhG,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAY7H,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5C,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAIzD,gBAAgB;IACH,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CAIrI;AAED,gBAAgB;AAChB,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3H"}
1
+ {"version":3,"file":"IModelTileRpcImpl.d.ts","sourceRoot":"","sources":["../../../src/rpc-impl/IModelTileRpcImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAmC,SAAS,EAAU,MAAM,qBAAqB,CAAC;AACzF,OAAO,EACL,+BAA+B,EAAE,wBAAwB,EAAyB,2BAA2B,EAAE,cAAc,EAC7H,sBAAsB,EAAE,mBAAmB,EAAE,YAAY,EAAiD,qBAAqB,EAC/H,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EACvD,MAAM,oBAAoB,CAAC;AA8K5B,gBAAgB;AAChB,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,sBAAsB;WACrE,QAAQ;IAET,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI9F,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1F,mBAAmB,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxI,mBAAmB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAKhG,wBAAwB,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,+BAA+B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAa7H,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI5C,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAIzD,gBAAgB;IACH,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;CAIrI;AAED,gBAAgB;AAChB,wBAAsB,yBAAyB,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3H"}
@@ -60,6 +60,7 @@ class TileRequestMemoizer extends PromiseMemoizer_1.PromiseMemoizer {
60
60
  this.deleteMemoized(props);
61
61
  if (tileQP.isFulfilled) {
62
62
  this.log("completed", props);
63
+ (0, core_bentley_1.assert)(undefined !== tileQP.result);
63
64
  return tileQP.result;
64
65
  }
65
66
  (0, core_bentley_1.assert)(tileQP.isRejected);
@@ -93,16 +94,17 @@ class RequestTileTreePropsMemoizer extends TileRequestMemoizer {
93
94
  }
94
95
  }
95
96
  async function getTileContent(props) {
97
+ var _a;
96
98
  (0, core_bentley_1.assert)(undefined !== props.accessToken);
97
99
  const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(props.accessToken, props.tokenProps);
98
100
  const tile = await db.tiles.requestTileContent(props.treeId, props.contentId);
99
101
  // ###TODO: Verify the guid supplied by the front-end matches the guid stored in the model?
100
102
  if (IModelHost_1.IModelHost.usingExternalTileCache) {
101
- await IModelHost_1.IModelHost.tileUploader.cacheTile(props.tokenProps, props.treeId, props.contentId, tile.content, props.guid, {
103
+ await ((_a = IModelHost_1.IModelHost.tileUploader) === null || _a === void 0 ? void 0 : _a.cacheTile(props.tokenProps, props.treeId, props.contentId, tile.content, props.guid, {
102
104
  backendName: IModelHost_1.IModelHost.applicationId,
103
105
  tileGenerationTime: tile.elapsedSeconds.toString(),
104
106
  tileSize: tile.content.byteLength.toString(),
105
- });
107
+ }));
106
108
  return core_common_1.TileContentSource.ExternalCache;
107
109
  }
108
110
  return core_common_1.TileContentSource.Backend;
@@ -138,20 +140,20 @@ class RequestTileContentMemoizer extends TileRequestMemoizer {
138
140
  class IModelTileRpcImpl extends core_common_1.RpcInterface {
139
141
  static register() { core_common_1.RpcManager.registerImpl(core_common_1.IModelTileRpcInterface, IModelTileRpcImpl); }
140
142
  async requestTileTreeProps(tokenProps, treeId) {
141
- return RequestTileTreePropsMemoizer.perform({ accessToken: RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps, treeId });
143
+ return RequestTileTreePropsMemoizer.perform({ accessToken: RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps, treeId });
142
144
  }
143
145
  async purgeTileTrees(tokenProps, modelIds) {
144
146
  // `undefined` gets forwarded as `null`...
145
147
  if (null === modelIds)
146
148
  modelIds = undefined;
147
- const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
149
+ const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
148
150
  return db.nativeDb.purgeTileTrees(modelIds);
149
151
  }
150
152
  async generateTileContent(tokenProps, treeId, contentId, guid) {
151
- return RequestTileContentMemoizer.perform({ accessToken: RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps, treeId, contentId, guid });
153
+ return RequestTileContentMemoizer.perform({ accessToken: RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps, treeId, contentId, guid });
152
154
  }
153
155
  async retrieveTileContent(tokenProps, key) {
154
- const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, tokenProps);
156
+ const db = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, tokenProps);
155
157
  return db.tiles.getTileContent(key.treeId, key.contentId);
156
158
  }
157
159
  async getTileCacheContainerUrl(_tokenProps, id) {
@@ -161,6 +163,7 @@ class IModelTileRpcImpl extends core_common_1.RpcInterface {
161
163
  }
162
164
  const expiry = core_common_1.CloudStorageTileCache.getCache().supplyExpiryForContainerUrl(id);
163
165
  const clientIp = (IModelHost_1.IModelHost.restrictTileUrlsByClientIp && invocation.request.ip) ? invocation.request.ip : undefined;
166
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
164
167
  return IModelHost_1.IModelHost.tileCacheService.obtainContainerUrl(id, expiry, clientIp);
165
168
  }
166
169
  async isUsingExternalTileCache() {
@@ -171,7 +174,7 @@ class IModelTileRpcImpl extends core_common_1.RpcInterface {
171
174
  }
172
175
  /** @internal */
173
176
  async requestElementGraphics(rpcProps, request) {
174
- const iModel = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.currentActivity.accessToken, rpcProps);
177
+ const iModel = await RpcBriefcaseUtility_1.RpcBriefcaseUtility.findOpenIModel(RpcBackend_1.RpcTrace.expectCurrentActivity.accessToken, rpcProps);
175
178
  return iModel.generateElementGraphics(request);
176
179
  }
177
180
  }