@itwin/core-backend 5.1.0-dev.3 → 5.1.0-dev.32

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 (521) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js +1 -1
  5. package/lib/cjs/BisCoreSchema.js.map +1 -1
  6. package/lib/cjs/BlobContainerService.js.map +1 -1
  7. package/lib/cjs/BriefcaseManager.d.ts +10 -2
  8. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  9. package/lib/cjs/BriefcaseManager.js +12 -0
  10. package/lib/cjs/BriefcaseManager.js.map +1 -1
  11. package/lib/cjs/CatalogDb.js.map +1 -1
  12. package/lib/cjs/Category.d.ts +41 -4
  13. package/lib/cjs/Category.d.ts.map +1 -1
  14. package/lib/cjs/Category.js +77 -4
  15. package/lib/cjs/Category.js.map +1 -1
  16. package/lib/cjs/ChangeSummaryManager.js +2 -2
  17. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  18. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  19. package/lib/cjs/ChangesetECAdaptor.js +242 -242
  20. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  21. package/lib/cjs/ChannelControl.js.map +1 -1
  22. package/lib/cjs/CheckpointManager.js.map +1 -1
  23. package/lib/cjs/ClassRegistry.js +5 -5
  24. package/lib/cjs/ClassRegistry.js.map +1 -1
  25. package/lib/cjs/CloudSqlite.js +1 -1
  26. package/lib/cjs/CloudSqlite.js.map +1 -1
  27. package/lib/cjs/CodeService.js.map +1 -1
  28. package/lib/cjs/CodeSpecs.d.ts +1 -1
  29. package/lib/cjs/CodeSpecs.js +1 -1
  30. package/lib/cjs/CodeSpecs.js.map +1 -1
  31. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  32. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  33. package/lib/cjs/DevTools.js.map +1 -1
  34. package/lib/cjs/DisplayStyle.d.ts +9 -4
  35. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  36. package/lib/cjs/DisplayStyle.js +30 -3
  37. package/lib/cjs/DisplayStyle.js.map +1 -1
  38. package/lib/cjs/ECDb.js.map +1 -1
  39. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  40. package/lib/cjs/ECSqlStatement.js.map +1 -1
  41. package/lib/cjs/Element.d.ts +216 -60
  42. package/lib/cjs/Element.d.ts.map +1 -1
  43. package/lib/cjs/Element.js +560 -59
  44. package/lib/cjs/Element.js.map +1 -1
  45. package/lib/cjs/ElementAspect.d.ts +7 -7
  46. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  47. package/lib/cjs/ElementAspect.js +7 -7
  48. package/lib/cjs/ElementAspect.js.map +1 -1
  49. package/lib/cjs/ElementGraphics.js.map +1 -1
  50. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  51. package/lib/cjs/Entity.d.ts +43 -3
  52. package/lib/cjs/Entity.d.ts.map +1 -1
  53. package/lib/cjs/Entity.js +59 -1
  54. package/lib/cjs/Entity.js.map +1 -1
  55. package/lib/cjs/EntityReferences.js.map +1 -1
  56. package/lib/cjs/ExportGraphics.d.ts +54 -8
  57. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  58. package/lib/cjs/ExportGraphics.js +158 -59
  59. package/lib/cjs/ExportGraphics.js.map +1 -1
  60. package/lib/cjs/ExternalSource.js.map +1 -1
  61. package/lib/cjs/FontFile.js.map +1 -1
  62. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  63. package/lib/cjs/GeographicCRSServices.d.ts +6 -2
  64. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  65. package/lib/cjs/GeographicCRSServices.js +1 -1
  66. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  67. package/lib/cjs/GeometrySummary.js +47 -47
  68. package/lib/cjs/GeometrySummary.js.map +1 -1
  69. package/lib/cjs/IModelDb.d.ts +28 -43
  70. package/lib/cjs/IModelDb.d.ts.map +1 -1
  71. package/lib/cjs/IModelDb.js +177 -92
  72. package/lib/cjs/IModelDb.js.map +1 -1
  73. package/lib/cjs/IModelDbFonts.js.map +1 -1
  74. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  75. package/lib/cjs/IModelHost.d.ts +13 -0
  76. package/lib/cjs/IModelHost.d.ts.map +1 -1
  77. package/lib/cjs/IModelHost.js +6 -0
  78. package/lib/cjs/IModelHost.js.map +1 -1
  79. package/lib/cjs/IModelJsFs.js.map +1 -1
  80. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  81. package/lib/cjs/IpcHost.js.map +1 -1
  82. package/lib/cjs/LineStyle.js.map +1 -1
  83. package/lib/cjs/LocalHub.js +1 -1
  84. package/lib/cjs/LocalHub.js.map +1 -1
  85. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  86. package/lib/cjs/LockControl.js.map +1 -1
  87. package/lib/cjs/Material.d.ts +19 -0
  88. package/lib/cjs/Material.d.ts.map +1 -1
  89. package/lib/cjs/Material.js +29 -0
  90. package/lib/cjs/Material.js.map +1 -1
  91. package/lib/cjs/Model.d.ts +64 -28
  92. package/lib/cjs/Model.d.ts.map +1 -1
  93. package/lib/cjs/Model.js +115 -27
  94. package/lib/cjs/Model.js.map +1 -1
  95. package/lib/cjs/NativeAppStorage.js.map +1 -1
  96. package/lib/cjs/NativeHost.js.map +1 -1
  97. package/lib/cjs/NavigationRelationship.js.map +1 -1
  98. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  99. package/lib/cjs/PropertyStore.js.map +1 -1
  100. package/lib/cjs/Relationship.js.map +1 -1
  101. package/lib/cjs/RpcBackend.js.map +1 -1
  102. package/lib/cjs/SQLiteDb.js.map +1 -1
  103. package/lib/cjs/Schema.js.map +1 -1
  104. package/lib/cjs/SchemaSync.js.map +1 -1
  105. package/lib/cjs/SchemaUtils.js.map +1 -1
  106. package/lib/cjs/SheetIndex.js.map +1 -1
  107. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  108. package/lib/cjs/SqliteStatement.js.map +1 -1
  109. package/lib/cjs/Texture.d.ts +1 -1
  110. package/lib/cjs/Texture.js +1 -1
  111. package/lib/cjs/Texture.js.map +1 -1
  112. package/lib/cjs/TileStorage.js.map +1 -1
  113. package/lib/cjs/TxnManager.d.ts +4 -4
  114. package/lib/cjs/TxnManager.d.ts.map +1 -1
  115. package/lib/cjs/TxnManager.js +2 -1
  116. package/lib/cjs/TxnManager.js.map +1 -1
  117. package/lib/cjs/ViewDefinition.d.ts +140 -14
  118. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  119. package/lib/cjs/ViewDefinition.js +250 -14
  120. package/lib/cjs/ViewDefinition.js.map +1 -1
  121. package/lib/cjs/ViewStateHydrator.js +3 -3
  122. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  123. package/lib/cjs/ViewStore.js.map +1 -1
  124. package/lib/cjs/annotations/FrameGeometry.d.ts +52 -0
  125. package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
  126. package/lib/cjs/annotations/FrameGeometry.js +250 -0
  127. package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
  128. package/lib/cjs/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
  129. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
  130. package/lib/cjs/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +20 -26
  131. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
  132. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +31 -0
  133. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  134. package/lib/cjs/annotations/TextAnnotationGeometry.js +83 -0
  135. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
  136. package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
  137. package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
  138. package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +11 -68
  139. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
  140. package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +19 -7
  141. package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
  142. package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +19 -7
  143. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
  144. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  145. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  146. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  147. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  148. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  149. package/lib/cjs/core-backend.d.ts +5 -3
  150. package/lib/cjs/core-backend.d.ts.map +1 -1
  151. package/lib/cjs/core-backend.js +5 -6
  152. package/lib/cjs/core-backend.js.map +1 -1
  153. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  154. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  155. package/lib/cjs/domains/GenericElements.js.map +1 -1
  156. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  157. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  158. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  159. package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
  160. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
  161. package/lib/cjs/internal/ElementLRUCache.js +120 -0
  162. package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
  163. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  164. package/lib/cjs/internal/HubMock.js.map +1 -1
  165. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  166. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  167. package/lib/cjs/internal/NoLocks.js.map +1 -1
  168. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  169. package/lib/cjs/internal/Symbols.d.ts +1 -0
  170. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  171. package/lib/cjs/internal/Symbols.js +2 -1
  172. package/lib/cjs/internal/Symbols.js.map +1 -1
  173. package/lib/cjs/internal/cross-package.js.map +1 -1
  174. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  175. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  176. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  177. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  178. package/lib/cjs/rpc/multipart.js.map +1 -1
  179. package/lib/cjs/rpc/tracing.js.map +1 -1
  180. package/lib/cjs/rpc/web/logging.js.map +1 -1
  181. package/lib/cjs/rpc/web/request.js.map +1 -1
  182. package/lib/cjs/rpc/web/response.js.map +1 -1
  183. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  184. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +2 -2
  185. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  186. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  187. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  188. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  189. package/lib/cjs/workspace/Settings.js.map +1 -1
  190. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  191. package/lib/cjs/workspace/Workspace.js.map +1 -1
  192. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  193. package/lib/esm/BackendHubAccess.js.map +1 -1
  194. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  195. package/lib/esm/BisCoreSchema.js +1 -1
  196. package/lib/esm/BisCoreSchema.js.map +1 -1
  197. package/lib/esm/BlobContainerService.js.map +1 -1
  198. package/lib/esm/BriefcaseManager.d.ts +10 -2
  199. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  200. package/lib/esm/BriefcaseManager.js +12 -0
  201. package/lib/esm/BriefcaseManager.js.map +1 -1
  202. package/lib/esm/CatalogDb.js.map +1 -1
  203. package/lib/esm/Category.d.ts +41 -4
  204. package/lib/esm/Category.d.ts.map +1 -1
  205. package/lib/esm/Category.js +77 -4
  206. package/lib/esm/Category.js.map +1 -1
  207. package/lib/esm/ChangeSummaryManager.js +2 -2
  208. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  209. package/lib/esm/ChangedElementsDb.js.map +1 -1
  210. package/lib/esm/ChangesetECAdaptor.js +242 -242
  211. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  212. package/lib/esm/ChannelControl.js.map +1 -1
  213. package/lib/esm/CheckpointManager.js.map +1 -1
  214. package/lib/esm/ClassRegistry.js +5 -5
  215. package/lib/esm/ClassRegistry.js.map +1 -1
  216. package/lib/esm/CloudSqlite.js +1 -1
  217. package/lib/esm/CloudSqlite.js.map +1 -1
  218. package/lib/esm/CodeService.js.map +1 -1
  219. package/lib/esm/CodeSpecs.d.ts +1 -1
  220. package/lib/esm/CodeSpecs.js +1 -1
  221. package/lib/esm/CodeSpecs.js.map +1 -1
  222. package/lib/esm/ConcurrentQuery.js.map +1 -1
  223. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  224. package/lib/esm/DevTools.js.map +1 -1
  225. package/lib/esm/DisplayStyle.d.ts +9 -4
  226. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  227. package/lib/esm/DisplayStyle.js +30 -3
  228. package/lib/esm/DisplayStyle.js.map +1 -1
  229. package/lib/esm/ECDb.js.map +1 -1
  230. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  231. package/lib/esm/ECSqlStatement.js.map +1 -1
  232. package/lib/esm/Element.d.ts +216 -60
  233. package/lib/esm/Element.d.ts.map +1 -1
  234. package/lib/esm/Element.js +563 -62
  235. package/lib/esm/Element.js.map +1 -1
  236. package/lib/esm/ElementAspect.d.ts +7 -7
  237. package/lib/esm/ElementAspect.d.ts.map +1 -1
  238. package/lib/esm/ElementAspect.js +7 -7
  239. package/lib/esm/ElementAspect.js.map +1 -1
  240. package/lib/esm/ElementGraphics.js.map +1 -1
  241. package/lib/esm/ElementTreeWalker.js.map +1 -1
  242. package/lib/esm/Entity.d.ts +43 -3
  243. package/lib/esm/Entity.d.ts.map +1 -1
  244. package/lib/esm/Entity.js +59 -1
  245. package/lib/esm/Entity.js.map +1 -1
  246. package/lib/esm/EntityReferences.js.map +1 -1
  247. package/lib/esm/ExportGraphics.d.ts +54 -8
  248. package/lib/esm/ExportGraphics.d.ts.map +1 -1
  249. package/lib/esm/ExportGraphics.js +156 -58
  250. package/lib/esm/ExportGraphics.js.map +1 -1
  251. package/lib/esm/ExternalSource.js.map +1 -1
  252. package/lib/esm/FontFile.js.map +1 -1
  253. package/lib/esm/GeoCoordConfig.js.map +1 -1
  254. package/lib/esm/GeographicCRSServices.d.ts +6 -2
  255. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  256. package/lib/esm/GeographicCRSServices.js +1 -1
  257. package/lib/esm/GeographicCRSServices.js.map +1 -1
  258. package/lib/esm/GeometrySummary.js +47 -47
  259. package/lib/esm/GeometrySummary.js.map +1 -1
  260. package/lib/esm/IModelDb.d.ts +28 -43
  261. package/lib/esm/IModelDb.d.ts.map +1 -1
  262. package/lib/esm/IModelDb.js +180 -95
  263. package/lib/esm/IModelDb.js.map +1 -1
  264. package/lib/esm/IModelDbFonts.js.map +1 -1
  265. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  266. package/lib/esm/IModelHost.d.ts +13 -0
  267. package/lib/esm/IModelHost.d.ts.map +1 -1
  268. package/lib/esm/IModelHost.js +6 -0
  269. package/lib/esm/IModelHost.js.map +1 -1
  270. package/lib/esm/IModelJsFs.js.map +1 -1
  271. package/lib/esm/ImageSourceConversion.js.map +1 -1
  272. package/lib/esm/IpcHost.js.map +1 -1
  273. package/lib/esm/LineStyle.js.map +1 -1
  274. package/lib/esm/LocalHub.js +1 -1
  275. package/lib/esm/LocalHub.js.map +1 -1
  276. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  277. package/lib/esm/LockControl.js.map +1 -1
  278. package/lib/esm/Material.d.ts +19 -0
  279. package/lib/esm/Material.d.ts.map +1 -1
  280. package/lib/esm/Material.js +30 -1
  281. package/lib/esm/Material.js.map +1 -1
  282. package/lib/esm/Model.d.ts +64 -28
  283. package/lib/esm/Model.d.ts.map +1 -1
  284. package/lib/esm/Model.js +116 -28
  285. package/lib/esm/Model.js.map +1 -1
  286. package/lib/esm/NativeAppStorage.js.map +1 -1
  287. package/lib/esm/NativeHost.js.map +1 -1
  288. package/lib/esm/NavigationRelationship.js.map +1 -1
  289. package/lib/esm/PromiseMemoizer.js.map +1 -1
  290. package/lib/esm/PropertyStore.js.map +1 -1
  291. package/lib/esm/Relationship.js.map +1 -1
  292. package/lib/esm/RpcBackend.js.map +1 -1
  293. package/lib/esm/SQLiteDb.js.map +1 -1
  294. package/lib/esm/Schema.js.map +1 -1
  295. package/lib/esm/SchemaSync.js.map +1 -1
  296. package/lib/esm/SchemaUtils.js.map +1 -1
  297. package/lib/esm/SheetIndex.js.map +1 -1
  298. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  299. package/lib/esm/SqliteStatement.js.map +1 -1
  300. package/lib/esm/Texture.d.ts +1 -1
  301. package/lib/esm/Texture.js +1 -1
  302. package/lib/esm/Texture.js.map +1 -1
  303. package/lib/esm/TileStorage.js.map +1 -1
  304. package/lib/esm/TxnManager.d.ts +4 -4
  305. package/lib/esm/TxnManager.d.ts.map +1 -1
  306. package/lib/esm/TxnManager.js +2 -1
  307. package/lib/esm/TxnManager.js.map +1 -1
  308. package/lib/esm/ViewDefinition.d.ts +140 -14
  309. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  310. package/lib/esm/ViewDefinition.js +251 -15
  311. package/lib/esm/ViewDefinition.js.map +1 -1
  312. package/lib/esm/ViewStateHydrator.js +3 -3
  313. package/lib/esm/ViewStateHydrator.js.map +1 -1
  314. package/lib/esm/ViewStore.js.map +1 -1
  315. package/lib/esm/annotations/FrameGeometry.d.ts +52 -0
  316. package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
  317. package/lib/esm/annotations/FrameGeometry.js +245 -0
  318. package/lib/esm/annotations/FrameGeometry.js.map +1 -0
  319. package/lib/esm/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
  320. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
  321. package/lib/esm/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +22 -28
  322. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
  323. package/lib/esm/annotations/TextAnnotationGeometry.d.ts +31 -0
  324. package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  325. package/lib/esm/annotations/TextAnnotationGeometry.js +80 -0
  326. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
  327. package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
  328. package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
  329. package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +11 -68
  330. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
  331. package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +19 -7
  332. package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
  333. package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +19 -7
  334. package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
  335. package/lib/esm/core-backend.d.ts +5 -3
  336. package/lib/esm/core-backend.d.ts.map +1 -1
  337. package/lib/esm/core-backend.js +5 -3
  338. package/lib/esm/core-backend.js.map +1 -1
  339. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  340. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  341. package/lib/esm/domains/GenericElements.js.map +1 -1
  342. package/lib/esm/domains/GenericSchema.js.map +1 -1
  343. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  344. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  345. package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
  346. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
  347. package/lib/esm/internal/ElementLRUCache.js +116 -0
  348. package/lib/esm/internal/ElementLRUCache.js.map +1 -0
  349. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  350. package/lib/esm/internal/HubMock.js.map +1 -1
  351. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  352. package/lib/esm/internal/NativePlatform.js.map +1 -1
  353. package/lib/esm/internal/NoLocks.js.map +1 -1
  354. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  355. package/lib/esm/internal/Symbols.d.ts +1 -0
  356. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  357. package/lib/esm/internal/Symbols.js +1 -0
  358. package/lib/esm/internal/Symbols.js.map +1 -1
  359. package/lib/esm/internal/cross-package.js.map +1 -1
  360. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  361. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  362. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  363. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  364. package/lib/esm/rpc/multipart.js.map +1 -1
  365. package/lib/esm/rpc/tracing.js.map +1 -1
  366. package/lib/esm/rpc/web/logging.js.map +1 -1
  367. package/lib/esm/rpc/web/request.js.map +1 -1
  368. package/lib/esm/rpc/web/response.js.map +1 -1
  369. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  370. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +2 -2
  371. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  372. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  373. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  374. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  375. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  376. package/lib/esm/test/AttachDb.test.js +11 -11
  377. package/lib/esm/test/AttachDb.test.js.map +1 -1
  378. package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
  379. package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
  380. package/lib/esm/test/ElementLRUCache.test.js +212 -0
  381. package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
  382. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  383. package/lib/esm/test/IModelHost.test.js.map +1 -1
  384. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  385. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  386. package/lib/esm/test/IpcHost.test.js.map +1 -1
  387. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  388. package/lib/esm/test/PrintElementTree.js.map +1 -1
  389. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  390. package/lib/esm/test/RevisionUtility.js.map +1 -1
  391. package/lib/esm/test/SchemaUtils.test.js +25 -25
  392. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  393. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  394. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  395. package/lib/esm/test/TestUtils.js.map +1 -1
  396. package/lib/esm/test/annotations/TextAnnotation.test.js +190 -1025
  397. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  398. package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
  399. package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
  400. package/lib/esm/test/annotations/TextBlock.test.js +969 -0
  401. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
  402. package/lib/esm/test/categories/Category.test.js.map +1 -1
  403. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  404. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  405. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  406. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  407. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  408. package/lib/esm/test/ecdb/ECDb.test.js +86 -65
  409. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  410. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  411. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  412. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  413. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  414. package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -30
  415. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  416. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  417. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  418. package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
  419. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  420. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  421. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  422. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  423. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  424. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  425. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  426. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  427. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  428. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  429. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  430. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  431. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  432. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  433. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  434. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  435. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  436. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  437. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  438. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  439. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  440. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  441. package/lib/esm/test/imageData.js.map +1 -1
  442. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  443. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  444. package/lib/esm/test/imodel/IModel.test.js +68 -16
  445. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  446. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  447. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  448. package/lib/esm/test/index.js.map +1 -1
  449. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  450. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  451. package/lib/esm/test/misc/GeoServices.test.js +23 -9
  452. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  453. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  454. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  455. package/lib/esm/test/rpc/response.test.js.map +1 -1
  456. package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
  457. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  458. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  459. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  460. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  461. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  462. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  463. package/lib/esm/test/standalone/ChangesetReader.test.js +28 -28
  464. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  465. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  466. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  467. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  468. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  469. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  470. package/lib/esm/test/standalone/ExportGraphics.test.js +67 -15
  471. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  472. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  473. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  474. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  475. package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
  476. package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
  477. package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
  478. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
  479. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  480. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  481. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  482. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  483. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  484. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  485. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  486. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  487. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  488. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  489. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  490. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  491. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  492. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  493. package/lib/esm/test/standalone/SnapshotDb.test.js +20 -1
  494. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  495. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  496. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  497. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  498. package/lib/esm/test/standalone/TxnManager.test.js +1 -1
  499. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  500. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  501. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  502. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  503. package/lib/esm/workspace/Settings.js.map +1 -1
  504. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  505. package/lib/esm/workspace/Workspace.js.map +1 -1
  506. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  507. package/package.json +12 -12
  508. package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
  509. package/lib/cjs/TextAnnotationElement.js.map +0 -1
  510. package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
  511. package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
  512. package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
  513. package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
  514. package/lib/cjs/TextAnnotationLayout.js.map +0 -1
  515. package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
  516. package/lib/esm/TextAnnotationElement.js.map +0 -1
  517. package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
  518. package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
  519. package/lib/esm/TextAnnotationGeometry.js.map +0 -1
  520. package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
  521. package/lib/esm/TextAnnotationLayout.js.map +0 -1
