Comparing version 1.2.3 to 1.3.0
@@ -28,5 +28,8 @@ /* printj.js (C) 2016-present SheetJS -- http://sheetjs.com */ | ||
PRINTJ.version = '1.2.3'; | ||
PRINTJ.version = '1.3.0'; | ||
var tcache = {}; | ||
function tokenize(fmt) { | ||
if(tcache[fmt]) return tcache[fmt]; | ||
var out = []; | ||
@@ -150,3 +153,3 @@ var start = 0; | ||
if(start < fmt.length) out.push(["L", fmt.substring(start)]); | ||
return out; | ||
return (tcache[fmt] = out); | ||
} | ||
@@ -159,3 +162,4 @@ | ||
function doit(t, args) { | ||
var o = []; | ||
//var o = []; | ||
var o = ""; | ||
var argidx = 0, idx = 0; | ||
@@ -168,4 +172,4 @@ var Vnum = 0; | ||
if(c === /*L*/ 76) { o.push(m[1]); continue; } | ||
if(c === /*%*/ 37) { o.push("%"); continue; } | ||
if(c === /*L*/ 76) { o += /*o.push*/(m[1]); continue; } | ||
if(c === /*%*/ 37) { o += /*o.push*/("%"); continue; } | ||
@@ -176,15 +180,15 @@ var O = ""; | ||
/* flags */ | ||
var flags = m[3]||""; | ||
var flags = m[3]/*||""*/; | ||
var alt = flags.indexOf("#") > -1; | ||
/* position */ | ||
if(m[2]) argidx = parseInt(m[2])-1; | ||
if(m[2]) argidx = parseInt(m[2], 10)-1; | ||
/* %m special case */ | ||
else if(c === /*m*/ 109 && !alt) { o.push("Success"); continue; } | ||
else if(c === /*m*/ 109 && !alt) { o += /*.push*/("Success"); continue; } | ||
/* grab width */ | ||
var width = 0; if(m[ 4] != null && m[ 4].length > 0) { if(m[ 4].charAt(0) !== '*') width = parseInt(m[ 4], 10); else if(m[ 4].length === 1) width = args[idx++]; else width = args[parseInt(m[ 4].substr(1), 10)-1]; } | ||
var width = 0; if( m[ 4].length > 0) { if(m[ 4].charAt(0) !== '*') width = parseInt(m[ 4], 10); else if(m[ 4].length === 1) width = args[idx++]; else width = args[parseInt(m[ 4].substr(1), 10)-1]; } | ||
/* grab precision */ | ||
var prec = -1; if(m[ 5] != null && m[ 5].length > 0) { if(m[ 5].charAt(0) !== '*') prec = parseInt(m[ 5], 10); else if(m[ 5].length === 1) prec = args[idx++]; else prec = args[parseInt(m[ 5].substr(1), 10)-1]; } | ||
var prec = -1; if( m[ 5].length > 0) { if(m[ 5].charAt(0) !== '*') prec = parseInt(m[ 5], 10); else if(m[ 5].length === 1) prec = args[idx++]; else prec = args[parseInt(m[ 5].substr(1), 10)-1]; } | ||
@@ -198,3 +202,3 @@ /* position not specified */ | ||
/* grab length */ | ||
var len = m[6] || ""; | ||
var len = m[6]/* || ""*/; | ||
@@ -285,3 +289,4 @@ switch(c) { | ||
case /*n*/ 110: | ||
if(arg) { arg.len=0; for(var oo = 0; oo < o.length; ++oo) arg.len += o[oo].length; } | ||
if(arg) { arg.len = o.length; } | ||
//if(arg) { arg.len=0; for(var oo = 0; oo < o.length; ++oo) arg.len += o[oo].length; } | ||
continue; | ||
@@ -585,5 +590,5 @@ | ||
o.push(O); | ||
o += /*.push*/(O); | ||
} | ||
return o.join(""); | ||
return o/*.join("")*/; | ||
} | ||
@@ -590,0 +595,0 @@ |
/* printj.js (C) 2016-present SheetJS -- http://sheetjs.com */ | ||
var PRINTJ;(function(factory){if(typeof DO_NOT_EXPORT_PRINTJ==="undefined"){if("object"===typeof exports){factory(exports)}else if("function"===typeof define&&define.amd){define(function(){var module={};factory(module);return module})}else{factory(PRINTJ={})}}else{factory(PRINTJ={})}})(function(PRINTJ){PRINTJ.version="1.2.3";function tokenize(fmt){var out=[];var start=0;var i=0;var infmt=false;var fmtparam="",fmtflags="",fmtwidth="",fmtprec="",fmtlen="";var c=0;var L=fmt.length;for(;i<L;++i){c=fmt.charCodeAt(i);if(!infmt){if(c!==37)continue;if(start<i)out.push(["L",fmt.substring(start,i)]);start=i;infmt=true;continue}if(c>=48&&c<58){if(fmtprec.length)fmtprec+=String.fromCharCode(c);else if(c==48&&!fmtwidth.length)fmtflags+=String.fromCharCode(c);else fmtwidth+=String.fromCharCode(c)}else switch(c){case 36:if(fmtprec.length)fmtprec+="$";else if(fmtwidth.charAt(0)=="*")fmtwidth+="$";else{fmtparam=fmtwidth+"$";fmtwidth=""}break;case 39:fmtflags+="'";break;case 45:fmtflags+="-";break;case 43:fmtflags+="+";break;case 32:fmtflags+=" ";break;case 35:fmtflags+="#";break;case 46:fmtprec=".";break;case 42:if(fmtprec.charAt(0)==".")fmtprec+="*";else fmtwidth+="*";break;case 104:;case 108:if(fmtlen.length>1)throw"bad length "+fmtlen+String(c);fmtlen+=String.fromCharCode(c);break;case 76:;case 106:;case 122:;case 116:;case 113:;case 90:;case 119:if(fmtlen!=="")throw"bad length "+fmtlen+String.fromCharCode(c);fmtlen=String.fromCharCode(c);break;case 73:if(fmtlen!=="")throw"bad length "+fmtlen+"I";fmtlen="I";break;case 100:;case 105:;case 111:;case 117:;case 120:;case 88:;case 102:;case 70:;case 101:;case 69:;case 103:;case 71:;case 97:;case 65:;case 99:;case 67:;case 115:;case 83:;case 112:;case 110:;case 68:;case 85:;case 79:;case 109:;case 98:;case 66:;case 121:;case 89:;case 74:;case 86:;case 84:;case 37:infmt=false;if(fmtprec.length>1)fmtprec=fmtprec.substr(1);out.push([String.fromCharCode(c),fmt.substring(start,i+1),fmtparam,fmtflags,fmtwidth,fmtprec,fmtlen]);start=i+1;fmtlen=fmtprec=fmtwidth=fmtflags=fmtparam="";break;default:throw new Error("Invalid format string starting with |"+fmt.substring(start,i+1)+"|");}}if(start<fmt.length)out.push(["L",fmt.substring(start)]);return out}if(typeof process!=="undefined"&&!!process.versions&&!!process.versions.node)util=require("util");var u_inspect=typeof util!="undefined"?util.inspect:JSON.stringify;function doit(t,args){var o=[];var argidx=0,idx=0;var Vnum=0;var pad="";for(var i=0;i<t.length;++i){var m=t[i],c=m[0].charCodeAt(0);if(c===76){o.push(m[1]);continue}if(c===37){o.push("%");continue}var O="";var isnum=0,radix=10,bytes=4,sign=false;var flags=m[3]||"";var alt=flags.indexOf("#")>-1;if(m[2])argidx=parseInt(m[2])-1;else if(c===109&&!alt){o.push("Success");continue}var width=0;if(m[4]!=null&&m[4].length>0){if(m[4].charAt(0)!=="*")width=parseInt(m[4],10);else if(m[4].length===1)width=args[idx++];else width=args[parseInt(m[4].substr(1),10)-1]}var prec=-1;if(m[5]!=null&&m[5].length>0){if(m[5].charAt(0)!=="*")prec=parseInt(m[5],10);else if(m[5].length===1)prec=args[idx++];else prec=args[parseInt(m[5].substr(1),10)-1]}if(!m[2])argidx=idx++;var arg=args[argidx];var len=m[6]||"";switch(c){case 83:;case 115:O=String(arg);if(prec>=0)O=O.substr(0,prec);if(width>O.length||-width>O.length){if((flags.indexOf("-")==-1||width<0)&&flags.indexOf("0")!=-1){pad=width-O.length>=0?"0".repeat(width-O.length):"";O=pad+O}else{pad=width-O.length>=0?" ".repeat(width-O.length):"";O=flags.indexOf("-")>-1?O+pad:pad+O}}break;case 67:;case 99:switch(typeof arg){case"number":var cc=arg;if(c==67||len.charCodeAt(0)===108){cc&=4294967295;O=String.fromCharCode(cc)}else{cc&=255;O=String.fromCharCode(cc)}break;case"string":O=arg.charAt(0);break;default:O=String(arg).charAt(0);}if(width>O.length||-width>O.length){if((flags.indexOf("-")==-1||width<0)&&flags.indexOf("0")!=-1){pad=width-O.length>=0?"0".repeat(width-O.length):"";O=pad+O}else{pad=width-O.length>=0?" ".repeat(width-O.length):"";O=flags.indexOf("-")>-1?O+pad:pad+O}}break;case 68:bytes=8;case 100:;case 105:isnum=-1;sign=true;break;case 85:bytes=8;case 117:isnum=-1;break;case 79:bytes=8;case 111:isnum=-1;radix=8;break;case 120:isnum=-1;radix=-16;break;case 88:isnum=-1;radix=16;break;case 66:bytes=8;case 98:isnum=-1;radix=2;break;case 70:;case 102:isnum=1;break;case 69:;case 101:isnum=2;break;case 71:;case 103:isnum=3;break;case 65:;case 97:isnum=4;break;case 112:Vnum=typeof arg=="number"?arg:arg?Number(arg.l):-1;if(isNaN(Vnum))Vnum=-1;if(alt)O=Vnum.toString(10);else{Vnum=Math.abs(Vnum);O="0x"+Vnum.toString(16).toLowerCase()}break;case 110:if(arg){arg.len=0;for(var oo=0;oo<o.length;++oo)arg.len+=o[oo].length}continue;case 109:if(!(arg instanceof Error))O="Success";else if(arg.message)O=arg.message;else if(arg.errno)O="Error number "+arg.errno;else O="Error "+String(arg);break;case 74:O=(alt?u_inspect:JSON.stringify)(arg);break;case 86:O=arg==null?"null":String(arg.valueOf());break;case 84:if(alt){O=Object.prototype.toString.call(arg).substr(8);O=O.substr(0,O.length-1)}else O=typeof arg;break;case 89:;case 121:O=arg?alt?"yes":"true":alt?"no":"false";if(c==89)O=O.toUpperCase();if(prec>=0)O=O.substr(0,prec);if(width>O.length||-width>O.length){if((flags.indexOf("-")==-1||width<0)&&flags.indexOf("0")!=-1){pad=width-O.length>=0?"0".repeat(width-O.length):"";O=pad+O}else{pad=width-O.length>=0?" ".repeat(width-O.length):"";O=flags.indexOf("-")>-1?O+pad:pad+O}}break;}if(width<0){width=-width;flags+="-"}if(isnum==-1){Vnum=Number(arg);switch(len){case"hh":{bytes=1}break;case"h":{bytes=2}break;case"l":{if(bytes==4)bytes=8}break;case"L":;case"q":;case"ll":{if(bytes==4)bytes=8}break;case"j":{if(bytes==4)bytes=8}break;case"t":{if(bytes==4)bytes=8}break;case"z":;case"Z":{if(bytes==4)bytes=8}break;case"I":{if(bytes==4)bytes=8}break;case"w":break;}switch(bytes){case 1:Vnum=Vnum&255;if(sign&&Vnum>127)Vnum-=255+1;break;case 2:Vnum=Vnum&65535;if(sign&&Vnum>32767)Vnum-=65535+1;break;case 4:Vnum=sign?Vnum|0:Vnum>>>0;break;default:Vnum=isNaN(Vnum)?0:Math.round(Vnum);break;}if(bytes>4&&Vnum<0&&!sign){if(radix==16||radix==-16){O=(Vnum>>>0).toString(16);Vnum=Math.floor((Vnum-(Vnum>>>0))/Math.pow(2,32));O=(Vnum>>>0).toString(16)+(8-O.length>=0?"0".repeat(8-O.length):"")+O;O=(16-O.length>=0?"f".repeat(16-O.length):"")+O;if(radix==16)O=O.toUpperCase()}else if(radix==8){O=(Vnum>>>0).toString(8);O=(10-O.length>=0?"0".repeat(10-O.length):"")+O;Vnum=Math.floor((Vnum-(Vnum>>>0&1073741823))/Math.pow(2,30));O=(Vnum>>>0).toString(8)+O.substr(O.length-10);O=O.substr(O.length-20);O="1"+(21-O.length>=0?"7".repeat(21-O.length):"")+O}else{Vnum=-Vnum%1e16;var d1=[1,8,4,4,6,7,4,4,0,7,3,7,0,9,5,5,1,6,1,6];var di=d1.length-1;while(Vnum>0){if((d1[di]-=Vnum%10)<0){d1[di]+=10;d1[di-1]--}--di;Vnum=Math.floor(Vnum/10)}O=d1.join("")}}else{if(radix===-16)O=Vnum.toString(16).toLowerCase();else if(radix===16)O=Vnum.toString(16).toUpperCase();else O=Vnum.toString(radix)}if(prec===0&&O=="0"&&!(radix==8&&alt))O="";else{if(O.length<prec+(O.substr(0,1)=="-"?1:0)){if(O.substr(0,1)!="-")O=(prec-O.length>=0?"0".repeat(prec-O.length):"")+O;else O=O.substr(0,1)+(prec+1-O.length>=0?"0".repeat(prec+1-O.length):"")+O.substr(1)}if(!sign&&alt&&Vnum!==0)switch(radix){case-16:O="0x"+O;break;case 16:O="0X"+O;break;case 8:if(O.charAt(0)!="0")O="0"+O;break;case 2:O="0b"+O;break;}}if(sign&&O.charAt(0)!="-"){if(flags.indexOf("+")>-1)O="+"+O;else if(flags.indexOf(" ")>-1)O=" "+O}if(width>0){if(O.length<width){if(flags.indexOf("-")>-1){O=O+(width-O.length>=0?" ".repeat(width-O.length):"")}else if(flags.indexOf("0")>-1&&prec<0&&O.length>0){if(prec>O.length)O=(prec-O.length>=0?"0".repeat(prec-O.length):"")+O;pad=width-O.length>=0?(prec>0?" ":"0").repeat(width-O.length):"";if(O.charCodeAt(0)<48){if(O.charAt(2).toLowerCase()=="x")O=O.substr(0,3)+pad+O.substring(3);else O=O.substr(0,1)+pad+O.substring(1)}else if(O.charAt(1).toLowerCase()=="x")O=O.substr(0,2)+pad+O.substring(2);else O=pad+O}else{O=(width-O.length>=0?" ".repeat(width-O.length):"")+O}}}}else if(isnum>0){Vnum=Number(arg);if(arg===null)Vnum=0/0;if(len=="L")bytes=12;var isf=isFinite(Vnum);if(!isf){if(Vnum<0)O="-";else if(flags.indexOf("+")>-1)O="+";else if(flags.indexOf(" ")>-1)O=" ";O+=isNaN(Vnum)?"nan":"inf"}else{var E=0;if(prec==-1&&isnum!=4)prec=6;if(isnum==3){O=Vnum.toExponential(1);E=+O.substr(O.indexOf("e")+1);if(prec===0)prec=1;if(prec>E&&E>=-4){isnum=11;prec=prec-(E+1)}else{isnum=12;prec=prec-1}}var sg=Vnum<0||1/Vnum==-Infinity?"-":"";if(Vnum<0)Vnum=-Vnum;switch(isnum){case 1:;case 11:if(Vnum<1e21){O=Vnum.toFixed(prec);if(isnum==1){if(prec===0&&alt&&O.indexOf(".")==-1)O+="."}else if(!alt)O=O.replace(/(\.\d*[1-9])0*$/,"$1").replace(/\.0*$/,"");else if(O.indexOf(".")==-1)O+=".";break}O=Vnum.toExponential(20);E=+O.substr(O.indexOf("e")+1);O=O.charAt(0)+O.substr(2,O.indexOf("e")-2);O=O+(E-O.length+1>=0?"0".repeat(E-O.length+1):"");if(alt||prec>0&&isnum!==11)O=O+"."+(prec>=0?"0".repeat(prec):"");break;case 2:;case 12:O=Vnum.toExponential(prec);E=O.indexOf("e");if(O.length-E===3)O=O.substr(0,E+2)+"0"+O.substr(E+2);if(alt&&O.indexOf(".")==-1)O=O.substr(0,E)+"."+O.substr(E);else if(!alt&&isnum==12)O=O.replace(/\.0*e/,"e").replace(/\.(\d*[1-9])0*e/,".$1e");break;case 4:if(Vnum===0){O="0x0"+(alt||prec>0?"."+(prec>=0?"0".repeat(prec):""):"")+"p+0";break}O=Vnum.toString(16);var ac=O.charCodeAt(0);if(ac==48){ac=2;E=-4;Vnum*=16;while(O.charCodeAt(ac++)==48){E-=4;Vnum*=16}O=Vnum.toString(16);ac=O.charCodeAt(0)}var ai=O.indexOf(".");if(O.indexOf("(")>-1){var am=O.match(/\(e(.*)\)/);var ae=am?+am[1]:0;E+=4*ae;Vnum/=Math.pow(16,ae)}else if(ai>1){E+=4*(ai-1);Vnum/=Math.pow(16,ai-1)}else if(ai==-1){E+=4*(O.length-1);Vnum/=Math.pow(16,O.length-1)}if(bytes>8){if(ac<50){E-=3;Vnum*=8}else if(ac<52){E-=2;Vnum*=4}else if(ac<56){E-=1;Vnum*=2}}else{if(ac>=56){E+=3;Vnum/=8}else if(ac>=52){E+=2;Vnum/=4}else if(ac>=50){E+=1;Vnum/=2}}O=Vnum.toString(16);if(O.length>1){if(O.length>prec+2&&O.charCodeAt(prec+2)>=56){var _f=O.charCodeAt(0)==102;O=(Vnum+8*Math.pow(16,-prec-1)).toString(16);if(_f&&O.charCodeAt(0)==49)E+=4}if(prec>0){O=O.substr(0,prec+2);if(O.length<prec+2){if(O.charCodeAt(0)<48)O=O.charAt(0)+(prec+2-O.length>=0?"0".repeat(prec+2-O.length):"")+O.substr(1);else O+=prec+2-O.length>=0?"0".repeat(prec+2-O.length):""}}else if(prec===0)O=O.charAt(0)+(alt?".":"")}else if(prec>0)O=O+"."+(prec>=0?"0".repeat(prec):"");else if(alt)O=O+".";O="0x"+O+"p"+(E>=0?"+"+E:E);break;}if(sg===""){if(flags.indexOf("+")>-1)sg="+";else if(flags.indexOf(" ")>-1)sg=" "}O=sg+O}if(width>O.length){if(flags.indexOf("-")>-1){O=O+(width-O.length>=0?" ".repeat(width-O.length):"")}else if(flags.indexOf("0")>-1&&O.length>0&&isf){pad=width-O.length>=0?"0".repeat(width-O.length):"";if(O.charCodeAt(0)<48){if(O.charAt(2).toLowerCase()=="x")O=O.substr(0,3)+pad+O.substring(3);else O=O.substr(0,1)+pad+O.substring(1)}else if(O.charAt(1).toLowerCase()=="x")O=O.substr(0,2)+pad+O.substring(2);else O=pad+O}else{O=(width-O.length>=0?" ".repeat(width-O.length):"")+O}}if(c<96)O=O.toUpperCase()}o.push(O)}return o.join("")}function vsprintf(fmt,args){return doit(tokenize(fmt),args)}function sprintf(){var args=new Array(arguments.length-1);for(var i=0;i<args.length;++i)args[i]=arguments[i+1];return doit(tokenize(arguments[0]),args)}PRINTJ.sprintf=sprintf;PRINTJ.vsprintf=vsprintf;PRINTJ._doit=doit;PRINTJ._tokenize=tokenize}); | ||
var PRINTJ;(function(factory){if(typeof DO_NOT_EXPORT_PRINTJ==="undefined"){if("object"===typeof exports){factory(exports)}else if("function"===typeof define&&define.amd){define(function(){var module={};factory(module);return module})}else{factory(PRINTJ={})}}else{factory(PRINTJ={})}})(function(PRINTJ){PRINTJ.version="1.3.0";var tcache={};function tokenize(fmt){if(tcache[fmt])return tcache[fmt];var out=[];var start=0;var i=0;var infmt=false;var fmtparam="",fmtflags="",fmtwidth="",fmtprec="",fmtlen="";var c=0;var L=fmt.length;for(;i<L;++i){c=fmt.charCodeAt(i);if(!infmt){if(c!==37)continue;if(start<i)out.push(["L",fmt.substring(start,i)]);start=i;infmt=true;continue}if(c>=48&&c<58){if(fmtprec.length)fmtprec+=String.fromCharCode(c);else if(c==48&&!fmtwidth.length)fmtflags+=String.fromCharCode(c);else fmtwidth+=String.fromCharCode(c)}else switch(c){case 36:if(fmtprec.length)fmtprec+="$";else if(fmtwidth.charAt(0)=="*")fmtwidth+="$";else{fmtparam=fmtwidth+"$";fmtwidth=""}break;case 39:fmtflags+="'";break;case 45:fmtflags+="-";break;case 43:fmtflags+="+";break;case 32:fmtflags+=" ";break;case 35:fmtflags+="#";break;case 46:fmtprec=".";break;case 42:if(fmtprec.charAt(0)==".")fmtprec+="*";else fmtwidth+="*";break;case 104:;case 108:if(fmtlen.length>1)throw"bad length "+fmtlen+String(c);fmtlen+=String.fromCharCode(c);break;case 76:;case 106:;case 122:;case 116:;case 113:;case 90:;case 119:if(fmtlen!=="")throw"bad length "+fmtlen+String.fromCharCode(c);fmtlen=String.fromCharCode(c);break;case 73:if(fmtlen!=="")throw"bad length "+fmtlen+"I";fmtlen="I";break;case 100:;case 105:;case 111:;case 117:;case 120:;case 88:;case 102:;case 70:;case 101:;case 69:;case 103:;case 71:;case 97:;case 65:;case 99:;case 67:;case 115:;case 83:;case 112:;case 110:;case 68:;case 85:;case 79:;case 109:;case 98:;case 66:;case 121:;case 89:;case 74:;case 86:;case 84:;case 37:infmt=false;if(fmtprec.length>1)fmtprec=fmtprec.substr(1);out.push([String.fromCharCode(c),fmt.substring(start,i+1),fmtparam,fmtflags,fmtwidth,fmtprec,fmtlen]);start=i+1;fmtlen=fmtprec=fmtwidth=fmtflags=fmtparam="";break;default:throw new Error("Invalid format string starting with |"+fmt.substring(start,i+1)+"|");}}if(start<fmt.length)out.push(["L",fmt.substring(start)]);return tcache[fmt]=out}if(typeof process!=="undefined"&&!!process.versions&&!!process.versions.node)util=require("util");var u_inspect=typeof util!="undefined"?util.inspect:JSON.stringify;function doit(t,args){var o="";var argidx=0,idx=0;var Vnum=0;var pad="";for(var i=0;i<t.length;++i){var m=t[i],c=m[0].charCodeAt(0);if(c===76){o+=m[1];continue}if(c===37){o+="%";continue}var O="";var isnum=0,radix=10,bytes=4,sign=false;var flags=m[3];var alt=flags.indexOf("#")>-1;if(m[2])argidx=parseInt(m[2],10)-1;else if(c===109&&!alt){o+="Success";continue}var width=0;if(m[4].length>0){if(m[4].charAt(0)!=="*")width=parseInt(m[4],10);else if(m[4].length===1)width=args[idx++];else width=args[parseInt(m[4].substr(1),10)-1]}var prec=-1;if(m[5].length>0){if(m[5].charAt(0)!=="*")prec=parseInt(m[5],10);else if(m[5].length===1)prec=args[idx++];else prec=args[parseInt(m[5].substr(1),10)-1]}if(!m[2])argidx=idx++;var arg=args[argidx];var len=m[6];switch(c){case 83:;case 115:O=String(arg);if(prec>=0)O=O.substr(0,prec);if(width>O.length||-width>O.length){if((flags.indexOf("-")==-1||width<0)&&flags.indexOf("0")!=-1){pad=width-O.length>=0?"0".repeat(width-O.length):"";O=pad+O}else{pad=width-O.length>=0?" ".repeat(width-O.length):"";O=flags.indexOf("-")>-1?O+pad:pad+O}}break;case 67:;case 99:switch(typeof arg){case"number":var cc=arg;if(c==67||len.charCodeAt(0)===108){cc&=4294967295;O=String.fromCharCode(cc)}else{cc&=255;O=String.fromCharCode(cc)}break;case"string":O=arg.charAt(0);break;default:O=String(arg).charAt(0);}if(width>O.length||-width>O.length){if((flags.indexOf("-")==-1||width<0)&&flags.indexOf("0")!=-1){pad=width-O.length>=0?"0".repeat(width-O.length):"";O=pad+O}else{pad=width-O.length>=0?" ".repeat(width-O.length):"";O=flags.indexOf("-")>-1?O+pad:pad+O}}break;case 68:bytes=8;case 100:;case 105:isnum=-1;sign=true;break;case 85:bytes=8;case 117:isnum=-1;break;case 79:bytes=8;case 111:isnum=-1;radix=8;break;case 120:isnum=-1;radix=-16;break;case 88:isnum=-1;radix=16;break;case 66:bytes=8;case 98:isnum=-1;radix=2;break;case 70:;case 102:isnum=1;break;case 69:;case 101:isnum=2;break;case 71:;case 103:isnum=3;break;case 65:;case 97:isnum=4;break;case 112:Vnum=typeof arg=="number"?arg:arg?Number(arg.l):-1;if(isNaN(Vnum))Vnum=-1;if(alt)O=Vnum.toString(10);else{Vnum=Math.abs(Vnum);O="0x"+Vnum.toString(16).toLowerCase()}break;case 110:if(arg){arg.len=o.length}continue;case 109:if(!(arg instanceof Error))O="Success";else if(arg.message)O=arg.message;else if(arg.errno)O="Error number "+arg.errno;else O="Error "+String(arg);break;case 74:O=(alt?u_inspect:JSON.stringify)(arg);break;case 86:O=arg==null?"null":String(arg.valueOf());break;case 84:if(alt){O=Object.prototype.toString.call(arg).substr(8);O=O.substr(0,O.length-1)}else O=typeof arg;break;case 89:;case 121:O=arg?alt?"yes":"true":alt?"no":"false";if(c==89)O=O.toUpperCase();if(prec>=0)O=O.substr(0,prec);if(width>O.length||-width>O.length){if((flags.indexOf("-")==-1||width<0)&&flags.indexOf("0")!=-1){pad=width-O.length>=0?"0".repeat(width-O.length):"";O=pad+O}else{pad=width-O.length>=0?" ".repeat(width-O.length):"";O=flags.indexOf("-")>-1?O+pad:pad+O}}break;}if(width<0){width=-width;flags+="-"}if(isnum==-1){Vnum=Number(arg);switch(len){case"hh":{bytes=1}break;case"h":{bytes=2}break;case"l":{if(bytes==4)bytes=8}break;case"L":;case"q":;case"ll":{if(bytes==4)bytes=8}break;case"j":{if(bytes==4)bytes=8}break;case"t":{if(bytes==4)bytes=8}break;case"z":;case"Z":{if(bytes==4)bytes=8}break;case"I":{if(bytes==4)bytes=8}break;case"w":break;}switch(bytes){case 1:Vnum=Vnum&255;if(sign&&Vnum>127)Vnum-=255+1;break;case 2:Vnum=Vnum&65535;if(sign&&Vnum>32767)Vnum-=65535+1;break;case 4:Vnum=sign?Vnum|0:Vnum>>>0;break;default:Vnum=isNaN(Vnum)?0:Math.round(Vnum);break;}if(bytes>4&&Vnum<0&&!sign){if(radix==16||radix==-16){O=(Vnum>>>0).toString(16);Vnum=Math.floor((Vnum-(Vnum>>>0))/Math.pow(2,32));O=(Vnum>>>0).toString(16)+(8-O.length>=0?"0".repeat(8-O.length):"")+O;O=(16-O.length>=0?"f".repeat(16-O.length):"")+O;if(radix==16)O=O.toUpperCase()}else if(radix==8){O=(Vnum>>>0).toString(8);O=(10-O.length>=0?"0".repeat(10-O.length):"")+O;Vnum=Math.floor((Vnum-(Vnum>>>0&1073741823))/Math.pow(2,30));O=(Vnum>>>0).toString(8)+O.substr(O.length-10);O=O.substr(O.length-20);O="1"+(21-O.length>=0?"7".repeat(21-O.length):"")+O}else{Vnum=-Vnum%1e16;var d1=[1,8,4,4,6,7,4,4,0,7,3,7,0,9,5,5,1,6,1,6];var di=d1.length-1;while(Vnum>0){if((d1[di]-=Vnum%10)<0){d1[di]+=10;d1[di-1]--}--di;Vnum=Math.floor(Vnum/10)}O=d1.join("")}}else{if(radix===-16)O=Vnum.toString(16).toLowerCase();else if(radix===16)O=Vnum.toString(16).toUpperCase();else O=Vnum.toString(radix)}if(prec===0&&O=="0"&&!(radix==8&&alt))O="";else{if(O.length<prec+(O.substr(0,1)=="-"?1:0)){if(O.substr(0,1)!="-")O=(prec-O.length>=0?"0".repeat(prec-O.length):"")+O;else O=O.substr(0,1)+(prec+1-O.length>=0?"0".repeat(prec+1-O.length):"")+O.substr(1)}if(!sign&&alt&&Vnum!==0)switch(radix){case-16:O="0x"+O;break;case 16:O="0X"+O;break;case 8:if(O.charAt(0)!="0")O="0"+O;break;case 2:O="0b"+O;break;}}if(sign&&O.charAt(0)!="-"){if(flags.indexOf("+")>-1)O="+"+O;else if(flags.indexOf(" ")>-1)O=" "+O}if(width>0){if(O.length<width){if(flags.indexOf("-")>-1){O=O+(width-O.length>=0?" ".repeat(width-O.length):"")}else if(flags.indexOf("0")>-1&&prec<0&&O.length>0){if(prec>O.length)O=(prec-O.length>=0?"0".repeat(prec-O.length):"")+O;pad=width-O.length>=0?(prec>0?" ":"0").repeat(width-O.length):"";if(O.charCodeAt(0)<48){if(O.charAt(2).toLowerCase()=="x")O=O.substr(0,3)+pad+O.substring(3);else O=O.substr(0,1)+pad+O.substring(1)}else if(O.charAt(1).toLowerCase()=="x")O=O.substr(0,2)+pad+O.substring(2);else O=pad+O}else{O=(width-O.length>=0?" ".repeat(width-O.length):"")+O}}}}else if(isnum>0){Vnum=Number(arg);if(arg===null)Vnum=0/0;if(len=="L")bytes=12;var isf=isFinite(Vnum);if(!isf){if(Vnum<0)O="-";else if(flags.indexOf("+")>-1)O="+";else if(flags.indexOf(" ")>-1)O=" ";O+=isNaN(Vnum)?"nan":"inf"}else{var E=0;if(prec==-1&&isnum!=4)prec=6;if(isnum==3){O=Vnum.toExponential(1);E=+O.substr(O.indexOf("e")+1);if(prec===0)prec=1;if(prec>E&&E>=-4){isnum=11;prec=prec-(E+1)}else{isnum=12;prec=prec-1}}var sg=Vnum<0||1/Vnum==-Infinity?"-":"";if(Vnum<0)Vnum=-Vnum;switch(isnum){case 1:;case 11:if(Vnum<1e21){O=Vnum.toFixed(prec);if(isnum==1){if(prec===0&&alt&&O.indexOf(".")==-1)O+="."}else if(!alt)O=O.replace(/(\.\d*[1-9])0*$/,"$1").replace(/\.0*$/,"");else if(O.indexOf(".")==-1)O+=".";break}O=Vnum.toExponential(20);E=+O.substr(O.indexOf("e")+1);O=O.charAt(0)+O.substr(2,O.indexOf("e")-2);O=O+(E-O.length+1>=0?"0".repeat(E-O.length+1):"");if(alt||prec>0&&isnum!==11)O=O+"."+(prec>=0?"0".repeat(prec):"");break;case 2:;case 12:O=Vnum.toExponential(prec);E=O.indexOf("e");if(O.length-E===3)O=O.substr(0,E+2)+"0"+O.substr(E+2);if(alt&&O.indexOf(".")==-1)O=O.substr(0,E)+"."+O.substr(E);else if(!alt&&isnum==12)O=O.replace(/\.0*e/,"e").replace(/\.(\d*[1-9])0*e/,".$1e");break;case 4:if(Vnum===0){O="0x0"+(alt||prec>0?"."+(prec>=0?"0".repeat(prec):""):"")+"p+0";break}O=Vnum.toString(16);var ac=O.charCodeAt(0);if(ac==48){ac=2;E=-4;Vnum*=16;while(O.charCodeAt(ac++)==48){E-=4;Vnum*=16}O=Vnum.toString(16);ac=O.charCodeAt(0)}var ai=O.indexOf(".");if(O.indexOf("(")>-1){var am=O.match(/\(e(.*)\)/);var ae=am?+am[1]:0;E+=4*ae;Vnum/=Math.pow(16,ae)}else if(ai>1){E+=4*(ai-1);Vnum/=Math.pow(16,ai-1)}else if(ai==-1){E+=4*(O.length-1);Vnum/=Math.pow(16,O.length-1)}if(bytes>8){if(ac<50){E-=3;Vnum*=8}else if(ac<52){E-=2;Vnum*=4}else if(ac<56){E-=1;Vnum*=2}}else{if(ac>=56){E+=3;Vnum/=8}else if(ac>=52){E+=2;Vnum/=4}else if(ac>=50){E+=1;Vnum/=2}}O=Vnum.toString(16);if(O.length>1){if(O.length>prec+2&&O.charCodeAt(prec+2)>=56){var _f=O.charCodeAt(0)==102;O=(Vnum+8*Math.pow(16,-prec-1)).toString(16);if(_f&&O.charCodeAt(0)==49)E+=4}if(prec>0){O=O.substr(0,prec+2);if(O.length<prec+2){if(O.charCodeAt(0)<48)O=O.charAt(0)+(prec+2-O.length>=0?"0".repeat(prec+2-O.length):"")+O.substr(1);else O+=prec+2-O.length>=0?"0".repeat(prec+2-O.length):""}}else if(prec===0)O=O.charAt(0)+(alt?".":"")}else if(prec>0)O=O+"."+(prec>=0?"0".repeat(prec):"");else if(alt)O=O+".";O="0x"+O+"p"+(E>=0?"+"+E:E);break;}if(sg===""){if(flags.indexOf("+")>-1)sg="+";else if(flags.indexOf(" ")>-1)sg=" "}O=sg+O}if(width>O.length){if(flags.indexOf("-")>-1){O=O+(width-O.length>=0?" ".repeat(width-O.length):"")}else if(flags.indexOf("0")>-1&&O.length>0&&isf){pad=width-O.length>=0?"0".repeat(width-O.length):"";if(O.charCodeAt(0)<48){if(O.charAt(2).toLowerCase()=="x")O=O.substr(0,3)+pad+O.substring(3);else O=O.substr(0,1)+pad+O.substring(1)}else if(O.charAt(1).toLowerCase()=="x")O=O.substr(0,2)+pad+O.substring(2);else O=pad+O}else{O=(width-O.length>=0?" ".repeat(width-O.length):"")+O}}if(c<96)O=O.toUpperCase()}o+=O}return o}function vsprintf(fmt,args){return doit(tokenize(fmt),args)}function sprintf(){var args=new Array(arguments.length-1);for(var i=0;i<args.length;++i)args[i]=arguments[i+1];return doit(tokenize(arguments[0]),args)}PRINTJ.sprintf=sprintf;PRINTJ.vsprintf=vsprintf;PRINTJ._doit=doit;PRINTJ._tokenize=tokenize}); |
{ | ||
"name": "printj", | ||
"version": "1.2.3", | ||
"version": "1.3.0", | ||
"author": "sheetjs", | ||
@@ -25,7 +25,7 @@ "description": "Pure-JS printf", | ||
"devDependencies": { | ||
"mocha": "~2.5.3", | ||
"blanket": "~1.2.3", | ||
"@sheetjs/uglify-js": "~2.7.3", | ||
"@types/node": "^8.0.7", | ||
"blanket": "~1.2.3", | ||
"dtslint": "^0.1.2", | ||
"mocha": "~2.5.3", | ||
"typescript": "2.2.0" | ||
@@ -50,7 +50,10 @@ }, | ||
"allow": [ | ||
"period" | ||
"special", | ||
"period", | ||
"just", | ||
"invalid" | ||
] | ||
}, | ||
"homepage": "http://sheetjs.com/opensource", | ||
"files": ["printj.js", "printj.mjs", "bin/printj.njs", "LICENSE", "README.md", "dist/*.js", "dist/*.map", "dist/LICENSE", "types/index.d.ts", "types/*.json"], | ||
"homepage": "https://sheetjs.com/", | ||
"files": ["printj.js", "printj.mjs", "bin/printj.njs", "LICENSE", "README.md", "shim.js", "dist/*.js", "dist/*.map", "dist/LICENSE", "types/index.d.ts", "types/*.json"], | ||
"bugs": { | ||
@@ -57,0 +60,0 @@ "url": "https://github.com/SheetJS/printj/issues" |
@@ -28,5 +28,8 @@ /* printj.js (C) 2016-present SheetJS -- http://sheetjs.com */ | ||
PRINTJ.version = '1.2.3'; | ||
PRINTJ.version = '1.3.0'; | ||
var tcache = {}; | ||
function tokenize(fmt) { | ||
if(tcache[fmt]) return tcache[fmt]; | ||
var out = []; | ||
@@ -150,3 +153,3 @@ var start = 0; | ||
if(start < fmt.length) out.push(["L", fmt.substring(start)]); | ||
return out; | ||
return (tcache[fmt] = out); | ||
} | ||
@@ -159,3 +162,4 @@ | ||
function doit(t, args) { | ||
var o = []; | ||
//var o = []; | ||
var o = ""; | ||
var argidx = 0, idx = 0; | ||
@@ -168,4 +172,4 @@ var Vnum = 0; | ||
if(c === /*L*/ 76) { o.push(m[1]); continue; } | ||
if(c === /*%*/ 37) { o.push("%"); continue; } | ||
if(c === /*L*/ 76) { o += /*o.push*/(m[1]); continue; } | ||
if(c === /*%*/ 37) { o += /*o.push*/("%"); continue; } | ||
@@ -176,15 +180,15 @@ var O = ""; | ||
/* flags */ | ||
var flags = m[3]||""; | ||
var flags = m[3]/*||""*/; | ||
var alt = flags.indexOf("#") > -1; | ||
/* position */ | ||
if(m[2]) argidx = parseInt(m[2])-1; | ||
if(m[2]) argidx = parseInt(m[2], 10)-1; | ||
/* %m special case */ | ||
else if(c === /*m*/ 109 && !alt) { o.push("Success"); continue; } | ||
else if(c === /*m*/ 109 && !alt) { o += /*.push*/("Success"); continue; } | ||
/* grab width */ | ||
var width = 0; if(m[ 4] != null && m[ 4].length > 0) { if(m[ 4].charAt(0) !== '*') width = parseInt(m[ 4], 10); else if(m[ 4].length === 1) width = args[idx++]; else width = args[parseInt(m[ 4].substr(1), 10)-1]; } | ||
var width = 0; if( m[ 4].length > 0) { if(m[ 4].charAt(0) !== '*') width = parseInt(m[ 4], 10); else if(m[ 4].length === 1) width = args[idx++]; else width = args[parseInt(m[ 4].substr(1), 10)-1]; } | ||
/* grab precision */ | ||
var prec = -1; if(m[ 5] != null && m[ 5].length > 0) { if(m[ 5].charAt(0) !== '*') prec = parseInt(m[ 5], 10); else if(m[ 5].length === 1) prec = args[idx++]; else prec = args[parseInt(m[ 5].substr(1), 10)-1]; } | ||
var prec = -1; if( m[ 5].length > 0) { if(m[ 5].charAt(0) !== '*') prec = parseInt(m[ 5], 10); else if(m[ 5].length === 1) prec = args[idx++]; else prec = args[parseInt(m[ 5].substr(1), 10)-1]; } | ||
@@ -198,3 +202,3 @@ /* position not specified */ | ||
/* grab length */ | ||
var len = m[6] || ""; | ||
var len = m[6]/* || ""*/; | ||
@@ -285,3 +289,4 @@ switch(c) { | ||
case /*n*/ 110: | ||
if(arg) { arg.len=0; for(var oo = 0; oo < o.length; ++oo) arg.len += o[oo].length; } | ||
if(arg) { arg.len = o.length; } | ||
//if(arg) { arg.len=0; for(var oo = 0; oo < o.length; ++oo) arg.len += o[oo].length; } | ||
continue; | ||
@@ -585,5 +590,5 @@ | ||
o.push(O); | ||
o += /*.push*/(O); | ||
} | ||
return o.join(""); | ||
return o/*.join("")*/; | ||
} | ||
@@ -590,0 +595,0 @@ |
@@ -23,2 +23,3 @@ # printj | ||
* [Installation](#installation) | ||
+ [ES Module Support](#es-module-support) | ||
* [Usage](#usage) | ||
@@ -99,2 +100,34 @@ * [Testing](#testing) | ||
### ES Module Support | ||
The bundle ships with a `printj.mjs` script that acts as an ES Module. | ||
**NodeJS** | ||
NodeJS 12+ support ES modules. The default import uses the CommonJS script: | ||
```js | ||
import PRINTJ from "printj"; | ||
``` | ||
It is possible to use the ESM powered script referencing `printj.mjs` directly: | ||
```js | ||
import * as PRINTJ from "printj/printj.mjs"; // pull all exports | ||
import { sprintf } from "printj/printj.mjs"; // pull `sprintf` | ||
``` | ||
**Browser Module Support** | ||
Chrome 61+ and Safari 11+ support module imports in the web browser. The `.mjs` | ||
script can be imported from a `script type=module` block: | ||
```html | ||
<script type="module"> | ||
import { sprintf } from './printj.mjs'; | ||
console.log(sprintf("%02hhx", 123)); | ||
</script> | ||
``` | ||
## Usage | ||
@@ -698,6 +731,6 @@ | ||
writes exponents with the fewest digits (POSIX requires 2+ digits). This is | ||
easily fixed by inspecting the output string and inserting a "0" when needed. | ||
addressed by inspecting the output string and inserting a "0" when needed. | ||
The optional `#` flag forces the decimal point to appear when precision is 0. | ||
This is also easily corrected by adding a decimal point just before the "e". | ||
This is also fixed by adding a decimal point just before the "e". | ||
@@ -755,3 +788,3 @@ ## Standard Form ("f" and "F" conversions) | ||
standard hexadecimal form. Chrome, Safari and other browsers always use the | ||
exact standard hexadecimal form. Both forms are easily converted to `"%a"` by | ||
exact standard hexadecimal form. Both forms are converted to `"%a"` by | ||
calculating and dividing by the appropriate power of 2. | ||
@@ -758,0 +791,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
164038
14
1824
1096