@itwin/core-backend 5.9.0-dev.4 → 5.9.0-dev.6

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 (658) hide show
  1. package/lib/cjs/BackendHubAccess.js.map +1 -1
  2. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  3. package/lib/cjs/BisCoreSchema.js.map +1 -1
  4. package/lib/cjs/BlobContainerService.js.map +1 -1
  5. package/lib/cjs/BriefcaseManager.js +3 -3
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.d.ts +37 -7
  9. package/lib/cjs/Category.d.ts.map +1 -1
  10. package/lib/cjs/Category.js +33 -42
  11. package/lib/cjs/Category.js.map +1 -1
  12. package/lib/cjs/ChangeSummaryManager.js +2 -2
  13. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  14. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  16. package/lib/cjs/ChangesetECAdaptor.js +253 -250
  17. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  18. package/lib/cjs/ChannelControl.d.ts +29 -0
  19. package/lib/cjs/ChannelControl.d.ts.map +1 -1
  20. package/lib/cjs/ChannelControl.js.map +1 -1
  21. package/lib/cjs/CheckpointManager.js +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.map +1 -1
  26. package/lib/cjs/CodeService.js.map +1 -1
  27. package/lib/cjs/CodeSpecs.d.ts +32 -3
  28. package/lib/cjs/CodeSpecs.d.ts.map +1 -1
  29. package/lib/cjs/CodeSpecs.js +48 -20
  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 +18 -3
  35. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  36. package/lib/cjs/DisplayStyle.js +10 -21
  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/ECSqlRowExecutor.js.map +1 -1
  41. package/lib/cjs/ECSqlStatement.js.map +1 -1
  42. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  43. package/lib/cjs/EditTxn.d.ts +262 -0
  44. package/lib/cjs/EditTxn.d.ts.map +1 -0
  45. package/lib/cjs/EditTxn.js +548 -0
  46. package/lib/cjs/EditTxn.js.map +1 -0
  47. package/lib/cjs/Element.d.ts +74 -5
  48. package/lib/cjs/Element.d.ts.map +1 -1
  49. package/lib/cjs/Element.js +63 -75
  50. package/lib/cjs/Element.js.map +1 -1
  51. package/lib/cjs/ElementAspect.d.ts +10 -0
  52. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  53. package/lib/cjs/ElementAspect.js +21 -12
  54. package/lib/cjs/ElementAspect.js.map +1 -1
  55. package/lib/cjs/ElementGraphics.js.map +1 -1
  56. package/lib/cjs/ElementTreeWalker.d.ts +56 -3
  57. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  58. package/lib/cjs/ElementTreeWalker.js +53 -40
  59. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  60. package/lib/cjs/Entity.js.map +1 -1
  61. package/lib/cjs/EntityReferences.js.map +1 -1
  62. package/lib/cjs/ExportGraphics.js.map +1 -1
  63. package/lib/cjs/ExternalSource.d.ts +11 -2
  64. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  65. package/lib/cjs/ExternalSource.js +10 -8
  66. package/lib/cjs/ExternalSource.js.map +1 -1
  67. package/lib/cjs/FontFile.js.map +1 -1
  68. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  69. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  70. package/lib/cjs/GeometrySummary.js +47 -47
  71. package/lib/cjs/GeometrySummary.js.map +1 -1
  72. package/lib/cjs/IModelDb.d.ts +66 -22
  73. package/lib/cjs/IModelDb.d.ts.map +1 -1
  74. package/lib/cjs/IModelDb.js +182 -296
  75. package/lib/cjs/IModelDb.js.map +1 -1
  76. package/lib/cjs/IModelDbFonts.js.map +1 -1
  77. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  78. package/lib/cjs/IModelHost.d.ts +22 -0
  79. package/lib/cjs/IModelHost.d.ts.map +1 -1
  80. package/lib/cjs/IModelHost.js +9 -0
  81. package/lib/cjs/IModelHost.js.map +1 -1
  82. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  83. package/lib/cjs/IModelJsFs.js.map +1 -1
  84. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  85. package/lib/cjs/IpcHost.js +2 -2
  86. package/lib/cjs/IpcHost.js.map +1 -1
  87. package/lib/cjs/LineStyle.d.ts +47 -7
  88. package/lib/cjs/LineStyle.d.ts.map +1 -1
  89. package/lib/cjs/LineStyle.js +38 -33
  90. package/lib/cjs/LineStyle.js.map +1 -1
  91. package/lib/cjs/LocalHub.js +1 -1
  92. package/lib/cjs/LocalHub.js.map +1 -1
  93. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  94. package/lib/cjs/LockControl.js.map +1 -1
  95. package/lib/cjs/Material.d.ts +8 -1
  96. package/lib/cjs/Material.d.ts.map +1 -1
  97. package/lib/cjs/Material.js +6 -12
  98. package/lib/cjs/Material.js.map +1 -1
  99. package/lib/cjs/Model.d.ts +59 -20
  100. package/lib/cjs/Model.d.ts.map +1 -1
  101. package/lib/cjs/Model.js +38 -80
  102. package/lib/cjs/Model.js.map +1 -1
  103. package/lib/cjs/NativeAppStorage.js.map +1 -1
  104. package/lib/cjs/NativeHost.js.map +1 -1
  105. package/lib/cjs/NavigationRelationship.js.map +1 -1
  106. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  107. package/lib/cjs/PropertyStore.js.map +1 -1
  108. package/lib/cjs/Relationship.d.ts +72 -7
  109. package/lib/cjs/Relationship.d.ts.map +1 -1
  110. package/lib/cjs/Relationship.js +39 -21
  111. package/lib/cjs/Relationship.js.map +1 -1
  112. package/lib/cjs/RpcBackend.js.map +1 -1
  113. package/lib/cjs/SQLiteDb.js.map +1 -1
  114. package/lib/cjs/Schema.js.map +1 -1
  115. package/lib/cjs/SchemaSync.js +4 -4
  116. package/lib/cjs/SchemaSync.js.map +1 -1
  117. package/lib/cjs/SchemaUtils.js.map +1 -1
  118. package/lib/cjs/SheetIndex.d.ts +9 -0
  119. package/lib/cjs/SheetIndex.d.ts.map +1 -1
  120. package/lib/cjs/SheetIndex.js +38 -35
  121. package/lib/cjs/SheetIndex.js.map +1 -1
  122. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  123. package/lib/cjs/SqliteStatement.js.map +1 -1
  124. package/lib/cjs/StashManager.js +1 -1
  125. package/lib/cjs/StashManager.js.map +1 -1
  126. package/lib/cjs/Texture.d.ts +6 -0
  127. package/lib/cjs/Texture.d.ts.map +1 -1
  128. package/lib/cjs/Texture.js +6 -14
  129. package/lib/cjs/Texture.js.map +1 -1
  130. package/lib/cjs/TileStorage.js.map +1 -1
  131. package/lib/cjs/TxnManager.d.ts +5 -5
  132. package/lib/cjs/TxnManager.d.ts.map +1 -1
  133. package/lib/cjs/TxnManager.js +23 -7
  134. package/lib/cjs/TxnManager.js.map +1 -1
  135. package/lib/cjs/ViewDefinition.d.ts +21 -1
  136. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  137. package/lib/cjs/ViewDefinition.js +27 -66
  138. package/lib/cjs/ViewDefinition.js.map +1 -1
  139. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  140. package/lib/cjs/ViewStore.js.map +1 -1
  141. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  142. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  143. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
  144. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  145. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  146. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  147. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  148. package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
  149. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  150. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  151. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  152. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  153. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  154. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  155. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  156. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  157. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  158. package/lib/cjs/core-backend.d.ts +1 -0
  159. package/lib/cjs/core-backend.d.ts.map +1 -1
  160. package/lib/cjs/core-backend.js +1 -0
  161. package/lib/cjs/core-backend.js.map +1 -1
  162. package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
  163. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
  164. package/lib/cjs/domains/FunctionalElements.js +8 -13
  165. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  166. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  167. package/lib/cjs/domains/GenericElements.d.ts +11 -4
  168. package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
  169. package/lib/cjs/domains/GenericElements.js +13 -24
  170. package/lib/cjs/domains/GenericElements.js.map +1 -1
  171. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  172. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  173. package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
  174. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  175. package/lib/cjs/internal/ChannelAdmin.js +5 -3
  176. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  177. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  178. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  179. package/lib/cjs/internal/HubMock.js.map +1 -1
  180. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  181. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  182. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  183. package/lib/cjs/internal/NoLocks.js.map +1 -1
  184. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  185. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  186. package/lib/cjs/internal/Symbols.d.ts +4 -0
  187. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  188. package/lib/cjs/internal/Symbols.js +5 -1
  189. package/lib/cjs/internal/Symbols.js.map +1 -1
  190. package/lib/cjs/internal/annotations/fields.d.ts +3 -2
  191. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
  192. package/lib/cjs/internal/annotations/fields.js +7 -6
  193. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  194. package/lib/cjs/internal/cross-package.js.map +1 -1
  195. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  196. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  197. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  198. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  199. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  200. package/lib/cjs/rpc/multipart.js.map +1 -1
  201. package/lib/cjs/rpc/tracing.js.map +1 -1
  202. package/lib/cjs/rpc/web/logging.js.map +1 -1
  203. package/lib/cjs/rpc/web/request.js.map +1 -1
  204. package/lib/cjs/rpc/web/response.js.map +1 -1
  205. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  206. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  207. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  208. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  209. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  210. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  211. package/lib/cjs/workspace/Settings.js.map +1 -1
  212. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  213. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  214. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  215. package/lib/cjs/workspace/Workspace.js.map +1 -1
  216. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  217. package/lib/esm/BackendHubAccess.js.map +1 -1
  218. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  219. package/lib/esm/BisCoreSchema.js.map +1 -1
  220. package/lib/esm/BlobContainerService.js.map +1 -1
  221. package/lib/esm/BriefcaseManager.js +3 -3
  222. package/lib/esm/BriefcaseManager.js.map +1 -1
  223. package/lib/esm/CatalogDb.js.map +1 -1
  224. package/lib/esm/Category.d.ts +37 -7
  225. package/lib/esm/Category.d.ts.map +1 -1
  226. package/lib/esm/Category.js +33 -42
  227. package/lib/esm/Category.js.map +1 -1
  228. package/lib/esm/ChangeSummaryManager.js +2 -2
  229. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  230. package/lib/esm/ChangedElementsDb.js.map +1 -1
  231. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  232. package/lib/esm/ChangesetECAdaptor.js +253 -250
  233. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  234. package/lib/esm/ChannelControl.d.ts +29 -0
  235. package/lib/esm/ChannelControl.d.ts.map +1 -1
  236. package/lib/esm/ChannelControl.js.map +1 -1
  237. package/lib/esm/CheckpointManager.js +1 -1
  238. package/lib/esm/CheckpointManager.js.map +1 -1
  239. package/lib/esm/ClassRegistry.js +5 -5
  240. package/lib/esm/ClassRegistry.js.map +1 -1
  241. package/lib/esm/CloudSqlite.js.map +1 -1
  242. package/lib/esm/CodeService.js.map +1 -1
  243. package/lib/esm/CodeSpecs.d.ts +32 -3
  244. package/lib/esm/CodeSpecs.d.ts.map +1 -1
  245. package/lib/esm/CodeSpecs.js +49 -21
  246. package/lib/esm/CodeSpecs.js.map +1 -1
  247. package/lib/esm/ConcurrentQuery.js.map +1 -1
  248. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  249. package/lib/esm/DevTools.js.map +1 -1
  250. package/lib/esm/DisplayStyle.d.ts +18 -3
  251. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  252. package/lib/esm/DisplayStyle.js +10 -21
  253. package/lib/esm/DisplayStyle.js.map +1 -1
  254. package/lib/esm/ECDb.js.map +1 -1
  255. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  256. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  257. package/lib/esm/ECSqlStatement.js.map +1 -1
  258. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  259. package/lib/esm/EditTxn.d.ts +262 -0
  260. package/lib/esm/EditTxn.d.ts.map +1 -0
  261. package/lib/esm/EditTxn.js +543 -0
  262. package/lib/esm/EditTxn.js.map +1 -0
  263. package/lib/esm/Element.d.ts +74 -5
  264. package/lib/esm/Element.d.ts.map +1 -1
  265. package/lib/esm/Element.js +64 -76
  266. package/lib/esm/Element.js.map +1 -1
  267. package/lib/esm/ElementAspect.d.ts +10 -0
  268. package/lib/esm/ElementAspect.d.ts.map +1 -1
  269. package/lib/esm/ElementAspect.js +22 -13
  270. package/lib/esm/ElementAspect.js.map +1 -1
  271. package/lib/esm/ElementGraphics.js.map +1 -1
  272. package/lib/esm/ElementTreeWalker.d.ts +56 -3
  273. package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
  274. package/lib/esm/ElementTreeWalker.js +53 -40
  275. package/lib/esm/ElementTreeWalker.js.map +1 -1
  276. package/lib/esm/Entity.js.map +1 -1
  277. package/lib/esm/EntityReferences.js.map +1 -1
  278. package/lib/esm/ExportGraphics.js.map +1 -1
  279. package/lib/esm/ExternalSource.d.ts +11 -2
  280. package/lib/esm/ExternalSource.d.ts.map +1 -1
  281. package/lib/esm/ExternalSource.js +10 -8
  282. package/lib/esm/ExternalSource.js.map +1 -1
  283. package/lib/esm/FontFile.js.map +1 -1
  284. package/lib/esm/GeoCoordConfig.js.map +1 -1
  285. package/lib/esm/GeographicCRSServices.js.map +1 -1
  286. package/lib/esm/GeometrySummary.js +47 -47
  287. package/lib/esm/GeometrySummary.js.map +1 -1
  288. package/lib/esm/IModelDb.d.ts +66 -22
  289. package/lib/esm/IModelDb.d.ts.map +1 -1
  290. package/lib/esm/IModelDb.js +184 -298
  291. package/lib/esm/IModelDb.js.map +1 -1
  292. package/lib/esm/IModelDbFonts.js.map +1 -1
  293. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  294. package/lib/esm/IModelHost.d.ts +22 -0
  295. package/lib/esm/IModelHost.d.ts.map +1 -1
  296. package/lib/esm/IModelHost.js +9 -0
  297. package/lib/esm/IModelHost.js.map +1 -1
  298. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  299. package/lib/esm/IModelJsFs.js.map +1 -1
  300. package/lib/esm/ImageSourceConversion.js.map +1 -1
  301. package/lib/esm/IpcHost.js +3 -3
  302. package/lib/esm/IpcHost.js.map +1 -1
  303. package/lib/esm/LineStyle.d.ts +47 -7
  304. package/lib/esm/LineStyle.d.ts.map +1 -1
  305. package/lib/esm/LineStyle.js +38 -33
  306. package/lib/esm/LineStyle.js.map +1 -1
  307. package/lib/esm/LocalHub.js +1 -1
  308. package/lib/esm/LocalHub.js.map +1 -1
  309. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  310. package/lib/esm/LockControl.js.map +1 -1
  311. package/lib/esm/Material.d.ts +8 -1
  312. package/lib/esm/Material.d.ts.map +1 -1
  313. package/lib/esm/Material.js +6 -12
  314. package/lib/esm/Material.js.map +1 -1
  315. package/lib/esm/Model.d.ts +59 -20
  316. package/lib/esm/Model.d.ts.map +1 -1
  317. package/lib/esm/Model.js +39 -81
  318. package/lib/esm/Model.js.map +1 -1
  319. package/lib/esm/NativeAppStorage.js.map +1 -1
  320. package/lib/esm/NativeHost.js.map +1 -1
  321. package/lib/esm/NavigationRelationship.js.map +1 -1
  322. package/lib/esm/PromiseMemoizer.js.map +1 -1
  323. package/lib/esm/PropertyStore.js.map +1 -1
  324. package/lib/esm/Relationship.d.ts +72 -7
  325. package/lib/esm/Relationship.d.ts.map +1 -1
  326. package/lib/esm/Relationship.js +40 -22
  327. package/lib/esm/Relationship.js.map +1 -1
  328. package/lib/esm/RpcBackend.js.map +1 -1
  329. package/lib/esm/SQLiteDb.js.map +1 -1
  330. package/lib/esm/Schema.js.map +1 -1
  331. package/lib/esm/SchemaSync.js +5 -5
  332. package/lib/esm/SchemaSync.js.map +1 -1
  333. package/lib/esm/SchemaUtils.js.map +1 -1
  334. package/lib/esm/SheetIndex.d.ts +9 -0
  335. package/lib/esm/SheetIndex.d.ts.map +1 -1
  336. package/lib/esm/SheetIndex.js +38 -35
  337. package/lib/esm/SheetIndex.js.map +1 -1
  338. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  339. package/lib/esm/SqliteStatement.js.map +1 -1
  340. package/lib/esm/StashManager.js +1 -1
  341. package/lib/esm/StashManager.js.map +1 -1
  342. package/lib/esm/Texture.d.ts +6 -0
  343. package/lib/esm/Texture.d.ts.map +1 -1
  344. package/lib/esm/Texture.js +6 -14
  345. package/lib/esm/Texture.js.map +1 -1
  346. package/lib/esm/TileStorage.js.map +1 -1
  347. package/lib/esm/TxnManager.d.ts +5 -5
  348. package/lib/esm/TxnManager.d.ts.map +1 -1
  349. package/lib/esm/TxnManager.js +23 -7
  350. package/lib/esm/TxnManager.js.map +1 -1
  351. package/lib/esm/ViewDefinition.d.ts +21 -1
  352. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  353. package/lib/esm/ViewDefinition.js +27 -66
  354. package/lib/esm/ViewDefinition.js.map +1 -1
  355. package/lib/esm/ViewStateHydrator.js.map +1 -1
  356. package/lib/esm/ViewStore.js.map +1 -1
  357. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  358. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  359. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
  360. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  361. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  362. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  363. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  364. package/lib/esm/annotations/TextAnnotationElement.js +6 -5
  365. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  366. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  367. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  368. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  369. package/lib/esm/core-backend.d.ts +1 -0
  370. package/lib/esm/core-backend.d.ts.map +1 -1
  371. package/lib/esm/core-backend.js +1 -0
  372. package/lib/esm/core-backend.js.map +1 -1
  373. package/lib/esm/domains/FunctionalElements.d.ts +6 -2
  374. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
  375. package/lib/esm/domains/FunctionalElements.js +8 -13
  376. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  377. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  378. package/lib/esm/domains/GenericElements.d.ts +11 -4
  379. package/lib/esm/domains/GenericElements.d.ts.map +1 -1
  380. package/lib/esm/domains/GenericElements.js +13 -24
  381. package/lib/esm/domains/GenericElements.js.map +1 -1
  382. package/lib/esm/domains/GenericSchema.js.map +1 -1
  383. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  384. package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
  385. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
  386. package/lib/esm/internal/ChannelAdmin.js +6 -4
  387. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  388. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  389. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  390. package/lib/esm/internal/HubMock.js.map +1 -1
  391. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  392. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  393. package/lib/esm/internal/NativePlatform.js.map +1 -1
  394. package/lib/esm/internal/NoLocks.js.map +1 -1
  395. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  396. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  397. package/lib/esm/internal/Symbols.d.ts +4 -0
  398. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  399. package/lib/esm/internal/Symbols.js +4 -0
  400. package/lib/esm/internal/Symbols.js.map +1 -1
  401. package/lib/esm/internal/annotations/fields.d.ts +3 -2
  402. package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
  403. package/lib/esm/internal/annotations/fields.js +7 -6
  404. package/lib/esm/internal/annotations/fields.js.map +1 -1
  405. package/lib/esm/internal/cross-package.js.map +1 -1
  406. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  407. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  408. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  409. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  410. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  411. package/lib/esm/rpc/multipart.js.map +1 -1
  412. package/lib/esm/rpc/tracing.js.map +1 -1
  413. package/lib/esm/rpc/web/logging.js.map +1 -1
  414. package/lib/esm/rpc/web/request.js.map +1 -1
  415. package/lib/esm/rpc/web/response.js.map +1 -1
  416. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  417. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  418. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  419. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  420. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  421. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  422. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  423. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  424. package/lib/esm/test/AttachDb.test.js +11 -11
  425. package/lib/esm/test/AttachDb.test.js.map +1 -1
  426. package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
  427. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  428. package/lib/esm/test/ElementDrivesElement.test.js +134 -119
  429. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  430. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  431. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  432. package/lib/esm/test/IModelHost.test.js +56 -2
  433. package/lib/esm/test/IModelHost.test.js.map +1 -1
  434. package/lib/esm/test/IModelTestUtils.d.ts +23 -23
  435. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  436. package/lib/esm/test/IModelTestUtils.js +466 -449
  437. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  438. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  439. package/lib/esm/test/IpcHost.test.js.map +1 -1
  440. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  441. package/lib/esm/test/PrintElementTree.js.map +1 -1
  442. package/lib/esm/test/PropertyDb.test.js +2 -2
  443. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  444. package/lib/esm/test/RevisionUtility.js.map +1 -1
  445. package/lib/esm/test/SchemaUtils.test.js +25 -25
  446. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  447. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  448. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +156 -147
  449. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  450. package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
  451. package/lib/esm/test/TestChangeSetUtility.js +11 -7
  452. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  453. package/lib/esm/test/TestEditTxn.d.ts +8 -0
  454. package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
  455. package/lib/esm/test/TestEditTxn.js +34 -0
  456. package/lib/esm/test/TestEditTxn.js.map +1 -0
  457. package/lib/esm/test/TestUtils.d.ts +1 -0
  458. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  459. package/lib/esm/test/TestUtils.js +8 -1
  460. package/lib/esm/test/TestUtils.js.map +1 -1
  461. package/lib/esm/test/annotations/Fields.test.js +135 -143
  462. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  463. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  464. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  465. package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
  466. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  467. package/lib/esm/test/annotations/TextBlock.test.js +5 -3
  468. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  469. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  470. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  471. package/lib/esm/test/categories/Category.test.js +63 -3
  472. package/lib/esm/test/categories/Category.test.js.map +1 -1
  473. package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
  474. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  475. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  476. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  477. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  478. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  479. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  480. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  481. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  482. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  483. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  484. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  485. package/lib/esm/test/ecdb/ECSqlAst.test.js +68 -67
  486. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  487. package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -6
  488. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  489. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -333
  490. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  491. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  492. package/lib/esm/test/ecdb/QueryReaders.test.js +47 -44
  493. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  494. package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
  495. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  496. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
  497. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
  498. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  499. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  500. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  501. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  502. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  503. package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
  504. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  505. package/lib/esm/test/element/ElementAspect.test.js +90 -82
  506. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  507. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
  508. package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
  509. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  510. package/lib/esm/test/element/ElementRoundTrip.test.js +176 -177
  511. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  512. package/lib/esm/test/element/ExcludedElements.test.js +2 -2
  513. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  514. package/lib/esm/test/element/ExternalSource.test.js +40 -38
  515. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  516. package/lib/esm/test/element/NullStructArray.test.js +23 -22
  517. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  518. package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
  519. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  520. package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
  521. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  522. package/lib/esm/test/element/UrlLink.test.js +2 -2
  523. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  524. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  525. package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
  526. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  527. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +194 -155
  528. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  529. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
  530. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  531. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  532. package/lib/esm/test/hubaccess/Rebase.test.js +369 -303
  533. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  534. package/lib/esm/test/hubaccess/SemanticRebase.test.js +467 -392
  535. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  536. package/lib/esm/test/imageData.js.map +1 -1
  537. package/lib/esm/test/imodel/Code.test.js +31 -31
  538. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  539. package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
  540. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  541. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  542. package/lib/esm/test/imodel/IModel.test.js +463 -388
  543. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  544. package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
  545. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  546. package/lib/esm/test/imodel/SchemaXmlImport.test.js +13 -13
  547. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  548. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  549. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  550. package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
  551. package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
  552. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  553. package/lib/esm/test/index.d.ts +1 -0
  554. package/lib/esm/test/index.d.ts.map +1 -1
  555. package/lib/esm/test/index.js +1 -0
  556. package/lib/esm/test/index.js.map +1 -1
  557. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  558. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  559. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  560. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  561. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  562. package/lib/esm/test/rpc/response.test.js.map +1 -1
  563. package/lib/esm/test/schema/ClassRegistry.test.js +122 -121
  564. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  565. package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
  566. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  567. package/lib/esm/test/schema/GenericDomain.test.js +114 -94
  568. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  569. package/lib/esm/test/schema/IModelSchemaContext.test.js +11 -10
  570. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  571. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +226 -211
  572. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  573. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
  574. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
  575. package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
  576. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  577. package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
  578. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  579. package/lib/esm/test/standalone/ChangesetReader.test.js +242 -213
  580. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  581. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  582. package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
  583. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  584. package/lib/esm/test/standalone/Drawing.test.js +4 -3
  585. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  586. package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
  587. package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
  588. package/lib/esm/test/standalone/EditTxn.test.js +219 -0
  589. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
  590. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  591. package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
  592. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  593. package/lib/esm/test/standalone/ExportGraphics.test.js +40 -34
  594. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  595. package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
  596. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  597. package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
  598. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  599. package/lib/esm/test/standalone/HubMock.test.js +31 -25
  600. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  601. package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
  602. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  603. package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
  604. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  605. package/lib/esm/test/standalone/IModelWrite.test.js +211 -169
  606. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  607. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  608. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
  609. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  610. package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
  611. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  612. package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
  613. package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
  614. package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
  615. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  616. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  617. package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
  618. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  619. package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
  620. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  621. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  622. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  623. package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
  624. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  625. package/lib/esm/test/standalone/ServerBasedLocks.test.js +21 -19
  626. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  627. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  628. package/lib/esm/test/standalone/Settings.test.js +7 -4
  629. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  630. package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
  631. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  632. package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
  633. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  634. package/lib/esm/test/standalone/StandaloneDb.test.js +27 -26
  635. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  636. package/lib/esm/test/standalone/Texture.test.js +5 -4
  637. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  638. package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
  639. package/lib/esm/test/standalone/TileCache.test.js +5 -3
  640. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  641. package/lib/esm/test/standalone/TileTree.test.js +35 -31
  642. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  643. package/lib/esm/test/standalone/TxnManager.test.js +700 -653
  644. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  645. package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
  646. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  647. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  648. package/lib/esm/test/standalone/Workspace.test.js +25 -23
  649. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  650. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  651. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  652. package/lib/esm/workspace/Settings.js.map +1 -1
  653. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  654. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  655. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  656. package/lib/esm/workspace/Workspace.js.map +1 -1
  657. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  658. package/package.json +13 -13
