@silurus/ooxml 0.22.0 → 0.22.1
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/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-Dl5zdO5q.cjs`),t=require(`./pptx-Ywwc_EMp.cjs`),n=require(`./docx-DKPVLT6O.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
|
@@ -2276,17 +2276,18 @@ async function Vt(e) {
|
|
|
2276
2276
|
if (t.has(e)) continue;
|
|
2277
2277
|
t.add(e);
|
|
2278
2278
|
let i = Bt[e];
|
|
2279
|
-
if (i
|
|
2280
|
-
try {
|
|
2279
|
+
if (i) {
|
|
2280
|
+
if (!document.querySelector(`link[href="${i}"]`)) try {
|
|
2281
2281
|
let e = document.createElement("link");
|
|
2282
2282
|
e.rel = "stylesheet", e.href = i, document.head.appendChild(e);
|
|
2283
2283
|
} catch {}
|
|
2284
2284
|
n.push(e === "calibri" ? "Carlito" : e === "cambria" ? "Caladea" : r);
|
|
2285
2285
|
}
|
|
2286
2286
|
}
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2287
|
+
if (n.length === 0) return;
|
|
2288
|
+
let r = new Set(n.map((e) => e.toLowerCase())), i = [];
|
|
2289
|
+
for (let e = 0; e < 25 && (i = [...document.fonts].filter((e) => r.has(e.family.toLowerCase())), !(i.length > 0)); e++) await new Promise((e) => setTimeout(e, 20));
|
|
2290
|
+
await Promise.race([Promise.allSettled(i.map((e) => e.load())).then(() => document.fonts.ready), new Promise((e) => setTimeout(e, 3e3))]);
|
|
2290
2291
|
}
|
|
2291
2292
|
var Ht = class {
|
|
2292
2293
|
worker;
|
|
@@ -6,5 +6,5 @@ const e=require(`./autoResize-ggn4hzd8.cjs`),t=require(`./renderer-Bve7huQq.cjs`
|
|
|
6
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(Se.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===`$`||we(e)){let e=n;for(;e<r.length&&(r[e]===`$`||Te(r[e]));)e++;let i=r.slice(n,e);n=e;let a=Ee(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 we(e){return e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e===`_`}function Te(e){return we(e)||e>=`0`&&e<=`9`||e===`.`}function Ee(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 De(e,t){return ke({toks:Ce(e),pos:0},t)}function Oe(e){return e.toks[e.pos]}function Q(e){return e.toks[e.pos++]}function ke(e,t){return Ae(e,t)}function Ae(e,t){let n=je(e,t),r=Oe(e);if(r&&r.kind===`op`&&(r.text===`<`||r.text===`>`||r.text===`<=`||r.text===`>=`||r.text===`=`||r.text===`<>`)){Q(e);let i=je(e,t);return Me(r.text,n,i)}return n}function je(e,t){let n=Ne(e,t);for(;;){let r=Oe(e);if(!r||r.kind!==`op`||r.text!==`&`)break;Q(e);let i=Ne(e,t);n=Z(n)+Z(i)}return n}function Me(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 Ne(e,t){let n=Pe(e,t);for(;;){let r=Oe(e);if(!r||r.kind!==`op`||r.text!==`+`&&r.text!==`-`)break;Q(e);let i=Pe(e,t);n=r.text===`+`?X(n)+X(i):X(n)-X(i)}return n}function Pe(e,t){let n=Fe(e,t);for(;;){let r=Oe(e);if(!r||r.kind!==`op`||r.text!==`*`&&r.text!==`/`)break;Q(e);let i=Fe(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 Fe(e,t){let n=Oe(e);return n&&n.kind===`op`&&n.text===`-`?(Q(e),-X(Fe(e,t))):n&&n.kind===`op`&&n.text===`+`?(Q(e),X(Fe(e,t))):Ie(e,t)}function Ie(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=ke(e,t),r=Q(e);if(!r||r.kind!==`rparen`)throw Error(`missing )`);return n}if(n.kind===`ref`){if(Oe(e)?.kind===`colon`){Q(e);let r=Q(e);if(r?.kind!==`ref`||!r.ref)throw Error(`range: expected ref after :`);return ze(n.ref,r.ref,t)}return Re(n.ref,t)}if(n.kind===`name`){if(Oe(e)?.kind===`lparen`){Q(e);let r=[];if(Oe(e)?.kind!==`rparen`)for(r.push(ke(e,t));Oe(e)?.kind===`comma`;)Q(e),r.push(ke(e,t));let i=Q(e);if(!i||i.kind!==`rparen`)throw Error(`missing )`);return Ve(n.text,r,t)}let r=t.definedNames.get(n.text);return r&&t.depth<ye?De(Le(r.formula),{...t,anchorRow:1,anchorCol:1,depth:t.depth+1}):0}return 0}function Le(e){let t=e.match(/^(?:'[^']*'|[A-Za-z_][A-Za-z0-9_.]*)!(.*)$/);return t?t[1]:e}function Re(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 Be(t.cellIndex.get(`${r}:${n}`))}function ze(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(Be(n.cellIndex.get(`${e}:${t}`)));return d}function Be(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 Ve(e,t,n){switch(e.toUpperCase()){case`AND`:return t.flatMap(Y).every(e=>xe(e));case`OR`:return t.flatMap(Y).some(e=>xe(e));case`NOT`:return!xe(t[0]);case`IF`:return xe(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(xe(t[e]))return t[e+1];return null;case`TRUE`:return!0;case`FALSE`:return!1;case`ISBLANK`:{let e=ve(t[0]);return e==null||e===``}case`ISNUMBER`:return typeof ve(t[0])==`number`;case`ISTEXT`:return typeof ve(t[0])==`string`;case`ISNONTEXT`:return typeof ve(t[0])!=`string`;case`ISERROR`:case`ISERR`:case`ISNA`:return ve(t[0])==null;case`ISLOGICAL`:return typeof ve(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(Y).filter(e=>typeof e==`number`);return e.length?Math.min(...e):0}case`MAX`:{let e=t.flatMap(Y).filter(e=>typeof e==`number`);return e.length?Math.max(...e):0}case`SUM`:return t.flatMap(Y).reduce((e,t)=>e+(typeof t==`number`?t:0),0);case`AVERAGE`:{let e=t.flatMap(Y).filter(e=>typeof e==`number`);return e.length?e.reduce((e,t)=>e+t,0)/e.length:null}case`COUNT`:return t.flatMap(Y).filter(e=>typeof e==`number`).length;case`COUNTA`:return t.flatMap(Y).filter(e=>e!=null&&e!==``).length;case`COUNTBLANK`:return t.flatMap(Y).filter(e=>e==null||e===``).length;case`COUNTIF`:return He(Y(t[0]),t[1]);case`SUMIF`:return Ue(Y(t[0]),t[1],t[2]===void 0?null:Y(t[2]));case`AVERAGEIF`:{let e=Y(t[0]),n=Ue(e,t[1],t[2]===void 0?null:Y(t[2])),r=He(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(Y).map(e=>e==null?``:typeof e==`boolean`?e?`TRUE`:`FALSE`:String(e)).join(``);case`T`:{let e=ve(t[0]);return typeof e==`string`?e:``}case`N`:{let e=ve(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 qe();case`NOW`:return Je();case`DATE`:return Ye(X(t[0]),X(t[1]),X(t[2]));case`YEAR`:return Ze(X(t[0])).y;case`MONTH`:return Ze(X(t[0])).m;case`DAY`:return Ze(X(t[0])).d;case`WEEKDAY`:{let e=Xe(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 He(e,t){let n=We(t),r=0;for(let t of e)n(t)&&r++;return r}function Ue(e,t,n){let r=We(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 We(e){let t=ve(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 Ge=25569,Ke=864e5;function qe(){let e=new Date,t=Date.UTC(e.getFullYear(),e.getMonth(),e.getDate());return Math.floor(t/Ke)+Ge}function Je(){return Date.now()/Ke+Ge}function Ye(e,t,n){let r=Date.UTC(e,t-1,n);return Math.floor(r/Ke)+Ge}function Xe(e){let t=(Math.floor(e)-Ge)*Ke;return new Date(t)}function Ze(e){let t=Xe(e);return{y:t.getUTCFullYear(),m:t.getUTCMonth()+1,d:t.getUTCDate()}}var Qe=[`#FF0000`,`#FFFF00`,`#00B050`],$e=[`#FF0000`,`#FF6600`,`#FFFF00`,`#00B050`],et=[`#FF0000`,`#FF6600`,`#FFFF00`,`#92D050`,`#00B050`];function tt(e,t,n,r,i,a){if(t===`NoIcons`)return;let o=t||`3TrafficLights1`,s=parseInt(o[0])||3,c=s===5?et:s===4?$e:Qe,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 nt(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 rt(e){let t=new Map;for(let n of e.tables??[]){let e=n.accentColor||`#808080`,r=Math.max(0,n.headerRowCount??1),i=Math.max(0,n.totalsRowCount??0),{top:a,bottom:o,left:s,right:c}=n.range,l=a+r-1,u=o-i+1;for(let d=a;d<=o;d++){let f=r>0&&d<=l,p=i>0&&d>=u,m=!f&&!p?d-l-1:-1;for(let r=s;r<=c;r++)t.set(`${d}:${r}`,{accent:e,isHeader:f,isTotals:p,isBanded:n.showRowStripes&&m>=0&&m%2==1,isFirstCol:n.showFirstColumn&&r===s,isLastCol:n.showLastColumn&&r===c,isTopEdge:d===a,isBottomEdge:d===o,wholeTableDxf:n.wholeTableDxf,headerRowDxf:n.headerRowDxf})}}return t}function it(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 at(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 ot(e,t,r,i,a,o,s,c,l,u,d,f,m,b){if(m<=0||b<=0)return;let{styles:C,cellMap:O,mergeAnchorMap:A,mergeSkipSet:j,cfContext:te,cs:M,dpr:N}=t,ne=a.length,P=o.length,F=[],I=-s;for(let e=0;e<ne;e++)F.push(I),I+=a[e];let L=[],R=-c;for(let e=0;e<P;e++)L.push(R),R+=o[e];e.save(),e.beginPath(),e.rect(d,f,m,b),e.clip();let z=[];for(let n of t.worksheet.mergeCells??[]){let a=n.top,o=n.left;if(a>=r&&a<r+P&&o>=i&&o<i+ne||n.bottom<r||n.top>=r+P||n.right<i||n.left>=i+ne)continue;let d=t.mergeAnchorMap.get(`${a}:${o}`);if(!d)continue;let f;if(o>=i)f=l+F[o-i];else{let e=0;for(let n=o;n<i;n++)e+=Math.round(h(t.worksheet.colWidths[n]??t.worksheet.defaultColWidth)*M);f=l-s-e}let m;if(a>=r)m=u+L[a-r];else{let e=0;for(let n=a;n<r;n++)e+=Math.round(g(t.worksheet.rowHeights[n]??t.worksheet.defaultRowHeight)*M);m=u-c-e}let y=d.totalW,b=d.totalH,x=`${a}:${o}`,S=t.cellMap.get(x),{font:w,fill:T,border:ee,xf:O}=D(C,S?.styleIndex??0),A=_e(S,a,o,te,C.dxfs??[]),j=A.fill??T;if(j.patternType!==`none`&&j.patternType!==``&&j.fgColor&&(e.fillStyle=_(j.fgColor),e.fillRect(f,m,y,b)),A.dataBar&&A.dataBar.ratio>0){let t=Math.max(0,(y-4)*A.dataBar.ratio);v(e,A.dataBar.color,f+2,m+2,t,b-4,A.dataBar.gradient)}if(_t(e,gt(ht(ee,a,o,d.right,d.bottom,t.cellMap,C),A.border),f,m,y,b),!S)continue;let N=k(S,C,A.numFmt);if(!N||N===`0`&&t.worksheet.showZeros===!1)continue;let I=w.bold||!!A.fontBold,R=w.italic||!!A.fontItalic,z=w.underline||!!A.fontUnderline,B=w.strike||!!A.fontStrike;e.font=E(I!==w.bold||R!==w.italic||z!==w.underline||B!==w.strike?{...w,bold:I,italic:R,underline:z,strike:B}:w,M);let V=t.hyperlinkMap.get(x)?`#0563C1`:A.fontColor??w.color;e.fillStyle=V?_(V):`#000000`;let H=S.value.type===`number`,re=O.alignH??(H?`right`:`left`),ie=O.alignV??`bottom`,U=O.indent?Math.round(O.indent*w.size*p*.5):0,ae=3+(re===`left`||!O.alignH?U:0);e.save(),e.beginPath(),e.rect(f,m,y,b),e.clip();let W;re===`right`?(W=f+y-3,e.textAlign=`right`):re===`center`?(W=f+y/2,e.textAlign=`center`):(W=f+ae,e.textAlign=`left`);let G;ie===`top`?(e.textBaseline=`top`,G=m+2):ie===`center`?(e.textBaseline=`middle`,G=m+b/2):(e.textBaseline=`bottom`,G=m+b-2),e.fillText(N,W,G),e.restore()}for(let s=0;s<P;s++){let c=r+s,h=u+L[s],g=o[s];if(h+g<=f||h>=f+b)continue;let P=new Set,I=new Set,R=-1,B=e=>{if(R>=0&&e-R>=2){for(let t=R;t<e-1;t++)P.add(t);for(let t=R+1;t<e;t++)I.add(t)}R=-1};for(let e=0;e<=ne;e++){let t=!1,n=!1;if(e<ne){let r=`${c}:${i+e}`;if(!j.has(r)&&!A.has(r)){let e=O.get(r);t=D(C,e?.styleIndex??0).xf.alignH===`centerContinuous`,n=!!(e&&e.value&&e.value.type!==`empty`)}}t?n&&R>=0&&e>R?(B(e),R=e):R<0&&(R=e):B(e)}for(let r=0;r<ne;r++){let o=i+r,u=l+F[r],f=a[r];if(u+f<=d||u>=d+m)continue;let b=`${c}:${o}`;if(j.has(b))continue;let L=A.get(b),R=L?L.totalW:f,B=L?L.totalH:g,V=O.get(b),{font:H,fill:re,border:ie,xf:U}=D(C,V?.styleIndex??0),W=_e(V,c,o,te,C.dxfs??[]),G=W.fill??re,K=t.tableStyleMap.get(b),se=K?.wholeTableDxf==null?void 0:(C.dxfs??[])[K.wholeTableDxf],ce=K?.headerRowDxf==null?void 0:(C.dxfs??[])[K.headerRowDxf];if(G.gradient&&G.gradient.stops.length>0)e.fillStyle=S(e,G.gradient,u,h,R,B),e.fillRect(u,h,R,B);else if(G.patternType&&G.patternType!==`none`&&G.fgColor){let t=G.patternType,n=G.bgColor??`FFFFFF`,r=x(e,t,G.fgColor,n);if(r)e.fillStyle=r;else{let r=y(t);e.fillStyle=r>=1?_(G.fgColor):T(G.fgColor,n,r)}e.fillRect(u,h,R,B)}else K&&K.isHeader&&ce?.fill?.fgColor?(e.fillStyle=_(ce.fill.fgColor),e.fillRect(u,h,R,B)):K&&!K.isHeader&&!K.isTotals&&se?.fill?.fgColor?(e.fillStyle=_(se.fill.fgColor),e.fillRect(u,h,R,B)):K&&K.isBanded&&(e.fillStyle=at(K.accent),e.fillRect(u,h,R,B));if(t.commentCells.has(b)&&w(e,u,h,R,B),W.dataBar&&W.dataBar.ratio>0){let t=Math.max(0,(R-4)*W.dataBar.ratio);v(e,W.dataBar.color,u+2,h+2,t,B-4,W.dataBar.gradient)}let le=t.sparklineMap.get(b);if(le&&n(e,{x:u,y:h,w:R,h:B},le),t.worksheet.showGridlines!==!1){let t=.5/N;e.strokeStyle=`#d0d0d0`,e.lineWidth=.5,e.beginPath(),P.has(r)||(e.moveTo(u+R+t,h),e.lineTo(u+R+t,h+B)),e.moveTo(u,h+B+t),e.lineTo(u+R,h+B+t),s===0&&(e.moveTo(u,h+t),e.lineTo(u+R,h+t)),r===0&&(e.moveTo(u+t,h),e.lineTo(u+t,h+B)),e.stroke()}let q=gt(L?ht(ie,c,o,L.right,L.bottom,O,C):ie,W.border);if((P.has(r)||I.has(r))&&(q={...q,left:I.has(r)?null:q.left,right:P.has(r)?null:q.right}),_t(e,q,u,h,R,B),K){let t=se?.border?.horizontal,n=se?.border?.vertical,r=se?.border?.top,i=se?.border?.bottom,a=se?.border?.left,s=se?.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};K.isTopEdge?n.top=r??null:t&&(n.top=t),K.isHeader&&c?n.bottom=c:K.isBottomEdge?n.bottom=i??null:t&&(n.bottom=t),(K.isFirstCol||o===0)&&(n.left=a??null),K.isLastCol&&(n.right=s??null),_t(e,n,u,h,R,B)}else{let t=.5/N;e.strokeStyle=K.accent,e.lineWidth=K.isHeader?1.5:1,e.beginPath(),e.moveTo(u,h+B-t),e.lineTo(u+R,h+B-t),K.isTopEdge&&(e.moveTo(u,h+t),e.lineTo(u+R,h+t)),e.stroke()}}if(t.autoFilterCells.has(b)&&nt(e,u,h,f,B),!V)continue;let J=k(V,C,W.numFmt);!J||J===`0`&&t.worksheet.showZeros===!1||z.push(()=>{let n=!!(K&&(K.isHeader||K.isTotals)),s=H.bold||!!W.fontBold||n,l=H.italic||!!W.fontItalic,d=H.underline||!!W.fontUnderline,f=H.strike||!!W.fontStrike,m=s!==H.bold||l!==H.italic||d!==H.underline||f!==H.strike?{...H,bold:s,italic:l,underline:d,strike:f}:H;e.font=E(m,M);let g=t.hyperlinkMap.get(b),v=K?.isHeader&&ce?.font?.color?ce.font.color:K&&!K.isHeader&&!K.isTotals&&se?.font?.color?se.font.color:null,y=g?`#0563C1`:W.fontColor??v??H.color;e.fillStyle=y?_(y):`#000000`;let x=V.value.type===`number`,S=U.alignH??(x?`right`:`left`),w=U.alignV??`bottom`,T=U.indent?Math.round(U.indent*H.size*p*.5):0,k=W.iconSet?Math.max(8,Math.round(Math.min(R,B)*.55)):0,te=k>0?k+4:0,N=3+(S===`left`||!U.alignH?T:0)+te,P=R,F=u,I=r;if(S===`centerContinuous`&&!L)for(let e=r+1;e<ne;e++){let t=`${c}:${i+e}`;if(j.has(t)||A.has(t))break;let n=O.get(t);if(n&&n.value.type!==`empty`||D(C,n?.styleIndex??0).xf.alignH!==`centerContinuous`)break;P+=a[e],I=e}let z=S===`centerContinuous`?F:u,re=S===`centerContinuous`?P:R,ie=J.includes(`
|
|
7
7
|
`);if(!L&&!U.wrapText&&!U.textRotation&&!x&&!ie){let t=e.measureText(J).width,n=S===`centerContinuous`,o=n?t+6:t+N+3,s=n?P:R;if(o>s){let e=o-s,t=0,l=0;if(S===`right`?l=e:S===`center`||n?(l=e/2,t=e/2):t=e,t>0){let e=t,o=n?I+1:r+1;for(let t=o;t<ne&&e>0;t++){let n=`${c}:${i+t}`;if(j.has(n)||A.has(n))break;let r=O.get(n);if(r&&r.value.type!==`empty`)break;re+=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(j.has(n)||A.has(n))break;let r=O.get(n);if(r&&r.value.type!==`empty`)break;z-=a[t],re+=a[t],e-=a[t]}}}}let G=J,le=0;if(S===`fill`&&!x&&J.length>0){let t=Math.max(1,R-6),n=e.measureText(J).width;if(n>0&&n<t){let e=Math.max(1,Math.floor(t/n));G=J.repeat(e)}}if(S===`distributed`||S===`justify`&&!U.wrapText&&!ie){let t=Math.max(1,R-6),n=e.measureText(G).width,r=Math.max(1,[...G].length-1);n<t&&(le=Math.max(0,(t-n)/r))}let q,ue;S===`right`?(q=u+R-3,ue=`right`):S===`center`?(q=u+R/2,ue=`center`):S===`centerContinuous`?(q=F+P/2,ue=`center`):S===`distributed`||S===`justify`&&!U.wrapText&&!ie?(q=u+3,ue=`left`):(q=u+N,ue=`left`);let de=U.textRotation??0,fe=de===255,pe=de>0&&de!==255;if(W.iconSet&&k>0&&(e.save(),e.beginPath(),e.rect(u,h,R,B),e.clip(),tt(e,W.iconSet.name,W.iconSet.index,u+2,h+(B-k)/2,k),e.restore()),e.save(),e.beginPath(),e.rect(z,h,re,B),e.clip(),fe){let t=Math.round(H.size*p*1.1),n=J.length*t,r=w===`top`?h+2:w===`center`?h+(B-n)/2:h+B-n-2;e.textAlign=`center`,e.textBaseline=`top`;for(let n of J)e.fillText(n,u+R/2,r),r+=t;e.restore();return}if(pe){let t=de<=90?-(de*Math.PI/180):(de-90)*Math.PI/180;e.translate(u+R/2,h+B/2),e.rotate(t),e.textAlign=`center`,e.textBaseline=`middle`,e.fillText(J,0,0),e.restore();return}if(U.shrinkToFit){let t=e.measureText(J).width,n=R-N-3;if(t>n&&t>0){let r=n/t,i=S===`right`?u+R-3:S===`center`?u+R/2:u+N;e.transform(r,0,0,1,i*(1-r),0)}}if(e.textAlign=ue,le>0)try{e.letterSpacing=`${le}px`}catch{}if(U.readingOrder===2)try{e.direction=`rtl`}catch{}else if(U.readingOrder===1)try{e.direction=`ltr`}catch{}let me=V.value.type===`text`?V.value.runs:void 0,he=me&&me.length>0;if(U.wrapText&&he){let t=oe(e,me,m,M,R-N-3),n=t.reduce((e,t)=>e+Math.round(t.maxFontSize*p*1.2),0),r;r=w===`top`?h+2:w===`center`?h+(B-n)/2:h+B-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=S===`right`?u+R-3-i:S===`center`?u+R/2-i/2:u+N;for(let t of n.segments){e.font=E(t.font,M);let n=W.fontColor??t.font.color;e.fillStyle=n?_(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?_(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?_(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(U.wrapText){let t=ae(e,J,R-N-3),n=Math.round(H.size*p*1.2),r=t.length*n,i;w===`top`?(i=h+2,e.textBaseline=`top`):w===`center`?(i=h+(B-r)/2,e.textBaseline=`top`):(i=h+B-r-2,e.textBaseline=`top`);for(let r=0;r<t.length;r++)e.fillText(t[r],q,i+r*n)}else if(he){let t=me.map(e=>ee(m,e)),n=me.map((n,r)=>(e.font=E(t[r],M),e.measureText(n.text).width)),r=n.reduce((e,t)=>e+t,0),i;i=S===`right`?u+R-3-r:S===`center`?u+R/2-r/2:u+N,e.textAlign=`left`;let a;w===`top`?(e.textBaseline=`top`,a=h+2):w===`center`?(e.textBaseline=`middle`,a=h+B/2):(e.textBaseline=`bottom`,a=h+B-2);let o=i;for(let r=0;r<me.length;r++){let i=t[r];e.font=E(i,M);let s=W.fontColor??i.color;e.fillStyle=s?_(s):`#000000`,e.fillText(me[r].text,o,a);let c=Math.round(i.size*p);if(i.underline){let t=w===`top`?h+2+c+1:w===`center`?h+B/2+Math.round(c*.55):h+B-2+1;e.save(),e.strokeStyle=s?_(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=w===`top`?h+2+Math.round(c*.5):w===`center`?h+B/2:h+B-2-Math.round(c*.35);e.save(),e.strokeStyle=s?_(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(J),r=()=>{let e=Math.min(n().width,re-N-3);return{x:S===`right`?u+R-3-e:S===`center`?u+R/2-e/2:u+N,width:e}},i=Math.round(H.size*p);if(m.underline||g){let{x:t,width:n}=r(),a=w===`top`?h+2+i+1:w===`center`?h+B/2+Math.round(i*.55):h+B-2+1;e.save(),e.strokeStyle=g?`#0563C1`:y?_(y):`#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=w===`top`?h+2+Math.round(i*.5):w===`center`?h+B/2:h+B-2-Math.round(i*.35);e.save(),e.strokeStyle=y?_(y):`#000000`,e.lineWidth=.5,e.beginPath(),e.moveTo(t,a),e.lineTo(t+n,a),e.stroke(),e.restore()}if(J.includes(`
|
|
8
8
|
`)){let t=J.split(`
|
|
9
|
-
`),n=Math.round(H.size*p*1.2),r=t.length*n,i;w===`top`?(i=h+2,e.textBaseline=`top`):w===`center`?(i=h+(B-r)/2,e.textBaseline=`top`):(i=h+B-r-2,e.textBaseline=`top`);for(let r=0;r<t.length;r++)e.fillText(t[r],q,i+r*n)}else{let t;w===`top`?(e.textBaseline=`top`,t=h+2):w===`center`?(e.textBaseline=`middle`,t=h+B/2):(e.textBaseline=`bottom`,t=h+B-2),e.fillText(G,q,t)}}e.restore(),J&&t.onTextRun&&t.onTextRun({text:J,x:u,y:h,width:R,height:B,row:c,col:o})})}}for(let e of z)e();e.restore()}function st(e,t,n,r,i={}){let a=i.dpr??1,o=i.cellScale??1,s=e.canvas.width/a,c=e.canvas.height/a;e.clearRect(0,0,s,c),e.fillStyle=`#ffffff`,e.fillRect(0,0,s,c);let l=e=>Math.round(e*o),u=l(50),d=l(22),{row:f,col:p,rows:_,cols:v}=r,y=(i.scrollOffsetX??0)*o,b=(i.scrollOffsetY??0)*o,x=i.freezeRows??0,S=i.freezeCols??0,w=[];for(let e=1;e<=S;e++)w.push(l(h(t.colWidths[e]??t.defaultColWidth)));let T=[];for(let e=1;e<=x;e++)T.push(l(g(t.rowHeights[e]??t.defaultRowHeight)));let E=w.reduce((e,t)=>e+t,0),ee=T.reduce((e,t)=>e+t,0),D=[];for(let e=p;e<p+v;e++)D.push(l(h(t.colWidths[e]??t.defaultColWidth)));let O=[];for(let e=f;e<f+_;e++)O.push(l(g(t.rowHeights[e]??t.defaultRowHeight)));let k=new Map;for(let e of t.rows)for(let t of e.cells)k.set(`${t.row}:${t.col}`,t);let A=new Map,j=new Set;for(let e of t.mergeCells??[]){let n=0;for(let r=e.left;r<=e.right;r++)n+=l(h(t.colWidths[r]??t.defaultColWidth));let r=0;for(let n=e.top;n<=e.bottom;n++)r+=l(g(t.rowHeights[n]??t.defaultRowHeight));A.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||j.add(`${t}:${n}`)}let te=ue(t),M=new Set;if(t.autoFilter){let e=t.autoFilter;for(let t=e.left;t<=e.right;t++)M.add(`${e.top}:${t}`)}let N=new Map;for(let e of t.hyperlinks??[])e.url&&N.set(`${e.row}:${e.col}`,e.url);let ne=new Set;for(let e of t.commentRefs??[]){let t=C(e);t&&ne.add(`${t.row}:${t.col}`)}let P={worksheet:t,styles:n,cellMap:k,mergeAnchorMap:A,mergeSkipSet:j,cfContext:te,colWidths:D,rowHeights:O,frozenColWidths:w,frozenRowHeights:T,frozenW:E,frozenH:ee,startRow:f,startCol:p,cs:o,dpr:a,autoFilterCells:M,hyperlinkMap:N,commentCells:ne,tableStyleMap:rt(t),sparklineMap:it(t),onTextRun:i.onTextRun},F=u,I=d,L=F+E,R=I+ee,z=Math.max(0,s-L),B=Math.max(0,c-R);x>0&&S>0&&ot(e,P,1,1,w,T,0,0,F,I,F,I,E,ee),x>0&&ot(e,P,1,p,D,T,y,0,L,I,L,I,z,ee),S>0&&ot(e,P,f,1,w,O,0,b,F,R,F,R,E,B),ot(e,P,f,p,D,O,y,b,L,R,L,R,z,B),t.images&&t.images.length>0&&i.loadedImages&&dt(e,t,i.loadedImages,o,f,p,y,b,L,R,z,B),t.shapeGroups&&t.shapeGroups.length>0&&ft(e,t,o,f,p,y,b,L,R,z,B,i.loadedImages),t.charts&&t.charts.length>0&&St(e,t,o,f,p,y,b,L,R,z,B),t.slicers&&t.slicers.length>0&&Ft(e,t,o,f,p,y,b,L,R,z,B),ct(e,s,c,f,p,_,v,D,O,y,b,w,T,E,ee,u,d,o,a),x>0&&(e.save(),e.strokeStyle=m,e.lineWidth=.5,e.beginPath(),e.moveTo(u,R+.5),e.lineTo(s,R+.5),e.stroke(),e.restore()),S>0&&(e.save(),e.strokeStyle=m,e.lineWidth=.5,e.beginPath(),e.moveTo(L+.5,d),e.lineTo(L+.5,c),e.stroke(),e.restore())}function ct(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 ee=(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(K(t),n+r/2,_/2)},D=(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++)ee(e+1,t,f[e]),t+=f[e];e.restore()}e.save(),e.beginPath(),e.rect(w,0,t-w,_),e.clip();let O=w-l;for(let e=0;e<s.length;e++){let n=s[e];O+n>w&&O<t&&ee(i+e,O,n),O+=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++)D(e+1,t,p[e]),t+=p[e];e.restore()}e.save(),e.beginPath(),e.rect(0,T,g,n-T),e.clip();let k=T-d;for(let e=0;e<c.length;e++){let t=c[e];k+t>T&&k<n&&D(r+e,k,t),k+=t}e.restore()}var $=9525;function lt(e,t,n){let r=0;for(let i=1;i<t;i++)r+=Math.round(h(e.colWidths[i]??e.defaultColWidth)*n);return r}function ut(e,t,n){let r=0;for(let i=1;i<t;i++)r+=Math.round(g(e.rowHeights[i]??e.defaultRowHeight)*n);return r}function dt(e,t,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=lt(t,a,r),p=ut(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=lt(t,m,r)+i.fromColOff*r/$,y=ut(t,h,r)+i.fromRowOff*r/$,b=lt(t,g,r)+i.toColOff*r/$,x=ut(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 ft(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=lt(t,i,n),m=ut(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,_=lt(t,i,n)+r.fromColOff*n/$,v=ut(t,f,n)+r.fromRowOff*n/$,y=lt(t,h,n)+r.toColOff*n/$,b=ut(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||pt(e,t,n,r,i,a,d)}}e.restore()}function pt(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}mt(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)}mt(e,t)}else if(t.geom.type===`image`){let n=o?.get(t.geom.dataUrl);n&&e.drawImage(n,0,0,i,a)}e.restore()}function mt(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 ht(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?D(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 gt(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 _t(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?_(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=vt(t.style);let f=yt(t.style);e.setLineDash(f),e.moveTo(s,c),e.lineTo(l,u),e.stroke(),e.setLineDash([])}}function vt(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 yt(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 bt(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 xt(e){return{chartType:bt(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 St(e,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=lt(n,a,r),p=ut(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,_=lt(n,a,r)+i.fromColOff*r/$,v=ut(n,m,r)+i.fromRowOff*r/$,y=lt(n,h,r)+i.toColOff*r/$,b=ut(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,xt(i.chart),{x:C,y:w,w:x,h:S},T),e.restore()}}var Ct=`600 12px "Meiryo UI", "Segoe UI", sans-serif`,wt=`11px "Meiryo UI", "Segoe UI", sans-serif`,Tt=`#FFFFFF`,Et=`#BFBFBF`,Dt=`#F2F2F2`,Ot=`#404040`,kt=`#FFFFFF`,At=`#000000`,jt=`#A5A5A5`,Mt=`#E7E6E6`,Nt=`#A6A6A6`,Pt=`#C6C6C6`;function Ft(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=lt(t,i,n),p=ut(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=lt(t,i,n)+r.fromColOff*n/$,_=ut(t,d,n)+r.fromRowOff*n/$,v=lt(t,m,n)+r.toColOff*n/$,y=ut(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(),It(e,r.caption,r.items,S,C,b,x,n),e.restore())}}function It(e,t,n,r,i,a,o,s){e.fillStyle=Tt,e.fillRect(r,i,a,o),e.strokeStyle=Et,e.lineWidth=1,e.strokeRect(r+.5,i+.5,a-1,o-1);let c=Math.max(20*s,14);e.fillStyle=Dt,e.fillRect(r+1,i+1,a-2,c),e.fillStyle=Ot,e.font=Lt(Ct,s),e.textBaseline=`middle`,e.textAlign=`left`;let l=6*s;if(Rt(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=Lt(wt,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?kt:Mt,e.fillRect(f,i,m,y),e.strokeStyle=a?jt:Pt,e.lineWidth=1,e.strokeRect(f+.5,i+.5,m-1,y-1),e.fillStyle=a?At:Nt,Rt(e,r.name,f+b,i+y/2+1,m-2*b)}}function Lt(e,t){return e.replace(/(\d+(?:\.\d+)?)px/,(e,n)=>`${Math.round(Number(n)*t)}px`)}function Rt(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 zt={calibri:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,cambria:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`};async function Bt(e){if(typeof document>`u`)return;let t=new Set,n=[];for(let r of e){if(!r)continue;let e=r.toLowerCase();if(t.has(e))continue;t.add(e);let i=zt[e];if(i&&!document.querySelector(`link[href="${i}"]`)){try{let e=document.createElement(`link`);e.rel=`stylesheet`,e.href=i,document.head.appendChild(e)}catch{}n.push(e===`calibri`?`Carlito`:e===`cambria`?`Caladea`:r)}}let r=[];for(let e of n)for(let t of[`400`,`700`])for(let n of[`normal`,`italic`])r.push(document.fonts.load(`${n} ${t} 16px "${e}"`).catch(()=>void 0));await Promise.race([Promise.all(r).then(()=>document.fonts.ready),new Promise(e=>setTimeout(e,3e3))])}var Vt=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(e,t={}){let n=typeof e==`string`?await fetch(e).then(e=>e.arrayBuffer()):e;if(this.rawData=n,this.parsedWorkbook=await this.sendMessage({type:`parse`,data:n.slice(0)}),t.useGoogleFonts){let e=new Set;for(let t of this.parsedWorkbook.styles?.fonts??[])t.name&&e.add(t.name);await Bt(e)}}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),st(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)})}},Ht=30,Ut=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 Vt;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:${Ht}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=g(n.rowHeights[e]??n.defaultRowHeight);f.push(t),d+=t}let p=0,m=[];for(let e=1;e<=u;e++){let t=h(n.colWidths[e]??n.defaultColWidth);m.push(t),p+=t}let _;if(c<d){_=-1;let e=0;for(let t=0;t<l;t++)if(e+=f[t],c<e){_=t+1;break}if(_===-1)return null}else{let e=c-d+this.scrollHost.scrollTop/r;_=-1;let t=0;for(let r=l+1;r<=1048576;r++)if(t+=g(n.rowHeights[r]??n.defaultRowHeight),e<t){_=r;break}if(_===-1)return null}let v;if(s<p){v=-1;let e=0;for(let t=0;t<u;t++)if(e+=m[t],s<e){v=t+1;break}if(v===-1)return null}else{let e=s-p+this.scrollHost.scrollLeft/r;v=-1;let t=0;for(let r=u+1;r<=16384;r++)if(t+=h(n.colWidths[r]??n.defaultColWidth),e<t){v=r;break}if(v===-1)return null}return{row:_,col:v}}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+=h(n.colWidths[r]??n.defaultColWidth);o=e*r}else{let e=0;for(let t=1;t<=a;t++)e+=h(n.colWidths[t]??n.defaultColWidth);let i=50+e;for(let e=a+1;e<t;e++)i+=h(n.colWidths[e]??n.defaultColWidth);o=(i-this.scrollHost.scrollLeft/r)*r}let s;if(e<=i){let t=22;for(let r=1;r<e;r++)t+=g(n.rowHeights[r]??n.defaultRowHeight);s=t*r}else{let t=0;for(let e=1;e<=i;e++)t+=g(n.rowHeights[e]??n.defaultRowHeight);let a=22+t;for(let t=i+1;t<e;t++)a+=g(n.rowHeights[t]??n.defaultRowHeight);s=(a-this.scrollHost.scrollTop/r)*r}let c=h(n.colWidths[t]??n.defaultColWidth)*r,l=g(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=g(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+=g(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=h(n.colWidths[e]??n.defaultColWidth);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,_=0;for(let e=u+1;e<=16384;e++)if(_+=h(n.colWidths[e]??n.defaultColWidth),m<_)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(`
|
|
9
|
+
`),n=Math.round(H.size*p*1.2),r=t.length*n,i;w===`top`?(i=h+2,e.textBaseline=`top`):w===`center`?(i=h+(B-r)/2,e.textBaseline=`top`):(i=h+B-r-2,e.textBaseline=`top`);for(let r=0;r<t.length;r++)e.fillText(t[r],q,i+r*n)}else{let t;w===`top`?(e.textBaseline=`top`,t=h+2):w===`center`?(e.textBaseline=`middle`,t=h+B/2):(e.textBaseline=`bottom`,t=h+B-2),e.fillText(G,q,t)}}e.restore(),J&&t.onTextRun&&t.onTextRun({text:J,x:u,y:h,width:R,height:B,row:c,col:o})})}}for(let e of z)e();e.restore()}function st(e,t,n,r,i={}){let a=i.dpr??1,o=i.cellScale??1,s=e.canvas.width/a,c=e.canvas.height/a;e.clearRect(0,0,s,c),e.fillStyle=`#ffffff`,e.fillRect(0,0,s,c);let l=e=>Math.round(e*o),u=l(50),d=l(22),{row:f,col:p,rows:_,cols:v}=r,y=(i.scrollOffsetX??0)*o,b=(i.scrollOffsetY??0)*o,x=i.freezeRows??0,S=i.freezeCols??0,w=[];for(let e=1;e<=S;e++)w.push(l(h(t.colWidths[e]??t.defaultColWidth)));let T=[];for(let e=1;e<=x;e++)T.push(l(g(t.rowHeights[e]??t.defaultRowHeight)));let E=w.reduce((e,t)=>e+t,0),ee=T.reduce((e,t)=>e+t,0),D=[];for(let e=p;e<p+v;e++)D.push(l(h(t.colWidths[e]??t.defaultColWidth)));let O=[];for(let e=f;e<f+_;e++)O.push(l(g(t.rowHeights[e]??t.defaultRowHeight)));let k=new Map;for(let e of t.rows)for(let t of e.cells)k.set(`${t.row}:${t.col}`,t);let A=new Map,j=new Set;for(let e of t.mergeCells??[]){let n=0;for(let r=e.left;r<=e.right;r++)n+=l(h(t.colWidths[r]??t.defaultColWidth));let r=0;for(let n=e.top;n<=e.bottom;n++)r+=l(g(t.rowHeights[n]??t.defaultRowHeight));A.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||j.add(`${t}:${n}`)}let te=ue(t),M=new Set;if(t.autoFilter){let e=t.autoFilter;for(let t=e.left;t<=e.right;t++)M.add(`${e.top}:${t}`)}let N=new Map;for(let e of t.hyperlinks??[])e.url&&N.set(`${e.row}:${e.col}`,e.url);let ne=new Set;for(let e of t.commentRefs??[]){let t=C(e);t&&ne.add(`${t.row}:${t.col}`)}let P={worksheet:t,styles:n,cellMap:k,mergeAnchorMap:A,mergeSkipSet:j,cfContext:te,colWidths:D,rowHeights:O,frozenColWidths:w,frozenRowHeights:T,frozenW:E,frozenH:ee,startRow:f,startCol:p,cs:o,dpr:a,autoFilterCells:M,hyperlinkMap:N,commentCells:ne,tableStyleMap:rt(t),sparklineMap:it(t),onTextRun:i.onTextRun},F=u,I=d,L=F+E,R=I+ee,z=Math.max(0,s-L),B=Math.max(0,c-R);x>0&&S>0&&ot(e,P,1,1,w,T,0,0,F,I,F,I,E,ee),x>0&&ot(e,P,1,p,D,T,y,0,L,I,L,I,z,ee),S>0&&ot(e,P,f,1,w,O,0,b,F,R,F,R,E,B),ot(e,P,f,p,D,O,y,b,L,R,L,R,z,B),t.images&&t.images.length>0&&i.loadedImages&&dt(e,t,i.loadedImages,o,f,p,y,b,L,R,z,B),t.shapeGroups&&t.shapeGroups.length>0&&ft(e,t,o,f,p,y,b,L,R,z,B,i.loadedImages),t.charts&&t.charts.length>0&&St(e,t,o,f,p,y,b,L,R,z,B),t.slicers&&t.slicers.length>0&&Ft(e,t,o,f,p,y,b,L,R,z,B),ct(e,s,c,f,p,_,v,D,O,y,b,w,T,E,ee,u,d,o,a),x>0&&(e.save(),e.strokeStyle=m,e.lineWidth=.5,e.beginPath(),e.moveTo(u,R+.5),e.lineTo(s,R+.5),e.stroke(),e.restore()),S>0&&(e.save(),e.strokeStyle=m,e.lineWidth=.5,e.beginPath(),e.moveTo(L+.5,d),e.lineTo(L+.5,c),e.stroke(),e.restore())}function ct(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 ee=(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(K(t),n+r/2,_/2)},D=(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++)ee(e+1,t,f[e]),t+=f[e];e.restore()}e.save(),e.beginPath(),e.rect(w,0,t-w,_),e.clip();let O=w-l;for(let e=0;e<s.length;e++){let n=s[e];O+n>w&&O<t&&ee(i+e,O,n),O+=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++)D(e+1,t,p[e]),t+=p[e];e.restore()}e.save(),e.beginPath(),e.rect(0,T,g,n-T),e.clip();let k=T-d;for(let e=0;e<c.length;e++){let t=c[e];k+t>T&&k<n&&D(r+e,k,t),k+=t}e.restore()}var $=9525;function lt(e,t,n){let r=0;for(let i=1;i<t;i++)r+=Math.round(h(e.colWidths[i]??e.defaultColWidth)*n);return r}function ut(e,t,n){let r=0;for(let i=1;i<t;i++)r+=Math.round(g(e.rowHeights[i]??e.defaultRowHeight)*n);return r}function dt(e,t,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=lt(t,a,r),p=ut(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=lt(t,m,r)+i.fromColOff*r/$,y=ut(t,h,r)+i.fromRowOff*r/$,b=lt(t,g,r)+i.toColOff*r/$,x=ut(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 ft(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=lt(t,i,n),m=ut(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,_=lt(t,i,n)+r.fromColOff*n/$,v=ut(t,f,n)+r.fromRowOff*n/$,y=lt(t,h,n)+r.toColOff*n/$,b=ut(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||pt(e,t,n,r,i,a,d)}}e.restore()}function pt(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}mt(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)}mt(e,t)}else if(t.geom.type===`image`){let n=o?.get(t.geom.dataUrl);n&&e.drawImage(n,0,0,i,a)}e.restore()}function mt(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 ht(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?D(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 gt(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 _t(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?_(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=vt(t.style);let f=yt(t.style);e.setLineDash(f),e.moveTo(s,c),e.lineTo(l,u),e.stroke(),e.setLineDash([])}}function vt(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 yt(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 bt(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 xt(e){return{chartType:bt(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 St(e,n,r,i,a,o,s,c,l,u,d){if(u<=0||d<=0)return;let f=lt(n,a,r),p=ut(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,_=lt(n,a,r)+i.fromColOff*r/$,v=ut(n,m,r)+i.fromRowOff*r/$,y=lt(n,h,r)+i.toColOff*r/$,b=ut(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,xt(i.chart),{x:C,y:w,w:x,h:S},T),e.restore()}}var Ct=`600 12px "Meiryo UI", "Segoe UI", sans-serif`,wt=`11px "Meiryo UI", "Segoe UI", sans-serif`,Tt=`#FFFFFF`,Et=`#BFBFBF`,Dt=`#F2F2F2`,Ot=`#404040`,kt=`#FFFFFF`,At=`#000000`,jt=`#A5A5A5`,Mt=`#E7E6E6`,Nt=`#A6A6A6`,Pt=`#C6C6C6`;function Ft(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=lt(t,i,n),p=ut(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=lt(t,i,n)+r.fromColOff*n/$,_=ut(t,d,n)+r.fromRowOff*n/$,v=lt(t,m,n)+r.toColOff*n/$,y=ut(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(),It(e,r.caption,r.items,S,C,b,x,n),e.restore())}}function It(e,t,n,r,i,a,o,s){e.fillStyle=Tt,e.fillRect(r,i,a,o),e.strokeStyle=Et,e.lineWidth=1,e.strokeRect(r+.5,i+.5,a-1,o-1);let c=Math.max(20*s,14);e.fillStyle=Dt,e.fillRect(r+1,i+1,a-2,c),e.fillStyle=Ot,e.font=Lt(Ct,s),e.textBaseline=`middle`,e.textAlign=`left`;let l=6*s;if(Rt(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=Lt(wt,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?kt:Mt,e.fillRect(f,i,m,y),e.strokeStyle=a?jt:Pt,e.lineWidth=1,e.strokeRect(f+.5,i+.5,m-1,y-1),e.fillStyle=a?At:Nt,Rt(e,r.name,f+b,i+y/2+1,m-2*b)}}function Lt(e,t){return e.replace(/(\d+(?:\.\d+)?)px/,(e,n)=>`${Math.round(Number(n)*t)}px`)}function Rt(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 zt={calibri:`https://fonts.googleapis.com/css2?family=Carlito:ital,wght@0,400;0,700;1,400;1,700&display=swap`,cambria:`https://fonts.googleapis.com/css2?family=Caladea:ital,wght@0,400;0,700;1,400;1,700&display=swap`};async function Bt(e){if(typeof document>`u`)return;let t=new Set,n=[];for(let r of e){if(!r)continue;let e=r.toLowerCase();if(t.has(e))continue;t.add(e);let i=zt[e];if(i){if(!document.querySelector(`link[href="${i}"]`))try{let e=document.createElement(`link`);e.rel=`stylesheet`,e.href=i,document.head.appendChild(e)}catch{}n.push(e===`calibri`?`Carlito`:e===`cambria`?`Caladea`:r)}}if(n.length===0)return;let r=new Set(n.map(e=>e.toLowerCase())),i=[];for(let e=0;e<25&&(i=[...document.fonts].filter(e=>r.has(e.family.toLowerCase())),!(i.length>0));e++)await new Promise(e=>setTimeout(e,20));await Promise.race([Promise.allSettled(i.map(e=>e.load())).then(()=>document.fonts.ready),new Promise(e=>setTimeout(e,3e3))])}var Vt=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(e,t={}){let n=typeof e==`string`?await fetch(e).then(e=>e.arrayBuffer()):e;if(this.rawData=n,this.parsedWorkbook=await this.sendMessage({type:`parse`,data:n.slice(0)}),t.useGoogleFonts){let e=new Set;for(let t of this.parsedWorkbook.styles?.fonts??[])t.name&&e.add(t.name);await Bt(e)}}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),st(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)})}},Ht=30,Ut=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 Vt;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:${Ht}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=g(n.rowHeights[e]??n.defaultRowHeight);f.push(t),d+=t}let p=0,m=[];for(let e=1;e<=u;e++){let t=h(n.colWidths[e]??n.defaultColWidth);m.push(t),p+=t}let _;if(c<d){_=-1;let e=0;for(let t=0;t<l;t++)if(e+=f[t],c<e){_=t+1;break}if(_===-1)return null}else{let e=c-d+this.scrollHost.scrollTop/r;_=-1;let t=0;for(let r=l+1;r<=1048576;r++)if(t+=g(n.rowHeights[r]??n.defaultRowHeight),e<t){_=r;break}if(_===-1)return null}let v;if(s<p){v=-1;let e=0;for(let t=0;t<u;t++)if(e+=m[t],s<e){v=t+1;break}if(v===-1)return null}else{let e=s-p+this.scrollHost.scrollLeft/r;v=-1;let t=0;for(let r=u+1;r<=16384;r++)if(t+=h(n.colWidths[r]??n.defaultColWidth),e<t){v=r;break}if(v===-1)return null}return{row:_,col:v}}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+=h(n.colWidths[r]??n.defaultColWidth);o=e*r}else{let e=0;for(let t=1;t<=a;t++)e+=h(n.colWidths[t]??n.defaultColWidth);let i=50+e;for(let e=a+1;e<t;e++)i+=h(n.colWidths[e]??n.defaultColWidth);o=(i-this.scrollHost.scrollLeft/r)*r}let s;if(e<=i){let t=22;for(let r=1;r<e;r++)t+=g(n.rowHeights[r]??n.defaultRowHeight);s=t*r}else{let t=0;for(let e=1;e<=i;e++)t+=g(n.rowHeights[e]??n.defaultRowHeight);let a=22+t;for(let t=i+1;t<e;t++)a+=g(n.rowHeights[t]??n.defaultRowHeight);s=(a-this.scrollHost.scrollTop/r)*r}let c=h(n.colWidths[t]??n.defaultColWidth)*r,l=g(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=g(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+=g(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=h(n.colWidths[e]??n.defaultColWidth);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,_=0;for(let e=u+1;e<=16384;e++)if(_+=h(n.colWidths[e]??n.defaultColWidth),m<_)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(`
|
|
10
10
|
`)).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+=g(t.rowHeights[e]??t.defaultRowHeight);let a=0;if(t)for(let e=1;e<=r;e++)a+=h(t.colWidths[e]??t.defaultColWidth);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=Ht-2,n=Ht-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+=h(e.colWidths[t]??e.defaultColWidth);let a=0;for(let t=1;t<=n;t++)a+=g(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+=h(e.colWidths[t]??e.defaultColWidth);let l=22+a;for(let t=n+1;t<=o;t++)l+=g(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+=h(e.colWidths[t]??e.defaultColWidth);let c=0;for(let t=1;t<=a;t++)c+=g(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=h(e.colWidths[d]??e.defaultColWidth);if(f+t>l){p=l-f;break}if(f+=t,d++,d>16384)break}let m=a+1,_=0,v=0;for(;;){let t=g(e.rowHeights[m]??e.defaultRowHeight);if(_+t>u){v=u-_;break}if(_+=t,m++,m>1048576)break}let y=t/r-50-s,b=n/r-22-c,x=0;{let t=-p,n=d;for(;t<y+p&&n<=16384;)t+=h(e.colWidths[n]??e.defaultColWidth),x++,n++;x+=2}let S=0;{let t=-v,n=m;for(;t<b+v&&n<=1048576;)t+=g(e.rowHeights[n]??e.defaultRowHeight),S++,n++;S+=2}let C={row:m,col:d,rows:S,cols:x};await this.wb.renderViewport(this.canvas,this.currentSheet,C,{width:t,height:n,dpr:i,cellScale:r,scrollOffsetX:p,scrollOffsetY:v,freezeRows:a,freezeCols:o})}get sheetNames(){return this.wb.sheetNames}destroy(){this.resizeObserver?.disconnect(),this.keydownHandler&&document.removeEventListener(`keydown`,this.keydownHandler),this.wb.destroy()}},Wt=e.n({XlsxViewer:()=>Ut,XlsxWorkbook:()=>Vt,autoResize:()=>e.t});Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Ut}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Vt}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Wt}});
|
package/dist/xlsx.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./autoResize-ggn4hzd8.cjs`),t=require(`./xlsx-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./autoResize-ggn4hzd8.cjs`),t=require(`./xlsx-Dl5zdO5q.cjs`);exports.XlsxViewer=t.n,exports.XlsxWorkbook=t.r,exports.autoResize=e.t;
|
package/dist/xlsx.mjs
CHANGED
package/package.json
CHANGED