| 
									
										
										
										
											2022-02-05 13:59:25 +00:00
										 |  |  | import * as CFBModule from 'cfb'; | 
					
						
							|  |  |  | type CFBType = typeof CFBModule; | 
					
						
							|  |  |  | declare var CFB: CFBType; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var CT_VBA = "application/vnd.ms-office.vbaProject"; | 
					
						
							|  |  |  | function make_vba_xls(cfb: CFBModule.CFB$Container) { | 
					
						
							|  |  |  | 	var newcfb = CFB.utils.cfb_new({root:"R"}); | 
					
						
							|  |  |  | 	cfb.FullPaths.forEach(function(p, i) { | 
					
						
							|  |  |  | 		if(p.slice(-1) === "/" || !p.match(/_VBA_PROJECT_CUR/)) return; | 
					
						
							|  |  |  | 		var newpath = p.replace(/^[^\/]*/,"R").replace(/\/_VBA_PROJECT_CUR\u0000*/, ""); | 
					
						
							|  |  |  | 		CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 	return CFB.write(newcfb); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function fill_vba_xls(cfb: CFBModule.CFB$Container, vba: CFBModule.CFB$Container): void { | 
					
						
							|  |  |  | 	vba.FullPaths.forEach(function(p, i) { | 
					
						
							|  |  |  | 		if(i == 0) return; | 
					
						
							| 
									
										
										
										
											2024-04-05 01:20:28 +00:00
										 |  |  | 		var newpath = p.replace(/^[\/]*[^\/]*[\/]/, "/_VBA_PROJECT_CUR/"); | 
					
						
							| 
									
										
										
										
											2022-02-05 13:59:25 +00:00
										 |  |  | 		if(newpath.slice(-1) !== "/") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var VBAFMTS: string[] = [ "xlsb", "xlsm", "xlam", "biff8", "xla" ]; |