| 
					
				 | 
			
			
				@@ -1,3 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { ROUNDNESS } from "../constants"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { AppState } from "../types"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ExcalidrawElement, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -10,6 +11,7 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ExcalidrawImageElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ExcalidrawTextElementWithContainer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ExcalidrawTextContainer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  RoundnessType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from "./types"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export const isGenericElement = ( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -154,3 +156,51 @@ export const isBoundToContainer = ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export const isUsingAdaptiveRadius = (type: string) => type === "rectangle"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export const isUsingProportionalRadius = (type: string) => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  type === "line" || type === "arrow" || type === "diamond"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export const canApplyRoundnessTypeToElement = ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  roundnessType: RoundnessType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  element: ExcalidrawElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (roundnessType === ROUNDNESS.ADAPTIVE_RADIUS || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // if legacy roundness, it can be applied to elements that currently 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // use adaptive radius 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      roundnessType === ROUNDNESS.LEGACY) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isUsingAdaptiveRadius(element.type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    roundnessType === ROUNDNESS.PROPORTIONAL_RADIUS && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    isUsingProportionalRadius(element.type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export const getDefaultRoundnessTypeForElement = ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  element: ExcalidrawElement, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    element.type === "arrow" || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    element.type === "line" || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    element.type === "diamond" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: ROUNDNESS.PROPORTIONAL_RADIUS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (element.type === "rectangle") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: ROUNDNESS.ADAPTIVE_RADIUS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 |