@@ -6,7 +6,8 @@ import { assert } from "chai";
6
6
  import * as path from "path";
7
7
  import { Id64 } from "@itwin/core-bentley";
8
8
  import { Point3d } from "@itwin/core-geometry";
9
- import { IModel } from "@itwin/core-common";
9
+ import { ImageSourceFormat, IModel } from "@itwin/core-common";
10
+ import { EditTxn } from "../../EditTxn";
10
11
  import { CategorySelector, DisplayStyle2d, DisplayStyle3d, DrawingCategory, DrawingViewDefinition, GeometryPart, IModelJsFs, InformationPartitionElement, ModelSelector, OrthographicViewDefinition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, Subject, Texture, } from "../../core-backend";
11
12
  import { ExtensiveTestScenario, IModelTestUtils } from "../IModelTestUtils";
12
13
  import { KnownTestLocations } from "../KnownTestLocations";
@@ -60,149 +61,164 @@ describe("DeleteDefinitionElements", () => {
60
61
  assert.isTrue(Id64.isValidId64(physicalObjectId1));
61
62
  assert.isTrue(Id64.isValidId64(physicalObjectId2));
62
63
  assert.isTrue(Id64.isValidId64(physicalObjectId3));
64
+ const txn = new EditTxn(iModelDb, "delete definition elements");
65
+ txn.start();
63
66
  let usedDefinitionElementIds;
64
- // make sure deleteDefinitionElements skips Elements that are not DefinitionElements
65
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([physicalObjectId1, physicalObjectId2, physicalObjectId3, subjectId]);
66
- assert.equal(usedDefinitionElementIds.size, 0);
67
- assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId1));
68
- assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId2));
69
- assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId3));
70
- assert.isDefined(iModelDb.elements.tryGetElement(subjectId));
71
- // make sure deleteDefinitionElements skips invalid Ids
72
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([Id64.invalid, Id64.invalid]);
73
- assert.equal(usedDefinitionElementIds.size, 0);
74
- // delete/deleteDefinitionElements for a used GeometryPart should fail
75
- assert.throws(() => iModelDb.elements.deleteElement(geometryPartId));
76
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([geometryPartId]);
77
- assert.isTrue(usedDefinitionElementIds.has(geometryPartId));
78
- assert.isDefined(iModelDb.elements.tryGetElement(geometryPartId));
79
- // deleteDefinitionElements for an unused GeometryPart should succeed, delete should still fail
80
- const unusedGeometryPartProps = {
81
- classFullName: GeometryPart.classFullName,
82
- model: definitionModelId,
83
- code: GeometryPart.createCode(iModelDb, definitionModelId, "Unused GeometryPart"),
84
- geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),
85
- };
86
- const unusedGeometryPartId = iModelDb.elements.insertElement(unusedGeometryPartProps);
87
- assert.isTrue(Id64.isValidId64(unusedGeometryPartId));
88
- assert.throws(() => iModelDb.elements.deleteElement(unusedGeometryPartId));
89
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedGeometryPartId]);
90
- assert.equal(usedDefinitionElementIds.size, 0);
91
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedGeometryPartId));
92
- // delete/deleteDefinitionElements for a used RenderMaterial should fail
93
- assert.throws(() => iModelDb.elements.deleteElement(renderMaterialId));
94
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([renderMaterialId]);
95
- assert.isTrue(usedDefinitionElementIds.has(renderMaterialId));
96
- assert.isDefined(iModelDb.elements.tryGetElement(renderMaterialId));
97
- // deleteDefinitionElements for an unused RenderMaterial should succeed, delete should still fail
98
- const unusedRenderMaterialId = RenderMaterialElement.insert(iModelDb, definitionModelId, "Unused RenderMaterial", { paletteName: "PaletteName" });
99
- assert.isTrue(Id64.isValidId64(unusedRenderMaterialId));
100
- assert.throws(() => iModelDb.elements.deleteElement(unusedRenderMaterialId));
101
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedRenderMaterialId]);
102
- assert.equal(usedDefinitionElementIds.size, 0);
103
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedRenderMaterialId));
104
- // delete/deleteDefinitionElements for a used Texture should fail
105
- assert.throws(() => iModelDb.elements.deleteElement(textureId));
106
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([textureId]);
107
- assert.isTrue(usedDefinitionElementIds.has(textureId));
108
- assert.isDefined(iModelDb.elements.tryGetElement(textureId));
109
- // deleteDefinitionElements for an unused Texture should succeed, delete should still fail
110
- const unusedTextureId = IModelTestUtils.insertTextureElement(iModelDb, definitionModelId, "Unused Texture");
111
- assert.isTrue(Id64.isValidId64(unusedTextureId));
112
- assert.throws(() => iModelDb.elements.deleteElement(unusedTextureId));
113
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedTextureId]);
114
- assert.equal(usedDefinitionElementIds.size, 0);
115
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedTextureId));
116
- // delete/deleteDefinitionElements for a used SpatialCategory should fail
117
- assert.throws(() => iModelDb.elements.deleteElement(spatialCategoryId));
118
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([spatialCategoryId]);
119
- assert.isTrue(usedDefinitionElementIds.has(spatialCategoryId));
120
- assert.isDefined(iModelDb.elements.tryGetElement(spatialCategoryId));
121
- // delete/deleteDefinitionElements for a default SubCategory should fail
122
- const spatialCategory = iModelDb.elements.getElement(spatialCategoryId, SpatialCategory);
123
- const defaultSpatialSubCategoryId = spatialCategory.myDefaultSubCategoryId();
124
- assert.throws(() => iModelDb.elements.deleteElement(defaultSpatialSubCategoryId));
125
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([defaultSpatialSubCategoryId]);
126
- assert.isTrue(usedDefinitionElementIds.has(defaultSpatialSubCategoryId));
127
- assert.isDefined(iModelDb.elements.tryGetElement(defaultSpatialSubCategoryId));
128
- // delete/deleteDefinitionElements for a used, non-default SubCategory should fail
129
- assert.throws(() => iModelDb.elements.deleteElement(subCategoryId));
130
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([subCategoryId]);
131
- assert.isTrue(usedDefinitionElementIds.has(subCategoryId));
132
- assert.isDefined(iModelDb.elements.tryGetElement(subCategoryId));
133
- // deleteDefinitionElements for an unused SubCategory should succeed, delete should still fail
134
- const unusedSubCategoryId = SubCategory.insert(iModelDb, spatialCategoryId, "Unused SubCategory", {});
135
- assert.isTrue(Id64.isValidId64(unusedSubCategoryId));
136
- assert.throws(() => iModelDb.elements.deleteElement(unusedSubCategoryId));
137
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedSubCategoryId]);
138
- assert.equal(usedDefinitionElementIds.size, 0);
139
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedSubCategoryId));
140
- // deleteDefinitionElements for an unused SpatialCategory should succeed, delete should still fail
141
- const unusedSpatialCategoryId = SpatialCategory.insert(iModelDb, definitionModelId, "Unused SpatialCategory", {});
142
- assert.isTrue(Id64.isValidId64(unusedSpatialCategoryId));
143
- const unusedSpatialCategory = iModelDb.elements.getElement(unusedSpatialCategoryId, SpatialCategory);
144
- const unusedSpatialCategoryDefaultSubCategoryId = unusedSpatialCategory.myDefaultSubCategoryId();
145
- assert.isTrue(Id64.isValidId64(unusedSpatialCategoryDefaultSubCategoryId));
146
- assert.throws(() => iModelDb.elements.deleteElement(unusedSpatialCategoryId));
147
- assert.throws(() => iModelDb.elements.deleteElement(unusedSpatialCategoryDefaultSubCategoryId));
148
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedSpatialCategoryId]);
149
- assert.equal(usedDefinitionElementIds.size, 0);
150
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryId));
151
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryDefaultSubCategoryId));
152
- // delete/deleteDefinitionElements of a used DrawingCategory should fail
153
- assert.throws(() => iModelDb.elements.deleteElement(drawingCategoryId));
154
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([drawingCategoryId]);
155
- assert.isTrue(usedDefinitionElementIds.has(drawingCategoryId));
156
- assert.isDefined(iModelDb.elements.tryGetElement(drawingCategoryId));
157
- // deleteDefinitionElements for an unused DrawingCategory should succeed, delete should still fail
158
- const unusedDrawingCategoryId = DrawingCategory.insert(iModelDb, definitionModelId, "Unused DrawingCategory", {});
159
- assert.isTrue(Id64.isValidId64(unusedDrawingCategoryId));
160
- const unusedDrawingCategory = iModelDb.elements.getElement(unusedDrawingCategoryId, DrawingCategory);
161
- const unusedDrawingSubCategoryId = unusedDrawingCategory.myDefaultSubCategoryId();
162
- assert.isTrue(Id64.isValidId64(unusedDrawingSubCategoryId));
163
- assert.throws(() => iModelDb.elements.deleteElement(unusedDrawingSubCategoryId));
164
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedDrawingCategoryId]);
165
- assert.equal(usedDefinitionElementIds.size, 0);
166
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingCategoryId));
167
- assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingSubCategoryId));
168
- // delete/deleteDefinitionElements of DefinitionElements used by an existing SpatialViewDefinition should fail
169
- assert.throws(() => iModelDb.elements.deleteElement(spatialCategorySelectorId));
170
- assert.throws(() => iModelDb.elements.deleteElement(modelSelectorId));
171
- assert.throws(() => iModelDb.elements.deleteElement(displayStyle3dId));
172
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);
173
- assert.isTrue(usedDefinitionElementIds.has(spatialCategorySelectorId));
174
- assert.isTrue(usedDefinitionElementIds.has(modelSelectorId));
175
- assert.isTrue(usedDefinitionElementIds.has(displayStyle3dId));
176
- assert.isDefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));
177
- assert.isDefined(iModelDb.elements.tryGetElement(modelSelectorId));
178
- assert.isDefined(iModelDb.elements.tryGetElement(displayStyle3dId));
179
- assert.isDefined(iModelDb.elements.tryGetElement(viewId));
180
- // deleteDefinitionElements should succeed when the list includes the SpatialViewDefinition as the only thing referencing other DefinitionElements, delete should still fail
181
- assert.throws(() => iModelDb.elements.deleteElement(viewId));
182
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([viewId, spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);
183
- assert.equal(usedDefinitionElementIds.size, 0);
184
- assert.isUndefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));
185
- assert.isUndefined(iModelDb.elements.tryGetElement(modelSelectorId));
186
- assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle3dId));
187
- assert.isUndefined(iModelDb.elements.tryGetElement(viewId));
188
- // delete/deleteDefinitionElements of DefinitionElements used by an existing DrawingViewDefinition should fail
189
- assert.throws(() => iModelDb.elements.deleteElement(drawingCategorySelectorId));
190
- assert.throws(() => iModelDb.elements.deleteElement(displayStyle2dId));
191
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([drawingCategorySelectorId, displayStyle2dId]);
192
- assert.isTrue(usedDefinitionElementIds.has(drawingCategorySelectorId));
193
- assert.isTrue(usedDefinitionElementIds.has(displayStyle2dId));
194
- assert.isDefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));
195
- assert.isDefined(iModelDb.elements.tryGetElement(displayStyle2dId));
196
- assert.isDefined(iModelDb.elements.tryGetElement(drawingViewId));
197
- // deleteDefinitionElements should succeed when the list includes the DrawingViewDefinition as the only thing referencing other DefinitionElements, delete should still fail
198
- assert.throws(() => iModelDb.elements.deleteElement(drawingViewId));
199
- usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([drawingViewId, drawingCategorySelectorId, displayStyle2dId]);
200
- assert.equal(usedDefinitionElementIds.size, 0);
201
- assert.isUndefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));
202
- assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle2dId));
203
- assert.isUndefined(iModelDb.elements.tryGetElement(drawingViewId));
204
- iModelDb.saveChanges();
205
- iModelDb.close();
67
+ const expectDeleteToThrow = (elementId) => assert.throws(() => txn.deleteElement(elementId));
68
+ try {
69
+ // make sure deleteDefinitionElements skips Elements that are not DefinitionElements
70
+ usedDefinitionElementIds = txn.deleteDefinitionElements([physicalObjectId1, physicalObjectId2, physicalObjectId3, subjectId]);
71
+ assert.equal(usedDefinitionElementIds.size, 0);
72
+ assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId1));
73
+ assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId2));
74
+ assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId3));
75
+ assert.isDefined(iModelDb.elements.tryGetElement(subjectId));
76
+ // make sure deleteDefinitionElements skips invalid Ids
77
+ usedDefinitionElementIds = txn.deleteDefinitionElements([Id64.invalid, Id64.invalid]);
78
+ assert.equal(usedDefinitionElementIds.size, 0);
79
+ // delete/deleteDefinitionElements for a used GeometryPart should fail
80
+ expectDeleteToThrow(geometryPartId);
81
+ usedDefinitionElementIds = txn.deleteDefinitionElements([geometryPartId]);
82
+ assert.isTrue(usedDefinitionElementIds.has(geometryPartId));
83
+ assert.isDefined(iModelDb.elements.tryGetElement(geometryPartId));
84
+ // deleteDefinitionElements for an unused GeometryPart should succeed, delete should still fail
85
+ const unusedGeometryPartProps = {
86
+ classFullName: GeometryPart.classFullName,
87
+ model: definitionModelId,
88
+ code: GeometryPart.createCode(iModelDb, definitionModelId, "Unused GeometryPart"),
89
+ geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),
90
+ };
91
+ const unusedGeometryPartId = txn.insertElement(unusedGeometryPartProps);
92
+ assert.isTrue(Id64.isValidId64(unusedGeometryPartId));
93
+ expectDeleteToThrow(unusedGeometryPartId);
94
+ usedDefinitionElementIds = txn.deleteDefinitionElements([unusedGeometryPartId]);
95
+ assert.equal(usedDefinitionElementIds.size, 0);
96
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedGeometryPartId));
97
+ // delete/deleteDefinitionElements for a used RenderMaterial should fail
98
+ expectDeleteToThrow(renderMaterialId);
99
+ usedDefinitionElementIds = txn.deleteDefinitionElements([renderMaterialId]);
100
+ assert.isTrue(usedDefinitionElementIds.has(renderMaterialId));
101
+ assert.isDefined(iModelDb.elements.tryGetElement(renderMaterialId));
102
+ // deleteDefinitionElements for an unused RenderMaterial should succeed, delete should still fail
103
+ const unusedRenderMaterial = RenderMaterialElement.create(iModelDb, definitionModelId, "Unused RenderMaterial", { paletteName: "PaletteName" });
104
+ const unusedRenderMaterialId = txn.insertElement(unusedRenderMaterial.toJSON());
105
+ assert.isTrue(Id64.isValidId64(unusedRenderMaterialId));
106
+ expectDeleteToThrow(unusedRenderMaterialId);
107
+ usedDefinitionElementIds = txn.deleteDefinitionElements([unusedRenderMaterialId]);
108
+ assert.equal(usedDefinitionElementIds.size, 0);
109
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedRenderMaterialId));
110
+ // delete/deleteDefinitionElements for a used Texture should fail
111
+ expectDeleteToThrow(textureId);
112
+ usedDefinitionElementIds = txn.deleteDefinitionElements([textureId]);
113
+ assert.isTrue(usedDefinitionElementIds.has(textureId));
114
+ assert.isDefined(iModelDb.elements.tryGetElement(textureId));
115
+ // deleteDefinitionElements for an unused Texture should succeed, delete should still fail
116
+ const textureData = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]).toString("base64");
117
+ const unusedTexture = Texture.createTexture(iModelDb, definitionModelId, "Unused Texture", ImageSourceFormat.Png, textureData, "Description for Unused Texture");
118
+ const unusedTextureId = txn.insertElement(unusedTexture.toJSON());
119
+ assert.isTrue(Id64.isValidId64(unusedTextureId));
120
+ expectDeleteToThrow(unusedTextureId);
121
+ usedDefinitionElementIds = txn.deleteDefinitionElements([unusedTextureId]);
122
+ assert.equal(usedDefinitionElementIds.size, 0);
123
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedTextureId));
124
+ // delete/deleteDefinitionElements for a used SpatialCategory should fail
125
+ expectDeleteToThrow(spatialCategoryId);
126
+ usedDefinitionElementIds = txn.deleteDefinitionElements([spatialCategoryId]);
127
+ assert.isTrue(usedDefinitionElementIds.has(spatialCategoryId));
128
+ assert.isDefined(iModelDb.elements.tryGetElement(spatialCategoryId));
129
+ // delete/deleteDefinitionElements for a default SubCategory should fail
130
+ const spatialCategory = iModelDb.elements.getElement(spatialCategoryId, SpatialCategory);
131
+ const defaultSpatialSubCategoryId = spatialCategory.myDefaultSubCategoryId();
132
+ expectDeleteToThrow(defaultSpatialSubCategoryId);
133
+ usedDefinitionElementIds = txn.deleteDefinitionElements([defaultSpatialSubCategoryId]);
134
+ assert.isTrue(usedDefinitionElementIds.has(defaultSpatialSubCategoryId));
135
+ assert.isDefined(iModelDb.elements.tryGetElement(defaultSpatialSubCategoryId));
136
+ // delete/deleteDefinitionElements for a used, non-default SubCategory should fail
137
+ expectDeleteToThrow(subCategoryId);
138
+ usedDefinitionElementIds = txn.deleteDefinitionElements([subCategoryId]);
139
+ assert.isTrue(usedDefinitionElementIds.has(subCategoryId));
140
+ assert.isDefined(iModelDb.elements.tryGetElement(subCategoryId));
141
+ // deleteDefinitionElements for an unused SubCategory should succeed, delete should still fail
142
+ const unusedSubCategory = SubCategory.create(iModelDb, spatialCategoryId, "Unused SubCategory", {});
143
+ const unusedSubCategoryId = txn.insertElement(unusedSubCategory.toJSON());
144
+ assert.isTrue(Id64.isValidId64(unusedSubCategoryId));
145
+ expectDeleteToThrow(unusedSubCategoryId);
146
+ usedDefinitionElementIds = txn.deleteDefinitionElements([unusedSubCategoryId]);
147
+ assert.equal(usedDefinitionElementIds.size, 0);
148
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedSubCategoryId));
149
+ // deleteDefinitionElements for an unused SpatialCategory should succeed, delete should still fail
150
+ const unusedSpatialCategory = SpatialCategory.create(iModelDb, definitionModelId, "Unused SpatialCategory");
151
+ const unusedSpatialCategoryId = txn.insertElement(unusedSpatialCategory.toJSON());
152
+ assert.isTrue(Id64.isValidId64(unusedSpatialCategoryId));
153
+ const reloadedSpatialCategory = iModelDb.elements.getElement(unusedSpatialCategoryId, SpatialCategory);
154
+ const unusedSpatialCategoryDefaultSubCategoryId = reloadedSpatialCategory.myDefaultSubCategoryId();
155
+ assert.isTrue(Id64.isValidId64(unusedSpatialCategoryDefaultSubCategoryId));
156
+ expectDeleteToThrow(unusedSpatialCategoryId);
157
+ expectDeleteToThrow(unusedSpatialCategoryDefaultSubCategoryId);
158
+ usedDefinitionElementIds = txn.deleteDefinitionElements([unusedSpatialCategoryId]);
159
+ assert.equal(usedDefinitionElementIds.size, 0);
160
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryId));
161
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryDefaultSubCategoryId));
162
+ // delete/deleteDefinitionElements of a used DrawingCategory should fail
163
+ expectDeleteToThrow(drawingCategoryId);
164
+ usedDefinitionElementIds = txn.deleteDefinitionElements([drawingCategoryId]);
165
+ assert.isTrue(usedDefinitionElementIds.has(drawingCategoryId));
166
+ assert.isDefined(iModelDb.elements.tryGetElement(drawingCategoryId));
167
+ // deleteDefinitionElements for an unused DrawingCategory should succeed, delete should still fail
168
+ const unusedDrawingCategory = DrawingCategory.create(iModelDb, definitionModelId, "Unused DrawingCategory");
169
+ const unusedDrawingCategoryId = txn.insertElement(unusedDrawingCategory.toJSON());
170
+ assert.isTrue(Id64.isValidId64(unusedDrawingCategoryId));
171
+ const reloadedDrawingCategory = iModelDb.elements.getElement(unusedDrawingCategoryId, DrawingCategory);
172
+ const unusedDrawingSubCategoryId = reloadedDrawingCategory.myDefaultSubCategoryId();
173
+ assert.isTrue(Id64.isValidId64(unusedDrawingSubCategoryId));
174
+ expectDeleteToThrow(unusedDrawingSubCategoryId);
175
+ usedDefinitionElementIds = txn.deleteDefinitionElements([unusedDrawingCategoryId]);
176
+ assert.equal(usedDefinitionElementIds.size, 0);
177
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingCategoryId));
178
+ assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingSubCategoryId));
179
+ // delete/deleteDefinitionElements of DefinitionElements used by an existing SpatialViewDefinition should fail
180
+ expectDeleteToThrow(spatialCategorySelectorId);
181
+ expectDeleteToThrow(modelSelectorId);
182
+ expectDeleteToThrow(displayStyle3dId);
183
+ usedDefinitionElementIds = txn.deleteDefinitionElements([spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);
184
+ assert.isTrue(usedDefinitionElementIds.has(spatialCategorySelectorId));
185
+ assert.isTrue(usedDefinitionElementIds.has(modelSelectorId));
186
+ assert.isTrue(usedDefinitionElementIds.has(displayStyle3dId));
187
+ assert.isDefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));
188
+ assert.isDefined(iModelDb.elements.tryGetElement(modelSelectorId));
189
+ assert.isDefined(iModelDb.elements.tryGetElement(displayStyle3dId));
190
+ assert.isDefined(iModelDb.elements.tryGetElement(viewId));
191
+ // deleteDefinitionElements should succeed when the list includes the SpatialViewDefinition as the only thing referencing other DefinitionElements, delete should still fail
192
+ expectDeleteToThrow(viewId);
193
+ usedDefinitionElementIds = txn.deleteDefinitionElements([viewId, spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);
194
+ assert.equal(usedDefinitionElementIds.size, 0);
195
+ assert.isUndefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));
196
+ assert.isUndefined(iModelDb.elements.tryGetElement(modelSelectorId));
197
+ assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle3dId));
198
+ assert.isUndefined(iModelDb.elements.tryGetElement(viewId));
199
+ // delete/deleteDefinitionElements of DefinitionElements used by an existing DrawingViewDefinition should fail
200
+ expectDeleteToThrow(drawingCategorySelectorId);
201
+ expectDeleteToThrow(displayStyle2dId);
202
+ usedDefinitionElementIds = txn.deleteDefinitionElements([drawingCategorySelectorId, displayStyle2dId]);
203
+ assert.isTrue(usedDefinitionElementIds.has(drawingCategorySelectorId));
204
+ assert.isTrue(usedDefinitionElementIds.has(displayStyle2dId));
205
+ assert.isDefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));
206
+ assert.isDefined(iModelDb.elements.tryGetElement(displayStyle2dId));
207
+ assert.isDefined(iModelDb.elements.tryGetElement(drawingViewId));
208
+ // deleteDefinitionElements should succeed when the list includes the DrawingViewDefinition as the only thing referencing other DefinitionElements, delete should still fail
209
+ expectDeleteToThrow(drawingViewId);
210
+ usedDefinitionElementIds = txn.deleteDefinitionElements([drawingViewId, drawingCategorySelectorId, displayStyle2dId]);
211
+ assert.equal(usedDefinitionElementIds.size, 0);
212
+ assert.isUndefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));
213
+ assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle2dId));
214
+ assert.isUndefined(iModelDb.elements.tryGetElement(drawingViewId));
215
+ txn.end();
216
+ }
217
+ finally {
218
+ if (txn.isActive)
219
+ txn.end("abandon");
220
+ iModelDb.close();
221
+ }
206
222
  });
