forked from sheetjs/sheetjs
		
	- fixes #571 h/t @FredrikL @mooyoul - pin npm version in travis, see https://github.com/npm/npm/issues/15855 - updated CFB (fixes #569 h/t @e12009) - remove BOM for some SpreadsheetML files case insensitive zip file search fixes: - fixes #439 h/t @chikh - fixes #440 h/t @chikh - fixes #567 h/t @duzun
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var Base64 = (function make_b64(){
 | |
| 	var map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
 | |
| 	return {
 | |
| 		encode: function(input/*:string*/, utf8)/*:string*/ {
 | |
| 			var o = "";
 | |
| 			var c1, c2, c3, e1, e2, e3, e4;
 | |
| 			for(var i = 0; i < input.length; ) {
 | |
| 				c1 = input.charCodeAt(i++);
 | |
| 				c2 = input.charCodeAt(i++);
 | |
| 				c3 = input.charCodeAt(i++);
 | |
| 				e1 = c1 >> 2;
 | |
| 				e2 = (c1 & 3) << 4 | c2 >> 4;
 | |
| 				e3 = (c2 & 15) << 2 | c3 >> 6;
 | |
| 				e4 = c3 & 63;
 | |
| 				if (isNaN(c2)) { e3 = e4 = 64; }
 | |
| 				else if (isNaN(c3)) { e4 = 64; }
 | |
| 				o += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);
 | |
| 			}
 | |
| 			return o;
 | |
| 		},
 | |
| 		decode: function b64_decode(input/*:string*/, utf8)/*:string*/ {
 | |
| 			var o = "";
 | |
| 			var c1, c2, c3;
 | |
| 			var e1, e2, e3, e4;
 | |
| 			input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
 | |
| 			for(var i = 0; i < input.length;) {
 | |
| 				e1 = map.indexOf(input.charAt(i++));
 | |
| 				e2 = map.indexOf(input.charAt(i++));
 | |
| 				e3 = map.indexOf(input.charAt(i++));
 | |
| 				e4 = map.indexOf(input.charAt(i++));
 | |
| 				c1 = e1 << 2 | e2 >> 4;
 | |
| 				c2 = (e2 & 15) << 4 | e3 >> 2;
 | |
| 				c3 = (e3 & 3) << 6 | e4;
 | |
| 				o += String.fromCharCode(c1);
 | |
| 				if (e3 != 64) { o += String.fromCharCode(c2); }
 | |
| 				if (e4 != 64) { o += String.fromCharCode(c3); }
 | |
| 			}
 | |
| 			return o;
 | |
| 		}
 | |
| 	};
 | |
| })();
 |