diff --git a/projects/editor/src/app/components/unit-view/page-view/properties-panel/element-properties.component.ts b/projects/editor/src/app/components/unit-view/page-view/properties-panel/element-properties.component.ts
index 1850bf5d2960b07c814defe786482f7fbfe6b066..e74ad3fe8c38c53da932b56321a9452569a77a57 100644
--- a/projects/editor/src/app/components/unit-view/page-view/properties-panel/element-properties.component.ts
+++ b/projects/editor/src/app/components/unit-view/page-view/properties-panel/element-properties.component.ts
@@ -55,22 +55,24 @@ export class ElementPropertiesComponent implements OnInit, OnDestroy {
   /* Create new object with properties of all selected elements. When values differ set prop to undefined. */
   createCombinedProperties(): void {
     // Flatten all elements first, to make it easier to combine them
-    this.selectedElements =
+    const flattenedSelectedElements =
       this.selectedElements.map(element => ElementPropertiesComponent.flattenInterfaceProps(element));
-    if (this.selectedElements.length === 0) {
+
+    if (flattenedSelectedElements.length === 0) {
       this.combinedProperties = {} as UIElement;
     } else {
-      this.combinedProperties = { ...this.selectedElements[0] } as UIElement;
+      this.combinedProperties = { ...flattenedSelectedElements[0] } as UIElement;
 
-      for (let i = 1; i < this.selectedElements.length; i++) {
+      for (let i = 1; i < flattenedSelectedElements.length; i++) {
         Object.keys(this.combinedProperties).forEach((property: keyof UIElement) => {
-          if (Object.prototype.hasOwnProperty.call(this.selectedElements[i], property)) {
-            if (Array.isArray(this.selectedElements[i][property])) {
-              if (this.selectedElements[i][property]!.toString() === this.combinedProperties[property]!.toString()) {
-                this.combinedProperties[property] = this.selectedElements[i][property];
+          if (Object.prototype.hasOwnProperty.call(flattenedSelectedElements[i], property)) {
+            if (Array.isArray(flattenedSelectedElements[i][property])) {
+              if (flattenedSelectedElements[i][property]!.toString() === this.combinedProperties[property]!.toString()) {
+                // @ts-ignore TODO
+                flattenedSelectedElements[property] = flattenedSelectedElements[i][property];
               }
             }
-            if (this.selectedElements[i][property] !== this.combinedProperties[property]) {
+            if (flattenedSelectedElements[i][property] !== this.combinedProperties[property]) {
               this.combinedProperties[property] = null;
             }
           } else {
@@ -83,9 +85,9 @@ export class ElementPropertiesComponent implements OnInit, OnDestroy {
   }
 
   private static flattenInterfaceProps(element: UIElement): UIElement {
-    let flatElement = merge(element, element.positionProps);
+    let flatElement = merge({ ...element }, element.positionProps);
     flatElement = merge(flatElement, element.fontProps);
-    return merge(flatElement, element.surfaceProps);
+    return merge(flatElement, element.surfaceProps) as unknown as UIElement;
   }
 
   updateModel(property: string,