@@ -38,7 +38,7 @@ const Symbols_1 = require("./internal/Symbols");
38
38
  * * [Element Fundamentals]($docs/bis/guide/fundamentals/element-fundamentals.md)
39
39
  * * [Working with schemas and elements in TypeScript]($docs/learning/backend/SchemasAndElementsInTypeScript.md)
40
40
  * * [Creating elements]($docs/learning/backend/CreateElements.md)
41
- * @public
41
+ * @public @preview
42
42
  */
43
43
  class Element extends Entity_1.Entity {
44
44
  static get className() { return "Element"; }
@@ -65,6 +65,51 @@ class Element extends Entity_1.Entity {
65
65
  this.userLabel = props.userLabel;
66
66
  this.jsonProperties = { ...props.jsonProperties }; // make sure we have our own copy
67
67
  }
68
+ /**
69
+ * Element custom HandledProps include 'codeValue', 'codeSpec', 'codeScope', 'model', 'parent', 'federationGuid', and 'lastMod'.
70
+ * @inheritdoc
71
+ * @beta
72
+ */
73
+ static _customHandledProps = [
74
+ { propertyName: "codeValue", source: "Class" },
75
+ { propertyName: "codeSpec", source: "Class" },
76
+ { propertyName: "codeScope", source: "Class" },
77
+ { propertyName: "model", source: "Class" },
78
+ { propertyName: "parent", source: "Class" },
79
+ { propertyName: "federationGuid", source: "Class" },
80
+ { propertyName: "lastMod", source: "Class" },
81
+ ];
82
+ /**
83
+ * Element deserializes 'codeValue', 'codeSpec', 'codeScope', 'model', 'parent', and 'federationGuid'.
84
+ * @inheritdoc
85
+ * @beta
86
+ */
87
+ static deserialize(props) {
88
+ const elProps = super.deserialize(props);
89
+ const instance = props.row;
90
+ elProps.code = { value: instance.codeValue ?? "", spec: instance.codeSpec.id, scope: instance.codeScope.id };
91
+ elProps.model = instance.model.id;
92
+ if (instance.parent)
93
+ elProps.parent = instance.parent;
94
+ if (instance.federationGuid)
95
+ elProps.federationGuid = instance.federationGuid;
96
+ return elProps;
97
+ }
98
+ /**
99
+ * Element serialize 'codeValue', 'codeSpec', 'codeScope', 'model', 'parent', and 'federationGuid'.
100
+ * @inheritdoc
101
+ * @beta
102
+ */
103
+ static serialize(props, iModel) {
104
+ const inst = super.serialize(props, iModel);
105
+ inst.codeValue = props.code.value;
106
+ inst.codeSpec = { id: props.code.spec };
107
+ inst.codeScope = { id: props.code.scope };
108
+ inst.model = { id: props.model };
109
+ inst.parent = props.parent;
110
+ inst.federationGuid = props.federationGuid ?? iModel[Symbols_1._nativeDb].newBeGuid();
111
+ return inst;
112
+ }
68
113
  /** Called before a new Element is inserted.
69
114
  * @note throw an exception to disallow the insert
70
115
  * @note If you override this method, you must call super.
@@ -89,6 +134,7 @@ class Element extends Entity_1.Entity {
89
134
  const locks = arg.iModel.locks;
90
135
  if (locks && !locks.holdsExclusiveLock(arg.model))
91
136
  locks[Symbols_1._elementWasCreated](arg.id);
137
+ arg.iModel.models[Symbols_1._cache].delete(arg.model);
92
138
  }
93
139
  /** Called before an Element is updated.
94
140
  * @note throw an exception to disallow the update
@@ -107,7 +153,10 @@ class Element extends Entity_1.Entity {
107
153
  * @note `this` is the class of the Element that was updated
108
154
  * @beta
109
155
  */
110
- static onUpdated(_arg) { }
156
+ static onUpdated(arg) {
157
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.id });
158
+ arg.iModel.models[Symbols_1._cache].delete(arg.model);
159
+ }
111
160
  /** Called before an Element is deleted.
112
161
  * @note throw an exception to disallow the delete
113
162
  * @note If you override this method, you must call super.
@@ -123,7 +172,10 @@ class Element extends Entity_1.Entity {
123
172
  * @note `this` is the class of the Element that was deleted
124
173
  * @beta
125
174
  */
