@itwin/core-backend 4.11.0-dev.2 → 4.11.0-dev.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -1
- package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
- package/lib/cjs/BisCoreSchema.js +2 -0
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
- package/lib/cjs/ChangeSummaryManager.js +12 -5
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
- package/lib/cjs/ChangesetECAdaptor.js +1 -0
- package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +2 -0
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +46 -1
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +90 -0
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +200 -2
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +237 -5
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +2 -0
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +4 -0
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +13 -1
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +41 -5
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +1 -1
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/Relationship.d.ts.map +1 -1
- package/lib/cjs/Relationship.js +3 -1
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/ViewStore.d.ts.map +1 -1
- package/lib/cjs/ViewStore.js +2 -1
- package/lib/cjs/ViewStore.js.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
- package/lib/cjs/internal/ChannelAdmin.js +2 -0
- package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
- package/lib/cjs/rpc/multipart.d.ts.map +1 -1
- package/lib/cjs/rpc/multipart.js +2 -1
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/web/request.d.ts.map +1 -1
- package/lib/cjs/rpc/web/request.js +2 -1
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +3 -2
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/package.json +18 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementTreeWalker.js","sourceRoot":"","sources":["../../src/ElementTreeWalker.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Elements\n */\nimport { assert, DbResult, Id64Array, Id64String, Logger, LogLevel } from \"@itwin/core-bentley\";\nimport { IModel } from \"@itwin/core-common\";\nimport { BackendLoggerCategory } from \"./BackendLoggerCategory\";\nimport { DefinitionContainer, DefinitionElement, DefinitionPartition, Element, Subject } from \"./Element\";\nimport { IModelDb } from \"./IModelDb\";\nimport { DefinitionModel, Model } from \"./Model\";\n\nconst loggerCategory = `${BackendLoggerCategory.IModelDb}.ElementTreeWalker`;\n\n/** @beta */\nexport interface ElementTreeWalkerModelInfo { model: Model, isDefinitionModel: boolean }\n\nfunction sortChildrenBeforeParents(iModel: IModelDb, ids: Id64Array): Array<Id64Array> {\n const children: Id64Array = [];\n const parents: Id64Array = [];\n for (const eid of ids) {\n const parentId = iModel.elements.queryParent(eid);\n if (parentId !== undefined && ids.includes(parentId))\n children.push(eid);\n else\n parents.push(eid);\n }\n\n if (children.length === 0)\n return [parents];\n\n return [...sortChildrenBeforeParents(iModel, children), parents];\n}\n\nfunction isModelEmpty(iModel: IModelDb, modelId: Id64String): boolean {\n return iModel.withPreparedStatement(`select count(*) from ${Element.classFullName} where Model.Id = ?`, (stmt) => {\n stmt.bindId(1, modelId);\n stmt.step();\n return stmt.getValue(0).getInteger() === 0;\n });\n}\n\nfunction isDefinitionModel(model: Model): boolean {\n return (model.id !== IModel.repositoryModelId) && (model instanceof DefinitionModel);\n}\n\nenum ElementPruningClassification { PRUNING_CLASS_Normal = 0, PRUNING_CLASS_Subject = 1, PRUNING_CLASS_Definition = 2, PRUNING_CLASS_DefinitionPartition = 3, }\n\nfunction classifyElementForPruning(iModel: IModelDb, elementId: Id64String): ElementPruningClassification {\n const el = iModel.elements.getElement(elementId);\n // DefinitionContainer is submodeled by a DefinitionModel and so it must be classified as PRUNING_CLASS_DefinitionPartition for tree-walking purposes.\n // Since DefinitionContainer is-a DefinitionElement the (el instanceof DefinitionElement) case below would classify it as PRUNING_CLASS_Definition.\n // That is why we special-case it here.\n if (el instanceof DefinitionContainer)\n return ElementPruningClassification.PRUNING_CLASS_DefinitionPartition;\n return (el instanceof Subject) ? ElementPruningClassification.PRUNING_CLASS_Subject :\n (el instanceof DefinitionElement) ? ElementPruningClassification.PRUNING_CLASS_Definition :\n (el instanceof DefinitionPartition) ? ElementPruningClassification.PRUNING_CLASS_DefinitionPartition :\n ElementPruningClassification.PRUNING_CLASS_Normal;\n}\n\n/** Records the path that a tree search took to reach an element or model. This object is immutable.\n * @beta\n */\nexport class ElementTreeWalkerScope {\n public readonly topElement: Id64String = \"\";\n /** path of parent elements and enclosing models */\n public readonly path: Array<Id64String | ElementTreeWalkerModelInfo> = [];\n /** cached info about the immediately enclosing model (i.e., the last model in path) */\n public readonly enclosingModelInfo: ElementTreeWalkerModelInfo;\n\n constructor(topElement: Id64String, model: Model);\n constructor(enclosingScope: ElementTreeWalkerScope, newScope: Id64String | Model);\n constructor(arg1: Id64String | ElementTreeWalkerScope, arg2: Model | Id64String) {\n if (typeof arg1 === \"string\") {\n // normal constructor\n assert(arg2 instanceof Model);\n this.topElement = arg1;\n this.path.push(this.enclosingModelInfo = { model: arg2, isDefinitionModel: isDefinitionModel(arg2) });\n } else if (arg1 instanceof ElementTreeWalkerScope) {\n // copy-like constructor\n this.topElement = arg1.topElement;\n this.path = [...arg1.path];\n if (typeof arg2 === \"string\") {\n // with new parent\n this.path.push(arg2);\n this.enclosingModelInfo = arg1.enclosingModelInfo;\n } else {\n // with new enclosing model\n this.path.push(this.enclosingModelInfo = { model: arg2, isDefinitionModel: isDefinitionModel(arg2) });\n }\n } else {\n throw new Error(\"invalid constructor signature\");\n }\n }\n\n public get enclosingModel(): Model { return this.enclosingModelInfo.model; }\n public get inDefinitionModel(): boolean { return this.enclosingModelInfo.isDefinitionModel; } // NB: this will return false for the RepositoryModel!\n public get inRepositoryModel(): boolean { return this.enclosingModelInfo.model.id === IModelDb.repositoryModelId; }\n\n public static createTopScope(iModel: IModelDb, topElementId: Id64String) {\n const topElement = iModel.elements.getElement(topElementId);\n const topElementModel = iModel.models.getModel(topElement.model);\n return new ElementTreeWalkerScope(topElementId, topElementModel);\n }\n\n private fmtItem(v: Id64String | ElementTreeWalkerModelInfo): string {\n if (typeof v === \"string\")\n return `element ${v}`;\n return `model ${v.model.id} ${v.isDefinitionModel ? \"(DEFN)\" : \"\"}`;\n }\n\n public toString(): string {\n return `[ ${this.path.map((v) => this.fmtItem(v)).join(\" / \")} ]`;\n }\n}\n\nfunction fmtElement(iModel: IModelDb, elementId: Id64String): string {\n const el = iModel.elements.getElement(elementId);\n return `${el.id} ${el.classFullName} ${el.getDisplayLabel()}`;\n}\n\nfunction fmtModel(model: Model): string {\n return `${model.id} ${model.classFullName} ${model.name}`;\n}\n\nlet isTraceEnabledChecked = -1;\n\nfunction isTraceEnabled(): boolean {\n if (isTraceEnabledChecked === -1)\n isTraceEnabledChecked = Logger.isEnabled(loggerCategory, LogLevel.Trace) ? 1 : 0;\n return isTraceEnabledChecked === 1;\n}\n\nfunction logElement(op: string, iModel: IModelDb, elementId: Id64String, scope?: ElementTreeWalkerScope, logChildren?: boolean): void {\n if (!isTraceEnabled())\n return;\n\n Logger.logTrace(loggerCategory, `${op} ${fmtElement(iModel, elementId)} ${scope ? scope.toString() : \"\"}`);\n\n if (logChildren)\n iModel.elements.queryChildren(elementId).forEach((c) => logElement(\" - \", iModel, c, undefined, true));\n}\n\nfunction logModel(op: string, iModel: IModelDb, modelId: Id64String, scope?: ElementTreeWalkerScope, logElements?: boolean): void {\n if (!isTraceEnabled())\n return;\n const model: Model = iModel.models.getModel(modelId);\n Logger.logTrace(loggerCategory, `${op} ${fmtModel(model)} ${scope ? scope.toString() : \"\"}`);\n\n if (logElements) {\n iModel.withPreparedStatement(`select ecinstanceid from ${Element.classFullName} where Model.Id = ?`, (stmt) => {\n stmt.bindId(1, modelId);\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n logElement(\" - \", iModel, stmt.getValue(0).getId());\n }\n });\n }\n}\n\n/** Does a depth-first search on the tree defined by an element and its sub-models and children.\n * Sub-models are visited before their modeled elements, and children are visited before their parents.\n *\n * The following callbacks allow the subclass to exclude elements and sub-trees from the search:\n * * [[ElementTreeBottomUp.shouldExploreModel]], [[ElementTreeBottomUp.shouldExploreChildren]]\n * * [[ElementTreeBottomUp.shouldVisitElement]], [[ElementTreeBottomUp.shouldVisitModel]]\n *\n * The [[ElementTreeBottomUp.visitElement]] and [[ElementTreeBottomUp.visitModel]] callbacks allow\n * the subclass to process the elements and models that are encountered in the search.\n * @beta\n */\nexport abstract class ElementTreeBottomUp {\n constructor(protected _iModel: IModelDb) { }\n\n /** Return true if the search should recurse into this model */\n protected shouldExploreModel(_model: Model, _scope: ElementTreeWalkerScope): boolean { return true; }\n /** Return true if the search should recurse into the children (if any) of this element */\n protected shouldExploreChildren(_parentId: Id64String, _scope: ElementTreeWalkerScope): boolean { return true; }\n /** Return true if the search should visit this element */\n protected shouldVisitElement(_elementId: Id64String, _scope: ElementTreeWalkerScope): boolean { return true; }\n /** Return true if the search should visit this model */\n protected shouldVisitModel(_model: Model, _scope: ElementTreeWalkerScope): boolean { return true; }\n\n /** Called to visit a model */\n protected abstract visitModel(model: Model, scope: ElementTreeWalkerScope): void;\n\n /** Called to visit an element */\n protected abstract visitElement(elementId: Id64String, scope: ElementTreeWalkerScope): void;\n\n /** The main tree-walking function */\n protected processElementTree(element: Id64String, scope: ElementTreeWalkerScope) {\n const subModel = this._iModel.models.tryGetModel<Model>(element);\n if (subModel !== undefined) {\n if (this.shouldExploreModel(subModel, scope))\n this._processSubModel(subModel, scope);\n\n if (this.shouldVisitModel(subModel, scope))\n this.visitModel(subModel, scope);\n }\n\n if (this.shouldExploreChildren(element, scope))\n this._processChildren(element, scope);\n\n if (this.shouldVisitElement(element, scope))\n this.visitElement(element, scope);\n }\n\n /** process the children of the specified parent element */\n private _processChildren(parentElement: Id64String, parentScope: ElementTreeWalkerScope): void {\n const children = this._iModel.elements.queryChildren(parentElement);\n if (children.length === 0)\n return;\n\n const childrenScope = new ElementTreeWalkerScope(parentScope, parentElement);\n\n for (const childElement of children)\n this.processElementTree(childElement, childrenScope);\n }\n\n /** process the elements in the specified model */\n private _processSubModel(model: Model, parenScope: ElementTreeWalkerScope): void {\n const scope = new ElementTreeWalkerScope(parenScope, model);\n // Visit only the top-level parents. processElementTree will visit their children (bottom-up).\n model.iModel.withPreparedStatement(`select ECInstanceId from bis:Element where Model.id=? and Parent.Id is null`, (stmt) => {\n stmt.bindId(1, model.id);\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n const elementId = stmt.getValue(0).getId();\n this.processElementTree(elementId, scope);\n }\n });\n }\n}\n\n/** Helper class that manages the deletion of definitions and subjects */\nclass SpecialElements {\n public definitionModels: Id64Array = [];\n public definitions: Id64Array = [];\n public subjects: Id64Array = [];\n\n public recordSpecialElement(iModel: IModelDb, elementId: Id64String): boolean {\n // Defer Definitions and Subjects\n const cls = classifyElementForPruning(iModel, elementId);\n if (cls === ElementPruningClassification.PRUNING_CLASS_Subject) {\n this.subjects.push(elementId);\n return true;\n } else if (cls === ElementPruningClassification.PRUNING_CLASS_Definition) {\n this.definitions.push(elementId);\n return true;\n } else if (cls === ElementPruningClassification.PRUNING_CLASS_DefinitionPartition) {\n this.definitionModels.push(elementId);\n return true;\n }\n return false; // not a special element\n }\n\n /** Delete special elements - This calls Elements.deleteDefinitionElements to process the collected definition elements as a group and then\n * calls Models.deleteModel on collected definition models. It then deletes all collected Subjects by calling Element.deleteElement on them.\n * @note Caller must ensure that the special elements were recorded in a depth-first search.\n */\n public deleteSpecialElements(iModel: IModelDb) {\n // It's dangerous to pass a mixture of SubCategories and Categories to deleteDefinitionElements.\n // That function will delete the Categories first, which automatically deletes all their child\n // SubCategories (in native code). If a SubCategory in the list is one of those children, then\n // deleteDefinitionElements will try and fail with an exception to delete that SubCategory in a subsequent step.\n // To work around this, we delete the SubCategories first, then everything else.\n // A similar problem occurs when you pass other kinds of elements to deleteDefinitionElements, where some are\n // children and others are parents. deleteDefinitionElements does not preserve the order that you specify,\n // and it does not process children before parents.\n for (const definitions of sortChildrenBeforeParents(iModel, this.definitions)) {\n if (isTraceEnabled())\n definitions.forEach((e) => logElement(\"try delete\", iModel, e));\n\n iModel.elements.deleteDefinitionElements(definitions); // will not delete definitions that are still in use.\n }\n\n for (const m of this.definitionModels) {\n if (!isModelEmpty(iModel, m)) {\n logModel(\"Model not empty - cannot delete - may contain Definitions that are still in use\", iModel, m, undefined, true);\n } else {\n logModel(\"delete\", iModel, m);\n iModel.models.deleteModel(m);\n iModel.elements.deleteElement(m);\n }\n }\n\n for (const e of this.subjects) {\n if (iModel.elements.queryChildren(e).length !== 0) {\n logElement(\"Subject still has children - cannot delete - may have child DefinitionModels\", iModel, e, undefined, true);\n } else {\n logElement(\"delete\", iModel, e);\n iModel.elements.deleteElement(e);\n }\n }\n }\n\n}\n\n/** Deletes an entire element tree, including sub-models and child elements.\n * Items are deleted in bottom-up order. Definitions and Subjects are deleted after normal elements.\n * Call deleteNormalElements on each tree. Then call deleteSpecialElements.\n * @see deleteElementTree for a simple way to use this class.\n * @beta\n */\nexport class ElementTreeDeleter extends ElementTreeBottomUp {\n protected _special: SpecialElements = new SpecialElements();\n\n protected override shouldExploreModel(_model: Model): boolean { return true; }\n protected override shouldVisitElement(_elementId: Id64String): boolean { return true; }\n\n protected override visitModel(model: Model, _scope: ElementTreeWalkerScope): void {\n if (isDefinitionModel(model))\n return; // we recorded definition models in visitElement when we encountered the DefinitionPartition elements.\n\n // visitElement has already deleted the elements in the model. So, now it's safe to delete the model itself.\n logModel(\"delete\", this._iModel, model.id, _scope);\n model.delete();\n }\n\n protected override visitElement(elementId: Id64String, _scope: ElementTreeWalkerScope): void {\n if (!this._special.recordSpecialElement(this._iModel, elementId)) {\n logElement(\"delete\", this._iModel, elementId, _scope);\n this._iModel.elements.deleteElement(elementId);\n }\n }\n\n /**\n * Delete the \"normal\" elements and record the special elements for deferred processing.\n * @param topElement The parent of the sub-tree to be deleted. Top element itself is also deleted.\n * @param scope How the parent was found\n * @see deleteSpecialElements\n */\n public deleteNormalElements(topElement: Id64String, scope?: ElementTreeWalkerScope): void {\n const topScope = scope ?? ElementTreeWalkerScope.createTopScope(this._iModel, topElement);\n this.processElementTree(topElement, topScope); //\n }\n\n /** Delete all special elements that were found and deferred by deleteNormalElements. Call this\n * function once after all element trees are processed by deleteNormalElements.\n */\n public deleteSpecialElements(): void {\n this._special.deleteSpecialElements(this._iModel);\n }\n\n}\n\n/** Does a breadth-first search on the tree defined by an element and its sub-models and children.\n * Parents are visited first, then children, then sub-models.\n * The subclass can \"prune\" sub-trees from the search. When a sub-tree is \"pruned\" the search does *not* recurse into it.\n * If a sub-tree is not pruned, then the search does recurse into it.\n * @beta\n */\nabstract class ElementTreeTopDown {\n constructor(protected _iModel: IModelDb) { }\n\n /** Should the search *not* recurse into this sub-tree? */\n protected shouldPrune(_elementId: Id64String, _scope: ElementTreeWalkerScope): boolean { return false; }\n\n protected abstract prune(_elementId: Id64String, _scope: ElementTreeWalkerScope): void;\n\n protected processElementTree(element: Id64String, scope: ElementTreeWalkerScope) {\n\n if (this.shouldPrune(element, scope)) {\n this.prune(element, scope);\n return;\n }\n\n this._processChildren(element, scope);\n\n const subModel = this._iModel.models.tryGetModel<Model>(element);\n if (subModel !== undefined) {\n this._processSubModel(subModel, scope);\n }\n }\n\n private _processChildren(element: Id64String, scope: ElementTreeWalkerScope) {\n let parentScope: ElementTreeWalkerScope | undefined;\n for (const childElement of this._iModel.elements.queryChildren(element)) {\n if (parentScope === undefined)\n parentScope = new ElementTreeWalkerScope(scope, element);\n this.processElementTree(childElement, parentScope);\n }\n }\n\n private _processSubModel(subModel: Model, scope: ElementTreeWalkerScope) {\n const subModelScope = new ElementTreeWalkerScope(scope, subModel);\n // Visit only the top-level parents. processElementTree will recurse into their children.\n this._iModel.withPreparedStatement(`select ECInstanceId from bis:Element where Model.id=? and Parent.Id is null`, (stmt) => {\n stmt.bindId(1, subModel.id);\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n const elementId = stmt.getValue(0).getId();\n this.processElementTree(elementId, subModelScope);\n }\n });\n }\n\n}\n\n/** Signature of the filter function used by ElementSubTreeDeleter.\n * @param elementId The sub-tree parent element.\n * @param scope The path followed by the top-down search to the element\n * @return true if the element and its children and sub-models should be deleted.\n * @beta\n */\nexport type ElementSubTreeDeleteFilter = (elementId: Id64String, scope: ElementTreeWalkerScope) => boolean;\n\n/** Performs a breadth-first search to visit elements in top-down order.\n * When the supplied filter function chooses an element, ElementTreeDeleter is used to delete it and its sub-tree.\n * @beta\n */\nexport class ElementSubTreeDeleter extends ElementTreeTopDown {\n private _treeDeleter: ElementTreeDeleter;\n private _shouldPruneCb: ElementSubTreeDeleteFilter;\n\n /** Construct an ElementSubTreeDeleter.\n * @param iModel The iModel\n * @param topElement Where to start the search.\n * @param shouldPruneCb Callback that selects sub-trees that should be deleted.\n * @see deleteElementSubTrees for a simple way to use this class.\n */\n public constructor(iModel: IModelDb, shouldPruneCb: ElementSubTreeDeleteFilter) {\n super(iModel);\n this._treeDeleter = new ElementTreeDeleter(this._iModel);\n this._shouldPruneCb = shouldPruneCb;\n }\n\n protected override shouldPrune(elementId: Id64String, scope: ElementTreeWalkerScope): boolean { return this._shouldPruneCb(elementId, scope); }\n\n protected prune(elementId: Id64String, scope: ElementTreeWalkerScope): void {\n this._treeDeleter.deleteNormalElements(elementId, scope);\n }\n\n /** Traverses the tree of elements beginning with the top element, and deletes all selected sub-trees.\n * Normal elements are deleted. Any special elements that are encountered are deferred.\n * Call deleteSpecialElementSubTrees after all top elements have been processed. */\n public deleteNormalElementSubTrees(topElement: Id64String, scope?: ElementTreeWalkerScope) {\n const topScope = scope ?? ElementTreeWalkerScope.createTopScope(this._iModel, topElement);\n this.processElementTree(topElement, topScope); // deletes normal elements and their sub-trees, defers special elements\n }\n\n /** Delete all special elements and their sub-trees that were found in the course of processing.\n * The sub-trees were already expanded by ElementTreeDeleter.deleteNormalElements.\n */\n public deleteSpecialElementSubTrees() {\n this._treeDeleter.deleteSpecialElements();\n }\n}\n\n/** Arguments supplied to [[deleteElementTree]].\n * @beta\n */\nexport interface DeleteElementTreeArgs {\n /** The iModel containing the elements to delete. */\n iModel: IModelDb;\n /** The Id of the root element of the tree to delete. */\n topElement: Id64String;\n /** The maximum number of passes to make when deleting definition elements.\n * Default: 5\n */\n maxPasses?: number;\n}\n\n/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.\n * @param iModel The iModel\n * @param topElement The parent of the sub-tree\n * @beta\n */\nexport function deleteElementTree(iModel: IModelDb, topElement: Id64String): void;\n/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.\n * @param args Specifies the iModel and top element.\n * @beta\n */\nexport function deleteElementTree(args: DeleteElementTreeArgs): void;\n/** @internal */\nexport function deleteElementTree(arg0: DeleteElementTreeArgs | IModelDb, arg1?: Id64String): void {\n let maxPasses;\n let iModel: IModelDb;\n let topElement: Id64String;\n if (arg0 instanceof IModelDb) {\n assert(typeof arg1 === \"string\");\n iModel = arg0;\n topElement = arg1;\n } else {\n iModel = arg0.iModel;\n topElement = arg0.topElement;\n maxPasses = arg0.maxPasses;\n }\n\n maxPasses = maxPasses ?? 5;\n let pass = 0;\n do {\n const del = new ElementTreeDeleter(iModel);\n del.deleteNormalElements(topElement);\n del.deleteSpecialElements();\n } while ((iModel.elements.tryGetElement(topElement) !== undefined) && (++pass < maxPasses));\n}\n\n/** Deletes all element sub-trees that are selected by the supplied filter. Uses ElementSubTreeDeleter.\n * If the filter selects the top element itself, then the entire tree (including the top element) is deleted.\n * That has the same effect as calling [[deleteElementTree]] on the top element.\n * @note The caller may have to call this function multiple times if there are multiple layers of dependencies among definition elements.\n * @param iModel The iModel\n * @param topElement Where to start the search.\n * @param filter Callback that selects sub-trees that should be deleted.\n * @beta\n */\nexport function deleteElementSubTrees(iModel: IModelDb, topElement: Id64String, filter: ElementSubTreeDeleteFilter): void {\n const del = new ElementSubTreeDeleter(iModel, filter);\n del.deleteNormalElementSubTrees(topElement);\n del.deleteSpecialElementSubTrees();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ElementTreeWalker.js","sourceRoot":"","sources":["../../src/ElementTreeWalker.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Elements\n */\nimport { assert, DbResult, Id64Array, Id64String, Logger, LogLevel } from \"@itwin/core-bentley\";\nimport { IModel } from \"@itwin/core-common\";\nimport { BackendLoggerCategory } from \"./BackendLoggerCategory\";\nimport { DefinitionContainer, DefinitionElement, DefinitionPartition, Element, Subject } from \"./Element\";\nimport { IModelDb } from \"./IModelDb\";\nimport { DefinitionModel, Model } from \"./Model\";\n\nconst loggerCategory = `${BackendLoggerCategory.IModelDb}.ElementTreeWalker`;\n\n/** @beta */\nexport interface ElementTreeWalkerModelInfo { model: Model, isDefinitionModel: boolean }\n\nfunction sortChildrenBeforeParents(iModel: IModelDb, ids: Id64Array): Array<Id64Array> {\n const children: Id64Array = [];\n const parents: Id64Array = [];\n for (const eid of ids) {\n const parentId = iModel.elements.queryParent(eid);\n if (parentId !== undefined && ids.includes(parentId))\n children.push(eid);\n else\n parents.push(eid);\n }\n\n if (children.length === 0)\n return [parents];\n\n return [...sortChildrenBeforeParents(iModel, children), parents];\n}\n\nfunction isModelEmpty(iModel: IModelDb, modelId: Id64String): boolean {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return iModel.withPreparedStatement(`select count(*) from ${Element.classFullName} where Model.Id = ?`, (stmt) => {\n stmt.bindId(1, modelId);\n stmt.step();\n return stmt.getValue(0).getInteger() === 0;\n });\n}\n\nfunction isDefinitionModel(model: Model): boolean {\n return (model.id !== IModel.repositoryModelId) && (model instanceof DefinitionModel);\n}\n\nenum ElementPruningClassification { PRUNING_CLASS_Normal = 0, PRUNING_CLASS_Subject = 1, PRUNING_CLASS_Definition = 2, PRUNING_CLASS_DefinitionPartition = 3, }\n\nfunction classifyElementForPruning(iModel: IModelDb, elementId: Id64String): ElementPruningClassification {\n const el = iModel.elements.getElement(elementId);\n // DefinitionContainer is submodeled by a DefinitionModel and so it must be classified as PRUNING_CLASS_DefinitionPartition for tree-walking purposes.\n // Since DefinitionContainer is-a DefinitionElement the (el instanceof DefinitionElement) case below would classify it as PRUNING_CLASS_Definition.\n // That is why we special-case it here.\n if (el instanceof DefinitionContainer)\n return ElementPruningClassification.PRUNING_CLASS_DefinitionPartition;\n return (el instanceof Subject) ? ElementPruningClassification.PRUNING_CLASS_Subject :\n (el instanceof DefinitionElement) ? ElementPruningClassification.PRUNING_CLASS_Definition :\n (el instanceof DefinitionPartition) ? ElementPruningClassification.PRUNING_CLASS_DefinitionPartition :\n ElementPruningClassification.PRUNING_CLASS_Normal;\n}\n\n/** Records the path that a tree search took to reach an element or model. This object is immutable.\n * @beta\n */\nexport class ElementTreeWalkerScope {\n public readonly topElement: Id64String = \"\";\n /** path of parent elements and enclosing models */\n public readonly path: Array<Id64String | ElementTreeWalkerModelInfo> = [];\n /** cached info about the immediately enclosing model (i.e., the last model in path) */\n public readonly enclosingModelInfo: ElementTreeWalkerModelInfo;\n\n constructor(topElement: Id64String, model: Model);\n constructor(enclosingScope: ElementTreeWalkerScope, newScope: Id64String | Model);\n constructor(arg1: Id64String | ElementTreeWalkerScope, arg2: Model | Id64String) {\n if (typeof arg1 === \"string\") {\n // normal constructor\n assert(arg2 instanceof Model);\n this.topElement = arg1;\n this.path.push(this.enclosingModelInfo = { model: arg2, isDefinitionModel: isDefinitionModel(arg2) });\n } else if (arg1 instanceof ElementTreeWalkerScope) {\n // copy-like constructor\n this.topElement = arg1.topElement;\n this.path = [...arg1.path];\n if (typeof arg2 === \"string\") {\n // with new parent\n this.path.push(arg2);\n this.enclosingModelInfo = arg1.enclosingModelInfo;\n } else {\n // with new enclosing model\n this.path.push(this.enclosingModelInfo = { model: arg2, isDefinitionModel: isDefinitionModel(arg2) });\n }\n } else {\n throw new Error(\"invalid constructor signature\");\n }\n }\n\n public get enclosingModel(): Model { return this.enclosingModelInfo.model; }\n public get inDefinitionModel(): boolean { return this.enclosingModelInfo.isDefinitionModel; } // NB: this will return false for the RepositoryModel!\n public get inRepositoryModel(): boolean { return this.enclosingModelInfo.model.id === IModelDb.repositoryModelId; }\n\n public static createTopScope(iModel: IModelDb, topElementId: Id64String) {\n const topElement = iModel.elements.getElement(topElementId);\n const topElementModel = iModel.models.getModel(topElement.model);\n return new ElementTreeWalkerScope(topElementId, topElementModel);\n }\n\n private fmtItem(v: Id64String | ElementTreeWalkerModelInfo): string {\n if (typeof v === \"string\")\n return `element ${v}`;\n return `model ${v.model.id} ${v.isDefinitionModel ? \"(DEFN)\" : \"\"}`;\n }\n\n public toString(): string {\n return `[ ${this.path.map((v) => this.fmtItem(v)).join(\" / \")} ]`;\n }\n}\n\nfunction fmtElement(iModel: IModelDb, elementId: Id64String): string {\n const el = iModel.elements.getElement(elementId);\n return `${el.id} ${el.classFullName} ${el.getDisplayLabel()}`;\n}\n\nfunction fmtModel(model: Model): string {\n return `${model.id} ${model.classFullName} ${model.name}`;\n}\n\nlet isTraceEnabledChecked = -1;\n\nfunction isTraceEnabled(): boolean {\n if (isTraceEnabledChecked === -1)\n isTraceEnabledChecked = Logger.isEnabled(loggerCategory, LogLevel.Trace) ? 1 : 0;\n return isTraceEnabledChecked === 1;\n}\n\nfunction logElement(op: string, iModel: IModelDb, elementId: Id64String, scope?: ElementTreeWalkerScope, logChildren?: boolean): void {\n if (!isTraceEnabled())\n return;\n\n Logger.logTrace(loggerCategory, `${op} ${fmtElement(iModel, elementId)} ${scope ? scope.toString() : \"\"}`);\n\n if (logChildren)\n iModel.elements.queryChildren(elementId).forEach((c) => logElement(\" - \", iModel, c, undefined, true));\n}\n\nfunction logModel(op: string, iModel: IModelDb, modelId: Id64String, scope?: ElementTreeWalkerScope, logElements?: boolean): void {\n if (!isTraceEnabled())\n return;\n const model: Model = iModel.models.getModel(modelId);\n Logger.logTrace(loggerCategory, `${op} ${fmtModel(model)} ${scope ? scope.toString() : \"\"}`);\n\n if (logElements) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n iModel.withPreparedStatement(`select ecinstanceid from ${Element.classFullName} where Model.Id = ?`, (stmt) => {\n stmt.bindId(1, modelId);\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n logElement(\" - \", iModel, stmt.getValue(0).getId());\n }\n });\n }\n}\n\n/** Does a depth-first search on the tree defined by an element and its sub-models and children.\n * Sub-models are visited before their modeled elements, and children are visited before their parents.\n *\n * The following callbacks allow the subclass to exclude elements and sub-trees from the search:\n * * [[ElementTreeBottomUp.shouldExploreModel]], [[ElementTreeBottomUp.shouldExploreChildren]]\n * * [[ElementTreeBottomUp.shouldVisitElement]], [[ElementTreeBottomUp.shouldVisitModel]]\n *\n * The [[ElementTreeBottomUp.visitElement]] and [[ElementTreeBottomUp.visitModel]] callbacks allow\n * the subclass to process the elements and models that are encountered in the search.\n * @beta\n */\nexport abstract class ElementTreeBottomUp {\n constructor(protected _iModel: IModelDb) { }\n\n /** Return true if the search should recurse into this model */\n protected shouldExploreModel(_model: Model, _scope: ElementTreeWalkerScope): boolean { return true; }\n /** Return true if the search should recurse into the children (if any) of this element */\n protected shouldExploreChildren(_parentId: Id64String, _scope: ElementTreeWalkerScope): boolean { return true; }\n /** Return true if the search should visit this element */\n protected shouldVisitElement(_elementId: Id64String, _scope: ElementTreeWalkerScope): boolean { return true; }\n /** Return true if the search should visit this model */\n protected shouldVisitModel(_model: Model, _scope: ElementTreeWalkerScope): boolean { return true; }\n\n /** Called to visit a model */\n protected abstract visitModel(model: Model, scope: ElementTreeWalkerScope): void;\n\n /** Called to visit an element */\n protected abstract visitElement(elementId: Id64String, scope: ElementTreeWalkerScope): void;\n\n /** The main tree-walking function */\n protected processElementTree(element: Id64String, scope: ElementTreeWalkerScope) {\n const subModel = this._iModel.models.tryGetModel<Model>(element);\n if (subModel !== undefined) {\n if (this.shouldExploreModel(subModel, scope))\n this._processSubModel(subModel, scope);\n\n if (this.shouldVisitModel(subModel, scope))\n this.visitModel(subModel, scope);\n }\n\n if (this.shouldExploreChildren(element, scope))\n this._processChildren(element, scope);\n\n if (this.shouldVisitElement(element, scope))\n this.visitElement(element, scope);\n }\n\n /** process the children of the specified parent element */\n private _processChildren(parentElement: Id64String, parentScope: ElementTreeWalkerScope): void {\n const children = this._iModel.elements.queryChildren(parentElement);\n if (children.length === 0)\n return;\n\n const childrenScope = new ElementTreeWalkerScope(parentScope, parentElement);\n\n for (const childElement of children)\n this.processElementTree(childElement, childrenScope);\n }\n\n /** process the elements in the specified model */\n private _processSubModel(model: Model, parenScope: ElementTreeWalkerScope): void {\n const scope = new ElementTreeWalkerScope(parenScope, model);\n // Visit only the top-level parents. processElementTree will visit their children (bottom-up).\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n model.iModel.withPreparedStatement(`select ECInstanceId from bis:Element where Model.id=? and Parent.Id is null`, (stmt) => {\n stmt.bindId(1, model.id);\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n const elementId = stmt.getValue(0).getId();\n this.processElementTree(elementId, scope);\n }\n });\n }\n}\n\n/** Helper class that manages the deletion of definitions and subjects */\nclass SpecialElements {\n public definitionModels: Id64Array = [];\n public definitions: Id64Array = [];\n public subjects: Id64Array = [];\n\n public recordSpecialElement(iModel: IModelDb, elementId: Id64String): boolean {\n // Defer Definitions and Subjects\n const cls = classifyElementForPruning(iModel, elementId);\n if (cls === ElementPruningClassification.PRUNING_CLASS_Subject) {\n this.subjects.push(elementId);\n return true;\n } else if (cls === ElementPruningClassification.PRUNING_CLASS_Definition) {\n this.definitions.push(elementId);\n return true;\n } else if (cls === ElementPruningClassification.PRUNING_CLASS_DefinitionPartition) {\n this.definitionModels.push(elementId);\n return true;\n }\n return false; // not a special element\n }\n\n /** Delete special elements - This calls Elements.deleteDefinitionElements to process the collected definition elements as a group and then\n * calls Models.deleteModel on collected definition models. It then deletes all collected Subjects by calling Element.deleteElement on them.\n * @note Caller must ensure that the special elements were recorded in a depth-first search.\n */\n public deleteSpecialElements(iModel: IModelDb) {\n // It's dangerous to pass a mixture of SubCategories and Categories to deleteDefinitionElements.\n // That function will delete the Categories first, which automatically deletes all their child\n // SubCategories (in native code). If a SubCategory in the list is one of those children, then\n // deleteDefinitionElements will try and fail with an exception to delete that SubCategory in a subsequent step.\n // To work around this, we delete the SubCategories first, then everything else.\n // A similar problem occurs when you pass other kinds of elements to deleteDefinitionElements, where some are\n // children and others are parents. deleteDefinitionElements does not preserve the order that you specify,\n // and it does not process children before parents.\n for (const definitions of sortChildrenBeforeParents(iModel, this.definitions)) {\n if (isTraceEnabled())\n definitions.forEach((e) => logElement(\"try delete\", iModel, e));\n\n iModel.elements.deleteDefinitionElements(definitions); // will not delete definitions that are still in use.\n }\n\n for (const m of this.definitionModels) {\n if (!isModelEmpty(iModel, m)) {\n logModel(\"Model not empty - cannot delete - may contain Definitions that are still in use\", iModel, m, undefined, true);\n } else {\n logModel(\"delete\", iModel, m);\n iModel.models.deleteModel(m);\n iModel.elements.deleteElement(m);\n }\n }\n\n for (const e of this.subjects) {\n if (iModel.elements.queryChildren(e).length !== 0) {\n logElement(\"Subject still has children - cannot delete - may have child DefinitionModels\", iModel, e, undefined, true);\n } else {\n logElement(\"delete\", iModel, e);\n iModel.elements.deleteElement(e);\n }\n }\n }\n\n}\n\n/** Deletes an entire element tree, including sub-models and child elements.\n * Items are deleted in bottom-up order. Definitions and Subjects are deleted after normal elements.\n * Call deleteNormalElements on each tree. Then call deleteSpecialElements.\n * @see deleteElementTree for a simple way to use this class.\n * @beta\n */\nexport class ElementTreeDeleter extends ElementTreeBottomUp {\n protected _special: SpecialElements = new SpecialElements();\n\n protected override shouldExploreModel(_model: Model): boolean { return true; }\n protected override shouldVisitElement(_elementId: Id64String): boolean { return true; }\n\n protected override visitModel(model: Model, _scope: ElementTreeWalkerScope): void {\n if (isDefinitionModel(model))\n return; // we recorded definition models in visitElement when we encountered the DefinitionPartition elements.\n\n // visitElement has already deleted the elements in the model. So, now it's safe to delete the model itself.\n logModel(\"delete\", this._iModel, model.id, _scope);\n model.delete();\n }\n\n protected override visitElement(elementId: Id64String, _scope: ElementTreeWalkerScope): void {\n if (!this._special.recordSpecialElement(this._iModel, elementId)) {\n logElement(\"delete\", this._iModel, elementId, _scope);\n this._iModel.elements.deleteElement(elementId);\n }\n }\n\n /**\n * Delete the \"normal\" elements and record the special elements for deferred processing.\n * @param topElement The parent of the sub-tree to be deleted. Top element itself is also deleted.\n * @param scope How the parent was found\n * @see deleteSpecialElements\n */\n public deleteNormalElements(topElement: Id64String, scope?: ElementTreeWalkerScope): void {\n const topScope = scope ?? ElementTreeWalkerScope.createTopScope(this._iModel, topElement);\n this.processElementTree(topElement, topScope); //\n }\n\n /** Delete all special elements that were found and deferred by deleteNormalElements. Call this\n * function once after all element trees are processed by deleteNormalElements.\n */\n public deleteSpecialElements(): void {\n this._special.deleteSpecialElements(this._iModel);\n }\n\n}\n\n/** Does a breadth-first search on the tree defined by an element and its sub-models and children.\n * Parents are visited first, then children, then sub-models.\n * The subclass can \"prune\" sub-trees from the search. When a sub-tree is \"pruned\" the search does *not* recurse into it.\n * If a sub-tree is not pruned, then the search does recurse into it.\n * @beta\n */\nabstract class ElementTreeTopDown {\n constructor(protected _iModel: IModelDb) { }\n\n /** Should the search *not* recurse into this sub-tree? */\n protected shouldPrune(_elementId: Id64String, _scope: ElementTreeWalkerScope): boolean { return false; }\n\n protected abstract prune(_elementId: Id64String, _scope: ElementTreeWalkerScope): void;\n\n protected processElementTree(element: Id64String, scope: ElementTreeWalkerScope) {\n\n if (this.shouldPrune(element, scope)) {\n this.prune(element, scope);\n return;\n }\n\n this._processChildren(element, scope);\n\n const subModel = this._iModel.models.tryGetModel<Model>(element);\n if (subModel !== undefined) {\n this._processSubModel(subModel, scope);\n }\n }\n\n private _processChildren(element: Id64String, scope: ElementTreeWalkerScope) {\n let parentScope: ElementTreeWalkerScope | undefined;\n for (const childElement of this._iModel.elements.queryChildren(element)) {\n if (parentScope === undefined)\n parentScope = new ElementTreeWalkerScope(scope, element);\n this.processElementTree(childElement, parentScope);\n }\n }\n\n private _processSubModel(subModel: Model, scope: ElementTreeWalkerScope) {\n const subModelScope = new ElementTreeWalkerScope(scope, subModel);\n // Visit only the top-level parents. processElementTree will recurse into their children.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n this._iModel.withPreparedStatement(`select ECInstanceId from bis:Element where Model.id=? and Parent.Id is null`, (stmt) => {\n stmt.bindId(1, subModel.id);\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n const elementId = stmt.getValue(0).getId();\n this.processElementTree(elementId, subModelScope);\n }\n });\n }\n\n}\n\n/** Signature of the filter function used by ElementSubTreeDeleter.\n * @param elementId The sub-tree parent element.\n * @param scope The path followed by the top-down search to the element\n * @return true if the element and its children and sub-models should be deleted.\n * @beta\n */\nexport type ElementSubTreeDeleteFilter = (elementId: Id64String, scope: ElementTreeWalkerScope) => boolean;\n\n/** Performs a breadth-first search to visit elements in top-down order.\n * When the supplied filter function chooses an element, ElementTreeDeleter is used to delete it and its sub-tree.\n * @beta\n */\nexport class ElementSubTreeDeleter extends ElementTreeTopDown {\n private _treeDeleter: ElementTreeDeleter;\n private _shouldPruneCb: ElementSubTreeDeleteFilter;\n\n /** Construct an ElementSubTreeDeleter.\n * @param iModel The iModel\n * @param topElement Where to start the search.\n * @param shouldPruneCb Callback that selects sub-trees that should be deleted.\n * @see deleteElementSubTrees for a simple way to use this class.\n */\n public constructor(iModel: IModelDb, shouldPruneCb: ElementSubTreeDeleteFilter) {\n super(iModel);\n this._treeDeleter = new ElementTreeDeleter(this._iModel);\n this._shouldPruneCb = shouldPruneCb;\n }\n\n protected override shouldPrune(elementId: Id64String, scope: ElementTreeWalkerScope): boolean { return this._shouldPruneCb(elementId, scope); }\n\n protected prune(elementId: Id64String, scope: ElementTreeWalkerScope): void {\n this._treeDeleter.deleteNormalElements(elementId, scope);\n }\n\n /** Traverses the tree of elements beginning with the top element, and deletes all selected sub-trees.\n * Normal elements are deleted. Any special elements that are encountered are deferred.\n * Call deleteSpecialElementSubTrees after all top elements have been processed. */\n public deleteNormalElementSubTrees(topElement: Id64String, scope?: ElementTreeWalkerScope) {\n const topScope = scope ?? ElementTreeWalkerScope.createTopScope(this._iModel, topElement);\n this.processElementTree(topElement, topScope); // deletes normal elements and their sub-trees, defers special elements\n }\n\n /** Delete all special elements and their sub-trees that were found in the course of processing.\n * The sub-trees were already expanded by ElementTreeDeleter.deleteNormalElements.\n */\n public deleteSpecialElementSubTrees() {\n this._treeDeleter.deleteSpecialElements();\n }\n}\n\n/** Arguments supplied to [[deleteElementTree]].\n * @beta\n */\nexport interface DeleteElementTreeArgs {\n /** The iModel containing the elements to delete. */\n iModel: IModelDb;\n /** The Id of the root element of the tree to delete. */\n topElement: Id64String;\n /** The maximum number of passes to make when deleting definition elements.\n * Default: 5\n */\n maxPasses?: number;\n}\n\n/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.\n * @param iModel The iModel\n * @param topElement The parent of the sub-tree\n * @beta\n */\nexport function deleteElementTree(iModel: IModelDb, topElement: Id64String): void;\n/** Deletes an element tree starting with the specified top element. The top element is also deleted. Uses ElementTreeDeleter.\n * @param args Specifies the iModel and top element.\n * @beta\n */\nexport function deleteElementTree(args: DeleteElementTreeArgs): void;\n/** @internal */\nexport function deleteElementTree(arg0: DeleteElementTreeArgs | IModelDb, arg1?: Id64String): void {\n let maxPasses;\n let iModel: IModelDb;\n let topElement: Id64String;\n if (arg0 instanceof IModelDb) {\n assert(typeof arg1 === \"string\");\n iModel = arg0;\n topElement = arg1;\n } else {\n iModel = arg0.iModel;\n topElement = arg0.topElement;\n maxPasses = arg0.maxPasses;\n }\n\n maxPasses = maxPasses ?? 5;\n let pass = 0;\n do {\n const del = new ElementTreeDeleter(iModel);\n del.deleteNormalElements(topElement);\n del.deleteSpecialElements();\n } while ((iModel.elements.tryGetElement(topElement) !== undefined) && (++pass < maxPasses));\n}\n\n/** Deletes all element sub-trees that are selected by the supplied filter. Uses ElementSubTreeDeleter.\n * If the filter selects the top element itself, then the entire tree (including the top element) is deleted.\n * That has the same effect as calling [[deleteElementTree]] on the top element.\n * @note The caller may have to call this function multiple times if there are multiple layers of dependencies among definition elements.\n * @param iModel The iModel\n * @param topElement Where to start the search.\n * @param filter Callback that selects sub-trees that should be deleted.\n * @beta\n */\nexport function deleteElementSubTrees(iModel: IModelDb, topElement: Id64String, filter: ElementSubTreeDeleteFilter): void {\n const del = new ElementSubTreeDeleter(iModel, filter);\n del.deleteNormalElementSubTrees(topElement);\n del.deleteSpecialElementSubTrees();\n}\n"]}
|
package/lib/cjs/IModelDb.d.ts
CHANGED
|
@@ -181,7 +181,7 @@ export declare abstract class IModelDb extends IModel {
|
|
|
181
181
|
*/
|
|
182
182
|
protected beforeClose(): void;
|
|
183
183
|
/** @internal */
|
|
184
|
-
protected initializeIModelDb(): void;
|
|
184
|
+
protected initializeIModelDb(when?: "pullMerge"): void;
|
|
185
185
|
/** Returns true if this is a BriefcaseDb
|
|
186
186
|
* @see [[BriefcaseDb.open]]
|
|
187
187
|
*/
|
|
@@ -219,6 +219,9 @@ export declare abstract class IModelDb extends IModel {
|
|
|
219
219
|
* @returns the value returned by `callback`.
|
|
220
220
|
* @see [[withStatement]]
|
|
221
221
|
* @public
|
|
222
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
223
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
224
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
222
225
|
*/
|
|
223
226
|
withPreparedStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T, logErrors?: boolean): T;
|
|
224
227
|
/**
|
|
@@ -231,6 +234,9 @@ export declare abstract class IModelDb extends IModel {
|
|
|
231
234
|
* @returns the value returned by `callback`.
|
|
232
235
|
* @see [[withPreparedStatement]]
|
|
233
236
|
* @public
|
|
237
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
238
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
239
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
234
240
|
*/
|
|
235
241
|
withStatement<T>(ecsql: string, callback: (stmt: ECSqlStatement) => T, logErrors?: boolean): T;
|
|
236
242
|
/** Allow to execute query and read results along with meta data. The result are streamed.
|
|
@@ -461,11 +467,17 @@ export declare abstract class IModelDb extends IModel {
|
|
|
461
467
|
* @param sql The ECSQL statement to prepare
|
|
462
468
|
* @param logErrors Determines if error will be logged if statement fail to prepare
|
|
463
469
|
* @throws [[IModelError]] if there is a problem preparing the statement.
|
|
470
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
471
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
472
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
464
473
|
*/
|
|
465
474
|
prepareStatement(sql: string, logErrors?: boolean): ECSqlStatement;
|
|
466
475
|
/** Prepare an ECSQL statement.
|
|
467
476
|
* @param sql The ECSQL statement to prepare
|
|
468
477
|
* @returns `undefined` if there is a problem preparing the statement.
|
|
478
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
479
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
480
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
469
481
|
*/
|
|
470
482
|
tryPrepareStatement(sql: string): ECSqlStatement | undefined;
|
|
471
483
|
/** Construct an entity (Element or Model) from an iModel.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelDb.d.ts","sourceRoot":"","sources":["../../src/IModelDb.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IModelDb.d.ts","sourceRoot":"","sources":["../../src/IModelDb.ts"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,WAAW,EAAU,OAAO,EAAE,aAAa,EAAyE,QAAQ,EACtH,UAAU,EAAQ,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAA+B,QAAQ,EACrH,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EAA2C,oBAAoB,EAAuB,IAAI,EAC3I,SAAS,EAAE,8BAA8B,EAAE,gCAAgC,EAAE,yBAAyB,EACvF,YAAY,EAAa,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,yCAAyC,EAAE,gCAAgC,EAAE,iCAAiC,EAAE,sBAAsB,EAAE,2BAA2B,EAC3P,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAC5H,0BAA0B,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,MAAM,EAClI,6BAA6B,EAAE,8BAA8B,EAAuC,mBAAmB,EAAE,aAAa,EACtI,0BAA0B,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAsB,kBAAkB,EAC9I,kBAAkB,EAAE,cAAc,EAAkB,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAuC,WAAW,EACrI,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAA8B,oBAAoB,EAAE,WAAW,EACnI,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAyB,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAC/I,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAW,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAoB,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAqB,eAAe,EAAuB,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAiB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAkB,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAKpF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAA8C,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAW,iBAAiB,EAAwC,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,SAAS,EAAgG,MAAM,uBAAuB,CAAC;AAIhJ,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAU,SAAS,EAAoB,MAAM,oBAAoB,CAAC;AAMzE;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,8DAA8D;IAC9D,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mDAAmD;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,gBAAgB;AAChB,oBAAY,mBAAmB;IAC7B,cAAc,mBAAmB;IACjC,SAAS,cAAc;CACxB;AA4BD;;;;GAIG;AACH,8BAAsB,QAAS,SAAQ,MAAM;IAC3C,OAAO,CAAC,YAAY,CAAS;IAC7B,uEAAuE;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAC/D,gBAAuB,YAAY,QAAQ;IAC3C,gBAAuB,QAAQ,SAAS;IACxC,SAAgB,MAAM,kBAA6B;IACnD,SAAgB,QAAQ,oBAA+B;IACvD,SAAgB,KAAK,iBAA4B;IACjD,SAAgB,KAAK,iBAA4B;IACjD,YAAY;IACZ,SAAgB,QAAQ,EAAE,cAAc,CAA8B;IACtE,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyC;IAC/E,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,sBAAsB,CAAC,CAAmB;IAClD,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAiB;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA2B;IAC3D,gBAAgB;IAChB,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,CAA2B;IAEzD,gBAAgB;IAChB,SAAS,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC;IAErC,aAAa;IACb,IAAW,WAAW,4BAAgC;IAEtD,+HAA+H;IAC/H,IAAW,KAAK,IAAI,WAAW,CAAyB;IAExD;;;OAGG;IACH,IAAW,SAAS,IAAI,SAAS,CAKhC;IAED;;;OAGG;IACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAG/C,2EAA2E;IAC3E,IAAW,eAAe,YAEzB;IAED,kEAAkE;IAClE,SAAgB,kBAAkB,gBAAqB,IAAI,EAAI;IAC/D,gBAAgB;IACT,sBAAsB;IAK7B,gBAAgB;IACT,iBAAiB;IAIxB,IAAW,OAAO,IAAI,OAAO,CAE5B;IAED,gBAAgB;IACT,YAAY,IAAI,IAAI;IAI3B;;;;;;;OAOG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM;IAMxD,6DAA6D;IAC7D,IAAW,UAAU,IAAI,OAAO,CAAgD;IAEhF,4CAA4C;IAC5C,IAAoB,QAAQ,IAAI,UAAU,CAGzC;IAED;;OAEG;IACH,IAAW,QAAQ,IAAI,cAAc,CAAC,KAAK,CAA4B;IAEvE,eAAe;IACf,SAAgB,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC;IAElD;;OAEG;IACH,IAAW,QAAQ,IAAI,aAAa,CAA0C;IAE9E;;;;;;OAMG;IACH,IAAW,iBAAiB,IAAI,aAAa,CAAqC;IAElF,gBAAgB;IAChB,SAAS,aAAa,IAAI,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,oBAAoB,CAAA;KAAE;IAsC7G,uGAAuG;IAChG,KAAK,IAAI,IAAI;IAgBpB,gBAAgB;IACH,sBAAsB,CAAC,gBAAgB,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAEjF,0DAA0D;IAC1D,SAAgB,aAAa,gBAAqB,IAAI,EAAI;IAE1D;;;OAGG;IACH,SAAS,CAAC,WAAW;IAKrB,gBAAgB;IAChB,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,WAAW;IAoB/C;;OAEG;IACH,IAAW,WAAW,IAAI,OAAO,CAAkB;IACnD,gDAAgD;IACzC,aAAa,IAAI,IAAI,IAAI,WAAW;IAE3C;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAAkB;IAClD,+CAA+C;IACxC,YAAY,IAAI,IAAI,IAAI,UAAU;IAEzC;;;OAGG;IACH,IAAW,YAAY,IAAI,OAAO,CAAkB;IACpD,kDAAkD;IAC3C,cAAc,IAAI,IAAI,IAAI,YAAY;IAE7C;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAAqC;IAEjE,0CAA0C;IACnC,cAAc,IAAI,WAAW;IAEpC;;;;;;;;;;;;;;;OAeG;IAEI,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAkB1G;;;;;;;;;;;;;OAaG;IAEI,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiBlG;;;;;;;;;;;SAWK;IACE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,WAAW;IAWjG;;;;;;;;;;;;;;;OAeG;IACY,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC;IAQ7G;;;;;;;;;;;;OAYG;IACU,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAOhF;;;;;;;;;;;;;;;;;OAiBG;IACY,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC;IAMnI;;;;;;;;;;;;OAYG;IACI,2BAA2B,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiB/G;;;;;;;;;OASG;IACI,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiBvG;;;;OAIG;IACI,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,eAAe;IAM7E;;;;OAIG;IACU,gCAAgC,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAoBhF;;;;;OAKG;IACU,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAenG;;;;;;;;;OASG;IACI,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO;IAkCzD,wDAAwD;IACjD,WAAW;IAMlB;;;;;OAKG;IACI,oBAAoB,CAAC,UAAU,EAAE,gBAAgB;IAKxD;;;;;;;OAOG;IACI,qBAAqB,CAAC,OAAO,CAAC,EAAE,4BAA4B,GAAG,sBAAsB;IAW5F,uFAAuF;IAChF,kBAAkB,CAAC,IAAI,EAAE,YAAY;IAK5C,6DAA6D;IACtD,iBAAiB,IAAI,IAAI;IAIhC;;;OAGG;IACI,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAS9C,8CAA8C;IACvC,cAAc,IAAI,IAAI;IAI7B;;;;;;;OAOG;IACI,iBAAiB;IAOxB;;OAEG;IACI,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAIvD,gBAAgB;IACT,YAAY,IAAI,YAAY;IAInC,gBAAgB;IACT,iBAAiB,IAAI,IAAI;IAIhC;;;;;;;;;;OAUG;IACU,aAAa,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8C1G;;;;;;;;OAQG;IACU,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC/E;;MAEE;WACY,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS;IAS3E;;;;OAIG;WACW,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IAS9C;;OAEG;WACW,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI7D,gBAAgB;WACF,SAAS,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAAC,KAAK;IAyBlN;;;;;;;;;OASG;WACW,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,GAAG,WAAW;IA2C1F;;OAEG;IACH,IAAW,qBAAqB,IAAI,gBAAgB,CAKnD;IAED,qDAAqD;IACrD,IAAW,aAAa,IAAI,aAAa,CAExC;IAED,wCAAwC;IACxC,IAAW,SAAS,IAAI,SAAS,CAEhC;IACD;;;;;;;OAOG;IAEI,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,cAAc;IAOtE;;;;;;OAMG;IAEI,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAOnE;;OAEG;IACI,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAK1F,mEAAmE;IAC5D,UAAU,CAAC,CAAC,SAAS,OAAO,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;IAapE;;OAEG;IACI,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAWzD,2IAA2I;IACpI,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAQxE;;;;;;;OAOG;WACW,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,GAAE,OAAc;IAIhJ;;;;;;OAMG;IACI,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,GAAE,OAAc;IAYvH,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAqBpB;;;;OAIG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAIlD;;;;;OAKG;IACI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAKpD;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAejE;;;;OAIG;IACU,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAIxF;;OAEG;IACI,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS;IAI3E;;OAEG;IACI,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,GAAG,SAAS;IAI7E;;;OAGG;IACI,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAI1G;;OAEG;IACI,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAIxD;;;OAGG;IACI,8BAA8B,CAAC,IAAI,EAAE,iBAAiB;IAE7D,gBAAgB;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAehG;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ1C,iEAAiE;IACpD,sBAAsB,CAAC,KAAK,EAAE,+BAA+B,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAItH,yDAAyD;IAC5C,iBAAiB,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAIvG,uFAAuF;IAC1E,sCAAsC,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAIlI,wHAAwH;IAC3G,sCAAsC,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI5H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACI,cAAc,CAAC,WAAW,EAAE,qBAAqB,GAAG,QAAQ;IAInE;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,WAAW,EAAE,yBAAyB,GAAG,QAAQ;IAI3E;;;OAGG;IACI,sBAAsB,CAAC,YAAY,EAAE,sBAAsB,GAAG,YAAY;IAIjF;;;OAGG;IACU,0BAA0B,CAAC,YAAY,EAAE,gCAAgC,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAInI;;;KAGC;IACM,6BAA6B,CAAC,YAAY,EAAE,yCAAyC,GAAG,aAAa;IAI5G;;;;OAIG;IACI,kBAAkB,CAAC,WAAW,EAAE,kBAAkB,GAAG,YAAY;IAIxE;;OAEG;IACU,uBAAuB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAI3G,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAc;IAElD;;;;;OAKG;IACI,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB;IAUlE;;;OAGG;IACI,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAS3C,kFAAkF;IAClF,OAAO,CAAC,kBAAkB;IAiB1B,gBAAgB;cACA,qBAAqB;IA2BrC;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,OAAO,GAAG,yBAAyB,CAElE;IAED,IAAW,iBAAiB,CAAC,WAAW,EAAE,OAAO,GAAG,yBAAyB,EAE5E;IAED,gBAAgB;IACT,oBAAoB,CAAC,IAAI,EAAE,8BAA8B,GAAG,gBAAgB;CAOpF;AAED,cAAc;AACd,yBAAiB,QAAQ,CAAC;IAExB;;OAEG;IACH,MAAa,MAAM;QAEE,OAAO,CAAC,OAAO;QADlC,gBAAgB;oBACW,OAAO,EAAE,QAAQ;QAE5C;;;;WAIG;QACI,aAAa,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,CAAC;QAI7D;;;;;;WAMG;QACI,gBAAgB,CAAC,CAAC,SAAS,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS;QAI5E;;;WAGG;QACI,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;QAYzD;;;;;WAKG;QACI,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QAQ7F;;;;;;;WAOG;QACI,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;QAY5G;;;;;;WAMG;QACI,YAAY,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,cAAc,GAAG,CAAC;QAQxE;;;;WAIG;QACH,OAAO,CAAC,eAAe;QAQvB;;;;;;WAMG;QACI,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,gBAAgB,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;QAO7H;;;;;;WAMG;QACI,cAAc,CAAC,CAAC,SAAS,KAAK,EAAE,gBAAgB,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;QAQ5I;;;;WAIG;QACI,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,UAAU,EAAE,UAAU,GAAG,CAAC;QAE9D;;;;WAIG;QACI,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;QAQjD;;;WAGG;QACI,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;QAOnD;;;;;;;;WAQG;QACI,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;QAMpD;;;WAGG;QACI,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;QAUtC;;;;;;WAMG;QACU,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAQvF;;WAEG;QACU,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;KAQnF;IAED,UAAiB,UAAU;QACzB,uBAAuB,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;QAChE,uBAAuB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;KACpE;IAED;;OAEG;IACH,MAAa,QAAS,YAAW,UAAU;QAEtB,OAAO,CAAC,OAAO;QADlC,gBAAgB;oBACW,OAAO,EAAE,QAAQ;QAErC,uBAAuB,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;QAO/D,uBAAuB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;QAOzE;;;;;;WAMG;QACI,cAAc,CAAC,CAAC,SAAS,YAAY,EAAE,SAAS,EAAE,gBAAgB,GAAG,CAAC;QAO7E;;;;;WAKG;QACH,OAAO,CAAC,iBAAiB;QAQzB;;;WAGG;QACI,eAAe,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,gBAAgB,GAAG,CAAC;QAa3G;;;;;WAKG;QACI,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,gBAAgB,GAAG,CAAC,GAAG,SAAS;QAS9H;;;;;WAKG;QACI,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,gBAAgB,EAAE,YAAY,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;QAW9I;;;;;;;WAOG;QACI,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,GAAG,gBAAgB,EAAE,YAAY,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS;QAmB7J;;;;;;;;;;WAUG;QACI,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,SAAS;QAkB9E;;;WAGG;QACI,qBAAqB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;QAW3D;;;WAGG;QACI,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,CAAC;QAEjE;;;;;;;;WAQG;QACI,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU;QAUvD;;;;;;;;;;WAUG;QACI,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;QAUvE;;;;WAIG;QACI,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;QAaxC;;;;;;;;;WASG;QACI,wBAAwB,CAAC,oBAAoB,EAAE,SAAS,GAAG,OAAO;QAwEzE;;;WAGG;QACI,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU,EAAE;QAazD;;;;WAIG;QACI,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS;QAWjE;;WAEG;QACI,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO;QAalD,oCAAoC;QAC7B,cAAc,IAAI,OAAO;QAEhC;;;;WAIG;QACI,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE;QAiB7H;;WAEG;QACH,OAAO,CAAC,YAAY;QAmBpB;;WAEG;QACI,SAAS,CAAC,gBAAgB,EAAE,UAAU,GAAG,aAAa;QAa7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;QAEpD,OAAO,CAAC,gBAAgB;QAuBxB;;;;;WAKG;QACI,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE;QAmD7H;;;;;;WAMG;QACI,YAAY,CAAC,WAAW,EAAE,kBAAkB,GAAG,UAAU;QAQhE;;;WAGG;QACI,YAAY,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI;QAQ1D;;;WAGG;QACI,YAAY,CAAC,iBAAiB,EAAE,OAAO,GAAG,IAAI;KAUtD;IAED;;OAEG;IACH,MAAa,KAAK;QAEG,OAAO,CAAC,OAAO;QADlC,gBAAgB;oBACW,OAAO,EAAE,QAAQ;QAC5C,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAsD;QACtF,OAAO,CAAC,UAAU,CAAC,CAAwB;QAC3C,IAAW,YAAY,IAAI,OAAO,CAA0C;QAE5E,YAAY;QACZ,IAAW,SAAS,IAAI,SAAS,CAAC,WAAW,CAI5C;QACD,IAAW,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,WAAW,EAEpD;QACD,YAAY;QACC,eAAe,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC;YAAC,WAAW,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAA;SAAE,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;QAoB1J,YAAY;QACL,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC,cAAc,GAAG,IAAI;QAMlE;;;WAGG;QACI,wBAAwB,CAAC,SAAS,GAAE,MAAiC,EAAE,KAAK,SAAwB,EAAE,MAAM,SAAI,EAAE,WAAW,GAAE,OAAe,GAAG,mBAAmB,EAAE;QAe7K,mJAAmJ;QACnJ,gBAAuB,kBAAkB,EAAE,eAAe,CAAgE;QAE1H;;;;WAIG;QACI,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,GAAG,OAAO;QAiBlG,OAAO,CAAC,YAAY;QAoDpB,qDAAqD;QAC9C,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,cAAc;QAWrG,6FAA6F;QAChF,iBAAiB,CAAC,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;QAWrH,OAAO,CAAC,mBAAmB;QAO3B;;;WAGG;QACI,YAAY,CAAC,gBAAgB,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS;QAW7E;;;;WAIG;QACI,aAAa,CAAC,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM;QAOrF;;;;WAIG;QACI,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;KAQlD;IAED;;;KAGC;IACD,KAAY,gBAAgB;QAC1B,GAAG,IAAA,CAAE,yCAAyC;QAC9C,OAAO,IAAA,CAAE,mDAAmD;QAC5D,OAAO,IAAA;KACR;IAED,gBAAgB;IAChB,MAAa,KAAK;QAEG,OAAO,CAAC,OAAO;QADlC,gBAAgB;oBACW,OAAO,EAAE,QAAQ;QAE5C,gBAAgB;QACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAY3E,OAAO,CAAC,eAAe;QAoCvB,gBAAgB;QACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC;QAMpG,gBAAgB;QACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;KAYjF;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,kHAAkH;IAClH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAE3F;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAEzF;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,+CAA+C;IAC/C,SAAgB,IAAI,EAAE,UAAU,CAAwB;IAExD,iCAAiC;IACjC,IAAoB,WAAW,IAAI,OAAO,CAAiB;IAG3D,SAAgB,WAAW,EAAE,WAAW,CAAC;IAEzC,OAAO,CAAC,6BAA6B,CAAC,CAAO;IAE7C,gBAAgB;IAChB,IAAW,4BAA4B,YAA0D;IAEjG;;;;;;;;OAQG;IACH,gBAAuB,MAAM,kBAAuB,iBAAiB,KAAK,IAAI,EAAI;IAElF;;;;;;;OAOG;IACH,gBAAuB,QAAQ,sBAA2B,WAAW,SAAS,iBAAiB,KAAK,IAAI,EAAI;IAE5G,wDAAwD;IACxD,SAAgB,QAAQ,gBAAqB,IAAI,EAAI;IAErD,aAAa;IACb,gBAAuB,oBAAoB,sBAA2B,WAAW,KAAK,IAAI,EAAI;WAEvE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;WAInC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAKzE;;;SAGK;IACL,IAAoB,OAAO,IAAI,UAAU,CAA2B;IAEpE;;;;;;OAMG;IACH,SAAS,KAAK,aAAa,IAAI,OAAO,CAErC;IAGD,SAAS,CAAC,eAAe;IAKzB,SAAS,aAAa,IAAI,EAAE;QAAE,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAOpH,8GAA8G;mBACzF,SAAS;IA+B9B;;;;;;;MAOE;WACkB,cAAc,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C/E;;OAEG;WACiB,IAAI,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA2DvE,+DAA+D;IAC/D,OAAO,CAAC,mBAAmB;IA+I3B;;;;;OAKG;IACU,eAAe,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtE,OAAO,CAAC,cAAc;IAmBtB,+CAA+C;IAClC,WAAW,CAAC,GAAG,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,gEAAgE;IACnD,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2DxE,iCAAiC;IACpB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7C,KAAK;CAItB;AA8DD;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,QAAQ;IACtC,IAAoB,UAAU,YAAmB;IACjD,OAAO,CAAC,WAAW,CAAqC;IACxD;;;OAGG;IACH,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IACjD,OAAO,CAAC,wBAAwB,CAAC,CAAU;IAC3C,gBAAuB,MAAM,iBAAsB,aAAa,SAAS,kBAAkB,KAAK,IAAI,EAAI;IACxG,gBAAuB,QAAQ,sBAA2B,UAAU,KAAK,IAAI,EAAI;IAEjF,OAAO;WAKgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;WAIlC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAKxE;;;;;;;OAOG;WACW,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,8BAA8B,GAAG,UAAU;IAYvG;;;;;;;;OAQG;WACW,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,UAAU;IAwBnH;;OAEG;WACW,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,UAAU;IAOjG;;;;;OAKG;WACW,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,UAAU;mBAc7D,uBAAuB;IAQ5C,gBAAgB;WACI,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAmB3F;;;OAGG;WACiB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjF;;;OAGG;IACmB,sBAAsB,CAAC,eAAe,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzF,gBAAgB;IACA,WAAW,IAAI,IAAI;CAcpC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,IAAoB,YAAY,IAAI,OAAO,CAAiB;IAC5D,cAAuB,aAAa,YAAoB;WACjC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;WAIpC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAK1E;;;OAGG;WACW,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,gCAAgC,GAAG,YAAY;IAYxG;;;;;;OAMG;WACW,wBAAwB,CAAC,QAAQ,EAAE,aAAa;IAS9D;;;;;OAKG;IACI,gBAAgB,IAAI,IAAI;IAQ/B;;;;;OAKG;WACW,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAE,QAA6B,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,YAAY;CAiBrI"}
|
package/lib/cjs/IModelDb.js
CHANGED
|
@@ -171,6 +171,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
171
171
|
this.tiles = new IModelDb.Tiles(this);
|
|
172
172
|
/** @beta */
|
|
173
173
|
this.channels = (0, ChannelAdmin_1.createChannelControl)(this);
|
|
174
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
174
175
|
this._statementCache = new SqliteStatement_1.StatementCache();
|
|
175
176
|
this._sqliteStatementCache = new SqliteStatement_1.StatementCache();
|
|
176
177
|
this._snaps = new Map();
|
|
@@ -235,8 +236,8 @@ class IModelDb extends core_common_1.IModel {
|
|
|
235
236
|
this.clearCaches();
|
|
236
237
|
}
|
|
237
238
|
/** @internal */
|
|
238
|
-
initializeIModelDb() {
|
|
239
|
-
const props = this[Symbols_1._nativeDb].getIModelProps();
|
|
239
|
+
initializeIModelDb(when) {
|
|
240
|
+
const props = this[Symbols_1._nativeDb].getIModelProps(when);
|
|
240
241
|
super.initialize(props.rootSubject.name, props);
|
|
241
242
|
if (this._initialized)
|
|
242
243
|
return;
|
|
@@ -288,8 +289,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
288
289
|
* @returns the value returned by `callback`.
|
|
289
290
|
* @see [[withStatement]]
|
|
290
291
|
* @public
|
|
292
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
293
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
294
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
291
295
|
*/
|
|
296
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
292
297
|
withPreparedStatement(ecsql, callback, logErrors = true) {
|
|
298
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
293
299
|
const stmt = this._statementCache.findAndRemove(ecsql) ?? this.prepareStatement(ecsql, logErrors);
|
|
294
300
|
const release = () => this._statementCache.addOrDispose(stmt);
|
|
295
301
|
try {
|
|
@@ -317,8 +323,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
317
323
|
* @returns the value returned by `callback`.
|
|
318
324
|
* @see [[withPreparedStatement]]
|
|
319
325
|
* @public
|
|
326
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
327
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
328
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
320
329
|
*/
|
|
330
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
321
331
|
withStatement(ecsql, callback, logErrors = true) {
|
|
332
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
322
333
|
const stmt = this.prepareStatement(ecsql, logErrors);
|
|
323
334
|
const release = () => stmt.dispose();
|
|
324
335
|
try {
|
|
@@ -560,6 +571,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
560
571
|
if (typeof params.offset === "number" && params.offset > 0)
|
|
561
572
|
sql += ` OFFSET ${params.offset}`;
|
|
562
573
|
const ids = new Set();
|
|
574
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
563
575
|
this.withPreparedStatement(sql, (stmt) => {
|
|
564
576
|
if (params.bindings)
|
|
565
577
|
stmt.bindValues(params.bindings);
|
|
@@ -891,8 +903,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
891
903
|
* @param sql The ECSQL statement to prepare
|
|
892
904
|
* @param logErrors Determines if error will be logged if statement fail to prepare
|
|
893
905
|
* @throws [[IModelError]] if there is a problem preparing the statement.
|
|
906
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
907
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
908
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
894
909
|
*/
|
|
910
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
895
911
|
prepareStatement(sql, logErrors = true) {
|
|
912
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
896
913
|
const stmt = new ECSqlStatement_1.ECSqlStatement();
|
|
897
914
|
stmt.prepare(this[Symbols_1._nativeDb], sql, logErrors);
|
|
898
915
|
return stmt;
|
|
@@ -900,8 +917,13 @@ class IModelDb extends core_common_1.IModel {
|
|
|
900
917
|
/** Prepare an ECSQL statement.
|
|
901
918
|
* @param sql The ECSQL statement to prepare
|
|
902
919
|
* @returns `undefined` if there is a problem preparing the statement.
|
|
920
|
+
* @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
|
|
921
|
+
* [IModelDb.createQueryReader]($backend) is an asynchronous API. If you encounter a use case that cannot be converted to async, please report an issue at https://github.com/iTwin/itwinjs-core/issues.
|
|
922
|
+
* Mean while use [IModelDb.withPreparedStatement]($backend) for synchronous API calls where conversion to async is not possible.
|
|
903
923
|
*/
|
|
924
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
904
925
|
tryPrepareStatement(sql) {
|
|
926
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
905
927
|
const statement = new ECSqlStatement_1.ECSqlStatement();
|
|
906
928
|
const result = statement.tryPrepare(this[Symbols_1._nativeDb], sql);
|
|
907
929
|
return core_bentley_1.DbResult.BE_SQLITE_OK === result.status ? statement : undefined;
|
|
@@ -1016,6 +1038,7 @@ class IModelDb extends core_common_1.IModel {
|
|
|
1016
1038
|
*/
|
|
1017
1039
|
querySchemaVersion(schemaName) {
|
|
1018
1040
|
const sql = `SELECT VersionMajor,VersionWrite,VersionMinor FROM ECDbMeta.ECSchemaDef WHERE Name=:schemaName LIMIT 1`;
|
|
1041
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1019
1042
|
return this.withPreparedStatement(sql, (statement) => {
|
|
1020
1043
|
statement.bindString("schemaName", schemaName);
|
|
1021
1044
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
@@ -1325,6 +1348,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1325
1348
|
*/
|
|
1326
1349
|
queryLastModifiedTime(modelId) {
|
|
1327
1350
|
const sql = `SELECT LastMod FROM ${Model_1.Model.classFullName} WHERE ECInstanceId=:modelId`;
|
|
1351
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1328
1352
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1329
1353
|
statement.bindId("modelId", modelId);
|
|
1330
1354
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
@@ -1635,6 +1659,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1635
1659
|
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCodeSpec, "Invalid CodeSpec");
|
|
1636
1660
|
if (code.value === undefined)
|
|
1637
1661
|
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCode, "Invalid Code");
|
|
1662
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1638
1663
|
return this._iModel.withPreparedStatement("SELECT ECInstanceId FROM BisCore:Element WHERE CodeSpec.Id=? AND CodeScope.Id=? AND CodeValue=?", (stmt) => {
|
|
1639
1664
|
stmt.bindId(1, code.spec);
|
|
1640
1665
|
stmt.bindId(2, core_bentley_1.Id64.fromString(code.scope));
|
|
@@ -1650,6 +1675,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1650
1675
|
*/
|
|
1651
1676
|
queryLastModifiedTime(elementId) {
|
|
1652
1677
|
const sql = "SELECT LastMod FROM BisCore:Element WHERE ECInstanceId=:elementId";
|
|
1678
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1653
1679
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1654
1680
|
statement.bindId("elementId", elementId);
|
|
1655
1681
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step())
|
|
@@ -1801,6 +1827,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1801
1827
|
*/
|
|
1802
1828
|
queryChildren(elementId) {
|
|
1803
1829
|
const sql = "SELECT ECInstanceId FROM BisCore:Element WHERE Parent.Id=:elementId";
|
|
1830
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1804
1831
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1805
1832
|
statement.bindId("elementId", elementId);
|
|
1806
1833
|
const childIds = [];
|
|
@@ -1816,6 +1843,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1816
1843
|
* @throws [[IModelError]] if the element does not exist
|
|
1817
1844
|
*/
|
|
1818
1845
|
queryParent(elementId) {
|
|
1846
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1819
1847
|
return this._iModel.withPreparedStatement(`select parent.id from ${Element_1.Element.classFullName} where ecinstanceid=?`, (stmt) => {
|
|
1820
1848
|
stmt.bindId(1, elementId);
|
|
1821
1849
|
if (stmt.step() !== core_bentley_1.DbResult.BE_SQLITE_ROW)
|
|
@@ -1832,6 +1860,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1832
1860
|
return false; // Special case since the RepositoryModel does not sub-model the root Subject
|
|
1833
1861
|
// A sub-model will have the same Id value as the element it is describing
|
|
1834
1862
|
const sql = "SELECT ECInstanceId FROM BisCore:Model WHERE ECInstanceId=:elementId";
|
|
1863
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1835
1864
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1836
1865
|
statement.bindId("elementId", elementId);
|
|
1837
1866
|
return core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step();
|
|
@@ -1846,6 +1875,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1846
1875
|
*/
|
|
1847
1876
|
_queryAspects(elementId, fromClassFullName, excludedClassFullNames) {
|
|
1848
1877
|
const sql = `SELECT ECInstanceId,ECClassId FROM ${fromClassFullName} WHERE Element.Id=:elementId ORDER BY ECClassId,ECInstanceId`; // ORDER BY to maximize statement reuse
|
|
1878
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1849
1879
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1850
1880
|
statement.bindId("elementId", elementId);
|
|
1851
1881
|
const aspects = [];
|
|
@@ -1864,6 +1894,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1864
1894
|
*/
|
|
1865
1895
|
_queryAspect(aspectInstanceId, aspectClassName) {
|
|
1866
1896
|
const sql = `SELECT * FROM ${aspectClassName} WHERE ECInstanceId=:aspectInstanceId`;
|
|
1897
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1867
1898
|
const aspect = this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1868
1899
|
statement.bindId("aspectInstanceId", aspectInstanceId);
|
|
1869
1900
|
if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
|
|
@@ -1884,6 +1915,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1884
1915
|
*/
|
|
1885
1916
|
getAspect(aspectInstanceId) {
|
|
1886
1917
|
const sql = "SELECT ECClassId FROM BisCore:ElementAspect WHERE ECInstanceId=:aspectInstanceId";
|
|
1918
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1887
1919
|
const aspectClassFullName = this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1888
1920
|
statement.bindId("aspectInstanceId", aspectInstanceId);
|
|
1889
1921
|
return (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) ? statement.getValue(0).getClassNameForClassId().replace(".", ":") : undefined;
|
|
@@ -1894,6 +1926,7 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1894
1926
|
return this._queryAspect(aspectInstanceId, aspectClassFullName);
|
|
1895
1927
|
}
|
|
1896
1928
|
runInstanceQuery(sql, elementId, excludedClassFullNames) {
|
|
1929
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1897
1930
|
return this._iModel.withPreparedStatement(sql, (statement) => {
|
|
1898
1931
|
statement.bindId("elementId", elementId);
|
|
1899
1932
|
const aspects = [];
|
|
@@ -1942,8 +1975,11 @@ IModelDb._settingPropNamespace = "settings";
|
|
|
1942
1975
|
let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
|
|
1943
1976
|
if (classIdList === undefined) {
|
|
1944
1977
|
const classIds = [];
|
|
1978
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1945
1979
|
this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
|
|
1946
|
-
and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
|
|
1980
|
+
and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
|
|
1981
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1982
|
+
(statement) => {
|
|
1947
1983
|
while (statement.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
|
|
1948
1984
|
classIds.push(statement.getValue(0).getId());
|
|
1949
1985
|
});
|
|
@@ -2659,7 +2695,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2659
2695
|
await BriefcaseManager_1.BriefcaseManager.pullAndApplyChangesets(this, arg ?? {});
|
|
2660
2696
|
if (!this.skipSyncSchemasOnPullAndPush)
|
|
2661
2697
|
await SchemaSync_1.SchemaSync.pull(this);
|
|
2662
|
-
this.initializeIModelDb();
|
|
2698
|
+
this.initializeIModelDb("pullMerge");
|
|
2663
2699
|
});
|
|
2664
2700
|
IpcHost_1.IpcHost.notifyTxns(this, "notifyPulledChanges", this.changeset);
|
|
2665
2701
|
this.txns.touchWatchFile();
|
|
@@ -2741,7 +2777,7 @@ class BriefcaseDb extends IModelDb {
|
|
|
2741
2777
|
// pushing changes requires a writeable briefcase
|
|
2742
2778
|
await this.executeWritable(async () => {
|
|
2743
2779
|
await BriefcaseManager_1.BriefcaseManager.pullMergePush(this, arg);
|
|
2744
|
-
this.initializeIModelDb();
|
|
2780
|
+
this.initializeIModelDb("pullMerge");
|
|
2745
2781
|
});
|
|
2746
2782
|
const changeset = this.changeset;
|
|
2747
2783
|
IpcHost_1.IpcHost.notifyTxns(this, "notifyPushedChanges", changeset);
|