| 
					
				 | 
			
			
				@@ -52,49 +52,45 @@ function handleGroupEditingState( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export const actionDeleteSelected = register({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: "deleteSelectedElements", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   perform: (elements, appState) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      appState.editingLinearElement?.activePointIndex != null && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      appState.editingLinearElement?.activePointIndex > -1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const { elementId } = appState.editingLinearElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (appState.editingLinearElement) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const { elementId, activePointIndex } = appState.editingLinearElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const element = LinearElementEditor.getElement(elementId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (element) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!element) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // case: no point selected → delete whole element 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        activePointIndex == null || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        activePointIndex === -1 || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // case: deleting last point 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (element.points.length < 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const nextElements = elements.filter((el) => el.id !== element.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const nextAppState = handleGroupEditingState(appState, nextElements); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            elements: nextElements, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            appState: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ...nextAppState, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              editingLinearElement: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            commitToHistory: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        LinearElementEditor.movePoint( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          element, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          appState.editingLinearElement.activePointIndex, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          "delete", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        element.points.length < 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const nextElements = elements.filter((el) => el.id !== element.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const nextAppState = handleGroupEditingState(appState, nextElements); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          elements: elements, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          elements: nextElements, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           appState: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ...appState, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            editingLinearElement: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              ...appState.editingLinearElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              activePointIndex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                appState.editingLinearElement.activePointIndex > 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  ? appState.editingLinearElement.activePointIndex - 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  : 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...nextAppState, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            editingLinearElement: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          commitToHistory: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          commitToHistory: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      LinearElementEditor.movePoint(element, activePointIndex, "delete"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        elements: elements, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        appState: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ...appState, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          editingLinearElement: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...appState.editingLinearElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            activePointIndex: activePointIndex > 0 ? activePointIndex - 1 : 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        commitToHistory: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     let { 
			 |