207
223
  });
208
224
  //# sourceMappingURL=DeleteDefinitionElements.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteDefinitionElements.test.js","sourceRoot":"","sources":["../../../../src/test/element/DeleteDefinitionElements.test.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAW,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAqB,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,2BAA2B,EAC/I,aAAa,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAC7H,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IAE9F,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,UAAU,GAAW,eAAe,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC;QACzH,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC3G,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjD,6DAA6D;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAE,CAAC;QACzH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAE,CAAC;QAC7I,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAE,CAAC;QAC9I,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAE,CAAC;QAClI,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC;QACxI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAC3I,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QAChJ,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAE,CAAC;QAC9I,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAC3I,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAE,CAAC;QAC7I,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAE,CAAC;QACrI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAClJ,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAE,CAAC;QACtH,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEnD,IAAI,wBAAiC,CAAC;QAEtC,oFAAoF;QACpF,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5I,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7D,uDAAuD;QACvD,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACpG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAE/C,sEAAsE;QACtE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QACrE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QAElE,+FAA+F;QAC/F,MAAM,uBAAuB,GAAsB;YACjD,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;YACjF,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACzD,CAAC;QACF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC3E,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC9F,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE1E,wEAAwE;QACxE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEpE,iGAAiG;QACjG,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;QAClJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC7E,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAE5E,iEAAiE;QACjE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7D,0FAA0F;QAC1F,MAAM,eAAe,GAAG,eAAe,CAAC,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;QAC5G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QACtE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QAErE,yEAAyE;QACzE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAErE,wEAAwE;QACxE,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAC1G,MAAM,2BAA2B,GAAG,eAAe,CAAC,sBAAsB,EAAE,CAAC;QAC7E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAClF,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAE/E,kFAAkF;QAClF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAEjE,8FAA8F;QAC9F,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACtG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC1E,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEzE,kGAAkG;QAClG,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAClH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACzD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,uBAAuB,EAAE,eAAe,CAAC,CAAC;QACtH,MAAM,yCAAyC,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QACjG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAChG,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAE/F,wEAAwE;QACxE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC3F,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAErE,kGAAkG;QAClG,MAAM,uBAAuB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAClH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACzD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,uBAAuB,EAAE,eAAe,CAAC,CAAC;QACtH,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;QAClF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACjF,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjG,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAEhF,8GAA8G;QAC9G,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACtI,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAE1D,4KAA4K;QAC5K,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC9I,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5D,8GAA8G;QAC9G,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACrH,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAEjE,4KAA4K;QAC5K,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,wBAAwB,GAAG,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACpI,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnE,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { assert } from \"chai\";\nimport * as path from \"path\";\nimport { Id64, Id64Set } from \"@itwin/core-bentley\";\nimport { Point3d } from \"@itwin/core-geometry\";\nimport { GeometryPartProps, IModel } from \"@itwin/core-common\";\nimport {\n CategorySelector, DisplayStyle2d, DisplayStyle3d, DrawingCategory, DrawingViewDefinition, GeometryPart, IModelJsFs, InformationPartitionElement,\n ModelSelector, OrthographicViewDefinition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, Subject, Texture,\n} from \"../../core-backend\";\nimport { ExtensiveTestScenario, IModelTestUtils } from \"../IModelTestUtils\";\nimport { KnownTestLocations } from \"../KnownTestLocations\";\n\ndescribe(\"DeleteDefinitionElements\", () => {\n const outputDir: string = path.join(KnownTestLocations.outputDir, \"DeleteDefinitionElements\");\n\n before(async () => {\n if (!IModelJsFs.existsSync(KnownTestLocations.outputDir)) {\n IModelJsFs.mkdirSync(KnownTestLocations.outputDir);\n }\n if (!IModelJsFs.existsSync(outputDir)) {\n IModelJsFs.mkdirSync(outputDir);\n }\n });\n\n it(\"should delete if not used\", async () => {\n const iModelFile: string = IModelTestUtils.prepareOutputFile(\"DeleteDefinitionElements\", \"DeleteDefinitionElements.bim\");\n const iModelDb = SnapshotDb.createEmpty(iModelFile, { rootSubject: { name: \"DeleteDefinitionElements\" } });\n await ExtensiveTestScenario.prepareDb(iModelDb);\n await ExtensiveTestScenario.populateDb(iModelDb);\n\n // Get ElementIds of DefinitionElements created by populateDb\n const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, \"Subject\"))!;\n const definitionModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, \"Definition\"))!;\n const spatialCategoryId = iModelDb.elements.queryElementIdByCode(SpatialCategory.createCode(iModelDb, definitionModelId, \"SpatialCategory\"))!;\n const subCategoryId = iModelDb.elements.queryElementIdByCode(SubCategory.createCode(iModelDb, spatialCategoryId, \"SubCategory\"))!;\n const spatialCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, \"SpatialCategories\"))!;\n const modelSelectorId = iModelDb.elements.queryElementIdByCode(ModelSelector.createCode(iModelDb, definitionModelId, \"SpatialModels\"))!;\n const displayStyle3dId = iModelDb.elements.queryElementIdByCode(DisplayStyle3d.createCode(iModelDb, definitionModelId, \"DisplayStyle3d\"))!;\n const viewId = iModelDb.elements.queryElementIdByCode(OrthographicViewDefinition.createCode(iModelDb, definitionModelId, \"Orthographic View\"))!;\n const drawingCategoryId = iModelDb.elements.queryElementIdByCode(DrawingCategory.createCode(iModelDb, definitionModelId, \"DrawingCategory\"))!;\n const drawingCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, \"DrawingCategories\"))!;\n const displayStyle2dId = iModelDb.elements.queryElementIdByCode(DisplayStyle2d.createCode(iModelDb, definitionModelId, \"DisplayStyle2d\"))!;\n const drawingViewId = iModelDb.elements.queryElementIdByCode(DrawingViewDefinition.createCode(iModelDb, definitionModelId, \"Drawing View\"))!;\n const geometryPartId = iModelDb.elements.queryElementIdByCode(GeometryPart.createCode(iModelDb, definitionModelId, \"GeometryPart\"))!;\n const renderMaterialId = iModelDb.elements.queryElementIdByCode(RenderMaterialElement.createCode(iModelDb, definitionModelId, \"RenderMaterial\"))!;\n const textureId = iModelDb.elements.queryElementIdByCode(Texture.createCode(iModelDb, definitionModelId, \"Texture\"))!;\n const physicalObjectId1 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject1\");\n const physicalObjectId2 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject2\");\n const physicalObjectId3 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject3\");\n assert.isTrue(Id64.isValidId64(spatialCategoryId));\n assert.isTrue(Id64.isValidId64(subCategoryId));\n assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));\n assert.isTrue(Id64.isValidId64(modelSelectorId));\n assert.isTrue(Id64.isValidId64(displayStyle3dId));\n assert.isTrue(Id64.isValidId64(viewId));\n assert.isTrue(Id64.isValidId64(drawingCategoryId));\n assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));\n assert.isTrue(Id64.isValidId64(displayStyle2dId));\n assert.isTrue(Id64.isValidId64(drawingViewId));\n assert.isTrue(Id64.isValidId64(geometryPartId));\n assert.isTrue(Id64.isValidId64(renderMaterialId));\n assert.isTrue(Id64.isValidId64(textureId));\n assert.isTrue(Id64.isValidId64(physicalObjectId1));\n assert.isTrue(Id64.isValidId64(physicalObjectId2));\n assert.isTrue(Id64.isValidId64(physicalObjectId3));\n\n let usedDefinitionElementIds: Id64Set;\n\n // make sure deleteDefinitionElements skips Elements that are not DefinitionElements\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([physicalObjectId1, physicalObjectId2, physicalObjectId3, subjectId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId1));\n assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId2));\n assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId3));\n assert.isDefined(iModelDb.elements.tryGetElement(subjectId));\n\n // make sure deleteDefinitionElements skips invalid Ids\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([Id64.invalid, Id64.invalid]);\n assert.equal(usedDefinitionElementIds.size, 0);\n\n // delete/deleteDefinitionElements for a used GeometryPart should fail\n assert.throws(() => iModelDb.elements.deleteElement(geometryPartId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([geometryPartId]);\n assert.isTrue(usedDefinitionElementIds.has(geometryPartId));\n assert.isDefined(iModelDb.elements.tryGetElement(geometryPartId));\n\n // deleteDefinitionElements for an unused GeometryPart should succeed, delete should still fail\n const unusedGeometryPartProps: GeometryPartProps = {\n classFullName: GeometryPart.classFullName,\n model: definitionModelId,\n code: GeometryPart.createCode(iModelDb, definitionModelId, \"Unused GeometryPart\"),\n geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),\n };\n const unusedGeometryPartId = iModelDb.elements.insertElement(unusedGeometryPartProps);\n assert.isTrue(Id64.isValidId64(unusedGeometryPartId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedGeometryPartId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedGeometryPartId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedGeometryPartId));\n\n // delete/deleteDefinitionElements for a used RenderMaterial should fail\n assert.throws(() => iModelDb.elements.deleteElement(renderMaterialId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([renderMaterialId]);\n assert.isTrue(usedDefinitionElementIds.has(renderMaterialId));\n assert.isDefined(iModelDb.elements.tryGetElement(renderMaterialId));\n\n // deleteDefinitionElements for an unused RenderMaterial should succeed, delete should still fail\n const unusedRenderMaterialId = RenderMaterialElement.insert(iModelDb, definitionModelId, \"Unused RenderMaterial\", { paletteName: \"PaletteName\" });\n assert.isTrue(Id64.isValidId64(unusedRenderMaterialId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedRenderMaterialId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedRenderMaterialId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedRenderMaterialId));\n\n // delete/deleteDefinitionElements for a used Texture should fail\n assert.throws(() => iModelDb.elements.deleteElement(textureId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([textureId]);\n assert.isTrue(usedDefinitionElementIds.has(textureId));\n assert.isDefined(iModelDb.elements.tryGetElement(textureId));\n\n // deleteDefinitionElements for an unused Texture should succeed, delete should still fail\n const unusedTextureId = IModelTestUtils.insertTextureElement(iModelDb, definitionModelId, \"Unused Texture\");\n assert.isTrue(Id64.isValidId64(unusedTextureId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedTextureId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedTextureId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedTextureId));\n\n // delete/deleteDefinitionElements for a used SpatialCategory should fail\n assert.throws(() => iModelDb.elements.deleteElement(spatialCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([spatialCategoryId]);\n assert.isTrue(usedDefinitionElementIds.has(spatialCategoryId));\n assert.isDefined(iModelDb.elements.tryGetElement(spatialCategoryId));\n\n // delete/deleteDefinitionElements for a default SubCategory should fail\n const spatialCategory = iModelDb.elements.getElement<SpatialCategory>(spatialCategoryId, SpatialCategory);\n const defaultSpatialSubCategoryId = spatialCategory.myDefaultSubCategoryId();\n assert.throws(() => iModelDb.elements.deleteElement(defaultSpatialSubCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([defaultSpatialSubCategoryId]);\n assert.isTrue(usedDefinitionElementIds.has(defaultSpatialSubCategoryId));\n assert.isDefined(iModelDb.elements.tryGetElement(defaultSpatialSubCategoryId));\n\n // delete/deleteDefinitionElements for a used, non-default SubCategory should fail\n assert.throws(() => iModelDb.elements.deleteElement(subCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([subCategoryId]);\n assert.isTrue(usedDefinitionElementIds.has(subCategoryId));\n assert.isDefined(iModelDb.elements.tryGetElement(subCategoryId));\n\n // deleteDefinitionElements for an unused SubCategory should succeed, delete should still fail\n const unusedSubCategoryId = SubCategory.insert(iModelDb, spatialCategoryId, \"Unused SubCategory\", {});\n assert.isTrue(Id64.isValidId64(unusedSubCategoryId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedSubCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedSubCategoryId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedSubCategoryId));\n\n // deleteDefinitionElements for an unused SpatialCategory should succeed, delete should still fail\n const unusedSpatialCategoryId = SpatialCategory.insert(iModelDb, definitionModelId, \"Unused SpatialCategory\", {});\n assert.isTrue(Id64.isValidId64(unusedSpatialCategoryId));\n const unusedSpatialCategory = iModelDb.elements.getElement<SpatialCategory>(unusedSpatialCategoryId, SpatialCategory);\n const unusedSpatialCategoryDefaultSubCategoryId = unusedSpatialCategory.myDefaultSubCategoryId();\n assert.isTrue(Id64.isValidId64(unusedSpatialCategoryDefaultSubCategoryId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedSpatialCategoryId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedSpatialCategoryDefaultSubCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedSpatialCategoryId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryId));\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryDefaultSubCategoryId));\n\n // delete/deleteDefinitionElements of a used DrawingCategory should fail\n assert.throws(() => iModelDb.elements.deleteElement(drawingCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([drawingCategoryId]);\n assert.isTrue(usedDefinitionElementIds.has(drawingCategoryId));\n assert.isDefined(iModelDb.elements.tryGetElement(drawingCategoryId));\n\n // deleteDefinitionElements for an unused DrawingCategory should succeed, delete should still fail\n const unusedDrawingCategoryId = DrawingCategory.insert(iModelDb, definitionModelId, \"Unused DrawingCategory\", {});\n assert.isTrue(Id64.isValidId64(unusedDrawingCategoryId));\n const unusedDrawingCategory = iModelDb.elements.getElement<DrawingCategory>(unusedDrawingCategoryId, DrawingCategory);\n const unusedDrawingSubCategoryId = unusedDrawingCategory.myDefaultSubCategoryId();\n assert.isTrue(Id64.isValidId64(unusedDrawingSubCategoryId));\n assert.throws(() => iModelDb.elements.deleteElement(unusedDrawingSubCategoryId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([unusedDrawingCategoryId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingCategoryId));\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingSubCategoryId));\n\n // delete/deleteDefinitionElements of DefinitionElements used by an existing SpatialViewDefinition should fail\n assert.throws(() => iModelDb.elements.deleteElement(spatialCategorySelectorId));\n assert.throws(() => iModelDb.elements.deleteElement(modelSelectorId));\n assert.throws(() => iModelDb.elements.deleteElement(displayStyle3dId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);\n assert.isTrue(usedDefinitionElementIds.has(spatialCategorySelectorId));\n assert.isTrue(usedDefinitionElementIds.has(modelSelectorId));\n assert.isTrue(usedDefinitionElementIds.has(displayStyle3dId));\n assert.isDefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));\n assert.isDefined(iModelDb.elements.tryGetElement(modelSelectorId));\n assert.isDefined(iModelDb.elements.tryGetElement(displayStyle3dId));\n assert.isDefined(iModelDb.elements.tryGetElement(viewId));\n\n // deleteDefinitionElements should succeed when the list includes the SpatialViewDefinition as the only thing referencing other DefinitionElements, delete should still fail\n assert.throws(() => iModelDb.elements.deleteElement(viewId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([viewId, spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));\n assert.isUndefined(iModelDb.elements.tryGetElement(modelSelectorId));\n assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle3dId));\n assert.isUndefined(iModelDb.elements.tryGetElement(viewId));\n\n // delete/deleteDefinitionElements of DefinitionElements used by an existing DrawingViewDefinition should fail\n assert.throws(() => iModelDb.elements.deleteElement(drawingCategorySelectorId));\n assert.throws(() => iModelDb.elements.deleteElement(displayStyle2dId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([drawingCategorySelectorId, displayStyle2dId]);\n assert.isTrue(usedDefinitionElementIds.has(drawingCategorySelectorId));\n assert.isTrue(usedDefinitionElementIds.has(displayStyle2dId));\n assert.isDefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));\n assert.isDefined(iModelDb.elements.tryGetElement(displayStyle2dId));\n assert.isDefined(iModelDb.elements.tryGetElement(drawingViewId));\n\n // deleteDefinitionElements should succeed when the list includes the DrawingViewDefinition as the only thing referencing other DefinitionElements, delete should still fail\n assert.throws(() => iModelDb.elements.deleteElement(drawingViewId));\n usedDefinitionElementIds = iModelDb.elements.deleteDefinitionElements([drawingViewId, drawingCategorySelectorId, displayStyle2dId]);\n assert.equal(usedDefinitionElementIds.size, 0);\n assert.isUndefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));\n assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle2dId));\n assert.isUndefined(iModelDb.elements.tryGetElement(drawingViewId));\n\n iModelDb.saveChanges();\n iModelDb.close();\n });\n});\n"]}