126
- static onDeleted(_arg) { }
175
+ static onDeleted(arg) {
176
+ arg.iModel.elements[Symbols_1._cache].delete(arg);
177
+ arg.iModel.models[Symbols_1._cache].delete(arg.model);
178
+ }
127
179
  /** Called when an element with an instance of this class as its parent is about to be deleted.
128
180
  * @note throw an exception if the element should not be deleted
129
181
  * @note implementers should not presume that the element was deleted if this method does not throw,
@@ -136,7 +188,10 @@ class Element extends Entity_1.Entity {
136
188
  * @note `this` is the class of the parent Element whose child was deleted
137
189
  * @beta
138
190
  */
139
- static onChildDeleted(_arg) { }
191
+ static onChildDeleted(arg) {
192
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.parentId });
193
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.childId });
194
+ }
140
195
  /** Called when a *new element* with an instance of this class as its parent is about to be inserted.
141
196
  * @note throw an exception if the element should not be inserted
142
197
  * @note `this` is the class of the prospective parent Element.
@@ -147,7 +202,9 @@ class Element extends Entity_1.Entity {
147
202
  * @note `this` is the class of the parent Element.
148
203
  * @beta
149
204
  */
150
- static onChildInserted(_arg) { }
205
+ static onChildInserted(arg) {
206
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.parentId });
207
+ }
151
208
  /** Called when an element with an instance of this class as its parent is about to be updated.
152
209
  * @note throw an exception if the element should not be updated
153
210
  * @note `this` is the class of the parent Element.
@@ -158,7 +215,9 @@ class Element extends Entity_1.Entity {
158
215
  * @note `this` is the class of the parent Element.
159
216
  * @beta
160
217
  */
