forked from sheetjs/sheetjs
		
	updated SSF to 0.9.4
- fixes #677 h/t @kuhu19 - fixes #676 h/t @vvaldersteins note: @sheetjsdev authored commit, SSF PR info used
This commit is contained in:
		
							parent
							
								
									6a100b9085
								
							
						
					
					
						commit
						da1c111275
					
				| @ -2,7 +2,7 @@ | ||||
| /*jshint -W041 */ | ||||
| var SSF = {}; | ||||
| var make_ssf = function make_ssf(SSF){ | ||||
| SSF.version = '0.9.3'; | ||||
| SSF.version = '0.9.4'; | ||||
| function _strrev(x/*:string*/)/*:string*/ { var o = "", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; } | ||||
| function fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = ""; while(o.length < l) o+=c; return o; } | ||||
| function pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=""+v; return t.length>=d?t:fill('0',d-t.length)+t;} | ||||
| @ -299,7 +299,7 @@ function write_num_f1(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:s | ||||
| function write_num_f2(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ { | ||||
| 	return sign + (aval === 0 ? "" : ""+aval) + fill(" ", r[1].length + 2 + r[4].length); | ||||
| } | ||||
| var dec1 = /^#*0*\.(0+)/; | ||||
| var dec1 = /^#*0*\.([0#]+)/; | ||||
| var closeparen = /\).*[0#]/; | ||||
| var phone = /\(###\) ###\\?-####/; | ||||
| function hashq(str/*:string*/)/*:string*/ { | ||||
| @ -346,7 +346,7 @@ function write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string | ||||
| 	if((r = fmt.match(frac1))) return write_num_f1(r, aval, sign); | ||||
| 	if(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf("0")); | ||||
| 	if((r = fmt.match(dec1))) { | ||||
| 		o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$, $1) { return "." + $1 + fill("0", /*::(*/r/*::||[""])*/[1].length-$1.length); }); | ||||
| 		o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])).replace(/\.(\d*)$/,function($$, $1) { return "." + $1 + fill("0", hashq(/*::(*/r/*::||[""])*/[1]).length-$1.length); }); | ||||
| 		return fmt.indexOf("0.") !== -1 ? o : o.replace(/^0\./,"."); | ||||
| 	} | ||||
| 	fmt = fmt.replace(/^#+([0.])/, "$1"); | ||||
| @ -463,10 +463,10 @@ function write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string | ||||
| 	if(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf("0")); | ||||
| 	if((r = fmt.match(dec1))) { | ||||
| 		/*:: if(!Array.isArray(r)) throw new Error("unreachable"); */ | ||||
| 		o = (""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]); | ||||
| 		o = (""+val).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])); | ||||
| 		o = o.replace(/\.(\d*)$/,function($$, $1) { | ||||
| 		/*:: if(!Array.isArray(r)) throw new Error("unreachable"); */ | ||||
| 			return "." + $1 + fill("0", r[1].length-$1.length); }); | ||||
| 			return "." + $1 + fill("0", hashq(r[1]).length-$1.length); }); | ||||
| 		return fmt.indexOf("0.") !== -1 ? o : o.replace(/^0\./,"."); | ||||
| 	} | ||||
| 	fmt = fmt.replace(/^#+([0.])/, "$1"); | ||||
| @ -564,9 +564,9 @@ function fmt_is_date(fmt/*:string*/)/*:boolean*/ { | ||||
| 			case 'M': case 'D': case 'Y': case 'H': case 'S': case 'E': | ||||
| 				/* falls through */ | ||||
| 			case 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true; | ||||
| 			case 'A': | ||||
| 				if(fmt.substr(i, 3) === "A/P") return true; | ||||
| 				if(fmt.substr(i, 5) === "AM/PM") return true; | ||||
| 			case 'A': case 'a': | ||||
| 				if(fmt.substr(i, 3).toUpperCase() === "A/P") return true; | ||||
| 				if(fmt.substr(i, 5).toUpperCase() === "AM/PM") return true; | ||||
| 				++i; break; | ||||
| 			case '[': | ||||
| 				o = c; | ||||
| @ -623,11 +623,11 @@ function eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) { | ||||
| 				if(c === 'm' && lst.toLowerCase() === 'h') c = 'M'; | ||||
| 				if(c === 'h') c = hr; | ||||
| 				out[out.length] = {t:c, v:o}; lst = c; break; | ||||
| 			case 'A': | ||||
| 				q={t:c, v:"A"}; | ||||
| 			case 'A': case 'a': | ||||
| 				q={t:c, v:c}; | ||||
| 				if(dt==null) dt=parse_date_code(v, opts); | ||||
| 				if(fmt.substr(i, 3) === "A/P") { if(dt!=null) q.v = dt.H >= 12 ? "P" : "A"; q.t = 'T'; hr='h';i+=3;} | ||||
| 				else if(fmt.substr(i,5) === "AM/PM") { if(dt!=null) q.v = dt.H >= 12 ? "PM" : "AM"; q.t = 'T'; i+=5; hr='h'; } | ||||
| 				if(fmt.substr(i, 3).toUpperCase() === "A/P") { if(dt!=null) q.v = dt.H >= 12 ? "P" : "A"; q.t = 'T'; hr='h';i+=3;} | ||||
| 				else if(fmt.substr(i,5).toUpperCase() === "AM/PM") { if(dt!=null) q.v = dt.H >= 12 ? "PM" : "AM"; q.t = 'T'; i+=5; hr='h'; } | ||||
| 				else { q.t = "t"; ++i; } | ||||
| 				if(dt==null && q.t === 'T') return ""; | ||||
| 				out[out.length] = q; lst = c; break; | ||||
| @ -664,7 +664,7 @@ function eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) { | ||||
| 				out[out.length] = {t:'D', v:o}; break; | ||||
| 			case ' ': out[out.length] = {t:c, v:c}; ++i; break; | ||||
| 			default: | ||||
| 				if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); | ||||
| 				if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); | ||||
| 				out[out.length] = {t:'t', v:c}; ++i; break; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| @ -18,7 +18,7 @@ | ||||
| 	}, | ||||
| 	"dependencies": { | ||||
| 		"exit-on-epipe":"~1.0.0", | ||||
| 		"ssf":"~0.9.3", | ||||
| 		"ssf":"~0.9.4", | ||||
| 		"codepage":"~1.8.0", | ||||
| 		"cfb":"~0.11.1", | ||||
| 		"crc-32":"~1.0.2", | ||||
|  | ||||
							
								
								
									
										26
									
								
								xlsx.flow.js
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										26
									
								
								xlsx.flow.js
									
									
									
									
									
								
							| @ -119,7 +119,7 @@ type WriteObjStrFactory = {from_sheet(ws:Worksheet, o:any):string}; | ||||
| /*jshint -W041 */ | ||||
| var SSF = {}; | ||||
| var make_ssf = function make_ssf(SSF){ | ||||
| SSF.version = '0.9.3'; | ||||
| SSF.version = '0.9.4'; | ||||
| function _strrev(x/*:string*/)/*:string*/ { var o = "", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; } | ||||
| function fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = ""; while(o.length < l) o+=c; return o; } | ||||
| function pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=""+v; return t.length>=d?t:fill('0',d-t.length)+t;} | ||||
| @ -416,7 +416,7 @@ function write_num_f1(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:s | ||||
| function write_num_f2(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ { | ||||
| 	return sign + (aval === 0 ? "" : ""+aval) + fill(" ", r[1].length + 2 + r[4].length); | ||||
| } | ||||
| var dec1 = /^#*0*\.(0+)/; | ||||
| var dec1 = /^#*0*\.([0#]+)/; | ||||
| var closeparen = /\).*[0#]/; | ||||
| var phone = /\(###\) ###\\?-####/; | ||||
| function hashq(str/*:string*/)/*:string*/ { | ||||
| @ -463,7 +463,7 @@ function write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string | ||||
| 	if((r = fmt.match(frac1))) return write_num_f1(r, aval, sign); | ||||
| 	if(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf("0")); | ||||
| 	if((r = fmt.match(dec1))) { | ||||
| 		o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$, $1) { return "." + $1 + fill("0", /*::(*/r/*::||[""])*/[1].length-$1.length); }); | ||||
| 		o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])).replace(/\.(\d*)$/,function($$, $1) { return "." + $1 + fill("0", hashq(/*::(*/r/*::||[""])*/[1]).length-$1.length); }); | ||||
| 		return fmt.indexOf("0.") !== -1 ? o : o.replace(/^0\./,"."); | ||||
| 	} | ||||
| 	fmt = fmt.replace(/^#+([0.])/, "$1"); | ||||
| @ -580,10 +580,10 @@ function write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string | ||||
| 	if(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf("0")); | ||||
| 	if((r = fmt.match(dec1))) { | ||||
| 		/*:: if(!Array.isArray(r)) throw new Error("unreachable"); */ | ||||
| 		o = (""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]); | ||||
| 		o = (""+val).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])); | ||||
| 		o = o.replace(/\.(\d*)$/,function($$, $1) { | ||||
| 		/*:: if(!Array.isArray(r)) throw new Error("unreachable"); */ | ||||
| 			return "." + $1 + fill("0", r[1].length-$1.length); }); | ||||
| 			return "." + $1 + fill("0", hashq(r[1]).length-$1.length); }); | ||||
| 		return fmt.indexOf("0.") !== -1 ? o : o.replace(/^0\./,"."); | ||||
| 	} | ||||
| 	fmt = fmt.replace(/^#+([0.])/, "$1"); | ||||
| @ -681,9 +681,9 @@ function fmt_is_date(fmt/*:string*/)/*:boolean*/ { | ||||
| 			case 'M': case 'D': case 'Y': case 'H': case 'S': case 'E': | ||||
| 				/* falls through */ | ||||
| 			case 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true; | ||||
| 			case 'A': | ||||
| 				if(fmt.substr(i, 3) === "A/P") return true; | ||||
| 				if(fmt.substr(i, 5) === "AM/PM") return true; | ||||
| 			case 'A': case 'a': | ||||
| 				if(fmt.substr(i, 3).toUpperCase() === "A/P") return true; | ||||
| 				if(fmt.substr(i, 5).toUpperCase() === "AM/PM") return true; | ||||
| 				++i; break; | ||||
| 			case '[': | ||||
| 				o = c; | ||||
| @ -740,11 +740,11 @@ function eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) { | ||||
| 				if(c === 'm' && lst.toLowerCase() === 'h') c = 'M'; | ||||
| 				if(c === 'h') c = hr; | ||||
| 				out[out.length] = {t:c, v:o}; lst = c; break; | ||||
| 			case 'A': | ||||
| 				q={t:c, v:"A"}; | ||||
| 			case 'A': case 'a': | ||||
| 				q={t:c, v:c}; | ||||
| 				if(dt==null) dt=parse_date_code(v, opts); | ||||
| 				if(fmt.substr(i, 3) === "A/P") { if(dt!=null) q.v = dt.H >= 12 ? "P" : "A"; q.t = 'T'; hr='h';i+=3;} | ||||
| 				else if(fmt.substr(i,5) === "AM/PM") { if(dt!=null) q.v = dt.H >= 12 ? "PM" : "AM"; q.t = 'T'; i+=5; hr='h'; } | ||||
| 				if(fmt.substr(i, 3).toUpperCase() === "A/P") { if(dt!=null) q.v = dt.H >= 12 ? "P" : "A"; q.t = 'T'; hr='h';i+=3;} | ||||
| 				else if(fmt.substr(i,5).toUpperCase() === "AM/PM") { if(dt!=null) q.v = dt.H >= 12 ? "PM" : "AM"; q.t = 'T'; i+=5; hr='h'; } | ||||
| 				else { q.t = "t"; ++i; } | ||||
| 				if(dt==null && q.t === 'T') return ""; | ||||
| 				out[out.length] = q; lst = c; break; | ||||
| @ -781,7 +781,7 @@ function eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) { | ||||
| 				out[out.length] = {t:'D', v:o}; break; | ||||
| 			case ' ': out[out.length] = {t:c, v:c}; ++i; break; | ||||
| 			default: | ||||
| 				if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); | ||||
| 				if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); | ||||
| 				out[out.length] = {t:'t', v:c}; ++i; break; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
							
								
								
									
										26
									
								
								xlsx.js
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										26
									
								
								xlsx.js
									
									
									
									
									
								
							| @ -99,7 +99,7 @@ var chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/; | ||||
