You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			30 lines
		
	
	
		
			911 B
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			911 B
		
	
	
	
		
			TypeScript
		
	
| 
											3 years ago
										 | import { saveURLAsFile } from './saveURLAsFile'; | ||
|  | 
 | ||
|  | export function saveQRCode( | ||
|  |   filename: string, | ||
|  |   width: string, | ||
|  |   height: string, | ||
|  |   backgroundColor: string, | ||
|  |   foregroundColor: string | ||
|  | ): void { | ||
|  |   const qrSVG = document.querySelector('.qr-image svg'); | ||
|  |   if (qrSVG) { | ||
|  |     // tslint:disable-next-line: no-http-string
 | ||
|  |     qrSVG.setAttribute('xmlns', 'http://www.w3.org/2000/svg'); | ||
|  |     qrSVG.setAttribute('width', width); | ||
|  |     qrSVG.setAttribute('height', height); | ||
|  |     let content = qrSVG.outerHTML; | ||
|  |     content = content.replaceAll(backgroundColor, 'white'); | ||
|  |     content = content.replaceAll(foregroundColor, 'black'); | ||
|  |     const file = new Blob([content], { type: 'text/plain' }); | ||
|  |     const url = URL.createObjectURL(file); | ||
|  |     saveURLAsFile({ | ||
|  |       filename: `${filename}-${new Date().toISOString()}.svg`, | ||
|  |       url, | ||
|  |       document, | ||
|  |     }); | ||
|  |   } else { | ||
|  |     window.log.info('[saveQRCode] QR code not found'); | ||
|  |   } | ||
|  | } |