@silurus/ooxml 0.25.0 → 0.26.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.
- package/README.md +3 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{xlsx-hfpAt0PA.cjs → xlsx-B6wdX3-M.cjs} +5 -5
- package/dist/{xlsx-C_hFLsOb.js → xlsx-R5CcrPHg.js} +270 -241
- package/dist/xlsx.cjs +1 -1
- package/dist/xlsx.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -524,8 +524,10 @@ pnpm storybook
|
|
|
524
524
|
# Type-check all packages
|
|
525
525
|
pnpm typecheck
|
|
526
526
|
|
|
527
|
-
# Run visual regression tests
|
|
527
|
+
# Run visual regression tests (local only — not run in CI)
|
|
528
528
|
pnpm vrt
|
|
529
|
+
# Adopt the current rendering as the new reference baseline
|
|
530
|
+
UPDATE_REFS=1 pnpm vrt
|
|
529
531
|
|
|
530
532
|
# Build the library
|
|
531
533
|
pnpm build
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./xlsx-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./xlsx-B6wdX3-M.cjs`),t=require(`./pptx-DMP47DvZ.cjs`),n=require(`./docx-DVe_bky9.cjs`);Object.defineProperty(exports,`docx`,{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(exports,`pptx`,{enumerable:!0,get:function(){return t.t}}),Object.defineProperty(exports,`xlsx`,{enumerable:!0,get:function(){return e.t}});
|
package/dist/index.mjs
CHANGED
|
@@ -2,10 +2,10 @@ const e=require(`./autoResize-C6N7p_Or.cjs`),t=require(`./renderer-Bve7huQq.cjs`
|
|
|
2
2
|
`))r.push(...ce(e,i,n));return r}function G(e){return e>=12288&&e<=40959||e>=63744&&e<=64255||e>=44032&&e<=55215||e>=65280&&e<=65519}function ce(e,t,n){let r=[],i=[],a=0;for(;a<t.length;){let e=t[a],n=e.codePointAt(0)??0;if(G(n))i.push(e),a+=n>65535?2:1;else if(e===` `){let e=a;for(;e<t.length&&t[e]===` `;)e++;i.push(t.slice(a,e)),a=e}else{let e=a;for(;e<t.length;){let n=t[e],r=n.codePointAt(0)??0;if(n===` `||G(r))break;e+=r>65535?2:1}i.push(t.slice(a,e)),a=e}}let o=``;for(let t of i){if(o===``){o=t;continue}let i=o+t;e.measureText(i).width<=n?o=i:(r.push(o),o=t.replace(/^ +/,``),o===``&&(o=t))}return r.push(o),r}function le(e,t,n,r,i){let a=[],o=[],s=0,c=0,l=()=>{o.length!==0&&(a.push({segments:o,maxFontSize:c}),o=[],s=0,c=0)},u=(t,n)=>{if(!t)return;e.font=k(n,r);let a=e.measureText(t).width;o.length>0&&s+a>i&&l(),o.push({text:t,font:n,width:a}),s+=a,n.size>c&&(c=n.size)},d=e=>e>=12288&&e<=40959||e>=63744&&e<=64255||e>=44032&&e<=55215||e>=65280&&e<=65519;for(let e of t){let t=A(n,e),r=[],i=0;for(;i<e.text.length;){let t=e.text[i],n=t.codePointAt(0)??0;if(n===10)r.push(`
|
|
3
3
|
`),i+=1;else if(d(n))r.push(t),i+=n>65535?2:1;else if(t===` `){let t=i;for(;t<e.text.length&&e.text[t]===` `;)t++;r.push(e.text.slice(i,t)),i=t}else{let t=i;for(;t<e.text.length;){let n=e.text[t],r=n.codePointAt(0)??0;if(n===` `||n===`
|
|
4
4
|
`||d(r))break;t+=r>65535?2:1}r.push(e.text.slice(i,t)),i=t}}for(let e of r)e===`
|
|
5
|
-
`?l():u(e,t)}return l(),a}function ue(e){let t=``;for(;e>0;){let n=(e-1)%26;t=String.fromCharCode(65+n)+t,e=Math.floor((e-1)/26)}return t}function K(e,t,n){for(let r of e)if(t>=r.top&&t<=r.bottom&&n>=r.left&&n<=r.right)return!0;return!1}function
|
|
6
|
-
`||e===`\r`){n++;continue}if(e===`(`){t.push({kind:`lparen`,text:e}),n++;continue}if(e===`)`){t.push({kind:`rparen`,text:e}),n++;continue}if(e===`,`){t.push({kind:`comma`,text:e}),n++;continue}if(e===`:`){t.push({kind:`colon`,text:e}),n++;continue}if(e===`"`){let e=n+1,i=``;for(;e<r.length;){if(r[e]===`"`&&r[e+1]===`"`){i+=`"`,e+=2;continue}if(r[e]===`"`)break;i+=r[e],e++}t.push({kind:`str`,text:i}),n=e+1;continue}if(e>=`0`&&e<=`9`){let e=n;for(;e<r.length&&(r[e]>=`0`&&r[e]<=`9`||r[e]===`.`);)e++;t.push({kind:`num`,text:r.slice(n,e)}),n=e;continue}if(Te.has(e)){(e===`<`||e===`>`)&&(r[n+1]===`=`||e===`<`&&r[n+1]===`>`)?(t.push({kind:`op`,text:r.slice(n,n+2)}),n+=2):(t.push({kind:`op`,text:e}),n++);continue}if(e===`$`||De(e)){let e=n;for(;e<r.length&&(r[e]===`$`||Oe(r[e]));)e++;let i=r.slice(n,e);n=e;let a=ke(i);if(a)t.push({kind:`ref`,text:i,ref:a});else{let e=i.toUpperCase();e===`TRUE`||e===`FALSE`?t.push({kind:`bool`,text:e}):t.push({kind:`name`,text:i})}continue}n++}return t}function De(e){return e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e===`_`}function Oe(e){return De(e)||e>=`0`&&e<=`9`||e===`.`}function ke(e){let t=0,n=!1,r=!1;e[t]===`$`&&(n=!0,t++);let i=t;for(;t<e.length&&e[t]>=`A`&&e[t].toUpperCase()<=`Z`&&!(!(e[t]>=`A`&&e[t]<=`Z`)&&!(e[t]>=`a`&&e[t]<=`z`));)t++;if(t===i)return null;let a=e.slice(i,t).toUpperCase();e[t]===`$`&&(r=!0,t++);let o=t;for(;t<e.length&&e[t]>=`0`&&e[t]<=`9`;)t++;if(t===o||t!==e.length)return null;let s=parseInt(e.slice(o,t),10),c=0;for(let e=0;e<a.length;e++)c=c*26+(a.charCodeAt(e)-64);return{colAbs:n,col:c,rowAbs:r,row:s}}function Ae(e,t){return Me({toks:Ee(e),pos:0},t)}function je(e){return e.toks[e.pos]}function Q(e){return e.toks[e.pos++]}function Me(e,t){return Ne(e,t)}function Ne(e,t){let n=Pe(e,t),r=je(e);if(r&&r.kind===`op`&&(r.text===`<`||r.text===`>`||r.text===`<=`||r.text===`>=`||r.text===`=`||r.text===`<>`)){Q(e);let i=Pe(e,t);return Fe(r.text,n,i)}return n}function Pe(e,t){let n=Ie(e,t);for(;;){let r=je(e);if(!r||r.kind!==`op`||r.text!==`&`)break;Q(e);let i=Ie(e,t);n=Z(n)+Z(i)}return n}function Fe(e,t,n){let r=typeof t==`string`&&isNaN(parseFloat(t))?null:X(t),i=typeof n==`string`&&isNaN(parseFloat(n))?null:X(n);if(r!==null&&i!==null)switch(e){case`<`:return r<i;case`>`:return r>i;case`<=`:return r<=i;case`>=`:return r>=i;case`=`:return r===i;case`<>`:return r!==i}let a=String(t??``),o=String(n??``);switch(e){case`<`:return a<o;case`>`:return a>o;case`<=`:return a<=o;case`>=`:return a>=o;case`=`:return a===o;case`<>`:return a!==o}return!1}function Ie(e,t){let n=Le(e,t);for(;;){let r=je(e);if(!r||r.kind!==`op`||r.text!==`+`&&r.text!==`-`)break;Q(e);let i=Le(e,t);n=r.text===`+`?X(n)+X(i):X(n)-X(i)}return n}function Le(e,t){let n=Re(e,t);for(;;){let r=je(e);if(!r||r.kind!==`op`||r.text!==`*`&&r.text!==`/`)break;Q(e);let i=Re(e,t);if(r.text===`*`)n=X(n)*X(i);else{let e=X(i);n=e===0?0:X(n)/e}}return n}function Re(e,t){let n=je(e);return n&&n.kind===`op`&&n.text===`-`?(Q(e),-X(Re(e,t))):n&&n.kind===`op`&&n.text===`+`?(Q(e),X(Re(e,t))):ze(e,t)}function ze(e,t){let n=Q(e);if(!n)return 0;if(n.kind===`num`)return parseFloat(n.text);if(n.kind===`str`)return n.text;if(n.kind===`bool`)return n.text===`TRUE`;if(n.kind===`lparen`){let n=Me(e,t),r=Q(e);if(!r||r.kind!==`rparen`)throw Error(`missing )`);return n}if(n.kind===`ref`){if(je(e)?.kind===`colon`){Q(e);let r=Q(e);if(r?.kind!==`ref`||!r.ref)throw Error(`range: expected ref after :`);return He(n.ref,r.ref,t)}return Ve(n.ref,t)}if(n.kind===`name`){if(je(e)?.kind===`lparen`){Q(e);let r=[];if(je(e)?.kind!==`rparen`)for(r.push(Me(e,t));je(e)?.kind===`comma`;)Q(e),r.push(Me(e,t));let i=Q(e);if(!i||i.kind!==`rparen`)throw Error(`missing )`);return We(n.text,r,t)}let r=t.definedNames.get(n.text);return r&&t.depth<Se?Ae(Be(r.formula),{...t,anchorRow:1,anchorCol:1,depth:t.depth+1}):0}return 0}function Be(e){let t=e.match(/^(?:'[^']*'|[A-Za-z_][A-Za-z0-9_.]*)!(.*)$/);return t?t[1]:e}function Ve(e,t){let n=e.colAbs?e.col:e.col+(t.col-t.anchorCol),r=e.rowAbs?e.row:e.row+(t.row-t.anchorRow);return Ue(t.cellIndex.get(`${r}:${n}`))}function He(e,t,n){let r=e.colAbs?e.col:e.col+(n.col-n.anchorCol),i=e.rowAbs?e.row:e.row+(n.row-n.anchorRow),a=t.colAbs?t.col:t.col+(n.col-n.anchorCol),o=t.rowAbs?t.row:t.row+(n.row-n.anchorRow),s=Math.min(r,a),c=Math.max(r,a),l=Math.min(i,o),u=Math.max(i,o),d=[],f=4096;for(let e=l;e<=u&&d.length<f;e++)for(let t=s;t<=c&&d.length<f;t++)d.push(Ue(n.cellIndex.get(`${e}:${t}`)));return d}function Ue(e){if(!e)return null;switch(e.value.type){case`number`:return e.value.number;case`bool`:return e.value.bool;case`text`:return e.value.text;case`error`:return null;default:return null}}function We(e,t,n){switch(e.toUpperCase()){case`AND`:return t.flatMap(J).every(e=>we(e));case`OR`:return t.flatMap(J).some(e=>we(e));case`NOT`:return!we(t[0]);case`IF`:return we(t[0])?t[1]??!0:t[2]??!1;case`IFERROR`:return t[0]==null?t[1]??0:t[0];case`IFS`:for(let e=0;e+1<t.length;e+=2)if(we(t[e]))return t[e+1];return null;case`TRUE`:return!0;case`FALSE`:return!1;case`ISBLANK`:{let e=Y(t[0]);return e==null||e===``}case`ISNUMBER`:return typeof Y(t[0])==`number`;case`ISTEXT`:return typeof Y(t[0])==`string`;case`ISNONTEXT`:return typeof Y(t[0])!=`string`;case`ISERROR`:case`ISERR`:case`ISNA`:return Y(t[0])==null;case`ISLOGICAL`:return typeof Y(t[0])==`boolean`;case`ROUNDDOWN`:{let e=X(t[0]),n=10**X(t[1]);return(e>=0?Math.floor(e*n):Math.ceil(e*n))/n}case`ROUNDUP`:{let e=X(t[0]),n=10**X(t[1]);return(e>=0?Math.ceil(e*n):Math.floor(e*n))/n}case`ROUND`:{let e=X(t[0]),n=10**X(t[1]);return Math.round(e*n)/n}case`INT`:return Math.floor(X(t[0]));case`TRUNC`:{let e=X(t[0]),n=10**X(t[1]??0);return(e>=0?Math.floor(e*n):Math.ceil(e*n))/n}case`CEILING`:{let e=X(t[0]),n=X(t[1]??1);return n===0?0:Math.ceil(e/n)*n}case`FLOOR`:{let e=X(t[0]),n=X(t[1]??1);return n===0?0:Math.floor(e/n)*n}case`MOD`:{let e=X(t[0]),n=X(t[1]);return n===0?null:e-Math.floor(e/n)*n}case`POWER`:return X(t[0])**+X(t[1]);case`SQRT`:{let e=X(t[0]);return e<0?null:Math.sqrt(e)}case`ABS`:return Math.abs(X(t[0]));case`SIGN`:{let e=X(t[0]);return e>0?1:e<0?-1:0}case`EXP`:return Math.exp(X(t[0]));case`LN`:{let e=X(t[0]);return e<=0?null:Math.log(e)}case`LOG10`:{let e=X(t[0]);return e<=0?null:Math.log10(e)}case`MIN`:{let e=t.flatMap(J).filter(e=>typeof e==`number`);return e.length?Math.min(...e):0}case`MAX`:{let e=t.flatMap(J).filter(e=>typeof e==`number`);return e.length?Math.max(...e):0}case`SUM`:return t.flatMap(J).reduce((e,t)=>e+(typeof t==`number`?t:0),0);case`AVERAGE`:{let e=t.flatMap(J).filter(e=>typeof e==`number`);return e.length?e.reduce((e,t)=>e+t,0)/e.length:null}case`COUNT`:return t.flatMap(J).filter(e=>typeof e==`number`).length;case`COUNTA`:return t.flatMap(J).filter(e=>e!=null&&e!==``).length;case`COUNTBLANK`:return t.flatMap(J).filter(e=>e==null||e===``).length;case`COUNTIF`:return Ge(J(t[0]),t[1]);case`SUMIF`:return Ke(J(t[0]),t[1],t[2]===void 0?null:J(t[2]));case`AVERAGEIF`:{let e=J(t[0]),n=Ke(e,t[1],t[2]===void 0?null:J(t[2])),r=Ge(e,t[1]);return r===0?null:X(n)/r}case`LEN`:return Z(t[0]).length;case`LEFT`:return Z(t[0]).slice(0,Math.max(0,X(t[1]??1)));case`RIGHT`:{let e=Z(t[0]),n=Math.max(0,X(t[1]??1));return n>=e.length?e:e.slice(e.length-n)}case`MID`:{let e=Z(t[0]),n=Math.max(1,X(t[1]))-1,r=Math.max(0,X(t[2]));return e.slice(n,n+r)}case`UPPER`:return Z(t[0]).toUpperCase();case`LOWER`:return Z(t[0]).toLowerCase();case`TRIM`:return Z(t[0]).replace(/\s+/g,` `).trim();case`EXACT`:return Z(t[0])===Z(t[1]);case`FIND`:{let e=Z(t[0]),n=Z(t[1]),r=Math.max(1,X(t[2]??1))-1,i=n.indexOf(e,r);return i<0?null:i+1}case`SEARCH`:{let e=Z(t[0]).toLowerCase(),n=Z(t[1]).toLowerCase(),r=Math.max(1,X(t[2]??1))-1,i=n.indexOf(e,r);return i<0?null:i+1}case`CONCATENATE`:case`CONCAT`:return t.flatMap(J).map(e=>e==null?``:typeof e==`boolean`?e?`TRUE`:`FALSE`:String(e)).join(``);case`T`:{let e=Y(t[0]);return typeof e==`string`?e:``}case`N`:{let e=Y(t[0]);return typeof e==`number`?e:typeof e==`boolean`?+!!e:0}case`VALUE`:return X(t[0]);case`ROW`:return n.row;case`COLUMN`:return n.col;case`TODAY`:return Xe();case`NOW`:return Ze();case`DATE`:return Qe(X(t[0]),X(t[1]),X(t[2]));case`YEAR`:return et(X(t[0])).y;case`MONTH`:return et(X(t[0])).m;case`DAY`:return et(X(t[0])).d;case`WEEKDAY`:{let e=$e(X(t[0])).getUTCDay(),n=X(t[1]??1);return n===2?e===0?7:e:n===3?e===0?6:e-1:e+1}default:return 0}}function Ge(e,t){let n=qe(t),r=0;for(let t of e)n(t)&&r++;return r}function Ke(e,t,n){let r=qe(t),i=n??e,a=0;for(let t=0;t<e.length;t++)if(r(e[t])){let e=i[t];typeof e==`number`&&(a+=e)}return a}function qe(e){let t=Y(e);if(typeof t!=`string`){let e=typeof t==`number`?t:null;return n=>e!==null&&typeof n==`number`?n===e:n===t}let n=t.match(/^(<=|>=|<>|<|>|=)(.*)$/),r=n?n[1]:`=`,i=n?n[2]:t,a=i.trim()===``?NaN:parseFloat(i),o=!isNaN(a)&&/^-?\d+(\.\d+)?$/.test(i.trim());return e=>{if(o&&typeof e==`number`)switch(r){case`<`:return e<a;case`>`:return e>a;case`<=`:return e<=a;case`>=`:return e>=a;case`<>`:return e!==a;default:return e===a}let t=e==null?``:typeof e==`boolean`?e?`TRUE`:`FALSE`:String(e);switch(r){case`<>`:return t!==i;case`<`:return t<i;case`>`:return t>i;case`<=`:return t<=i;case`>=`:return t>=i;default:return t===i}}}var Je=25569,Ye=864e5;function Xe(){let e=new Date,t=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate());return Math.floor(t/Ye)+Je}function Ze(){return Date.now()/Ye+Je}function Qe(e,t,n){let r=Date.UTC(e,t-1,n);return Math.floor(r/Ye)+Je}function $e(e){let t=(Math.floor(e)-Je)*Ye;return new Date(t)}function et(e){let t=$e(e);return{y:t.getUTCFullYear(),m:t.getUTCMonth()+1,d:t.getUTCDate()}}var tt=[`#FF0000`,`#FFFF00`,`#00B050`],nt=[`#FF0000`,`#FF6600`,`#FFFF00`,`#00B050`],rt=[`#FF0000`,`#FF6600`,`#FFFF00`,`#92D050`,`#00B050`];function it(e,t,n,r,i,a){if(t===`NoIcons`)return;let o=t||`3TrafficLights1`,s=parseInt(o[0])||3,c=s===5?rt:s===4?nt:tt,l=c[Math.max(0,Math.min(n,c.length-1))];if(e.save(),e.fillStyle=l,o.includes(`Arrow`)){let t=a/2;e.beginPath(),n===s-1?(e.moveTo(r+t,i),e.lineTo(r+a,i+a),e.lineTo(r,i+a)):n===0?(e.moveTo(r,i),e.lineTo(r+a,i),e.lineTo(r+t,i+a)):(e.moveTo(r,i+a*.3),e.lineTo(r+a,i+t),e.lineTo(r,i+a*.7)),e.closePath(),e.fill()}else o.includes(`Flag`)?(e.beginPath(),e.moveTo(r,i),e.lineTo(r+a,i),e.lineTo(r,i+a),e.closePath(),e.fill()):(e.beginPath(),e.arc(r+a/2,i+a/2,a/2,0,Math.PI*2),e.fill());e.restore()}function at(e,t,n,r,i){let a=Math.max(6,Math.round(Math.min(r,i)*.45)),o=t+r-a-1,s=n+i-a-1;e.save(),e.fillStyle=`#D0D0D0`,e.fillRect(o,s,a,a),e.fillStyle=`#444444`;let c=a*.55,l=o+(a-c)/2,u=s+(a-c*.5)/2;e.beginPath(),e.moveTo(l,u),e.lineTo(l+c,u),e.lineTo(l+c/2,u+c*.5),e.closePath(),e.fill(),e.restore()}function ot(e){let t=new Map;for(let n of e.tables??[]){if(!n.styleName)continue;let{top:e,bottom:r,left:i,right:a}=n.range,o=n.accentColor||`#808080`,s=Math.max(0,n.headerRowCount??1),c=Math.max(0,n.totalsRowCount??0),l=e+s-1,u=r-c+1;for(let d=e;d<=r;d++){let f=s>0&&d<=l,p=c>0&&d>=u,m=!f&&!p?d-l-1:-1;for(let s=i;s<=a;s++)t.set(`${d}:${s}`,{accent:o,isHeader:f,isTotals:p,isBanded:n.showRowStripes&&m>=0&&m%2==1,isFirstCol:n.showFirstColumn&&s===i,isLastCol:n.showLastColumn&&s===a,isTopEdge:d===e,isBottomEdge:d===r,wholeTableDxf:n.wholeTableDxf,headerRowDxf:n.headerRowDxf})}}return t}function st(e){let t=new Map;for(let n of e.sparklineGroups??[]){let e=1/0,r=-1/0;if(n.minAxisType===`group`||n.maxAxisType===`group`){for(let t of n.sparklines)for(let n of t.values)typeof n==`number`&&(n<e&&(e=n),n>r&&(r=n));(!isFinite(e)||!isFinite(r))&&(e=0,r=1)}for(let i of n.sparklines){let a=i.values.filter(e=>typeof e==`number`),o=a.length?Math.min(...a):0,s=a.length?Math.max(...a):1,c=n.minAxisType===`custom`&&typeof n.manualMin==`number`?n.manualMin:n.minAxisType===`group`?e:o,l=n.maxAxisType===`custom`&&typeof n.manualMax==`number`?n.manualMax:n.maxAxisType===`group`?r:s;t.set(`${i.row}:${i.col}`,{kind:n.kind,values:i.values,min:c,max:l,displayEmptyCellsAs:n.displayEmptyCellsAs===`zero`||n.displayEmptyCellsAs===`span`?n.displayEmptyCellsAs:`gap`,displayXAxis:n.displayXAxis,lineWeight:n.lineWeight,markers:n.markers,high:n.high,low:n.low,first:n.first,last:n.last,negative:n.negative,colorSeries:n.colorSeries,colorNegative:n.colorNegative,colorAxis:n.colorAxis,colorMarkers:n.colorMarkers,colorFirst:n.colorFirst,colorLast:n.colorLast,colorHigh:n.colorHigh,colorLow:n.colorLow})}}return t}function ct(e){let t=e.replace(`#`,``);if(t.length<6)return`#F2F2F2`;let n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16),a=e=>Math.round(e*.2+255*.8),o=e=>e.toString(16).padStart(2,`0`).toUpperCase();return`#${o(a(n))}${o(a(r))}${o(a(i))}`}function lt(e,t,r,i,a,o,s,c,l,u,d,f,m,h){if(m<=0||h<=0)return;let{styles:g,cellMap:_,mergeAnchorMap:C,mergeSkipSet:E,cfContext:te,cs:re,dpr:j}=t,ie=a.length,M=o.length,ae=[],N=-s;for(let e=0;e<ie;e++)ae.push(N),N+=a[e];let P=[],F=-c;for(let e=0;e<M;e++)P.push(F),F+=o[e];e.save(),e.beginPath(),e.rect(d,f,m,h),e.clip();let I=[];for(let n of t.worksheet.mergeCells??[]){let a=n.top,o=n.left;if(a>=r&&a<r+M&&o>=i&&o<i+ie||n.bottom<r||n.top>=r+M||n.right<i||n.left>=i+ie)continue;let d=t.mergeAnchorMap.get(`${a}:${o}`);if(!d)continue;let f;if(o>=i)f=l+ae[o-i];else{let e=0;for(let n=o;n<i;n++)e+=Math.round(v(t.worksheet.colWidths[n]??t.worksheet.defaultColWidth,t.mdw)*re);f=l-s-e}let m;if(a>=r)m=u+P[a-r];else{let e=0;for(let n=a;n<r;n++)e+=Math.round(y(t.worksheet.rowHeights[n]??t.worksheet.defaultRowHeight)*re);m=u-c-e}let h=d.totalW,_=d.totalH,S=`${a}:${o}`,C=t.cellMap.get(S),{font:w,fill:T,border:E,xf:D}=ee(g,C?.styleIndex??0),O=xe(C,a,o,te,g.dxfs??[]),A=O.fill??T;if(A.patternType!==`none`&&A.patternType!==``&&A.fgColor&&(e.fillStyle=b(A.fgColor),e.fillRect(f,m,h,_)),O.dataBar&&O.dataBar.ratio>0){let t=Math.max(0,(h-4)*O.dataBar.ratio);x(e,O.dataBar.color,f+2,m+2,t,_-4,O.dataBar.gradient)}if(xt(e,bt(yt(E,a,o,d.right,d.bottom,t.cellMap,g),O.border),f,m,h,_),!C)continue;let j=ne(C,g,O.numFmt);if(!j||j===`0`&&t.worksheet.showZeros===!1)continue;let N=w.bold||!!O.fontBold,F=w.italic||!!O.fontItalic,I=w.underline||!!O.fontUnderline,L=w.strike||!!O.fontStrike;e.font=k(N!==w.bold||F!==w.italic||I!==w.underline||L!==w.strike?{...w,bold:N,italic:F,underline:I,strike:L}:w,re);let R=t.hyperlinkMap.get(S)?`#0563C1`:O.fontColor??w.color;e.fillStyle=R?b(R):`#000000`;let z=C.value.type===`number`,oe=D.alignH??(z?`right`:`left`),B=D.alignV??`bottom`,V=D.indent?Math.round(D.indent*w.size*p*.5):0,H=3+(oe===`left`||!D.alignH?V:0);e.save(),e.beginPath(),e.rect(f,m,h,_),e.clip();let U;oe===`right`?(U=f+h-3,e.textAlign=`right`):oe===`center`?(U=f+h/2,e.textAlign=`center`):(U=f+H,e.textAlign=`left`);let W;B===`top`?(e.textBaseline=`top`,W=m+2):B===`center`?(e.textBaseline=`middle`,W=m+_/2):(e.textBaseline=`bottom`,W=m+_-2),e.fillText(j,U,W),e.restore()}for(let s=0;s<M;s++){let c=r+s,v=u+P[s],y=o[s];if(v+y<=f||v>=f+h)continue;let M=new Set,N=new Set,F=-1,L=e=>{if(F>=0&&e-F>=2){for(let t=F;t<e-1;t++)M.add(t);for(let t=F+1;t<e;t++)N.add(t)}F=-1};for(let e=0;e<=ie;e++){let t=!1,n=!1;if(e<ie){let r=`${c}:${i+e}`;if(!E.has(r)&&!C.has(r)){let e=_.get(r);t=ee(g,e?.styleIndex??0).xf.alignH===`centerContinuous`,n=!!(e&&e.value&&e.value.type!==`empty`)}}t?n&&F>=0&&e>F?(L(e),F=e):F<0&&(F=e):L(e)}for(let r=0;r<ie;r++){let o=i+r,u=l+ae[r],f=a[r];if(u+f<=d||u>=d+m)continue;let h=`${c}:${o}`;if(E.has(h))continue;let P=C.get(h),F=P?P.totalW:f,L=P?P.totalH:y,R=_.get(h),{font:z,fill:oe,border:B,xf:V}=ee(g,R?.styleIndex??0),H=xe(R,c,o,te,g.dxfs??[]),U=H.fill??oe,W=t.tableStyleMap.get(h),G=W?.wholeTableDxf==null?void 0:(g.dxfs??[])[W.wholeTableDxf],ce=W?.headerRowDxf==null?void 0:(g.dxfs??[])[W.headerRowDxf];if(U.gradient&&U.gradient.stops.length>0)e.fillStyle=T(e,U.gradient,u,v,F,L),e.fillRect(u,v,F,L);else if(U.patternType&&U.patternType!==`none`&&U.fgColor){let t=U.patternType,n=U.bgColor??`FFFFFF`,r=w(e,t,U.fgColor,n);if(r)e.fillStyle=r;else{let r=S(t);e.fillStyle=r>=1?b(U.fgColor):O(U.fgColor,n,r)}e.fillRect(u,v,F,L)}else W&&W.isHeader&&ce?.fill?.fgColor?(e.fillStyle=b(ce.fill.fgColor),e.fillRect(u,v,F,L)):W&&!W.isHeader&&!W.isTotals&&G?.fill?.fgColor?(e.fillStyle=b(G.fill.fgColor),e.fillRect(u,v,F,L)):W&&W.isBanded&&(e.fillStyle=ct(W.accent),e.fillRect(u,v,F,L));if(t.commentCells.has(h)&&D(e,u,v,F,L),H.dataBar&&H.dataBar.ratio>0){let t=Math.max(0,(F-4)*H.dataBar.ratio);x(e,H.dataBar.color,u+2,v+2,t,L-4,H.dataBar.gradient)}let ue=t.sparklineMap.get(h);if(ue&&n(e,{x:u,y:v,w:F,h:L},ue),t.worksheet.showGridlines!==!1){let t=.5/j;e.strokeStyle=`#d0d0d0`,e.lineWidth=.5,e.beginPath(),M.has(r)||(e.moveTo(u+F+t,v),e.lineTo(u+F+t,v+L)),e.moveTo(u,v+L+t),e.lineTo(u+F,v+L+t),s===0&&(e.moveTo(u,v+t),e.lineTo(u+F,v+t)),r===0&&(e.moveTo(u+t,v),e.lineTo(u+t,v+L)),e.stroke()}let K=bt(P?yt(B,c,o,P.right,P.bottom,_,g):B,H.border);if((M.has(r)||N.has(r))&&(K={...K,left:N.has(r)?null:K.left,right:M.has(r)?null:K.right}),!K.top?.style){let e=_.get(`${c-1}:${o}`),t=e?ee(g,e.styleIndex).border.bottom:null;t?.style&&(K={...K,top:t})}if(!K.left?.style&&!N.has(r)){let e=_.get(`${c}:${o-1}`),t=e?ee(g,e.styleIndex).border.right:null;t?.style&&(K={...K,left:t})}if(xt(e,K,u,v,F,L),W){let t=G?.border?.horizontal,n=G?.border?.vertical,r=G?.border?.top,i=G?.border?.bottom,a=G?.border?.left,s=G?.border?.right,c=ce?.border?.bottom,l=ce?.border?.top;if(t||n||r||i||a||s||c||l){let n={left:null,right:null,top:null,bottom:null};W.isTopEdge?n.top=r??null:t&&(n.top=t),W.isHeader&&c?n.bottom=c:W.isBottomEdge?n.bottom=i??null:t&&(n.bottom=t),(W.isFirstCol||o===0)&&(n.left=a??null),W.isLastCol&&(n.right=s??null),xt(e,n,u,v,F,L)}else{let t=.5/j;e.strokeStyle=W.accent,e.lineWidth=W.isHeader?1.5:1,e.beginPath(),e.moveTo(u,v+L-t),e.lineTo(u+F,v+L-t),W.isTopEdge&&(e.moveTo(u,v+t),e.lineTo(u+F,v+t)),e.stroke()}}if(t.autoFilterCells.has(h)&&at(e,u,v,f,L),!R)continue;let q=ne(R,g,H.numFmt);!q||q===`0`&&t.worksheet.showZeros===!1||I.push(()=>{let n=!!(W&&(W.isHeader||W.isTotals)),s=z.bold||!!H.fontBold||n,l=z.italic||!!H.fontItalic,d=z.underline||!!H.fontUnderline,f=z.strike||!!H.fontStrike,m=s!==z.bold||l!==z.italic||d!==z.underline||f!==z.strike?{...z,bold:s,italic:l,underline:d,strike:f}:z;e.font=k(m,re);let y=t.hyperlinkMap.get(h),x=W?.isHeader&&ce?.font?.color?ce.font.color:W&&!W.isHeader&&!W.isTotals&&G?.font?.color?G.font.color:null,S=y?`#0563C1`:H.fontColor??x??z.color;e.fillStyle=S?b(S):`#000000`;let w=R.value.type===`number`,T=V.alignH??(w?`right`:`left`),D=V.alignV??`bottom`,O=V.indent?Math.round(V.indent*z.size*p*.5):0,te=H.iconSet?Math.max(8,Math.round(Math.min(F,L)*.55)):0,ne=te>0?te+4:0,j=3+(T===`left`||!V.alignH?O:0)+ne,M=F,ae=u,N=r;if(T===`centerContinuous`&&!P)for(let e=r+1;e<ie;e++){let t=`${c}:${i+e}`;if(E.has(t)||C.has(t))break;let n=_.get(t);if(n&&n.value.type!==`empty`||ee(g,n?.styleIndex??0).xf.alignH!==`centerContinuous`)break;M+=a[e],N=e}let I=T===`centerContinuous`?ae:u,oe=T===`centerContinuous`?M:F,B=q.includes(`
|
|
5
|
+
`?l():u(e,t)}return l(),a}function ue(e){let t=``;for(;e>0;){let n=(e-1)%26;t=String.fromCharCode(65+n)+t,e=Math.floor((e-1)/26)}return t}function K(e,t,n){for(let r of e)if(t>=r.top&&t<=r.bottom&&n>=r.left&&n<=r.right)return!0;return!1}function de(e){return e&&e.value.type===`number`?e.value.number:null}function fe(e){return e&&e.value.type===`text`?e.value.text:null}function pe(e,t){let n=[];for(let r of e.rows)for(let e of r.cells)e.value.type===`number`&&K(t,e.row,e.col)&&n.push(e.value.number);return n}function me(e,t){let n=t.length?Math.min(...t):0,r=t.length?Math.max(...t):0,i=e.value==null?NaN:parseFloat(e.value);switch(e.kind){case`min`:return n;case`max`:return r;case`num`:return isNaN(i)?0:i;case`percent`:{let e=isNaN(i)?50:i;return n+(r-n)*(e/100)}case`percentile`:{if(!t.length)return 0;let e=[...t].sort((e,t)=>e-t),n=(isNaN(i)?50:i)/100;return e[Math.max(0,Math.min(e.length-1,Math.round(n*(e.length-1))))]}default:return isNaN(i)?0:i}}function q(e){let t=[],n=new Map;for(let t of e.rows)for(let e of t.cells)n.set(`${e.row}:${e.col}`,e);let r=new Map;for(let t of e.definedNames??[])r.set(t.name,t);for(let n of e.conditionalFormats??[]){let r=pe(e,n.sqref);for(let e of n.rules){let i={rule:e,sqref:n.sqref};if(e.type===`colorScale`)i.scaleStops=e.stops.map(e=>me(e,r));else if(e.type===`dataBar`)i.barMin=me(e.min,r),i.barMax=me(e.max,r);else if(e.type===`top10`){let t=[...r].sort((e,t)=>e-t),n=t.length;if(n>0){let r=Math.min(e.rank,n);if(e.percent){let a=e.top?1-r/100:r/100;i.top10Threshold=t[Math.max(0,Math.min(n-1,Math.round(a*(n-1))))]}else i.top10Threshold=e.top?t[Math.max(0,n-r)]:t[Math.min(n-1,r-1)];i.top10IsTop=e.top}}else e.type===`aboveAverage`?r.length>0&&(i.avgValue=r.reduce((e,t)=>e+t,0)/r.length,i.avgIsAbove=e.aboveAverage):e.type===`iconSet`&&(i.iconThresholds=e.cfvos.map(e=>me(e,r)));t.push(i)}}return t.sort((e,t)=>(e.rule.priority??0)-(t.rule.priority??0)),{compiled:t,worksheet:e,cellIndex:n,definedNames:r}}function he(e,t,n){switch(t){case`greaterThan`:return e>(n[0]??0);case`greaterThanOrEqual`:return e>=(n[0]??0);case`lessThan`:return e<(n[0]??0);case`lessThanOrEqual`:return e<=(n[0]??0);case`equal`:return e===(n[0]??0);case`notEqual`:return e!==(n[0]??0);case`between`:return e>=(n[0]??0)&&e<=(n[1]??0);case`notBetween`:return e<(n[0]??0)||e>(n[1]??0);default:return!1}}function ge(e){let t=e.trim();if(t.length>=2&&t.startsWith(`"`)&&t.endsWith(`"`))return{text:t.slice(1,-1).replace(/""/g,`"`)};let n=parseFloat(t);return isNaN(n)?{text:t}:{num:n}}function _e(e,t,n){let r=n[0]??``,i=n[1]??``,a=e=>e.toLowerCase();switch(t){case`equal`:return a(e)===a(r);case`notEqual`:return a(e)!==a(r);case`containsText`:return a(e).includes(a(r));case`notContains`:return!a(e).includes(a(r));case`beginsWith`:return a(e).startsWith(a(r));case`endsWith`:return a(e).endsWith(a(r));case`between`:return a(e)>=a(r)&&a(e)<=a(i);case`notBetween`:return a(e)<a(r)||a(e)>a(i);default:return!1}}function ve(e,t,n){let r=e.replace(`#`,``),i=t.replace(`#`,``),a=parseInt(r.slice(0,2),16),o=parseInt(r.slice(2,4),16),s=parseInt(r.slice(4,6),16),c=parseInt(i.slice(0,2),16),l=parseInt(i.slice(2,4),16),u=parseInt(i.slice(4,6),16),d=Math.round(a+(c-a)*n),f=Math.round(o+(l-o)*n),p=Math.round(s+(u-s)*n);return`#${d.toString(16).padStart(2,`0`).toUpperCase()}${f.toString(16).padStart(2,`0`).toUpperCase()}${p.toString(16).padStart(2,`0`).toUpperCase()}`}function ye(e,t,n){if(!t.length)return`#FFFFFF`;if(e<=n[0])return t[0].color;if(e>=n[n.length-1])return t[t.length-1].color;for(let r=1;r<n.length;r++)if(e<=n[r]){let i=n[r-1],a=n[r],o=a===i?0:(e-i)/(a-i);return ve(t[r-1].color,t[r].color,o)}return t[t.length-1].color}function be(e,t){if(t&&(t.fill&&!e.fill&&(e.fill=t.fill),t.font?.color&&e.fontColor==null&&(e.fontColor=t.font.color),t.font?.bold&&e.fontBold==null&&(e.fontBold=!0),t.font?.italic&&e.fontItalic==null&&(e.fontItalic=!0),t.font?.underline&&e.fontUnderline==null&&(e.fontUnderline=!0),t.font?.strike&&e.fontStrike==null&&(e.fontStrike=!0),t.numFmt&&e.numFmt==null&&(e.numFmt={numFmtId:t.numFmt.numFmtId,formatCode:t.numFmt.formatCode||null}),t.border)){let n=e.border??{};e.border={left:n.left??t.border.left,right:n.right??t.border.right,top:n.top??t.border.top,bottom:n.bottom??t.border.bottom,diagonalUp:n.diagonalUp??t.border.diagonalUp,diagonalDown:n.diagonalDown??t.border.diagonalDown}}}function xe(e,t,n,r,i){let a={};if(!r.compiled.length)return a;for(let o of r.compiled){if(!K(o.sqref,t,n))continue;let s=o.rule,c=de(e);if(s.type===`expression`){let e=o.sqref[0];if(!e)continue;if(Ce(s.formula,{row:t,col:n,anchorRow:e.top,anchorCol:e.left,cellIndex:r.cellIndex,definedNames:r.definedNames,depth:0})&&(be(a,s.dxfId==null?null:i[s.dxfId]),s.stopIfTrue))break;continue}if(s.type===`cellIs`){let t=s.formulas.map(ge),n=fe(e),r=!1;c!=null&&t.every(e=>e.num!=null)?r=he(c,s.operator,t.map(e=>e.num)):n!=null&&t.every(e=>e.text!=null)&&(r=_e(n,s.operator,t.map(e=>e.text))),r&&be(a,s.dxfId==null?null:i[s.dxfId])}else if(s.type===`top10`){if(c==null||o.top10Threshold==null)continue;(o.top10IsTop?c>=o.top10Threshold:c<=o.top10Threshold)&&be(a,s.dxfId==null?null:i[s.dxfId])}else if(s.type===`aboveAverage`){if(c==null||o.avgValue==null)continue;(o.avgIsAbove?c>o.avgValue:c<o.avgValue)&&be(a,s.dxfId==null?null:i[s.dxfId])}else if(s.type===`iconSet`){if(c==null||!o.iconThresholds?.length)continue;let e=o.iconThresholds,t=e.length,n=0;for(let r=1;r<t;r++)c>=e[r]&&(n=r);if(s.reverse&&(n=t-1-n),s.customIcons&&s.customIcons[n]){let e=s.customIcons[n];e.iconSet!==`NoIcons`&&(a.iconSet={name:e.iconSet,index:e.iconId})}else a.iconSet={name:s.iconSet,index:n}}else if(s.type===`colorScale`){if(c==null||!o.scaleStops||a.fill)continue;let e=ye(c,s.stops,o.scaleStops);a.fill={patternType:`solid`,fgColor:e,bgColor:e}}else if(s.type===`dataBar`){if(c==null||o.barMin==null||o.barMax==null||a.dataBar)continue;let e=o.barMax-o.barMin,t=e===0?0:Math.max(0,Math.min(1,(c-o.barMin)/e));a.dataBar={color:s.color,ratio:t,gradient:s.gradient}}}return a}function J(e){return Array.isArray(e)?e:[e]}function Y(e){return Array.isArray(e)?e[0]??0:e}var Se=8;function Ce(e,t){try{return we(Ae(e,t))}catch{return!1}}function we(e){let t=Y(e);return typeof t==`boolean`?t:typeof t==`number`?t!==0:typeof t==`string`?t.length>0&&t.toUpperCase()!==`FALSE`:!1}function X(e){let t=Y(e);if(typeof t==`number`)return t;if(typeof t==`boolean`)return+!!t;if(t==null)return 0;let n=parseFloat(String(t));return isNaN(n)?0:n}function Z(e){let t=Y(e);return t==null?``:typeof t==`boolean`?t?`TRUE`:`FALSE`:String(t)}var Te=new Set([`<`,`>`,`=`,`+`,`-`,`*`,`/`,`&`,`^`,`%`]);function Ee(e){let t=[],n=0,r=e;for(;n<r.length;){let e=r[n];if(e===` `||e===` `||e===`
|
|
6
|
+
`||e===`\r`){n++;continue}if(e===`(`){t.push({kind:`lparen`,text:e}),n++;continue}if(e===`)`){t.push({kind:`rparen`,text:e}),n++;continue}if(e===`,`){t.push({kind:`comma`,text:e}),n++;continue}if(e===`:`){t.push({kind:`colon`,text:e}),n++;continue}if(e===`"`){let e=n+1,i=``;for(;e<r.length;){if(r[e]===`"`&&r[e+1]===`"`){i+=`"`,e+=2;continue}if(r[e]===`"`)break;i+=r[e],e++}t.push({kind:`str`,text:i}),n=e+1;continue}if(e>=`0`&&e<=`9`){let e=n;for(;e<r.length&&(r[e]>=`0`&&r[e]<=`9`||r[e]===`.`);)e++;t.push({kind:`num`,text:r.slice(n,e)}),n=e;continue}if(Te.has(e)){(e===`<`||e===`>`)&&(r[n+1]===`=`||e===`<`&&r[n+1]===`>`)?(t.push({kind:`op`,text:r.slice(n,n+2)}),n+=2):(t.push({kind:`op`,text:e}),n++);continue}if(e===`$`||De(e)){let e=n;for(;e<r.length&&(r[e]===`$`||Oe(r[e]));)e++;let i=r.slice(n,e);n=e;let a=ke(i);if(a)t.push({kind:`ref`,text:i,ref:a});else{let e=i.toUpperCase();e===`TRUE`||e===`FALSE`?t.push({kind:`bool`,text:e}):t.push({kind:`name`,text:i})}continue}n++}return t}function De(e){return e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e===`_`}function Oe(e){return De(e)||e>=`0`&&e<=`9`||e===`.`}function ke(e){let t=0,n=!1,r=!1;e[t]===`$`&&(n=!0,t++);let i=t;for(;t<e.length&&e[t]>=`A`&&e[t].toUpperCase()<=`Z`&&!(!(e[t]>=`A`&&e[t]<=`Z`)&&!(e[t]>=`a`&&e[t]<=`z`));)t++;if(t===i)return null;let a=e.slice(i,t).toUpperCase();e[t]===`$`&&(r=!0,t++);let o=t;for(;t<e.length&&e[t]>=`0`&&e[t]<=`9`;)t++;if(t===o||t!==e.length)return null;let s=parseInt(e.slice(o,t),10),c=0;for(let e=0;e<a.length;e++)c=c*26+(a.charCodeAt(e)-64);return{colAbs:n,col:c,rowAbs:r,row:s}}function Ae(e,t){return Me({toks:Ee(e),pos:0},t)}function je(e){return e.toks[e.pos]}function Q(e){return e.toks[e.pos++]}function Me(e,t){return Ne(e,t)}function Ne(e,t){let n=Pe(e,t),r=je(e);if(r&&r.kind===`op`&&(r.text===`<`||r.text===`>`||r.text===`<=`||r.text===`>=`||r.text===`=`||r.text===`<>`)){Q(e);let i=Pe(e,t);return Fe(r.text,n,i)}return n}function Pe(e,t){let n=Ie(e,t);for(;;){let r=je(e);if(!r||r.kind!==`op`||r.text!==`&`)break;Q(e);let i=Ie(e,t);n=Z(n)+Z(i)}return n}function Fe(e,t,n){let r=typeof t==`string`&&isNaN(parseFloat(t))?null:X(t),i=typeof n==`string`&&isNaN(parseFloat(n))?null:X(n);if(r!==null&&i!==null)switch(e){case`<`:return r<i;case`>`:return r>i;case`<=`:return r<=i;case`>=`:return r>=i;case`=`:return r===i;case`<>`:return r!==i}let a=String(t??``),o=String(n??``);switch(e){case`<`:return a<o;case`>`:return a>o;case`<=`:return a<=o;case`>=`:return a>=o;case`=`:return a===o;case`<>`:return a!==o}return!1}function Ie(e,t){let n=Le(e,t);for(;;){let r=je(e);if(!r||r.kind!==`op`||r.text!==`+`&&r.text!==`-`)break;Q(e);let i=Le(e,t);n=r.text===`+`?X(n)+X(i):X(n)-X(i)}return n}function Le(e,t){let n=Re(e,t);for(;;){let r=je(e);if(!r||r.kind!==`op`||r.text!==`*`&&r.text!==`/`)break;Q(e);let i=Re(e,t);if(r.text===`*`)n=X(n)*X(i);else{let e=X(i);n=e===0?0:X(n)/e}}return n}function Re(e,t){let n=je(e);return n&&n.kind===`op`&&n.text===`-`?(Q(e),-X(Re(e,t))):n&&n.kind===`op`&&n.text===`+`?(Q(e),X(Re(e,t))):ze(e,t)}function ze(e,t){let n=Q(e);if(!n)return 0;if(n.kind===`num`)return parseFloat(n.text);if(n.kind===`str`)return n.text;if(n.kind===`bool`)return n.text===`TRUE`;if(n.kind===`lparen`){let n=Me(e,t),r=Q(e);if(!r||r.kind!==`rparen`)throw Error(`missing )`);return n}if(n.kind===`ref`){if(je(e)?.kind===`colon`){Q(e);let r=Q(e);if(r?.kind!==`ref`||!r.ref)throw Error(`range: expected ref after :`);return He(n.ref,r.ref,t)}return Ve(n.ref,t)}if(n.kind===`name`){if(je(e)?.kind===`lparen`){Q(e);let r=[];if(je(e)?.kind!==`rparen`)for(r.push(Me(e,t));je(e)?.kind===`comma`;)Q(e),r.push(Me(e,t));let i=Q(e);if(!i||i.kind!==`rparen`)throw Error(`missing )`);return We(n.text,r,t)}let r=t.definedNames.get(n.text);return r&&t.depth<Se?Ae(Be(r.formula),{...t,anchorRow:1,anchorCol:1,depth:t.depth+1}):0}return 0}function Be(e){let t=e.match(/^(?:'[^']*'|[A-Za-z_][A-Za-z0-9_.]*)!(.*)$/);return t?t[1]:e}function Ve(e,t){let n=e.colAbs?e.col:e.col+(t.col-t.anchorCol),r=e.rowAbs?e.row:e.row+(t.row-t.anchorRow);return Ue(t.cellIndex.get(`${r}:${n}`))}function He(e,t,n){let r=e.colAbs?e.col:e.col+(n.col-n.anchorCol),i=e.rowAbs?e.row:e.row+(n.row-n.anchorRow),a=t.colAbs?t.col:t.col+(n.col-n.anchorCol),o=t.rowAbs?t.row:t.row+(n.row-n.anchorRow),s=Math.min(r,a),c=Math.max(r,a),l=Math.min(i,o),u=Math.max(i,o),d=[],f=4096;for(let e=l;e<=u&&d.length<f;e++)for(let t=s;t<=c&&d.length<f;t++)d.push(Ue(n.cellIndex.get(`${e}:${t}`)));return d}function Ue(e){if(!e)return null;switch(e.value.type){case`number`:return e.value.number;case`bool`:return e.value.bool;case`text`:return e.value.text;case`error`:return null;default:return null}}function We(e,t,n){switch(e.toUpperCase()){case`AND`:return t.flatMap(J).every(e=>we(e));case`OR`:return t.flatMap(J).some(e=>we(e));case`NOT`:return!we(t[0]);case`IF`:return we(t[0])?t[1]??!0:t[2]??!1;case`IFERROR`:return t[0]==null?t[1]??0:t[0];case`IFS`:for(let e=0;e+1<t.length;e+=2)if(we(t[e]))return t[e+1];return null;case`TRUE`:return!0;case`FALSE`:return!1;case`ISBLANK`:{let e=Y(t[0]);return e==null||e===``}case`ISNUMBER`:return typeof Y(t[0])==`number`;case`ISTEXT`:return typeof Y(t[0])==`string`;case`ISNONTEXT`:return typeof Y(t[0])!=`string`;case`ISERROR`:case`ISERR`:case`ISNA`:return Y(t[0])==null;case`ISLOGICAL`:return typeof Y(t[0])==`boolean`;case`ROUNDDOWN`:{let e=X(t[0]),n=10**X(t[1]);return(e>=0?Math.floor(e*n):Math.ceil(e*n))/n}case`ROUNDUP`:{let e=X(t[0]),n=10**X(t[1]);return(e>=0?Math.ceil(e*n):Math.floor(e*n))/n}case`ROUND`:{let e=X(t[0]),n=10**X(t[1]);return Math.round(e*n)/n}case`INT`:return Math.floor(X(t[0]));case`TRUNC`:{let e=X(t[0]),n=10**X(t[1]??0);return(e>=0?Math.floor(e*n):Math.ceil(e*n))/n}case`CEILING`:{let e=X(t[0]),n=X(t[1]??1);return n===0?0:Math.ceil(e/n)*n}case`FLOOR`:{let e=X(t[0]),n=X(t[1]??1);return n===0?0:Math.floor(e/n)*n}case`MOD`:{let e=X(t[0]),n=X(t[1]);return n===0?null:e-Math.floor(e/n)*n}case`POWER`:return X(t[0])**+X(t[1]);case`SQRT`:{let e=X(t[0]);return e<0?null:Math.sqrt(e)}case`ABS`:return Math.abs(X(t[0]));case`SIGN`:{let e=X(t[0]);return e>0?1:e<0?-1:0}case`EXP`:return Math.exp(X(t[0]));case`LN`:{let e=X(t[0]);return e<=0?null:Math.log(e)}case`LOG10`:{let e=X(t[0]);return e<=0?null:Math.log10(e)}case`MIN`:{let e=t.flatMap(J).filter(e=>typeof e==`number`);return e.length?Math.min(...e):0}case`MAX`:{let e=t.flatMap(J).filter(e=>typeof e==`number`);return e.length?Math.max(...e):0}case`SUM`:return t.flatMap(J).reduce((e,t)=>e+(typeof t==`number`?t:0),0);case`AVERAGE`:{let e=t.flatMap(J).filter(e=>typeof e==`number`);return e.length?e.reduce((e,t)=>e+t,0)/e.length:null}case`COUNT`:return t.flatMap(J).filter(e=>typeof e==`number`).length;case`COUNTA`:return t.flatMap(J).filter(e=>e!=null&&e!==``).length;case`COUNTBLANK`:return t.flatMap(J).filter(e=>e==null||e===``).length;case`COUNTIF`:return Ge(J(t[0]),t[1]);case`SUMIF`:return Ke(J(t[0]),t[1],t[2]===void 0?null:J(t[2]));case`AVERAGEIF`:{let e=J(t[0]),n=Ke(e,t[1],t[2]===void 0?null:J(t[2])),r=Ge(e,t[1]);return r===0?null:X(n)/r}case`LEN`:return Z(t[0]).length;case`LEFT`:return Z(t[0]).slice(0,Math.max(0,X(t[1]??1)));case`RIGHT`:{let e=Z(t[0]),n=Math.max(0,X(t[1]??1));return n>=e.length?e:e.slice(e.length-n)}case`MID`:{let e=Z(t[0]),n=Math.max(1,X(t[1]))-1,r=Math.max(0,X(t[2]));return e.slice(n,n+r)}case`UPPER`:return Z(t[0]).toUpperCase();case`LOWER`:return Z(t[0]).toLowerCase();case`TRIM`:return Z(t[0]).replace(/\s+/g,` `).trim();case`EXACT`:return Z(t[0])===Z(t[1]);case`FIND`:{let e=Z(t[0]),n=Z(t[1]),r=Math.max(1,X(t[2]??1))-1,i=n.indexOf(e,r);return i<0?null:i+1}case`SEARCH`:{let e=Z(t[0]).toLowerCase(),n=Z(t[1]).toLowerCase(),r=Math.max(1,X(t[2]??1))-1,i=n.indexOf(e,r);return i<0?null:i+1}case`CONCATENATE`:case`CONCAT`:return t.flatMap(J).map(e=>e==null?``:typeof e==`boolean`?e?`TRUE`:`FALSE`:String(e)).join(``);case`T`:{let e=Y(t[0]);return typeof e==`string`?e:``}case`N`:{let e=Y(t[0]);return typeof e==`number`?e:typeof e==`boolean`?+!!e:0}case`VALUE`:return X(t[0]);case`ROW`:return n.row;case`COLUMN`:return n.col;case`TODAY`:return Xe();case`NOW`:return Ze();case`DATE`:return Qe(X(t[0]),X(t[1]),X(t[2]));case`YEAR`:return et(X(t[0])).y;case`MONTH`:return et(X(t[0])).m;case`DAY`:return et(X(t[0])).d;case`WEEKDAY`:{let e=$e(X(t[0])).getUTCDay(),n=X(t[1]??1);return n===2?e===0?7:e:n===3?e===0?6:e-1:e+1}default:return 0}}function Ge(e,t){let n=qe(t),r=0;for(let t of e)n(t)&&r++;return r}function Ke(e,t,n){let r=qe(t),i=n??e,a=0;for(let t=0;t<e.length;t++)if(r(e[t])){let e=i[t];typeof e==`number`&&(a+=e)}return a}function qe(e){let t=Y(e);if(typeof t!=`string`){let e=typeof t==`number`?t:null;return n=>e!==null&&typeof n==`number`?n===e:n===t}let n=t.match(/^(<=|>=|<>|<|>|=)(.*)$/),r=n?n[1]:`=`,i=n?n[2]:t,a=i.trim()===``?NaN:parseFloat(i),o=!isNaN(a)&&/^-?\d+(\.\d+)?$/.test(i.trim());return e=>{if(o&&typeof e==`number`)switch(r){case`<`:return e<a;case`>`:return e>a;case`<=`:return e<=a;case`>=`:return e>=a;case`<>`:return e!==a;default:return e===a}let t=e==null?``:typeof e==`boolean`?e?`TRUE`:`FALSE`:String(e);switch(r){case`<>`:return t!==i;case`<`:return t<i;case`>`:return t>i;case`<=`:return t<=i;case`>=`:return t>=i;default:return t===i}}}var Je=25569,Ye=864e5;function Xe(){let e=new Date,t=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate());return Math.floor(t/Ye)+Je}function Ze(){return Date.now()/Ye+Je}function Qe(e,t,n){let r=Date.UTC(e,t-1,n);return Math.floor(r/Ye)+Je}function $e(e){let t=(Math.floor(e)-Je)*Ye;return new Date(t)}function et(e){let t=$e(e);return{y:t.getUTCFullYear(),m:t.getUTCMonth()+1,d:t.getUTCDate()}}var tt=[`#FF0000`,`#FFFF00`,`#00B050`],nt=[`#FF0000`,`#FF6600`,`#FFFF00`,`#00B050`],rt=[`#FF0000`,`#FF6600`,`#FFFF00`,`#92D050`,`#00B050`];function it(e,t,n,r,i,a){if(t===`NoIcons`)return;let o=t||`3TrafficLights1`,s=parseInt(o[0])||3,c=s===5?rt:s===4?nt:tt,l=c[Math.max(0,Math.min(n,c.length-1))];if(e.save(),e.fillStyle=l,o.includes(`Arrow`)){let t=a/2;e.beginPath(),n===s-1?(e.moveTo(r+t,i),e.lineTo(r+a,i+a),e.lineTo(r,i+a)):n===0?(e.moveTo(r,i),e.lineTo(r+a,i),e.lineTo(r+t,i+a)):(e.moveTo(r,i+a*.3),e.lineTo(r+a,i+t),e.lineTo(r,i+a*.7)),e.closePath(),e.fill()}else o.includes(`Flag`)?(e.beginPath(),e.moveTo(r,i),e.lineTo(r+a,i),e.lineTo(r,i+a),e.closePath(),e.fill()):(e.beginPath(),e.arc(r+a/2,i+a/2,a/2,0,Math.PI*2),e.fill());e.restore()}function at(e,t,n,r,i){let a=Math.max(6,Math.round(Math.min(r,i)*.45)),o=t+r-a-1,s=n+i-a-1;e.save(),e.fillStyle=`#D0D0D0`,e.fillRect(o,s,a,a),e.fillStyle=`#444444`;let c=a*.55,l=o+(a-c)/2,u=s+(a-c*.5)/2;e.beginPath(),e.moveTo(l,u),e.lineTo(l+c,u),e.lineTo(l+c/2,u+c*.5),e.closePath(),e.fill(),e.restore()}function ot(e){let t=new Map;for(let n of e.tables??[]){if(!n.styleName)continue;let{top:e,bottom:r,left:i,right:a}=n.range,o=n.accentColor||`#808080`,s=Math.max(0,n.headerRowCount??1),c=Math.max(0,n.totalsRowCount??0),l=e+s-1,u=r-c+1;for(let d=e;d<=r;d++){let f=s>0&&d<=l,p=c>0&&d>=u,m=!f&&!p?d-l-1:-1;for(let s=i;s<=a;s++)t.set(`${d}:${s}`,{accent:o,isHeader:f,isTotals:p,isBanded:n.showRowStripes&&m>=0&&m%2==1,isFirstCol:n.showFirstColumn&&s===i,isLastCol:n.showLastColumn&&s===a,isTopEdge:d===e,isBottomEdge:d===r,wholeTableDxf:n.wholeTableDxf,headerRowDxf:n.headerRowDxf})}}return t}function st(e){let t=new Map;for(let n of e.sparklineGroups??[]){let e=1/0,r=-1/0;if(n.minAxisType===`group`||n.maxAxisType===`group`){for(let t of n.sparklines)for(let n of t.values)typeof n==`number`&&(n<e&&(e=n),n>r&&(r=n));(!isFinite(e)||!isFinite(r))&&(e=0,r=1)}for(let i of n.sparklines){let a=i.values.filter(e=>typeof e==`number`),o=a.length?Math.min(...a):0,s=a.length?Math.max(...a):1,c=n.minAxisType===`custom`&&typeof n.manualMin==`number`?n.manualMin:n.minAxisType===`group`?e:o,l=n.maxAxisType===`custom`&&typeof n.manualMax==`number`?n.manualMax:n.maxAxisType===`group`?r:s;t.set(`${i.row}:${i.col}`,{kind:n.kind,values:i.values,min:c,max:l,displayEmptyCellsAs:n.displayEmptyCellsAs===`zero`||n.displayEmptyCellsAs===`span`?n.displayEmptyCellsAs:`gap`,displayXAxis:n.displayXAxis,lineWeight:n.lineWeight,markers:n.markers,high:n.high,low:n.low,first:n.first,last:n.last,negative:n.negative,colorSeries:n.colorSeries,colorNegative:n.colorNegative,colorAxis:n.colorAxis,colorMarkers:n.colorMarkers,colorFirst:n.colorFirst,colorLast:n.colorLast,colorHigh:n.colorHigh,colorLow:n.colorLow})}}return t}function ct(e){let t=e.replace(`#`,``);if(t.length<6)return`#F2F2F2`;let n=parseInt(t.slice(0,2),16),r=parseInt(t.slice(2,4),16),i=parseInt(t.slice(4,6),16),a=e=>Math.round(e*.2+255*.8),o=e=>e.toString(16).padStart(2,`0`).toUpperCase();return`#${o(a(n))}${o(a(r))}${o(a(i))}`}function lt(e,t,r,i,a,o,s,c,l,u,d,f,m,h){if(m<=0||h<=0)return;let{styles:g,cellMap:_,mergeAnchorMap:C,mergeSkipSet:E,cfContext:te,cs:re,dpr:j}=t,ie=a.length,M=o.length,ae=[],N=-s;for(let e=0;e<ie;e++)ae.push(N),N+=a[e];let P=[],F=-c;for(let e=0;e<M;e++)P.push(F),F+=o[e];e.save(),e.beginPath(),e.rect(d,f,m,h),e.clip();let I=[];for(let n of t.worksheet.mergeCells??[]){let a=n.top,o=n.left;if(a>=r&&a<r+M&&o>=i&&o<i+ie||n.bottom<r||n.top>=r+M||n.right<i||n.left>=i+ie)continue;let d=t.mergeAnchorMap.get(`${a}:${o}`);if(!d)continue;let f;if(o>=i)f=l+ae[o-i];else{let e=0;for(let n=o;n<i;n++)e+=Math.round(v(t.worksheet.colWidths[n]??t.worksheet.defaultColWidth,t.mdw)*re);f=l-s-e}let m;if(a>=r)m=u+P[a-r];else{let e=0;for(let n=a;n<r;n++)e+=Math.round(y(t.worksheet.rowHeights[n]??t.worksheet.defaultRowHeight)*re);m=u-c-e}let h=d.totalW,_=d.totalH,S=`${a}:${o}`,C=t.cellMap.get(S),{font:w,fill:T,border:E,xf:D}=ee(g,C?.styleIndex??0),O=xe(C,a,o,te,g.dxfs??[]),A=O.fill??T;if(A.patternType!==`none`&&A.patternType!==``&&A.fgColor&&(e.fillStyle=b(A.fgColor),e.fillRect(f,m,h,_)),O.dataBar&&O.dataBar.ratio>0){let t=Math.max(0,(h-4)*O.dataBar.ratio);x(e,O.dataBar.color,f+2,m+2,t,_-4,O.dataBar.gradient)}if(xt(e,bt(yt(E,a,o,d.right,d.bottom,t.cellMap,g),O.border),f,m,h,_),!C)continue;let j=ne(C,g,O.numFmt);if(!j||j===`0`&&t.worksheet.showZeros===!1)continue;let N=w.bold||!!O.fontBold,F=w.italic||!!O.fontItalic,I=w.underline||!!O.fontUnderline,L=w.strike||!!O.fontStrike;e.font=k(N!==w.bold||F!==w.italic||I!==w.underline||L!==w.strike?{...w,bold:N,italic:F,underline:I,strike:L}:w,re);let R=t.hyperlinkMap.get(S)?`#0563C1`:O.fontColor??w.color;e.fillStyle=R?b(R):`#000000`;let z=C.value.type===`number`,oe=D.alignH??(z?`right`:`left`),B=D.alignV??`bottom`,V=D.indent?Math.round(D.indent*w.size*p*.5):0,H=3+(oe===`left`||!D.alignH?V:0);e.save(),e.beginPath(),e.rect(f,m,h,_),e.clip();let U;oe===`right`?(U=f+h-3,e.textAlign=`right`):oe===`center`?(U=f+h/2,e.textAlign=`center`):(U=f+H,e.textAlign=`left`);let W;B===`top`?(e.textBaseline=`top`,W=m+2):B===`center`?(e.textBaseline=`middle`,W=m+_/2):(e.textBaseline=`bottom`,W=m+_-2),e.fillText(j,U,W),e.restore()}for(let s=0;s<M;s++){let c=r+s,v=u+P[s],y=o[s];if(v+y<=f||v>=f+h)continue;let M=new Set,N=new Set,F=-1,L=e=>{if(F>=0&&e-F>=2){for(let t=F;t<e-1;t++)M.add(t);for(let t=F+1;t<e;t++)N.add(t)}F=-1};for(let e=0;e<=ie;e++){let t=!1,n=!1;if(e<ie){let r=`${c}:${i+e}`;if(!E.has(r)&&!C.has(r)){let e=_.get(r);t=ee(g,e?.styleIndex??0).xf.alignH===`centerContinuous`,n=!!(e&&e.value&&e.value.type!==`empty`)}}t?n&&F>=0&&e>F?(L(e),F=e):F<0&&(F=e):L(e)}for(let r=0;r<ie;r++){let o=i+r,u=l+ae[r],f=a[r];if(u+f<=d||u>=d+m)continue;let h=`${c}:${o}`;if(E.has(h))continue;let P=C.get(h),F=P?P.totalW:f,L=P?P.totalH:y,R=_.get(h),{font:z,fill:oe,border:B,xf:V}=ee(g,R?.styleIndex??0),H=xe(R,c,o,te,g.dxfs??[]),U=H.fill??oe,W=t.tableStyleMap.get(h),G=W?.wholeTableDxf==null?void 0:(g.dxfs??[])[W.wholeTableDxf],ce=W?.headerRowDxf==null?void 0:(g.dxfs??[])[W.headerRowDxf];if(U.gradient&&U.gradient.stops.length>0)e.fillStyle=T(e,U.gradient,u,v,F,L),e.fillRect(u,v,F,L);else if(U.patternType&&U.patternType!==`none`&&U.fgColor){let t=U.patternType,n=U.bgColor??`FFFFFF`,r=w(e,t,U.fgColor,n);if(r)e.fillStyle=r;else{let r=S(t);e.fillStyle=r>=1?b(U.fgColor):O(U.fgColor,n,r)}e.fillRect(u,v,F,L)}else W&&W.isHeader&&ce?.fill?.fgColor?(e.fillStyle=b(ce.fill.fgColor),e.fillRect(u,v,F,L)):W&&!W.isHeader&&!W.isTotals&&G?.fill?.fgColor?(e.fillStyle=b(G.fill.fgColor),e.fillRect(u,v,F,L)):W&&W.isBanded&&(e.fillStyle=ct(W.accent),e.fillRect(u,v,F,L));if(t.commentCells.has(h)&&D(e,u,v,F,L),H.dataBar&&H.dataBar.ratio>0){let t=Math.max(0,(F-4)*H.dataBar.ratio);x(e,H.dataBar.color,u+2,v+2,t,L-4,H.dataBar.gradient)}let ue=t.sparklineMap.get(h);if(ue&&n(e,{x:u,y:v,w:F,h:L},ue),t.worksheet.showGridlines!==!1){let t=.5/j;e.strokeStyle=`#d0d0d0`,e.lineWidth=.5,e.beginPath(),M.has(r)||(e.moveTo(u+F+t,v),e.lineTo(u+F+t,v+L)),e.moveTo(u,v+L+t),e.lineTo(u+F,v+L+t),s===0&&(e.moveTo(u,v+t),e.lineTo(u+F,v+t)),r===0&&(e.moveTo(u+t,v),e.lineTo(u+t,v+L)),e.stroke()}let K=bt(P?yt(B,c,o,P.right,P.bottom,_,g):B,H.border);(M.has(r)||N.has(r))&&(K={...K,left:N.has(r)?null:K.left,right:M.has(r)?null:K.right});let de=_.get(`${c-1}:${o}`),fe=de?ee(g,de.styleIndex).border.bottom:null,pe=!1;if(fe?.style){let e=K.top,t=Tt(e,fe);K={...K,top:t},pe=t===fe&&e!==fe}let me=!1;if(!N.has(r)){let e=_.get(`${c}:${o-1}`),t=e?ee(g,e.styleIndex).border.right:null;if(t?.style){let e=K.left,n=Tt(e,t);K={...K,left:n},me=n===t&&e!==t}}if(xt(e,K,u,v,F,L,pe,me),W){let t=G?.border?.horizontal,n=G?.border?.vertical,r=G?.border?.top,i=G?.border?.bottom,a=G?.border?.left,s=G?.border?.right,c=ce?.border?.bottom,l=ce?.border?.top;if(t||n||r||i||a||s||c||l){let n={left:null,right:null,top:null,bottom:null};W.isTopEdge?n.top=r??null:t&&(n.top=t),W.isHeader&&c?n.bottom=c:W.isBottomEdge?n.bottom=i??null:t&&(n.bottom=t),(W.isFirstCol||o===0)&&(n.left=a??null),W.isLastCol&&(n.right=s??null),xt(e,n,u,v,F,L)}else{let t=.5/j;e.strokeStyle=W.accent,e.lineWidth=W.isHeader?1.5:1,e.beginPath(),e.moveTo(u,v+L-t),e.lineTo(u+F,v+L-t),W.isTopEdge&&(e.moveTo(u,v+t),e.lineTo(u+F,v+t)),e.stroke()}}if(t.autoFilterCells.has(h)&&at(e,u,v,f,L),!R)continue;let q=ne(R,g,H.numFmt);!q||q===`0`&&t.worksheet.showZeros===!1||I.push(()=>{let n=!!(W&&(W.isHeader||W.isTotals)),s=z.bold||!!H.fontBold||n,l=z.italic||!!H.fontItalic,d=z.underline||!!H.fontUnderline,f=z.strike||!!H.fontStrike,m=s!==z.bold||l!==z.italic||d!==z.underline||f!==z.strike?{...z,bold:s,italic:l,underline:d,strike:f}:z;e.font=k(m,re);let y=t.hyperlinkMap.get(h),x=W?.isHeader&&ce?.font?.color?ce.font.color:W&&!W.isHeader&&!W.isTotals&&G?.font?.color?G.font.color:null,S=y?`#0563C1`:H.fontColor??x??z.color;e.fillStyle=S?b(S):`#000000`;let w=R.value.type===`number`,T=V.alignH??(w?`right`:`left`),D=V.alignV??`bottom`,O=V.indent?Math.round(V.indent*z.size*p*.5):0,te=H.iconSet?Math.max(8,Math.round(Math.min(F,L)*.55)):0,ne=te>0?te+4:0,j=3+(T===`left`||!V.alignH?O:0)+ne,M=F,ae=u,N=r;if(T===`centerContinuous`&&!P)for(let e=r+1;e<ie;e++){let t=`${c}:${i+e}`;if(E.has(t)||C.has(t))break;let n=_.get(t);if(n&&n.value.type!==`empty`||ee(g,n?.styleIndex??0).xf.alignH!==`centerContinuous`)break;M+=a[e],N=e}let I=T===`centerContinuous`?ae:u,oe=T===`centerContinuous`?M:F,B=q.includes(`
|
|
7
7
|
`);if(!P&&!V.wrapText&&!V.textRotation&&!w&&!B){let t=e.measureText(q).width,n=T===`centerContinuous`,o=n?t+6:t+j+3,s=n?M:F;if(o>s){let e=o-s,t=0,l=0;if(T===`right`?l=e:T===`center`||n?(l=e/2,t=e/2):t=e,t>0){let e=t,o=n?N+1:r+1;for(let t=o;t<ie&&e>0;t++){let n=`${c}:${i+t}`;if(E.has(n)||C.has(n))break;let r=_.get(n);if(r&&r.value.type!==`empty`)break;oe+=a[t],e-=a[t]}}if(l>0){let e=l;for(let t=r-1;t>=0&&e>0;t--){let n=`${c}:${i+t}`;if(E.has(n)||C.has(n))break;let r=_.get(n);if(r&&r.value.type!==`empty`)break;I-=a[t],oe+=a[t],e-=a[t]}}}}let U=q,ue=0;if(T===`fill`&&!w&&q.length>0){let t=Math.max(1,F-6),n=e.measureText(q).width;if(n>0&&n<t){let e=Math.max(1,Math.floor(t/n));U=q.repeat(e)}}if(T===`distributed`||T===`justify`&&!V.wrapText&&!B){let t=Math.max(1,F-6),n=e.measureText(U).width,r=Math.max(1,[...U].length-1);n<t&&(ue=Math.max(0,(t-n)/r))}let K,de;T===`right`?(K=u+F-3,de=`right`):T===`center`?(K=u+F/2,de=`center`):T===`centerContinuous`?(K=ae+M/2,de=`center`):T===`distributed`||T===`justify`&&!V.wrapText&&!B?(K=u+3,de=`left`):(K=u+j,de=`left`);let fe=V.textRotation??0,pe=fe===255,me=fe>0&&fe!==255;if(H.iconSet&&te>0&&(e.save(),e.beginPath(),e.rect(u,v,F,L),e.clip(),it(e,H.iconSet.name,H.iconSet.index,u+2,v+(L-te)/2,te),e.restore()),e.save(),e.beginPath(),e.rect(I,v,oe,L),e.clip(),pe){let t=Math.round(z.size*p*1.1),n=q.length*t,r=D===`top`?v+2:D===`center`?v+(L-n)/2:v+L-n-2;e.textAlign=`center`,e.textBaseline=`top`;for(let n of q)e.fillText(n,u+F/2,r),r+=t;e.restore();return}if(me){let t=fe<=90?-(fe*Math.PI/180):(fe-90)*Math.PI/180;e.translate(u+F/2,v+L/2),e.rotate(t),e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(q,0,0),e.restore();return}if(V.shrinkToFit){let t=e.measureText(q).width,n=F-j-3;if(t>n&&t>0){let r=n/t,i=T===`right`?u+F-3:T===`center`?u+F/2:u+j;e.transform(r,0,0,1,i*(1-r),0)}}if(e.textAlign=de,ue>0)try{e.letterSpacing=`${ue}px`}catch{}if(V.readingOrder===2)try{e.direction=`rtl`}catch{}else if(V.readingOrder===1)try{e.direction=`ltr`}catch{}let he=R.value.type===`text`?R.value.runs:void 0,ge=he&&he.length>0;if(V.wrapText&&ge){let t=le(e,he,m,re,F-j-3),n=t.reduce((e,t)=>e+Math.round(t.maxFontSize*p*1.2),0),r;r=D===`top`?v+2:D===`center`?v+(L-n)/2:v+L-n-2,e.textAlign=`left`,e.textBaseline=`top`;for(let n of t){let t=Math.round(n.maxFontSize*p*1.2),i=n.segments.reduce((e,t)=>e+t.width,0),a;a=T===`right`?u+F-3-i:T===`center`?u+F/2-i/2:u+j;for(let t of n.segments){e.font=k(t.font,re);let n=H.fontColor??t.font.color;e.fillStyle=n?b(n):`#000000`,e.fillText(t.text,a,r);let i=Math.round(t.font.size*p);if(t.font.underline&&(e.save(),e.strokeStyle=n?b(n):`#000000`,e.lineWidth=.5,e.beginPath(),e.moveTo(a,r+i+1),e.lineTo(a+t.width,r+i+1),e.stroke(),e.restore()),t.font.strike){e.save(),e.strokeStyle=n?b(n):`#000000`,e.lineWidth=.5;let o=r+Math.round(i*.5);e.beginPath(),e.moveTo(a,o),e.lineTo(a+t.width,o),e.stroke(),e.restore()}a+=t.width}r+=t}}else if(V.wrapText){let t=se(e,q,F-j-3),n=Math.round(z.size*p*1.2),r=t.length*n,i;D===`top`?(i=v+2,e.textBaseline=`top`):D===`center`?(i=v+(L-r)/2,e.textBaseline=`top`):(i=v+L-r-2,e.textBaseline=`top`);for(let r=0;r<t.length;r++)e.fillText(t[r],K,i+r*n)}else if(ge){let t=he.map(e=>A(m,e)),n=he.map((n,r)=>(e.font=k(t[r],re),e.measureText(n.text).width)),r=n.reduce((e,t)=>e+t,0),i;i=T===`right`?u+F-3-r:T===`center`?u+F/2-r/2:u+j,e.textAlign=`left`;let a;D===`top`?(e.textBaseline=`top`,a=v+2):D===`center`?(e.textBaseline=`middle`,a=v+L/2):(e.textBaseline=`bottom`,a=v+L-2);let o=i;for(let r=0;r<he.length;r++){let i=t[r];e.font=k(i,re);let s=H.fontColor??i.color;e.fillStyle=s?b(s):`#000000`,e.fillText(he[r].text,o,a);let c=Math.round(i.size*p);if(i.underline){let t=D===`top`?v+2+c+1:D===`center`?v+L/2+Math.round(c*.55):v+L-2+1;e.save(),e.strokeStyle=s?b(s):`#000000`,e.lineWidth=.5,e.beginPath(),e.moveTo(o,t),e.lineTo(o+n[r],t),e.stroke(),e.restore()}if(i.strike){let t=D===`top`?v+2+Math.round(c*.5):D===`center`?v+L/2:v+L-2-Math.round(c*.35);e.save(),e.strokeStyle=s?b(s):`#000000`,e.lineWidth=.5,e.beginPath(),e.moveTo(o,t),e.lineTo(o+n[r],t),e.stroke(),e.restore()}o+=n[r]}}else{let t=null,n=()=>t??=e.measureText(q),r=()=>{let e=Math.min(n().width,oe-j-3);return{x:T===`right`?u+F-3-e:T===`center`?u+F/2-e/2:u+j,width:e}},i=Math.round(z.size*p);if(m.underline||y){let{x:t,width:n}=r(),a=D===`top`?v+2+i+1:D===`center`?v+L/2+Math.round(i*.55):v+L-2+1;e.save(),e.strokeStyle=y?`#0563C1`:S?b(S):`#000000`,e.lineWidth=.5,e.beginPath(),e.moveTo(t,a),e.lineTo(t+n,a),e.stroke(),e.restore()}if(m.strike){let{x:t,width:n}=r(),a=D===`top`?v+2+Math.round(i*.5):D===`center`?v+L/2:v+L-2-Math.round(i*.35);e.save(),e.strokeStyle=S?b(S):`#000000`,e.lineWidth=.5,e.beginPath(),e.moveTo(t,a),e.lineTo(t+n,a),e.stroke(),e.restore()}if(q.includes(`
|
|
8
8
|
`)){let t=q.split(`
|
|
9
|
-
`),n=Math.round(z.size*p*1.2),r=t.length*n,i;D===`top`?(i=v+2,e.textBaseline=`top`):D===`center`?(i=v+(L-r)/2,e.textBaseline=`top`):(i=v+L-r-2,e.textBaseline=`top`);for(let r=0;r<t.length;r++)e.fillText(t[r],K,i+r*n)}else{let t;D===`top`?(e.textBaseline=`top`,t=v+2):D===`center`?(e.textBaseline=`middle`,t=v+L/2):(e.textBaseline=`bottom`,t=v+L-2),e.fillText(U,K,t)}}e.restore(),q&&t.onTextRun&&t.onTextRun({text:q,x:u,y:v,width:F,height:L,row:c,col:o})})}}for(let e of I)e();e.restore()}function ut(e,t,n,r,i={}){let a=i.dpr??1,o=i.cellScale??1,s=_(t),c=e.canvas.width/a,l=e.canvas.height/a;e.clearRect(0,0,c,l),e.fillStyle=`#ffffff`,e.fillRect(0,0,c,l);let u=e=>Math.round(e*o),d=u(50),f=u(22),{row:p,col:h,rows:g,cols:b}=r,x=(i.scrollOffsetX??0)*o,S=(i.scrollOffsetY??0)*o,C=i.freezeRows??0,w=i.freezeCols??0,T=[];for(let e=1;e<=w;e++)T.push(u(v(t.colWidths[e]??t.defaultColWidth,s)));let D=[];for(let e=1;e<=C;e++)D.push(u(y(t.rowHeights[e]??t.defaultRowHeight)));let O=T.reduce((e,t)=>e+t,0),k=D.reduce((e,t)=>e+t,0),A=[];for(let e=h;e<h+b;e++)A.push(u(v(t.colWidths[e]??t.defaultColWidth,s)));let ee=[];for(let e=p;e<p+g;e++)ee.push(u(y(t.rowHeights[e]??t.defaultRowHeight)));let te=new Map;for(let e of t.rows)for(let t of e.cells)te.set(`${t.row}:${t.col}`,t);let ne=new Map,re=new Set;for(let e of t.mergeCells??[]){let n=0;for(let r=e.left;r<=e.right;r++)n+=u(v(t.colWidths[r]??t.defaultColWidth,s));let r=0;for(let n=e.top;n<=e.bottom;n++)r+=u(y(t.rowHeights[n]??t.defaultRowHeight));ne.set(`${e.top}:${e.left}`,{totalW:n,totalH:r,right:e.right,bottom:e.bottom});for(let t=e.top;t<=e.bottom;t++)for(let n=e.left;n<=e.right;n++)t===e.top&&n===e.left||re.add(`${t}:${n}`)}let j=
|
|
10
|
-
`);for(let o=0;o<f.length;o++){o>0&&d();let p=f[o];if(!p)continue;if(!s){r.push({text:p,run:t}),a+=e.measureText(p).width;continue}let m=``;for(let o of p){let s=m+o,f=e.measureText(s).width;a+f>i&&(m.length>0||r.length>0)?(m&&(r.push({text:m,run:t}),a+=e.measureText(m).width),d(),m=o,e.font=n,l=Math.max(l,c*1.2),u=Math.max(u,c*.85)):m=s}m&&(r.push({text:m,run:t}),a+=e.measureText(m).width)}}d()}let l=c.reduce((e,t)=>e+t.height,0),f=4;t.anchor===`ctr`?f=4+(a-l)/2:t.anchor===`b`&&(f=4+Math.max(0,a-l)),e.textBaseline=`middle`;let m=f;for(let t of c){let n=m+t.height/2,r=0;for(let n of t.runs){let{font:t}=o(n.run);e.font=t,r+=e.measureText(n.text).width}let a=7;t.align===`ctr`?a=7+Math.max(0,(i-r)/2):t.align===`r`&&(a=7+Math.max(0,i-r));for(let r of t.runs){let{font:t}=o(r.run);e.font=t,e.fillStyle=r.run.color??`#000000`,e.fillText(r.text,a,n),a+=e.measureText(r.text).width}m+=t.height}}function vt(e,t){t.fillColor&&(e.fillStyle=t.fillColor,e.fill()),t.strokeColor&&t.strokeWidth>0&&(e.strokeStyle=t.strokeColor,e.lineWidth=Math.max(.5,t.strokeWidth/$),e.stroke())}function yt(e,t,n,r,i,a,o){if(r===n&&i===t)return e;let s=(e,r)=>{if(e===t&&r===n)return null;let i=a.get(`${e}:${r}`);return i?ee(o,i.styleIndex).border:null},c=s(t,r),l=s(i,n),u=s(i,r),d=(e,...t)=>{if(e?.style)return e;for(let e of t)if(e?.style)return e;return e??null};return{left:e.left,top:e.top,right:d(c?.right,u?.right,e.right),bottom:d(l?.bottom,u?.bottom,e.bottom),diagonalUp:e.diagonalUp??null,diagonalDown:e.diagonalDown??null}}function bt(e,t){if(!t)return e;let n=(e,t)=>t&&t.style?t:e??null;return{left:n(e.left,t.left),right:n(e.right,t.right),top:n(e.top,t.top),bottom:n(e.bottom,t.bottom),diagonalUp:n(e.diagonalUp,t.diagonalUp),diagonalDown:n(e.diagonalDown,t.diagonalDown)}}function xt(e,t,n,r,i,a){let o=[{edge:t.top,x1:n,y1:r,x2:n+i,y2:r,kind:`h`},{edge:t.bottom,x1:n,y1:r+a,x2:n+i,y2:r+a,kind:`h`},{edge:t.left,x1:n,y1:r,x2:n,y2:r+a,kind:`v`},{edge:t.right,x1:n+i,y1:r,x2:n+i,y2:r+a,kind:`v`},{edge:t.diagonalUp,x1:n,y1:r+a,x2:n+i,y2:r,kind:`d`},{edge:t.diagonalDown,x1:n,y1:r,x2:n+i,y2:r+a,kind:`d`}];for(let{edge:t,x1:s,y1:c,x2:l,y2:u,kind:d}of o){if(!t||!t.style||t.style===`none`)continue;let o=t.color?b(t.color):`#000000`;if(t.style===`double`&&d!==`d`){if(e.strokeStyle=o,e.lineWidth=1,e.setLineDash([]),e.beginPath(),d===`h`){let t=c===r,o=t?r-1:r+a+1,s=t?r+1:r+a-1;e.moveTo(n-1,o),e.lineTo(n+i+1,o),e.moveTo(n+1,s),e.lineTo(n+i-1,s)}else{let t=s===n,o=t?n-1:n+i+1,c=t?n+1:n+i-1;e.moveTo(o,r-1),e.lineTo(o,r+a+1),e.moveTo(c,r+1),e.lineTo(c,r+a-1)}e.stroke();continue}e.beginPath(),e.strokeStyle=o,e.lineWidth=St(t.style);let f=Ct(t.style);e.setLineDash(f),e.moveTo(s,c),e.lineTo(l,u),e.stroke(),e.setLineDash([])}}function St(e){switch(e){case`thick`:return 2;case`medium`:case`mediumDashed`:case`mediumDashDot`:case`mediumDashDotDot`:case`slantDashDot`:return 1.5;case`hair`:return .5;default:return 1}}function Ct(e){switch(e){case`dashed`:case`mediumDashed`:return[4,3];case`dotted`:return[2,2];case`dashDot`:case`mediumDashDot`:return[4,2,1,2];case`dashDotDot`:case`mediumDashDotDot`:return[4,2,1,2,1,2];case`slantDashDot`:return[5,3,1,3];default:return[]}}function wt(e){let t=e.chartType,n=e.grouping;if(t===`bar`){let t=e.barDir===`bar`;return n===`stacked`?t?`stackedBarH`:`stackedBar`:n===`percentStacked`?t?`stackedBarHPct`:`stackedBarPct`:t?`clusteredBarH`:`clusteredBar`}return t===`line`?n===`stacked`?`stackedLine`:n===`percentStacked`?`stackedLinePct`:`line`:t===`area`?n===`stacked`?`stackedArea`:n===`percentStacked`?`stackedAreaPct`:`area`:t}function Tt(e){return{chartType:wt(e),title:e.title,categories:e.categories,catAxisFormatCode:e.catAxisFormatCode??null,catAxisMin:e.catAxisMin??null,catAxisMax:e.catAxisMax??null,titleFontBold:e.titleFontBold??null,catAxisFontBold:e.catAxisFontBold??null,valAxisFontBold:e.valAxisFontBold??null,catAxisCrosses:e.catAxisCrosses??null,catAxisCrossesAt:e.catAxisCrossesAt??null,valAxisCrosses:e.valAxisCrosses??null,valAxisCrossesAt:e.valAxisCrossesAt??null,catAxisLineColor:e.catAxisLineColor??null,catAxisLineWidthEmu:e.catAxisLineWidthEmu??null,valAxisLineColor:e.valAxisLineColor??null,valAxisLineWidthEmu:e.valAxisLineWidthEmu??null,series:e.series.map(e=>({name:e.name,color:e.color??null,values:e.values,seriesType:e.seriesType??null,categories:e.categories.length>0?e.categories:null,showMarker:e.showMarker??null,valFormatCode:e.valFormatCode??null,markerSymbol:e.markerSymbol??null,markerSize:e.markerSize??null,markerFill:e.markerFill??null,markerLine:e.markerLine??null,dataPointOverrides:e.dataPointOverrides??null,dataLabelOverrides:e.dataLabelOverrides??null,seriesDataLabels:e.seriesDataLabels??null,errBars:e.errBars??null})),showDataLabels:e.showDataLabels??!1,valMin:e.valAxisMin??null,valMax:e.valAxisMax??null,catAxisTitle:e.catAxisTitle??null,valAxisTitle:e.valAxisTitle??null,catAxisHidden:e.catAxisHidden??!1,valAxisHidden:e.valAxisHidden??!1,plotAreaBg:null,chartBg:e.hasChartSpPr?e.chartBg??null:`FFFFFF`,legendManualLayout:e.legendManualLayout??null,showLegend:e.showLegend??!1,legendPos:e.legendPos??null,catAxisCrossBetween:`between`,valAxisMajorTickMark:e.valAxisMajorTickMark??`out`,catAxisMajorTickMark:e.catAxisMajorTickMark??`out`,valAxisMinorTickMark:e.valAxisMinorTickMark??null,catAxisMinorTickMark:e.catAxisMinorTickMark??null,titleFontSizeHpt:e.titleFontSizeHpt??null,titleFontColor:e.titleFontColor??null,titleFontFace:e.titleFontFace??null,catAxisFontSizeHpt:e.catAxisFontSizeHpt??null,valAxisFontSizeHpt:e.valAxisFontSizeHpt??null,dataLabelFontSizeHpt:null,subtotalIndices:[],valAxisFormatCode:e.valAxisFormatCode??null,barGapWidth:e.barGapWidth??null,barOverlap:e.barOverlap??null,dataLabelPosition:e.dataLabelPosition??null,dataLabelFontColor:e.dataLabelFontColor??null,dataLabelFormatCode:e.dataLabelFormatCode??null,titleManualLayout:e.titleManualLayout??null,plotAreaManualLayout:e.plotAreaManualLayout??null}}function Et(e,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=ft(n,a,r),p=pt(n,i,r);for(let i of n.charts){let a=i.fromCol+1,m=i.fromRow+1,h=i.toCol+1,g=i.toRow+1,_=ft(n,a,r)+i.fromColOff*r/$,v=pt(n,m,r)+i.fromRowOff*r/$,y=ft(n,h,r)+i.toColOff*r/$,b=pt(n,g,r)+i.toRowOff*r/$,x=y-_,S=b-v;if(x<=0||S<=0)continue;let C=c+(_-f)-o,w=l+(v-p)-s;if(C+x<c||C>c+u||w+S<l||w>l+d)continue;e.save(),e.beginPath(),e.rect(c,l,u,d),e.clip();let T=4/3*r;t.t(e,Tt(i.chart),{x:C,y:w,w:x,h:S},T),e.restore()}}var Dt=`600 12px "Meiryo UI", "Segoe UI", sans-serif`,Ot=`11px "Meiryo UI", "Segoe UI", sans-serif`,kt=`#FFFFFF`,At=`#BFBFBF`,jt=`#F2F2F2`,Mt=`#404040`,Nt=`#FFFFFF`,Pt=`#000000`,Ft=`#A5A5A5`,It=`#E7E6E6`,Lt=`#A6A6A6`,Rt=`#C6C6C6`;function zt(e,t,n,r,i,a,o,s,c,l,u){if(l<=0||u<=0)return;let d=t.slicers;if(!d)return;let f=ft(t,i,n),p=pt(t,r,n);for(let r of d){let i=r.fromCol+1,d=r.fromRow+1,m=r.toCol+1,h=r.toRow+1,g=ft(t,i,n)+r.fromColOff*n/$,_=pt(t,d,n)+r.fromRowOff*n/$,v=ft(t,m,n)+r.toColOff*n/$,y=pt(t,h,n)+r.toRowOff*n/$,b=v-g,x=y-_;if(b<=0||x<=0)continue;let S=s+(g-f)-a,C=c+(_-p)-o;S+b<s||S>s+l||C+x<c||C>c+u||(e.save(),e.beginPath(),e.rect(s,c,l,u),e.clip(),Bt(e,r.caption,r.items,S,C,b,x,n),e.restore())}}function Bt(e,t,n,r,i,a,o,s){e.fillStyle=kt,e.fillRect(r,i,a,o),e.strokeStyle=At,e.lineWidth=1,e.strokeRect(r+.5,i+.5,a-1,o-1);let c=Math.max(20*s,14);e.fillStyle=jt,e.fillRect(r+1,i+1,a-2,c),e.fillStyle=Mt,e.font=Vt(Dt,s),e.textBaseline=`middle`,e.textAlign=`left`;let l=6*s;if(Ht(e,t,r+l,i+c/2+1,a-2*l),n.length===0)return;let u=Math.max(1,Math.round(2*s)),d=4*s,f=r+d,p=i+c+d,m=a-2*d,h=o-c-2*d;if(m<=0||h<=0)return;let g=Math.max(18*s,16),_=Math.max(1,Math.floor((h+u)/(g+u))),v=Math.min(n.length,_),y=Math.min(g,(h-u*(v-1))/v);if(y<=0)return;e.font=Vt(Ot,s);let b=8*s;for(let t=0;t<v;t++){let r=n[t],i=p+t*(y+u),a=r.selected;e.fillStyle=a?Nt:It,e.fillRect(f,i,m,y),e.strokeStyle=a?Ft:Rt,e.lineWidth=1,e.strokeRect(f+.5,i+.5,m-1,y-1),e.fillStyle=a?Pt:Lt,Ht(e,r.name,f+b,i+y/2+1,m-2*b)}}function Vt(e,t){return e.replace(/(\d+(?:\.\d+)?)px/,(e,n)=>`${Math.round(Number(n)*t)}px`)}function Ht(e,t,n,r,i){if(i<=0)return;let a=t;if(e.measureText(a).width>i){for(;a.length>0&&e.measureText(a+`…`).width>i;)a=a.slice(0,-1);a=a.length>0?a+`…`:``}e.fillText(a,n,r)}var Ut={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`}},Wt=class{worker;parsedWorkbook=null;sheetCache=new Map;imageCache=new Map;rawData=null;constructor(){this.worker=new c;let e=new URL(l,location.href).href;this.worker.postMessage({type:`init`,wasmUrl:e})}async load(t,n={}){let r=typeof t==`string`?await fetch(t).then(e=>e.arrayBuffer()):t;if(this.rawData=r,this.parsedWorkbook=await this.sendMessage({type:`parse`,data:r.slice(0)}),n.useGoogleFonts){let t=new Set;for(let e of this.parsedWorkbook.styles?.fonts??[])e.name&&t.add(e.name);await e.n(t,Ut)}}get sheetNames(){return this.parsedWorkbook?.workbook.sheets.map(e=>e.name)??[]}get sheetCount(){return this.parsedWorkbook?.workbook.sheets.length??0}async getWorksheet(e){if(this.sheetCache.has(e))return this.sheetCache.get(e);if(!this.parsedWorkbook||!this.rawData)throw Error(`Workbook not loaded`);let t=this.parsedWorkbook.workbook.sheets[e];if(!t)throw Error(`Sheet index ${e} out of range`);let n=await this.sendMessage({type:`parseSheet`,data:this.rawData.slice(0),sheetIndex:e,sheetName:t.name});return this.sheetCache.set(e,n),n}async renderViewport(e,t,n,r={}){if(!this.parsedWorkbook)throw Error(`Workbook not loaded`);let i=this.sheetCache.get(t)??await this.getWorksheet(t),a=this.parsedWorkbook.styles,o=[];if(i.images)for(let e of i.images)this.imageCache.has(e.dataUrl)||o.push(e.dataUrl);if(i.shapeGroups)for(let e of i.shapeGroups)for(let t of e.shapes)t.geom.type===`image`&&!this.imageCache.has(t.geom.dataUrl)&&o.push(t.geom.dataUrl);o.length>0&&await Promise.all(o.map(async e=>{let t=new Image;t.src=e,await new Promise((e,n)=>{t.onload=()=>e(),t.onerror=()=>n(Error(`image decode failed`))}),this.imageCache.set(e,t)})).catch(()=>{});let s=r.dpr??(typeof window<`u`?window.devicePixelRatio:1),c=e instanceof HTMLCanvasElement?e.clientWidth||800:e.width,l=e instanceof HTMLCanvasElement?e.clientHeight||600:e.height,u=r.width??c,d=r.height??l;e.width=Math.round(u*s),e.height=Math.round(d*s),e instanceof HTMLCanvasElement&&(e.style.width=`${u}px`,e.style.height=`${d}px`);let f=e.getContext(`2d`);f.scale(s,s),ut(f,i,a,n,{...r,dpr:s,loadedImages:this.imageCache})}destroy(){this.worker.terminate()}sendMessage(e){return new Promise((t,n)=>{let r=e=>{this.worker.removeEventListener(`message`,r),e.data.type===`error`?n(Error(e.data.message)):e.data.type===`parsed`?t(e.data.workbook):e.data.type===`parsedSheet`&&t(e.data.worksheet)};this.worker.addEventListener(`message`,r),this.worker.postMessage(e)})}},Gt=30,Kt=class{wb;canvas;canvasArea;scrollHost;spacer;tabBar;tabs=[];currentSheet=0;currentWorksheet=null;opts;resizeObserver=null;anchorCell=null;activeCell=null;selectionMode=`cells`;isSelecting=!1;selectionOverlay;keydownHandler=null;pendingTap=null;constructor(e,t={}){this.opts=t,this.wb=new Wt;let n=document.createElement(`div`);n.style.cssText=`position:relative;width:100%;height:100%;border:1px solid #c8ccd0;background:#fff;box-sizing:border-box;font-family:sans-serif;display:flex;flex-direction:column;`,this.canvasArea=document.createElement(`div`),this.canvasArea.style.cssText=`position:relative;flex:1;min-height:0;overflow:hidden;`,this.canvas=document.createElement(`canvas`),this.canvas.style.cssText=`position:absolute;top:0;left:0;z-index:0;display:block;`,this.selectionOverlay=document.createElement(`div`),this.selectionOverlay.style.cssText=`position:absolute;top:0;left:0;z-index:1;pointer-events:none;overflow:hidden;width:100%;height:100%;`,this.scrollHost=document.createElement(`div`),this.scrollHost.style.cssText=`position:absolute;inset:0;overflow:auto;z-index:2;background:transparent;`,this.spacer=document.createElement(`div`),this.spacer.style.cssText=`position:absolute;top:0;left:0;pointer-events:none;`,this.scrollHost.appendChild(this.spacer),this.canvasArea.appendChild(this.canvas),this.canvasArea.appendChild(this.selectionOverlay),this.canvasArea.appendChild(this.scrollHost),this.tabBar=document.createElement(`div`),this.tabBar.style.cssText=`display:flex;align-items:flex-end;height:${Gt}px;flex-shrink:0;background:#f0f0f0;border-top:1px solid #c8ccd0;overflow-x:auto;overflow-y:hidden;padding:0 4px;gap:1px;scrollbar-width:none;`;let r=document.createElement(`style`);r.textContent=`.xlsx-tab-bar::-webkit-scrollbar{display:none}`,document.head.appendChild(r),this.tabBar.classList.add(`xlsx-tab-bar`),n.appendChild(this.canvasArea),n.appendChild(this.tabBar),e.appendChild(n),this.scrollHost.addEventListener(`scroll`,()=>{this.renderCurrentSheet(),this.updateSelectionOverlay()}),this.resizeObserver=new ResizeObserver(()=>{this.renderCurrentSheet(),this.updateSelectionOverlay()}),this.resizeObserver.observe(this.canvasArea),this.setupSelectionEvents()}async load(e){try{await this.wb.load(e,{useGoogleFonts:this.opts.useGoogleFonts}),this.buildTabs(),this.opts.onReady?.(this.wb.sheetNames),await this.showSheet(0)}catch(e){this.opts.onError?.(e instanceof Error?e:Error(String(e)))}}async showSheet(e){this.currentSheet=e,this.scrollHost.scrollLeft=0,this.scrollHost.scrollTop=0,this.anchorCell=null,this.activeCell=null,this.selectionMode=`cells`,this.updateSelectionOverlay(),this.updateTabActive(e),this.currentWorksheet=await this.wb.getWorksheet(e),this.updateSpacerSize(this.currentWorksheet),await this.renderCurrentSheet(),this.opts.onSheetChange?.(e,this.wb.sheetNames[e]??``)}getCellAt(e,t){let n=this.currentWorksheet;if(!n)return null;let r=this.opts.cellScale??1,i=this.canvasArea.getBoundingClientRect(),a=(e-i.left)/r,o=(t-i.top)/r;if(a<50||o<22)return null;let s=a-50,c=o-22,l=n.freezeRows??0,u=n.freezeCols??0,d=0,f=[];for(let e=1;e<=l;e++){let t=y(n.rowHeights[e]??n.defaultRowHeight);f.push(t),d+=t}let p=0,m=[];for(let e=1;e<=u;e++){let t=v(n.colWidths[e]??n.defaultColWidth,_(n));m.push(t),p+=t}let h;if(c<d){h=-1;let e=0;for(let t=0;t<l;t++)if(e+=f[t],c<e){h=t+1;break}if(h===-1)return null}else{let e=c-d+this.scrollHost.scrollTop/r;h=-1;let t=0;for(let r=l+1;r<=1048576;r++)if(t+=y(n.rowHeights[r]??n.defaultRowHeight),e<t){h=r;break}if(h===-1)return null}let g;if(s<p){g=-1;let e=0;for(let t=0;t<u;t++)if(e+=m[t],s<e){g=t+1;break}if(g===-1)return null}else{let e=s-p+this.scrollHost.scrollLeft/r;g=-1;let t=0;for(let r=u+1;r<=16384;r++)if(t+=v(n.colWidths[r]??n.defaultColWidth,_(n)),e<t){g=r;break}if(g===-1)return null}return{row:h,col:g}}getCellRect(e,t){let n=this.currentWorksheet;if(!n)return null;let r=this.opts.cellScale??1,i=n.freezeRows??0,a=n.freezeCols??0,o;if(t<=a){let e=50;for(let r=1;r<t;r++)e+=v(n.colWidths[r]??n.defaultColWidth,_(n));o=e*r}else{let e=0;for(let t=1;t<=a;t++)e+=v(n.colWidths[t]??n.defaultColWidth,_(n));let i=50+e;for(let e=a+1;e<t;e++)i+=v(n.colWidths[e]??n.defaultColWidth,_(n));o=(i-this.scrollHost.scrollLeft/r)*r}let s;if(e<=i){let t=22;for(let r=1;r<e;r++)t+=y(n.rowHeights[r]??n.defaultRowHeight);s=t*r}else{let t=0;for(let e=1;e<=i;e++)t+=y(n.rowHeights[e]??n.defaultRowHeight);let a=22+t;for(let t=i+1;t<e;t++)a+=y(n.rowHeights[t]??n.defaultRowHeight);s=(a-this.scrollHost.scrollTop/r)*r}let c=v(n.colWidths[t]??n.defaultColWidth,_(n))*r,l=y(n.rowHeights[e]??n.defaultRowHeight)*r;return{x:o,y:s,w:c,h:l}}get selection(){return!this.anchorCell||!this.activeCell?null:{anchor:this.anchorCell,active:this.activeCell,mode:this.selectionMode}}getHeaderHit(e,t){let n=this.currentWorksheet;if(!n)return null;let r=this.opts.cellScale??1,i=this.canvasArea.getBoundingClientRect(),a=(e-i.left)/r,o=(t-i.top)/r,s=a<50,c=o<22;if(!s&&!c)return null;if(s&&c)return{kind:`corner`};let l=n.freezeRows??0,u=n.freezeCols??0;if(s){let e=o-22;if(e<0)return{kind:`corner`};let t=0,i=[];for(let e=1;e<=l;e++){let r=y(n.rowHeights[e]??n.defaultRowHeight);i.push(r),t+=r}if(e<t){let t=0;for(let n=0;n<l;n++)if(t+=i[n],e<t)return{kind:`row`,row:n+1};return null}let a=e-t+this.scrollHost.scrollTop/r,s=0;for(let e=l+1;e<=1048576;e++)if(s+=y(n.rowHeights[e]??n.defaultRowHeight),a<s)return{kind:`row`,row:e};return null}let d=a-50;if(d<0)return{kind:`corner`};let f=0,p=[];for(let e=1;e<=u;e++){let t=v(n.colWidths[e]??n.defaultColWidth,_(n));p.push(t),f+=t}if(d<f){let e=0;for(let t=0;t<u;t++)if(e+=p[t],d<e)return{kind:`col`,col:t+1};return null}let m=d-f+this.scrollHost.scrollLeft/r,h=0;for(let e=u+1;e<=16384;e++)if(h+=v(n.colWidths[e]??n.defaultColWidth,_(n)),m<h)return{kind:`col`,col:e};return null}copySelection(){let e=this.currentWorksheet;if(!e||!this.anchorCell||!this.activeCell)return;let t=1,n=1;for(let r of e.rows){r.index>t&&(t=r.index);for(let e of r.cells)e.col>n&&(n=e.col)}let r,i,a,o;this.selectionMode===`all`?(r=1,i=t,a=1,o=n):this.selectionMode===`rows`?(r=Math.min(this.anchorCell.row,this.activeCell.row),i=Math.max(this.anchorCell.row,this.activeCell.row),a=1,o=n):this.selectionMode===`cols`?(a=Math.min(this.anchorCell.col,this.activeCell.col),o=Math.max(this.anchorCell.col,this.activeCell.col),r=1,i=t):(r=Math.min(this.anchorCell.row,this.activeCell.row),i=Math.max(this.anchorCell.row,this.activeCell.row),a=Math.min(this.anchorCell.col,this.activeCell.col),o=Math.max(this.anchorCell.col,this.activeCell.col));let s=new Map;for(let t of e.rows)if(!(t.index<r||t.index>i))for(let e of t.cells){if(e.col<a||e.col>o)continue;let n=e.value,r=``;n.type===`text`?r=n.runs?n.runs.map(e=>e.text).join(``):n.text:n.type===`number`?r=String(n.number):n.type===`bool`?r=n.bool?`TRUE`:`FALSE`:n.type===`error`&&(r=n.error),r&&s.set(`${t.index}:${e.col}`,r)}let c=[];for(let e=r;e<=i;e++){let t=[];for(let n=a;n<=o;n++)t.push(s.get(`${e}:${n}`)??``);c.push(t.join(` `))}navigator.clipboard.writeText(c.join(`
|
|
11
|
-
`)).catch(()=>void 0)}updateSelectionOverlay(){if(this.selectionOverlay.innerHTML=``,!this.anchorCell||!this.activeCell)return;let e=this.opts.cellScale??1,t=this.currentWorksheet,n=t?.freezeRows??0,r=t?.freezeCols??0,i=0;if(t)for(let e=1;e<=n;e++)i+=y(t.rowHeights[e]??t.defaultRowHeight);let a=0;if(t)for(let e=1;e<=r;e++)a+=v(t.colWidths[e]??t.defaultColWidth,_(t));let o,s,c,l,u=1,d=1;if(this.selectionMode===`all`)o=50*e,s=22*e,c=this.canvasArea.clientWidth-50*e,l=this.canvasArea.clientHeight-22*e;else if(this.selectionMode===`rows`){u=Math.min(this.anchorCell.row,this.activeCell.row);let t=Math.max(this.anchorCell.row,this.activeCell.row),n=this.getCellRect(u,1),r=this.getCellRect(t,1);if(!n||!r)return;o=50*e,s=n.y,c=this.canvasArea.clientWidth-50*e,l=r.y+r.h-n.y}else if(this.selectionMode===`cols`){d=Math.min(this.anchorCell.col,this.activeCell.col);let t=Math.max(this.anchorCell.col,this.activeCell.col),n=this.getCellRect(1,d),r=this.getCellRect(1,t);if(!n||!r)return;o=n.x,s=22*e,c=r.x+r.w-n.x,l=this.canvasArea.clientHeight-22*e}else{u=Math.min(this.anchorCell.row,this.activeCell.row);let e=Math.max(this.anchorCell.row,this.activeCell.row);d=Math.min(this.anchorCell.col,this.activeCell.col);let t=Math.max(this.anchorCell.col,this.activeCell.col),n=this.getCellRect(u,d),r=this.getCellRect(e,t);if(!n||!r)return;o=n.x,s=n.y,c=r.x+r.w-n.x,l=r.y+r.h-n.y}o<50*e&&(c-=50*e-o,o=50*e),s<22*e&&(l-=22*e-s,s=22*e);let f=(50+a)*e,p=(22+i)*e;if(d>r&&o<f&&(c-=f-o,o=f),u>n&&s<p&&(l-=p-s,s=p),c<=0||l<=0)return;let m=document.createElement(`div`);m.style.cssText=`position:absolute;left:${o}px;top:${s}px;width:${c}px;height:${l}px;box-sizing:border-box;border:2px solid #1a73e8;background:rgba(26,115,232,0.08);pointer-events:none;`,this.selectionOverlay.appendChild(m)}applyPointerSelection(e,t,n,r,i){let a=this.getHeaderHit(e,t);if(a){a.kind===`corner`?(this.selectionMode=`all`,this.anchorCell={row:1,col:1},this.activeCell={row:1,col:1},this.isSelecting=!1):a.kind===`row`?n&&this.anchorCell&&this.selectionMode===`rows`?this.activeCell={row:a.row,col:1}:(this.selectionMode=`rows`,this.anchorCell={row:a.row,col:1},this.activeCell={row:a.row,col:1},i&&(this.isSelecting=!0,this.scrollHost.setPointerCapture(r))):n&&this.anchorCell&&this.selectionMode===`cols`?this.activeCell={row:1,col:a.col}:(this.selectionMode=`cols`,this.anchorCell={row:1,col:a.col},this.activeCell={row:1,col:a.col},i&&(this.isSelecting=!0,this.scrollHost.setPointerCapture(r))),this.updateSelectionOverlay(),this.opts.onSelectionChange?.(this.selection);return}let o=this.getCellAt(e,t);o&&(n&&this.anchorCell&&this.selectionMode===`cells`?this.activeCell=o:(this.selectionMode=`cells`,this.anchorCell=o,this.activeCell=o),i&&(this.isSelecting=!0,this.scrollHost.setPointerCapture(r)),this.updateSelectionOverlay(),this.opts.onSelectionChange?.(this.selection))}setupSelectionEvents(){this.scrollHost.addEventListener(`pointerdown`,e=>{if(e.button===0){if(e.pointerType!==`mouse`){this.pendingTap={x:e.clientX,y:e.clientY,shiftKey:e.shiftKey,pointerId:e.pointerId};return}this.applyPointerSelection(e.clientX,e.clientY,e.shiftKey,e.pointerId,!0)}}),this.scrollHost.addEventListener(`pointermove`,e=>{if(this.pendingTap&&this.pendingTap.pointerId===e.pointerId){let t=e.clientX-this.pendingTap.x,n=e.clientY-this.pendingTap.y;t*t+n*n>64&&(this.pendingTap=null)}if(this.isSelecting){if(this.selectionMode===`rows`){let t=this.getHeaderHit(e.clientX,e.clientY),n=t?.kind===`row`?t.row:this.getCellAt(e.clientX,e.clientY)?.row;if(!n||n===this.activeCell?.row)return;this.activeCell={row:n,col:1}}else if(this.selectionMode===`cols`){let t=this.getHeaderHit(e.clientX,e.clientY),n=t?.kind===`col`?t.col:this.getCellAt(e.clientX,e.clientY)?.col;if(!n||n===this.activeCell?.col)return;this.activeCell={row:1,col:n}}else{let t=this.getCellAt(e.clientX,e.clientY);if(!t||t.row===this.activeCell?.row&&t.col===this.activeCell?.col)return;this.activeCell=t}this.updateSelectionOverlay(),this.opts.onSelectionChange?.(this.selection)}}),this.scrollHost.addEventListener(`pointerup`,e=>{if(this.pendingTap&&this.pendingTap.pointerId===e.pointerId){let t=e.clientX-this.pendingTap.x,n=e.clientY-this.pendingTap.y;t*t+n*n<=64&&this.applyPointerSelection(e.clientX,e.clientY,this.pendingTap.shiftKey,e.pointerId,!1),this.pendingTap=null}this.isSelecting=!1}),this.scrollHost.addEventListener(`pointercancel`,e=>{this.pendingTap&&this.pendingTap.pointerId===e.pointerId&&(this.pendingTap=null),this.isSelecting=!1}),this.keydownHandler=e=>{(e.ctrlKey||e.metaKey)&&e.key===`c`&&this.copySelection()},document.addEventListener(`keydown`,this.keydownHandler)}buildTabs(){this.tabBar.innerHTML=``,this.tabs=[],this.wb.sheetNames.forEach((e,t)=>{let n=document.createElement(`button`);n.textContent=e,n.title=e,n.style.cssText=this.tabStyle(!1),n.addEventListener(`click`,()=>this.showSheet(t)),this.tabBar.appendChild(n),this.tabs.push(n)})}updateTabActive(e){this.tabs.forEach((t,n)=>{t.style.cssText=this.tabStyle(n===e)}),this.tabs[e]?.scrollIntoView({block:`nearest`,inline:`nearest`})}tabStyle(e){let t=
|
|
9
|
+
`),n=Math.round(z.size*p*1.2),r=t.length*n,i;D===`top`?(i=v+2,e.textBaseline=`top`):D===`center`?(i=v+(L-r)/2,e.textBaseline=`top`):(i=v+L-r-2,e.textBaseline=`top`);for(let r=0;r<t.length;r++)e.fillText(t[r],K,i+r*n)}else{let t;D===`top`?(e.textBaseline=`top`,t=v+2):D===`center`?(e.textBaseline=`middle`,t=v+L/2):(e.textBaseline=`bottom`,t=v+L-2),e.fillText(U,K,t)}}e.restore(),q&&t.onTextRun&&t.onTextRun({text:q,x:u,y:v,width:F,height:L,row:c,col:o})})}}for(let e of I)e();e.restore()}function ut(e,t,n,r,i={}){let a=i.dpr??1,o=i.cellScale??1,s=_(t),c=e.canvas.width/a,l=e.canvas.height/a;e.clearRect(0,0,c,l),e.fillStyle=`#ffffff`,e.fillRect(0,0,c,l);let u=e=>Math.round(e*o),d=u(50),f=u(22),{row:p,col:h,rows:g,cols:b}=r,x=(i.scrollOffsetX??0)*o,S=(i.scrollOffsetY??0)*o,C=i.freezeRows??0,w=i.freezeCols??0,T=[];for(let e=1;e<=w;e++)T.push(u(v(t.colWidths[e]??t.defaultColWidth,s)));let D=[];for(let e=1;e<=C;e++)D.push(u(y(t.rowHeights[e]??t.defaultRowHeight)));let O=T.reduce((e,t)=>e+t,0),k=D.reduce((e,t)=>e+t,0),A=[];for(let e=h;e<h+b;e++)A.push(u(v(t.colWidths[e]??t.defaultColWidth,s)));let ee=[];for(let e=p;e<p+g;e++)ee.push(u(y(t.rowHeights[e]??t.defaultRowHeight)));let te=new Map;for(let e of t.rows)for(let t of e.cells)te.set(`${t.row}:${t.col}`,t);let ne=new Map,re=new Set;for(let e of t.mergeCells??[]){let n=0;for(let r=e.left;r<=e.right;r++)n+=u(v(t.colWidths[r]??t.defaultColWidth,s));let r=0;for(let n=e.top;n<=e.bottom;n++)r+=u(y(t.rowHeights[n]??t.defaultRowHeight));ne.set(`${e.top}:${e.left}`,{totalW:n,totalH:r,right:e.right,bottom:e.bottom});for(let t=e.top;t<=e.bottom;t++)for(let n=e.left;n<=e.right;n++)t===e.top&&n===e.left||re.add(`${t}:${n}`)}let j=q(t),ie=new Set;if(t.autoFilter){let e=t.autoFilter;for(let t=e.left;t<=e.right;t++)ie.add(`${e.top}:${t}`)}let M=new Map;for(let e of t.hyperlinks??[])e.url&&M.set(`${e.row}:${e.col}`,e.url);let ae=new Set;for(let e of t.commentRefs??[]){let t=E(e);t&&ae.add(`${t.row}:${t.col}`)}let N={worksheet:t,styles:n,cellMap:te,mergeAnchorMap:ne,mergeSkipSet:re,cfContext:j,colWidths:A,rowHeights:ee,frozenColWidths:T,frozenRowHeights:D,frozenW:O,frozenH:k,startRow:p,startCol:h,cs:o,dpr:a,autoFilterCells:ie,hyperlinkMap:M,commentCells:ae,tableStyleMap:ot(t),sparklineMap:st(t),mdw:s,onTextRun:i.onTextRun},P=d,F=f,I=P+O,L=F+k,R=Math.max(0,c-I),z=Math.max(0,l-L);C>0&&w>0&<(e,N,1,1,T,D,0,0,P,F,P,F,O,k),C>0&<(e,N,1,h,A,D,x,0,I,F,I,F,R,k),w>0&<(e,N,p,1,T,ee,0,S,P,L,P,L,O,z),lt(e,N,p,h,A,ee,x,S,I,L,I,L,R,z),t.images&&t.images.length>0&&i.loadedImages&&mt(e,t,i.loadedImages,o,p,h,x,S,I,L,R,z),t.shapeGroups&&t.shapeGroups.length>0&&ht(e,t,o,p,h,x,S,I,L,R,z,i.loadedImages),t.charts&&t.charts.length>0&&Ot(e,t,o,p,h,x,S,I,L,R,z),t.slicers&&t.slicers.length>0&&Vt(e,t,o,p,h,x,S,I,L,R,z),dt(e,c,l,p,h,g,b,A,ee,x,S,T,D,O,k,d,f,o,a),C>0&&(e.save(),e.strokeStyle=m,e.lineWidth=.5,e.beginPath(),e.moveTo(d,L+.5),e.lineTo(c,L+.5),e.stroke(),e.restore()),w>0&&(e.save(),e.strokeStyle=m,e.lineWidth=.5,e.beginPath(),e.moveTo(I+.5,f),e.lineTo(I+.5,l),e.stroke(),e.restore())}function dt(e,t,n,r,i,a,o,s,c,l,d,f,p,m,h,g,_,v,y){let b=`#f8f9fa`,x=`#c8ccd0`,S=`#444`,C=`${Math.max(1,Math.round(11*v))}px ${u}`,w=g+m,T=_+h,E=.5/y;e.fillStyle=b,e.fillRect(0,0,g,_),e.strokeStyle=x,e.lineWidth=.5,e.beginPath(),e.moveTo(E,0),e.lineTo(E,_),e.moveTo(0,E),e.lineTo(g,E),e.moveTo(g-E,0),e.lineTo(g-E,_),e.moveTo(0,_-E),e.lineTo(g,_-E),e.stroke(),e.font=C,e.fillStyle=S;let D=(t,n,r)=>{e.fillStyle=b,e.fillRect(n,0,r,_),e.strokeStyle=x,e.lineWidth=.5,e.beginPath(),e.moveTo(n+r-E,0),e.lineTo(n+r-E,_),e.moveTo(n,_-E),e.lineTo(n+r,_-E),e.moveTo(n,E),e.lineTo(n+r,E),e.stroke(),e.fillStyle=S,e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(ue(t),n+r/2,_/2)},O=(t,n,r)=>{e.fillStyle=b,e.fillRect(0,n,g,r),e.strokeStyle=x,e.lineWidth=.5,e.beginPath(),e.moveTo(g-E,n),e.lineTo(g-E,n+r),e.moveTo(0,n+r-E),e.lineTo(g,n+r-E),e.moveTo(E,n),e.lineTo(E,n+r),e.stroke(),e.fillStyle=S,e.textAlign=`right`,e.textBaseline=`middle`,e.fillText(String(t),g-Math.max(2,Math.round(4*v)),n+r/2)};if(f.length>0){e.save(),e.beginPath(),e.rect(g,0,m,_),e.clip();let t=g;for(let e=0;e<f.length;e++)D(e+1,t,f[e]),t+=f[e];e.restore()}e.save(),e.beginPath(),e.rect(w,0,t-w,_),e.clip();let k=w-l;for(let e=0;e<s.length;e++){let n=s[e];k+n>w&&k<t&&D(i+e,k,n),k+=n}if(e.restore(),p.length>0){e.save(),e.beginPath(),e.rect(0,_,g,h),e.clip();let t=_;for(let e=0;e<p.length;e++)O(e+1,t,p[e]),t+=p[e];e.restore()}e.save(),e.beginPath(),e.rect(0,T,g,n-T),e.clip();let A=T-d;for(let e=0;e<c.length;e++){let t=c[e];A+t>T&&A<n&&O(r+e,A,t),A+=t}e.restore()}var $=9525;function ft(e,t,n){let r=_(e),i=0;for(let a=1;a<t;a++)i+=Math.round(v(e.colWidths[a]??e.defaultColWidth,r)*n);return i}function pt(e,t,n){let r=0;for(let i=1;i<t;i++)r+=Math.round(y(e.rowHeights[i]??e.defaultRowHeight)*n);return r}function mt(e,t,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=ft(t,a,r),p=pt(t,i,r);e.save(),e.beginPath(),e.rect(c,l,u,d),e.clip();for(let i of t.images){let a=n.get(i.dataUrl);if(!a)continue;let m=i.fromCol+1,h=i.fromRow+1,g=i.toCol+1,_=i.toRow+1,v=ft(t,m,r)+i.fromColOff*r/$,y=pt(t,h,r)+i.fromRowOff*r/$,b=ft(t,g,r)+i.toColOff*r/$,x=pt(t,_,r)+i.toRowOff*r/$,S=b-v,C=x-y;if(S<=0||C<=0)continue;let w=c+(v-f)-o,T=l+(y-p)-s;w+S<c||w>c+u||T+C<l||T>l+d||e.drawImage(a,w,T,S,C)}e.restore()}function ht(e,t,n,r,i,a,o,s,c,l,u,d){if(l<=0||u<=0)return;let f=t.shapeGroups;if(!f||f.length===0)return;let p=ft(t,i,n),m=pt(t,r,n);e.save(),e.beginPath(),e.rect(s,c,l,u),e.clip();for(let r of f){let i=r.fromCol+1,f=r.fromRow+1,h=r.toCol+1,g=r.toRow+1,_=ft(t,i,n)+r.fromColOff*n/$,v=pt(t,f,n)+r.fromRowOff*n/$,y=ft(t,h,n)+r.toColOff*n/$,b=pt(t,g,n)+r.toRowOff*n/$,x=y-_,S=b-v;if(x<=0||S<=0)continue;let C=s+(_-p)-a,w=c+(v-m)-o;if(!(C+x<s||C>s+l)&&!(w+S<c||w>c+u))for(let t of r.shapes){let n=C+t.x*x,r=w+t.y*S,i=t.w*x,a=t.h*S;i<=0||a<=0||gt(e,t,n,r,i,a,d)}}e.restore()}function gt(e,t,n,r,i,a,o){if(e.save(),t.rot===0?e.translate(n,r):(e.translate(n+i/2,r+a/2),e.rotate(t.rot*Math.PI/180),e.translate(-i/2,-a/2)),t.geom.type===`custom`)for(let n of t.geom.paths){if(n.w<=0||n.h<=0)continue;let r=i/n.w,o=a/n.h;e.beginPath();let s=0,c=0,l=0,u=0;for(let t of n.commands)switch(t.op){case`moveTo`:{let n=t.x*r,i=t.y*o;e.moveTo(n,i),s=l=n,c=u=i;break}case`lineTo`:{let n=t.x*r,i=t.y*o;e.lineTo(n,i),s=n,c=i;break}case`cubicBezTo`:{let n=t.x3*r,i=t.y3*o;e.bezierCurveTo(t.x1*r,t.y1*o,t.x2*r,t.y2*o,n,i),s=n,c=i;break}case`quadBezTo`:{let n=t.x2*r,i=t.y2*o;e.quadraticCurveTo(t.x1*r,t.y1*o,n,i),s=n,c=i;break}case`arcTo`:{let n=t.wr*r,i=t.hr*o;if(n<=0||i<=0)break;let a=t.stAng/6e4*(Math.PI/180),l=t.swAng/6e4*(Math.PI/180),u=s-Math.cos(a)*n,d=c-Math.sin(a)*i,f=a+l;e.ellipse(u,d,n,i,0,a,f,l<0),s=u+Math.cos(f)*n,c=d+Math.sin(f)*i;break}case`close`:e.closePath(),s=l,c=u;break}vt(e,t)}else if(t.geom.type===`preset`){switch(e.beginPath(),t.geom.name){case`ellipse`:case`roundRect`:{let t=i/2,n=a/2;e.ellipse(t,n,t,n,0,0,Math.PI*2);break}default:e.rect(0,0,i,a)}vt(e,t)}else if(t.geom.type===`image`){let n=o?.get(t.geom.dataUrl);n&&e.drawImage(n,0,0,i,a)}t.text&&_t(e,t.text,i,a),e.restore()}function _t(e,t,n,r){if(n<=0||r<=0||t.paragraphs.length===0)return;let i=Math.max(0,n-14),a=Math.max(0,r-8);if(i<=0||a<=0)return;let o=e=>{let t=(e.size>0?e.size:d)*p,n=e.fontFace?`"${e.fontFace}", ${u}`:u,r=e.bold?`bold `:``;return{font:`${e.italic?`italic `:``}${r}${t}px ${n}`,size:t}},s=t.wrap!==`none`,c=[];for(let n of t.paragraphs){let t=n.align||`l`,r=[],a=0,l=0,u=0,d=()=>{c.push({runs:r,align:t,height:l,ascent:u}),r=[],a=0,l=0,u=0};for(let t of n.runs){let{font:n,size:c}=o(t);l=Math.max(l,c*1.2),u=Math.max(u,c*.85),e.font=n;let f=t.text.split(`
|
|
10
|
+
`);for(let o=0;o<f.length;o++){o>0&&d();let p=f[o];if(!p)continue;if(!s){r.push({text:p,run:t}),a+=e.measureText(p).width;continue}let m=``;for(let o of p){let s=m+o,f=e.measureText(s).width;a+f>i&&(m.length>0||r.length>0)?(m&&(r.push({text:m,run:t}),a+=e.measureText(m).width),d(),m=o,e.font=n,l=Math.max(l,c*1.2),u=Math.max(u,c*.85)):m=s}m&&(r.push({text:m,run:t}),a+=e.measureText(m).width)}}d()}let l=c.reduce((e,t)=>e+t.height,0),f=4;t.anchor===`ctr`?f=4+(a-l)/2:t.anchor===`b`&&(f=4+Math.max(0,a-l)),e.textBaseline=`middle`;let m=f;for(let t of c){let n=m+t.height/2,r=0;for(let n of t.runs){let{font:t}=o(n.run);e.font=t,r+=e.measureText(n.text).width}let a=7;t.align===`ctr`?a=7+Math.max(0,(i-r)/2):t.align===`r`&&(a=7+Math.max(0,i-r));for(let r of t.runs){let{font:t}=o(r.run);e.font=t,e.fillStyle=r.run.color??`#000000`,e.fillText(r.text,a,n),a+=e.measureText(r.text).width}m+=t.height}}function vt(e,t){t.fillColor&&(e.fillStyle=t.fillColor,e.fill()),t.strokeColor&&t.strokeWidth>0&&(e.strokeStyle=t.strokeColor,e.lineWidth=Math.max(.5,t.strokeWidth/$),e.stroke())}function yt(e,t,n,r,i,a,o){if(r===n&&i===t)return e;let s=(e,r)=>{if(e===t&&r===n)return null;let i=a.get(`${e}:${r}`);return i?ee(o,i.styleIndex).border:null},c=s(t,r),l=s(i,n),u=s(i,r),d=(e,...t)=>{if(e?.style)return e;for(let e of t)if(e?.style)return e;return e??null};return{left:e.left,top:e.top,right:d(c?.right,u?.right,e.right),bottom:d(l?.bottom,u?.bottom,e.bottom),diagonalUp:e.diagonalUp??null,diagonalDown:e.diagonalDown??null}}function bt(e,t){if(!t)return e;let n=(e,t)=>t&&t.style?t:e??null;return{left:n(e.left,t.left),right:n(e.right,t.right),top:n(e.top,t.top),bottom:n(e.bottom,t.bottom),diagonalUp:n(e.diagonalUp,t.diagonalUp),diagonalDown:n(e.diagonalDown,t.diagonalDown)}}function xt(e,t,n,r,i,a,o=!1,s=!1){let c=[{edge:t.top,x1:n,y1:r,x2:n+i,y2:r,kind:`h`},{edge:t.bottom,x1:n,y1:r+a,x2:n+i,y2:r+a,kind:`h`},{edge:t.left,x1:n,y1:r,x2:n,y2:r+a,kind:`v`},{edge:t.right,x1:n+i,y1:r,x2:n+i,y2:r+a,kind:`v`},{edge:t.diagonalUp,x1:n,y1:r+a,x2:n+i,y2:r,kind:`d`},{edge:t.diagonalDown,x1:n,y1:r,x2:n+i,y2:r+a,kind:`d`}];for(let{edge:t,x1:l,y1:u,x2:d,y2:f,kind:p}of c){if(!t||!t.style||t.style===`none`)continue;let c=t.color?b(t.color):`#000000`;if(t.style===`double`&&p!==`d`){if(e.strokeStyle=c,e.lineWidth=1,e.setLineDash([]),e.beginPath(),p===`h`){let t=u===r,s=t&&o,c=t?s?r+1:r-1:r+a+1,l=t?s?r-1:r+1:r+a-1;e.moveTo(n-1,c),e.lineTo(n+i+1,c),e.moveTo(n+1,l),e.lineTo(n+i-1,l)}else{let t=l===n,o=t&&s,c=t?o?n+1:n-1:n+i+1,u=t?o?n-1:n+1:n+i-1;e.moveTo(c,r-1),e.lineTo(c,r+a+1),e.moveTo(u,r+1),e.lineTo(u,r+a-1)}e.stroke();continue}e.beginPath(),e.strokeStyle=c,e.lineWidth=St(t.style);let m=Ct(t.style);e.setLineDash(m),e.moveTo(l,u),e.lineTo(d,f),e.stroke(),e.setLineDash([])}}function St(e){switch(e){case`thick`:return 3;case`medium`:case`mediumDashed`:case`mediumDashDot`:case`mediumDashDotDot`:case`slantDashDot`:return 2;case`hair`:return .5;default:return 1}}function Ct(e){switch(e){case`hair`:return[1,1];case`dashed`:case`mediumDashed`:return[4,3];case`dotted`:return[2,2];case`dashDot`:case`mediumDashDot`:return[4,2,1,2];case`dashDotDot`:case`mediumDashDotDot`:return[4,2,1,2,1,2];case`slantDashDot`:return[5,3,1,3];default:return[]}}function wt(e){switch(e){case`double`:return 13;case`thick`:return 12;case`medium`:return 11;case`mediumDashed`:return 10;case`mediumDashDot`:return 9;case`slantDashDot`:return 8;case`mediumDashDotDot`:return 7;case`thin`:return 6;case`dashed`:return 5;case`dashDot`:return 4;case`dashDotDot`:return 3;case`dotted`:return 2;case`hair`:return 1;default:return 0}}function Tt(e,t){let n=wt(e?.style),r=wt(t?.style);return n===0&&r===0?null:n>=r?e??null:t??null}function Et(e){let t=e.chartType,n=e.grouping;if(t===`bar`){let t=e.barDir===`bar`;return n===`stacked`?t?`stackedBarH`:`stackedBar`:n===`percentStacked`?t?`stackedBarHPct`:`stackedBarPct`:t?`clusteredBarH`:`clusteredBar`}return t===`line`?n===`stacked`?`stackedLine`:n===`percentStacked`?`stackedLinePct`:`line`:t===`area`?n===`stacked`?`stackedArea`:n===`percentStacked`?`stackedAreaPct`:`area`:t}function Dt(e){return{chartType:Et(e),title:e.title,categories:e.categories,catAxisFormatCode:e.catAxisFormatCode??null,catAxisMin:e.catAxisMin??null,catAxisMax:e.catAxisMax??null,titleFontBold:e.titleFontBold??null,catAxisFontBold:e.catAxisFontBold??null,valAxisFontBold:e.valAxisFontBold??null,catAxisCrosses:e.catAxisCrosses??null,catAxisCrossesAt:e.catAxisCrossesAt??null,valAxisCrosses:e.valAxisCrosses??null,valAxisCrossesAt:e.valAxisCrossesAt??null,catAxisLineColor:e.catAxisLineColor??null,catAxisLineWidthEmu:e.catAxisLineWidthEmu??null,valAxisLineColor:e.valAxisLineColor??null,valAxisLineWidthEmu:e.valAxisLineWidthEmu??null,series:e.series.map(e=>({name:e.name,color:e.color??null,values:e.values,seriesType:e.seriesType??null,categories:e.categories.length>0?e.categories:null,showMarker:e.showMarker??null,valFormatCode:e.valFormatCode??null,markerSymbol:e.markerSymbol??null,markerSize:e.markerSize??null,markerFill:e.markerFill??null,markerLine:e.markerLine??null,dataPointOverrides:e.dataPointOverrides??null,dataLabelOverrides:e.dataLabelOverrides??null,seriesDataLabels:e.seriesDataLabels??null,errBars:e.errBars??null})),showDataLabels:e.showDataLabels??!1,valMin:e.valAxisMin??null,valMax:e.valAxisMax??null,catAxisTitle:e.catAxisTitle??null,valAxisTitle:e.valAxisTitle??null,catAxisHidden:e.catAxisHidden??!1,valAxisHidden:e.valAxisHidden??!1,plotAreaBg:null,chartBg:e.hasChartSpPr?e.chartBg??null:`FFFFFF`,legendManualLayout:e.legendManualLayout??null,showLegend:e.showLegend??!1,legendPos:e.legendPos??null,catAxisCrossBetween:`between`,valAxisMajorTickMark:e.valAxisMajorTickMark??`out`,catAxisMajorTickMark:e.catAxisMajorTickMark??`out`,valAxisMinorTickMark:e.valAxisMinorTickMark??null,catAxisMinorTickMark:e.catAxisMinorTickMark??null,titleFontSizeHpt:e.titleFontSizeHpt??null,titleFontColor:e.titleFontColor??null,titleFontFace:e.titleFontFace??null,catAxisFontSizeHpt:e.catAxisFontSizeHpt??null,valAxisFontSizeHpt:e.valAxisFontSizeHpt??null,dataLabelFontSizeHpt:null,subtotalIndices:[],valAxisFormatCode:e.valAxisFormatCode??null,barGapWidth:e.barGapWidth??null,barOverlap:e.barOverlap??null,dataLabelPosition:e.dataLabelPosition??null,dataLabelFontColor:e.dataLabelFontColor??null,dataLabelFormatCode:e.dataLabelFormatCode??null,titleManualLayout:e.titleManualLayout??null,plotAreaManualLayout:e.plotAreaManualLayout??null}}function Ot(e,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=ft(n,a,r),p=pt(n,i,r);for(let i of n.charts){let a=i.fromCol+1,m=i.fromRow+1,h=i.toCol+1,g=i.toRow+1,_=ft(n,a,r)+i.fromColOff*r/$,v=pt(n,m,r)+i.fromRowOff*r/$,y=ft(n,h,r)+i.toColOff*r/$,b=pt(n,g,r)+i.toRowOff*r/$,x=y-_,S=b-v;if(x<=0||S<=0)continue;let C=c+(_-f)-o,w=l+(v-p)-s;if(C+x<c||C>c+u||w+S<l||w>l+d)continue;e.save(),e.beginPath(),e.rect(c,l,u,d),e.clip();let T=4/3*r;t.t(e,Dt(i.chart),{x:C,y:w,w:x,h:S},T),e.restore()}}var kt=`600 12px "Meiryo UI", "Segoe UI", sans-serif`,At=`11px "Meiryo UI", "Segoe UI", sans-serif`,jt=`#FFFFFF`,Mt=`#BFBFBF`,Nt=`#F2F2F2`,Pt=`#404040`,Ft=`#FFFFFF`,It=`#000000`,Lt=`#A5A5A5`,Rt=`#E7E6E6`,zt=`#A6A6A6`,Bt=`#C6C6C6`;function Vt(e,t,n,r,i,a,o,s,c,l,u){if(l<=0||u<=0)return;let d=t.slicers;if(!d)return;let f=ft(t,i,n),p=pt(t,r,n);for(let r of d){let i=r.fromCol+1,d=r.fromRow+1,m=r.toCol+1,h=r.toRow+1,g=ft(t,i,n)+r.fromColOff*n/$,_=pt(t,d,n)+r.fromRowOff*n/$,v=ft(t,m,n)+r.toColOff*n/$,y=pt(t,h,n)+r.toRowOff*n/$,b=v-g,x=y-_;if(b<=0||x<=0)continue;let S=s+(g-f)-a,C=c+(_-p)-o;S+b<s||S>s+l||C+x<c||C>c+u||(e.save(),e.beginPath(),e.rect(s,c,l,u),e.clip(),Ht(e,r.caption,r.items,S,C,b,x,n),e.restore())}}function Ht(e,t,n,r,i,a,o,s){e.fillStyle=jt,e.fillRect(r,i,a,o),e.strokeStyle=Mt,e.lineWidth=1,e.strokeRect(r+.5,i+.5,a-1,o-1);let c=Math.max(20*s,14);e.fillStyle=Nt,e.fillRect(r+1,i+1,a-2,c),e.fillStyle=Pt,e.font=Ut(kt,s),e.textBaseline=`middle`,e.textAlign=`left`;let l=6*s;if(Wt(e,t,r+l,i+c/2+1,a-2*l),n.length===0)return;let u=Math.max(1,Math.round(2*s)),d=4*s,f=r+d,p=i+c+d,m=a-2*d,h=o-c-2*d;if(m<=0||h<=0)return;let g=Math.max(18*s,16),_=Math.max(1,Math.floor((h+u)/(g+u))),v=Math.min(n.length,_),y=Math.min(g,(h-u*(v-1))/v);if(y<=0)return;e.font=Ut(At,s);let b=8*s;for(let t=0;t<v;t++){let r=n[t],i=p+t*(y+u),a=r.selected;e.fillStyle=a?Ft:Rt,e.fillRect(f,i,m,y),e.strokeStyle=a?Lt:Bt,e.lineWidth=1,e.strokeRect(f+.5,i+.5,m-1,y-1),e.fillStyle=a?It:zt,Wt(e,r.name,f+b,i+y/2+1,m-2*b)}}function Ut(e,t){return e.replace(/(\d+(?:\.\d+)?)px/,(e,n)=>`${Math.round(Number(n)*t)}px`)}function Wt(e,t,n,r,i){if(i<=0)return;let a=t;if(e.measureText(a).width>i){for(;a.length>0&&e.measureText(a+`…`).width>i;)a=a.slice(0,-1);a=a.length>0?a+`…`:``}e.fillText(a,n,r)}var Gt={calibri:{url:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Carlito`},cambria:{url:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`,loadFamily:`Caladea`}},Kt=class{worker;parsedWorkbook=null;sheetCache=new Map;imageCache=new Map;rawData=null;constructor(){this.worker=new c;let e=new URL(l,location.href).href;this.worker.postMessage({type:`init`,wasmUrl:e})}async load(t,n={}){let r=typeof t==`string`?await fetch(t).then(e=>e.arrayBuffer()):t;if(this.rawData=r,this.parsedWorkbook=await this.sendMessage({type:`parse`,data:r.slice(0)}),n.useGoogleFonts){let t=new Set;for(let e of this.parsedWorkbook.styles?.fonts??[])e.name&&t.add(e.name);await e.n(t,Gt)}}get sheetNames(){return this.parsedWorkbook?.workbook.sheets.map(e=>e.name)??[]}get sheetCount(){return this.parsedWorkbook?.workbook.sheets.length??0}async getWorksheet(e){if(this.sheetCache.has(e))return this.sheetCache.get(e);if(!this.parsedWorkbook||!this.rawData)throw Error(`Workbook not loaded`);let t=this.parsedWorkbook.workbook.sheets[e];if(!t)throw Error(`Sheet index ${e} out of range`);let n=await this.sendMessage({type:`parseSheet`,data:this.rawData.slice(0),sheetIndex:e,sheetName:t.name});return this.sheetCache.set(e,n),n}async renderViewport(e,t,n,r={}){if(!this.parsedWorkbook)throw Error(`Workbook not loaded`);let i=this.sheetCache.get(t)??await this.getWorksheet(t),a=this.parsedWorkbook.styles,o=[];if(i.images)for(let e of i.images)this.imageCache.has(e.dataUrl)||o.push(e.dataUrl);if(i.shapeGroups)for(let e of i.shapeGroups)for(let t of e.shapes)t.geom.type===`image`&&!this.imageCache.has(t.geom.dataUrl)&&o.push(t.geom.dataUrl);o.length>0&&await Promise.all(o.map(async e=>{let t=new Image;t.src=e,await new Promise((e,n)=>{t.onload=()=>e(),t.onerror=()=>n(Error(`image decode failed`))}),this.imageCache.set(e,t)})).catch(()=>{});let s=r.dpr??(typeof window<`u`?window.devicePixelRatio:1),c=e instanceof HTMLCanvasElement?e.clientWidth||800:e.width,l=e instanceof HTMLCanvasElement?e.clientHeight||600:e.height,u=r.width??c,d=r.height??l;e.width=Math.round(u*s),e.height=Math.round(d*s),e instanceof HTMLCanvasElement&&(e.style.width=`${u}px`,e.style.height=`${d}px`);let f=e.getContext(`2d`);f.scale(s,s),ut(f,i,a,n,{...r,dpr:s,loadedImages:this.imageCache})}destroy(){this.worker.terminate()}sendMessage(e){return new Promise((t,n)=>{let r=e=>{this.worker.removeEventListener(`message`,r),e.data.type===`error`?n(Error(e.data.message)):e.data.type===`parsed`?t(e.data.workbook):e.data.type===`parsedSheet`&&t(e.data.worksheet)};this.worker.addEventListener(`message`,r),this.worker.postMessage(e)})}},qt=30,Jt=class{wb;canvas;canvasArea;scrollHost;spacer;tabBar;tabs=[];currentSheet=0;currentWorksheet=null;opts;resizeObserver=null;anchorCell=null;activeCell=null;selectionMode=`cells`;isSelecting=!1;selectionOverlay;keydownHandler=null;pendingTap=null;constructor(e,t={}){this.opts=t,this.wb=new Kt;let n=document.createElement(`div`);n.style.cssText=`position:relative;width:100%;height:100%;border:1px solid #c8ccd0;background:#fff;box-sizing:border-box;font-family:sans-serif;display:flex;flex-direction:column;`,this.canvasArea=document.createElement(`div`),this.canvasArea.style.cssText=`position:relative;flex:1;min-height:0;overflow:hidden;`,this.canvas=document.createElement(`canvas`),this.canvas.style.cssText=`position:absolute;top:0;left:0;z-index:0;display:block;`,this.selectionOverlay=document.createElement(`div`),this.selectionOverlay.style.cssText=`position:absolute;top:0;left:0;z-index:1;pointer-events:none;overflow:hidden;width:100%;height:100%;`,this.scrollHost=document.createElement(`div`),this.scrollHost.style.cssText=`position:absolute;inset:0;overflow:auto;z-index:2;background:transparent;`,this.spacer=document.createElement(`div`),this.spacer.style.cssText=`position:absolute;top:0;left:0;pointer-events:none;`,this.scrollHost.appendChild(this.spacer),this.canvasArea.appendChild(this.canvas),this.canvasArea.appendChild(this.selectionOverlay),this.canvasArea.appendChild(this.scrollHost),this.tabBar=document.createElement(`div`),this.tabBar.style.cssText=`display:flex;align-items:flex-end;height:${qt}px;flex-shrink:0;background:#f0f0f0;border-top:1px solid #c8ccd0;overflow-x:auto;overflow-y:hidden;padding:0 4px;gap:1px;scrollbar-width:none;`;let r=document.createElement(`style`);r.textContent=`.xlsx-tab-bar::-webkit-scrollbar{display:none}`,document.head.appendChild(r),this.tabBar.classList.add(`xlsx-tab-bar`),n.appendChild(this.canvasArea),n.appendChild(this.tabBar),e.appendChild(n),this.scrollHost.addEventListener(`scroll`,()=>{this.renderCurrentSheet(),this.updateSelectionOverlay()}),this.resizeObserver=new ResizeObserver(()=>{this.renderCurrentSheet(),this.updateSelectionOverlay()}),this.resizeObserver.observe(this.canvasArea),this.setupSelectionEvents()}async load(e){try{await this.wb.load(e,{useGoogleFonts:this.opts.useGoogleFonts}),this.buildTabs(),this.opts.onReady?.(this.wb.sheetNames),await this.showSheet(0)}catch(e){this.opts.onError?.(e instanceof Error?e:Error(String(e)))}}async showSheet(e){this.currentSheet=e,this.scrollHost.scrollLeft=0,this.scrollHost.scrollTop=0,this.anchorCell=null,this.activeCell=null,this.selectionMode=`cells`,this.updateSelectionOverlay(),this.updateTabActive(e),this.currentWorksheet=await this.wb.getWorksheet(e),this.updateSpacerSize(this.currentWorksheet),await this.renderCurrentSheet(),this.opts.onSheetChange?.(e,this.wb.sheetNames[e]??``)}getCellAt(e,t){let n=this.currentWorksheet;if(!n)return null;let r=this.opts.cellScale??1,i=this.canvasArea.getBoundingClientRect(),a=(e-i.left)/r,o=(t-i.top)/r;if(a<50||o<22)return null;let s=a-50,c=o-22,l=n.freezeRows??0,u=n.freezeCols??0,d=0,f=[];for(let e=1;e<=l;e++){let t=y(n.rowHeights[e]??n.defaultRowHeight);f.push(t),d+=t}let p=0,m=[];for(let e=1;e<=u;e++){let t=v(n.colWidths[e]??n.defaultColWidth,_(n));m.push(t),p+=t}let h;if(c<d){h=-1;let e=0;for(let t=0;t<l;t++)if(e+=f[t],c<e){h=t+1;break}if(h===-1)return null}else{let e=c-d+this.scrollHost.scrollTop/r;h=-1;let t=0;for(let r=l+1;r<=1048576;r++)if(t+=y(n.rowHeights[r]??n.defaultRowHeight),e<t){h=r;break}if(h===-1)return null}let g;if(s<p){g=-1;let e=0;for(let t=0;t<u;t++)if(e+=m[t],s<e){g=t+1;break}if(g===-1)return null}else{let e=s-p+this.scrollHost.scrollLeft/r;g=-1;let t=0;for(let r=u+1;r<=16384;r++)if(t+=v(n.colWidths[r]??n.defaultColWidth,_(n)),e<t){g=r;break}if(g===-1)return null}return{row:h,col:g}}getCellRect(e,t){let n=this.currentWorksheet;if(!n)return null;let r=this.opts.cellScale??1,i=n.freezeRows??0,a=n.freezeCols??0,o;if(t<=a){let e=50;for(let r=1;r<t;r++)e+=v(n.colWidths[r]??n.defaultColWidth,_(n));o=e*r}else{let e=0;for(let t=1;t<=a;t++)e+=v(n.colWidths[t]??n.defaultColWidth,_(n));let i=50+e;for(let e=a+1;e<t;e++)i+=v(n.colWidths[e]??n.defaultColWidth,_(n));o=(i-this.scrollHost.scrollLeft/r)*r}let s;if(e<=i){let t=22;for(let r=1;r<e;r++)t+=y(n.rowHeights[r]??n.defaultRowHeight);s=t*r}else{let t=0;for(let e=1;e<=i;e++)t+=y(n.rowHeights[e]??n.defaultRowHeight);let a=22+t;for(let t=i+1;t<e;t++)a+=y(n.rowHeights[t]??n.defaultRowHeight);s=(a-this.scrollHost.scrollTop/r)*r}let c=v(n.colWidths[t]??n.defaultColWidth,_(n))*r,l=y(n.rowHeights[e]??n.defaultRowHeight)*r;return{x:o,y:s,w:c,h:l}}get selection(){return!this.anchorCell||!this.activeCell?null:{anchor:this.anchorCell,active:this.activeCell,mode:this.selectionMode}}getHeaderHit(e,t){let n=this.currentWorksheet;if(!n)return null;let r=this.opts.cellScale??1,i=this.canvasArea.getBoundingClientRect(),a=(e-i.left)/r,o=(t-i.top)/r,s=a<50,c=o<22;if(!s&&!c)return null;if(s&&c)return{kind:`corner`};let l=n.freezeRows??0,u=n.freezeCols??0;if(s){let e=o-22;if(e<0)return{kind:`corner`};let t=0,i=[];for(let e=1;e<=l;e++){let r=y(n.rowHeights[e]??n.defaultRowHeight);i.push(r),t+=r}if(e<t){let t=0;for(let n=0;n<l;n++)if(t+=i[n],e<t)return{kind:`row`,row:n+1};return null}let a=e-t+this.scrollHost.scrollTop/r,s=0;for(let e=l+1;e<=1048576;e++)if(s+=y(n.rowHeights[e]??n.defaultRowHeight),a<s)return{kind:`row`,row:e};return null}let d=a-50;if(d<0)return{kind:`corner`};let f=0,p=[];for(let e=1;e<=u;e++){let t=v(n.colWidths[e]??n.defaultColWidth,_(n));p.push(t),f+=t}if(d<f){let e=0;for(let t=0;t<u;t++)if(e+=p[t],d<e)return{kind:`col`,col:t+1};return null}let m=d-f+this.scrollHost.scrollLeft/r,h=0;for(let e=u+1;e<=16384;e++)if(h+=v(n.colWidths[e]??n.defaultColWidth,_(n)),m<h)return{kind:`col`,col:e};return null}copySelection(){let e=this.currentWorksheet;if(!e||!this.anchorCell||!this.activeCell)return;let t=1,n=1;for(let r of e.rows){r.index>t&&(t=r.index);for(let e of r.cells)e.col>n&&(n=e.col)}let r,i,a,o;this.selectionMode===`all`?(r=1,i=t,a=1,o=n):this.selectionMode===`rows`?(r=Math.min(this.anchorCell.row,this.activeCell.row),i=Math.max(this.anchorCell.row,this.activeCell.row),a=1,o=n):this.selectionMode===`cols`?(a=Math.min(this.anchorCell.col,this.activeCell.col),o=Math.max(this.anchorCell.col,this.activeCell.col),r=1,i=t):(r=Math.min(this.anchorCell.row,this.activeCell.row),i=Math.max(this.anchorCell.row,this.activeCell.row),a=Math.min(this.anchorCell.col,this.activeCell.col),o=Math.max(this.anchorCell.col,this.activeCell.col));let s=new Map;for(let t of e.rows)if(!(t.index<r||t.index>i))for(let e of t.cells){if(e.col<a||e.col>o)continue;let n=e.value,r=``;n.type===`text`?r=n.runs?n.runs.map(e=>e.text).join(``):n.text:n.type===`number`?r=String(n.number):n.type===`bool`?r=n.bool?`TRUE`:`FALSE`:n.type===`error`&&(r=n.error),r&&s.set(`${t.index}:${e.col}`,r)}let c=[];for(let e=r;e<=i;e++){let t=[];for(let n=a;n<=o;n++)t.push(s.get(`${e}:${n}`)??``);c.push(t.join(` `))}navigator.clipboard.writeText(c.join(`
|
|
11
|
+
`)).catch(()=>void 0)}updateSelectionOverlay(){if(this.selectionOverlay.innerHTML=``,!this.anchorCell||!this.activeCell)return;let e=this.opts.cellScale??1,t=this.currentWorksheet,n=t?.freezeRows??0,r=t?.freezeCols??0,i=0;if(t)for(let e=1;e<=n;e++)i+=y(t.rowHeights[e]??t.defaultRowHeight);let a=0;if(t)for(let e=1;e<=r;e++)a+=v(t.colWidths[e]??t.defaultColWidth,_(t));let o,s,c,l,u=1,d=1;if(this.selectionMode===`all`)o=50*e,s=22*e,c=this.canvasArea.clientWidth-50*e,l=this.canvasArea.clientHeight-22*e;else if(this.selectionMode===`rows`){u=Math.min(this.anchorCell.row,this.activeCell.row);let t=Math.max(this.anchorCell.row,this.activeCell.row),n=this.getCellRect(u,1),r=this.getCellRect(t,1);if(!n||!r)return;o=50*e,s=n.y,c=this.canvasArea.clientWidth-50*e,l=r.y+r.h-n.y}else if(this.selectionMode===`cols`){d=Math.min(this.anchorCell.col,this.activeCell.col);let t=Math.max(this.anchorCell.col,this.activeCell.col),n=this.getCellRect(1,d),r=this.getCellRect(1,t);if(!n||!r)return;o=n.x,s=22*e,c=r.x+r.w-n.x,l=this.canvasArea.clientHeight-22*e}else{u=Math.min(this.anchorCell.row,this.activeCell.row);let e=Math.max(this.anchorCell.row,this.activeCell.row);d=Math.min(this.anchorCell.col,this.activeCell.col);let t=Math.max(this.anchorCell.col,this.activeCell.col),n=this.getCellRect(u,d),r=this.getCellRect(e,t);if(!n||!r)return;o=n.x,s=n.y,c=r.x+r.w-n.x,l=r.y+r.h-n.y}o<50*e&&(c-=50*e-o,o=50*e),s<22*e&&(l-=22*e-s,s=22*e);let f=(50+a)*e,p=(22+i)*e;if(d>r&&o<f&&(c-=f-o,o=f),u>n&&s<p&&(l-=p-s,s=p),c<=0||l<=0)return;let m=document.createElement(`div`);m.style.cssText=`position:absolute;left:${o}px;top:${s}px;width:${c}px;height:${l}px;box-sizing:border-box;border:2px solid #1a73e8;background:rgba(26,115,232,0.08);pointer-events:none;`,this.selectionOverlay.appendChild(m)}applyPointerSelection(e,t,n,r,i){let a=this.getHeaderHit(e,t);if(a){a.kind===`corner`?(this.selectionMode=`all`,this.anchorCell={row:1,col:1},this.activeCell={row:1,col:1},this.isSelecting=!1):a.kind===`row`?n&&this.anchorCell&&this.selectionMode===`rows`?this.activeCell={row:a.row,col:1}:(this.selectionMode=`rows`,this.anchorCell={row:a.row,col:1},this.activeCell={row:a.row,col:1},i&&(this.isSelecting=!0,this.scrollHost.setPointerCapture(r))):n&&this.anchorCell&&this.selectionMode===`cols`?this.activeCell={row:1,col:a.col}:(this.selectionMode=`cols`,this.anchorCell={row:1,col:a.col},this.activeCell={row:1,col:a.col},i&&(this.isSelecting=!0,this.scrollHost.setPointerCapture(r))),this.updateSelectionOverlay(),this.opts.onSelectionChange?.(this.selection);return}let o=this.getCellAt(e,t);o&&(n&&this.anchorCell&&this.selectionMode===`cells`?this.activeCell=o:(this.selectionMode=`cells`,this.anchorCell=o,this.activeCell=o),i&&(this.isSelecting=!0,this.scrollHost.setPointerCapture(r)),this.updateSelectionOverlay(),this.opts.onSelectionChange?.(this.selection))}setupSelectionEvents(){this.scrollHost.addEventListener(`pointerdown`,e=>{if(e.button===0){if(e.pointerType!==`mouse`){this.pendingTap={x:e.clientX,y:e.clientY,shiftKey:e.shiftKey,pointerId:e.pointerId};return}this.applyPointerSelection(e.clientX,e.clientY,e.shiftKey,e.pointerId,!0)}}),this.scrollHost.addEventListener(`pointermove`,e=>{if(this.pendingTap&&this.pendingTap.pointerId===e.pointerId){let t=e.clientX-this.pendingTap.x,n=e.clientY-this.pendingTap.y;t*t+n*n>64&&(this.pendingTap=null)}if(this.isSelecting){if(this.selectionMode===`rows`){let t=this.getHeaderHit(e.clientX,e.clientY),n=t?.kind===`row`?t.row:this.getCellAt(e.clientX,e.clientY)?.row;if(!n||n===this.activeCell?.row)return;this.activeCell={row:n,col:1}}else if(this.selectionMode===`cols`){let t=this.getHeaderHit(e.clientX,e.clientY),n=t?.kind===`col`?t.col:this.getCellAt(e.clientX,e.clientY)?.col;if(!n||n===this.activeCell?.col)return;this.activeCell={row:1,col:n}}else{let t=this.getCellAt(e.clientX,e.clientY);if(!t||t.row===this.activeCell?.row&&t.col===this.activeCell?.col)return;this.activeCell=t}this.updateSelectionOverlay(),this.opts.onSelectionChange?.(this.selection)}}),this.scrollHost.addEventListener(`pointerup`,e=>{if(this.pendingTap&&this.pendingTap.pointerId===e.pointerId){let t=e.clientX-this.pendingTap.x,n=e.clientY-this.pendingTap.y;t*t+n*n<=64&&this.applyPointerSelection(e.clientX,e.clientY,this.pendingTap.shiftKey,e.pointerId,!1),this.pendingTap=null}this.isSelecting=!1}),this.scrollHost.addEventListener(`pointercancel`,e=>{this.pendingTap&&this.pendingTap.pointerId===e.pointerId&&(this.pendingTap=null),this.isSelecting=!1}),this.keydownHandler=e=>{(e.ctrlKey||e.metaKey)&&e.key===`c`&&this.copySelection()},document.addEventListener(`keydown`,this.keydownHandler)}buildTabs(){this.tabBar.innerHTML=``,this.tabs=[],this.wb.sheetNames.forEach((e,t)=>{let n=document.createElement(`button`);n.textContent=e,n.title=e,n.style.cssText=this.tabStyle(!1),n.addEventListener(`click`,()=>this.showSheet(t)),this.tabBar.appendChild(n),this.tabs.push(n)})}updateTabActive(e){this.tabs.forEach((t,n)=>{t.style.cssText=this.tabStyle(n===e)}),this.tabs[e]?.scrollIntoView({block:`nearest`,inline:`nearest`})}tabStyle(e){let t=qt-2,n=qt-5;return e?`display:inline-block;padding:0 14px;border:1px solid #c8ccd0;border-bottom:none;border-radius:3px 3px 0 0;cursor:pointer;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;outline:none;box-sizing:border-box;height:${t}px;font-size:13px;background:#fff;color:#000;border-bottom:1px solid #fff;font-weight:600;position:relative;top:1px;`:`display:inline-block;padding:0 14px;border:1px solid #c8ccd0;border-bottom:none;border-radius:3px 3px 0 0;cursor:pointer;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;outline:none;box-sizing:border-box;height:${n}px;font-size:11px;background:#e0e0e0;color:#555;`}updateSpacerSize(e){let t=this.opts.cellScale??1,n=e.freezeRows??0,r=e.freezeCols??0,i=0;for(let t=1;t<=r;t++)i+=v(e.colWidths[t]??e.defaultColWidth,_(e));let a=0;for(let t=1;t<=n;t++)a+=y(e.rowHeights[t]??e.defaultRowHeight);let o=Math.max(50,n),s=Math.max(26,r);for(let t of e.rows){t.index>o&&(o=t.index);for(let e of t.cells)e.col>s&&(s=e.col)}o+=30,s+=10;let c=50+i;for(let t=r+1;t<=s;t++)c+=v(e.colWidths[t]??e.defaultColWidth,_(e));let l=22+a;for(let t=n+1;t<=o;t++)l+=y(e.rowHeights[t]??e.defaultRowHeight);this.spacer.style.width=`${Math.round(c*t)}px`,this.spacer.style.height=`${Math.round(l*t)}px`}async renderCurrentSheet(){if(!this.currentWorksheet)return;let e=this.currentWorksheet,t=this.canvasArea.clientWidth,n=this.canvasArea.clientHeight;if(t<=0||n<=0)return;let r=this.opts.cellScale??1,i=window.devicePixelRatio??1,a=e.freezeRows??0,o=e.freezeCols??0,s=0;for(let t=1;t<=o;t++)s+=v(e.colWidths[t]??e.defaultColWidth,_(e));let c=0;for(let t=1;t<=a;t++)c+=y(e.rowHeights[t]??e.defaultRowHeight);let l=this.scrollHost.scrollLeft/r,u=this.scrollHost.scrollTop/r,d=o+1,f=0,p=0;for(;;){let t=v(e.colWidths[d]??e.defaultColWidth,_(e));if(f+t>l){p=l-f;break}if(f+=t,d++,d>16384)break}let m=a+1,h=0,g=0;for(;;){let t=y(e.rowHeights[m]??e.defaultRowHeight);if(h+t>u){g=u-h;break}if(h+=t,m++,m>1048576)break}let b=t/r-50-s,x=n/r-22-c,S=0;{let t=-p,n=d;for(;t<b+p&&n<=16384;)t+=v(e.colWidths[n]??e.defaultColWidth,_(e)),S++,n++;S+=2}let C=0;{let t=-g,n=m;for(;t<x+g&&n<=1048576;)t+=y(e.rowHeights[n]??e.defaultRowHeight),C++,n++;C+=2}let w={row:m,col:d,rows:C,cols:S};await this.wb.renderViewport(this.canvas,this.currentSheet,w,{width:t,height:n,dpr:i,cellScale:r,scrollOffsetX:p,scrollOffsetY:g,freezeRows:a,freezeCols:o})}get sheetNames(){return this.wb.sheetNames}destroy(){this.resizeObserver?.disconnect(),this.keydownHandler&&document.removeEventListener(`keydown`,this.keydownHandler),this.wb.destroy()}},Yt=e.r({XlsxViewer:()=>Jt,XlsxWorkbook:()=>Kt,autoResize:()=>e.t});Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Yt}});
|