scribble-mathjax/jax/output/HTML-CSS/autoload/mtable.js

17 lines
9.8 KiB
JavaScript

/*
* /MathJax/jax/output/HTML-CSS/autoload/mtable.js
*
* Copyright (c) 2010 Design Science, Inc.
*
* Part of the MathJax library.
* See http://www.mathjax.org for details.
*
* Licensed under the Apache License, Version 2.0;
* you may not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var c="1.1.1";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a.mtable.Augment({toHTML:function(aa){aa=this.HTMLcreateSpan(aa);if(this.data.length===0){return aa}var aM=this.getValues("columnalign","rowalign","columnspacing","rowspacing","columnwidth","equalcolumns","equalrows","columnlines","rowlines","frame","framespacing","align","useHeight","width","side","minlabelspacing");var t=aM.width.match(/%$/);var ai=b.createStack(aa);var ao=this.HTMLgetScale();var aK=-1;var z=[],K=[],l=[],Q=[],L=[],aI,aH,w=-1,aF,u,aA,S;var aO=b.FONTDATA.baselineskip*ao*aM.useHeight,ab=b.FONTDATA.lineH*ao,ah=b.FONTDATA.lineD*ao;for(aI=0,aF=this.data.length;aI<aF;aI++){S=this.data[aI];aA=(S.type==="mlabeledtr"?aK:0);Q[aI]=[];z[aI]=K[aI]=0;for(aH=aA,u=S.data.length+aA;aH<u;aH++){if(l[aH]==null){if(aH>w){w=aH}L[aH]=b.createStack(b.createBox(ai));l[aH]=-b.BIGDIMEN}Q[aI][aH]=b.createBox(L[aH]);b.Measured(S.data[aH-aA].toHTML(Q[aI][aH]),Q[aI][aH]);if(S.data[aH-aA].isMultiline){Q[aI][aH].style.width="100%"}if(Q[aI][aH].bbox.h>z[aI]){z[aI]=Q[aI][aH].bbox.h}if(Q[aI][aH].bbox.d>K[aI]){K[aI]=Q[aI][aH].bbox.d}if(Q[aI][aH].bbox.w>l[aH]){l[aH]=Q[aI][aH].bbox.w}}}if(z[0]+K[0]){z[0]=Math.max(z[0],ab)}if(z[Q.length-1]+K[Q.length-1]){K[Q.length-1]=Math.max(K[Q.length-1],ah)}var an=aM.columnspacing.split(/ /),T=aM.rowspacing.split(/ /),aj=aM.columnalign.split(/ /),N=aM.rowalign.split(/ /),O=aM.columnlines.split(/ /),k=aM.rowlines.split(/ /),ar=aM.columnwidth.split(/ /),aw=[];for(aI=0,aF=an.length;aI<aF;aI++){an[aI]=b.length2em(an[aI])}for(aI=0,aF=T.length;aI<aF;aI++){T[aI]=b.length2em(T[aI])}while(an.length<w){an.push(an[an.length-1])}while(aj.length<=w){aj.push(aj[aj.length-1])}while(O.length<w){O.push(O[O.length-1])}while(ar.length<=w){ar.push(ar[ar.length-1])}while(T.length<Q.length){T.push(T[T.length-1])}while(N.length<=Q.length){N.push(N[N.length-1])}while(k.length<Q.length){k.push(k[k.length-1])}if(L[aK]){aj[aK]=(aM.side.substr(0,1)==="l"?"left":"right");an[aK]=-l[aK]}for(aI=0,aF=Q.length;aI<aF;aI++){S=this.data[aI];aw[aI]=[];if(S.rowalign){N[aI]=S.rowalign}if(S.columnalign){aw[aI]=S.columnalign.split(/ /);while(aw[aI].length<=w){aw[aI].push(aw[aI][aw[aI].length-1])}}}if(aM.equalrows){var U=Math.max.apply(Math,z),aq=Math.max.apply(Math,K);for(aI=0,aF=Q.length;aI<aF;aI++){aA=((U+aq)-(z[aI]+K[aI]))/2;z[aI]+=aA;K[aI]+=aA}}var aB=z[0]+K[Q.length-1];for(aI=0,aF=Q.length-1;aI<aF;aI++){aB+=Math.max((z[aI]+K[aI]?aO:0),K[aI]+z[aI+1]+T[aI])}var ae=0,ac=0,aC,aL=aB;if(aM.frame!=="none"||(aM.columnlines+aM.rowlines).match(/solid|dashed/)){ae=b.length2em(aM.framespacing.split(/[, ]+/)[0]);ac=b.length2em(aM.framespacing.split(/[, ]+/)[1]);aL=aB+2*ac}var h,az,aE="";if(typeof(aM.align)!=="string"){aM.align=String(aM.align)}if(aM.align.match(/(top|bottom|center|baseline|axis)( +(-?\d+))?/)){aE=RegExp.$3;aM.align=RegExp.$1}else{aM.align="center"}if(aE!==""){aE=parseInt(aE);if(aE<0){aE=Q.length+1+aE}if(aE<1){aE=1}else{if(aE>Q.length){aE=Q.length}}h=0;az=-(aB+ac)+z[0];for(aI=0,aF=aE-1;aI<aF;aI++){var Z=Math.max((z[aI]+K[aI]?aO:0),K[aI]+z[aI+1]+T[aI]);h+=Z;az+=Z}}else{h=({top:-(z[0]+ac),bottom:aB+ac-z[0],center:aB/2-z[0],baseline:aB/2-z[0],axis:aB/2+b.TeX.axis_height*ao-z[0]})[aM.align];az=({top:-(aB+2*ac),bottom:0,center:-(aB/2+ac),baseline:-(aB/2+ac),axis:b.TeX.axis_height*ao-aB/2-ac})[aM.align]}var at,ay=0,V=0,X=0,aD=0,aJ=0,q=[],E=[],ak=1;if(aM.equalcolumns&&aM.width!=="auto"){if(t){at=(100/(w+1)).toFixed(2).replace(/\.?0+$/,"")+"%";for(aI=0,aF=Math.min(w+1,ar.length);aI<aF;aI++){ar[aI]=at}at=0;ay=1;aJ=w+1;for(aI=0,aF=Math.min(w+1,an.length);aI<aF;aI++){at+=an[aI]}}else{at=b.length2em(aM.width);for(aI=0,aF=Math.min(w+1,an.length);aI<aF;aI++){at-=an[aI]}at/=w+1;for(aI=0,aF=Math.min(w+1,ar.length);aI<aF;aI++){l[aI]=at}}}else{for(aI=0,aF=Math.min(w+1,ar.length);aI<aF;aI++){if(ar[aI]==="auto"){V+=l[aI]}else{if(ar[aI]==="fit"){E[aJ]=aI;aJ++;V+=l[aI]}else{if(ar[aI].match(/%$/)){q[aD]=aI;aD++;X+=l[aI];ay+=b.length2em(ar[aI],1)}else{l[aI]=b.length2em(ar[aI]);V+=l[aI]}}}}if(t){at=0;for(aI=0,aF=Math.min(w,an.length);aI<aF;aI++){at+=an[aI]}if(ay>0.98){ak=0.98/ay;ay=0.98}}else{if(aM.width==="auto"){if(ay>0.98){ak=X/(V+X);at=V+X}else{at=V/(1-ay)}}else{at=b.length2em(aM.width);for(aI=0,aF=Math.min(w+1,an.length);aI<aF;aI++){at-=an[aI]}}for(aI=0,aF=q.length;aI<aF;aI++){l[q[aI]]=b.length2em(ar[q[aI]],at*ak);V+=l[q[aI]]}if(Math.abs(at-V)>0.01){if(aJ&&at>V){at=(at-V)/aJ;for(aI=0,aF=E.length;aI<aF;aI++){l[E[aI]]+=at}}else{at=at/V;for(aH=0;aH<=w;aH++){l[aH]*=at}}}if(aM.equalcolumns){var af=Math.max.apply(Math,l);for(aH=0;aH<=w;aH++){l[aH]=af}}}}var au=h,o,v,aG;aA=(L[aK]?aK:0);for(aH=aA;aH<=w;aH++){for(aI=0,aF=Q.length;aI<aF;aI++){if(Q[aI][aH]){aA=(this.data[aI].type==="mlabeledtr"?aK:0);var am=this.data[aI].data[aH-aA];if(am.HTMLcanStretch("Horizontal")){Q[aI][aH].bbox=am.HTMLstretchH(L[aH],l[aH]).bbox}else{if(am.HTMLcanStretch("Vertical")){var B=am.CoreMO();var ad=B.symmetric;B.symmetric=false;Q[aI][aH].bbox=am.HTMLstretchV(L[aH],z[aI],K[aI]).bbox;B.symmetric=ad}}aG=am.rowalign||this.data[aI].rowalign||N[aI];o=({top:z[aI]-Q[aI][aH].bbox.h,bottom:Q[aI][aH].bbox.d-K[aI],center:((z[aI]-K[aI])-(Q[aI][aH].bbox.h-Q[aI][aH].bbox.d))/2,baseline:0,axis:0})[aG];aG=(am.columnalign||aw[aI][aH]||aj[aH]);b.alignBox(Q[aI][aH],aG,au+o)}if(aI<Q.length-1){au-=Math.max((z[aI]+K[aI]?aO:0),K[aI]+z[aI+1]+T[aI])}}au=h}if(t){var r=b.createBox(ai);r.style.left=r.style.top=0;r.style.right=b.Em(at+2*ae);r.style.display="inline-block";r.style.height="0px";if(b.msieRelativeWidthBug){r=b.createBox(r);r.style.position="relative";r.style.height="1em";r.style.width="100%";r.bbox=ai.bbox}var ap=0,ax=ae,aN,g;if(aJ){aN=100*(1-ay)/aJ,g=V/aJ}else{aN=100*(1-ay)/(w+1);g=V/(w+1)}for(aH=0;aH<=w;aH++){b.placeBox(L[aH].parentNode,0,0);L[aH].style.position="relative";L[aH].style.left=b.Em(ax);L[aH].style.width="100%";L[aH].parentNode.parentNode.removeChild(L[aH].parentNode);var e=b.createBox(r);b.addBox(e,L[aH]);L[aH]=e;var ag=e.style;ag.display="inline-block";ag.left=ap+"%";if(ar[aH].match(/%$/)){var I=parseFloat(ar[aH])*ak;if(aJ===0){ag.width=(aN+I)+"%";ap+=aN+I;e=b.createBox(e);b.addBox(e,L[aH].firstChild);e.style.left=0;e.style.right=b.Em(g);ax-=g}else{ag.width=I+"%";ap+=I}}else{if(ar[aH]==="fit"||aJ===0){ag.width=aN+"%";e=b.createBox(e);b.addBox(e,L[aH].firstChild);e.style.left=0;e.style.right=b.Em(g-l[aH]);ax+=l[aH]-g;ap+=aN}else{ag.width=b.Em(l[aH]);ax+=l[aH]}}if(b.msieRelativeWidthBug){b.addText(e.firstChild,b.NBSP);e.firstChild.style.position="relative"}ax+=an[aH];if(O[aH]!=="none"&&aH<w&&aH!==aK){v=b.createBox(r);v.style.left=ap+"%";v=b.createRule(v,aL,0,1.25/b.em);v.style.position="absolute";v.bbox={h:aL,d:0,w:0,rw:1.25/b.em,lw:0};v.parentNode.bbox=ai.bbox;b.placeBox(v,ax-an[aH]/2,az,true);v.style.borderStyle=O[aH]}}}else{var av=ae;for(aH=0;aH<=w;aH++){if(!L[aH].bbox.width){b.setStackWidth(L[aH],l[aH])}if(ar[aH]!=="auto"&&ar[aH]!=="fit"){L[aH].bbox.width=l[aH];L[aH].bbox.isFixed=true}b.placeBox(L[aH].parentNode,av,0);av+=l[aH]+an[aH];if(O[aH]!=="none"&&aH<w&&aH!==aK){v=b.createRule(ai,aL,0,1.25/b.em);b.addBox(ai,v);v.bbox={h:aL,d:0,w:0,rw:1.25/b.em,lw:0};b.placeBox(v,av-an[aH]/2,az,true);v.style.borderStyle=O[aH]}}}aC=ai.bbox.w+ae;var d;if(aM.frame!=="none"){d=b.createFrame(ai,aL,0,aC,1.25/b.em,aM.frame);b.addBox(ai,d);b.placeBox(d,0,az,true);if(t){d.style.width="100%"}}au=h;for(aI=0,aF=Q.length-1;aI<aF;aI++){o=Math.max(aO,K[aI]+z[aI+1]+T[aI]);if(k[aI]!=="none"){v=b.createRule(ai,1.25/b.em,0,aC);b.addBox(ai,v);v.bbox={h:1.25/b.em,d:0,w:aC,rw:aC,lw:0};b.placeBox(v,0,au-K[aI]-(o-K[aI]-z[aI+1])/2,true);if(k[aI]==="dashed"||t){v.style.borderTop=v.style.height+" "+k[aI];v.style.height=0;v.style.width=v.style.borderLeftWidth;v.style.borderLeft="";if(t){v.style.width="100%"}}}au-=o}if(t){aa.bbox.width=aM.width;ai.style.width="100%"}if(L[aK]){var R=this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift");if(R.indentalignfirst!==a.INDENTALIGN.INDENTALIGN){R.indentalign=R.indentalignfirst}if(R.indentalign===a.INDENTALIGN.AUTO){R.indentalign=this.displayAlign}if(R.indentshiftfirst!==a.INDENTSHIFT.INDENTSHIFT){R.indentshift=R.indentshiftfirst}if(R.indentshift==="auto"){R.indentshift=this.displayIndent}var G=b.createStack(aa,false,"100%");b.addBox(G,ai);b.alignBox(ai,R.indentalign,0);if(R.indentshift&&R.indentalign!==a.INDENTALIGN.CENTER){ai.style[{left:"Left",right:"Right"}[R.indentalign]]=b.Em(b.length2em(R.indentshift))}L[aK].parentNode.parentNode.removeChild(L[aK].parentNode);b.addBox(G,L[aK]);b.alignBox(L[aK],aj[aK],0);if(b.msieRelativeWidthBug){ai.style.top=L[aK].style.top=""}if(t){ai.style.width=aM.width;aa.bbox.width="100%"}L[aK].style.marginRight=L[aK].style.marginLeft=b.Em(b.length2em(aM.minlabelspacing))}if(!t){this.HTMLhandleSpace(aa)}var al=this.HTMLhandleColor(aa);if(al&&t){if(!d){d=b.createFrame(ai,aL,0,aC,0,"none");b.addBox(ai,d);b.placeBox(d,0,az,true);d.style.width="100%"}d.style.backgroundColor=al.style.backgroundColor;d.parentNode.insertBefore(d,d.parentNode.firstChild);al.parentNode.removeChild(al)}return aa},HTMLhandleSpace:function(d){d.style.paddingLeft=d.style.paddingRight=".1667em"}});a.mtd.Augment({toHTML:function(e,d,g){e=this.HTMLcreateSpan(e);if(this.data[0]){var f=b.Measured(this.data[0].toHTML(e),e);if(g!=null){b.Remeasured(this.data[0].HTMLstretchV(e,d,g),e)}else{if(d!=null){b.Remeasured(this.data[0].HTMLstretchH(e,d),e)}}e.bbox=f.bbox}this.HTMLhandleSpace(e);this.HTMLhandleColor(e);return e},HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});MathJax.Hub.Startup.signal.Post("HTML-CSS mtable Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/mtable.js")});