| /*jshint -W041 */ | ||||
| var SSF = {}; | ||||
| var make_ssf = function make_ssf(SSF){ | ||||
| SSF.version = '0.9.3'; | ||||
| SSF.version = '0.9.4'; | ||||
| function _strrev(x) { var o = "", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; } | ||||
| function fill(c,l) { var o = ""; while(o.length < l) o+=c; return o; } | ||||
| function pad0(v,d){var t=""+v; return t.length>=d?t:fill('0',d-t.length)+t;} | ||||
| @ -395,7 +395,7 @@ function write_num_f1(r, aval, sign) { | ||||
| function write_num_f2(r, aval, sign) { | ||||
| 	return sign + (aval === 0 ? "" : ""+aval) + fill(" ", r[1].length + 2 + r[4].length); | ||||
| } | ||||
| var dec1 = /^#*0*\.(0+)/; | ||||
| var dec1 = /^#*0*\.([0#]+)/; | ||||
| var closeparen = /\).*[0#]/; | ||||
| var phone = /\(###\) ###\\?-####/; | ||||
| function hashq(str) { | ||||
| @ -442,7 +442,7 @@ function write_num_flt(type, fmt, val) { | ||||
| 	if((r = fmt.match(frac1))) return write_num_f1(r, aval, sign); | ||||
| 	if(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf("0")); | ||||
| 	if((r = fmt.match(dec1))) { | ||||
| 		o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$, $1) { return "." + $1 + fill("0", r[1].length-$1.length); }); | ||||
| 		o = rnd(val, r[1].length).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])).replace(/\.(\d*)$/,function($$, $1) { return "." + $1 + fill("0", hashq(r[1]).length-$1.length); }); | ||||
| 		return fmt.indexOf("0.") !== -1 ? o : o.replace(/^0\./,"."); | ||||
| 	} | ||||
| 	fmt = fmt.replace(/^#+([0.])/, "$1"); | ||||
| @ -558,9 +558,9 @@ function write_num_int(type, fmt, val) { | ||||
| 	if((r = fmt.match(frac1))) return write_num_f2(r, aval, sign); | ||||
| 	if(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf("0")); | ||||
| 	if((r = fmt.match(dec1))) { | ||||
| o = (""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]); | ||||
| o = (""+val).replace(/^([^\.]+)$/,"$1."+hashq(r[1])).replace(/\.$/,"."+hashq(r[1])); | ||||
| 		o = o.replace(/\.(\d*)$/,function($$, $1) { | ||||
| return "." + $1 + fill("0", r[1].length-$1.length); }); | ||||
| return "." + $1 + fill("0", hashq(r[1]).length-$1.length); }); | ||||
| 		return fmt.indexOf("0.") !== -1 ? o : o.replace(/^0\./,"."); | ||||
| 	} | ||||
| 	fmt = fmt.replace(/^#+([0.])/, "$1"); | ||||
| @ -658,9 +658,9 @@ function fmt_is_date(fmt) { | ||||
| 			case 'M': case 'D': case 'Y': case 'H': case 'S': case 'E': | ||||
| 				/* falls through */ | ||||
| 			case 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true; | ||||
| 			case 'A': | ||||
| 				if(fmt.substr(i, 3) === "A/P") return true; | ||||
| 				if(fmt.substr(i, 5) === "AM/PM") return true; | ||||
| 			case 'A': case 'a': | ||||
| 				if(fmt.substr(i, 3).toUpperCase() === "A/P") return true; | ||||
| 				if(fmt.substr(i, 5).toUpperCase() === "AM/PM") return true; | ||||
| 				++i; break; | ||||
| 			case '[': | ||||
| 				o = c; | ||||
| @ -717,11 +717,11 @@ function eval_fmt(fmt, v, opts, flen) { | ||||
| 				if(c === 'm' && lst.toLowerCase() === 'h') c = 'M'; | ||||
| 				if(c === 'h') c = hr; | ||||
| 				out[out.length] = {t:c, v:o}; lst = c; break; | ||||
| 			case 'A': | ||||
| 				q={t:c, v:"A"}; | ||||
| 			case 'A': case 'a': | ||||
| 				q={t:c, v:c}; | ||||
| 				if(dt==null) dt=parse_date_code(v, opts); | ||||
| 				if(fmt.substr(i, 3) === "A/P") { if(dt!=null) q.v = dt.H >= 12 ? "P" : "A"; q.t = 'T'; hr='h';i+=3;} | ||||
| 				else if(fmt.substr(i,5) === "AM/PM") { if(dt!=null) q.v = dt.H >= 12 ? "PM" : "AM"; q.t = 'T'; i+=5; hr='h'; } | ||||
| 				if(fmt.substr(i, 3).toUpperCase() === "A/P") { if(dt!=null) q.v = dt.H >= 12 ? "P" : "A"; q.t = 'T'; hr='h';i+=3;} | ||||
| 				else if(fmt.substr(i,5).toUpperCase() === "AM/PM") { if(dt!=null) q.v = dt.H >= 12 ? "PM" : "AM"; q.t = 'T'; i+=5; hr='h'; } | ||||
| 				else { q.t = "t"; ++i; } | ||||
| 				if(dt==null && q.t === 'T') return ""; | ||||
| 				out[out.length] = q; lst = c; break; | ||||
| @ -758,7 +758,7 @@ function eval_fmt(fmt, v, opts, flen) { | ||||
| 				out[out.length] = {t:'D', v:o}; break; | ||||
| 			case ' ': out[out.length] = {t:c, v:c}; ++i; break; | ||||
| 			default: | ||||
| 				if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); | ||||
| 				if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt); | ||||
| 				out[out.length] = {t:'t', v:c}; ++i; break; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user