161
- static onChildUpdated(_arg) { }
218
+ static onChildUpdated(arg) {
219
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.parentId });
220
+ }
162
221
  /** Called when an *existing element* is about to be updated so that an instance of this class will become its new parent.
163
222
  * @note throw an exception if the element should not be added
164
223
  * @note `this` is the class of the prospective parent Element.
@@ -169,7 +228,9 @@ class Element extends Entity_1.Entity {
169
228
  * @note `this` is the class of the new parent Element.
170
229
  * @beta
171
230
  */
172
- static onChildAdded(_arg) { }
231
+ static onChildAdded(arg) {
232
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.parentId });
233
+ }
173
234
  /** Called when an element with an instance of this class as its parent is about to be updated change to a different parent.
174
235
  * @note throw an exception if the element should not be dropped
175
236
  * @note `this` is the class of the parent Element.
@@ -180,7 +241,9 @@ class Element extends Entity_1.Entity {
180
241
  * @note `this` is the class of the previous parent Element.
181
242
  * @beta
182
243
  */
183
- static onChildDropped(_arg) { }
244
+ static onChildDropped(arg) {
245
+ arg.iModel.elements[Symbols_1._cache].delete({ id: arg.parentId });
246
+ }
184
247
  /** Called when an instance of this class is being *sub-modeled* by a new Model.
185
248
  * @note throw an exception if model should not be inserted
186
249
  * @note `this` is the class of Element to be sub-modeled.
@@ -191,7 +254,11 @@ class Element extends Entity_1.Entity {
191
254
  * @note `this` is the class of Element that is now sub-modeled.
192
255
  * @beta
193
256
  */
194
- static onSubModelInserted(_arg) { }
257
+ static onSubModelInserted(arg) {
258
+ const id = arg.subModelId;
259
+ arg.iModel.elements[Symbols_1._cache].delete({ id });
260
+ arg.iModel.models[Symbols_1._cache].delete(id);
261
+ }
195
262
  /** Called when a sub-model of an instance of this class is being deleted.
196
263
  * @note throw an exception if model should not be deleted
197
264
  * @note `this` is the class of Element that is sub-modeled.
@@ -202,7 +269,11 @@ class Element extends Entity_1.Entity {
202
269
  * @note `this` is the class of Element that was sub-modeled.
203
270
  * @beta
204
271
  */
205
- static onSubModelDeleted(_arg) { }
272
+ static onSubModelDeleted(arg) {
273
+ const id = arg.subModelId;
274
+ arg.iModel.elements[Symbols_1._cache].delete({ id });
275
+ arg.iModel.models[Symbols_1._cache].delete(id);
276
+ }
206
277
  /** Called during the iModel transformation process after an Element from the source iModel was *cloned* for the target iModel.
207
278
  * The transformation process automatically handles remapping BisCore properties and those that are properly described in ECSchema.
208
279
  * This callback is only meant to be overridden if there are other Ids in non-standard locations that need to be remapped or other data that needs to be fixed up after the clone.
@@ -332,7 +403,7 @@ class Element extends Entity_1.Entity {
332
403
  }
333
404
  exports.Element = Element;
334
405
  /** An abstract base class to model real world entities that intrinsically have geometry.
335
- * @public
406
+ * @public @preview
336
407
  */
337
408
  class GeometricElement extends Element {
338
409
  static get className() { return "GeometricElement"; }
@@ -371,11 +442,35 @@ class GeometricElement extends Element {
371
442
  ...super.requiredReferenceKeyTypeMap,
372
443
  category: core_common_1.ConcreteEntityTypes.Element,
373
444
  };
445
+ /**
446
+ * GeometricElement custom HandledProps includes 'inSpatialIndex'.
447
+ * @inheritdoc
448
+ * @beta
449
+ */
450
+ static _customHandledProps = [
451
+ { propertyName: "inSpatialIndex", source: "Class" },
452
+ ];
453
+ /**
454
+ * GeometricElement deserializes 'inSpatialIndex'.
455
+ * @inheritdoc
456
+ * @beta
457
+ */
458
+ static deserialize(props) {
459
+ return super.deserialize(props);
460
+ }
461
+ /**
462
+ * GeometricElement serialize 'inSpatialIndex'.
463
+ * @inheritdoc
464
+ * @beta
465
+ */
466
+ static serialize(props, iModel) {
467
+ return super.serialize(props, iModel);
468
+ }
374
469
  }
375
470
  exports.GeometricElement = GeometricElement;
376
471
  /** An abstract base class to model real world entities that intrinsically have 3d geometry.
377
472
  * See [how to create a GeometricElement3d]($docs/learning/backend/CreateElements.md#GeometricElement3d).
378
- * @public
473
+ * @public @preview
379
474
  */
380
475
  class GeometricElement3d extends GeometricElement {
381
476
  static get className() { return "GeometricElement3d"; }
@@ -399,10 +494,127 @@ class GeometricElement3d extends GeometricElement {
399
494
  if (undefined !== this.typeDefinition)
400
495
  referenceIds.addElement(this.typeDefinition.id);
401
496
  }
497
+ /**
498
+ * GeometricElement3d custom HandledProps includes 'category', 'geometryStream', 'origin', 'yaw', 'pitch', 'roll',
499
+ * 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
500
+ * @inheritdoc
501
+ * @beta
502
+ */
503
+ static _customHandledProps = [
504
+ { propertyName: "category", source: "Class" },
505
+ { propertyName: "geometryStream", source: "Class" },
506
+ { propertyName: "origin", source: "Class" },
507
+ { propertyName: "yaw", source: "Class" },
508
+ { propertyName: "pitch", source: "Class" },
509
+ { propertyName: "roll", source: "Class" },
510
+ { propertyName: "bBoxLow", source: "Class" },
511
+ { propertyName: "bBoxHigh", source: "Class" },
512
+ { propertyName: "typeDefinition", source: "Class" }
513
+ ];
514
+ /**
515
+ * GeometricElement3d deserializes 'category', 'geometryStream', 'origin', 'yaw', 'pitch', 'roll',
516
+ * 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
517
+ * @inheritdoc
518
+ * @beta
519
+ */
520
+ static deserialize(props) {
521
+ const elProps = super.deserialize(props);
522
+ const instance = props.row;
523
+ elProps.category = instance.category.id;
524
+ const origin = instance.origin ? [instance.origin.x, instance.origin.y, instance.origin.z] : [0, 0, 0];
525
+ let bbox;
526
+ if ("bBoxHigh" in instance && instance.bBoxHigh !== undefined && "bBoxLow" in instance && instance.bBoxLow !== undefined) {
527
+ bbox = {
528
+ low: [instance.bBoxLow.x, instance.bBoxLow.y, instance.bBoxLow.z],
529
+ high: [instance.bBoxHigh.x, instance.bBoxHigh.y, instance.bBoxHigh.z],
530
+ };
531
+ }
532
+ elProps.placement = {
533
+ origin,
534
+ angles: core_geometry_1.YawPitchRollAngles.createDegrees(instance.yaw ?? 0, instance.pitch ?? 0, instance.roll ?? 0).toJSON(),
535
+ bbox
536
+ };
537
+ if (instance.geometryStream) {
538
+ elProps.geom = props.iModel[Symbols_1._nativeDb].convertOrUpdateGeometrySource({
539
+ is2d: false,
540
+ geom: instance.geometryStream,
541
+ placement: elProps.placement,
542
+ categoryId: elProps.category
543
+ }, "GeometryStreamProps", props.options?.element ?? {}).geom;
544
+ }
545
+ if (instance.typeDefinition) {
546
+ elProps.typeDefinition = instance.typeDefinition;
547
+ }
548
+ return elProps;
549
+ }
550
+ /**
551
+ * GeometricElement3d serializes 'category', 'geometryStream', 'origin', 'yaw', 'pitch', 'roll',
552
+ * 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
553
+ * @inheritdoc
554
+ * @beta
555
+ */
556
+ static serialize(props, iModel) {
557
+ const inst = super.serialize(props, iModel);
558
+ inst.category = { id: props.category };
559
+ const assignPlacement = (placement) => {
560
+ if (Array.isArray(placement.origin)) {
561
+ inst.origin = { x: placement.origin[0], y: placement.origin[1], z: placement.origin[2] };
562
+ }
563
+ else {
564
+ inst.origin = placement.origin;
565
+ }
566
+ inst.yaw = placement.angles.yaw;
567
+ inst.pitch = placement.angles.pitch;
568
+ inst.roll = placement.angles.roll;
569
+ if (placement.bbox) {
570
+ if (Array.isArray(placement.bbox.low)) {
571
+ inst.bBoxLow = { x: placement.bbox.low[0], y: placement.bbox.low[1], z: placement.bbox.low[2] };
572
+ }
573
+ else {
574
+ inst.bBoxLow = placement.bbox.low;
575
+ }
576
+ if (Array.isArray(placement.bbox.high)) {
577
+ inst.bBoxHigh = { x: placement.bbox.high[0], y: placement.bbox.high[1], z: placement.bbox.high[2] };
578
+ }
579
+ else {
580
+ inst.bBoxHigh = placement.bbox.high;
581
+ }
582
+ }
583
+ };
584
+ if (props.placement) {
585
+ assignPlacement(props.placement);
586
+ }
587
+ if (props.elementGeometryBuilderParams) {
588
+ const source = iModel[Symbols_1._nativeDb].convertOrUpdateGeometrySource({
589
+ builder: props.elementGeometryBuilderParams,
590
+ is2d: true,
591
+ placement: props.placement,
592
+ categoryId: props.category,
593
+ }, "BinaryStream", {});
594
+ inst.geometryStream = source.geom;
595
+ if (source.placement) {
596
+ assignPlacement(source.placement);
597
+ }
598
+ }
599
+ if (props.geom) {
600
+ const source = iModel[Symbols_1._nativeDb].convertOrUpdateGeometrySource({
601
+ geom: props.geom,
602
+ is2d: false,
603
+ placement: props.placement,
604
+ categoryId: props.category,
605
+ }, "BinaryStream", {});
606
+ inst.geometryStream = source.geom;
607
+ if (source.placement) {
608
+ assignPlacement(source.placement);
609
+ }
610
+ }
611
+ inst.typeDefinition = props.typeDefinition;
612
+ return inst;
613
+ }
402
614
  }