1
+ {"version":3,"file":"DeleteDefinitionElements.test.js","sourceRoot":"","sources":["../../../../src/test/element/DeleteDefinitionElements.test.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAW,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAqB,iBAAiB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,2BAA2B,EAC/I,aAAa,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAC7H,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IAE9F,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,UAAU,GAAW,eAAe,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC;QACzH,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC3G,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEjD,6DAA6D;QAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAE,CAAC;QACzH,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAE,CAAC;QAC7I,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAE,CAAC;QAC9I,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAE,CAAC;QAClI,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC;QACxI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAC3I,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QAChJ,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAE,CAAC;QAC9I,MAAM,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAE,CAAC;QACzJ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAC3I,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAE,CAAC;QAC7I,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAE,CAAC;QACrI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAE,CAAC;QAClJ,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAE,CAAC;QACtH,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEnD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAChE,GAAG,CAAC,KAAK,EAAE,CAAC;QAEZ,IAAI,wBAAiC,CAAC;QACtC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAErG,IAAI,CAAC;YACH,oFAAoF;YACpF,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAC;YAC9H,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAE7D,uDAAuD;YACvD,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAE/C,sEAAsE;YACtE,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACpC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;YAElE,+FAA+F;YAC/F,MAAM,uBAAuB,GAAsB;gBACjD,aAAa,EAAE,YAAY,CAAC,aAAa;gBACzC,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;gBACjF,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aACzD,CAAC;YACF,MAAM,oBAAoB,GAAG,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACtD,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;YAC1C,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAE1E,wEAAwE;YACxE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACtC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5E,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAEpE,iGAAiG;YACjG,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAChJ,MAAM,sBAAsB,GAAG,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC;YACxD,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;YAC5C,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAE5E,iEAAiE;YACjE,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC/B,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAE7D,0FAA0F;YAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChjB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,gCAAgC,CAAC,CAAC;YACjK,MAAM,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;YACjD,mBAAmB,CAAC,eAAe,CAAC,CAAC;YACrC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;YAErE,yEAAyE;YACzE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YACvC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAErE,wEAAwE;YACxE,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,iBAAiB,EAAE,eAAe,CAAC,CAAC;YAC1G,MAAM,2BAA2B,GAAG,eAAe,CAAC,sBAAsB,EAAE,CAAC;YAC7E,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;YACjD,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAE/E,kFAAkF;YAClF,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACnC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YAEjE,8FAA8F;YAC9F,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;YACpG,MAAM,mBAAmB,GAAG,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrD,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YACzC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAEzE,kGAAkG;YAClG,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;YAC5G,MAAM,uBAAuB,GAAG,GAAG,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACzD,MAAM,uBAAuB,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,uBAAuB,EAAE,eAAe,CAAC,CAAC;YACxH,MAAM,yCAAyC,GAAG,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;YACnG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,CAAC;YAC3E,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;YAC7C,mBAAmB,CAAC,yCAAyC,CAAC,CAAC;YAC/D,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yCAAyC,CAAC,CAAC,CAAC;YAE/F,wEAAwE;YACxE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YACvC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAErE,kGAAkG;YAClG,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;YAC5G,MAAM,uBAAuB,GAAG,GAAG,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACzD,MAAM,uBAAuB,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAkB,uBAAuB,EAAE,eAAe,CAAC,CAAC;YACxH,MAAM,0BAA0B,GAAG,uBAAuB,CAAC,sBAAsB,EAAE,CAAC;YACpF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAC5D,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;YAChD,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnF,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAEhF,8GAA8G;YAC9G,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YAC/C,mBAAmB,CAAC,eAAe,CAAC,CAAC;YACrC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACtC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxH,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAE1D,4KAA4K;YAC5K,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC5B,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAChI,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAE5D,8GAA8G;YAC9G,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YAC/C,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACtC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACvG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC7E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YAEjE,4KAA4K;YAC5K,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACnC,wBAAwB,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACtH,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC/E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YAEnE,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,GAAG,CAAC,QAAQ;gBACd,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAErB,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { assert } from \"chai\";\r\nimport * as path from \"path\";\r\nimport { Id64, Id64Set } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { GeometryPartProps, ImageSourceFormat, IModel } from \"@itwin/core-common\";\r\nimport { EditTxn } from \"../../EditTxn\";\r\nimport {\r\n CategorySelector, DisplayStyle2d, DisplayStyle3d, DrawingCategory, DrawingViewDefinition, GeometryPart, IModelJsFs, InformationPartitionElement,\r\n ModelSelector, OrthographicViewDefinition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, Subject, Texture,\r\n} from \"../../core-backend\";\r\nimport { ExtensiveTestScenario, IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\n\r\ndescribe(\"DeleteDefinitionElements\", () => {\r\n const outputDir: string = path.join(KnownTestLocations.outputDir, \"DeleteDefinitionElements\");\r\n\r\n before(async () => {\r\n if (!IModelJsFs.existsSync(KnownTestLocations.outputDir)) {\r\n IModelJsFs.mkdirSync(KnownTestLocations.outputDir);\r\n }\r\n if (!IModelJsFs.existsSync(outputDir)) {\r\n IModelJsFs.mkdirSync(outputDir);\r\n }\r\n });\r\n\r\n it(\"should delete if not used\", async () => {\r\n const iModelFile: string = IModelTestUtils.prepareOutputFile(\"DeleteDefinitionElements\", \"DeleteDefinitionElements.bim\");\r\n const iModelDb = SnapshotDb.createEmpty(iModelFile, { rootSubject: { name: \"DeleteDefinitionElements\" } });\r\n await ExtensiveTestScenario.prepareDb(iModelDb);\r\n await ExtensiveTestScenario.populateDb(iModelDb);\r\n\r\n // Get ElementIds of DefinitionElements created by populateDb\r\n const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, \"Subject\"))!;\r\n const definitionModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, \"Definition\"))!;\r\n const spatialCategoryId = iModelDb.elements.queryElementIdByCode(SpatialCategory.createCode(iModelDb, definitionModelId, \"SpatialCategory\"))!;\r\n const subCategoryId = iModelDb.elements.queryElementIdByCode(SubCategory.createCode(iModelDb, spatialCategoryId, \"SubCategory\"))!;\r\n const spatialCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, \"SpatialCategories\"))!;\r\n const modelSelectorId = iModelDb.elements.queryElementIdByCode(ModelSelector.createCode(iModelDb, definitionModelId, \"SpatialModels\"))!;\r\n const displayStyle3dId = iModelDb.elements.queryElementIdByCode(DisplayStyle3d.createCode(iModelDb, definitionModelId, \"DisplayStyle3d\"))!;\r\n const viewId = iModelDb.elements.queryElementIdByCode(OrthographicViewDefinition.createCode(iModelDb, definitionModelId, \"Orthographic View\"))!;\r\n const drawingCategoryId = iModelDb.elements.queryElementIdByCode(DrawingCategory.createCode(iModelDb, definitionModelId, \"DrawingCategory\"))!;\r\n const drawingCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, \"DrawingCategories\"))!;\r\n const displayStyle2dId = iModelDb.elements.queryElementIdByCode(DisplayStyle2d.createCode(iModelDb, definitionModelId, \"DisplayStyle2d\"))!;\r\n const drawingViewId = iModelDb.elements.queryElementIdByCode(DrawingViewDefinition.createCode(iModelDb, definitionModelId, \"Drawing View\"))!;\r\n const geometryPartId = iModelDb.elements.queryElementIdByCode(GeometryPart.createCode(iModelDb, definitionModelId, \"GeometryPart\"))!;\r\n const renderMaterialId = iModelDb.elements.queryElementIdByCode(RenderMaterialElement.createCode(iModelDb, definitionModelId, \"RenderMaterial\"))!;\r\n const textureId = iModelDb.elements.queryElementIdByCode(Texture.createCode(iModelDb, definitionModelId, \"Texture\"))!;\r\n const physicalObjectId1 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject1\");\r\n const physicalObjectId2 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject2\");\r\n const physicalObjectId3 = IModelTestUtils.queryByUserLabel(iModelDb, \"PhysicalObject3\");\r\n assert.isTrue(Id64.isValidId64(spatialCategoryId));\r\n assert.isTrue(Id64.isValidId64(subCategoryId));\r\n assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));\r\n assert.isTrue(Id64.isValidId64(modelSelectorId));\r\n assert.isTrue(Id64.isValidId64(displayStyle3dId));\r\n assert.isTrue(Id64.isValidId64(viewId));\r\n assert.isTrue(Id64.isValidId64(drawingCategoryId));\r\n assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));\r\n assert.isTrue(Id64.isValidId64(displayStyle2dId));\r\n assert.isTrue(Id64.isValidId64(drawingViewId));\r\n assert.isTrue(Id64.isValidId64(geometryPartId));\r\n assert.isTrue(Id64.isValidId64(renderMaterialId));\r\n assert.isTrue(Id64.isValidId64(textureId));\r\n assert.isTrue(Id64.isValidId64(physicalObjectId1));\r\n assert.isTrue(Id64.isValidId64(physicalObjectId2));\r\n assert.isTrue(Id64.isValidId64(physicalObjectId3));\r\n\r\n const txn = new EditTxn(iModelDb, \"delete definition elements\");\r\n txn.start();\r\n\r\n let usedDefinitionElementIds: Id64Set;\r\n const expectDeleteToThrow = (elementId: string) => assert.throws(() => txn.deleteElement(elementId));\r\n\r\n try {\r\n // make sure deleteDefinitionElements skips Elements that are not DefinitionElements\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([physicalObjectId1, physicalObjectId2, physicalObjectId3, subjectId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId1));\r\n assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId2));\r\n assert.isDefined(iModelDb.elements.tryGetElement(physicalObjectId3));\r\n assert.isDefined(iModelDb.elements.tryGetElement(subjectId));\r\n\r\n // make sure deleteDefinitionElements skips invalid Ids\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([Id64.invalid, Id64.invalid]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n\r\n // delete/deleteDefinitionElements for a used GeometryPart should fail\r\n expectDeleteToThrow(geometryPartId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([geometryPartId]);\r\n assert.isTrue(usedDefinitionElementIds.has(geometryPartId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(geometryPartId));\r\n\r\n // deleteDefinitionElements for an unused GeometryPart should succeed, delete should still fail\r\n const unusedGeometryPartProps: GeometryPartProps = {\r\n classFullName: GeometryPart.classFullName,\r\n model: definitionModelId,\r\n code: GeometryPart.createCode(iModelDb, definitionModelId, \"Unused GeometryPart\"),\r\n geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),\r\n };\r\n const unusedGeometryPartId = txn.insertElement(unusedGeometryPartProps);\r\n assert.isTrue(Id64.isValidId64(unusedGeometryPartId));\r\n expectDeleteToThrow(unusedGeometryPartId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([unusedGeometryPartId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedGeometryPartId));\r\n\r\n // delete/deleteDefinitionElements for a used RenderMaterial should fail\r\n expectDeleteToThrow(renderMaterialId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([renderMaterialId]);\r\n assert.isTrue(usedDefinitionElementIds.has(renderMaterialId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(renderMaterialId));\r\n\r\n // deleteDefinitionElements for an unused RenderMaterial should succeed, delete should still fail\r\n const unusedRenderMaterial = RenderMaterialElement.create(iModelDb, definitionModelId, \"Unused RenderMaterial\", { paletteName: \"PaletteName\" });\r\n const unusedRenderMaterialId = txn.insertElement(unusedRenderMaterial.toJSON());\r\n assert.isTrue(Id64.isValidId64(unusedRenderMaterialId));\r\n expectDeleteToThrow(unusedRenderMaterialId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([unusedRenderMaterialId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedRenderMaterialId));\r\n\r\n // delete/deleteDefinitionElements for a used Texture should fail\r\n expectDeleteToThrow(textureId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([textureId]);\r\n assert.isTrue(usedDefinitionElementIds.has(textureId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(textureId));\r\n\r\n // deleteDefinitionElements for an unused Texture should succeed, delete should still fail\r\n const textureData = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]).toString(\"base64\");\r\n const unusedTexture = Texture.createTexture(iModelDb, definitionModelId, \"Unused Texture\", ImageSourceFormat.Png, textureData, \"Description for Unused Texture\");\r\n const unusedTextureId = txn.insertElement(unusedTexture.toJSON());\r\n assert.isTrue(Id64.isValidId64(unusedTextureId));\r\n expectDeleteToThrow(unusedTextureId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([unusedTextureId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedTextureId));\r\n\r\n // delete/deleteDefinitionElements for a used SpatialCategory should fail\r\n expectDeleteToThrow(spatialCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([spatialCategoryId]);\r\n assert.isTrue(usedDefinitionElementIds.has(spatialCategoryId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(spatialCategoryId));\r\n\r\n // delete/deleteDefinitionElements for a default SubCategory should fail\r\n const spatialCategory = iModelDb.elements.getElement<SpatialCategory>(spatialCategoryId, SpatialCategory);\r\n const defaultSpatialSubCategoryId = spatialCategory.myDefaultSubCategoryId();\r\n expectDeleteToThrow(defaultSpatialSubCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([defaultSpatialSubCategoryId]);\r\n assert.isTrue(usedDefinitionElementIds.has(defaultSpatialSubCategoryId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(defaultSpatialSubCategoryId));\r\n\r\n // delete/deleteDefinitionElements for a used, non-default SubCategory should fail\r\n expectDeleteToThrow(subCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([subCategoryId]);\r\n assert.isTrue(usedDefinitionElementIds.has(subCategoryId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(subCategoryId));\r\n\r\n // deleteDefinitionElements for an unused SubCategory should succeed, delete should still fail\r\n const unusedSubCategory = SubCategory.create(iModelDb, spatialCategoryId, \"Unused SubCategory\", {});\r\n const unusedSubCategoryId = txn.insertElement(unusedSubCategory.toJSON());\r\n assert.isTrue(Id64.isValidId64(unusedSubCategoryId));\r\n expectDeleteToThrow(unusedSubCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([unusedSubCategoryId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedSubCategoryId));\r\n\r\n // deleteDefinitionElements for an unused SpatialCategory should succeed, delete should still fail\r\n const unusedSpatialCategory = SpatialCategory.create(iModelDb, definitionModelId, \"Unused SpatialCategory\");\r\n const unusedSpatialCategoryId = txn.insertElement(unusedSpatialCategory.toJSON());\r\n assert.isTrue(Id64.isValidId64(unusedSpatialCategoryId));\r\n const reloadedSpatialCategory = iModelDb.elements.getElement<SpatialCategory>(unusedSpatialCategoryId, SpatialCategory);\r\n const unusedSpatialCategoryDefaultSubCategoryId = reloadedSpatialCategory.myDefaultSubCategoryId();\r\n assert.isTrue(Id64.isValidId64(unusedSpatialCategoryDefaultSubCategoryId));\r\n expectDeleteToThrow(unusedSpatialCategoryId);\r\n expectDeleteToThrow(unusedSpatialCategoryDefaultSubCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([unusedSpatialCategoryId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedSpatialCategoryDefaultSubCategoryId));\r\n\r\n // delete/deleteDefinitionElements of a used DrawingCategory should fail\r\n expectDeleteToThrow(drawingCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([drawingCategoryId]);\r\n assert.isTrue(usedDefinitionElementIds.has(drawingCategoryId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(drawingCategoryId));\r\n\r\n // deleteDefinitionElements for an unused DrawingCategory should succeed, delete should still fail\r\n const unusedDrawingCategory = DrawingCategory.create(iModelDb, definitionModelId, \"Unused DrawingCategory\");\r\n const unusedDrawingCategoryId = txn.insertElement(unusedDrawingCategory.toJSON());\r\n assert.isTrue(Id64.isValidId64(unusedDrawingCategoryId));\r\n const reloadedDrawingCategory = iModelDb.elements.getElement<DrawingCategory>(unusedDrawingCategoryId, DrawingCategory);\r\n const unusedDrawingSubCategoryId = reloadedDrawingCategory.myDefaultSubCategoryId();\r\n assert.isTrue(Id64.isValidId64(unusedDrawingSubCategoryId));\r\n expectDeleteToThrow(unusedDrawingSubCategoryId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([unusedDrawingCategoryId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingCategoryId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(unusedDrawingSubCategoryId));\r\n\r\n // delete/deleteDefinitionElements of DefinitionElements used by an existing SpatialViewDefinition should fail\r\n expectDeleteToThrow(spatialCategorySelectorId);\r\n expectDeleteToThrow(modelSelectorId);\r\n expectDeleteToThrow(displayStyle3dId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);\r\n assert.isTrue(usedDefinitionElementIds.has(spatialCategorySelectorId));\r\n assert.isTrue(usedDefinitionElementIds.has(modelSelectorId));\r\n assert.isTrue(usedDefinitionElementIds.has(displayStyle3dId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(modelSelectorId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(displayStyle3dId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(viewId));\r\n\r\n // deleteDefinitionElements should succeed when the list includes the SpatialViewDefinition as the only thing referencing other DefinitionElements, delete should still fail\r\n expectDeleteToThrow(viewId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([viewId, spatialCategorySelectorId, modelSelectorId, displayStyle3dId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(spatialCategorySelectorId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(modelSelectorId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle3dId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(viewId));\r\n\r\n // delete/deleteDefinitionElements of DefinitionElements used by an existing DrawingViewDefinition should fail\r\n expectDeleteToThrow(drawingCategorySelectorId);\r\n expectDeleteToThrow(displayStyle2dId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([drawingCategorySelectorId, displayStyle2dId]);\r\n assert.isTrue(usedDefinitionElementIds.has(drawingCategorySelectorId));\r\n assert.isTrue(usedDefinitionElementIds.has(displayStyle2dId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(displayStyle2dId));\r\n assert.isDefined(iModelDb.elements.tryGetElement(drawingViewId));\r\n\r\n // deleteDefinitionElements should succeed when the list includes the DrawingViewDefinition as the only thing referencing other DefinitionElements, delete should still fail\r\n expectDeleteToThrow(drawingViewId);\r\n usedDefinitionElementIds = txn.deleteDefinitionElements([drawingViewId, drawingCategorySelectorId, displayStyle2dId]);\r\n assert.equal(usedDefinitionElementIds.size, 0);\r\n assert.isUndefined(iModelDb.elements.tryGetElement(drawingCategorySelectorId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(displayStyle2dId));\r\n assert.isUndefined(iModelDb.elements.tryGetElement(drawingViewId));\r\n\r\n txn.end();\r\n } finally {\r\n if (txn.isActive)\r\n txn.end(\"abandon\");\r\n\r\n iModelDb.close();\r\n }\r\n });\r\n});\r\n"]}