@silurus/ooxml 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ var e=[`4472C4`,`ED7D31`,`A9D18E`,`FF0000`,`70AD47`,`4BACC6`,`FFC000`,`9E480E`,`843C0C`,`636363`,`255E91`,`967300`];function t(t,n){return n?.color?`#${n.color}`:`#${e[t%e.length]}`}function n(t,n){let r=n.dataPointColors?.[t];return r?`#${r}`:`#${e[t%e.length]}`}function r(e,t){let n=e.startsWith(`#`)?e.slice(1):e;return`rgba(${parseInt(n.slice(0,2),16)},${parseInt(n.slice(2,4),16)},${parseInt(n.slice(4,6),16)},${t})`}function i(e,t=5){if(e===0)return 1;let n=e/t,r=10**Math.floor(Math.log10(n)),i=n/r;return(i<1.5?1:i<3.5?2:i<7.5?5:10)*r}function a(e,t){if(e<=0)return t;let n=Math.ceil(e/t)*t;return e/n>=.9?n+t:n}function o(e,t){if(e>=0)return 0;let n=Math.floor(e/t)*t;return Math.abs(n-e)<t*1e-9?n-t:n}function s(e){return Number.isInteger(e)?String(e):e.toFixed(6).replace(/\.?0+$/,``)}function c(e,t){if(!t)return s(e);if(l(t))return u(e,t);let n=d(t),r;return r=e>0?n[0]??t:e<0?n[1]??n[0]??t:n[2]??n[0]??t,r===``?``:(e<0&&n.length<2?`-`:``)+f(Math.abs(e),r)}function l(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===`"`){t=!t;continue}if(!t){if(r===`\\`){n++;continue}if(r===`[`){for(;n<e.length&&e[n]!==`]`;)n++;continue}if(r===`y`||r===`Y`||r===`d`||r===`D`||r===`m`||r===`M`||r===`h`||r===`H`||r===`s`||r===`S`)return!0}}return!1}function u(e,t){let n=Date.UTC(1899,11,30),r=e<60?e+1:e,i=n+Math.floor(r)*864e5,a=new Date(i),o=a.getUTCFullYear(),s=a.getUTCMonth()+1,c=a.getUTCDate(),l=(e-Math.floor(e))*86400,u=Math.floor(l/3600),d=Math.floor(l%3600/60),f=Math.floor(l%60),p=``,m=!1,h=0;for(;h<t.length;){let e=t[h];if(e===`"`){m=!m,h++;continue}if(m){p+=e,h++;continue}if(e===`\\`&&h+1<t.length){p+=t[h+1],h+=2;continue}if(e===`[`){for(;h<t.length&&t[h]!==`]`;)h++;h<t.length&&h++;continue}if(e===`y`||e===`Y`){let e=0;for(;h<t.length&&(t[h]===`y`||t[h]===`Y`);)e++,h++;p+=e>=3?String(o):String(o%100).padStart(2,`0`);continue}if(e===`m`||e===`M`){let e=0;for(;h<t.length&&(t[h]===`m`||t[h]===`M`);)e++,h++;p.match(/[Hh]+\W*$/)?p+=e>=2?String(d).padStart(2,`0`):String(d):p+=e>=2?String(s).padStart(2,`0`):String(s);continue}if(e===`d`||e===`D`){let e=0;for(;h<t.length&&(t[h]===`d`||t[h]===`D`);)e++,h++;p+=e>=2?String(c).padStart(2,`0`):String(c);continue}if(e===`h`||e===`H`){let e=0;for(;h<t.length&&(t[h]===`h`||t[h]===`H`);)e++,h++;p+=e>=2?String(u).padStart(2,`0`):String(u);continue}if(e===`s`||e===`S`){let e=0;for(;h<t.length&&(t[h]===`s`||t[h]===`S`);)e++,h++;p+=e>=2?String(f).padStart(2,`0`):String(f);continue}p+=e,h++}return p}function d(e){let t=[],n=``;for(let r=0;r<e.length;r++){let i=e[r];if(i===`\\`&&r+1<e.length){n+=i+e[r+1],r++;continue}if(i===`"`){for(n+=i,r++;r<e.length&&e[r]!==`"`;)n+=e[r],r++;r<e.length&&(n+=e[r]);continue}if(i===`[`){for(n+=i,r++;r<e.length&&e[r]!==`]`;)n+=e[r],r++;r<e.length&&(n+=e[r]);continue}if(i===`;`){t.push(n),n=``;continue}n+=i}return t.push(n),t}function f(e,t){let n=[],r=0,i=!1,a=!1;for(;r<t.length;){let e=t[r];if(e===`"`){r++;let e=``;for(;r<t.length&&t[r]!==`"`;)e+=t[r],r++;r<t.length&&r++,n.push({kind:`lit`,text:e});continue}if(e===`\\`&&r+1<t.length){n.push({kind:`lit`,text:t[r+1]}),r+=2;continue}if(e===`_`&&r+1<t.length){n.push({kind:`lit`,text:` `}),r+=2;continue}if(e===`*`&&r+1<t.length){r+=2;continue}if(e===`[`){for(r++;r<t.length&&t[r]!==`]`;)r++;r<t.length&&r++;continue}if(e===`%`){a=!0,n.push({kind:`lit`,text:`%`}),r++;continue}if(e===`#`||e===`0`||e===`.`||e===`,`||e===`?`){let e=``;for(;r<t.length&&(t[r]===`#`||t[r]===`0`||t[r]===`.`||t[r]===`,`||t[r]===`?`);)e+=t[r],r++;n.push({kind:`num`,text:e}),i=!0;continue}n.push({kind:`lit`,text:e}),r++}if(!i)return n.map(e=>e.text).join(``);let o=a?e*100:e,s=``;for(let e of n)e.kind===`num`&&(s+=e.text);let c=p(o,s),l=!1;return n.map(e=>e.kind===`lit`?e.text:l?``:(l=!0,c)).join(``)}function p(e,t){let n=t.indexOf(`.`),r=n>=0?t.slice(0,n):t,i=n>=0?t.slice(n+1):``,a=/,/.test(r),o=(i.match(/[#0?]/g)??[]).length,s=(r.replace(/,/g,``).match(/0/g)??[]).length,[c,l=``]=e.toFixed(o).split(`.`),u=c.padStart(s,`0`),d=a?u.replace(/\B(?=(\d{3})+(?!\d))/g,`,`):u;return o===0?d:`${d}.${l.padEnd(o,`0`)}`}function m(e,t,n,r,i,a,o,s){e.save(),e.font=`${s}px sans-serif`,e.fillStyle=`#555`,o===`cat`?(e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(t.slice(0,30),n+i/2,r+a+s+2)):(e.translate(n-s-4,r+a/2),e.rotate(-Math.PI/2),e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(t.slice(0,30),0,0)),e.restore()}function h(e){return e&&(e===`line`||e===`stackedLine`||e===`stackedLinePct`||e===`radar`||e===`scatter`)?`line`:`fill`}function g(e,t,n,r,i,a,o){if(e.fillStyle=n,t===`line`){e.strokeStyle=n;let t=e.lineWidth;e.lineWidth=Math.max(1.5,o*.15),e.beginPath();let s=i+o/2;e.moveTo(r,s),e.lineTo(r+a,s),e.stroke(),e.lineWidth=t}else e.fillRect(r,i,a,o)}function _(e,n,r,i,a,o,s=`vertical`,c){let l=h(c);if(s===`horizontal`){let s=Math.max(9,Math.min(12,o*.7));e.font=`${s}px sans-serif`,e.textBaseline=`middle`;let c=n.map((e,t)=>e.name||`Series ${t+1}`),u=c.map(t=>14+e.measureText(t.slice(0,30)).width),d=r+(a-(u.reduce((e,t)=>e+t,0)+12*Math.max(0,n.length-1)))/2,f=i+o/2;for(let r=0;r<n.length;r++)g(e,l,t(r,n[r]),d,f-s/2,10,s),e.fillStyle=`#333`,e.textAlign=`left`,e.fillText(c[r].slice(0,30),d+10+4,f),d+=u[r]+12;return}let u=Math.max(9,Math.min(12,o/(n.length+1)));e.font=`${u}px sans-serif`,e.textBaseline=`middle`;let d=u+4,f=i+(o-d*n.length)/2;for(let i=0;i<n.length;i++){g(e,l,t(i,n[i]),r,f,10,u),e.fillStyle=`#333`,e.textAlign=`left`;let a=n[i].name||`Series ${i+1}`;e.fillText(a.slice(0,20),r+10+4,f+u/2),f+=d}}function v(e,t,n){if(!e.showLegend)return null;let r=e.legendPos??`r`,i=r===`l`?`l`:r===`t`?`t`:r===`b`?`b`:`r`;return i===`r`||i===`l`?{side:i,reserveW:Math.max(80,t*.22),reserveH:0}:{side:i,reserveW:0,reserveH:Math.max(18,n*.08)}}function y(e,t,n,r,i,a,o,s,c,l,u,d){if(!n)return;let f=t.legendManualLayout;if(f&&f.xMode===`edge`&&f.yMode===`edge`&&f.w>0&&f.h>0){let n=r+f.x*a,s=i+f.y*o,c=f.w*a,l=f.h*o,u=c>=l?`horizontal`:`vertical`;_(e,t.series,n,s,c,l,u,t.chartType);return}switch(n.side){case`r`:_(e,t.series,r+a-n.reserveW+4,c,n.reserveW-8,u,`vertical`,t.chartType);break;case`l`:_(e,t.series,r+4,c,n.reserveW-8,u,`vertical`,t.chartType);break;case`t`:_(e,t.series,s,i+d,l,n.reserveH,`horizontal`,t.chartType);break;case`b`:_(e,t.series,s,i+o-n.reserveH,l,n.reserveH,`horizontal`,t.chartType);break}}function b(e,t,n,r,i,a,o){if(t===`none`||!t)return;let s=o?Math.max(4,o+2):4,c=e.strokeStyle,l=e.lineWidth;if(e.strokeStyle=a??`#888`,e.lineWidth=o??1,e.beginPath(),n===`val`){let n=r,a=i,o=t===`out`||t===`cross`?-s:0,c=t===`in`||t===`cross`?s:0;e.moveTo(n+o,a),e.lineTo(n+c,a)}else{let n=r,a=i,o=t===`out`||t===`cross`?s:0,c=t===`in`||t===`cross`?-s:0;e.moveTo(a,n+o),e.lineTo(a,n+c)}e.stroke(),e.strokeStyle=c,e.lineWidth=l}function x(e,t,n){return e.titleFontSizeHpt?e.titleFontSizeHpt/100*n:Math.max(10,t*.085)}function S(e,t,n){return e?e/100*n:Math.max(8,t*.045)}function C(e,t,n,r,i,a){t.title&&(e.font=`bold ${a}px ${t.titleFontFace?`"${t.titleFontFace}", Calibri, Arial, sans-serif`:`Calibri, Arial, sans-serif`}`,e.fillStyle=t.titleFontColor?`#${t.titleFontColor}`:`#333`,e.textAlign=`center`,e.textBaseline=`top`,e.fillText(t.title,n+i/2,r))}function w(e){if(e.categories.length>0)return e.categories;let t=e.series[0];if(t?.categories&&t.categories.length>0)return t.categories;let n=0;for(let t of e.series)t.values.length>n&&(n=t.values.length);return n>0?Array.from({length:n},(e,t)=>String(t+1)):[]}function T(e,t,n,r,i,a,o,s,c){let l=s??`outEnd`;if(e.fillStyle=c?`#${c}`:`#333`,o===`vertical`){let o=n+a/2;l===`inBase`?(e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(t,o,r+i-2)):l===`inEnd`?(e.textAlign=`center`,e.textBaseline=`top`,e.fillText(t,o,r+2)):l===`ctr`?(e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(t,o,r+i/2)):(e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(t,o,r-1))}else{let o=r+a/2;l===`inBase`?(e.textAlign=`left`,e.textBaseline=`middle`,e.fillText(t,n+4,o)):l===`inEnd`?(e.textAlign=`right`,e.textBaseline=`middle`,e.fillText(t,n+i-4,o)):l===`ctr`?(e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(t,n+i/2,o)):(e.textAlign=`left`,e.textBaseline=`middle`,e.fillText(t,n+i+2,o))}}function E(e,n,r,o){let{x:s,y:l,w:u,h:d}=r,f=n.chartType===`clusteredBarH`||n.chartType===`stackedBarH`||n.chartType===`stackedBarHPct`,p=n.chartType.startsWith(`stacked`),h=n.chartType===`stackedBarPct`||n.chartType===`stackedBarHPct`,g=n.series.filter(e=>e.seriesType!==`line`),_=n.series.filter(e=>e.seriesType===`line`),b=w(n),S=b.length;if(S===0)return;let E=n.title?x(n,d,o):0,D=n.title?d*.02:0,O=n.title?d*.025:0,k=n.title?E+D+O:0,A=v(n,u,d),j=A?.side===`r`?A.reserveW:0,M=A?.side===`l`?A.reserveW:0,N=A?.side===`t`?A.reserveH:0,P=A?.side===`b`?A.reserveH:0,F=Math.max(8,Math.min(10,d*.045)),I=n.catAxisTitle?F+4:0,L=n.valAxisTitle?F+4:0,R={t:k+N+d*.02,r:j+u*.03,b:d*.14+I+P,l:u*.12+L+M};f&&(R.l=(n.catAxisHidden?u*.03:u*.22)+L+M,R.b=(n.valAxisHidden?d*.02:d*.08)+I+P),C(e,n,s,l+D,u,E);let z=n.plotAreaManualLayout,B,V,H,U;if(z&&z.w!=null&&z.h!=null?(B=s+z.x*u,V=l+z.y*d,H=z.w*u,U=z.h*d):(B=s+R.l,V=l+R.t,H=u-R.l-R.r,U=d-R.t-R.b),H<=0||U<=0)return;n.plotAreaBg&&(e.fillStyle=`#${n.plotAreaBg}`,e.fillRect(B,V,H,U));let W=0;for(let e=0;e<S;e++){let t=0;for(let n of g){let r=n.values[e]??0;p?t+=Math.abs(r):W=Math.max(W,Math.abs(r))}p&&(W=Math.max(W,t))}h&&(W=100),n.valMax!=null&&(W=n.valMax),W===0&&(W=1);let G=i(W),K=n.valMax??a(W,G),q=`#e0e0e0`,J=Math.round(K/G);if(e.textBaseline=`middle`,e.font=`${Math.max(8,Math.min(11,U/20))}px sans-serif`,e.fillStyle=`#555`,!n.valAxisHidden)for(let t=0;t<=J;t++){let r=t*G,i=h?`${Math.round(r)}%`:c(r,n.valAxisFormatCode);if(f){let n=B+r/K*H;e.strokeStyle=t===0?`#aaa`:q,e.lineWidth=t===0?1:.5,e.beginPath(),e.moveTo(n,V),e.lineTo(n,V+U),e.stroke(),e.textAlign=`center`,e.fillText(i,n,V+U+10)}else{let n=V+U-r/K*U;e.strokeStyle=t===0?`#aaa`:q,e.lineWidth=t===0?1:.5,e.beginPath(),e.moveTo(B,n),e.lineTo(B+H,n),e.stroke(),e.textAlign=`right`,e.fillText(i,B-4,n)}}e.strokeStyle=`#aaa`,e.lineWidth=1,f?!n.valAxisHidden&&!n.valAxisLineHidden&&(e.beginPath(),e.moveTo(B,V),e.lineTo(B,V+U),e.stroke()):!n.catAxisHidden&&!n.catAxisLineHidden&&(e.beginPath(),e.moveTo(B,V+U),e.lineTo(B+H,V+U),e.stroke());let Y=f?U/S:H/S,X=p?1:Math.max(1,g.length),Z=p?0:n.barOverlap??0,Q=n.barGapWidth??150,$=Y/(1+(X-1)*(1-Z/100)+Q/100),ee=p?0:$*(1-Z/100),te=(Y-($+(X-1)*ee))/2;for(let r=0;r<S;r++){let i=0,a=0;if(h){for(let e of g)a+=Math.abs(e.values[r]??0);a===0&&(a=1)}for(let s=0;s<g.length;s++){let l=g[s],u=l.values[r]??0,d=h?Math.abs(u)/a*100:Math.abs(u),m=t(s,l);if(f){let t=p?s:g.length-1-s,a=p?V+(S-1-r)*Y+te:V+(S-1-r)*Y+te+t*ee,u=d/K*H,f=p?B+i/K*H:B;e.fillStyle=m,e.fillRect(f,a,u,$),n.showDataLabels&&d>0&&(e.font=`bold ${n.dataLabelFontSizeHpt?n.dataLabelFontSizeHpt/100*o:Math.max(7,Math.min(11,$*.6))}px sans-serif`,T(e,h?`${Math.round(d)}%`:c(d,n.dataLabelFormatCode??l.valFormatCode??null),f,a,u,$,`horizontal`,n.dataLabelPosition??null,n.dataLabelFontColor??null))}else{let t=p?B+r*Y+te:B+r*Y+te+s*ee,a=d/K*U,u=V+U-(p?i+d:d)/K*U;e.fillStyle=m,e.fillRect(t,u,$,a),n.showDataLabels&&d>0&&(e.font=`bold ${n.dataLabelFontSizeHpt?n.dataLabelFontSizeHpt/100*o:Math.max(7,Math.min(11,$*.6))}px sans-serif`,T(e,h?`${Math.round(d)}%`:c(d,n.dataLabelFormatCode??l.valFormatCode??null),t,u,a,$,`vertical`,n.dataLabelPosition??null,n.dataLabelFontColor??null))}p&&(i+=d)}}if(!n.catAxisHidden){e.fillStyle=`#555`,e.font=`${Math.max(8,Math.min(11,Y*.5))}px sans-serif`;for(let t=0;t<S;t++){let n=(b[t]??``).toString().slice(0,12);if(f){let r=V+(S-1-t)*Y+Y/2;e.textAlign=`right`,e.textBaseline=`middle`,e.fillText(n,B-4,r)}else{let r=B+t*Y+Y/2;e.textAlign=`center`,e.textBaseline=`top`,e.fillText(n,r,V+U+3)}}}if(_.length>0&&!f)for(let n=0;n<_.length;n++){let r=_[n],i=t(g.length+n,r);e.strokeStyle=i,e.lineWidth=2,e.setLineDash([]),e.beginPath();let a=!1;for(let t=0;t<S;t++){let n=r.values[t];if(n==null){a=!1;continue}let i=B+t*Y+Y/2,o=V+U-n/K*U;a?e.lineTo(i,o):(e.moveTo(i,o),a=!0)}if(e.stroke(),r.showMarker!==!1)for(let t=0;t<S;t++){let n=r.values[t];if(n==null)continue;let a=B+t*Y+Y/2,o=V+U-n/K*U;e.fillStyle=i,e.beginPath(),e.arc(a,o,3,0,Math.PI*2),e.fill()}}y(e,f&&!p?{...n,series:[...n.series].reverse()}:n,A,s,l,u,d,B,V,H,U,k+2),n.catAxisTitle&&m(e,n.catAxisTitle,B,V,H,U,`cat`,F),n.valAxisTitle&&m(e,n.valAxisTitle,B,V,H,U,`val`,F)}function D(e,n,r,l){let{x:u,y:d,w:f,h:p}=r,h=w(n),g=h.length;if(g===0)return;let _=n.title?x(n,p,l):0,T=n.title?p*.045:0,E=n.title?p*.035:0,D=n.title?_+T+E:0,O=v(n,f,p),k=O?.side===`r`?O.reserveW:0,A=O?.side===`l`?O.reserveW:0,j=O?.side===`t`?O.reserveH:0,M=O?.side===`b`?O.reserveH:0,N=S(n.catAxisFontSizeHpt,p,l),P=S(n.valAxisFontSizeHpt,p,l),F=Math.max(N,P),I=n.catAxisTitle?F+4:0,L=n.valAxisTitle?F+4:0,R={t:D+j+P/2+2,r:k+f*.05,b:N+12+I+M,l:P*2.2+10+L+A};C(e,n,u,d+T,f,_);let z=u+R.l,B=d+R.t,V=f-R.l-R.r,H=p-R.t-R.b;if(V<=0||H<=0)return;n.plotAreaBg&&(e.fillStyle=`#${n.plotAreaBg}`,e.fillRect(z,B,V,H));let U=1/0,W=-1/0;for(let e of n.series)for(let t of e.values)t!=null&&(U=Math.min(U,t),W=Math.max(W,t));isFinite(U)||(U=0,W=1),n.valMin==null?U>0&&(U=0):U=n.valMin,n.valMax==null?W<0&&(W=0):W=n.valMax,W===U&&(W=U+1);let G=i(W-U),K=n.valMin??o(U,G),q=n.valMax??a(W,G),J=q-K;if(J===0)return;let Y=e=>B+H-(e-K)/J*H,X=n.catAxisCrossBetween===`midCat`?e=>z+(g===1?V/2:e/(g-1)*V):e=>z+(e+.5)/g*V;if(!n.valAxisHidden){let t=Math.round((q-K)/G);e.font=`${P}px sans-serif`,e.textBaseline=`middle`;for(let r=0;r<=t;r++){let t=K+r*G,i=Y(t);e.strokeStyle=t===0?`#aaa`:`#e0e0e0`,e.lineWidth=t===0?1:.5,e.beginPath(),e.moveTo(z,i),e.lineTo(z+V,i),e.stroke(),b(e,n.valAxisMajorTickMark,`val`,z,i),e.fillStyle=`#555`,e.textAlign=`right`,e.fillText(c(t,n.valAxisFormatCode),z-6,i)}}e.strokeStyle=`#aaa`,e.lineWidth=1,!n.catAxisHidden&&!n.catAxisLineHidden&&(e.beginPath(),e.moveTo(z,B+H),e.lineTo(z+V,B+H),e.stroke()),!n.valAxisHidden&&!n.valAxisLineHidden&&(e.beginPath(),e.moveTo(z,B),e.lineTo(z,B+H),e.stroke());let Z=Math.max(1,2.25*l),Q=Math.max(2,2.5*l),$=S(n.dataLabelFontSizeHpt,p,l);for(let r=0;r<n.series.length;r++){let i=n.series[r],a=t(r,i);e.strokeStyle=a,e.lineWidth=Z,e.setLineDash([]),e.beginPath();let o=!1;for(let t=0;t<g;t++){let n=i.values[t];if(n==null){o=!1;continue}let r=X(t),a=Y(n);o?e.lineTo(r,a):(e.moveTo(r,a),o=!0)}e.stroke(),e.fillStyle=a;let c=i.showMarker!==!1;for(let t=0;t<g;t++){let r=i.values[t];if(r!=null&&(c&&(e.beginPath(),e.arc(X(t),Y(r),Q,0,Math.PI*2),e.fill()),n.showDataLabels)){e.font=`${$}px sans-serif`,e.fillStyle=`#333`,e.textAlign=`center`,e.textBaseline=`bottom`;let n=c?Q+1:2;e.fillText(s(r),X(t),Y(r)-n),e.fillStyle=a}}}if(!n.catAxisHidden){let t=Math.max(1,Math.ceil(g/8));e.fillStyle=`#555`,e.textAlign=`center`,e.textBaseline=`top`,e.font=`${N}px sans-serif`;for(let r=0;r<g;r+=t){let t=X(r);b(e,n.catAxisMajorTickMark,`cat`,B+H,t),e.fillStyle=`#555`,e.fillText((h[r]??``).toString().slice(0,10),t,B+H+5)}}y(e,n,O,u,d,f,p,z,B,V,H,D+2),n.catAxisTitle&&m(e,n.catAxisTitle,z,B,V,H,`cat`,F),n.valAxisTitle&&m(e,n.valAxisTitle,z,B,V,H,`val`,F)}function O(e,n,o,s){let{x:l,y:u,w:d,h:f}=o,p=w(n),h=p.length;if(h===0)return;let g=n.chartType===`stackedArea`||n.chartType===`stackedAreaPct`,_=n.title?x(n,f,s):0,b=n.title?f*.035:0,S=n.title?f*.035:0,T=n.title?_+b+S:0,E=v(n,d,f),D=E?.side===`r`?E.reserveW:0,O=E?.side===`l`?E.reserveW:0,k=E?.side===`t`?E.reserveH:0,A=E?.side===`b`?E.reserveH:0,j=Math.max(8,Math.min(10,f*.045)),M=n.catAxisTitle?j+4:0,N=n.valAxisTitle?j+4:0,P={t:T+k+f*.02,r:D+d*.05,b:f*.14+M+A,l:d*.12+N+O};C(e,n,l,u+b,d,_);let F=l+P.l,I=u+P.t,L=d-P.l-P.r,R=f-P.t-P.b;if(L<=0||R<=0)return;n.plotAreaBg&&(e.fillStyle=`#${n.plotAreaBg}`,e.fillRect(F,I,L,R));let z=0;for(let e=0;e<h;e++)if(g){let t=0;for(let r of n.series)t+=r.values[e]??0;z=Math.max(z,t)}else for(let t of n.series)z=Math.max(z,t.values[e]??0);n.valMax!=null&&(z=n.valMax),z===0&&(z=1);let B=i(z),V=n.valMax??a(z,B),H=e=>F+(h===1?L/2:e/(h-1)*L),U=e=>I+R-e/V*R;if(!n.valAxisHidden){e.font=`${Math.max(8,Math.min(11,R/20))}px sans-serif`,e.textBaseline=`middle`;let t=Math.round(V/B);for(let r=0;r<=t;r++){let t=r*B,i=U(t);e.strokeStyle=r===0?`#aaa`:`#e0e0e0`,e.lineWidth=r===0?1:.5,e.beginPath(),e.moveTo(F,i),e.lineTo(F+L,i),e.stroke(),e.fillStyle=`#555`,e.textAlign=`right`,e.fillText(c(t,n.valAxisFormatCode),F-4,i)}}!n.catAxisHidden&&!n.catAxisLineHidden&&(e.strokeStyle=`#aaa`,e.lineWidth=1,e.beginPath(),e.moveTo(F,I+R),e.lineTo(F+L,I+R),e.stroke());let W=g?Array(h).fill(0):null;for(let i=n.series.length-1;i>=0;i--){let a=n.series[i],o=t(i,a),s=I+R;if(e.beginPath(),g&&W){for(let t=0;t<h;t++){let n=(a.values[t]??0)+W[t],r=H(t),i=U(n);t===0?e.moveTo(r,i):e.lineTo(r,i)}for(let t=h-1;t>=0;t--)e.lineTo(H(t),U(W[t]));for(let e=0;e<h;e++)W[e]+=a.values[e]??0}else{e.moveTo(H(0),s);for(let t=0;t<h;t++)e.lineTo(H(t),U(a.values[t]??0));e.lineTo(H(h-1),s)}e.closePath(),e.fillStyle=r(o,.6),e.fill(),e.strokeStyle=o,e.lineWidth=1.5,e.setLineDash([]),e.stroke()}if(!n.catAxisHidden){let t=Math.max(1,Math.ceil(h/8));e.fillStyle=`#555`,e.textAlign=`center`,e.textBaseline=`top`,e.font=`${Math.max(8,Math.min(11,L/h*.8))}px sans-serif`;for(let n=0;n<h;n+=t)e.fillText((p[n]??``).toString().slice(0,10),H(n),I+R+3)}y(e,n,E,l,u,d,f,F,I,L,R,T+2),n.catAxisTitle&&m(e,n.catAxisTitle,F,I,L,R,`cat`,j),n.valAxisTitle&&m(e,n.valAxisTitle,F,I,L,R,`val`,j)}function k(t,r,i,a,o){let{x:s,y:c,w:l,h:u}=i,d=r.series[0];if(!d)return;let f=d.categories&&d.categories.length>0?d.categories:r.categories,p=d.values.map(e=>Math.abs(e??0)),m=p.reduce((e,t)=>e+t,0);if(m===0)return;let h=r.title?x(r,u,o):0,g=r.title?u*.035:0,_=r.title?u*.035:0,v=r.title?h+g+_:0;C(t,r,s,c+g,l,h);let b=r.showLegend?(()=>{let e=r.legendPos??`r`,t=e===`l`?`l`:e===`t`?`t`:e===`b`?`b`:`r`;return t===`r`||t===`l`?{side:t,reserveW:Math.max(80,l*.28),reserveH:0}:{side:t,reserveW:0,reserveH:Math.max(18,u*.08)}})():null,S=b?.side===`r`?b.reserveW:0,w=b?.side===`l`?b.reserveW:0,T=b?.side===`t`?b.reserveH:0,E=b?.side===`b`?b.reserveH:0,D=l-S-w,O=u-v-T-E-u*.02,k=s+w+D/2,A=c+v+T+u*.02+O/2,j=Math.min(D,O)*.42,M=a?j*.5:0,N=-Math.PI/2;for(let e=0;e<p.length;e++){let i=p[e]/m*Math.PI*2,o=n(e,d);if(t.beginPath(),t.moveTo(k,A),t.arc(k,A,j,N,N+i),t.closePath(),t.fillStyle=o,t.fill(),t.strokeStyle=`#fff`,t.lineWidth=1,t.stroke(),r.showDataLabels&&i>.15){let n=N+i/2,r=j*(a?.75:.6),o=k+Math.cos(n)*r,s=A+Math.sin(n)*r,c=Math.round(p[e]/m*100);t.font=`bold ${Math.max(8,j*.1)}px sans-serif`,t.fillStyle=`#fff`,t.textAlign=`center`,t.textBaseline=`middle`,t.fillText(`${c}%`,o,s)}N+=i}if(a&&(t.beginPath(),t.arc(k,A,M,0,Math.PI*2),t.fillStyle=`#fff`,t.fill()),b){let n=p.map((t,n)=>({name:(f[n]??`Item ${n+1}`).toString(),color:d.dataPointColors?.[n]??d.color??e[n%e.length],values:[]})),i=k-D/2;y(t,{...r,series:n},b,s,c,l,u,i,A-O/2,D,O,v+2)}}function A(e,n,o,c){let{x:l,y:u,w:d,h:f}=o,p=w(n),m=p.length;if(m<3)return;let h=n.title?x(n,f,c):0,g=n.title?f*.035:0,_=n.title?f*.035:0,b=n.title?h+g+_:0,T=v(n,d,f),E=T?.side===`r`?T.reserveW:0,D=T?.side===`l`?T.reserveW:0,O=T?.side===`t`?T.reserveH:0,k=T?.side===`b`?T.reserveH:0;C(e,n,l,u+g,d,h);let A=d-E-D,j=f-b-O-k-f*.02,M=l+D+A/2,N=u+b+O+f*.02+j/2,P=Math.min(A,j)*.38,F=0;for(let e of n.series)for(let t of e.values)F=Math.max(F,t??0);n.valMax!=null&&(F=n.valMax),F===0&&(F=1);let I=i(F),L=n.valMax??a(F,I),R=-Math.PI/2,z=e=>R+e/m*Math.PI*2,B=Math.round(L/I);e.strokeStyle=`#ddd`,e.lineWidth=.5;for(let t=1;t<=B;t++){let n=t/B*P;e.beginPath();for(let t=0;t<m;t++){let r=z(t),i=M+Math.cos(r)*n,a=N+Math.sin(r)*n;t===0?e.moveTo(i,a):e.lineTo(i,a)}e.closePath(),e.stroke()}e.strokeStyle=`#bbb`,e.lineWidth=.5;for(let t=0;t<m;t++){let n=z(t);e.beginPath(),e.moveTo(M,N),e.lineTo(M+Math.cos(n)*P,N+Math.sin(n)*P),e.stroke()}if(!n.valAxisHidden){e.font=`${S(n.valAxisFontSizeHpt,f,c)}px sans-serif`,e.fillStyle=`#555`,e.textAlign=`right`,e.textBaseline=`middle`;for(let t=1;t<=B;t++){let n=t/B*L,r=t/B*P;e.fillText(s(n),M-3,N-r)}}e.font=`${Math.max(8,Math.min(11,P*.2))}px sans-serif`,e.fillStyle=`#444`,e.textBaseline=`middle`;for(let t=0;t<m;t++){let n=z(t),r=M+Math.cos(n)*(P+12),i=N+Math.sin(n)*(P+12);e.textAlign=Math.cos(n)<-.1?`right`:Math.cos(n)>.1?`left`:`center`,e.fillText((p[t]??``).toString().slice(0,12),r,i)}let V=n.radarStyle===`filled`,H=Math.max(2,P*.025);for(let i=0;i<n.series.length;i++){let a=n.series[i],o=t(i,a),s=[];for(let e=0;e<m;e++){let t=a.values[e];if(t==null){s.push(null);continue}let n=t/L,r=z(e);s.push([M+Math.cos(r)*P*n,N+Math.sin(r)*P*n])}e.beginPath();let c=!1;for(let t of s){if(t==null){c=!1;continue}c?e.lineTo(t[0],t[1]):(e.moveTo(t[0],t[1]),c=!0)}let l=s.every(e=>e!=null);if(V&&l?(e.closePath(),e.fillStyle=r(o,.25),e.fill()):l&&e.closePath(),e.strokeStyle=o,e.lineWidth=2,e.stroke(),!V&&a.showMarker!==!1){e.fillStyle=o;for(let t of s)t!=null&&(e.beginPath(),e.arc(t[0],t[1],H,0,Math.PI*2),e.fill())}}y(e,n,T,l,u,d,f,M-A/2,N-j/2,A,j,b+2)}function j(e,n,r,a){let{x:o,y:s,w:l,h:u}=r,d=n.title?x(n,u,a):0,f=n.title?u*.035:0,p=n.title?u*.035:0,h=n.title?d+f+p:0,g=v(n,l,u),_=g?.side===`r`?g.reserveW:0,S=g?.side===`l`?g.reserveW:0,w=g?.side===`t`?g.reserveH:0,T=g?.side===`b`?g.reserveH:0,E=Math.max(8,Math.min(10,u*.045)),D=n.catAxisTitle?E+4:0,O=n.valAxisTitle?E+4:0;if(n.title){let t=n.titleManualLayout;t&&(t.x!==void 0||t.y!==void 0)?C(e,n,o+t.x*l,s+t.y*u,(t.w??.5)*l,d):C(e,n,o,s+f,l,d)}let k=n.plotAreaManualLayout,A,j,F,L;if(k&&k.w!=null&&k.h!=null)A=o+k.x*l,j=s+k.y*u,F=k.w*l,L=k.h*u;else{let e={t:h+w+u*.02,r:_+l*.05,b:(n.catAxisHidden?u*.04:u*.12)+D+T,l:(n.valAxisHidden?l*.04:l*.12)+O+S};A=o+e.l,j=s+e.t,F=l-e.l-e.r,L=u-e.t-e.b}if(F<=0||L<=0)return;n.plotAreaBg&&(e.fillStyle=`#${n.plotAreaBg}`,e.fillRect(A,j,F,L));let R=[],z=[];for(let e of n.series){let t=e.categories??[];for(let e of t){let t=parseFloat(e);isNaN(t)||R.push(t)}for(let t of e.values)t!=null&&z.push(t)}let B=R.length===0;if(B){let e=Math.max(...n.series.map(e=>e.values.length));for(let t=0;t<e;t++)R.push(t)}let V=Math.min(...R),H=Math.max(...R),U=Math.min(...z),W=Math.max(...z);if(V===H&&(--V,H+=1),U===W&&(--U,W+=1),n.valMin==null?U>0&&(U=0):U=n.valMin,n.valMax!=null&&(W=n.valMax),n.catAxisMin!=null&&(V=n.catAxisMin),n.catAxisMax!=null&&(H=n.catAxisMax),n.catAxisMin==null||n.catAxisMax==null){let e=i(H-V);e>0&&(n.catAxisMin??(V=Math.floor(V/e)*e),n.catAxisMax??(H=Math.ceil(H/e)*e))}let G=e=>A+(e-V)/(H-V)*F,K=e=>j+L-(e-U)/(W-U)*L;if(!n.valAxisHidden){let t=Math.max(8,Math.min(11,L/20));e.font=`${n.valAxisFontBold?`bold `:``}${t}px sans-serif`;let r=i(W-U),a=Math.round((W-U)/r)+1;for(let t=0;t<a;t++){let i=U+t*r;if(i>W+r*.01)break;let a=K(i);e.strokeStyle=`#e0e0e0`,e.lineWidth=.5,e.beginPath(),e.moveTo(A,a),e.lineTo(A+F,a),e.stroke(),e.fillStyle=`#555`,e.textAlign=`right`,e.textBaseline=`middle`,e.fillText(c(i,n.valAxisFormatCode),A-4,a);let o=n.valAxisLineColor?`#${n.valAxisLineColor}`:void 0,s=n.valAxisLineWidthEmu?Math.max(.5,n.valAxisLineWidthEmu/12700):void 0;b(e,n.valAxisMajorTickMark,`val`,A,a,o,s)}}let q=j+L;if(n.catAxisCrossesAt!=null)q=I(K(n.catAxisCrossesAt),j,j+L);else{let e=n.catAxisCrosses??`autoZero`;e===`autoZero`&&U<0&&W>0?q=I(K(0),j,j+L):e===`min`?q=j+L:e===`max`&&(q=j)}if(!n.catAxisHidden&&!n.catAxisLineHidden&&(e.save(),e.strokeStyle=n.catAxisLineColor?`#${n.catAxisLineColor}`:`#888`,e.lineWidth=n.catAxisLineWidthEmu?Math.max(.5,n.catAxisLineWidthEmu/12700):1,e.lineCap=`butt`,e.beginPath(),e.moveTo(A,q),e.lineTo(A+F,q),e.stroke(),e.restore()),!n.valAxisHidden&&!n.valAxisLineHidden&&(e.save(),e.strokeStyle=n.valAxisLineColor?`#${n.valAxisLineColor}`:`#888`,e.lineWidth=n.valAxisLineWidthEmu?Math.max(.5,n.valAxisLineWidthEmu/12700):1,e.beginPath(),e.moveTo(A,j),e.lineTo(A,j+L),e.stroke(),e.restore()),!n.catAxisHidden){let t=Math.max(8,Math.min(11,L/20));e.font=`${n.catAxisFontBold?`bold `:``}${t}px sans-serif`;let r=i(H-V),a=Math.round((H-V)/r)+1;e.fillStyle=`#555`,e.textAlign=`center`,e.textBaseline=`top`;for(let t=0;t<a;t++){let i=V+t*r;if(i>H+r*.01)break;let a=G(i);e.fillText(c(i,n.catAxisFormatCode),a,q+4);let o=n.catAxisLineColor?`#${n.catAxisLineColor}`:void 0,s=n.catAxisLineWidthEmu?Math.max(.5,n.catAxisLineWidthEmu/12700):void 0;b(e,n.catAxisMajorTickMark,`cat`,q,a,o,s)}}let J=n.chartType===`bubble`,Y=J?`marker`:n.scatterStyle??`marker`,X=Y===`line`||Y===`lineMarker`||Y===`lineNoMarker`,Z=Y===`smooth`||Y===`smoothMarker`||Y===`smoothNoMarker`,Q=Y===`lineNoMarker`||Y===`smoothNoMarker`;for(let r=0;r<n.series.length;r++){let i=n.series[r],o=t(r,i),s=i.categories??[];for(let t of i.errBars??[])N(e,i,t,s,B,G,K,o);if(X||Z){let t=[];for(let e=0;e<i.values.length;e++){let n=i.values[e];if(n==null)continue;let r=B?e:parseFloat(s[e]??`0`);isNaN(r)||t.push({x:G(r),y:K(n)})}if(t.length>=2){if(e.save(),e.strokeStyle=i.color?`#${i.color}`:o,e.lineWidth=1.5,e.beginPath(),e.moveTo(t[0].x,t[0].y),Z&&t.length>=3)for(let n=0;n<t.length-1;n++){let r=t[n-1]??t[n],i=t[n],a=t[n+1],o=t[n+2]??a,s=i.x+(a.x-r.x)/6,c=i.y+(a.y-r.y)/6,l=a.x-(o.x-i.x)/6,u=a.y-(o.y-i.y)/6;e.bezierCurveTo(s,c,l,u,a.x,a.y)}else for(let n=1;n<t.length;n++)e.lineTo(t[n].x,t[n].y);e.stroke(),e.restore()}}if(!(Q||i.showMarker===!1||typeof i.markerSymbol==`string`&&i.markerSymbol===`none`)){let t=0;if(J&&i.bubbleSizes&&i.bubbleSizes.length>0){let e=Math.max(0,...i.bubbleSizes.filter(e=>e!=null));e>0&&(t=Math.min(F,L)/Math.max(8,i.values.length*1.6)/Math.sqrt(e))}for(let n=0;n<i.values.length;n++){let r=i.values[n];if(r==null)continue;let c=B?n:parseFloat(s[n]??`0`);if(isNaN(c))continue;let l=(i.dataPointOverrides??[]).find(e=>e.idx===n),u=l?.markerSymbol??i.markerSymbol??`circle`,d=l?.markerSize??i.markerSize??5;if(J&&t>0){let e=i.bubbleSizes?.[n];e!=null&&e>0&&(d=Math.sqrt(e)*t*2/a)}let f=l?.markerFill??l?.color??i.markerFill??o,p=l?.markerLine??i.markerLine??null;M(e,G(c),K(r),u,d,f,p,a)}}P(e,i,s,B,G,K,L,a)}y(e,n,g,o,s,l,u,A,j,F,L,h+2),n.catAxisTitle&&m(e,n.catAxisTitle,A,j,F,L,`cat`,E),n.valAxisTitle&&m(e,n.valAxisTitle,A,j,F,L,`val`,E)}function M(e,t,n,r,i,a,o,s){let c=Math.max(2,i*s),l=c/2,u=a.startsWith(`#`)?a:`#${a}`,d=o?o.startsWith(`#`)?o:`#${o}`:null;switch(e.save(),e.fillStyle=u,d&&(e.strokeStyle=d,e.lineWidth=1),r){case`square`:e.fillRect(t-l,n-l,c,c),o&&e.strokeRect(t-l,n-l,c,c);break;case`diamond`:e.beginPath(),e.moveTo(t,n-l),e.lineTo(t+l,n),e.lineTo(t,n+l),e.lineTo(t-l,n),e.closePath(),e.fill(),o&&e.stroke();break;case`triangle`:e.beginPath(),e.moveTo(t,n-l),e.lineTo(t+l,n+l),e.lineTo(t-l,n+l),e.closePath(),e.fill(),o&&e.stroke();break;case`x`:e.strokeStyle=u,e.lineWidth=Math.max(1,c*.18),e.beginPath(),e.moveTo(t-l,n-l),e.lineTo(t+l,n+l),e.moveTo(t-l,n+l),e.lineTo(t+l,n-l),e.stroke();break;case`plus`:e.strokeStyle=u,e.lineWidth=Math.max(1,c*.18),e.beginPath(),e.moveTo(t-l,n),e.lineTo(t+l,n),e.moveTo(t,n-l),e.lineTo(t,n+l),e.stroke();break;case`star`:e.beginPath();for(let r=0;r<10;r++){let i=r%2==0?l:l*.45,a=-Math.PI/2+r*Math.PI/5,o=t+Math.cos(a)*i,s=n+Math.sin(a)*i;r===0?e.moveTo(o,s):e.lineTo(o,s)}e.closePath(),e.fill(),o&&e.stroke();break;case`dot`:e.beginPath(),e.arc(t,n,Math.max(1,c*.25),0,Math.PI*2),e.fill();break;case`dash`:{let r=Math.max(1,c*.25);e.fillRect(t-l,n-r/2,c,r);break}default:e.beginPath(),e.arc(t,n,l,0,Math.PI*2),e.fill(),o&&e.stroke();break}e.restore()}function N(e,t,n,r,i,a,o,s){e.save(),e.strokeStyle=n.color?`#${n.color}`:s,e.lineWidth=n.lineWidthEmu?Math.max(.5,n.lineWidthEmu/12700):1,e.setLineDash(L(n.dash));let c=n.barType===`plus`||n.barType===`both`,l=n.barType===`minus`||n.barType===`both`,u=n.dir===`x`,d=e.lineWidth*1.5;for(let s=0;s<t.values.length;s++){let f=t.values[s];if(f==null)continue;let p=i?s:parseFloat(r[s]??`0`);if(isNaN(p))continue;let m=a(p),h=o(f),g=t=>{let r=m,i=h;u?r=a(p+t):i=o(f+t),e.beginPath(),e.moveTo(m,h),e.lineTo(r,i),e.stroke(),n.noEndCap||(e.save(),e.setLineDash([]),e.beginPath(),u?(e.moveTo(r,i-d),e.lineTo(r,i+d)):(e.moveTo(r-d,i),e.lineTo(r+d,i)),e.stroke(),e.restore())};if(c){let e=n.plus[s];e!=null&&g(e)}if(l){let e=n.minus[s];e!=null&&g(-e)}}e.restore()}function P(e,t,n,r,i,a,o,s){let l=t.dataLabelOverrides??[];if(l.length===0&&!t.seriesDataLabels)return;let u=t.seriesDataLabels;for(let d=0;d<t.values.length;d++){let f=t.values[d];if(f==null)continue;let p=r?d:parseFloat(n[d]??`0`);if(isNaN(p))continue;let m=l.find(e=>e.idx===d),h;if(m){if(m.text===``)continue;h=m.text}else if(u&&(u.showVal||u.showSerName||u.showCatName)){let e=[];if(u.showCatName&&!r&&e.push(n[d]??``),u.showSerName&&e.push(t.name),u.showVal&&e.push(c(f,u.formatCode??null)),h=e.filter(Boolean).join(` `),!h)continue}else continue;let g=m?.position??u?.position??`r`,_=m?.fontSizeHpt??u?.fontSizeHpt,v=_?_/100*s:Math.max(9,Math.min(11,o/25)),y=m?.fontColor??u?.fontColor,b=m?.fontBold??u?.fontBold??!1;F(e,i(p),a(f),h,g,v,y,b)}}function F(e,t,n,r,i,a,o,s){e.save(),e.font=`${s?`bold `:``}${a}px sans-serif`,e.fillStyle=o?`#${o}`:`#333`;let c=a*.6,l=t,u=n;switch(i){case`l`:e.textAlign=`right`,e.textBaseline=`middle`,l=t-c;break;case`r`:e.textAlign=`left`,e.textBaseline=`middle`,l=t+c;break;case`t`:e.textAlign=`center`,e.textBaseline=`bottom`,u=n-c;break;case`b`:e.textAlign=`center`,e.textBaseline=`top`,u=n+c;break;case`ctr`:e.textAlign=`center`,e.textBaseline=`middle`;break;default:e.textAlign=`left`,e.textBaseline=`middle`,l=t+c;break}let d=r.split(/\r?\n/),f=a*1.15,p=f*d.length,m=u;e.textBaseline===`middle`?m=u-(p-f)/2:e.textBaseline===`bottom`&&(m=u-(p-f));for(let t of d)e.fillText(t,l,m),m+=f;e.restore()}function I(e,t,n){return e<t?t:e>n?n:e}function L(e){if(!e)return[];switch(e){case`solid`:return[];case`dot`:case`sysDot`:return[1,2];case`dash`:case`sysDash`:return[4,2];case`lgDash`:return[8,3];case`dashDot`:case`sysDashDot`:return[4,2,1,2];case`lgDashDot`:return[8,3,1,3];case`dashDotDot`:case`sysDashDotDot`:case`lgDashDotDot`:return[4,2,1,2,1,2];default:return[]}}function R(e,t,n){let{x:r,y:a,w:o,h:s}=n,c=t.valAxisHidden?o*.01:o*.11,l=o*.01,u=s*.12,d=s*.14,f=r+c,p=a+u,m=o-c-l,h=s-u-d,g=t.series[0]?.values??[],_=t.categories,v=_.length;if(v===0)return;let y=new Set(t.subtotalIndices),b=0,x=[];for(let e=0;e<v;e++){let t=g[e]??0;if(e===0||y.has(e))x.push({start:0,end:t,isSub:!0,isPos:!0}),b=t;else{let e=t>=0?b:b+t,n=t>=0?b+t:b;x.push({start:e,end:n,isSub:!1,isPos:t>=0}),b+=t}}let S=x.map(e=>e.end),C=x.map(e=>e.start),w=Math.max(...S,...C),T=Math.min(...C,0),E=w-T;if(E<=0)return;let D=T<0?T-E*.05:0,O=(w-D)*1.1,k=D+O,A=i(O);e.save();let j=Math.round(s*.042);if(e.font=`${j}px sans-serif`,!t.valAxisHidden){e.strokeStyle=`#e8e8e8`,e.lineWidth=.7,e.fillStyle=`#666`,e.textAlign=`right`,e.textBaseline=`middle`;for(let t=Math.ceil(D/A)*A;t<=k;t+=A){let n=p+h*(1-(t-D)/O);e.beginPath(),e.moveTo(f,n),e.lineTo(f+m,n),e.stroke(),e.fillText(t.toLocaleString(),f-4,n)}}let M=!t.valAxisHidden&&!t.valAxisLineHidden,N=!t.catAxisHidden&&!t.catAxisLineHidden;(M||N)&&(e.strokeStyle=`#bbb`,e.lineWidth=1,e.beginPath(),M?(e.moveTo(f,p),e.lineTo(f,p+h),N&&e.lineTo(f+m,p+h)):N&&(e.moveTo(f,p+h),e.lineTo(f+m,p+h)),e.stroke());let P=m/v,F=P/(1+(t.barGapWidth??150)/100);x.forEach((n,r)=>{let i=f+P*r+(P-F)/2,a=p+h*(1-(n.end-D)/O),o=p+h*(1-(n.start-D)/O),c=Math.max(1,o-a);if(n.isSub?(e.fillStyle=`#196ECA`,e.fillRect(i,a,F,c)):(e.strokeStyle=n.isPos?`#5BA4E6`:`#E46970`,e.lineWidth=1.5,e.strokeRect(i+.75,a+.75,F-1.5,c-1.5)),r<v-1){let t=f+P*(r+1)+(P-F)/2,s=n.isPos?a:o;e.strokeStyle=`#ccc`,e.lineWidth=.8,e.setLineDash([3,3]),e.beginPath(),e.moveTo(i+F,s),e.lineTo(t,s),e.stroke(),e.setLineDash([])}let l=g[r]??0,u=l<0?`△ ${Math.abs(l).toLocaleString()}`:l.toLocaleString(),d=t.series[0]?.dataLabelColors?.[r]??null;e.fillStyle=d?`#${d}`:t.dataLabelFontColor?`#${t.dataLabelFontColor}`:`#595959`,e.font=`bold ${Math.round(s*.044)}px sans-serif`,e.textAlign=`center`,l<0?(e.textBaseline=`top`,e.fillText(u,i+F/2,o+3)):(e.textBaseline=`bottom`,e.fillText(u,i+F/2,a-3))}),e.textAlign=`center`,e.textBaseline=`top`,e.fillStyle=`#666`,e.font=`${Math.round(s*.038)}px sans-serif`;let I=p+h+4;for(let t=0;t<v;t++){let n=f+P*t+P/2;_[t].split(/\s+/).forEach((t,r)=>e.fillText(t,n,I+r*(j+2)))}e.restore()}function z(e,t,n,r=1.333){let{x:i,y:a,w:o,h:s}=n;if(t.chartBg&&(e.fillStyle=`#${t.chartBg}`,e.fillRect(i,a,o,s)),t.series.length===0){e.fillStyle=`#888`,e.font=`12px sans-serif`,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(`(no data)`,i+o/2,a+s/2);return}switch(t.chartType){case`clusteredBar`:case`clusteredBarH`:case`stackedBar`:case`stackedBarH`:case`stackedBarPct`:case`stackedBarHPct`:E(e,t,n,r);break;case`line`:case`stackedLine`:case`stackedLinePct`:D(e,t,n,r);break;case`area`:case`stackedArea`:case`stackedAreaPct`:O(e,t,n,r);break;case`pie`:k(e,t,n,!1,r);break;case`doughnut`:k(e,t,n,!0,r);break;case`radar`:A(e,t,n,r);break;case`scatter`:case`bubble`:j(e,t,n,r);break;case`waterfall`:R(e,t,n);break;default:e.fillStyle=`#888`,e.font=`11px sans-serif`,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(`Chart: ${t.chartType}`,i+o/2,a+s/2)}}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return z}});
@@ -288,6 +288,15 @@ declare interface ChartData {
288
288
  catAxisHidden?: boolean;
289
289
  /** `<c:valAx><c:delete val="1"/>` — hide the value axis (§21.2.2.40). */
290
290
  valAxisHidden?: boolean;
291
+ /** `<c:catAx><c:spPr><a:ln><a:noFill>` — line-only hide (labels stay). */
292
+ catAxisLineHidden?: boolean;
293
+ /** `<c:valAx><c:spPr><a:ln><a:noFill>` — line-only hide (labels stay). */
294
+ valAxisLineHidden?: boolean;
295
+ /** `<c:radarChart><c:radarStyle val>` — "standard" (line only, default),
296
+ * "marker" (line + markers), "filled" (closed polygon with area fill).
297
+ * Sample-1 "Biodiversity Index" uses "marker" — Excel renders no area
298
+ * fill, but our renderer was filling at 25 % opacity regardless. */
299
+ radarStyle?: string | null;
291
300
  /** `<c:valAx><c:numFmt@formatCode>` — number format for value-axis tick
292
301
  * labels (ECMA-376 §21.2.2.21). */
293
302
  valAxisFormatCode?: string | null;
@@ -387,6 +396,10 @@ declare interface ChartElement {
387
396
  showDataLabels: boolean;
388
397
  catAxisHidden: boolean;
389
398
  valAxisHidden: boolean;
399
+ /** `<c:catAx><c:spPr><a:ln><a:noFill>` — line-only hide; labels stay. */
400
+ catAxisLineHidden?: boolean;
401
+ /** `<c:valAx><c:spPr><a:ln><a:noFill>` — line-only hide; labels stay. */
402
+ valAxisLineHidden?: boolean;
390
403
  plotAreaBg: string | null;
391
404
  /** Outer chartSpace background (hex without '#'). null when noFill/absent. */
392
405
  chartBg: string | null;
@@ -431,6 +444,8 @@ declare interface ChartElement {
431
444
  /** `<c:scatterChart><c:scatterStyle val>` (ECMA-376 §21.2.2.42) — drives
432
445
  * whether scatter charts connect points with straight or smooth lines. */
433
446
  scatterStyle?: string | null;
447
+ /** `<c:radarChart><c:radarStyle val>` (ECMA-376 §21.2.3.10). */
448
+ radarStyle?: string | null;
434
449
  }
435
450
 
436
451
  declare interface ChartErrBars {
@@ -91,6 +91,10 @@ declare interface ChartElement {
91
91
  showDataLabels: boolean;
92
92
  catAxisHidden: boolean;
93
93
  valAxisHidden: boolean;
94
+ /** `<c:catAx><c:spPr><a:ln><a:noFill>` — line-only hide; labels stay. */
95
+ catAxisLineHidden?: boolean;
96
+ /** `<c:valAx><c:spPr><a:ln><a:noFill>` — line-only hide; labels stay. */
97
+ valAxisLineHidden?: boolean;
94
98
  plotAreaBg: string | null;
95
99
  /** Outer chartSpace background (hex without '#'). null when noFill/absent. */
96
100
  chartBg: string | null;
@@ -135,6 +139,8 @@ declare interface ChartElement {
135
139
  /** `<c:scatterChart><c:scatterStyle val>` (ECMA-376 §21.2.2.42) — drives
136
140
  * whether scatter charts connect points with straight or smooth lines. */
137
141
  scatterStyle?: string | null;
142
+ /** `<c:radarChart><c:radarStyle val>` (ECMA-376 §21.2.3.10). */
143
+ radarStyle?: string | null;
138
144
  }
139
145
 
140
146
  declare interface ChartErrBars {
@@ -234,6 +234,15 @@ declare interface ChartData {
234
234
  catAxisHidden?: boolean;
235
235
  /** `<c:valAx><c:delete val="1"/>` — hide the value axis (§21.2.2.40). */
236
236
  valAxisHidden?: boolean;
237
+ /** `<c:catAx><c:spPr><a:ln><a:noFill>` — line-only hide (labels stay). */
238
+ catAxisLineHidden?: boolean;
239
+ /** `<c:valAx><c:spPr><a:ln><a:noFill>` — line-only hide (labels stay). */
240
+ valAxisLineHidden?: boolean;
241
+ /** `<c:radarChart><c:radarStyle val>` — "standard" (line only, default),
242
+ * "marker" (line + markers), "filled" (closed polygon with area fill).
243
+ * Sample-1 "Biodiversity Index" uses "marker" — Excel renders no area
244
+ * fill, but our renderer was filling at 25 % opacity regardless. */
245
+ radarStyle?: string | null;
237
246
  /** `<c:valAx><c:numFmt@formatCode>` — number format for value-axis tick
238
247
  * labels (ECMA-376 §21.2.2.21). */
239
248
  valAxisFormatCode?: string | null;