diff --git a/projects/common/models/elements/element.ts b/projects/common/models/elements/element.ts index 8ddeac801fd9fe0f5fd3795e47ecf26c47a4ce30..e88321a8e85b2f29566fdd18e0568bdf07884c0e 100644 --- a/projects/common/models/elements/element.ts +++ b/projects/common/models/elements/element.ts @@ -68,10 +68,6 @@ export abstract class UIElement { (this.player as PlayerProperties)[property] = value; } - getChildElements(): UIElement[] { - return []; - } - abstract getComponentFactory(): Type<ElementComponent>; } diff --git a/projects/common/models/section.ts b/projects/common/models/section.ts index e008574c35151aaf9643ec36f90e35dff256967c..152367a05658b7714662dcdff7599cecafaf7fb1 100644 --- a/projects/common/models/section.ts +++ b/projects/common/models/section.ts @@ -91,7 +91,7 @@ export class Section { /* Includes children of children, i.e. compound children. */ getAllElements(elementType?: string): UIElement[] { let allElements: UIElement[] = - this.elements.map(element => [element, ...element.getChildElements()]) + this.elements.map(element => [element, ...(element as CompoundElement).getChildElements() || []]) .flat(); if (elementType) { allElements = allElements.filter(element => element.type === elementType); diff --git a/projects/editor/src/app/services/unit.service.ts b/projects/editor/src/app/services/unit.service.ts index 11a2d6f4f92a1128814f512710107e4ac6b90e7a..0f3e752d7187d2a1a93d32944ffcfa66f10397da 100644 --- a/projects/editor/src/app/services/unit.service.ts +++ b/projects/editor/src/app/services/unit.service.ts @@ -148,9 +148,11 @@ export class UnitService { this.idManager.removeId(value.id); }); } - element.getChildElements().forEach((childElement: UIElement) => { - this.idManager.removeId(childElement.id); - }); + if (element instanceof CompoundElement) { + element.getChildElements().forEach((childElement: UIElement) => { + this.idManager.removeId(childElement.id); + }); + } this.idManager.removeId(element.id); }); }