403
615
  exports.GeometricElement3d = GeometricElement3d;
404
616
  /** A 3d Graphical Element
405
- * @public
617
+ * @public @preview
406
618
  */
407
619
  class GraphicalElement3d extends GeometricElement3d {
408
620
  static get className() { return "GraphicalElement3d"; }
@@ -410,7 +622,7 @@ class GraphicalElement3d extends GeometricElement3d {
410
622
  }
411
623
  exports.GraphicalElement3d = GraphicalElement3d;
412
624
  /** An abstract base class to model information entities that intrinsically have 2d geometry.
413
- * @public
625
+ * @public @preview
414
626
  */
415
627
  class GeometricElement2d extends GeometricElement {
416
628
  static get className() { return "GeometricElement2d"; }
@@ -429,6 +641,123 @@ class GeometricElement2d extends GeometricElement {
429
641
  val.typeDefinition = this.typeDefinition;
430
642
  return val;
431
643
  }
644
+ /**
645
+ * GeometricElement2d custom HandledProps includes 'category', 'geometryStream', 'origin', 'rotation',
646
+ * 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
647
+ * @inheritdoc
648
+ * @beta
649
+ */
650
+ static _customHandledProps = [
651
+ { propertyName: "category", source: "Class" },
652
+ { propertyName: "geometryStream", source: "Class" },
653
+ { propertyName: "origin", source: "Class" },
654
+ { propertyName: "rotation", source: "Class" },
655
+ { propertyName: "bBoxLow", source: "Class" },
656
+ { propertyName: "bBoxHigh", source: "Class" },
657
+ { propertyName: "typeDefinition", source: "Class" }
658
+ ];
659
+ /**
660
+ * GeometricElement2d deserialize 'category', 'geometryStream', 'origin', 'rotation',
661
+ * 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
662
+ * @inheritdoc
663
+ * @beta
664
+ */
665
+ static deserialize(props) {
666
+ const elProps = super.deserialize(props);
667
+ const instance = props.row;
668
+ elProps.category = instance.category.id;
669
+ const origin = instance.origin ? [instance.origin.x, instance.origin.y] : [0, 0];
670
+ let bbox;
671
+ if ("bBoxHigh" in instance && instance.bBoxHigh !== undefined && "bBoxLow" in instance && instance.bBoxLow !== undefined) {
672
+ bbox = {
673
+ low: [instance.bBoxLow.x, instance.bBoxLow.y],
674
+ high: [instance.bBoxHigh.x, instance.bBoxHigh.y],
675
+ };
676
+ }
677
+ elProps.placement = {
678
+ origin,
679
+ angle: instance.rotation,
680
+ bbox,
681
+ };
682
+ if (instance.geometryStream) {
683
+ const source = props.iModel[Symbols_1._nativeDb].convertOrUpdateGeometrySource({
684
+ is2d: true,
685
+ geom: instance.geometryStream,
686
+ placement: elProps.placement,
687
+ categoryId: elProps.category
688
+ }, "GeometryStreamProps", props.options?.element ?? {});
689
+ elProps.geom = source.geom;
690
+ if (source.placement) {
691
+ elProps.placement = source.placement;
692
+ }
693
+ }
694
+ if (instance.typeDefinition) {
695
+ elProps.typeDefinition = instance.typeDefinition;
696
+ }
697
+ return elProps;
698
+ }
699
+ /**
700
+ * GeometricElement2d serializes 'category', 'geometryStream', 'origin', 'rotation',
701
+ * 'bBoxLow', 'bBoxHigh', and 'typeDefinition'.
702
+ * @inheritdoc
703
+ * @beta
704
+ */
705
+ static serialize(props, iModel) {
706
+ const inst = super.serialize(props, iModel);
707
+ inst.category = { id: props.category };
708
+ const assignPlacement = (placement) => {
709
+ if (Array.isArray(placement.origin)) {
710
+ inst.origin = { x: placement.origin[0], y: placement.origin[1] };
711
+ }
712
+ else {
713
+ inst.origin = placement.origin;
714
+ }
715
+ inst.rotation = placement.angle;
716
+ if (placement.bbox) {
717
+ if (Array.isArray(placement.bbox.low)) {
718
+ inst.bBoxLow = { x: placement.bbox.low[0], y: placement.bbox.low[1] };
719
+ }
720
+ else {
721
+ inst.bBoxLow = placement.bbox.low;
722
+ }
723
+ if (Array.isArray(placement.bbox.high)) {
724
+ inst.bBoxHigh = { x: placement.bbox.high[0], y: placement.bbox.high[1] };
725
+ }
726
+ else {
727
+ inst.bBoxHigh = placement.bbox.high;
728
+ }
729
+ }
730
+ };
731
+ if (props.placement) {
732
+ assignPlacement(props.placement);
733
+ }
734
+ if (props.elementGeometryBuilderParams) {
735
+ const source = iModel[Symbols_1._nativeDb].convertOrUpdateGeometrySource({
736
+ builder: props.elementGeometryBuilderParams,
737
+ is2d: true,
738
+ placement: props.placement,
739
+ categoryId: props.category,
740
+ }, "BinaryStream", {});
741
+ inst.geometryStream = source.geom;
742
+ if (source.placement) {
743
+ assignPlacement(source.placement);
744
+ }
745
+ }
746
+ if (props.geom) {
747
+ const source = iModel[Symbols_1._nativeDb].convertOrUpdateGeometrySource({
748
+ geom: props.geom,
749
+ is2d: true,
750
+ placement: props.placement,
751
+ categoryId: props.category,
752
+ }, "BinaryStream", {});
753
+ inst.geometryStream = source.geom;
754
+ if (source.placement) {
755
+ assignPlacement(source.placement);
756
+ }
757
+ }
758
+ inst.typeDefinition = props.typeDefinition;
759
+ return inst;
760
+ }
432
761
  collectReferenceIds(referenceIds) {
433
762
  super.collectReferenceIds(referenceIds);
434
763
  if (undefined !== this.typeDefinition)
@@ -437,7 +766,7 @@ class GeometricElement2d extends GeometricElement {
437
766
  }
438
767
  exports.GeometricElement2d = GeometricElement2d;
439
768
  /** An abstract base class for 2d Geometric Elements that are used to convey information within graphical presentations (like drawings).
440
- * @public
769
+ * @public @preview
441
770
  */
442
771
  class GraphicalElement2d extends GeometricElement2d {
443
772
  static get className() { return "GraphicalElement2d"; }
@@ -445,7 +774,7 @@ class GraphicalElement2d extends GeometricElement2d {
445
774
  }
446
775
  exports.GraphicalElement2d = GraphicalElement2d;
447
776
  /** 2d element used to annotate drawings and sheets.
448
- * @public
777
+ * @public @preview
449
778
  */
450
779
  class AnnotationElement2d extends GraphicalElement2d {
451
780
  static get className() { return "AnnotationElement2d"; }
@@ -453,7 +782,7 @@ class AnnotationElement2d extends GraphicalElement2d {
453
782
  }
454
783
  exports.AnnotationElement2d = AnnotationElement2d;
455
784
  /** 2d element used to persist graphics for use in drawings.
456
- * @public
785
+ * @public @preview
457
786
  */
458
787
  class DrawingGraphic extends GraphicalElement2d {
459
788
  static get className() { return "DrawingGraphic"; }
@@ -461,7 +790,7 @@ class DrawingGraphic extends GraphicalElement2d {
461
790
  }
462
791
  exports.DrawingGraphic = DrawingGraphic;
463
792
  /** An Element that occupies real world space. Its coordinates are in the project space of its iModel.
464
- * @public
793
+ * @public @preview
465
794
  */
466
795
  class SpatialElement extends GeometricElement3d {
467
796
  static get className() { return "SpatialElement"; }
@@ -469,7 +798,7 @@ class SpatialElement extends GeometricElement3d {
469
798
  }
470
799
  exports.SpatialElement = SpatialElement;
471
800
  /** An Element that is spatially located, has mass, and can be *touched*.
472
- * @public
801
+ * @public @preview
473
802
  */
474
803
  class PhysicalElement extends SpatialElement {
475
804
  static get className() { return "PhysicalElement"; }
@@ -487,7 +816,7 @@ class PhysicalElement extends SpatialElement {
487
816
  }
488
817
  exports.PhysicalElement = PhysicalElement;
489
818
  /** Identifies a *tracked* real world location but has no mass and cannot be *touched*.
490
- * @public
819
+ * @public @preview
491
820
  */
492
821
  class SpatialLocationElement extends SpatialElement {
493
822
  static get className() { return "SpatialLocationElement"; }
@@ -495,7 +824,7 @@ class SpatialLocationElement extends SpatialElement {
495
824
  }
496
825
  exports.SpatialLocationElement = SpatialLocationElement;
497
826
  /** A Volume Element is a Spatial Location Element that is restricted to defining a volume.
498
- * @public
827
+ * @public @preview
499
828
  */
500
829
  class VolumeElement extends SpatialLocationElement {
501
830
  static get className() { return "VolumeElement"; }
@@ -505,7 +834,7 @@ exports.VolumeElement = VolumeElement;
505
834
  /** A SectionDrawingLocation element identifies the location of a [[SectionDrawing]] in the context of a [[SpatialModel]],
506
835
  * enabling [HyperModeling]($hypermodeling).
507
836
  * @note The associated ECClass was added to the BisCore schema in version 1.0.11.
508
- * @public
837
+ * @public @preview
509
838
  */
510
839
  class SectionDrawingLocation extends SpatialLocationElement {
511
840
  /** The Id of the [[ViewDefinition]] to which this location refers. */
@@ -526,7 +855,7 @@ exports.SectionDrawingLocation = SectionDrawingLocation;
526
855
  /** Information Content Element is an abstract base class for modeling pure information entities. Only the
527
856
  * core framework should directly subclass from Information Content Element. Domain and application developers
528
857
  * should start with the most appropriate subclass of Information Content Element.
529
- * @public
858
+ * @public @preview
530
859
  */
531
860
  class InformationContentElement extends Element {
532
861
  static get className() { return "InformationContentElement"; }
@@ -543,7 +872,7 @@ class DriverBundleElement extends InformationContentElement {
543
872
  }
544
873
  exports.DriverBundleElement = DriverBundleElement;
545
874
  /** Information Reference is an abstract base class for modeling entities whose main purpose is to reference something else.
546
- * @public
875
+ * @public @preview
547
876
  */
548
877
  class InformationReferenceElement extends InformationContentElement {
549
878
  static get className() { return "InformationReferenceElement"; }
@@ -551,7 +880,7 @@ class InformationReferenceElement extends InformationContentElement {
551
880
  }
552
881
  exports.InformationReferenceElement = InformationReferenceElement;
553
882
  /** A Subject is an information element that describes what this repository (or part thereof) is about.
554
- * @public
883
+ * @public @preview
555
884
  */
556
885
  class Subject extends InformationReferenceElement {
557
886
  static get className() { return "Subject"; }
@@ -609,7 +938,7 @@ exports.Subject = Subject;
609
938
  * For example, a will is a legal document. The will published into a PDF file is an ElectronicDocumentCopy.
610
939
  * The will printed onto paper is a PrintedDocumentCopy.
611
940
  * In this example, the Document only identifies, names, and tracks the content of the will.
612
- * @public
941
+ * @public @preview
613
942
  */
614
943
  class Document extends InformationContentElement {
615
944
  static get className() { return "Document"; }
@@ -617,7 +946,7 @@ class Document extends InformationContentElement {
617
946
  }
618
947
  exports.Document = Document;
619
948
  /** A document that represents a drawing, that is, a two-dimensional graphical representation of engineering data. A Drawing element is usually modelled by a [[DrawingModel]].
620
- * @public
949
+ * @public @preview
621
950
  */
622
951
  class Drawing extends Document {
623
952
  _scaleFactor;
@@ -625,7 +954,7 @@ class Drawing extends Document {
625
954
  * size of the [ViewAttachment]($backend) created when attaching the [Drawing]($backend) to a [Sheet]($backend).
626
955
  * Default: 1.
627
956
  * @note Attempting to set this property to a value less than or equal to zero will produce an exception.
628
- * @public
957
+ * @public @preview
629
958
  */
630
959
  get scaleFactor() { return this._scaleFactor; }
631
960
  set scaleFactor(factor) {
@@ -696,7 +1025,7 @@ exports.Drawing = Drawing;
696
1025
  /** A document that represents a section drawing, that is, a graphical documentation derived from a planar
697
1026
  * section of a spatial view. A SectionDrawing element is modelled by a [[SectionDrawingModel]] or a [[GraphicalModel3d]].
698
1027
  * A [[SectionDrawingLocation]] can associate the drawing with a spatial location, enabling [HyperModeling]($hypermodeling).
699
- * @public
1028
+ * @public @preview
700
1029
  */
701
1030
  class SectionDrawing extends Drawing {
702
1031
  /** The type of section used to generate the drawing. */
@@ -748,7 +1077,7 @@ class SectionDrawing extends Drawing {
748
1077
  }
749
1078
  exports.SectionDrawing = SectionDrawing;
750
1079
  /** The template for a SheetBorder
751
- * @public
1080
+ * @public @preview
752
1081
  */
753
1082
  class SheetBorderTemplate extends Document {
754
1083
  static get className() { return "SheetBorderTemplate"; }
@@ -762,7 +1091,7 @@ class SheetBorderTemplate extends Document {
762
1091
  }
763
1092
  exports.SheetBorderTemplate = SheetBorderTemplate;
764
1093
  /** The template for a [[Sheet]]
765
- * @public
1094
+ * @public @preview
766
1095
  */
767
1096
  class SheetTemplate extends Document {
768
1097
  static get className() { return "SheetTemplate"; }
@@ -783,7 +1112,7 @@ class SheetTemplate extends Document {
783
1112
  }
784
1113
  exports.SheetTemplate = SheetTemplate;
785
1114
  /** A digital representation of a *sheet of paper*. Modeled by a [[SheetModel]].
786
- * @public
1115
+ * @public @preview
787
1116
  */
788
1117
  class Sheet extends Document {
789
1118
  static get className() { return "Sheet"; }
@@ -816,7 +1145,7 @@ class Sheet extends Document {
816
1145
  exports.Sheet = Sheet;
817
1146
  /** Information Record Element is an abstract base class for modeling information records. Information Record
818
1147
  * Element is the default choice if no other subclass of Information Content Element makes sense.
819
- * @public
1148
+ * @public @preview
820
1149
  */
821
1150
  class InformationRecordElement extends InformationContentElement {
822
1151
  static get className() { return "InformationRecordElement"; }
@@ -824,7 +1153,7 @@ class InformationRecordElement extends InformationContentElement {
824
1153
  }
825
1154
  exports.InformationRecordElement = InformationRecordElement;
826
1155
  /** A Definition Element holds configuration-related information that is meant to be referenced / shared.
827
- * @public
1156
+ * @public @preview
828
1157
  */
829
1158
  class DefinitionElement extends InformationContentElement {
830
1159
  static get className() { return "DefinitionElement"; }
@@ -834,6 +1163,37 @@ class DefinitionElement extends InformationContentElement {
834
1163
  super(props, iModel);
835
1164
  this.isPrivate = true === props.isPrivate;
836
1165
  }
1166
+ /**
1167
+ * DefinitionElement custom HandledProps includes 'isPrivate'.
1168
+ * @inheritdoc
1169
+ * @beta
1170
+ */
1171
+ static _customHandledProps = [
1172
+ { propertyName: "isPrivate", source: "Class" },
1173
+ ];
1174
+ /**
1175
+ * DefinitionElement deserializes 'isPrivate'.
1176
+ * @inheritdoc
1177
+ * @beta
1178
+ */
1179
+ static deserialize(props) {
1180
+ const elProps = super.deserialize(props);
1181
+ if (props.row.isPrivate !== undefined)
1182
+ elProps.isPrivate = props.row.isPrivate;
1183
+ return elProps;
1184
+ }
1185
+ /**
1186
+ * DefinitionElement serialize 'isPrivate'.
1187
+ * @inheritdoc
1188
+ * @beta
1189
+ */
1190
+ static serialize(props, iModel) {
1191
+ const inst = super.serialize(props, iModel);
1192
+ if (undefined !== props.isPrivate) {
1193
+ inst.isPrivate = props.isPrivate;
1194
+ }
1195
+ return inst;
1196
+ }
837
1197
  toJSON() {
838
1198
  const val = super.toJSON();
839
1199
  val.isPrivate = this.isPrivate;
@@ -843,7 +1203,7 @@ class DefinitionElement extends InformationContentElement {
843
1203
  exports.DefinitionElement = DefinitionElement;
844
1204
  /** This abstract class unifies DefinitionGroup and DefinitionContainer for relationship endpoint purposes.
845
1205
  * @note The associated ECClass was added to the BisCore schema in version 1.0.10
846
- * @public
1206
+ * @public @preview
847
1207
  */
848
1208
  class DefinitionSet extends DefinitionElement {
849
1209
  static get className() { return "DefinitionSet"; }
@@ -851,7 +1211,7 @@ class DefinitionSet extends DefinitionElement {
851
1211
  exports.DefinitionSet = DefinitionSet;
852
1212
  /** A DefinitionContainer exclusively owns a set of DefinitionElements contained within its sub-model (of type DefinitionModel).
853
1213
  * @note The associated ECClass was added to the BisCore schema in version 1.0.10
854
- * @public
1214
+ * @public @preview
855
1215
  */
856
1216
  class DefinitionContainer extends DefinitionSet {
857
1217
  static get className() { return "DefinitionContainer"; }
@@ -897,7 +1257,7 @@ class DefinitionContainer extends DefinitionSet {
897
1257
  exports.DefinitionContainer = DefinitionContainer;
898
1258
  /** A non-exclusive set of DefinitionElements grouped using the DefinitionGroupGroupsDefinitions relationship.
899
1259
  * @note The associated ECClass was added to the BisCore schema in version 1.0.10
900
- * @public
1260
+ * @public @preview
901
1261
  */
902
1262
  class DefinitionGroup extends DefinitionSet {
903
1263
  static get className() { return "DefinitionGroup"; }
@@ -922,7 +1282,7 @@ class DefinitionGroup extends DefinitionSet {
922
1282
  }
923
1283
  exports.DefinitionGroup = DefinitionGroup;
924
1284
  /** Defines a set of properties (the *type*) that may be associated with an element.
925
- * @public
1285
+ * @public @preview
926
1286
  */
927
1287
  class TypeDefinitionElement extends DefinitionElement {
928
1288
  static get className() { return "TypeDefinitionElement"; }
@@ -949,7 +1309,7 @@ exports.RecipeDefinitionElement = RecipeDefinitionElement;
949
1309
  /** Defines a set of properties (the *type*) that can be associated with a Physical Element. A Physical
950
1310
  * Type has a strong correlation with something that can be ordered from a catalog since all instances
951
1311
  * share a common set of properties.
952
- * @public
1312
+ * @public @preview
953
1313
  */
954
1314
  class PhysicalType extends TypeDefinitionElement {
955
1315
  static get className() { return "PhysicalType"; }
@@ -976,7 +1336,7 @@ class PhysicalType extends TypeDefinitionElement {
976
1336
  }
977
1337
  exports.PhysicalType = PhysicalType;
978
1338
  /** Defines a set of properties (the *type*) that can be associated with a spatial location.
979
- * @public
1339
+ * @public @preview
980
1340
  */
981
1341
  class SpatialLocationType extends TypeDefinitionElement {
982
1342
  static get className() { return "SpatialLocationType"; }
@@ -1043,7 +1403,7 @@ class TemplateRecipe3d extends RecipeDefinitionElement {
1043
1403
  }
1044
1404
  exports.TemplateRecipe3d = TemplateRecipe3d;
1045
1405
  /** Defines a set of properties (the *type*) that can be associated with a 2D Graphical Element.
1046
- * @public
1406
+ * @public @preview
1047
1407
  */
1048
1408
  class GraphicalType2d extends TypeDefinitionElement {
1049
1409
  static get className() { return "GraphicalType2d"; }
@@ -1112,7 +1472,7 @@ exports.TemplateRecipe2d = TemplateRecipe2d;
1112
1472
  /** An abstract base class for elements that establishes a particular modeling perspective for its parent Subject.
1113
1473
  * Instances are always sub-modeled by a specialization of Model of the appropriate modeling perspective.
1114
1474
  * @see [iModel Information Hierarchy]($docs/bis/guide/data-organization/top-of-the-world), [[Subject]], [[Model]]
1115
- * @public
1475
+ * @public @preview
1116
1476
  */
1117
1477
  class InformationPartitionElement extends InformationContentElement {
1118
1478
  static get className() { return "InformationPartitionElement"; }
@@ -1139,7 +1499,7 @@ exports.InformationPartitionElement = InformationPartitionElement;
1139
1499
  /** A DefinitionPartition element establishes a *Definition* modeling perspective for its parent Subject.
1140
1500
  * A DefinitionPartition is always sub-modeled by a DefinitionModel.
1141
1501
  * @see [[DefinitionModel]]
1142
- * @public
1502
+ * @public @preview
1143
1503
  */
1144
1504
  class DefinitionPartition extends InformationPartitionElement {
1145
1505
  static get className() { return "DefinitionPartition"; }
@@ -1148,7 +1508,7 @@ exports.DefinitionPartition = DefinitionPartition;
1148
1508
  /** A DocumentPartition element establishes a *Document* modeling perspective for its parent Subject.
1149
1509
  * A DocumentPartition is always sub-modeled by a DocumentListModel.
1150
1510
  * @see [[DocumentListModel]]
1151
- * @public
1511
+ * @public @preview
1152
1512
  */
1153
1513
  class DocumentPartition extends InformationPartitionElement {
1154
1514
  static get className() { return "DocumentPartition"; }
@@ -1157,7 +1517,7 @@ exports.DocumentPartition = DocumentPartition;
1157
1517
  /** A GroupInformationPartition element establishes a *Group Information* modeling perspective for its parent Subject.
1158
1518
  * A GroupInformationPartition is always sub-modeled by a GroupInformationModel.
1159
1519
  * @see [[GroupInformationModel]]
1160
- * @public
1520
+ * @public @preview
1161
1521
  */
1162
1522
  class GroupInformationPartition extends InformationPartitionElement {
1163
1523
  static get className() { return "GroupInformationPartition"; }
@@ -1167,7 +1527,7 @@ exports.GroupInformationPartition = GroupInformationPartition;
1167
1527
  * A GraphicalPartition3d is always sub-modeled by a GraphicalModel3d.
1168
1528
  * @note The associated ECClass was added to the BisCore schema in version 1.0.8
1169
1529
  * @see [[GraphicalModel3d]]
1170
- * @public
1530
+ * @public @preview
1171
1531
  */
1172
1532
  class GraphicalPartition3d extends InformationPartitionElement {
1173
1533
  static get className() { return "GraphicalPartition3d"; }
@@ -1176,7 +1536,7 @@ exports.GraphicalPartition3d = GraphicalPartition3d;
1176
1536
  /** An InformationRecordPartition element establishes a *Information Record* modeling perspective for its parent Subject.
1177
1537
  * A InformationRecordPartition is always sub-modeled by an InformationRecordModel.
1178
1538
  * @see [[InformationRecordModel]]
1179
- * @public
1539
+ * @public @preview
1180
1540
  */
1181
1541
  class InformationRecordPartition extends InformationPartitionElement {
1182
1542
  static get className() { return "InformationRecordPartition"; }
@@ -1184,7 +1544,7 @@ class InformationRecordPartition extends InformationPartitionElement {
1184
1544
  exports.InformationRecordPartition = InformationRecordPartition;
1185
1545
  /** A LinkPartition element establishes a *Link* modeling perspective for its parent Subject. A LinkPartition is always sub-modeled by a LinkModel.
1186
1546
  * @see [[LinkModel]]
1187
- * @public
1547
+ * @public @preview
1188
1548
  */
1189
1549
  class LinkPartition extends InformationPartitionElement {
1190
1550
  static get className() { return "LinkPartition"; }
@@ -1192,7 +1552,7 @@ class LinkPartition extends InformationPartitionElement {
1192
1552
  exports.LinkPartition = LinkPartition;
1193
1553
  /** A PhysicalPartition element establishes a *Physical* modeling perspective for its parent Subject. A PhysicalPartition is always sub-modeled by a PhysicalModel.
1194
1554
  * @see [[PhysicalModel]]
1195
- * @public
1555
+ * @public @preview
1196
1556
  */
1197
1557
  class PhysicalPartition extends InformationPartitionElement {
1198
1558
  static get className() { return "PhysicalPartition"; }
@@ -1201,7 +1561,7 @@ exports.PhysicalPartition = PhysicalPartition;
1201
1561
  /** A SpatialLocationPartition element establishes a *SpatialLocation* modeling perspective for its parent Subject.
1202
1562
  * A SpatialLocationPartition is always sub-modeled by a SpatialLocationModel.
1203
1563
  * @see [[SpatialLocationModel]]
1204
- * @public
1564
+ * @public @preview
1205
1565
  */
1206
1566
  class SpatialLocationPartition extends InformationPartitionElement {
1207
1567
  static get className() { return "SpatialLocationPartition"; }
@@ -1216,14 +1576,14 @@ class SheetIndexPartition extends InformationPartitionElement {
1216
1576
  }
1217
1577
  exports.SheetIndexPartition = SheetIndexPartition;
1218
1578
  /** Group Information is an abstract base class for modeling entities whose main purpose is to reference a group of related elements.
1219
- * @public
1579
+ * @public @preview
1220
1580
  */
1221
1581
  class GroupInformationElement extends InformationReferenceElement {
1222
1582
  static get className() { return "GroupInformationElement"; }
1223
1583
  }
1224
1584
  exports.GroupInformationElement = GroupInformationElement;
1225
1585
  /** An information element that specifies a link.
1226
- * @public
1586
+ * @public @preview
1227
1587
  */
1228
1588
  class LinkElement extends InformationReferenceElement {
1229
1589
  static get className() { return "LinkElement"; }
@@ -1239,7 +1599,7 @@ class LinkElement extends InformationReferenceElement {
1239
1599
  }
1240
1600
  exports.LinkElement = LinkElement;
1241
1601
  /** An information element that specifies a URL link.
1242
- * @public
1602
+ * @public @preview
1243
1603
  */
1244
1604
  class UrlLink extends LinkElement {
1245
1605
  static get className() { return "UrlLink"; }
@@ -1250,6 +1610,36 @@ class UrlLink extends LinkElement {
1250
1610
  this.description = props.description;
1251
1611
  this.url = props.url;
1252
1612
  }
1613
+ /**
1614
+ * UrlLink custom HandledProps includes 'description', and 'url'.
1615
+ * @inheritdoc
1616
+ * @beta
1617
+ */
1618
+ static _customHandledProps = [
1619
+ { propertyName: "description", source: "Class" },
1620
+ { propertyName: "url", source: "Class" },
1621
+ ];
1622
+ /**
1623
+ * UrlLink deserializes 'description', and 'url'.
1624
+ * @inheritdoc
1625
+ * @beta
1626
+ */
1627
+ static deserialize(props) {
1628
+ const elProps = super.deserialize(props);
1629
+ elProps.description = props.row.description ?? "";
1630
+ elProps.url = props.row.url;
1631
+ return elProps;
1632
+ }
1633
+ /**
1634
+ * UrlLink serializes 'description', and 'url'.
1635
+ * @inheritdoc
1636
+ * @beta
1637
+ */
1638
+ static serialize(props, iModel) {
1639
+ const inst = super.serialize(props, iModel);
1640
+ inst.description = props.description;
1641
+ return inst;
1642
+ }
1253
1643
  toJSON() {
1254
1644
  const val = super.toJSON();
1255
1645
  val.description = this.description;
@@ -1267,7 +1657,7 @@ class FolderLink extends UrlLink {
1267
1657
  }
1268
1658
  exports.FolderLink = FolderLink;
1269
1659
  /** An information element that links to a repository.
1270
- * @public
1660
+ * @public @preview
1271
1661
  */
1272
1662
  class RepositoryLink extends UrlLink {
1273
1663
  static get className() { return "RepositoryLink"; }
@@ -1288,7 +1678,7 @@ class RepositoryLink extends UrlLink {
1288
1678
  }
1289
1679
  exports.RepositoryLink = RepositoryLink;
1290
1680
  /** An information element that links to an embedded file.
1291
- * @public
1681
+ * @public @preview
1292
1682
  */
1293
1683
  class EmbeddedFileLink extends LinkElement {
1294
1684
  static get className() { return "EmbeddedFileLink"; }
@@ -1297,7 +1687,7 @@ exports.EmbeddedFileLink = EmbeddedFileLink;
1297
1687
  /** A real world entity is modeled as a Role Element when a set of external circumstances define an important
1298
1688
  * role (one that is worth tracking) that is not intrinsic to the entity playing the role. For example,
1299
1689
  * a person can play the role of a teacher or a rock can play the role of a boundary marker.
1300
- * @public
1690
+ * @public @preview
1301
1691
  */
1302
1692
  class RoleElement extends Element {
1303
1693
  static get className() { return "RoleElement"; }
@@ -1305,7 +1695,7 @@ class RoleElement extends Element {
1305
1695
  exports.RoleElement = RoleElement;
1306
1696
  /** A Definition Element that specifies a collection of geometry that is meant to be reused across Geometric
1307
1697
  * Element instances. Leveraging Geometry Parts can help reduce file size and improve display performance.
1308
- * @public
1698
+ * @public @preview
1309
1699
  */
1310
1700
  class GeometryPart extends DefinitionElement {
1311
1701
  static get className() { return "GeometryPart"; }
@@ -1316,6 +1706,73 @@ class GeometryPart extends DefinitionElement {
1316
1706
  this.geom = props.geom;
1317
1707
  this.bbox = core_geometry_1.Range3d.fromJSON(props.bbox);
1318
1708
  }
1709
+ /**
1710
+ * GeometryPart custom HandledProps includes 'geometryStream', 'bBoxHigh', and 'bBoxLow'.
1711
+ * @inheritdoc
1712
+ * @beta
1713
+ */
1714
+ static _customHandledProps = [
1715
+ { propertyName: "geometryStream", source: "Class" },
1716
+ { propertyName: "bBoxLow", source: "Class" },
1717
+ { propertyName: "bBoxHigh", source: "Class" },
1718
+ ];
1719
+ /**
1720
+ * GeometryPart deserializes 'geometryStream', 'bBoxHigh', and 'bBoxLow'.
1721
+ * @inheritdoc
1722
+ * @beta
1723
+ */
1724
+ static deserialize(props) {
1725
+ const elProps = super.deserialize(props);
1726
+ const instance = props.row;
1727
+ if ("bBoxHigh" in instance && instance.bBoxHigh !== undefined && "bBoxLow" in instance && instance.bBoxLow !== undefined) {
1728
+ elProps.bbox = {
1729
+ low: [instance.bBoxLow.x, instance.bBoxLow.y, instance.bBoxLow.z],
1730
+ high: [instance.bBoxHigh.x, instance.bBoxHigh.y, instance.bBoxHigh.z],
1731
+ };
1732
+ }
1733
+ if (instance.geometryStream) {
1734
+ elProps.geom = props.iModel[Symbols_1._nativeDb].convertOrUpdateGeometryPart({
1735
+ geom: instance.geometryStream,
1736
+ is2d: false,
1737
+ bbox: elProps.bbox,
1738
+ }, "GeometryStreamProps", props.options?.element ?? {}).geom;
1739
+ }
1740
+ return elProps;
1741
+ }
1742
+ /**
1743
+ * GeometryPart serialize 'geometryStream', 'bBoxHigh', and 'bBoxLow'.
1744
+ * @inheritdoc
1745
+ * @beta
1746
+ */
1747
+ static serialize(props, iModel) {
1748
+ const inst = super.serialize(props, iModel);
1749
+ if (undefined !== props.geom) {
1750
+ const source = inst.geometryStream = iModel[Symbols_1._nativeDb].convertOrUpdateGeometryPart({
1751
+ geom: props.geom,
1752
+ is2d: false,
1753
+ bbox: props.bbox,
1754
+ }, "BinaryStream", {});
1755
+ inst.geometryStream = source.geom;
1756
+ if (source.bbox) {
1757
+ props.bbox = source.bbox;
1758
+ }
1759
+ }
1760
+ if (undefined !== props.bbox) {
1761
+ if (Array.isArray(props.bbox.low)) {
1762
+ inst.bBoxLow = { x: props.bbox.low[0], y: props.bbox.low[1], z: props.bbox.low[2] };
1763
+ }
1764
+ else {
1765
+ inst.bBoxLow = props.bbox.low;
1766
+ }
1767
+ if (Array.isArray(props.bbox.high)) {
1768
+ inst.bBoxHigh = { x: props.bbox.high[0], y: props.bbox.high[1], z: props.bbox.high[2] };
1769
+ }
1770
+ else {
1771
+ inst.bBoxHigh = props.bbox.high;
1772
+ }
1773
+ }
1774
+ return inst;
1775
+ }
1319
1776
  toJSON() {
1320
1777
  const val = super.toJSON();
1321
1778
  val.geom = this.geom;
@@ -1335,7 +1792,7 @@ class GeometryPart extends DefinitionElement {
1335
1792
  }
1336
1793
  exports.GeometryPart = GeometryPart;
1337
1794
  /** The definition element for a line style
1338
- * @public
1795
+ * @public @preview
1339
1796
  */
1340
1797
  class LineStyle extends DefinitionElement {
1341
1798
  static get className() { return "LineStyle"; }
@@ -1346,6 +1803,35 @@ class LineStyle extends DefinitionElement {
1346
1803
  this.description = props.description;
1347
1804
  this.data = props.data;
1348
1805
  }
1806
+ /**
1807
+ * LineStyle custom HandledProps includes 'data'.
1808
+ * @inheritdoc
1809
+ * @beta
1810
+ */
1811
+ static _customHandledProps = [
1812
+ { propertyName: "data", source: "Class" },
1813
+ ];
1814
+ /**
1815
+ * LineStyle deserializes 'data'.
1816
+ * @inheritdoc
1817
+ * @beta
1818
+ */
1819
+ static deserialize(props) {
1820
+ const elProps = super.deserialize(props);
1821
+ const instance = props.row;
1822
+ elProps.data = instance.data ?? "";
1823
+ return elProps;
1824
+ }
1825
+ /**
1826
+ * LineStyle serializes 'data'.
1827
+ * @inheritdoc
1828
+ * @beta
1829
+ */
1830
+ static serialize(props, iModel) {
1831
+ const inst = super.serialize(props, iModel);
1832
+ inst.data = props.data;
1833
+ return inst;
1834
+ }
1349
1835
  /** Create a Code for a LineStyle definition given a name that is meant to be unique within the scope of the specified model.
1350
1836
  * @param iModel The IModel
1351
1837
  * @param scopeModelId The Id of the DefinitionModel that contains the LineStyle and provides the scope for its name.
@@ -1359,7 +1845,7 @@ class LineStyle extends DefinitionElement {
1359
1845
  exports.LineStyle = LineStyle;
1360
1846
  /** Describes how to animate a view of a [[GeometricModel]] to show change over time using a [RenderSchedule.Script]($common).
1361
1847
  * @note This class was introduced in version 01.00.13 of the BisCore ECSchema. It should only be used with [[IModelDb]]s containing that version or newer.
1362
- * @public
1848
+ * @public @preview
1363
1849
  */
1364
1850
  class RenderTimeline extends InformationRecordElement {
1365
1851
  static get className() { return "RenderTimeline"; }
@@ -1384,6 +1870,21 @@ class RenderTimeline extends InformationRecordElement {
1384
1870
  props.script = JSON.stringify(this.scriptProps);
1385
1871
  return props;
1386
1872
  }
1873
+ /**
1874
+ * RenderTimeline deserialize checks if Schedule Script Element Ids need to be omitted, and if so, removes them.
1875
+ * @inheritdoc
1876
+ * @beta
1877
+ */
1878
+ static deserialize(props) {
1879
+ const elProps = super.deserialize(props);
1880
+ const options = props.options?.element?.renderTimeline;
1881
+ // Omit Schedule Script Element Ids if the option is set
1882
+ if (options?.omitScriptElementIds && elProps.script) {
1883
+ const scriptProps = RenderTimeline.parseScriptProps(elProps.script);
1884
+ elProps.script = JSON.stringify(core_common_1.RenderSchedule.Script.removeScheduleScriptElementIds(scriptProps));
1885
+ }
1886
+ return elProps;
1887
+ }
1387
1888
  static parseScriptProps(json) {
1388
1889
  try {
1389
1890
  return JSON.parse(json);