| 
														
															@@ -8,6 +8,7 @@ import { SVG_EXPORT_TAG } from "./scene/export"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { tryParseSpreadsheet, Spreadsheet, VALID_SPREADSHEET } from "./charts"; 
														 | 
														
														 | 
														
															 import { tryParseSpreadsheet, Spreadsheet, VALID_SPREADSHEET } from "./charts"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { EXPORT_DATA_TYPES, MIME_TYPES } from "./constants"; 
														 | 
														
														 | 
														
															 import { EXPORT_DATA_TYPES, MIME_TYPES } from "./constants"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import { isInitializedImageElement } from "./element/typeChecks"; 
														 | 
														
														 | 
														
															 import { isInitializedImageElement } from "./element/typeChecks"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import { isPromiseLike } from "./utils"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 type ElementsClipboard = { 
														 | 
														
														 | 
														
															 type ElementsClipboard = { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   type: typeof EXPORT_DATA_TYPES.excalidrawClipboard; 
														 | 
														
														 | 
														
															   type: typeof EXPORT_DATA_TYPES.excalidrawClipboard; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -166,10 +167,35 @@ export const parseClipboard = async ( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   } 
														 | 
														
														 | 
														
															   } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-export const copyBlobToClipboardAsPng = async (blob: Blob) => { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  await navigator.clipboard.write([ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    new window.ClipboardItem({ [MIME_TYPES.png]: blob }), 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-  ]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+export const copyBlobToClipboardAsPng = async (blob: Blob | Promise<Blob>) => { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  let promise; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // in Safari so far we need to construct the ClipboardItem synchronously 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // (i.e. in the same tick) otherwise browser will complain for lack of 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // user intent. Using a Promise ClipboardItem constructor solves this. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // https://bugs.webkit.org/show_bug.cgi?id=222262 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // not await so that we can detect whether the thrown error likely relates 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // to a lack of support for the Promise ClipboardItem constructor 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    promise = navigator.clipboard.write([ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      new window.ClipboardItem({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        [MIME_TYPES.png]: blob, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    ]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } catch (error: any) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // if we're using a Promise ClipboardItem, let's try constructing 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // with resolution value instead 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    if (isPromiseLike(blob)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      await navigator.clipboard.write([ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        new window.ClipboardItem({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+          [MIME_TYPES.png]: await blob, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      ]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+      throw error; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+  await promise; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 export const copyTextToSystemClipboard = async (text: string | null) => { 
														 | 
														
														 | 
														
															 export const copyTextToSystemClipboard = async (text: string | null) => { 
														 |