@omegagrid/bundle 0.6.15 → 0.6.16

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.
Files changed (2) hide show
  1. package/omegagrid.js +2 -2
  2. package/package.json +18 -18
package/omegagrid.js CHANGED
@@ -2656,7 +2656,7 @@
2656
2656
  padding-right: 2px;
2657
2657
  }
2658
2658
 
2659
- `,$m={enabled:!1,includeChildren:!0,includeParents:!0},Dm={enabled:!0,reversed:!1},Nm={ROW_HEIGHT:22,RESIZE_TRESHOLD:10,ROW_HEADER_WIDTH:60,SLIDER_SIZE:12,EXPANDER_SIZE:13,MAX_CACHE_ITEMS:5e3,CACHE_CLEAN_INTERVAL:30,COMMENT_HIDE_TIMEOUT:1e3,SELECTOR_BORDER_WIDTH:2,MIN_ROW_HEIGHT:5,MIN_COL_WIDTH:5,SPARKLINE_GAP:4,AUTOSCROLL_TRESHOLD:100,AUTOSCROLL_RATIO:1.1,AUTOSCROLL_INTERVAL:100,DEFAULT_SPARKLINE_OPTIONS:{minValue:"auto",maxValue:"auto",type:"line",style:{color:"0094FF",weight:1},marker:{color:"ff0000"}},DEFAULT_OPTIONS:{rows:100,columns:20,readOnly:!1,rowNumbers:!0,rowPriority:2,rowTree:{enabled:!0},columnTree:{enabled:!0},colLetters:!0,emptyPlaceholder:!0,freezeTop:0,fontSize:12,rowHeight:22,rowResize:!0,columnWidth:100,columnResize:!0,columnPriority:1,freezeLeft:0,freezeRight:0,freezeBottom:0,maxSortingColumns:3,numberFormat:null,levelIndentFactor:2,cellIndentFactor:10,emptyClickable:!1,grid:!0,autofill:!0,undoRedo:!0,commandWindow:!0,cellCache:!0,singleCellModel:!1,editing:{rowInsertion:!0,rowDeletion:!0,colInsertion:!0,colDeletion:!0,rowOutline:!0,colOutline:!0},comments:{hideTimeout:1e3,offsetX:30,offsetY:-30,zIndex:500,headerPosition:"top"},scrolling:{verticalOverscroll:!0,horizontalOverscroll:!0,scrollbarVisibilityTreshold:100},selecting:{enabled:!0,multiSelect:!0},events:{click:{mouseMoveTreshold:10}},clipboard:{pasteProps:["v","dv"]}},...W},Pm=/^(?!.*[\\\/\*\[\]\:\?"])(.{1,31})$/;function jm(t){return Pm.test(t)}function Vm(t){return["\\","/","*","[","]",":","?",'"'].forEach((e=>t=t.replace(new RegExp(`\\${e}`,"g"),""))),t}function Bm(t,e){return!isNaN(t)&&null!=t||!isNaN(e)&&null!=e||(t=null==t?"":at(t.toString()).toLowerCase(),e=null==e?"":at(e.toString()).toLowerCase()),t>e?1:t<e?-1:0}function Fm(t,e){const i=Z(e);return Z(t)?(t=t.toString().trim()).startsWith("=")?0==Bm(e,i?t.substring(1):parseFloat(t.substring(1))):t.startsWith(">=")?Bm(e,i?t.substring(2):parseFloat(t.substring(2)))>=0:t.startsWith("<=")?Bm(e,i?t.substring(2):parseFloat(t.substring(2)))<=0:t.startsWith(">")?Bm(e,i?t.substring(1):parseFloat(t.substring(1)))>0:t.startsWith("<")?Bm(e,i?t.substring(1):parseFloat(t.substring(1)))<0:0==Bm(e,i?t:isNaN(t)?t||"":parseFloat(t)):e==t}const Wm=new Map([["=",["==",1,0]],[">",[">",1,0]],["<",["<",1,0]],[">=",[">=",1,0]],["<=",["<=",1,0]],["+",["+",2,0]],["-",["-",2,0]],["*",["*",3,0]],["/",["/",3,0]]]),Um=t=>["=",">","<",">=","<="].includes(t),Gm=t=>["+","-","*","/"].includes(t),qm=t=>Gm(t)||Um(t);function Ym(t,e,i){switch(i){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return t/e;case"=":return 0==Bm(t,e);case">":return Bm(t,e)>0;case"<":return Bm(t,e)<0;case">=":return Bm(t,e)>=0;case"<=":return Bm(t,e)<=0;default:throw new Error(`Invalid operator: ${i}`)}}function Zm(t,e,i){const o=Array.isArray(t),n=Array.isArray(e);if(!o&&!n)return[[Ym(t,e,i)]];const r=Math.max(o?t.length:0,n?e.length:0),s=Math.max(o?t[0].length:0,n?e[0].length:0),a=[];for(let l=0;l<r;l++){const r=[];for(let a=0;a<s;a++){const s=o?t[l]?.[a]:t,c=n?e[l]?.[a]:e,h=null==s&&null==c?null:Ym(s,c,i);r.push(h)}a.push(r)}return a}var Xm;!function(t){t[t.Number=0]="Number",t[t.Boolean=1]="Boolean",t[t.String=2]="String",t[t.StringQuote=3]="StringQuote",t[t.Function=4]="Function",t[t.ArgumentSeparator=5]="ArgumentSeparator",t[t.OpenBracket=6]="OpenBracket",t[t.CloseBracket=7]="CloseBracket",t[t.Operator=8]="Operator",t[t.Cell=9]="Cell",t[t.Variable=10]="Variable",t[t.Range=11]="Range",t[t.Sheet=12]="Sheet",t[t.SheetQuote=13]="SheetQuote",t[t.SheetSeparator=14]="SheetSeparator",t[t.Unknown=15]="Unknown",t[t.Operand=16]="Operand"}(Xm||(Xm={}));const Qm=t=>t===Xm.Number||t===Xm.Boolean||t===Xm.String||t===Xm.Cell||t===Xm.Variable||t===Xm.Range,Km=t=>t>=48&&t<=57,Jm=t=>"true"===(t=t.toLowerCase())||"false"===t,tv=t=>t>=65&&t<=90||t>=97&&t<=122||t>=192&&t<=687,ev={decimalPoint:".",stringQuote:'"',sheetQuote:"'",argumentSeparator:","};class iv{constructor(t){this.options=Object.assign(ev,t)}tokenize(t){const e=[],i=t.length;let o,n,r,s,a=0,l="",c=!1,h=!1,d=!1;for(;a<i;){if(o=t.charAt(a),n=o.charCodeAt(0),"="==o&&0==a)++a;else if(Km(n)){for(l=(d?"-":"")+o,++a;a<i;)if(o=t.charAt(a),n=o.charCodeAt(0),Km(n))l+=o,++a;else{if(o!==this.options.decimalPoint)break;l+=".",++a}d=!1,e.push([l,Xm.Number])}else if(tv(n)||"$"==o){l=o,r=null,++a;do{if(o=t.charAt(a),n=o.charCodeAt(0),tv(n)||Km(n)||"."===o||"$"===o||"_"===o)"_"==o?r=Xm.Variable:Km(n)&&!c&&null==r&&(r=Xm.Cell),l+=o,++a,a==i&&e.push([l,r||Xm.Variable]);else{if("("==o){e.push([l.toUpperCase(),Xm.Function]),e.push([o,Xm.OpenBracket]),++a;break}if("'"==o)e.push([l,Xm.Sheet]),l="",e.push([o,Xm.SheetQuote]),c=!0,++a;else if(":"==o)r=Xm.Range,l+=o,++a;else{if(!c||" "!=o){if("!"==o){""!==l&&e.push([l,Xm.Sheet]),e.push([o,Xm.SheetSeparator]),c=!1,l="",++a;break}e.push([l,r||(Jm(l)?Xm.Boolean:Xm.Variable)]);break}l+=o,++a}}}while(a<i)}else if(qm(o)){if("-"===o&&Km(t.charCodeAt(a+1))&&(null==s||"("==s[0]||Um(s[0])||s[1]==Xm.ArgumentSeparator))d=!0;else{for(l=o;Um(t.charAt(a+1));)l+=t.charAt(++a);e.push([l,Xm.Operator])}++a}else if("("===o)e.push([o,Xm.OpenBracket]),++a;else if(")"===o)e.push([o,Xm.CloseBracket]),++a;else if("'"===o)e.push([o,Xm.SheetQuote]),c=!0,++a;else if(o===this.options.argumentSeparator)e.push([o,Xm.ArgumentSeparator]),++a;else if(o===this.options.stringQuote){for(h=!1,e.push([o,Xm.StringQuote]),l="";++a<i;){if(o=t.charAt(a),o===this.options.stringQuote){h=!0,++a;break}l+=o}e.push([l,Xm.String]),h&&e.push([this.options.stringQuote,Xm.StringQuote])}else e.push([o,Xm.Unknown]),++a;s=e[e.length-1]}return e}}function ov(t,e,i=null,o=!0){return t+=e,0==e?t:t>=0?i?o?t%i:Math.min(t,i-1):t:o&&i?i+t%i:Math.max(t,0)}const nv=/(?:'?([\w\s]*)'?!)?(\$?)([a-z]*)(\$?)(\d*)(?::(\$?)([a-z]*)(\$?)(\d*))?/i;class rv{constructor(t,e,i,o,n){this.setCoords(t,e,i,o),this.sheet=n}setCoords(t,e,i,o){this.c1=null==t&&null==i?0:t,this.r1=null==e&&null==o?0:e,this.c2=null==o&&null!=t||null!=i?null==i?t:i:1/0,this.r2=null==i&&null!=e||null!=o?null==o?e:o:1/0,this.normalize()}get size(){return{columns:this.c2-this.c1+1,rows:this.r2-this.r1+1}}get count(){const{columns:t,rows:e}=this.size;return t*e}normalize(){const[t,e]=[Math.min(this.c1,this.c2),Math.max(this.c1,this.c2)],[i,o]=[Math.min(this.r1,this.r2),Math.max(this.r1,this.r2)];return this.c1=t,this.c2=e,this.r1=i,this.r2=o,this}move(t,e,i=null,o=null,n=!0){const r=ov(this.c1,t,i,n);n&&(e+=this.c1+t!=r&&0!=t?t>0?1:-1:0),this.c1=r,this.r1=ov(this.r1,e,o,n),this.c2=ov(this.c2,t,i,n),this.r2=ov(this.r2,e,o,n)}contains(t){return t.c1>=this.c1&&t.c2<=this.c2&&t.r1>=this.r1&&t.r2<=this.r2}containsColumn(t){return this.c1<=t&&this.c2>=t}containsRow(t){return this.r1<=t&&this.r2>=t}removeAnchors(){return this.c1Anchor=!1,this.c2Anchor=!1,this.r1Anchor=!1,this.r2Anchor=!1,this}addAnchors(){return this.c1Anchor=!0,this.c2Anchor=!0,this.r1Anchor=!0,this.r2Anchor=!0,this}shiftLeft(t,e=1,i=null,o=!1){return t<=this.c1&&(o||!this.c1Anchor)&&(null==i||this.c1<=i)&&(this.c1-=e),t<=this.c2&&(o||!this.c2Anchor)&&(null==i||this.c2<=i)&&(this.c2-=e),this}shiftRight(t,e=1,i=null,o=!1){return t<=this.c1&&(o||!this.c1Anchor)&&(null==i||this.c1<=i)&&(this.c1+=e),t<=this.c2&&(o||!this.c2Anchor)&&(null==i||this.c2<=i)&&(this.c2+=e),this}shiftUp(t,e=1,i=null,o=!1){return t<=this.r1&&(o||!this.r1Anchor)&&(null==i||this.r1<=i)&&(this.r1-=e),t<=this.r2&&(o||!this.r2Anchor)&&(null==i||this.r2<=i)&&(this.r2-=e),this}shiftDown(t,e=1,i=null,o=!1){return t<=this.r1&&(o||!this.r1Anchor)&&(null==i||this.r1<=i)&&(this.r1+=e),t<=this.r2&&(o||!this.r2Anchor)&&(null==i||this.r2<=i)&&(this.r2+=e),this}shift(t){const{index:e,offset:i,direction:o,maxIndex:n,ignoreAnchors:r}=t;switch(o){case"down":return this.shiftDown(e,i,n,r);case"up":return this.shiftUp(e,i,n,r);case"left":return this.shiftLeft(e,i,n,r);case"right":return this.shiftRight(e,i,n,r)}}intersect(t){this.normalize(),t.normalize();const e=Math.max(t.c1,this.c1),i=Math.min(t.c2,this.c2),o=Math.max(t.r1,this.r1),n=Math.min(t.r2,this.r2);return e<=i&&o<=n?new rv(e,o,i,n,this.sheet):null}unite(t){return this.normalize(),t.normalize(),new rv(Math.min(this.c1,t.c1),Math.min(this.r1,t.r1),Math.max(this.c2,t.c2),Math.max(this.r2,t.r2),this.sheet)}clone(){const t=new rv(this.c1,this.r1,this.c2,this.r2,this.sheet);return t.c1Anchor=this.c1Anchor,t.r1Anchor=this.r1Anchor,t.c2Anchor=this.c2Anchor,t.r2Anchor=this.r2Anchor,t}equals(t,e=!1){return t.c1==this.c1&&t.r1==this.r1&&t.c2==this.c2&&t.r2==this.r2&&(0==e||t.c1Anchor==this.c1Anchor&&t.r1Anchor==this.r1Anchor&&t.c2Anchor==this.c2Anchor&&t.r2Anchor==this.r2Anchor)}get isCell(){return this.c2==this.c2&&this.r2==this.r1}get isRange(){return this.c2!=this.c1||this.r2!=this.r1}get isColumn(){return 0==this.r1&&this.r2==1/0}get isRow(){return 0==this.c1&&this.c2==1/0}get A1(){const t=this.isRange,e=(this.c1Anchor?"$":"")+(0!==this.c1||this.c2!==1/0?lv(this.c1):"")+(0===this.r1&&this.r2===1/0?"":(this.r1Anchor?"$":"")+sv(this.r1)),i=t?(this.c2Anchor?"$":"")+(!isNaN(this.c2)&&this.c2<1/0?lv(this.c2):"")+(this.r2Anchor?"$":"")+(!isNaN(this.r2)&&this.r2<1/0?sv(this.r2):""):e;return(null==this.sheet?"":((o=this.sheet).indexOf(" ")>-1?"'"+o+"'":o)+"!")+(e==i?e:e+":"+i);var o}get bounds(){return[[new rv(this.c1,this.r1),this.c2<1/0?new rv(this.c2,this.r1):null],[this.r2<1/0?new rv(this.c1,this.r2):null,this.r2<1/0&&this.c2<1/0?new rv(this.c2,this.r2):null]]}*cells(){for(let t=this.r1;t<=this.r2;t++)for(let e=this.c1;e<=this.c2;e++)yield new rv(e,t)}static fromA1(t){const e=nv.exec(t),i=new rv(e[3]?cv(e[3]):null,e[5]?av(e[5]):null,e[7]?cv(e[7]):null,e[9]?av(e[9]):null,e[1]||null);return!e[2]&&e[3]||(i.c1Anchor=!0),!e[4]&&e[5]||(i.r1Anchor=!0),(e[6]||e[2]&&!e[7])&&(i.c2Anchor=!0),(e[8]||e[4]&&!e[9])&&(i.r2Anchor=!0),i}}function sv(t){return(t+1).toString()}function av(t){return parseInt(t)-1}function lv(t){++t;let e,i="";for(;t>0;)e=(t-1)%26,i=String.fromCharCode(e+65)+i,t=(t-e-1)/26;return i}function cv(t){const e=t.length;let i=0;for(let o=0;o<e;o++)i+=(t.charCodeAt(o)-64)*Math.pow(26,e-o-1);return i-1}function hv(t){return t.sort(((t,e)=>{const i=Math.min(t.r1,t.r2),o=Math.min(e.r1,e.r2),n=Math.min(t.c1,t.c2),r=Math.min(e.c1,e.c2);return i<o?-1:i>o?1:n<r?-1:r>n?1:0}))}function dv(t){return t.formula.cells.map((e=>t.cell.model.getCellByRange(e[1])))}function uv(t){let e=t;for(;Array.isArray(e);)e=e.length>0?e[0]:null;return e}function pv(t){return Array.isArray(t)?t:[[t]]}function gv(t,e,i,o){if(!Array.isArray(t))return e(t,i,o);for(let o=0;o<t.length;o++)if(!1===gv(t[o],e,null==i?o:i,null==i?void 0:o))return!1}rv.fromA1s=(t,e=";")=>t.split(e).map((t=>rv.fromA1(t))),rv.toA1s=(t,e=";")=>t.map((t=>t.A1)).join(e),rv.fromCoords=t=>new rv(t.c1,t.r1,t.c2,t.r2),rv.fullColumn=t=>new rv(t,0,t,1/0),rv.fullRow=t=>new rv(0,t,1/0,t);const fv=new Set(["SUMPRODUCT","FILTER"]),mv=t=>fv.has(t),vv=t=>!!(t&&t.length>0&&"="==t.charAt(0)),bv=t=>vv(t)?t:"="+(t??""),yv=t=>vv(t)?t.substring(1):t,wv=["#5B97FF","#FF616B","#B77CFF","#00B02C","#FC58BE","#FF9000","#2EB0B3"],xv=t=>wv[t%wv.length],kv=new Map([["FORMULATEXT","_xlfn."],["CONCAT","_xlfn."],["INDIRECT","_xlfn."],["ISOWEEKNUM","_xlfn."],["SWITCH","_xlfn."],["XOR","_xlfn."]]);class Cv{get fn(){return this._fn??(this._fn=new Function("t","ctx","return "+this.compile()))}get tokens(){return this._tokens}get variables(){return this._variables}get cells(){return this._cells}get ranges(){return this._ranges}get colors(){if(!this._colors){let t;this._colors=new Map,this._tokens.forEach(((e,i)=>{if([Xm.Cell,Xm.Range].includes(e[1])){const o=(t?"'"+t+"'!":"")+e[0];this._colors.set(o,{color:xv(this._colors.size),address:e[0],sheet:t,type:e[1],tokenIndex:i}),t=null}else e[1]==Xm.Sheet&&(t=e[0])}))}return this._colors}constructor(t,e){this.expression=t,this.tokenizer=e,this._tokens=e.tokenize(this.expression),this.updateDependecies()}findTokenIndexAtPosition(t){let e=0;return this._tokens.findIndex((i=>{const o=i[0].length;if(t>=e&&t<=e+o)return!0;e+=o}))}findSheetTokenIndex(t){const e=this._tokens[t];if(![Xm.Cell,Xm.Range].includes(e[1]))return-1;if(0==t||this._tokens[t-1][1]!=Xm.SheetSeparator)return-1;let i=t-2;for(;i>=0;){if(this._tokens[i][1]==Xm.Sheet)return i;i--}return-1}removeSheetToken(t){if(this._tokens[t][1]!=Xm.Sheet&&(t=this.findSheetTokenIndex(t)),t>-1){t>0&&this._tokens[t-1][1]==Xm.SheetQuote&&t--;let e=t;for(;e<this._tokens.length&&[Xm.SheetSeparator,Xm.SheetQuote,Xm.Sheet].includes(this._tokens[e][1]);)e++;return this._tokens.splice(t,e-t),e-t}return 0}getNamedColor(t){return this.colors.get(t)?.color??"inherit"}getTokenPosition(t){let e=0;for(let i=0;i<t;i++)e+=this._tokens[i][0].length;return{min:e,max:e+this._tokens[t][0].length}}updateToken(t,e){this._fn=null,this._formula=null,this._xlFormula=null,this._tokens[t][0]=e}removeToken(t){this._fn=null,this._formula=null,this._xlFormula=null,this._tokens.splice(t,1)}insertToken(t,e,i){this._fn=null,this._formula=null,this._xlFormula=null;const o=[];return i==Xm.Sheet&&/\s/.test(e)?(o.push([this.tokenizer.options.sheetQuote,Xm.SheetQuote]),o.push([e,Xm.Sheet]),o.push([this.tokenizer.options.sheetQuote,Xm.SheetQuote])):o.push([e,i]),o.push(["!",Xm.SheetSeparator]),this._tokens.splice(t,0,...o),o.length}clone(){return new Cv(this.createFormulaString(),this.tokenizer)}updateDependecies(){let t;this._variables=[],this._cells=[],this._ranges=[],this._tokens.forEach(((e,i)=>{switch(e[1]){case Xm.Sheet:t=e[0];break;case Xm.Variable:this._variables.push([i,e[0],t]),t=void 0;break;case Xm.Cell:this._cells.push([i,rv.fromA1(e[0]),t]),t=void 0;break;case Xm.Range:this._ranges.push([i,rv.fromA1(e[0]),t]),t=void 0}}))}createFormulaString(t=!1,e=!1){const i=this.tokenizer.options;let o,n,r,s="";for(let l=0;l<this._tokens.length;l++)switch(o=this._tokens[l],o[1]){case Xm.SheetQuote:s+="'";break;case Xm.SheetSeparator:s+="!";break;case Xm.Sheet:n=o[0],s+=t?`<span style="font-style:italic">${n}</span>`:n;break;case Xm.Variable:s+=o[0];break;case Xm.Range:case Xm.Cell:r=(n?"'"+n+"'!":"")+o[0],s+=t?`<span style="color:${this.getNamedColor(r)}">${o[0]}</span>`:o[0],n=null;break;case Xm.StringQuote:s+=i.stringQuote;break;case Xm.String:s+=o[0].replace(new RegExp(i.stringQuote,"g"),"\\"+i.stringQuote);break;case Xm.ArgumentSeparator:s+=i.argumentSeparator;break;case Xm.Function:s+=(e?(a=o[0],kv.get(a)??""):"")+o[0];break;case Xm.Unknown:s+=t?`<span style="background:#f00;color:#fff">${o[0]}</span>`:o[0];break;default:s+=o[0]}var a;return s}createExpressionTree(){const t=[],e=[],i=this.tokens;let o,n,r,s,a,l=null;for(let c=0;c<i.length;c++)switch(o=i[c],o[1]){case Xm.Sheet:l=o[0];break;case Xm.Cell:case Xm.Range:t.push({t:o[0],tt:o[1],s:l}),l=null;break;case Xm.Number:case Xm.String:case Xm.Boolean:case Xm.Variable:t.push({t:o[0],tt:o[1]});break;case Xm.Operator:for(0==t.length&&t.push({t:"",tt:Xm.Operand}),r=Wm.get(o[0]);e.length>0&&(s=Wm.get(e[e.length-1][0]),s)&&(0===r[2]&&r[1]<=s[1]||1===r[2]&&r[1]<s[1]);)n=e.pop(),a=[t.pop(),t.pop()].reverse(),t.push({t:n[0],tt:n[1],c:a});e.push(o);break;case Xm.Function:case Xm.OpenBracket:e.push(o);break;case Xm.ArgumentSeparator:for(;e.length>0&&(n=e[e.length-1],![Xm.OpenBracket,Xm.ArgumentSeparator].includes(n[1]));)n=e.pop(),a=[t.pop(),t.pop()].reverse(),t.push({t:n[0],tt:n[1],c:a});e.push(o);break;case Xm.CloseBracket:for(a=[];e.length>0&&e[e.length-1][1]!==Xm.OpenBracket;)n=e.pop(),n[1]==Xm.Operator?a.push({t:n[0],tt:n[1],c:[t.pop(),t.pop()].reverse()}):n[1]==Xm.ArgumentSeparator&&t.length>0&&a.push(t.pop());e.pop(),e.length>0&&e[e.length-1][1]===Xm.Function?(n=e.pop(),a=a.reverse(),t.length>0&&i[c-1][1]!==Xm.OpenBracket&&a.unshift(t.pop()),t.push({t:n[0],tt:n[1],c:a})):t.push(...a)}for(;e.length>0;)n=e.pop(),t.push({t:n[0],tt:n[1],c:[t.pop(),t.pop()].reverse()});return t.pop()}createExpressionJSCode(t,e,i){let o;switch(t.tt){case Xm.Range:return"t.rn('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")";case Xm.Cell:return"t.cl('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")";case Xm.Operand:return"t.cl()";case Xm.Variable:return i||e?.tt===Xm.Function?"t.nr('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")":"t.nv('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")";case Xm.String:return"'"+t.t.replace(/'/g,"\\'")+"'";case Xm.Boolean:return"T"==t.t[0].toUpperCase()?"1":"0";case Xm.Function:return o=t.c.map((e=>this.createExpressionJSCode(e,t,i||mv(t.t)))),"t.fn('"+t.t+"').call(ctx"+(o.length>0?","+o.join(","):"")+")";case Xm.Operator:return i?(o=t.c.map((e=>this.createExpressionJSCode(e,t,i||mv(t.t)))),"t.op("+o[0]+","+o[1]+",'"+t.t+"')"):Wm.has(t.t)?"("+t.c.map((e=>this.createExpressionJSCode(e,t,i))).join(Wm.get(t.t)[0])+")":null;default:return t.t}}compile(){const t=this.createExpressionTree();return this.createExpressionJSCode(t)}toString(t=!1){return(t?"=":"")+(this._formula??(this._formula=this.createFormulaString()))}toExcelString(){return this._xlFormula??(this._xlFormula=this.createFormulaString(!1,!0))}shift(t){const{index:e,offset:i,direction:o,maxIndex:n,sheet:r,allSheets:s}=t;return this._cells&&this._cells.forEach((t=>{if(s||null==t[2]||t[2]==r){switch(o){case"up":t[1].shiftUp(e,i,n);break;case"right":t[1].shiftRight(e,i,n);break;case"down":t[1].shiftDown(e,i,n);break;case"left":t[1].shiftLeft(e,i,n)}this._tokens[t[0]][0]=t[1].A1}})),this._ranges&&this._ranges.forEach((t=>{if(s||null==t[2]||t[2]==r){switch(o){case"up":t[1].shiftUp(e,i,n);break;case"right":t[1].shiftRight(e,i,n);break;case"down":t[1].shiftDown(e,i,n);break;case"left":t[1].shiftLeft(e,i,n)}this._tokens[t[0]][0]=t[1].A1}})),this}hasSheetReference(t){for(const e of this._cells)if(e[2]==t)return!0;for(const e of this._ranges)if(e[2]==t)return!0;for(const e of this._variables)if(e[2]==t)return!0;return!1}renameSheet(t,e){let i=!1;return this._tokens.forEach((o=>{o[1]==Xm.Sheet&&o[0]==t&&(o[0]=e,i=!0)})),i}}function Mv(t,e){return e&&(t=qo(this.cell.model.options.locale,Ko(e,"d"),!1)(t)),null==t?"":t.toString()}function _v(t,e){return(t=null==t?"":t.toString()).substring(0,e)}function Sv(t,e){return(t=null==t?"":t.toString()).substring(Math.max(0,t.length-e),t.length)}function Ev(t,e,i){return(t=null==t?"":t.toString()).substring(e,e+i)}function zv(...t){let e="";return gv(t,(t=>e+=null==t?"":t.toString())),e}function Lv(t){return t instanceof Date?t:Z(t)?Lo(t,uo()):Po(t)}function Rv(t){return K(t)?t:No(t instanceof Date?t:Lo(t,uo()))}function Iv(t){return Z(t)?Rv(t):t}function Hv(t,e){const i=Lv(t).getDay();switch(e){case 2:return i;case 3:return i-1;default:return i%7+1}}function Tv(t,e,i){return jo(Rv(uv(t)),e)}function Av(){return No(new Date)}function Ov(t){return null==(t=uv(t))||""===t}function $v(t,e,i){return No(new Date(t,e-1,i))}function Dv(t){return Lv(t).getFullYear()}function Nv(t){return Lv(t).getMonth()+1}function Pv(t){return Lv(t).getDate()}function jv(t,e){const i=Lv(t);return i.setMonth(i.getMonth()+e+1),i.setDate(0),No(i)}function Vv(t){return gi(Lv(t))}function Bv(t){return Math.acos(t)}function Fv(t){return Math.acosh(t)}function Wv(t){return Math.PI/2-Math.atan(t)}function Uv(t){return.5*Math.log((t+1)/(t-1))}function Gv(t){return Math.asin(t)}function qv(t){return Math.asinh(t)}function Yv(t){return Math.atan(t)}function Zv(t){return Math.atanh(t)}function Xv(t){return Math.cos(t)}function Qv(t){return Math.cosh(t)}function Kv(t){return 1/Math.tan(t)}function Jv(t){return 1/Math.tanh(t)}function tb(t){return 1/Math.sin(t)}function eb(t){return 1/Math.sinh(t)}function ib(t){return 180*t/Math.PI}function ob(){return Math.PI}function nb(t){return 1/Math.cos(t)}function rb(t){return 1/Math.cosh(t)}function sb(t){return Math.sin(t)}function ab(t){return Math.sinh(t)}function lb(t){return Math.tan(t)}function cb(t){return Math.tanh(t)}function hb(t){return Math.abs(t)}function db(t){if(t<0)throw new Error("#NUM");return Math.ceil(t)}function ub(t){return(t=Math.ceil(t))%2==0?t:t+1}function pb(t){return Math.pow(Math.E,t)}function gb(t){return t<0?-1:0==t?1:t*gb(t-1)}function fb(t){return t<=0?1:t*fb(t-2)}function mb(t){return Math.floor(t)}function vb(t){return t%1!=0}function bb(t){return!vb(t)&&t%2==0}function yb(t){return vb(t)||t%2==1}function wb(t){return Math.log(t)}function xb(t,e){return Math.log(t)/Math.log(e)}function kb(t){return Math.log10(t)}function Cb(t,e){return t%e}function Mb(t){return(t=Math.ceil(t))%2==0?t+1:t}function _b(t,e){return Math.pow(t,e)}function Sb(...t){let e=1;return gv(t,(t=>e*=t||1)),e}function Eb(t,e){return Math.floor(t/e)}function zb(t){return t*Math.PI/180}function Lb(){return Math.random()}function Rb(t,e){const i=Array(t).fill(null).map((()=>Array(e)));for(let o=0;o<t;o++)for(let t=0;t<e;t++)i[o][t]=Math.random();return i}function Ib(t,e){return t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t}function Hb(t,e){return t.toFixed(e)}function Tb(t,e){return e=e||0,Math.floor(t*Math.pow(10,e))/Math.pow(10,e)}function Ab(t,e){return e=e||0,Math.ceil(t*Math.pow(10,e))/Math.pow(10,e)}function Ob(t,e,i=1,o=1){const n=Array(t).fill(null).map((()=>Array(e)));let r=i;for(let i=0;i<t;i++)for(let t=0;t<e;t++)n[i][t]=r,r+=o;return n}function $b(t){return t<0?-1:t>0?1:0}function Db(t){return Math.sqrt(t)}function Nb(t){return Math.sqrt(Math.PI*t)}function Pb(...t){let e=0;return gv(t,(t=>e+=null==t?0:1)),e}function jb(...t){let e=0;return gv(t,(t=>e+=null==t?1:0)),e}function Vb(t,e){let i=0;return gv(t,(t=>i+=Fm(e,t)?1:0)),i}function Bb(...t){let e=0;const i=new Map;return gv(t,(t=>{i.has(t)||(i.set(t,t),++e)})),e}function Fb(...t){let e=0;return gv(t,(t=>e+=isNaN(t)?0:t)),e}function Wb(t,e,i){let o=0;if(i){const n=pv(i);gv(t,((t,i,r)=>o+=Fm(e,t)&&n[i]&&n[i][r]&&!isNaN(n[i][r])?n[i][r]:0))}else gv(t,(t=>o+=Fm(e,t)&&!isNaN(t)?t:0));return o}function Ub(t,e){let i=0;return gv(t,(t=>i+=Fm(e,t)&&!isNaN(t)?t*t:0)),i}function Gb(...t){let e=0;const i=t.shift();if(0===t.length)gv(i,(t=>e+=isNaN(t)?0:t));else{const o=pv(t[0]);gv(i,((t,i,n)=>e+=o[i]&&o[i][n]&&!isNaN(t)&&!isNaN(o[i][n])?t*o[i][n]:0))}return e}function qb(t,e){return t=null==t?"":t.toString(),e?e=>e==t:(t=t.toLowerCase(),e=>(e??"").toString().toLowerCase().includes(t))}function Yb(t,e,i=1){const o=new rv(Math.max((e||0)-1,0),Math.max((t||0)-1,0));return 1!=i&&2!=i||(o.r1Anchor=!0),1!=i&&3!=i||(o.c1Anchor=!0),o.A1}function Zb(t,e,i,o=!1){let n,r;const s=qb(t,o);for(n=0;n<e.length;n++)for(r=0;r<e[n].length;r++)if(s(e[n][r]))return e[n][i-1];return null}function Xb(t,e,i,o=!1){let n,r;const s=qb(t,o);for(n=0;n<e.length;n++)for(r=0;r<e[n].length;r++)if(s(e[n][r]))return e[i-1][r];return null}function Qb(t,e,i){let o,n;t:for(o=0;o<e.length;o++)for(n=0;n<e[o].length;n++)if(e[o][n]==t)break t;return i?i[o]?i[o][n]:null:e[o][e[o].length-1]}function Kb(t,...e){let i=null,o=0;return gv(e,(e=>{if(t==++o)return i=e,!1})),i}function Jb(t){return(t?rv.fromA1(t).c1:this.cell.c)+1}function ty(t){return(t?rv.fromA1(t).r1:this.cell.r)+1}function ey(t){return Array.isArray(t)?t[0]?.length:1}function iy(t){return Array.isArray(t)?t.length:1}function oy(){const t=dv(this)[0];return t&&t.hasFormula?" "+bv(t.formula):""}function ny(t,e,i){return e=e||1,i=i||1,Array.isArray(t)?t[e-1]?t[e-1][i-1]:null:1==e&&1==i?t:null}function ry(t){const e=this.cell,i=e.model,o=i.getCellByA1(t);let n;return i.calculations.dependencies.cellDependencies.has(e.address)?n=i.calculations.dependencies.cellDependencies.get(e.address):(n=new Map,i.calculations.dependencies.cellDependencies.set(e.address,n)),n.set(o.address,[o.range]),i.calculations.dependencies.cellDependants.has(o.address)?n=i.calculations.dependencies.cellDependants.get(o.address):(n=new Map,i.calculations.dependencies.cellDependants.set(o.address,n)),n.set(e.address,[e.range]),o.value}function sy(t,e,i=0){let o,n;for(o=0;o<e.length;o++)for(n=0;n<e[o].length;n++){if(0==i&&e[o][n]==t)return Math.max(o+1,n+1);if(1==i&&e[o][n]>t)return Math.max(o+1,n+1);if(-1==i&&e[o][n]<t)return Math.max(o+1,n+1)}return null}function ay(t,e,i,o,n){const r=dv(this)[0],s=[];o=o||1,n=n||1;for(let t=0;t<o;t++){const o=[];for(let s=0;s<n;s++){const n=r.model.rows[r.r+t+e].cell(r.c+s+i);o.push(n?r.value:null)}s.push(o)}return s}function ly(t,e){const i=[];if(t.length==e.length)for(let o=0;o<t.length;o++){let n=!0;for(let t=0;t<e[o].length;t++)if(!e[o][t]){n=!1;break}n&&i.push(t[o])}return i}const cy=[[3.1611237438705655,113.86415415105016,377.485237685302,3209.3775891384694,.18577770618460315],[.5641884969886701,8.883149794388377,66.11919063714163,298.6351381974001,881.952221241769,1712.0476126340707,2051.0783778260716,1230.3393547979972,2.1531153547440383e-8],[.30532663496123236,.36034489994980445,.12578172611122926,.016083785148742275,.0006587491615298378,.016315387137302097]],hy=[[23.601290952344122,244.02463793444417,1282.6165260773723,2844.236833439171],[15.744926110709835,117.6939508913125,537.1811018620099,1621.3895745666903,3290.7992357334597,4362.619090143247,3439.3676741437216,1230.3393548037495],[2.568520192289822,1.8729528499234604,.5279051029514285,.06051834131244132,.0023352049762686918]];function dy(t){const e=t*t;let i,o=cy[0][4]*e,n=e;for(i=0;i<3;i+=1)o=(o+cy[0][i])*e,n=(n+hy[0][i])*e;return t*(o+cy[0][3])/(n+hy[0][3])}function uy(...t){let e=!0;return gv(t,(t=>{if(!t)return e=!1})),e}function py(...t){let e=!1;return gv(t,(t=>{if(t)return e=!0})),e}function gy(...t){let e=null;return gv(t,(t=>{e=null===e?!!t:!!t!=e})),e}function fy(...t){const e=t[0];for(let i=1;i<t.length;i+=2){if(i==t.length-1)return t[i];if(e==t[i])return t[i+1]}return null}function my(t,e,i){return t?e:i}function vy(t){return!t}function by(){return!1}function yy(){return!0}function wy(t,e){return e=""===e?null:e,t===1/0||t===-1/0||Number.isNaN(t)?e:t}var xy=i(235),ky=i.n(xy),Cy=i(5949),My=i.n(Cy);function _y(...t){let e=0,i=0;return gv(t,(t=>{null==t||isNaN(t)||(e+=t||0,++i)})),e/i}function Sy(t,e){const i=My()(),o=pv(t),n=pv(e);for(let t=0;t<o.length;t++)for(let e=0;e<o[t].length;e++)i(o[t][e],(n[t]?n[t][e]:1)??1);return i()}function Ey(...t){const e=function(t){const e=[];return gv(t,(t=>e.push(t))),e}(t),i=ky()(e.length,e,1);return e.reduce(((t,e)=>t+Math.abs(e-i)),0)/e.length}function zy(...t){let e=1/0;return gv(t,(t=>e=Math.min(e,t))),e}function Ly(...t){let e=-1/0;return gv(t,(t=>e=Math.max(e,t))),e}function Ry(t,e){Object.keys(e).forEach((i=>t.set(nt(i,"_").replace(/_/g,".").toUpperCase(),e[i])))}const Iy=new Map;Ry(Iy,C),Ry(Iy,M),Ry(Iy,_),Ry(Iy,S),Ry(Iy,z),Ry(Iy,E),Ry(Iy,L);class Hy{constructor(t){this.model=t,this.getModel=t=>{const e=t?this.model.getConnectedModel(t):this.model;if(e)return e;throw new Error(`Sheet "${t}" not found`)},this.cl=(t,e)=>{const i=this.getModel(e);return(null==t?this.currentCell:i.getCellByA1(t)).value},this.rn=(t,e)=>this.getModel(e).getValuesInRange(rv.fromA1(t)),this.nv=(t,e)=>this.getModel(e).getCellByName(t,this.currentCell.range).value,this.nr=(t,e)=>{const i=this.getModel(e).getValueMatrixByName(t);return 1===i.length&&1===i[0].length?i[0][0]:i},this.fn=t=>{const e=Iy.get(t);if(e)return e;throw new Error(`Function "${t}" not found`)},this.op=(t,e,i)=>Zm(t,e,i)}}function Ty(t,e){const i=Array(e).fill(null);let o=0,n=[];if(t.length>1){n=t.map((t=>parseFloat(t.value)||0)),o=n[1]-n[0];for(let t=2;t<n.length;t++)if(n[t]-n[t-1]!==o){o=0;break}}if(0==o)for(let o=0;o<e;o++)i[o]=t[o%t.length]?.value;else{let t=n[n.length-1];for(let n=0;n<e;n++)t=i[n]=t+o}return i}function Ay(t,e,i){const o=new Cv(t.formula,t.model.calculations.tokenizer),n=[];for(let t=0;t<i;t++)n.push(bv(o.shift({index:0,offset:1,direction:e,allSheets:!0}).createFormulaString()));return n}function Oy(t,e,i,o){const n=t.getCellMatrix(e);let r;"right"==o?r=zn(n):"down"==o?r=En(n):"left"==o?r=_n(n):"up"==o&&(r=_n(En(n)));const s=new Array(i.size.rows);for(let t=0;t<i.size.rows;t++){s[t]=new Array(i.size.columns);for(let e=0;e<i.size.columns;e++){const i=n.length>t?n[t][n[t].length>e?e:0]:n[0][e];s[t][e]=i.hasDisplayValue?i.displayValue:null}}const a=i.size["down"==o||"up"==o?"rows":"columns"];let l=r.map((t=>t[t.length-1].hasFormula?Ay(t[t.length-1],o,a):Ty(t,a)));return"down"==o?l=En(l):"left"==o?l=_n(l):"up"==o&&(l=Sn(En(l))),t.spillValues({cell:t.getCellByRange(i.bounds[0][0]),values:l,propertyCell:t.getCellByRange(e.bounds[0][0]),displayValues:s})}class $y{get address(){return null}get renderer(){return this._renderer}set renderer(t){this._renderer=t}get afterRenderer(){return this._afterRenderer}set afterRenderer(t){this._afterRenderer=t}get commentRenderer(){return this._commentRenderer}set commentRenderer(t){this._commentRenderer=t}get type(){return this._type}set type(t){this._type=t}get name(){return this._name}set name(t){this._name=t}get style(){return this._style}set style(t){this._style=t}get commentable(){return this._commentable}set commentable(t){this._commentable=t}get clickable(){return this._clickable}set clickable(t){this._clickable=t}get editable(){return this._editable}set editable(t){this._editable=t}get allowInvalid(){return this._allowInvalid}set allowInvalid(t){this._allowInvalid=t}get hasFormula(){return!!this._formula}get formula(){return this._formula}set formula(t){this._formula=t?t.replace(/^=/,""):null}get value2(){return this.hasFormula?bv(this.formula):null}get editorContent(){return this._editorContent}set editorContent(t){this._editorContent=t}get adapter(){return this._adapter}set adapter(t){this._adapter=t}get properties(){return this._properties}set properties(t){this._properties=t}getProperty(t){return this._properties?.[t]}setProperty(t,e){this._properties||(this._properties={}),this._properties[t]=e}get format(){return this._format}set format(t){this._format=t,this._valueFormatter=null}get valueFormatter(){return this._valueFormatter}constructor(t,e){this.model=t,this._type=null,this._clickable=!1,e&&this.populate(e)}populate(t){this._renderer=t.renderer,this._afterRenderer=t.afterRenderer,this._commentRenderer=t.commentRenderer,this._name=t.name,this._type=t.t,this._editorContent=t.content,this._adapter=t.adapter,this._format=t.z,this._formula=t.f,this._editable=t.e,this._commentable=t.commentable,this._clickable=t.clickable,this._allowInvalid=t.allowInvalid,this._properties=t.props,this._style=null==t.s?null:this.model.styles.add(t.s).id}update(t){const e={};if(null!=t.renderer&&(e.renderer=this._renderer,this._renderer=t.renderer),null!=t.afterRenderer&&(this._afterRenderer=t.afterRenderer),null!=t.commentRenderer&&(this._commentRenderer=t.commentRenderer),null!=t.name&&(e.name=this._name,this._name=t.name),null!=t.t&&(e.t=this._type,this._type=t.t),null!=t.content&&(e.content=this._editorContent,this._editorContent=t.content),null!=t.adapter&&(e.adapter=this._adapter,this._adapter=t.adapter),null!=t.z&&(e.z=this._format,this._format=t.z),null!=t.f&&(e.f=this._formula,this._formula=t.f),null!=t.e&&(e.e=this._editable,this._editable=t.e),null!=t.commentable&&(e.commentable=this._commentable,this._commentable=t.commentable),null!=t.clickable&&(e.clickable=this._clickable,this._clickable=t.clickable),null!=t.allowInvalid&&(e.allowInvalid=this._allowInvalid,this._allowInvalid=t.allowInvalid),null!=t.props&&(e.props=this._properties,this._properties=t.props),null!=t.s){const i=this.model.styles.add(t.s).id;this._style!==i&&(e.s=this._style,this._style=i)}return e}getSourceData(){const t={};return null!=this._type&&(t.t=this._type),null!=this._format&&(t.z=this._format),null!=this._formula&&(t.f=this._formula),null!=this._editable&&(t.e=this._editable),null!=this._commentable&&(t.commentable=this._commentable),null!=this._clickable&&(t.clickable=this._clickable),this._properties&&(t.props=it(this._properties)),null!=this._editorContent&&(t.content=q(this._editorContent)?it(this._editorContent):this._editorContent),null!=this._style&&(t.s=this._style),null!=this._name&&(t.name=this._name),t}setStyleProperties(t,e=!1){this.style=e?this.model.styles.set(this.style,t).id:this.model.styles.duplicate(this.style,t).id}removeStyleProperties(t){null!==this.style&&this.model.styles.unset(this.style,t)}get composedStyle(){return this.model.styles.get(this.style)}}function Dy(t){const e={};return t.split(";").forEach((t=>{const[i,o]=t.split(":");e[i]=o.trim()})),e}const Ny=new Map([["thin",{width:1.5,style:"solid"}],["medium",{width:2,style:"solid"}],["thick",{width:3,style:"solid"}],["double",{width:3,style:"double"}],["dotted",{width:1.5,style:"dotted"}],["hair",{width:1,style:"solid"}],["dashed",{width:1.5,style:"dashed"}],["mediumDashed",{width:2,style:"dashed"}],["dashDot",{width:1.5,style:"dashed"}],["mediumDashDot",{width:2,style:"dashed"}],["dashDotDot",{width:1.5,style:"dotted"}],["mediumDashDotDot",{width:2,style:"dotted"}],["slantDashDot",{width:1.5,style:"dashed"}],["none",{width:1.5,style:"solid"}]]),Py=(()=>{const t=new Map;return Ny.forEach(((e,i)=>{let o=t.get(e.style);o||(o=t.set(e.style,new Map).get(e.style)),o.set(e.width,i)})),t})();function jy(t){return"middle"==t?"center":t}function Vy(t){return 3==(t="#"==t.charAt(0)?t.substring(1):t).length?t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t}const By=t=>{if("none"==t)return null;const e=t.split(" "),i=parseInt(e[0].charAt(0))||1,o=e.length>1?e[1]:"solid",n=Py.get(o);return{style:(n?n.get(i):null)??"thin",color:e.length>2?Vy(e[2]):"CCCCCC"}},Fy=t=>{const e=Ny.get(t.style||"none");return e?[It(e.width),e.style,"none"==t.style?"var(--og-cell-background)":`#${t.color}`].join(" "):"none"},Wy=(t,e)=>{const i="#"+(e.fgColor||"000000"),o="#"+(e.bgColor||"FFFFFF");switch(e.patternType){case"solid":t.backgroundColor=i||o;break;case"darkGray":t.backgroundColor=mn(o,.75);break;case"mediumGray":t.backgroundColor=mn(o,.5);break;case"lightGray":t.backgroundColor=mn(o,.25);break;case"gray125":t.backgroundColor=mn(o,.125);break;case"gray0625":t.backgroundColor=mn(o,.0625);break;case"darkHorizontal":t.backgroundImage=`linear-gradient(0deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"darkVertical":t.backgroundImage=`linear-gradient(90deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"darkDown":t.backgroundImage=`linear-gradient(45deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"darkUp":t.backgroundImage=`linear-gradient(-45deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"lightHorizontal":t.backgroundImage=`linear-gradient(0deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"lightVertical":t.backgroundImage=`linear-gradient(90deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"lightDown":t.backgroundImage=`linear-gradient(45deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"lightUp":t.backgroundImage=`linear-gradient(-45deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"darkGrid":t.backgroundImage=`linear-gradient(${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="2px 2px";break;case"lightGrid":t.backgroundImage=`linear-gradient(${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="1px 1px";break;case"darkTrellis":t.backgroundImage=`linear-gradient(45deg, ${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="2px 2px";break;case"lightTrellis":t.backgroundImage=`linear-gradient(45deg, ${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="1px 1px"}return t},Uy=(t,e)=>(t.backgroundImage=`linear-gradient(${(e.angle??0)+90}deg,${e.stops.map((t=>`#${t.rgb} ${100*t.v}%`)).join(",")})`,t),Gy=t=>{const e=t.cssStyle?{...t.cssStyle}:{};return null!=t.bold&&(e.fontWeight=t.bold?"bold":"normal"),t.italic&&(e.fontStyle="italic"),t.underline?e.textDecoration="underline":t.strike&&(e.textDecoration="line-through"),t.sz&&(e.fontSize=Rt(t.sz)),t.color&&(e.color="#"+t.color),t.top&&(e.borderTop=Fy(t.top)),t.right&&(e.borderRight=Fy(t.right)),t.bottom&&(e.borderBottom=Fy(t.bottom)),t.left&&(e.borderLeft=Fy(t.left)),(t.top||t.right||t.bottom||t.left)&&(e.zIndex="1"),t.alignment&&t.alignment.vertical?(e.display="flex",e.justifyContent=t.alignment.horizontal,e.alignItems="top"==t.alignment.vertical?"start":"bottom"==t.alignment.vertical?"end":"center"):t.alignment&&t.alignment.horizontal&&(e.textAlign=t.alignment.horizontal),t.alignment&&t.alignment.wrapText&&(e.display="flex",e.justifyContent=e.justifyContent??"left",e.alignItems=e.alignItems??"center",e.whiteSpace="normal"),t.patternType?Wy(e,t):t.stops&&t.stops.length?Uy(e,t):t.fgColor?e.backgroundColor="#"+t.fgColor:t.bgColor&&(e.backgroundColor="#"+t.bgColor),e},qy=t=>{const e=q(t)?t:Dy(t),i={};let o;for(const t in e){const n=e[t];if(null!=n)switch(t){case"borderTop":case"border-top":i.top=By(n);break;case"borderTopColor":case"border-top-color":i.top?i.top.color=Vy(n):i.top={style:"thin",color:Vy(n)};break;case"borderRight":case"border-right":i.right=By(n);break;case"borderRightColor":case"border-right-color":i.right?i.right.color=Vy(n):i.right={style:"thin",color:Vy(n)};break;case"borderBottom":case"border-bottom":i.bottom=By(n);break;case"borderBottomColor":case"border-bottom-color":i.bottom?i.bottom.color=Vy(n):i.bottom={style:"thin",color:Vy(n)};break;case"borderLeft":case"border-left":i.left=By(n);break;case"borderLeftColor":case"border-left-color":i.left?i.left.color=Vy(n):i.left={style:"thin",color:Vy(n)};break;case"border":o=By(n),i.top=i.top||o,i.right=i.right||o,i.bottom=i.bottom||o,i.left=i.left||o;break;case"textAlign":case"text-align":i.alignment=i.alignment||{},i.alignment.horizontal=n;break;case"verticalAlign":case"vertical-align":i.alignment=i.alignment||{},i.alignment.vertical=jy(n);break;case"whiteSpace":case"white-space":i.alignment=i.alignment||{},i.alignment.wrapText=n&&"nowrap"!=n;break;case"color":i.color=Vy(n);break;case"background":case"backgroundColor":i.fgColor=Vy(n);break;case"fontSize":case"font-size":i.sz=parseFloat(n);break;case"fontWeight":case"font-weight":i.bold="bold"==n;break;case"fontStyle":case"font-style":i.italic="italic"==n;break;default:i[t]=n}}return i},Yy={n:t=>{const e=Z(t)?parseFloat(t):t;return Number.isNaN(e)?t:e},t:t=>t,d:(t,e)=>Z(t)?X(t)?Q(t):No(Lo(t,e.model.options.formatLocale)):t instanceof Date?No(t):t,tm:t=>Z(t)?new Date(t):t,dt:t=>Z(t)?new Date(t):t,b:t=>!!t&&"0"!==t&&"false"!==t.toString().toLowerCase(),s:t=>t,m:t=>t,g:t=>{if(null==t)return null;const e=parseFloat(t);return isNaN(e)?t:e},a:t=>Z(t)?JSON.parse(t):t,h:t=>t},Zy=new Map;class Xy extends $y{get tooltip(){return this._tooltip}set tooltip(t){this._tooltip=t}get hasTooltip(){return null!=this._tooltip}get rowspan(){return this._rowspan}set rowspan(t){this._rowspan=t}get colspan(){return this._colspan}set colspan(t){this._colspan=t}get r(){return this.row.index}get c(){return this.column.index}get hasValue(){return null!=this._value}get value(){return this._evaluated||this.evaluate(),this._value}set value(t){if(t&&vv(t.toString()))this._value=void 0,this.formula=t;else{const e=Yy[this.type](t,this);e!==this._value&&(this._value=e,this._displayValue=void 0),this.row.data&&this.column.data&&(this.row.data[this.column.data]=this._value)}}evaluate(){return this._value=Yy[this.type](this.model.calculations.evaluate(this),this),this._evaluated=!0,this._value}get value2(){return this.hasFormula?bv(this.formula):this.value}get hasDisplayValue(){return null!=this._displayValue}get displayValue(){return this._displayValue}set displayValue(t){this._displayValue=t}get prefersDisplayValue(){return["s","m"].includes(this.type)}get error(){return this._error}set error(t){this._error=t}get hasError(){return!!this._error}clearError(){this._error=void 0}get spillRange(){return this._spillRange}get prevSpillRange(){return this._prevSpillRange}set spillRange(t){!this._spillRange||t&&this._spillRange.equals(t)||(this._prevSpillRange=this._spillRange),this._spillRange=t}get isSpillSource(){return null!=this._spillRange}get spillSource(){return this._spillSource}get isSpilled(){return null!=this._spillSource}spillValue(t,e){this.value=t,this._spillSource=e}clearSpilledValue(){this._spillSource=void 0,this._value=void 0}get hasSparkline(){return null===this._sparkline?this._sparkline=this.model.sparklines.has(this.address):this._sparkline}get hasComment(){return null===this._hasComment?this._hasComment=(this.model.comments.get(this.address)??[]).length>0:this._hasComment}get comments(){return this.model.comments.get(this.address)}get valueFormatter(){const t=super.valueFormatter??this.row.valueFormatter??this.column.valueFormatter;if(t)return t;const e=this.type,i=this.format,{locale:o,fixNumberFormat:n}=this.model.options,r=this.value;if(null==r||""===r)return null;if("n"==e)return null!=i?qo(o,i,n):this.model.options.numberFormatter;if("g"==e){if(null!=i)return qo(o,i,n);if(K(r))return this.model.options.numberFormatter}else{if("t"==e)return null==i?null:qo(o,i,!1);if("d"==e)return i?Ro(o,i):this.model.options.dateFormatter;if("s"==e&&this.editorContent)return(t=>{if(t=t||null,!Zy.has(t))if(t){const e=t.reduce(((t,e)=>t.set(e.k,e.v)),new Map);Zy.set(t,(t=>e.has(t)?e.get(t):t))}else Zy.set(t,(t=>t));return Zy.get(t)})(this.editorContent)}return null}get formattedValue(){return null==this.value?"":this.hasDisplayValue?this.displayValue:this.valueFormatter?this.valueFormatter(this.value):this.value.toString()}get elm1(){return this.row.priority>=this.column.priority?this.row:this.column}get elm2(){return this.row.priority<this.column.priority?this.row:this.column}get clickable(){return super.clickable??this.elm1.clickable??this.elm2.clickable}get type(){return super.type??this.elm1.type??this.elm2.type??"g"}set type(t){this._type=t}get editorContent(){return super.editorContent??this.elm1.editorContent??this.elm2.editorContent??null}get adapter(){return super.adapter??this.elm1.adapter??this.elm2.adapter}set adapter(t){this._adapter=t}get address(){return this.column.address+this.row.address}get range(){return rv.fromA1(this.address)}get allowInvalid(){return super.allowInvalid??this.elm1.allowInvalid??this.elm2.allowInvalid??this.model.options.allowInvalid}get editable(){return super.editable??this.elm1.editable??this.elm2.editable??this.model.options.editable}set editable(t){this._editable=t}get commentable(){return super.commentable??this.elm1.commentable??this.elm2.commentable??this.model.options.commentable}get renderer(){return super.renderer??this.elm1.renderer??this.elm2.renderer}get afterRenderer(){return super.afterRenderer??this.elm1.afterRenderer??this.elm2.afterRenderer??this.model.options.afterRenderer}get commentRenderer(){return super.commentRenderer??this.elm1.commentRenderer??this.elm2.commentRenderer??this.model.options.comments.renderer}get format(){return super.format??this.elm1.format??this.elm2.format}set format(t){super.format=t}get hasOwnFormula(){return!!this._formula}get hasFormula(){return null==this._hasFormula&&(this._hasFormula=!!this.formula),this._hasFormula}get formula(){return this._formula??this.elm1.formula??this.elm2.formula}set formula(t){super.formula=t,this.refreshFormula()}invalidateValue(){this.hasFormula?(this._value=void 0,this._evaluated=!1):this._evaluated=!0,this.clearError()}refreshFormula(){this.invalidateValue(),this._hasFormula=null}clearFormula(){this._formula=null,this._hasFormula=!1,this._evaluated=!0}constructor(t,e){super(t),this._evaluated=!0,this._sparkline=null,this._hasComment=null,this._hasStyle=null,this.row=t.rows[e.r],this.column=t.columns[e.c],this.populate(e)}populate(t){super.populate(t),this._colspan=t.cs??1,this._rowspan=t.rs??1,this._tooltip=t.tooltip,null!=t.f?this._evaluated=!1:null!=t.v&&(this.value=t.v),this._displayValue=t.dv}update(t){const e=super.update(t);return null!=t.cs&&(e.cs=this._colspan,this._colspan=t.cs),null!=t.rs&&(e.rs=this._rowspan,this._rowspan=t.rs),null!=t.tooltip&&(e.tooltip=this._tooltip,this._tooltip=t.tooltip),null!=t.f?this._evaluated=!1:null!=t.v&&(e.v=this.value,this.value=t.v),null!=t.dv&&(e.dv=this._displayValue,this._displayValue=t.dv),e}getSourceData(t){const e=super.getSourceData();return this._colspan>1&&(e.cs=this._colspan),this._rowspan>1&&(e.rs=this._rowspan),null!=this.value&&(e.v=this.value),this.hasTooltip&&(e.tooltip=this._tooltip),t&&t.displayValue&&this.hasDisplayValue&&(e.dv=this._displayValue),e}createComposedStyle(t,e,i){const o=[];return t=t||this.column.style,e=e||this.row.style,null!=t&&null!=e?this.column.priority>this.row.priority?o.push(e,t):o.push(t,e):null!=t?o.push(t):null!=e&&o.push(e),null!=this.style&&o.push(this.style),null!=i&&o.push(i),o.length>0?this.model.styles.merge(...o):null}get composedStyle(){if(null===this._hasStyle){const t=this.createComposedStyle(null,null,this.model.conditionalFormats.evaluate(this));this._hasStyle=null!=t,this._composedStyle=t}return this._composedStyle}get calculatedIndent(){const t=this.composedStyle;return t?.alignment?.indent?t.alignment.indent:this.column.levelIndent&&this.row.level>0?this.row.level*this.model.options.levelIndentFactor:null}get cssStyle(){if(!1===this._hasStyle)return null;if(!this._cssStyle){const t=this.composedStyle;t&&(this._cssStyle=Gy(t))}return this._cssStyle}invalidateStyle(){this._hasComment=null,this._hasStyle=null,this._composedStyle=null,this._cssStyle=null,this._sparkline=null}setStyleProperties(t){super.setStyleProperties(t),this.invalidateStyle()}removeStyleProperties(t){super.removeStyleProperties(t),this.invalidateStyle()}previewStyleProperties(t,e="cell"){const i=Object.assign({},this.createComposedStyle("column"==e?t:null,"row"==e?t:null)??{});if("cell"==e)for(const e in t)i[e]=t[e];this._hasStyle=!0,this._cssStyle=Gy(i)}toString(){return this.address}}const Qy={property:"value",enabled:!0};class Ky extends(dn($y)){get comparer(){return this._comparer}set comparer(t){this._comparer=t}get filter(){return this._filter??(this.model.options.filters?.enabled?Qy:{enabled:!1})}set filter(t){this._filter=t}get hasFilter(){return this.filter.enabled}get sorting(){return this._sorting??this.model.options.columnSorting}set sorting(t){this._sorting=t}get width(){return this._width??this.model.options.columnWidth}set width(t){this._width=t}get levelIndent(){return this._levelIndent}set levelIndent(t){this._levelIndent=t}get levelButtons(){return this._levelButtons}set levelButtons(t){this._levelButtons=t}get priority(){return this._priority}set priority(t){this._priority=t}get address(){return lv(this.index)}get range(){return new rv(this.index,null,this.index,null)}get hasFormula(){return!!this._formula}get formula(){return this._formula}set formula(t){super.formula=t;const e=this.index;this.model.rows.forEach((t=>t.cells[e]?.refreshFormula()))}constructor(t,e){super(t,e),null==this._priority&&(this._priority=t.options.columnPriority)}get mergedHeaders(){return this._mergedHeaders??(this._mergedHeaders=this._header?.filter((t=>t.cs>1||t.rs>1))??[])}updateMergedHeaders(){this._mergedHeaders=null}set header(t){this._mergedHeaders=null,this._header=t}get header(){if(!this._header||this._header.length<this.model.headerCount){this._header=this._header??[];for(let t=this._header.length;t<this.model.headerCount;t++)this._header.push({r:t})}return this._header}convertSourceHeader(t){return Array.isArray(t)?t.map(((t,e)=>(null==(t=t??{r:e}).height&&(t.height=t.h),t.r=e,null==t.style&&(t.style=t.s),t._style=null==t.style?null:this.model.styles.add(t.style).id,t))):Z(t)?[{label:t,r:0}]:null}populate(t){super.populate(t),this._width=null==t.w||"auto"==t.w?null:t.w,this._levelIndent=t.levelIndent,this._levelButtons=t.levelButtons,this._header=this.convertSourceHeader(t.header),this._sorting=t.sorting,this._filter=q(t.filter)?Object.assign({enabled:!0},t.filter):t.filter?Qy:!1===t.filter?{enabled:!1}:null,this._comparer=t.comparer,this.data=t.data,this._mergedHeaders=null,null!=t.priority&&(this._priority=t.priority)}getSourceData(){const t=super.getSourceData();return null!=this._width&&(t.w=this._width),null!=this._levelIndent&&(t.levelIndent=this._levelIndent),null!=this._levelButtons&&(t.levelButtons=this._levelButtons),null!=this._header&&(t.header=this._header),null!=this._sorting&&(t.sorting=this._sorting),null!=this._filter&&(t.filter=this._filter),null!=this.data&&(t.data=this.data),t}expand(t){super.expand(t),this.model.indexVisibleColumns()}collapse(){super.collapse(),this.model.indexVisibleColumns()}get prev(){return this.model.columns[this.index-1]}get next(){return this.model.columns[this.index+1]}get prevVisible(){const t=this.model.visibleColumnIndex[this.index];return null==t||0===t?null:this.model.visibleColumns[t-1]}get nextVisible(){const t=this.model.visibleColumnIndex[this.index];return null==t?null:this.model.visibleColumns[t+1]}calculateRealColspan(t){let e=1,i=this.nextVisible;for(;i&&i.index-this.index<t&&e<t;)++e,i=i.nextVisible;return e}cell(t){return this.model.rows[t].cell(this.index)}clearCalculatedValues(){this.model.rows.forEach((t=>{const e=t.cells[this.index];e&&this.model.calculations.refreshFormula(e)}))}}var Jy;!function(t){t[t.Asc=1]="Asc",t[t.Desc=-1]="Desc"}(Jy||(Jy={}));const tw={g:(t,e)=>t.value==e.value?0:t.value>e.value?1:-1,t:(t,e)=>(t.value||"").toString().localeCompare((e.value||"").toString()),s:(t,e)=>t.value==e.value?0:t.value>e.value?1:-1,m:(t,e)=>t.value==e.value?0:t.value>e.value?1:-1,n:(t,e)=>t.value-e.value,d:(t,e)=>(t.value instanceof Date?t.value.getTime():0)-(e.value instanceof Date?e.value.getTime():0),tm:(t,e)=>(t.value instanceof Date?t.value.getTime():0)-(e.value instanceof Date?e.value.getTime():0),dt:(t,e)=>(t.value instanceof Date?t.value.getTime():0)-(e.value instanceof Date?e.value.getTime():0),b:(t,e)=>t.value-e.value,h:(t,e)=>(t.value||"").localeCompare(e.value),a:()=>0},ew={g:(t,e)=>e.value==t.value?0:e.value>t.value?1:-1,t:(t,e)=>(e.value||"").toString().localeCompare((t.value||"").toString()),s:(t,e)=>e.value==t.value?0:e.value>t.value?1:-1,m:(t,e)=>e.value==t.value?0:e.value>t.value?1:-1,n:(t,e)=>e.value-t.value,d:(t,e)=>(e.value instanceof Date?e.value.getTime():0)-(t.value instanceof Date?t.value.getTime():0),tm:(t,e)=>(e.value instanceof Date?e.value.getTime():0)-(t.value instanceof Date?t.value.getTime():0),dt:(t,e)=>(e.value instanceof Date?e.value.getTime():0)-(t.value instanceof Date?t.value.getTime():0),b:(t,e)=>e.value-t.value,h:(t,e)=>(e.value||"").localeCompare(t.value),a:()=>0},iw=(t,e)=>t.origIndex-e.origIndex;class ow extends EventTarget{get settings(){return this._settings}set settings(t){this._settings=t,this.colMap.clear(),this.settings.length>0&&(this.settings.forEach(((t,e)=>this.colMap.set(t.c,e))),this.applySort(),ln().info(`sorting applied: ${JSON.stringify(this.settings)}`))}constructor(t,e=[]){super(),this.model=t,this.colMap=new Map,this._settings=[],this.settings=e}get(t){return this.colMap.has(t)?this.settings[this.colMap.get(t)]:null}sort(t,e=null,i=!1){let o=this.get(t);return o&&o.ord==Jy.Desc&&null===e?(this.settings.splice(this.colMap.get(t),1),o=null):o?(o.ord=Jy.Desc,this.settings.splice(this.colMap.get(t),1)):o={c:t,ord:Jy.Asc},o&&(null!==e&&(o.ord=e),this.colMap.set(t,0),this.settings.unshift(o)),this.settings.length>this.model.options.maxSortingColumns&&this.settings.pop(),this.colMap.clear(),this.settings.forEach(((t,e)=>{t.index=e,this.colMap.set(t.c,e)})),i||(this.settings.length>0?this.applySort():this.resetSort()),o}applySort(){const t=this.model,e=this.settings.map((e=>{const i=t.columns[e.c];return i?i.comparer?e.ord==Jy.Asc?i.comparer:(t,e)=>-i.comparer(t,e):e.ord==Jy.Asc?tw[i.type??"t"]:ew[i.type??"t"]:(ln().warn(`Column sorting: Column with index ${e.c} not found`),null)})).filter((t=>t)),i=e.length;let o,n,r;t.rowRoot.sort(((t,s)=>{if(!1===t.sortable||!1===s.sortable)return t.origIndex-s.origIndex;for(n=0;n<i;n++)if(r=this.settings[n].c,o=e[n](t.cell(r),s.cell(r)),0!=o)return o;return 0})),t.indexRowsByTree()}resetSort(){this.settings=[],this.colMap.clear(),this.model.rowRoot.sort(iw),this.model.indexRowsByTree()}persistSort(){this.model.rows.forEach(((t,e)=>t.origIndex=e))}}class nw{get properties(){return this._properties}set properties(t){this._properties=t}constructor(t){t&&this.pupulate(t)}pupulate(t){this.author=t.author,this.text=t.text,this.date=t.date?new Date(t.date):null,this.data=t.data,this.readOnly=!!t.readOnly,this._properties=t.props}getSourceData(){const t={};return this._properties&&(t.props=this._properties),this.author&&(t.author=this.author),this.text&&(t.text=this.text),this.data&&(t.data=this.data),null!==this.readOnly&&(t.readOnly=this.readOnly),this.date&&(t.date=Ro("en-US")(this.date,"yyyy-MM-dd HH:mm:ss")),t}}class rw{constructor(t,e){this.model=t,this._commentMap=new Map,this.has=t=>this._commentMap.has(t),this.delete=t=>this._commentMap.delete(t),this.cleanCell=t=>{this.has(t)&&this._commentMap.set(t,this.get(t).filter((t=>(t.text??"").length>0||null!=t.data)))},this.get=t=>(this.has(t)||this._commentMap.set(t,[]),this._commentMap.get(t)),this.set=(t,e)=>{this._commentMap.set(t,e),this.cleanCell(t)},e&&this.populate(e)}populate(t){t.forEach((t=>{const e=t.a1||new rv(t.c,t.r).A1;this._commentMap.has(e)||this._commentMap.set(e,[]),this._commentMap.get(e).push(new nw(t))})),this._commentMap.forEach((t=>{t.sort(((t,e)=>(e.date?e.date.getTime():0)-(t.date?t.date.getTime():0)))}))}shift(t){Array.from(this._commentMap.keys()).forEach((e=>{const i=rv.fromA1(e);i.shift(t),i.A1!=e&&(this._commentMap.set(i.A1,this._commentMap.get(e)),this._commentMap.delete(e))}))}}class sw{get tokenizer(){return this._tokenizer}get dependencies(){return this._dependencies}get formulas(){return this._formulas}constructor(t){this.model=t,this._tokenizer=new iv,this._formulas=new Map,this._dependencies=new fw(t),this.context=new Hy(t)}createFormula(t){const e=new Cv(t.formula,this.tokenizer);return this._formulas.set(t.address,e),t.hasOwnFormula&&(t.formula=e.createFormulaString()),this.createDependecies(t),e}createDependecies(t){const e=t.address;if(this.formulas.has(e)){const i=this.formulas.get(e);i.ranges.forEach((([t,i,o])=>this._dependencies.add(e,i.A1,o))),i.cells.forEach((([t,i,o])=>this._dependencies.add(e,i.A1,o))),i.variables.forEach((([i,o])=>{const n=this.model.getCellByName(o,t.range);n&&this._dependencies.add(e,n.address,null)}))}return this}refreshFormula(t){return t.refreshFormula(),this.formulas.delete(t.address),this.clearDependecies(t),this}updateDependencies(t){return this.clearDependecies(t).getFormula(t),this}getFormula(t){return this._formulas.has(t.address)?this._formulas.get(t.address):this.createFormula(t)}refresh(){this.dependencies.clear(),this._formulas.clear()}clearDependecies(t){const e=t.address;return this.dependencies.clearCellDependecies(e),this.formulas.delete(e),this}evaluateFormula(t,e){return this.context.currentCell=e,t.fn(this.context,{cell:e,formula:t})}evaluateExpression(t,e){this.context.currentCell=e;const i=new Cv(t,this.tokenizer);return i.fn(this.context,{cell:e,formula:i})}evaluate(t,e){if(!t)return null;let i=null;if(t.hasFormula){const o=this.getFormula(t);try{t.clearError(),this.context.currentCell=t,i=o.fn(this.context,{cell:t,formula:o}),Array.isArray(i)?(e||this.model.spillValues({cell:t,values:i}).range,i=i.length>0&&i[0].length>0?i[0][0]:null,e&&(t.value=i)):t.value=i}catch(e){t.error=function(t){return t instanceof RangeError?"Maximum call stack size exceeded"==t.message?"infinite loop":t.message:t.toString()}(e)}}else i=t.value;return i}evaluateAll(){this.model.rows.forEach((t=>this.model.columns.forEach(((e,i)=>t.cell(i).evaluate()))))}calculateViewport(t){const e=[];return t.rows.forEach((t=>t.cells.forEach((t=>{if(t.hasFormula){if(!t.hasValue&&(this.evaluate(t),t.spillRange))for(const i of this.model.getRangeIterator(t.spillRange))e.push(i);e.push(t)}})))),e}shift(t){this.getFormulaCells().forEach((e=>{e.formula=this.getFormula(e).shift(t).createFormulaString(!1),this.updateDependencies(e)}));const e=this.model.name;return this.dependencies.sheetDependants.forEach((i=>{const o=this.model.getConnectedModel(i);o?.calculations.getFormulaCells().forEach((i=>{const n=o.calculations.getFormula(i);n.hasSheetReference(e)&&(i.formula=n.shift(t).createFormulaString(!1),o.calculations.updateDependencies(i))}))})),this}getFormulaCells(){const t=this.model,e=[];let i;const o=t.rows.length,n=t.columns.length;for(let r=0;r<o;r++){i=t.rows[r];for(let t=0;t<n;t++)i.hasCellFormula(t)&&e.push(i.cell(t))}return e}renameSheet(t,e){let i=!1;return this.dependencies.renameSheet(t,e),this.getFormulaCells().forEach((o=>{const n=this.getFormula(o);n.renameSheet(t,e)&&(o.formula=n.createFormulaString(),this.refreshFormula(o),i=!0)})),i}invalidateCellDependants(t){const e=[];return this.dependencies.getDependants(t.range).forEach((([t,i])=>{e.push([t,i]),t.invalidateValue()})),e}invalidateDependants(t){const e=new Map,i=new Map;for(const i of t)this.invalidateCellDependants(i).forEach((([t,i])=>e.set(t,i)));e.forEach(((t,e)=>i.set(e,t)));for(const i of t)e.set(i,null);return e.forEach(((t,e)=>{this.model.sparklines.dependencies.getDependants(e.range).forEach((([t,e])=>{i.set(t,e)})),this.model.conditionalFormats.dependencies.getDependants(e.range).forEach((([t,e])=>{this.model.conditionalFormats.invalidateExtremes(t),t.invalidateStyle(),i.set(t,e)}))})),i}}const aw="#ff0000",lw="#fcd53f",cw="#00bb5e",hw="#555555",dw=new Map([["3Arrows",[{icon:["fas","down"],color:aw},{icon:["fas","right"],color:lw},{icon:["fas","up"],color:cw}]],["3ArrowsGray",[{icon:["fas","down"],color:hw},{icon:["fas","right"],color:hw},{icon:["fas","up"],color:hw}]],["3Flags",[{icon:["fas","flag-pennant"],color:aw},{icon:["fas","flag-pennant"],color:lw},{icon:["fas","flag-pennant"],color:cw}]],["3TrafficLights1",[{icon:["fas","circle"],color:aw},{icon:["fas","circle"],color:lw},{icon:["fas","circle"],color:cw}]],["3TrafficLights2",[{icon:["fas","square-o"],color:aw},{icon:["fas","square-o"],color:lw},{icon:["fas","square-o"],color:cw}]],["3Signs",[{icon:["fas","square"],rotation:45,color:aw},{icon:["fas","triangle"],color:lw},{icon:["fas","circle"],color:cw}]],["3Symbols",[{icon:["fas","circle-xmark"],color:aw},{icon:["fas","circle-exclamation"],color:lw},{icon:["fas","circle-check"],color:cw}]],["3Symbols2",[{icon:["fas","xmark"],color:aw},{icon:["fas","exclamation"],color:lw},{icon:["fas","check"],color:cw}]],["3Stars",[{icon:["fal","star"],color:lw},{icon:["fas","star-half-stroke"],color:lw},{icon:["fas","star"],color:lw}]],["3Triangles",[{icon:"caret-down",color:aw},{icon:"dash",color:lw},{icon:"caret-up",color:cw}]],["4Arrows",[{icon:["fas","down"],color:aw},{icon:["fas","down-right"],color:lw},{icon:["fas","up-right"],color:lw},{icon:["fas","up"],color:cw}]],["4ArrowsGray",[{icon:["fas","down"],color:hw},{icon:["fas","down-right"],color:hw},{icon:["fas","up-right"],color:hw},{icon:["fas","up"],color:hw}]],["4RedToBlack",[{icon:["fas","circle"],color:"#000000"},{icon:["fas","circle"],color:"#b1b1b1"},{icon:["fas","circle"],color:"#edb2a3"},{icon:["fas","circle"],color:aw}]],["4Rating",[{icon:"signal-bars-weak",color:"#4a7db1"},{icon:"signal-bars-fair",color:"#4a7db1"},{icon:"signal-bars-good",color:"#4a7db1"},{icon:["fas","signal-bars"],color:"#4a7db1"}]],["4TrafficLights",[{icon:["fas","circle"],color:"#000000"},{icon:["fas","circle"],color:aw},{icon:["fas","circle"],color:lw},{icon:["fas","circle"],color:cw}]],["5Arrows",[{icon:["fas","down"],color:aw},{icon:["fas","down-right"],color:lw},{icon:["fas","right"],color:lw},{icon:["fas","up-right"],color:lw},{icon:["fas","up"],color:cw}]],["5ArrowsGray",[{icon:["fas","down"],color:hw},{icon:["fas","down-right"],color:hw},{icon:["fas","right"],color:hw},{icon:["fas","up-right"],color:hw},{icon:["fas","up"],color:hw}]],["5Rating",[{icon:["fal","signal-bars"]},{icon:["fal","signal-bars-weak"],color:"#4a7db1"},{icon:["fal","signal-bars-fair"],color:"#4a7db1"},{icon:["fal","signal-bars-good"],color:"#4a7db1"},{icon:["fas","signal-bars"],color:"#4a7db1"}]],["5Quarters",[{icon:["fal","circle"],color:"#505050"},{icon:["fas","circle-quarter-stroke"],color:"#505050"},{icon:["fas","circle-half-stroke"],color:"#505050"},{icon:["fas","circle-three-quarters-stroke"],color:"#505050"},{icon:["fas","circle"],color:"#505050"}]]]),uw=(t,e)=>{const i=dw.get(t);return i?i[e]:null};class pw{get dependencies(){return this._dependencies}constructor(t,e){this.model=t,this.formats=[],this.cellFormatMap=new Map,this.extremes=new Map,this._dependencies=new fw(t),e&&this.populate(e)}populate(t){t.forEach((t=>{try{this.add(t)}catch(e){ln().error(`conditional format error: ${JSON.stringify(t)}`,e)}}))}refresh(){this.dependencies.clear(),this.cellFormatMap.clear(),this.extremes.clear(),this.formats.forEach((t=>this.initConditionalFormat(t)))}clearCellDependecies(t){const e=t.address;return this.dependencies.clearCellDependecies(e),this.cellFormatMap.get(e).forEach((t=>({cf:t.cf}))),this}getExtremes(t){if(!this.extremes.has(t.key)){let e=1/0,i=-1/0;t.ranges.forEach((t=>{for(const o of this.model.getValuesInRange(t))for(const t of o)null!=t&&(isNaN(t)||(e=Math.min(e,t),i=Math.max(i,t)))})),this.extremes.set(t.key,[e,i])}return this.extremes.get(t.key)}invalidateExtremes(t){this.cellFormatMap.get(t.address).forEach((t=>this.extremes.delete(t.cf.key)))}evaluateScaleFormat(t,e){const i=t.value;if(null==i)return null;const[o,n]=this.getExtremes(e.cf);let r;const s=(i-o)/(n-o);if(e.cf.cmid?.color)r=.5==s?"#"+e.cf.cmid.color:s>.5?yn("#"+e.cf.cmid.color,"#"+e.cf.cmax.color,2*(s-.5)):yn("#"+e.cf.cmin.color,"#"+e.cf.cmid.color,2*s);else{if(!e.cf.cmin?.color||!e.cf.cmax?.color)return null;r=yn("#"+e.cf.cmin.color,"#"+e.cf.cmax.color,s)}return{color:wn(r).substring(1),fgColor:r.substring(1)}}evaluateBarFormat(t,e){const i=t.value;if(null==i)return null;const o=this.getExtremes(e.cf);let n=o[0];const r=o[1],s=n<0;s||(n-=.1*(r-n));const a=Math.round(100*(i-n)/(r-n));e.initialized||(e.initialized=!0,e.cf.ranges.forEach((e=>this._dependencies.add(t.address,e.A1,null))));const l=[];if(s){const t=Math.round(-100*n/(r-n));i>=0?(l.push(`#00000000 ${t}%`),l.push(`#${e.cf.color} ${t}%`),l.push(`#${e.cf.color} ${a}%`),l.push(`#00000000 ${a}%`)):(l.push(`#00000000 ${a}%`),l.push(`#ff0000 ${a}%`),l.push(`#ff0000 ${t}%`),l.push(`#00000000 ${t}%`))}else l.push(`#${e.cf.color} ${a}%`),l.push(`#00000000 ${a}%`);return{cssStyle:{backgroundClip:"padding-box",backgroundImage:`linear-gradient(90deg, ${l.join(",")})`}}}evaluateFormulaFormat(t,e){if(!e.initialized&&e.cf.condition){e.initialized=!0;const i=t.address,o=new Cv(e.cf.condition,this.model.calculations.tokenizer);e.f=o.shift({index:0,offset:t.c-e.cf.firstCell.c1,direction:"right"}).shift({index:0,offset:t.r-e.cf.firstCell.r1,direction:"down"}),o.cells.forEach((t=>this._dependencies.add(i,t[1].A1,t[2]))),o.ranges.forEach((t=>this._dependencies.add(i,t[1].A1,t[2]))),o.variables.forEach((([e,o])=>{const n=this.model.getCellByName(o,t.range);n&&this._dependencies.add(i,n.address,null)}))}if(e.f&&!this.model.calculations.evaluateFormula(e.f,t))return null;const i={...e.cf.style};return i.color||xn(wn(kn(e.cf.style.fgColor))),i}evaluateIconFormat(t,e){const i=t.value;if(null==i)return null;const[o,n]=this.getExtremes(e.cf);let r;for(let t=e.cf.thresh.length-1;t>=0;t--){const s=e.cf.thresh[t];if("percent"===s.t){if(null==r&&(r=100*(i-o)/(n-o)),r>=s.v)return{icon:uw(e.cf.v,t)}}else if("num"===s.t&&i>=s.v)return{icon:uw(e.cf.v,t)}}return null}evaluate(t){const e=t.address,i=this.cellFormatMap.get(e);if(!i)return null;let o=null,n=null;for(const e of i){try{switch(e.cf.type){case"formula":n=this.evaluateFormulaFormat(t,e);break;case"scale":n=this.evaluateScaleFormat(t,e);break;case"bar":n=this.evaluateBarFormat(t,e);break;case"icon":n=this.evaluateIconFormat(t,e);break;default:n=null}}catch(t){ln().error(`Conditional format error: ${JSON.stringify(e)}`,t)}if(n&&(o=o?{...o,...n}:n,e.cf.stop))break}return o}initConditionalFormat(t){return t.firstCell=null,t.ranges.forEach((e=>{for(const i of new _w(e.intersect(this.model.gridRange))){const e=i.A1;"formula"===t.type&&(t.firstCell||(t.firstCell=i,t.formula=t.condition?new Cv(t.condition,this.model.calculations.tokenizer):null)),(this.cellFormatMap.get(e)||this.cellFormatMap.set(e,[]).get(e)).push({cf:t})}})),t}add(t){const e={key:t.ranges,ranges:rv.fromA1s(t.ranges),type:t.type||"formula",firstCell:null,formula:null,style:t.style?this.model.styles.add(t.style):null,condition:t.condition,stop:!!t.stop,cmin:t.cmin,cmid:t.cmid,cmax:t.cmax,color:t.color,v:t.v,thresh:t.thresh};this.formats.push(this.initConditionalFormat(e))}getSourceData(){return this.formats.map((t=>({type:t.type,ranges:rv.toA1s(t.ranges),style:t.style,condition:t.condition,stop:t.stop,cmin:t.cmin,cmid:t.cmid,cmax:t.cmax,color:t.color,v:t.v,thresh:t.thresh})))}}function gw(t,e,i){t.forEach((t=>t.forEach((t=>{t[1]==e&&(t[1]=i)}))))}class fw{get cellDependencies(){return this._cellDependencies}get cellDependants(){return this._cellDependants}get rangeDependencies(){return this._rangeDependencies}get rangeDependants(){return this._rangeDependants}get sheetDependencies(){return this._sheetDependencies}get sheetDependants(){return this._sheetDependants}constructor(t){this.model=t,this._cellDependencies=new Map,this._cellDependants=new Map,this._rangeDependencies=new Map,this._rangeDependants=new Map,this._sheetDependencies=new Map,this._sheetDependants=new Map}clear(){this._cellDependants.clear(),this._cellDependencies.clear(),this._rangeDependencies.clear(),this._rangeDependants.clear()}clearCellDependecies(t){return this._cellDependencies.has(t)&&this._cellDependencies.delete(t),this._rangeDependencies.has(t)&&this._rangeDependants.delete(t),this}has(t){return this._cellDependencies.has(t)||this._rangeDependencies.has(t)}add(t,e,i){const o=rv.fromA1(t).removeAnchors(),n=rv.fromA1(e).removeAnchors();e=n.A1;const r=n.isRange,s=r?this._rangeDependencies:this._cellDependencies;let a=null;if((s.has(t)?s.get(t):s.set(t,new Map).get(t)).set(e,[n,i]),i){const t=this.model.getConnectedModel(i);t&&(t.calculations.dependencies.sheetDependants.set(this.model.name,this.model.name),this.sheetDependencies.set(i,i),a=r?t.calculations.dependencies.rangeDependants:t.calculations.dependencies.cellDependants),i=this.model.name}else a=r?this._rangeDependants:this._cellDependants;a&&(a.has(e)||a.set(e,new Map),a.get(e).set(t,[o,i]))}getDependants(t,e=null){const i=t.A1;return e=e??new Map,this._cellDependants.has(i)&&this._cellDependants.get(i).forEach((([t,o])=>{if(e.has(t))return;const n=e.set(t,[(o?this.model.getConnectedModel(o):this.model).getCellByRange(t),o]);t.A1!=i&&this.getDependants(t,n)})),this._rangeDependants.forEach(((i,o)=>{rv.fromA1(o).contains(t)&&i.forEach((([t,i])=>{e.has(t)||(e.delete(t),this.getDependants(t,e.set(t,[(i?this.model.getConnectedModel(i):this.model).getCellByRange(t),i])))}))})),e}renameSheet(t,e){this._sheetDependants.has(t)&&(this._sheetDependants.delete(t),this._sheetDependants.set(e,e)),this._sheetDependencies.has(t)&&(this._sheetDependencies.delete(t),this._sheetDependencies.set(e,e)),gw(this._cellDependants,t,e),gw(this._cellDependencies,t,e),gw(this._rangeDependants,t,e),gw(this._rangeDependencies,t,e)}}const mw=(t,e)=>{const i=new RegExp(`${ht(t)}`,"ig");return t=>(i.lastIndex=0,i.test(at((t[e]??"").toString())))},vw=(t,e)=>i=>!!i[e]===t,bw=(t,e)=>{const i=t.map((t=>t.key?.toString()));return t=>null!=t[e]&&i.includes(t[e].toString())},yw=(t,e)=>t=>!1,ww=(t,e,i)=>(i=i??"value","b"===t?vw(e,i):"s"===t&&Array.isArray(e)?bw(e,"value"):"s"===t?mw(e?.toString(),"formattedValue"):"m"===t&&Array.isArray(e)?yw(e,i):mw(e?.toString(),"d"===t?"formattedValue":i));class xw extends Event{constructor(){super("filter",{bubbles:!1,cancelable:!0,composed:!0})}}class kw extends EventTarget{constructor(t){super(),this.model=t,this.settings=new Map,this.custom=!1}get(t){return this.settings.has(t)?this.settings.get(t):null}filter(t,e=!0){null===t.term||""===t.term?this.settings.delete(t.c):this.settings.set(t.c,t),this.custom||(this.settings.size>0?this.applyFilter(!1):this.resetFilter(!1)),e&&this.dispatchEvent(new xw)}applyFilter(t=!0){const e=[];this.settings.forEach(((t,i)=>{const o=this.model.columns[i];e.push({c:i,matcher:ww(o.type,t.term,o.filter?.property)})}));const i=e.length,o=this.model.options.filters?.includeParents??!0,n=this.model.options.filters?.includeChildren??!0,r=new Set;this.model.rows.forEach((t=>{const s=r.has(t.index);(t=>{if(!t.filterable)return!0;for(let o=0;o<i;o++)if(!e[o].matcher(t.cell(e[o].c)))return!1;return!0})(t)?(t.filterState=cn.Matched,o&&t.walkUp((t=>{if(r.has(t.index)&&t.filterState>0)return!1;t.filterState=cn.ChildMatched,r.add(t.index)})),n&&t.walk((t=>{if(r.has(t.index)&&t.filterState>0)return!1;t.filterState=cn.ParentMatched,r.add(t.index)}))):s||(t.filterState=cn.Filtered),r.add(t.index)})),this.model.indexRows(),t&&this.dispatchEvent(new xw)}resetFilter(t=!0){this.settings.clear(),this.model.rows.forEach((t=>t.filterState=cn.Matched)),this.model.indexRows(),t&&this.dispatchEvent(new xw)}}class Cw{get dependencies(){return this._dependencies}constructor(t,e){this.model=t,this.map=new Map,this.groups=new Map,this.extremes=new Map,this.maxIndex=0,this.updateRangeMap=!1,this._dependencies=new fw(t),this.populate(e)}populate(t){t?.forEach((t=>{try{this.add(rv.fromA1(t.location),Array.isArray(t.data)?t.data.map((t=>[rv.fromA1(t)])):t.data.split(",").map((t=>[rv.fromA1(t)])),et({},Nm.DEFAULT_SPARKLINE_OPTIONS,t.options))}catch(e){this.model.logger.error(`sparkline error: ${JSON.stringify(t)}`,e)}}))}getSourceData(){const t=[];return this.groups.forEach((e=>{t.push({location:e.locRange.A1,data:e.dataRanges.map((t=>t[0].A1)).join(","),options:{minValue:e.minValue,maxValue:e.maxValue,type:e.type,style:e.style,marker:e.marker}})})),t}has(t){return this.map.has(t)}get(t){return this.map.get(t)}createDependencies(t){this.map.get(t)[1].forEach((e=>this._dependencies.add(t,e[0].A1,e[1])))}updateRangeMaps(){this.dependencies.clear(),this.map.clear(),this.groups.forEach(((t,e)=>this.createRangeMap(e,t.locRange,t.dataRanges)))}getValues(t){this.updateRangeMap&&this.updateRangeMaps();const e=this.map.get(t),i=e[1][0][1]?this.model.getConnectedModel(e[1][0][1]):this.model;return this._dependencies.has(t)||this.createDependencies(t),e[1].flatMap((t=>i.getValuesInRange(t[0])[0]))}getExtremes(t){const e=this.map.get(t),i=e[1][0][1]?this.model.getConnectedModel(e[1][0][1]):this.model,o=this.groups.get(e[0]);let n,r,s,a;return null==o.minValue||Z(o.minValue)?"auto"==(o.minValue||"auto")?(n=n??st(...e[1].map((t=>i.getValuesInRange(t[0])))),s=n[0]):(this.extremes.has(e[0])||this.extremes.set(e[0],st(...o.dataRanges.map((t=>i.getValuesInRange(t[0]))))),r=this.extremes.get(e[0]),s=r[0]):s=o.minValue,null==o.maxValue||Z(o.maxValue)?"auto"==(o.maxValue||"auto")?(n=n??st(...e[1].map((t=>i.getValuesInRange(t[0])))),a=n[1]):(this.extremes.has(e[0])||this.extremes.set(e[0],st(...o.dataRanges.map((t=>i.getValuesInRange(t[0]))))),r=this.extremes.get(e[0]),a=r[1]):a=o.maxValue,[s,a]}createRangeMap(t,e,i){e=e.intersect(this.model.gridRange);const o=i[0][0].size,n=e.size;if(n.columns>1&&n.rows>1)return void this.model.logger?.error(`invalid sparkline location range: ${e.A1}`);let r=!1;if(r=1==n.columns&&1==n.rows?o.rows>1:n.columns>1,r)for(let o=e.c1;o<=e.c2;o++)this.map.set(new rv(o,e.r1).A1,[t,i.map((([t,i])=>[new rv(t.c1+o-e.c1,t.r1,t.c1+o-e.c1,t.r2),i]))]);else for(let o=e.r1;o<=e.r2;o++)this.map.set(new rv(e.c1,o).A1,[t,i.map((([t,i])=>[new rv(t.c1,t.r1+o-e.r1,t.c2,t.r1+o-e.r1),i]))])}add(t,e,i){const o=++this.maxIndex;t&&e&&this.createRangeMap(o,t,e),this.groups.set(o,Object.assign({dataRanges:e,locRange:t},JSON.parse(JSON.stringify(Nm.DEFAULT_SPARKLINE_OPTIONS)),i))}update(t,e,i,o){const n=this.groups.get(t);Object.assign(n,{dataRanges:i,locRange:e},o),this.updateRangeMap=!0}delete(t){this.groups.delete(t),this.updateRangeMap=!0}shift(t){this.groups.forEach((e=>{e.dataRanges.forEach((([e])=>e.shift(t))),e.locRange.shift(t)})),this.updateRangeMaps()}}class Mw extends rv{constructor(t,e,i=!1){super(e.c1,e.r1,e.c2,e.r2),this.model=t,this.initializedOnly=i,this.r=0,this.c=-1,this.done=!1}[Symbol.iterator](){return this}nextInitialized(){let t;for(;!this.done&&!t;)this.c<this.size.columns-1?this.c++:this.r<this.size.rows-1&&(this.c=0,this.r++),t=this.model.rows[this.r].cells[this.c],this.done=this.c>=this.size.columns-1&&this.r>=this.size.rows-1;return t}next(){if(this.done)return{done:!0};this.c<this.size.columns-1?this.c++:this.r<this.size.rows-1&&(this.c=0,this.r++),this.done=this.c>=this.size.columns-1&&this.r>=this.size.rows-1;const t=this.model.rows[this.r+this.r1],e=this.c+this.c1,i=this.initializedOnly&&!t.isCellInitialized(e)?this.nextInitialized():t?.cell(e);return i?{done:!1,value:i}:{done:!0}}forEach(t){let e;for(;e=this.next().value;)t(e)}}class _w extends rv{constructor(t){super(t.c1,t.r1,t.c2,t.r2),this.r=0,this.c=-1,this.done=!1}[Symbol.iterator](){return this}next(){return this.done?{done:!0}:(this.c<this.size.columns-1?this.c++:this.r<this.size.rows-1&&(this.c=0,this.r++),this.done=this.c==this.size.columns-1&&this.r==this.size.rows-1,{done:!1,value:new rv(this.c+this.c1,this.r+this.r1)})}}class Sw{constructor(t,e){this.model=t,this.names=new Map,this.rangeMap=new Map,e&&this.populate(e)}populate(t){t.forEach((({name:t,ref:e})=>this.set(t,q(e)?rv.fromCoords(e):rv.fromA1(e))))}set(t,e){this.names.set(t,e),this.rangeMap.set(e.A1,t)}delete(t){const e=this.names.get(t);e&&(this.rangeMap.delete(e.A1),this.names.delete(t))}findCellByName(t){let e;const i=this.model.rows,o=this.model.columns.length;for(let n=0;n<i.length;n++){e=i[n];for(let i=0;i<o;i++)if(e.hasCellName(i)){const o=e.cell(i);if(o.name==t)return o.range}}return null}getCellByName(t,e){const i=this.names.get(t)??this.findCellByName(t);return i?i.isColumn?this.model.rows.length>e.r1?this.model.columns[i.c1].cell(e.r1):null:i.isRow?this.model.columns.length>e.c1?this.model.rows[i.r1].cell(e.c1):null:this.model.rows[i.r1].cell(i.c1):null}getRangeByName(t,e=!0){const i=this.names.get(t);return e?i?.intersect(this.model.gridRange):i}shift(t){this.names.forEach(((e,i)=>{const o=e.A1;e.shift(t);const n=e.A1;o!=n&&(this.rangeMap.delete(o),this.rangeMap.set(n,i))}))}}function Ew(t,e=null){const i=et({},Nm.DEFAULT_OPTIONS,e,jn(t,e));return i.numberFormat?i.numberFormatter=qo(i.locale,i.numberFormat):i.numberFormatter||(i.numberFormatter=qo(i.locale)),i.dateFormat?i.dateFormatter=Ro(i.locale,i.dateFormat):i.dateFormatter||(i.dateFormatter=Ro(i.locale)),i.columnSorting&&(i.sorting=i.sorting||{enabled:!0}),!1===i.filters&&(i.filters={enabled:!1}),i.filters=Object.assign({},$m,i.filters),!1===i.rowTree&&(i.rowTree={enabled:!1}),i.rowTree=Object.assign({},Dm,i.rowTree),!1===i.columnTree&&(i.columnTree={enabled:!1}),i.columnTree=Object.assign({},Dm,i.columnTree),i}class zw extends(dn($y)){get cells(){return this._cells}get data(){return this._data}set data(t){this._data=t}get height(){return this._height??this.model.options.rowHeight}set height(t){this._height=t}get priority(){return this._priority}set priority(t){this._priority=t}get address(){return sv(this.index)}get range(){return new rv(null,this.index,null,this.index)}get hasFormula(){return!!this._formula}get formula(){return this._formula}set formula(t){super.formula=t,this.model.columns.forEach((t=>this.cell(t.index).refreshFormula()))}get values(){return this.model.columns.map((t=>this.cell(t.index).value))}cell(t,e){if(this.model.options.singleCellModel)return this._singleCell||(this._singleCell=new Xy(this.model,{c:t,r:this.index})),this._singleCell.row=this,this._singleCell.column=this.model.columns[t],this._singleCell;let i=this._cells[t];if((e||!i)&&this.model.columns[t]){if(i=new Xy(this.model,e??{c:t,r:this.index}),this._data){const e=this.model.columns[t].data;null!=e&&(q(this._data[e])?i.populate(this._data[e]):i.hasValue||(i.value=this._data[e]))}i.name&&this.model.names.set(i.name,i.range),this._cells[t]=i}return i}constructor(t,e){super(t,e),this.isCellInitialized=t=>!!this.cells[t],this._cells=[],null==this._priority&&(this._priority=t.options.rowPriority)}populate(t){super.populate(t),this._height=null==t.h||"auto"==t.h?this.model.options.rowHeight:t.h,this._data=t.data,null!=t.priority&&(this._priority=t.priority)}getSourceData(){const t=super.getSourceData();return null!=this._height&&this._height!=this.model.options.rowHeight&&(t.h=this._height),t}expand(t){super.expand(t),this.model.indexVisibleRows()}collapse(){super.collapse(),this.model.indexVisibleRows()}get prev(){return this.model.rows[this.index-1]}get next(){return this.model.rows[this.index+1]}get prevVisible(){let t=this.prev;for(;t&&!t.visible;)t=t.prev;return t}get nextVisible(){let t=this.next;for(;t&&!t.visible;)t=t.next;return t}hasCellFormula(t){return this.cells[t]&&this.cells[t].hasFormula||this._data&&this._data[this.model.columns[t].data]&&this._data[this.model.columns[t].data].f}hasCellName(t){return this.cells[t]&&null!=this.cells[t].name||this._data&&this._data[this.model.columns[t].data]&&null!=this._data[this.model.columns[t].data].name}insertColumns(t,e,i=!1){let o;const n=this.model.columns.length,r=this.model.calculations;if(i)for(let i=0;i<n;i++)this.hasCellFormula(i)&&(o=this.cell(i),o.formula=r.getFormula(o).shift({index:t,offset:e,direction:"right"}).createFormulaString(!1));t<this.cells.length&&this.cells.splice(t,0,...Array(e).fill(null))}deleteColumns(t,e,i=!1){let o;const n=this.model.columns.length,r=this.model.calculations;if(i)for(let i=0;i<n;i++)this.hasCellFormula(i)&&(o=this.cell(i),o.formula=r.getFormula(o).shift({index:t,offset:e,direction:"left"}).createFormulaString(!1));return t<this.cells.length?this.cells.splice(t,e):null}clearCalculatedValues(){this.cells.forEach((t=>t&&this.model.calculations.refreshFormula(t)))}}var Lw=i(4418),Rw=i.n(Lw);const Iw=t=>t?"1":"0",Hw=t=>null==t?"_":t,Tw=t=>null==t?"_":t.toString(),Aw=t=>null==t?"_":JSON.stringify(t),Ow=t=>Hw(t&&t.color?t.color:"_")+Hw(t&&t.style?t.style:"_"),$w=t=>Hw(t?t.horizontal:null)+Hw(t?t.vertical:null)+Hw(t?t.horizontal:null)+Tw(t?t.indent:null)+Iw(t?t.wrapText:null)+Tw(t?t.textRotation:null),Dw=t=>Rw()("s_"+Iw(t.bold)+Iw(t.italic)+Iw(t.underline)+Tw(t.sz)+Hw(t.font)+Hw(t.color)+Ow(t.top)+Ow(t.right)+Ow(t.bottom)+Ow(t.left)+Hw(t.patternType)+Hw(t.fgColor)+Hw(t.bgColor)+$w(t.alignment)+Tw(t.angle)+Aw(t.stops)+Iw(t.hidden)+Iw(t.editable)+Aw(t.cssStyle)+Aw(t.icon));function Nw(t){const e={...t};return delete e.id,delete e.hash,e}class Pw{constructor(t){this.model=t,this._count=0,this.hashmap=new Map,this.map=new Map}add(t){if(!isNaN(t))return this.get(t);const e=this.model.options.cssStyles?qy(t):t,i=e.hash?e.hash:Dw(e);return this.hashmap.has(i)?this.map.get(this.hashmap.get(i)):(null==e.id&&(e.id=this._count),this._count=Math.max(e.id+1,this._count+1),e.hash=i,this.hashmap.set(i,e.id),this.map.set(e.id,e),e)}populate(t){t.forEach((t=>this.add(t)))}get(t){return this.map.has(t)?this.map.get(t):null}remove(t){const e="object"==typeof t?t:this.map.get(t);this.hashmap.delete(e.hash),this.map.delete(e.id)}merge(...t){const e=Object.assign({},...t.map((t=>q(t)?t:this.get(t))));return this.add(Nw(e))}duplicate(t,e){const i=this.get(t);return this.add(Nw({...i,...e}))}set(t,e){let i=this.map.has(t)?this.map.get(t):{};for(const t in e)i[t]=e[t];return i=i.id?i:this.add(i),i}unset(t,e){if(this.map.has(t)){const i=this.map.get(t);for(const t of e)delete i[t]}}getSourceData(){return Array.from(this.map.values())}clean(){const t=new Map(Array.from(this.map.entries()).map((([t])=>[t,0])));this.model.columns.forEach((e=>{const i=t.get(e.style);null!=i&&t.set(e.style,i+1)})),this.model.rows.forEach((e=>{const i=t.get(e.style);null!=i&&t.set(e.style,i+1),e.cells.forEach((e=>{const i=t.get(e.style);null!=i&&t.set(e.style,i+1)}))})),t.forEach(((t,e)=>{0==t&&this.remove(e)}))}}function jw(t,e,i){const o="rows"==i?e.rows:e.columns,n=function(t){const e=new Map;for(const i of t)e.has(i.level)||e.set(i.level,[]),e.get(i.level).push(i);return e}(o);for(const i of t){let t;if(t=i.index>-1?[o[i.index]]:i.level>-1?n.get(i.level):o,i.name){const e=i.name instanceof RegExp?i.name:new RegExp(ht(i.name));t=t.filter((t=>e.test(t.name)))}t.forEach((t=>{i.type?e.conditionalFormats.add(Object.assign({ranges:`${t.address}:${t.address}`},i)):t.style=e.styles.add(i.style).id}))}}function Vw(t,e){!function(t,e){for(const i of t)if(i.type)e.conditionalFormats.add(Object.assign({ranges:"A:"+e.columns[e.columns.length-1].address},i));else for(const t of e.columns)null==t.style&&(t.style=e.styles.add(i.style).id)}(t.cells??[],e),jw(t.columns??[],e,"columns"),jw(t.rows??[],e,"rows")}const Bw=["index","name","rows","columns","cells","options","sparklines","rules","comments","styles","names","props","tab","theme"];class Fw{get comments(){return this._comments}get calculations(){return this._calculations}get names(){return this._names}get sparklines(){return this._sparklines}get conditionalFormats(){return this._conditionalFormats}get mergedHeaders(){return this._mergedHeaders}get mergedCells(){return this._mergedCells}get hiddenCells(){return this._hiddenCells}get hasFilter(){return this._filter}get hasRowTree(){return this._maxRowLevel>0}get hasRowTreeEnabled(){return this.hasRowTree&&this.options.rowTree.enabled}get maxRowLevel(){return this._maxRowLevel}get hasColumnTree(){return this._maxColumnLevel>0}get hasColumnTreeEnabled(){return this.hasColumnTree&&this.options.columnTree.enabled}get maxColumnLevel(){return this._maxColumnLevel}get headerCount(){return this._headerCount}get columnHeaderCount(){return this.headerCount+(this.hasColumnTreeEnabled?1:0)+(this.hasFilter?1:0)}get properties(){return this._properties}set properties(t){this._properties=t}constructor(t,e,i){this.otherModels={},this.autofitColumns=new Set,this.autofitRows=new Set,this.styles=new Pw(this),this._comments=new rw(this),this._calculations=new sw(this),this._names=new Sw(this),this._sparklines=new Cw(this),this._conditionalFormats=new pw(this),this._hiddenCells=new Map,this._filter=!1,this._maxRowLevel=0,this._maxColumnLevel=0,this._headerCount=0,this._levelBasedRowTree=!0,this._levelBasedColTree=!0,this.clearRows=()=>(this.rowRoot.clearChildren(),this.rows=[],this.rows),this.clearColumns=()=>this.columns=[],this.logger=i,this.options=e??Ew(t.options),this.populate(t)}getConnectedModel(t){return this.group?this.group.get(t):null}getModelByRange(t){return t.sheet?this.getConnectedModel(t.sheet):this}getCellByA1(t){return this.getCellByRange(rv.fromA1(t))}getCellByRange(t){return this.getCellByCoords(t.r1,t.c1)}getCellByCoords(t,e){return this.rows[t].cell(e)}cell(t,e){return isNaN(t)?t instanceof rv?this.getCellByRange(t):"string"==typeof t?this.getCellByA1(t):null:this.getCellByCoords(t,e||0)}createRows(t,e=new zw(this,{l:-1}),i=0){let o=!1,n=!1;this.autofitRows.clear();const r=t.map(((t,e)=>{t||(t={}),isNaN(t.l)||(o=!0),null!=t.p&&(n=!0),"auto"==t.h&&this.autofitRows.add(e);const r=new zw(this,t);return r.origIndex=e+i,r.name&&this.names.set(r.name,rv.fullRow(e)),r}));let s=-1;return o?s=un(r,e,{reverse:this.options.rowTree.reversed}):n?s=pn(r,e):e.children=r,[e,r,s,o]}insertRowData(t,e,i){const o=this.createRows(i,new zw(this,{l:t.level}),e);this._maxRowLevel=Math.max(this._maxRowLevel,o[2]),t.insertChildren(o[0].children,e),this.indexRowsByTree()}applyTheme(t,e){if(e)for(const t of this.getInitializedCellIterator())t.invalidateStyle();Vw(t,this)}populate(t){this.index=t.index,this.name=t.name??this.name,this.tab=t.tab;let e=!1,i=!1;if(t.columns||(t.columns=new Array(this.options.columns).fill({})),t.rows||(t.rows=new Array(this.options.rows).fill({})),t.styles&&this.styles.populate(t.styles),this.autofitColumns.clear(),this.columns=t.columns.map(((t,o)=>{t||(t={}),t.l>0&&(e=!0),null!=t.p&&(i=!0),"auto"==t.w&&this.autofitColumns.add(o);const n=new Ky(this,t);return this._filter=n.hasFilter||this._filter,n.name&&this.names.set(n.name,rv.fullColumn(o)),n})),this._levelBasedColTree=e,this._maxColumnLevel=-1,this.colRoot=new Ky(this,{l:-1}),e?this._maxColumnLevel=un(this.columns,this.colRoot,{reverse:this.options.columnTree.reversed}):i?this._maxColumnLevel=pn(this.columns,this.colRoot):this.colRoot.children=this.columns,this.indexColumns(),this.indexVisibleColumns(),[this.rowRoot,this.rows,this._maxRowLevel,this._levelBasedRowTree]=this.createRows(t.rows),this.indexRows(),this.indexVisibleRows(),this.options.pageSize&&this.options.pageSize<=this.rows.length&&(this.rowRoot.count=1/0),this._mergedCells=[],t.cells?.forEach(((t,e)=>{const i=this.rows[t.r]?this.rows[t.r].cell(t.c,t):null;i?(i.colspan>1||i.rowspan>1)&&this._mergedCells.push({r:i.r,c:i.c,rs:i.rowspan,cs:i.colspan}):this.logger?.error(`invalid cell definition (index ${e}): ${JSON.stringify(t)}`)})),this.indexHiddenCells(),t.sparklines)try{this.sparklines.populate(t.sparklines)}catch(t){ln().error(`Sparkline init error: ${t}`)}if(t.names)try{this.names.populate(t.names)}catch(t){ln().error(`Named range init error: ${t}`)}if(t.rules)try{this.conditionalFormats.populate(t.rules)}catch(t){ln().error(`Conditional formats init error: ${t}`)}if(t.theme)try{this.applyTheme(t.theme)}catch(t){ln().error(`Theme init error: ${t}`)}if(t.comments)try{this.comments.populate(t.comments)}catch(t){ln().error(`Comment init error: ${t}`)}this._properties=t.props,this.otherSourceData={};const o=new Set(Bw),n=Object.keys(t).filter((t=>!o.has(t)));n.forEach((e=>this.otherSourceData[e]=t[e])),this.calcHeaderHeights()}getSourceData(){const t={index:this.index,name:this.name,tab:this.tab,columns:this.columns.map((t=>t.getSourceData())),rows:this.rows.map((t=>t.getSourceData())),styles:this.styles.getSourceData(),rules:this.conditionalFormats.getSourceData(),sparklines:this.sparklines.getSourceData(),options:this.options};this._properties&&(t.props=this._properties);const e=[];let i;for(let t=0;t<this.rows.length;t++)for(let o=0;o<this.columns.length;o++)i=this.rows[t].cell(o).getSourceData(),Object.keys(i).length>0&&(i.r=t,i.c=o,e.push(i));e.length>0&&(t.cells=e);const o=[];return this.styles.clean(),this.styles.map.forEach((t=>o.push(t))),o.length>0&&(t.styles=o),new Set([...Object.keys(this.otherModels??{}),...Object.keys(this.otherSourceData??{})]).forEach((e=>t[e]=this.otherModels[e]?Array.from(this.otherModels[e]).map((t=>t.getSourceData())):this.otherSourceData[e])),t}calcHeaderHeights(){this._headerCount=0,this._headerHeights=[],this.columns.forEach((t=>{this._headerCount=t.header?t.header.length:this._headerCount,this._headerHeights.length<this._headerCount&&this._headerHeights.push(...Array(this._headerCount-this._headerHeights.length).fill(0)),t.header?.forEach(((t,e)=>{e>=this._headerHeights.length&&this._headerHeights.push(0),this._headerHeights[e]=Math.max(this._headerHeights[e],t.height??0)}))}))}indexRows(){this.visibleRows=[],this.rows.forEach(((t,e)=>{t.index=e,t.isLoaded||(t.collapsed=!0),t.hidden||t.filterState==cn.Filtered||this.visibleRows.push(t)}))}indexVisibleRows(){this.visibleRows=[];let t=0;if(this._levelBasedRowTree){if(this.rowRoot.walkVisible((e=>{e.visibleIndex=t++,this.visibleRows.push(e)})),this.options.rowTree.reversed){const e=new Array(this.visibleRows.length);this.visibleRows.forEach(((i,o)=>{t=this.visibleRows.length-o-1,i.visibleIndex=t,e[t]=i})),this.visibleRows=e}}else this.rowRoot.walkVisible((t=>this.visibleRows[t.index]=t)),this.visibleRows=this.visibleRows.filter((e=>!!e&&(e.visibleIndex=t++,!0)))}indexRowsByTree(){this.rows=[];let t=0;this.rowRoot.walk((e=>{e.index=t++,this.rows.push(e)})),this.options.rowTree.reversed&&this.rows.reverse(),this.indexVisibleRows()}indexColumns(){this.visibleColumns=[],this.columns.forEach(((t,e)=>{t.index=e,t.hidden||this.visibleColumns.push(t)}))}indexVisibleColumns(){this.visibleColumns=[],this.visibleColumnIndex={};let t=0;if(this.colRoot.walkVisible((e=>{e.visibleIndex=t,this.visibleColumnIndex[e.index]=t++,this.visibleColumns.push(e)})),this.options.columnTree.reversed){this.visibleColumnIndex={};const e=new Array(this.visibleColumns.length);this.visibleColumns.forEach(((i,o)=>{t=this.visibleColumns.length-o-1,i.visibleIndex=t,this.visibleColumnIndex[i.index]=t,e[t]=i})),this.visibleColumns=e}this.indexHeaders()}indexHeaders(){this._mergedHeaders=[],this._headerCount=0,this.colRoot.walkVisible((t=>{this._headerCount=Math.max(t.header?t.header.length:0,this._headerCount),t.mergedHeaders.forEach((e=>this._mergedHeaders.push({h:e,c:t.index,r:e.r,cs:t.calculateRealColspan(e.cs??1),rs:e.rs??1})))})),this._mergedHeaders.forEach((t=>{if(!t.h.hidden)for(let e=t.c;e<t.c+t.cs;e++)for(let i=t.r;i<t.r+t.rs;i++)(i>t.r||e>t.c)&&this.columns[e]&&this.columns[e].header[i]&&(this.columns[e].header[i].hidden=!0)})),this.calcHeaderHeights()}removeHeader(t){this.columns.forEach((e=>{t<e.header.length&&e.header.splice(t,1)})),this.indexHeaders()}clear(){this.clearRows(),this.clearColumns(),this.resetViewport()}resetViewport(){return this._viewport=null,this}getViewport(t,e,i){const o=[],n=[];let r,s,a=e.h,l=0;for(l=0;l<i.t;l++)r=this.visibleRows[l],a-=r.height,o.push(r);for(l=this.visibleRows.length-i.b;l<this.visibleRows.length;l++)r=this.visibleRows[l],a-=r.height;for(l=i.t+t.r;a>0&&l<this.visibleRows.length;)r=this.visibleRows[l++],a-=r.height,o.push(r);for(l=this.visibleRows.length-i.b;l<this.visibleRows.length;l++)o.push(this.visibleRows[l]);let c=e.w,h=0;for(h=0;h<i.l;h++)s=this.visibleColumns[h],c-=s.width,n.push(s);for(h=this.visibleColumns.length-i.r;h<this.visibleColumns.length;h++)s=this.visibleColumns[h],c-=s.width;for(h=i.l+t.c;c>0&&h<this.visibleColumns.length;)s=this.visibleColumns[h++],c-=s.width,n.push(s);for(h=this.visibleColumns.length-i.r;h<this.visibleColumns.length;h++)n.push(this.visibleColumns[h]);return this._viewport={rows:o,columns:n}}calculateViewport(){return this._viewport?this.calculations.calculateViewport(this._viewport):[]}getValuesInRange(t,e=!1){if(!(t=t.intersect(this.gridRange)))return[];const{columns:i,rows:o}=t.size,n=new Array(o);let r,s=0,a=0;for(let o=t.r1;o<=t.r2;o++){n[s]=new Array(i),a=0,r=this.rows[o];for(let i=t.c1;i<=t.c2;i++)n[s][a++]=e?r.cell(i).formattedValue:r.cell(i).value;++s}return n}setRowExpandLevel(t){this.rows.forEach((e=>{e.collapsed=!e.isLoaded&&!e.isPartialyLoaded||e.level>=t,e.level<=t&&(e.hidden=!1)})),this.indexVisibleRows()}setColumnExpandLevel(t){this.columns.forEach((e=>e.collapsed=e.level>=t)),this.indexVisibleColumns()}getViewportRange(){return this._viewport?new rv(this._viewport.columns[0].index,this._viewport.rows[0].index,this._viewport.columns[this._viewport.columns.length-1].index,this._viewport.rows[this._viewport.rows.length-1].index):null}get gridRange(){return new rv(0,0,this.columns.length-1,this.rows.length-1)}getRangeIterator(t,e=!1){return new Mw(this,e&&this._viewport?t.intersect(this.getViewportRange()):t.intersect(this.gridRange))}getInitializedCellIterator(){return new Mw(this,this.gridRange,!0)}getCellArray(t){const e=[];for(const i of this.getRangeIterator(t))e.push(i);return e}transformRangeToMatrix(t,e){let i,o,n;const r=[];for(let s=(t=t.intersect(this.gridRange)).r1;s<=t.r2;s++)if(i=this.rows[s],i){n=[];for(let r=t.c1;r<=t.c2;r++)o=i.cell(r),o&&n.push(e(o));r.push(n)}return r}getCellMatrix(t){return this.getModelByRange(t)?.transformRangeToMatrix(t,(t=>t))}getValueMatrix(t){return this.getModelByRange(t)?.transformRangeToMatrix(t,(t=>t.value))}shiftMerges(t){const{index:e,offset:i,direction:o}=t,n={down:t=>{e<=t.r?t.r+=i:e>t.r&&e<t.r+t.rs&&(this.rows[t.r].cell(t.c).rowspan=t.rs+=i)},up:t=>{e<=t.r?t.r-=i:e>t.r&&e<t.r+t.rs&&(this.rows[t.r].cell(t.c).rowspan=t.rs-=i)},right:t=>{e<=t.c?t.c+=i:e>t.c&&e<t.c+t.cs&&(this.rows[t.r].cell(t.c).colspan=t.cs+=i)},left:t=>{e<=t.c?t.c-=i:e>t.c&&e<t.c+t.cs&&(this.rows[t.r].cell(t.c).colspan=t.cs-=i)}};this.mergedCells.forEach(n[o]),this.indexHiddenCells()}indexHiddenCells(){this._hiddenCells.clear(),this.mergedCells.forEach((t=>{if(!(t.r>0||this._hiddenCells.has(t.r)&&this._hiddenCells.get(t.r).has(t.c)))for(let e=t.r;e<t.r+t.rs;e++)for(let i=t.c;i<t.c+t.cs;i++)(e>t.r||i>t.c)&&(this._hiddenCells.has(e)||this._hiddenCells.set(e,new Map),this._hiddenCells.get(e).set(i,t))}))}shift(t){t.sheet=this.name,this.shiftMerges(t),this.calculations.shift(t),this.names.shift(t),this.comments.shift(t),this.sparklines.shift(t)}clearCalculations(t=!1){t&&this.group?this.group.models.forEach((t=>t.calculations.refresh())):this.calculations.refresh()}refreshSparklines(){this.sparklines.updateRangeMaps();for(const t of this.getInitializedCellIterator())t.invalidateStyle()}clearCalculatedStyles(){this.conditionalFormats.refresh();const t=[];for(const e of this.getInitializedCellIterator())t.push(e),e.invalidateStyle()}insertColumns(t,e,i=!1){const o=this.columns[Math.min(this.columns.length-1,t)].parent;i&&++t,this.shift({index:t,offset:e,direction:"right"});for(let i=0;i<this.rows.length;i++)this.rows[i].insertColumns(t,e,!1);const n=new Array(e).fill(null).map((()=>new Ky(this)));return this.columns.splice(t,0,...n),this.maxColumnLevel>0&&o.insertChildren(n,t-(o.index||-1)-1),this.indexColumns(),this.clearCalculations(!0),n}deleteColumns(t,e){const i=this.columns[t].parent;this.shift({index:t,offset:e,direction:"left"});const o=[];for(let i=0;i<this.rows.length;i++)o.push(this.rows[i].deleteColumns(t,e,!1));const n=this.columns.splice(t,e);return i?.deleteChildren(n),this.indexColumns(),this.clearCalculations(!0),n}insertRows(t,e,i=!1){const o=Math.min(this.rows.length-1,t),n=o<0?this.rowRoot:this.rows[o].parent;i&&++t;const r=isNaN(e)?e.length:e;this.shift({index:t,offset:r,direction:"down"});const s=isNaN(e)?e:new Array(r).fill(null).map((()=>new zw(this)));return this.rows.splice(t,0,...s),this.maxRowLevel>0&&n.insertChildren(s,t-(n.index||-1)-1),this.indexRows(),this.clearCalculations(!0),s}deleteRows(t,e){const i=this.rows[t].parent;this.shift({index:t,offset:e,direction:"up"});const o=this.rows.splice(t,e);return i?.deleteChildren(o),this.indexRows(),this.clearCalculations(!0),o}moveRows(t,e,i){const o=this.rows.splice(t,e);return this.rows.splice(i,0,...o),this.shift({index:t,offset:i-t,direction:"down",maxIndex:t+e-1}),this.indexRows(),this.clearCalculations(!0),o}moveColumns(t,e,i){const o=this.columns.splice(t,e);return this.columns.splice(i,0,...o),this.shift({index:t,offset:i-t,direction:"right",maxIndex:t+e-1}),this.indexColumns(),this.clearCalculations(!0),o}spillValues(t){const{cell:e,values:i,displayValues:o,propertyCell:n}=t,r=[],s=[],a=0===i.length||0===i[0].length;let l,c;const h=a?null:new rv(e.c,e.r,e.c+i[0].length-1,e.r+i.length-1);if(e.spillRange&&this.getRangeIterator(e.spillRange,!0).forEach((t=>{e==t||h?.contains(t.range)||t.clearSpilledValue()})),e.spillRange=h,a)return{cells:r,oldValues:s,range:null};for(let t=h.r1;t<=h.r2;t++){if(l=this.rows[t],!l)continue;const a=t-h.r1;for(let t=h.c1;t<=h.c2;t++){const d=t-h.c1;c=l.cell(t),c.editable&&(s.push(c.value2),c.spillValue(i[a][d],e),n&&(c.format=n.format,c.type=n.type),o&&null!=o[a][d]&&(c.displayValue=o[a][d]),r.push(c))}}return{cells:r,oldValues:s,range:h}}getCellByName(t,e,i=!0){return this.names.getCellByName(t,e)||(this.group&&i?this.group.getCellByName(t,e):null)}getRangeByName(t,e=!0){return this.names.getRangeByName(t)||(this.group&&e?this.group.getRangeByName(t):null)}getValueMatrixByName(t,e=!0){const i=this.names.getRangeByName(t);return i?this.getValueMatrix(i):this.group&&e?this.group.getValueMatrixByName(t):null}rebuildRowTree(){const t=this._levelBasedRowTree?un:pn;this._maxRowLevel=t(this.rows,this.rowRoot,{reverse:this.options.rowTree.reversed}),this.indexRowsByTree()}rebuildColumnTree(){const t=this._levelBasedColTree?un:pn;this._maxColumnLevel=t(this.columns,this.colRoot,{reverse:this.options.columnTree.reversed}),this.indexColumns()}calculateCellOffset(t){let e=0,i=0;for(let i=0;i<t.c1&&this.columns[i];i++)e+=this.columns[i].width;for(let e=0;e<t.r1&&this.rows[e];e++)i+=this.rows[e].height;return{x:e,y:i}}}class Ww{get errors(){return this._errors}get(t){return this.models.get(t)}has(t){return this.models.has(t)}getNewName(){let t;do{t=`sheet${this._max}`}while(this.models.has(t));return t}add(t){if(t.index=t.index??this._max,++this._max,t.name=t.name||this.getNewName(),this.models.has(t.name))throw Error(`sheet "${t.name}" already exists`);return this.models.set(t.name,t),t.group=this,t}duplicate(t){const e=this.get(t);if(!e)return;const i=new Fw(e.getSourceData(),e.options);let o=1;for(;this.models.has(`${t}_${o}`);)++o;return i.name=`${t}_${o}`,this.add(i),i}remove(t){return this.models.delete(t),this}rename(t,e){if(this.has(t)){if(this.has(e))throw new Error(`Model '${e}' already exists`);const i=this.get(t);i.name=e,this.models.set(e,i),this.models.delete(t),this.models.forEach((i=>{i.calculations.renameSheet(t,e)&&i.calculateViewport()}))}return this}clear(){this.models.clear(),this._errors=[]}constructor(t){this._max=0,this.models=new Map,this.themes=new Map,this._errors=[],t&&this.populate(t)}populate(t){this.clear(),t.models.forEach((t=>{const e=new Fw(t);try{this.add(e)}catch(t){this.errors.push(t)}})),t.themes&&t.themes.forEach((t=>this.themes.set(t.name,t)))}getSourceData(){const t={models:[]};return this.models.forEach((e=>t.models.push(e.getSourceData()))),t}getCellByName(t,e){for(const i of this.models.values()){const o=i.getCellByName(t,e,!1);if(o)return o}return null}getRangeByName(t){for(const e of this.models.values()){const i=e.getRangeByName(t,!1);if(i)return i}return null}getValueMatrixByName(t){for(const e of this.models.values()){const i=e.getValueMatrixByName(t,!1);if(i)return i}return null}}class Uw{constructor(t){this.model=t,this.stack=[],this.restack=[]}push(t){return this.restack=[],t.timestamp||(t.timestamp=Date.now()),this.stack.push(t),this}pop(t=1){let e=0;const i=[];for(;e++<t&&this.stack.length>0;){const t=this.stack.pop();i.push(t),this.restack.push(t)}return i}pop2(t=1){let e=0;const i=[];for(;e++<t&&this.restack.length>0;){const t=this.restack.pop();i.push(t),this.stack.push(t)}return i}}class Gw{get activeCellCoords(){return{c:this.range.c1+this.activeCell.c1,r:this.range.r1+this.activeCell.r1}}constructor(t,e,i,o){this.hidden=!1,this.range=new rv(t,e,i,o),this.activeCell=new rv(0,0)}static fromRange(t){return new Gw(t.c1,t.r1,t.c2,t.r2)}setCoords(t,e,i,o){this.range.setCoords(t,e,i,o),this.activeCell.setCoords(0,0)}setRange(t){"string"==typeof t&&(t=rv.fromA1(t)),this.range.setCoords(t.c1,t.r1,t.c2,t.r2),this.activeCell.setCoords(0,0)}move(t,e,i,o){this.range.setCoords(this.range.c1+this.activeCell.c1,this.range.r1+this.activeCell.r1,this.range.c1+this.activeCell.c2,this.range.r1+this.activeCell.r2),this.range.move(t,e,i,o,!1),this.activeCell.setCoords(0,0)}moveRange(t,e,i,o){this.range.move(t,e,i,o,!0)}moveActiveCell(t,e){const{columns:i,rows:o}=this.range.size;this.activeCell.move(t,e,i,o,!0)}}const qw={...Nm,CUSTOM_CLIPBOARD_TYPE:"web application/json"};class Yw{constructor(t,e,i=qw.MAX_CACHE_ITEMS){this.maxCacheItems=i,this.queue=[],this.disabled=!1,this.table=new Array(e).fill(null).map((()=>new Array(t)))}get(t,e){return this.table[e][t]}delete(t,e){return this.table[e][t]=null,this}deleteColumn(t){for(let e=0;e<this.table.length;e++)this.table[e][t]=null;return this}deleteRow(t){return this.table[t]=new Array(this.table[0].length).fill(null),this}set(t,e,i){this.disabled||(this.get(t,e)||this.queue.push([e,t]),this.table[e][t]=i)}clear(){this.queue=[],this.table=this.table.map((t=>new Array(t.length)))}clean(){if(this.maxCacheItems>0&&this.queue.length>this.maxCacheItems){let t=this.queue.length;for(let e=0;e<this.queue.length;e++){const i=this.queue[e];if(!this.table[i[0]][i[1]].parentNode&&(this.queue[e]=null,this.table[i[0]][i[1]]=null,--t<=this.maxCacheItems))break}t<this.queue.length&&(this.queue=this.queue.filter((t=>t)))}}}var Zw=function(t,e,i,o){var n,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(r<3?n(s):r>3?n(e,i,s):n(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};let Xw=class extends Kr{constructor(){super(),this.render=()=>Hr`
2659
+ `,$m={enabled:!1,includeChildren:!0,includeParents:!0},Dm={enabled:!0,reversed:!1},Nm={ROW_HEIGHT:22,RESIZE_TRESHOLD:10,ROW_HEADER_WIDTH:60,SLIDER_SIZE:12,EXPANDER_SIZE:13,MAX_CACHE_ITEMS:5e3,CACHE_CLEAN_INTERVAL:30,COMMENT_HIDE_TIMEOUT:1e3,SELECTOR_BORDER_WIDTH:2,MIN_ROW_HEIGHT:5,MIN_COL_WIDTH:5,SPARKLINE_GAP:4,AUTOSCROLL_TRESHOLD:100,AUTOSCROLL_RATIO:1.1,AUTOSCROLL_INTERVAL:100,DEFAULT_SPARKLINE_OPTIONS:{minValue:"auto",maxValue:"auto",type:"line",style:{color:"0094FF",weight:1},marker:{color:"ff0000"}},DEFAULT_OPTIONS:{rows:100,columns:20,readOnly:!1,rowNumbers:!0,rowPriority:2,rowTree:{enabled:!0},columnTree:{enabled:!0},colLetters:!0,emptyPlaceholder:!0,freezeTop:0,fontSize:12,rowHeight:22,rowResize:!0,columnWidth:100,columnResize:!0,columnPriority:1,freezeLeft:0,freezeRight:0,freezeBottom:0,maxSortingColumns:3,numberFormat:null,levelIndentFactor:2,cellIndentFactor:10,emptyClickable:!1,grid:!0,autofill:!0,undoRedo:!0,commandWindow:!0,cellCache:!0,singleCellModel:!1,editing:{rowInsertion:!0,rowDeletion:!0,colInsertion:!0,colDeletion:!0,rowOutline:!0,colOutline:!0},comments:{hideTimeout:1e3,offsetX:30,offsetY:-30,zIndex:500,headerPosition:"top"},scrolling:{verticalOverscroll:!0,horizontalOverscroll:!0,scrollbarVisibilityTreshold:100},selecting:{enabled:!0,multiSelect:!0},events:{click:{mouseMoveTreshold:10}},clipboard:{pasteProps:["v","dv"]}},...W},Pm=/^(?!.*[\\\/\*\[\]\:\?"])(.{1,31})$/;function jm(t){return Pm.test(t)}function Vm(t){return["\\","/","*","[","]",":","?",'"'].forEach((e=>t=t.replace(new RegExp(`\\${e}`,"g"),""))),t}function Bm(t,e){return!isNaN(t)&&null!=t||!isNaN(e)&&null!=e||(t=null==t?"":at(t.toString()).toLowerCase(),e=null==e?"":at(e.toString()).toLowerCase()),t>e?1:t<e?-1:0}function Fm(t,e){const i=Z(e);return Z(t)?(t=t.toString().trim()).startsWith("=")?0==Bm(e,i?t.substring(1):parseFloat(t.substring(1))):t.startsWith(">=")?Bm(e,i?t.substring(2):parseFloat(t.substring(2)))>=0:t.startsWith("<=")?Bm(e,i?t.substring(2):parseFloat(t.substring(2)))<=0:t.startsWith(">")?Bm(e,i?t.substring(1):parseFloat(t.substring(1)))>0:t.startsWith("<")?Bm(e,i?t.substring(1):parseFloat(t.substring(1)))<0:0==Bm(e,i?t:isNaN(t)?t||"":parseFloat(t)):e==t}const Wm=new Map([["=",["==",1,0]],[">",[">",1,0]],["<",["<",1,0]],[">=",[">=",1,0]],["<=",["<=",1,0]],["+",["+",2,0]],["-",["-",2,0]],["*",["*",3,0]],["/",["/",3,0]]]),Um=t=>["=",">","<",">=","<="].includes(t),Gm=t=>["+","-","*","/"].includes(t),qm=t=>Gm(t)||Um(t);function Ym(t,e,i){switch(i){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return t/e;case"=":return 0==Bm(t,e);case">":return Bm(t,e)>0;case"<":return Bm(t,e)<0;case">=":return Bm(t,e)>=0;case"<=":return Bm(t,e)<=0;default:throw new Error(`Invalid operator: ${i}`)}}function Zm(t,e,i){const o=Array.isArray(t),n=Array.isArray(e);if(!o&&!n)return[[Ym(t,e,i)]];const r=Math.max(o?t.length:0,n?e.length:0),s=Math.max(o?t[0].length:0,n?e[0].length:0),a=[];for(let l=0;l<r;l++){const r=[];for(let a=0;a<s;a++){const s=o?t[l]?.[a]:t,c=n?e[l]?.[a]:e,h=null==s&&null==c?null:Ym(s,c,i);r.push(h)}a.push(r)}return a}var Xm;!function(t){t[t.Number=0]="Number",t[t.Boolean=1]="Boolean",t[t.String=2]="String",t[t.StringQuote=3]="StringQuote",t[t.Function=4]="Function",t[t.ArgumentSeparator=5]="ArgumentSeparator",t[t.OpenBracket=6]="OpenBracket",t[t.CloseBracket=7]="CloseBracket",t[t.Operator=8]="Operator",t[t.Cell=9]="Cell",t[t.Variable=10]="Variable",t[t.Range=11]="Range",t[t.Sheet=12]="Sheet",t[t.SheetQuote=13]="SheetQuote",t[t.SheetSeparator=14]="SheetSeparator",t[t.Unknown=15]="Unknown",t[t.Operand=16]="Operand"}(Xm||(Xm={}));const Qm=t=>t===Xm.Number||t===Xm.Boolean||t===Xm.String||t===Xm.Cell||t===Xm.Variable||t===Xm.Range,Km=t=>t>=48&&t<=57,Jm=t=>"true"===(t=t.toLowerCase())||"false"===t,tv=t=>t>=65&&t<=90||t>=97&&t<=122||t>=192&&t<=687,ev={decimalPoint:".",stringQuote:'"',sheetQuote:"'",argumentSeparator:","};class iv{constructor(t){this.options=Object.assign(ev,t)}tokenize(t){const e=[],i=t.length;let o,n,r,s,a=0,l="",c=!1,h=!1,d=!1;for(;a<i;){if(o=t.charAt(a),n=o.charCodeAt(0),"="==o&&0==a)++a;else if(Km(n)){for(l=(d?"-":"")+o,++a;a<i;)if(o=t.charAt(a),n=o.charCodeAt(0),Km(n))l+=o,++a;else{if(o!==this.options.decimalPoint)break;l+=".",++a}d=!1,e.push([l,Xm.Number])}else if(tv(n)||"$"==o){l=o,r=null,++a;do{if(o=t.charAt(a),n=o.charCodeAt(0),tv(n)||Km(n)||"."===o||"$"===o||"_"===o)"_"==o?r=Xm.Variable:Km(n)&&!c&&null==r&&(r=Xm.Cell),l+=o,++a,a==i&&e.push([l,r||Xm.Variable]);else{if("("==o){e.push([l.toUpperCase(),Xm.Function]),e.push([o,Xm.OpenBracket]),++a;break}if("'"==o)e.push([l,Xm.Sheet]),l="",e.push([o,Xm.SheetQuote]),c=!0,++a;else if(":"==o)r=Xm.Range,l+=o,++a;else{if(!c||" "!=o){if("!"==o){""!==l&&e.push([l,Xm.Sheet]),e.push([o,Xm.SheetSeparator]),c=!1,l="",++a;break}e.push([l,r||(Jm(l)?Xm.Boolean:Xm.Variable)]);break}l+=o,++a}}}while(a<i)}else if(qm(o)){if("-"===o&&Km(t.charCodeAt(a+1))&&(null==s||"("==s[0]||Um(s[0])||s[1]==Xm.ArgumentSeparator))d=!0;else{for(l=o;Um(t.charAt(a+1));)l+=t.charAt(++a);e.push([l,Xm.Operator])}++a}else if("("===o)e.push([o,Xm.OpenBracket]),++a;else if(")"===o)e.push([o,Xm.CloseBracket]),++a;else if("'"===o)e.push([o,Xm.SheetQuote]),c=!0,++a;else if(o===this.options.argumentSeparator)e.push([o,Xm.ArgumentSeparator]),++a;else if(o===this.options.stringQuote){for(h=!1,e.push([o,Xm.StringQuote]),l="";++a<i;){if(o=t.charAt(a),o===this.options.stringQuote){h=!0,++a;break}l+=o}e.push([l,Xm.String]),h&&e.push([this.options.stringQuote,Xm.StringQuote])}else e.push([o,Xm.Unknown]),++a;s=e[e.length-1]}return e}}function ov(t,e,i=null,o=!0){return t+=e,0==e?t:t>=0?i?o?t%i:Math.min(t,i-1):t:o&&i?i+t%i:Math.max(t,0)}const nv=/(?:'?([\w\s]*)'?!)?(\$?)([a-z]*)(\$?)(\d*)(?::(\$?)([a-z]*)(\$?)(\d*))?/i;class rv{constructor(t,e,i,o,n){this.setCoords(t,e,i,o),this.sheet=n}setCoords(t,e,i,o){this.c1=null==t&&null==i?0:t,this.r1=null==e&&null==o?0:e,this.c2=null==o&&null!=t||null!=i?null==i?t:i:1/0,this.r2=null==i&&null!=e||null!=o?null==o?e:o:1/0,this.normalize()}get size(){return{columns:this.c2-this.c1+1,rows:this.r2-this.r1+1}}get count(){const{columns:t,rows:e}=this.size;return t*e}normalize(){const[t,e]=[Math.min(this.c1,this.c2),Math.max(this.c1,this.c2)],[i,o]=[Math.min(this.r1,this.r2),Math.max(this.r1,this.r2)];return this.c1=t,this.c2=e,this.r1=i,this.r2=o,this}move(t,e,i=null,o=null,n=!0){const r=ov(this.c1,t,i,n);n&&(e+=this.c1+t!=r&&0!=t?t>0?1:-1:0),this.c1=r,this.r1=ov(this.r1,e,o,n),this.c2=ov(this.c2,t,i,n),this.r2=ov(this.r2,e,o,n)}contains(t){return t.c1>=this.c1&&t.c2<=this.c2&&t.r1>=this.r1&&t.r2<=this.r2}containsColumn(t){return this.c1<=t&&this.c2>=t}containsRow(t){return this.r1<=t&&this.r2>=t}removeAnchors(){return this.c1Anchor=!1,this.c2Anchor=!1,this.r1Anchor=!1,this.r2Anchor=!1,this}addAnchors(){return this.c1Anchor=!0,this.c2Anchor=!0,this.r1Anchor=!0,this.r2Anchor=!0,this}shiftLeft(t,e=1,i=null,o=!1){return t<=this.c1&&(o||!this.c1Anchor)&&(null==i||this.c1<=i)&&(this.c1-=e),t<=this.c2&&(o||!this.c2Anchor)&&(null==i||this.c2<=i)&&(this.c2-=e),this}shiftRight(t,e=1,i=null,o=!1){return t<=this.c1&&(o||!this.c1Anchor)&&(null==i||this.c1<=i)&&(this.c1+=e),t<=this.c2&&(o||!this.c2Anchor)&&(null==i||this.c2<=i)&&(this.c2+=e),this}shiftUp(t,e=1,i=null,o=!1){return t<=this.r1&&(o||!this.r1Anchor)&&(null==i||this.r1<=i)&&(this.r1-=e),t<=this.r2&&(o||!this.r2Anchor)&&(null==i||this.r2<=i)&&(this.r2-=e),this}shiftDown(t,e=1,i=null,o=!1){return t<=this.r1&&(o||!this.r1Anchor)&&(null==i||this.r1<=i)&&(this.r1+=e),t<=this.r2&&(o||!this.r2Anchor)&&(null==i||this.r2<=i)&&(this.r2+=e),this}shift(t){const{index:e,offset:i,direction:o,maxIndex:n,ignoreAnchors:r}=t;switch(o){case"down":return this.shiftDown(e,i,n,r);case"up":return this.shiftUp(e,i,n,r);case"left":return this.shiftLeft(e,i,n,r);case"right":return this.shiftRight(e,i,n,r)}}intersect(t){this.normalize(),t.normalize();const e=Math.max(t.c1,this.c1),i=Math.min(t.c2,this.c2),o=Math.max(t.r1,this.r1),n=Math.min(t.r2,this.r2);return e<=i&&o<=n?new rv(e,o,i,n,this.sheet):null}unite(t){return this.normalize(),t.normalize(),new rv(Math.min(this.c1,t.c1),Math.min(this.r1,t.r1),Math.max(this.c2,t.c2),Math.max(this.r2,t.r2),this.sheet)}clone(){const t=new rv(this.c1,this.r1,this.c2,this.r2,this.sheet);return t.c1Anchor=this.c1Anchor,t.r1Anchor=this.r1Anchor,t.c2Anchor=this.c2Anchor,t.r2Anchor=this.r2Anchor,t}equals(t,e=!1){return t.c1==this.c1&&t.r1==this.r1&&t.c2==this.c2&&t.r2==this.r2&&(0==e||t.c1Anchor==this.c1Anchor&&t.r1Anchor==this.r1Anchor&&t.c2Anchor==this.c2Anchor&&t.r2Anchor==this.r2Anchor)}get isCell(){return this.c2==this.c2&&this.r2==this.r1}get isRange(){return this.c2!=this.c1||this.r2!=this.r1}get isColumn(){return 0==this.r1&&this.r2==1/0}get isRow(){return 0==this.c1&&this.c2==1/0}get A1(){const t=this.isRange,e=(this.c1Anchor?"$":"")+(0!==this.c1||this.c2!==1/0?lv(this.c1):"")+(0===this.r1&&this.r2===1/0?"":(this.r1Anchor?"$":"")+sv(this.r1)),i=t?(this.c2Anchor?"$":"")+(!isNaN(this.c2)&&this.c2<1/0?lv(this.c2):"")+(this.r2Anchor?"$":"")+(!isNaN(this.r2)&&this.r2<1/0?sv(this.r2):""):e;return(null==this.sheet?"":((o=this.sheet).indexOf(" ")>-1?"'"+o+"'":o)+"!")+(e==i?e:e+":"+i);var o}get bounds(){return[[new rv(this.c1,this.r1),this.c2<1/0?new rv(this.c2,this.r1):null],[this.r2<1/0?new rv(this.c1,this.r2):null,this.r2<1/0&&this.c2<1/0?new rv(this.c2,this.r2):null]]}*cells(){for(let t=this.r1;t<=this.r2;t++)for(let e=this.c1;e<=this.c2;e++)yield new rv(e,t)}static fromA1(t){const e=nv.exec(t),i=new rv(e[3]?cv(e[3]):null,e[5]?av(e[5]):null,e[7]?cv(e[7]):null,e[9]?av(e[9]):null,e[1]||null);return!e[2]&&e[3]||(i.c1Anchor=!0),!e[4]&&e[5]||(i.r1Anchor=!0),(e[6]||e[2]&&!e[7])&&(i.c2Anchor=!0),(e[8]||e[4]&&!e[9])&&(i.r2Anchor=!0),i}}function sv(t){return(t+1).toString()}function av(t){return parseInt(t)-1}function lv(t){++t;let e,i="";for(;t>0;)e=(t-1)%26,i=String.fromCharCode(e+65)+i,t=(t-e-1)/26;return i}function cv(t){const e=t.length;let i=0;for(let o=0;o<e;o++)i+=(t.charCodeAt(o)-64)*Math.pow(26,e-o-1);return i-1}function hv(t){return t.sort(((t,e)=>{const i=Math.min(t.r1,t.r2),o=Math.min(e.r1,e.r2),n=Math.min(t.c1,t.c2),r=Math.min(e.c1,e.c2);return i<o?-1:i>o?1:n<r?-1:r>n?1:0}))}function dv(t){return t.formula.cells.map((e=>t.cell.model.getCellByRange(e[1])))}function uv(t){let e=t;for(;Array.isArray(e);)e=e.length>0?e[0]:null;return e}function pv(t){return Array.isArray(t)?t:[[t]]}function gv(t,e,i,o){if(!Array.isArray(t))return e(t,i,o);for(let o=0;o<t.length;o++)if(!1===gv(t[o],e,null==i?o:i,null==i?void 0:o))return!1}rv.fromA1s=(t,e=";")=>t.split(e).map((t=>rv.fromA1(t))),rv.toA1s=(t,e=";")=>t.map((t=>t.A1)).join(e),rv.fromCoords=t=>new rv(t.c1,t.r1,t.c2,t.r2),rv.fullColumn=t=>new rv(t,0,t,1/0),rv.fullRow=t=>new rv(0,t,1/0,t);const fv=new Set(["SUMPRODUCT","FILTER"]),mv=t=>fv.has(t),vv=t=>!!(t&&t.length>0&&"="==t.charAt(0)),bv=t=>vv(t)?t:"="+(t??""),yv=t=>vv(t)?t.substring(1):t,wv=["#5B97FF","#FF616B","#B77CFF","#00B02C","#FC58BE","#FF9000","#2EB0B3"],xv=t=>wv[t%wv.length],kv=new Map([["FORMULATEXT","_xlfn."],["CONCAT","_xlfn."],["INDIRECT","_xlfn."],["ISOWEEKNUM","_xlfn."],["SWITCH","_xlfn."],["XOR","_xlfn."]]);class Cv{get fn(){return this._fn??(this._fn=new Function("t","ctx","return "+this.compile()))}get tokens(){return this._tokens}get variables(){return this._variables}get cells(){return this._cells}get ranges(){return this._ranges}get colors(){if(!this._colors){let t;this._colors=new Map,this._tokens.forEach(((e,i)=>{if([Xm.Cell,Xm.Range].includes(e[1])){const o=(t?"'"+t+"'!":"")+e[0];this._colors.set(o,{color:xv(this._colors.size),address:e[0],sheet:t,type:e[1],tokenIndex:i}),t=null}else e[1]==Xm.Sheet&&(t=e[0])}))}return this._colors}constructor(t,e){this.expression=t,this.tokenizer=e,this._tokens=e.tokenize(this.expression),this.updateDependecies()}findTokenIndexAtPosition(t){let e=0;return this._tokens.findIndex((i=>{const o=i[0].length;if(t>=e&&t<=e+o)return!0;e+=o}))}findSheetTokenIndex(t){const e=this._tokens[t];if(![Xm.Cell,Xm.Range].includes(e[1]))return-1;if(0==t||this._tokens[t-1][1]!=Xm.SheetSeparator)return-1;let i=t-2;for(;i>=0;){if(this._tokens[i][1]==Xm.Sheet)return i;i--}return-1}removeSheetToken(t){if(this._tokens[t][1]!=Xm.Sheet&&(t=this.findSheetTokenIndex(t)),t>-1){t>0&&this._tokens[t-1][1]==Xm.SheetQuote&&t--;let e=t;for(;e<this._tokens.length&&[Xm.SheetSeparator,Xm.SheetQuote,Xm.Sheet].includes(this._tokens[e][1]);)e++;return this._tokens.splice(t,e-t),e-t}return 0}getNamedColor(t){return this.colors.get(t)?.color??"inherit"}getTokenPosition(t){let e=0;for(let i=0;i<t;i++)e+=this._tokens[i][0].length;return{min:e,max:e+this._tokens[t][0].length}}updateToken(t,e){this._fn=null,this._formula=null,this._xlFormula=null,this._tokens[t][0]=e}removeToken(t){this._fn=null,this._formula=null,this._xlFormula=null,this._tokens.splice(t,1)}insertToken(t,e,i){this._fn=null,this._formula=null,this._xlFormula=null;const o=[];return i==Xm.Sheet&&/\s/.test(e)?(o.push([this.tokenizer.options.sheetQuote,Xm.SheetQuote]),o.push([e,Xm.Sheet]),o.push([this.tokenizer.options.sheetQuote,Xm.SheetQuote])):o.push([e,i]),o.push(["!",Xm.SheetSeparator]),this._tokens.splice(t,0,...o),o.length}clone(){return new Cv(this.createFormulaString(),this.tokenizer)}updateDependecies(){let t;this._variables=[],this._cells=[],this._ranges=[],this._tokens.forEach(((e,i)=>{switch(e[1]){case Xm.Sheet:t=e[0];break;case Xm.Variable:this._variables.push([i,e[0],t]),t=void 0;break;case Xm.Cell:this._cells.push([i,rv.fromA1(e[0]),t]),t=void 0;break;case Xm.Range:this._ranges.push([i,rv.fromA1(e[0]),t]),t=void 0}}))}createFormulaString(t=!1,e=!1){const i=this.tokenizer.options;let o,n,r,s="";for(let l=0;l<this._tokens.length;l++)switch(o=this._tokens[l],o[1]){case Xm.SheetQuote:s+="'";break;case Xm.SheetSeparator:s+="!";break;case Xm.Sheet:n=o[0],s+=t?`<span style="font-style:italic">${n}</span>`:n;break;case Xm.Variable:s+=o[0];break;case Xm.Range:case Xm.Cell:r=(n?"'"+n+"'!":"")+o[0],s+=t?`<span style="color:${this.getNamedColor(r)}">${o[0]}</span>`:o[0],n=null;break;case Xm.StringQuote:s+=i.stringQuote;break;case Xm.String:s+=o[0].replace(new RegExp(i.stringQuote,"g"),"\\"+i.stringQuote);break;case Xm.ArgumentSeparator:s+=i.argumentSeparator;break;case Xm.Function:s+=(e?(a=o[0],kv.get(a)??""):"")+o[0];break;case Xm.Unknown:s+=t?`<span style="background:#f00;color:#fff">${o[0]}</span>`:o[0];break;default:s+=o[0]}var a;return s}createExpressionTree(){const t=[],e=[],i=this.tokens;let o,n,r,s,a,l=null;for(let c=0;c<i.length;c++)switch(o=i[c],o[1]){case Xm.Sheet:l=o[0];break;case Xm.Cell:case Xm.Range:t.push({t:o[0],tt:o[1],s:l}),l=null;break;case Xm.Number:case Xm.String:case Xm.Boolean:case Xm.Variable:t.push({t:o[0],tt:o[1]});break;case Xm.Operator:for(0==t.length&&t.push({t:"",tt:Xm.Operand}),r=Wm.get(o[0]);e.length>0&&(s=Wm.get(e[e.length-1][0]),s)&&(0===r[2]&&r[1]<=s[1]||1===r[2]&&r[1]<s[1]);)n=e.pop(),a=[t.pop(),t.pop()].reverse(),t.push({t:n[0],tt:n[1],c:a});e.push(o);break;case Xm.Function:case Xm.OpenBracket:e.push(o);break;case Xm.ArgumentSeparator:for(;e.length>0&&(n=e[e.length-1],![Xm.OpenBracket,Xm.ArgumentSeparator].includes(n[1]));)n=e.pop(),a=[t.pop(),t.pop()].reverse(),t.push({t:n[0],tt:n[1],c:a});e.push(o);break;case Xm.CloseBracket:for(a=[];e.length>0&&e[e.length-1][1]!==Xm.OpenBracket;)n=e.pop(),n[1]==Xm.Operator?a.push({t:n[0],tt:n[1],c:[t.pop(),t.pop()].reverse()}):n[1]==Xm.ArgumentSeparator&&t.length>0&&a.push(t.pop());e.pop(),e.length>0&&e[e.length-1][1]===Xm.Function?(n=e.pop(),a=a.reverse(),t.length>0&&i[c-1][1]!==Xm.OpenBracket&&a.unshift(t.pop()),t.push({t:n[0],tt:n[1],c:a})):t.push(...a)}for(;e.length>0;)n=e.pop(),t.push({t:n[0],tt:n[1],c:[t.pop(),t.pop()].reverse()});return t.pop()}createExpressionJSCode(t,e,i){let o;switch(t.tt){case Xm.Range:return"t.rn('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")";case Xm.Cell:return"t.cl('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")";case Xm.Operand:return"t.cl()";case Xm.Variable:return i||e?.tt===Xm.Function?"t.nr('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")":"t.nv('"+t.t+"'"+(t.s?",'"+t.s+"'":"")+")";case Xm.String:return"'"+t.t.replace(/'/g,"\\'")+"'";case Xm.Boolean:return"T"==t.t[0].toUpperCase()?"1":"0";case Xm.Function:return o=t.c.map((e=>this.createExpressionJSCode(e,t,i||mv(t.t)))),"t.fn('"+t.t+"').call(ctx"+(o.length>0?","+o.join(","):"")+")";case Xm.Operator:return i?(o=t.c.map((e=>this.createExpressionJSCode(e,t,i||mv(t.t)))),"t.op("+o[0]+","+o[1]+",'"+t.t+"')"):Wm.has(t.t)?"("+t.c.map((e=>this.createExpressionJSCode(e,t,i))).join(Wm.get(t.t)[0])+")":null;default:return t.t}}compile(){const t=this.createExpressionTree();return this.createExpressionJSCode(t)}toString(t=!1){return(t?"=":"")+(this._formula??(this._formula=this.createFormulaString()))}toExcelString(){return this._xlFormula??(this._xlFormula=this.createFormulaString(!1,!0))}shift(t){const{index:e,offset:i,direction:o,maxIndex:n,sheet:r,allSheets:s}=t;return this._cells&&this._cells.forEach((t=>{if(s||null==t[2]||t[2]==r){switch(o){case"up":t[1].shiftUp(e,i,n);break;case"right":t[1].shiftRight(e,i,n);break;case"down":t[1].shiftDown(e,i,n);break;case"left":t[1].shiftLeft(e,i,n)}this._tokens[t[0]][0]=t[1].A1}})),this._ranges&&this._ranges.forEach((t=>{if(s||null==t[2]||t[2]==r){switch(o){case"up":t[1].shiftUp(e,i,n);break;case"right":t[1].shiftRight(e,i,n);break;case"down":t[1].shiftDown(e,i,n);break;case"left":t[1].shiftLeft(e,i,n)}this._tokens[t[0]][0]=t[1].A1}})),this}hasSheetReference(t){for(const e of this._cells)if(e[2]==t)return!0;for(const e of this._ranges)if(e[2]==t)return!0;for(const e of this._variables)if(e[2]==t)return!0;return!1}renameSheet(t,e){let i=!1;return this._tokens.forEach((o=>{o[1]==Xm.Sheet&&o[0]==t&&(o[0]=e,i=!0)})),i}}function Mv(t,e){return e&&(t=qo(this.cell.model.options.locale,Ko(e,"d"),!1)(t)),null==t?"":t.toString()}function _v(t,e){return(t=null==t?"":t.toString()).substring(0,e)}function Sv(t,e){return(t=null==t?"":t.toString()).substring(Math.max(0,t.length-e),t.length)}function Ev(t,e,i){return(t=null==t?"":t.toString()).substring(e,e+i)}function zv(...t){let e="";return gv(t,(t=>e+=null==t?"":t.toString())),e}function Lv(t){return t instanceof Date?t:Z(t)?Lo(t,uo()):Po(t)}function Rv(t){return K(t)?t:No(t instanceof Date?t:Lo(t,uo()))}function Iv(t){return Z(t)?Rv(t):t}function Hv(t,e){const i=Lv(t).getDay();switch(e){case 2:return i;case 3:return i-1;default:return i%7+1}}function Tv(t,e,i){return jo(Rv(uv(t)),e)}function Av(){return No(new Date)}function Ov(t){return null==(t=uv(t))||""===t}function $v(t,e,i){return No(new Date(t,e-1,i))}function Dv(t){return Lv(t).getFullYear()}function Nv(t){return Lv(t).getMonth()+1}function Pv(t){return Lv(t).getDate()}function jv(t,e){const i=Lv(t);return i.setMonth(i.getMonth()+e+1),i.setDate(0),No(i)}function Vv(t){return gi(Lv(t))}function Bv(t){return Math.acos(t)}function Fv(t){return Math.acosh(t)}function Wv(t){return Math.PI/2-Math.atan(t)}function Uv(t){return.5*Math.log((t+1)/(t-1))}function Gv(t){return Math.asin(t)}function qv(t){return Math.asinh(t)}function Yv(t){return Math.atan(t)}function Zv(t){return Math.atanh(t)}function Xv(t){return Math.cos(t)}function Qv(t){return Math.cosh(t)}function Kv(t){return 1/Math.tan(t)}function Jv(t){return 1/Math.tanh(t)}function tb(t){return 1/Math.sin(t)}function eb(t){return 1/Math.sinh(t)}function ib(t){return 180*t/Math.PI}function ob(){return Math.PI}function nb(t){return 1/Math.cos(t)}function rb(t){return 1/Math.cosh(t)}function sb(t){return Math.sin(t)}function ab(t){return Math.sinh(t)}function lb(t){return Math.tan(t)}function cb(t){return Math.tanh(t)}function hb(t){return Math.abs(t)}function db(t){if(t<0)throw new Error("#NUM");return Math.ceil(t)}function ub(t){return(t=Math.ceil(t))%2==0?t:t+1}function pb(t){return Math.pow(Math.E,t)}function gb(t){return t<0?-1:0==t?1:t*gb(t-1)}function fb(t){return t<=0?1:t*fb(t-2)}function mb(t){return Math.floor(t)}function vb(t){return t%1!=0}function bb(t){return!vb(t)&&t%2==0}function yb(t){return vb(t)||t%2==1}function wb(t){return Math.log(t)}function xb(t,e){return Math.log(t)/Math.log(e)}function kb(t){return Math.log10(t)}function Cb(t,e){return t%e}function Mb(t){return(t=Math.ceil(t))%2==0?t+1:t}function _b(t,e){return Math.pow(t,e)}function Sb(...t){let e=1;return gv(t,(t=>e*=t||1)),e}function Eb(t,e){return Math.floor(t/e)}function zb(t){return t*Math.PI/180}function Lb(){return Math.random()}function Rb(t,e){const i=Array(t).fill(null).map((()=>Array(e)));for(let o=0;o<t;o++)for(let t=0;t<e;t++)i[o][t]=Math.random();return i}function Ib(t,e){return t=Math.ceil(t),e=Math.floor(e),Math.floor(Math.random()*(e-t+1))+t}function Hb(t,e){return t.toFixed(e)}function Tb(t,e){return e=e||0,Math.floor(t*Math.pow(10,e))/Math.pow(10,e)}function Ab(t,e){return e=e||0,Math.ceil(t*Math.pow(10,e))/Math.pow(10,e)}function Ob(t,e,i=1,o=1){const n=Array(t).fill(null).map((()=>Array(e)));let r=i;for(let i=0;i<t;i++)for(let t=0;t<e;t++)n[i][t]=r,r+=o;return n}function $b(t){return t<0?-1:t>0?1:0}function Db(t){return Math.sqrt(t)}function Nb(t){return Math.sqrt(Math.PI*t)}function Pb(...t){let e=0;return gv(t,(t=>e+=null==t?0:1)),e}function jb(...t){let e=0;return gv(t,(t=>e+=null==t?1:0)),e}function Vb(t,e){let i=0;return gv(t,(t=>i+=Fm(e,t)?1:0)),i}function Bb(...t){let e=0;const i=new Map;return gv(t,(t=>{i.has(t)||(i.set(t,t),++e)})),e}function Fb(...t){let e=0;return gv(t,(t=>e+=isNaN(t)?0:t)),e}function Wb(t,e,i){let o=0;if(i){const n=pv(i);gv(t,((t,i,r)=>o+=Fm(e,t)&&n[i]&&n[i][r]&&!isNaN(n[i][r])?n[i][r]:0))}else gv(t,(t=>o+=Fm(e,t)&&!isNaN(t)?t:0));return o}function Ub(t,e){let i=0;return gv(t,(t=>i+=Fm(e,t)&&!isNaN(t)?t*t:0)),i}function Gb(...t){let e=0;const i=t.shift();if(0===t.length)gv(i,(t=>e+=isNaN(t)?0:t));else{const o=pv(t[0]);gv(i,((t,i,n)=>e+=o[i]&&o[i][n]&&!isNaN(t)&&!isNaN(o[i][n])?t*o[i][n]:0))}return e}function qb(t,e){return t=null==t?"":t.toString(),e?e=>e==t:(t=t.toLowerCase(),e=>(e??"").toString().toLowerCase().includes(t))}function Yb(t,e,i=1){const o=new rv(Math.max((e||0)-1,0),Math.max((t||0)-1,0));return 1!=i&&2!=i||(o.r1Anchor=!0),1!=i&&3!=i||(o.c1Anchor=!0),o.A1}function Zb(t,e,i,o=!1){let n,r;const s=qb(t,o);for(n=0;n<e.length;n++)for(r=0;r<e[n].length;r++)if(s(e[n][r]))return e[n][i-1];return null}function Xb(t,e,i,o=!1){let n,r;const s=qb(t,o);for(n=0;n<e.length;n++)for(r=0;r<e[n].length;r++)if(s(e[n][r]))return e[i-1][r];return null}function Qb(t,e,i){let o,n;t:for(o=0;o<e.length;o++)for(n=0;n<e[o].length;n++)if(e[o][n]==t)break t;return i?i[o]?i[o][n]:null:e[o][e[o].length-1]}function Kb(t,...e){let i=null,o=0;return gv(e,(e=>{if(t==++o)return i=e,!1})),i}function Jb(t){return(t?rv.fromA1(t).c1:this.cell.c)+1}function ty(t){return(t?rv.fromA1(t).r1:this.cell.r)+1}function ey(t){return Array.isArray(t)?t[0]?.length:1}function iy(t){return Array.isArray(t)?t.length:1}function oy(){const t=dv(this)[0];return t&&t.hasFormula?" "+bv(t.formula):""}function ny(t,e,i){return e=e||1,i=i||1,Array.isArray(t)?t[e-1]?t[e-1][i-1]:null:1==e&&1==i?t:null}function ry(t){const e=this.cell,i=e.model,o=i.getCellByA1(t);let n;return i.calculations.dependencies.cellDependencies.has(e.address)?n=i.calculations.dependencies.cellDependencies.get(e.address):(n=new Map,i.calculations.dependencies.cellDependencies.set(e.address,n)),n.set(o.address,[o.range]),i.calculations.dependencies.cellDependants.has(o.address)?n=i.calculations.dependencies.cellDependants.get(o.address):(n=new Map,i.calculations.dependencies.cellDependants.set(o.address,n)),n.set(e.address,[e.range]),o.value}function sy(t,e,i=0){let o,n;for(o=0;o<e.length;o++)for(n=0;n<e[o].length;n++){if(0==i&&e[o][n]==t)return Math.max(o+1,n+1);if(1==i&&e[o][n]>t)return Math.max(o+1,n+1);if(-1==i&&e[o][n]<t)return Math.max(o+1,n+1)}return null}function ay(t,e,i,o,n){const r=dv(this)[0],s=[];o=o||1,n=n||1;for(let t=0;t<o;t++){const o=[];for(let s=0;s<n;s++){const n=r.model.rows[r.r+t+e].cell(r.c+s+i);o.push(n?r.value:null)}s.push(o)}return s}function ly(t,e){const i=[];if(t.length==e.length)for(let o=0;o<t.length;o++){let n=!0;for(let t=0;t<e[o].length;t++)if(!e[o][t]){n=!1;break}n&&i.push(t[o])}return i}const cy=[[3.1611237438705655,113.86415415105016,377.485237685302,3209.3775891384694,.18577770618460315],[.5641884969886701,8.883149794388377,66.11919063714163,298.6351381974001,881.952221241769,1712.0476126340707,2051.0783778260716,1230.3393547979972,2.1531153547440383e-8],[.30532663496123236,.36034489994980445,.12578172611122926,.016083785148742275,.0006587491615298378,.016315387137302097]],hy=[[23.601290952344122,244.02463793444417,1282.6165260773723,2844.236833439171],[15.744926110709835,117.6939508913125,537.1811018620099,1621.3895745666903,3290.7992357334597,4362.619090143247,3439.3676741437216,1230.3393548037495],[2.568520192289822,1.8729528499234604,.5279051029514285,.06051834131244132,.0023352049762686918]];function dy(t){const e=t*t;let i,o=cy[0][4]*e,n=e;for(i=0;i<3;i+=1)o=(o+cy[0][i])*e,n=(n+hy[0][i])*e;return t*(o+cy[0][3])/(n+hy[0][3])}function uy(...t){let e=!0;return gv(t,(t=>{if(!t)return e=!1})),e}function py(...t){let e=!1;return gv(t,(t=>{if(t)return e=!0})),e}function gy(...t){let e=null;return gv(t,(t=>{e=null===e?!!t:!!t!=e})),e}function fy(...t){const e=t[0];for(let i=1;i<t.length;i+=2){if(i==t.length-1)return t[i];if(e==t[i])return t[i+1]}return null}function my(t,e,i){return t?e:i}function vy(t){return!t}function by(){return!1}function yy(){return!0}function wy(t,e){return e=""===e?null:e,t===1/0||t===-1/0||Number.isNaN(t)?e:t}var xy=i(235),ky=i.n(xy),Cy=i(5949),My=i.n(Cy);function _y(...t){let e=0,i=0;return gv(t,(t=>{null==t||isNaN(t)||(e+=t||0,++i)})),e/i}function Sy(t,e){const i=My()(),o=pv(t),n=pv(e);for(let t=0;t<o.length;t++)for(let e=0;e<o[t].length;e++)i(o[t][e],(n[t]?n[t][e]:1)??1);return i()}function Ey(...t){const e=function(t){const e=[];return gv(t,(t=>e.push(t))),e}(t),i=ky()(e.length,e,1);return e.reduce(((t,e)=>t+Math.abs(e-i)),0)/e.length}function zy(...t){let e=1/0;return gv(t,(t=>e=Math.min(e,t))),e}function Ly(...t){let e=-1/0;return gv(t,(t=>e=Math.max(e,t))),e}function Ry(t,e){Object.keys(e).forEach((i=>t.set(nt(i,"_").replace(/_/g,".").toUpperCase(),e[i])))}const Iy=new Map;Ry(Iy,C),Ry(Iy,M),Ry(Iy,_),Ry(Iy,S),Ry(Iy,z),Ry(Iy,E),Ry(Iy,L);class Hy{constructor(t){this.model=t,this.getModel=t=>{const e=t?this.model.getConnectedModel(t):this.model;if(e)return e;throw new Error(`Sheet "${t}" not found`)},this.cl=(t,e)=>{const i=this.getModel(e);return(null==t?this.currentCell:i.getCellByA1(t)).value},this.rn=(t,e)=>this.getModel(e).getValuesInRange(rv.fromA1(t)),this.nv=(t,e)=>this.getModel(e).getCellByName(t,this.currentCell.range).value,this.nr=(t,e)=>{const i=this.getModel(e).getValueMatrixByName(t);return 1===i.length&&1===i[0].length?i[0][0]:i},this.fn=t=>{const e=Iy.get(t);if(e)return e;throw new Error(`Function "${t}" not found`)},this.op=(t,e,i)=>Zm(t,e,i)}}function Ty(t,e){const i=Array(e).fill(null);let o=0,n=[];if(t.length>1){n=t.map((t=>parseFloat(t.value)||0)),o=n[1]-n[0];for(let t=2;t<n.length;t++)if(n[t]-n[t-1]!==o){o=0;break}}if(0==o)for(let o=0;o<e;o++)i[o]=t[o%t.length]?.value;else{let t=n[n.length-1];for(let n=0;n<e;n++)t=i[n]=t+o}return i}function Ay(t,e,i){const o=new Cv(t.formula,t.model.calculations.tokenizer),n=[];for(let t=0;t<i;t++)n.push(bv(o.shift({index:0,offset:1,direction:e,allSheets:!0}).createFormulaString()));return n}function Oy(t,e,i,o){const n=t.getCellMatrix(e);let r;"right"==o?r=zn(n):"down"==o?r=En(n):"left"==o?r=_n(n):"up"==o&&(r=_n(En(n)));const s=new Array(i.size.rows);for(let t=0;t<i.size.rows;t++){s[t]=new Array(i.size.columns);for(let e=0;e<i.size.columns;e++){const i=n.length>t?n[t][n[t].length>e?e:0]:n[0][e];s[t][e]=i.hasDisplayValue?i.displayValue:null}}const a=i.size["down"==o||"up"==o?"rows":"columns"];let l=r.map((t=>t[t.length-1].hasFormula?Ay(t[t.length-1],o,a):Ty(t,a)));return"down"==o?l=En(l):"left"==o?l=_n(l):"up"==o&&(l=Sn(En(l))),t.spillValues({cell:t.getCellByRange(i.bounds[0][0]),values:l,propertyCell:t.getCellByRange(e.bounds[0][0]),displayValues:s})}class $y{get address(){return null}get renderer(){return this._renderer}set renderer(t){this._renderer=t}get afterRenderer(){return this._afterRenderer}set afterRenderer(t){this._afterRenderer=t}get commentRenderer(){return this._commentRenderer}set commentRenderer(t){this._commentRenderer=t}get type(){return this._type}set type(t){this._type=t}get name(){return this._name}set name(t){this._name=t}get style(){return this._style}set style(t){this._style=t}get commentable(){return this._commentable}set commentable(t){this._commentable=t}get clickable(){return this._clickable}set clickable(t){this._clickable=t}get editable(){return this._editable}set editable(t){this._editable=t}get allowInvalid(){return this._allowInvalid}set allowInvalid(t){this._allowInvalid=t}get hasFormula(){return!!this._formula}get formula(){return this._formula}set formula(t){this._formula=t?t.replace(/^=/,""):null}get value2(){return this.hasFormula?bv(this.formula):null}get editorContent(){return this._editorContent}set editorContent(t){this._editorContent=t}get adapter(){return this._adapter}set adapter(t){this._adapter=t}get properties(){return this._properties}set properties(t){this._properties=t}getProperty(t){return this._properties?.[t]}setProperty(t,e){this._properties||(this._properties={}),this._properties[t]=e}get format(){return this._format}set format(t){this._format=t,this._valueFormatter=null}get valueFormatter(){return this._valueFormatter}constructor(t,e){this.model=t,this._type=null,this._clickable=!1,e&&this.populate(e)}populate(t){this._renderer=t.renderer,this._afterRenderer=t.afterRenderer,this._commentRenderer=t.commentRenderer,this._name=t.name,this._type=t.t,this._editorContent=t.content,this._adapter=t.adapter,this._format=t.z,this._formula=t.f,this._editable=t.e,this._commentable=t.commentable,this._clickable=t.clickable,this._allowInvalid=t.allowInvalid,this._properties=t.props,this._style=null==t.s?null:this.model.styles.add(t.s).id}update(t){const e={};if(null!=t.renderer&&(e.renderer=this._renderer,this._renderer=t.renderer),null!=t.afterRenderer&&(this._afterRenderer=t.afterRenderer),null!=t.commentRenderer&&(this._commentRenderer=t.commentRenderer),null!=t.name&&(e.name=this._name,this._name=t.name),null!=t.t&&(e.t=this._type,this._type=t.t),null!=t.content&&(e.content=this._editorContent,this._editorContent=t.content),null!=t.adapter&&(e.adapter=this._adapter,this._adapter=t.adapter),null!=t.z&&(e.z=this._format,this._format=t.z),null!=t.f&&(e.f=this._formula,this._formula=t.f),null!=t.e&&(e.e=this._editable,this._editable=t.e),null!=t.commentable&&(e.commentable=this._commentable,this._commentable=t.commentable),null!=t.clickable&&(e.clickable=this._clickable,this._clickable=t.clickable),null!=t.allowInvalid&&(e.allowInvalid=this._allowInvalid,this._allowInvalid=t.allowInvalid),null!=t.props&&(e.props=this._properties,this._properties=t.props),null!=t.s){const i=this.model.styles.add(t.s).id;this._style!==i&&(e.s=this._style,this._style=i)}return e}getSourceData(){const t={};return null!=this._type&&(t.t=this._type),null!=this._format&&(t.z=this._format),null!=this._formula&&(t.f=this._formula),null!=this._editable&&(t.e=this._editable),null!=this._commentable&&(t.commentable=this._commentable),null!=this._clickable&&(t.clickable=this._clickable),this._properties&&(t.props=it(this._properties)),null!=this._editorContent&&(t.content=q(this._editorContent)?it(this._editorContent):this._editorContent),null!=this._style&&(t.s=this._style),null!=this._name&&(t.name=this._name),t}setStyleProperties(t,e=!1){this.style=e?this.model.styles.set(this.style,t).id:this.model.styles.duplicate(this.style,t).id}removeStyleProperties(t){null!==this.style&&this.model.styles.unset(this.style,t)}get composedStyle(){return this.model.styles.get(this.style)}}function Dy(t){const e={};return t.split(";").forEach((t=>{const[i,o]=t.split(":");e[i]=o.trim()})),e}const Ny=new Map([["thin",{width:1.5,style:"solid"}],["medium",{width:2,style:"solid"}],["thick",{width:3,style:"solid"}],["double",{width:3,style:"double"}],["dotted",{width:1.5,style:"dotted"}],["hair",{width:1,style:"solid"}],["dashed",{width:1.5,style:"dashed"}],["mediumDashed",{width:2,style:"dashed"}],["dashDot",{width:1.5,style:"dashed"}],["mediumDashDot",{width:2,style:"dashed"}],["dashDotDot",{width:1.5,style:"dotted"}],["mediumDashDotDot",{width:2,style:"dotted"}],["slantDashDot",{width:1.5,style:"dashed"}],["none",{width:1.5,style:"solid"}]]),Py=(()=>{const t=new Map;return Ny.forEach(((e,i)=>{let o=t.get(e.style);o||(o=t.set(e.style,new Map).get(e.style)),o.set(e.width,i)})),t})();function jy(t){return"middle"==t?"center":t}function Vy(t){return 3==(t="#"==t.charAt(0)?t.substring(1):t).length?t[0]+t[0]+t[1]+t[1]+t[2]+t[2]:t}const By=t=>{if("none"==t)return null;const e=t.split(" "),i=parseInt(e[0].charAt(0))||1,o=e.length>1?e[1]:"solid",n=Py.get(o);return{style:(n?n.get(i):null)??"thin",color:e.length>2?Vy(e[2]):"CCCCCC"}},Fy=t=>{const e=Ny.get(t.style||"none");return e?[It(e.width),e.style,"none"==t.style?"var(--og-cell-background)":`#${t.color}`].join(" "):"none"},Wy=(t,e)=>{const i="#"+(e.fgColor||"000000"),o="#"+(e.bgColor||"FFFFFF");switch(e.patternType){case"solid":t.backgroundColor=i||o;break;case"darkGray":t.backgroundColor=mn(o,.75);break;case"mediumGray":t.backgroundColor=mn(o,.5);break;case"lightGray":t.backgroundColor=mn(o,.25);break;case"gray125":t.backgroundColor=mn(o,.125);break;case"gray0625":t.backgroundColor=mn(o,.0625);break;case"darkHorizontal":t.backgroundImage=`linear-gradient(0deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"darkVertical":t.backgroundImage=`linear-gradient(90deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"darkDown":t.backgroundImage=`linear-gradient(45deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"darkUp":t.backgroundImage=`linear-gradient(-45deg, ${i} 33.33%, ${o} 33.33%, ${o} 50%, ${i} 50%, ${i} 83.33%, ${o} 83.33%, ${o} 100%)`,t.backgroundSize="6px 6px";break;case"lightHorizontal":t.backgroundImage=`linear-gradient(0deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"lightVertical":t.backgroundImage=`linear-gradient(90deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"lightDown":t.backgroundImage=`linear-gradient(45deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"lightUp":t.backgroundImage=`linear-gradient(-45deg, ${o} 25%, ${i} 25%, ${i} 50%, ${o} 50%, ${o} 75%, ${i} 75%, ${i} 100%)`,t.backgroundSize="4px 4px";break;case"darkGrid":t.backgroundImage=`linear-gradient(${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="2px 2px";break;case"lightGrid":t.backgroundImage=`linear-gradient(${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="1px 1px";break;case"darkTrellis":t.backgroundImage=`linear-gradient(45deg, ${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="2px 2px";break;case"lightTrellis":t.backgroundImage=`linear-gradient(45deg, ${o} 0.5px, transparent 0.5px), linear-gradient(90deg, ${o} 0.5px, transparent 0.5px)`,t.backgroundSize="1px 1px"}return t},Uy=(t,e)=>(t.backgroundImage=`linear-gradient(${(e.angle??0)+90}deg,${e.stops.map((t=>`#${t.rgb} ${100*t.v}%`)).join(",")})`,t),Gy=t=>{const e=t.cssStyle?{...t.cssStyle}:{};return null!=t.bold&&(e.fontWeight=t.bold?"bold":"normal"),t.italic&&(e.fontStyle="italic"),t.underline?e.textDecoration="underline":t.strike&&(e.textDecoration="line-through"),t.sz&&(e.fontSize=Rt(t.sz)),t.color&&(e.color="#"+t.color),t.top&&(e.borderTop=Fy(t.top)),t.right&&(e.borderRight=Fy(t.right)),t.bottom&&(e.borderBottom=Fy(t.bottom)),t.left&&(e.borderLeft=Fy(t.left)),(t.top||t.right||t.bottom||t.left)&&(e.zIndex="1"),t.alignment&&t.alignment.vertical?(e.display="flex",e.justifyContent=t.alignment.horizontal,e.alignItems="top"==t.alignment.vertical?"start":"bottom"==t.alignment.vertical?"end":"center"):t.alignment&&t.alignment.horizontal&&(e.textAlign=t.alignment.horizontal),t.alignment&&t.alignment.wrapText&&(e.display="flex",e.justifyContent=e.justifyContent??"left",e.alignItems=e.alignItems??"center",e.whiteSpace="normal"),t.patternType?Wy(e,t):t.stops&&t.stops.length?Uy(e,t):t.fgColor?e.backgroundColor="#"+t.fgColor:t.bgColor&&(e.backgroundColor="#"+t.bgColor),e},qy=t=>{const e=q(t)?t:Dy(t),i={};let o;for(const t in e){const n=e[t];if(null!=n)switch(t){case"borderTop":case"border-top":i.top=By(n);break;case"borderTopColor":case"border-top-color":i.top?i.top.color=Vy(n):i.top={style:"thin",color:Vy(n)};break;case"borderRight":case"border-right":i.right=By(n);break;case"borderRightColor":case"border-right-color":i.right?i.right.color=Vy(n):i.right={style:"thin",color:Vy(n)};break;case"borderBottom":case"border-bottom":i.bottom=By(n);break;case"borderBottomColor":case"border-bottom-color":i.bottom?i.bottom.color=Vy(n):i.bottom={style:"thin",color:Vy(n)};break;case"borderLeft":case"border-left":i.left=By(n);break;case"borderLeftColor":case"border-left-color":i.left?i.left.color=Vy(n):i.left={style:"thin",color:Vy(n)};break;case"border":o=By(n),i.top=i.top||o,i.right=i.right||o,i.bottom=i.bottom||o,i.left=i.left||o;break;case"textAlign":case"text-align":i.alignment=i.alignment||{},i.alignment.horizontal=n;break;case"verticalAlign":case"vertical-align":i.alignment=i.alignment||{},i.alignment.vertical=jy(n);break;case"whiteSpace":case"white-space":i.alignment=i.alignment||{},i.alignment.wrapText=n&&"nowrap"!=n;break;case"color":i.color=Vy(n);break;case"background":case"backgroundColor":i.fgColor=Vy(n);break;case"fontSize":case"font-size":i.sz=parseFloat(n);break;case"fontWeight":case"font-weight":i.bold="bold"==n;break;case"fontStyle":case"font-style":i.italic="italic"==n;break;default:i[t]=n}}return i},Yy={n:t=>{const e=Z(t)?parseFloat(t):t;return Number.isNaN(e)?t:e},t:t=>t,d:(t,e)=>Z(t)?X(t)?Q(t):No(Lo(t,e.model.options.formatLocale)):t instanceof Date?No(t):t,tm:t=>Z(t)?new Date(t):t,dt:t=>Z(t)?new Date(t):t,b:t=>!!t&&"0"!==t&&"false"!==t.toString().toLowerCase(),s:t=>t,m:t=>t,g:t=>{if(null==t)return null;const e=parseFloat(t);return isNaN(e)?t:e},a:t=>Z(t)?JSON.parse(t):t,h:t=>t},Zy=new Map;class Xy extends $y{get tooltip(){return this._tooltip}set tooltip(t){this._tooltip=t}get hasTooltip(){return null!=this._tooltip}get rowspan(){return this._rowspan}set rowspan(t){this._rowspan=t}get colspan(){return this._colspan}set colspan(t){this._colspan=t}get r(){return this.row.index}get c(){return this.column.index}get hasValue(){return null!=this._value}get value(){return this._evaluated||this.evaluate(),this._value}set value(t){if(t&&vv(t.toString()))this._value=void 0,this.formula=t;else{const e=Yy[this.type](t,this);e!==this._value&&(this._value=e,this._displayValue=void 0),this.row.data&&this.column.data&&(this.row.data[this.column.data]=this._value)}}evaluate(){return this._value=Yy[this.type](this.model.calculations.evaluate(this),this),this._evaluated=!0,this._value}get value2(){return this.hasFormula?bv(this.formula):this.value}get hasDisplayValue(){return null!=this._displayValue}get displayValue(){return this._displayValue}set displayValue(t){this._displayValue=t}get prefersDisplayValue(){return["s","m"].includes(this.type)}get error(){return this._error}set error(t){this._error=t}get hasError(){return!!this._error}clearError(){this._error=void 0}get spillRange(){return this._spillRange}get prevSpillRange(){return this._prevSpillRange}set spillRange(t){!this._spillRange||t&&this._spillRange.equals(t)||(this._prevSpillRange=this._spillRange),this._spillRange=t}get isSpillSource(){return null!=this._spillRange}get spillSource(){return this._spillSource}get isSpilled(){return null!=this._spillSource}spillValue(t,e){this.value=t,this._spillSource=e}clearSpilledValue(){this._spillSource=void 0,this._value=void 0}get hasSparkline(){return null===this._sparkline?this._sparkline=this.model.sparklines.has(this.address):this._sparkline}get hasComment(){return null===this._hasComment?this._hasComment=(this.model.comments.get(this.address)??[]).length>0:this._hasComment}get comments(){return this.model.comments.get(this.address)}get valueFormatter(){const t=super.valueFormatter??this.row.valueFormatter??this.column.valueFormatter;if(t)return t;const e=this.type,i=this.format,{locale:o,fixNumberFormat:n}=this.model.options,r=this.value;if(null==r||""===r)return null;if("n"==e)return null!=i?qo(o,i,n):this.model.options.numberFormatter;if("g"==e){if(null!=i)return qo(o,i,n);if(K(r))return this.model.options.numberFormatter}else{if("t"==e)return null==i?null:qo(o,i,!1);if("d"==e)return i?Ro(o,i):this.model.options.dateFormatter;if("s"==e&&this.editorContent)return(t=>{if(t=t||null,!Zy.has(t))if(t){const e=t.reduce(((t,e)=>t.set(e.k,e.v)),new Map);Zy.set(t,(t=>e.has(t)?e.get(t):t))}else Zy.set(t,(t=>t));return Zy.get(t)})(this.editorContent)}return null}get formattedValue(){return null==this.value?"":this.hasDisplayValue?this.displayValue:this.valueFormatter?this.valueFormatter(this.value):this.value.toString()}get elm1(){return this.row.priority>=this.column.priority?this.row:this.column}get elm2(){return this.row.priority<this.column.priority?this.row:this.column}get clickable(){return super.clickable??this.elm1.clickable??this.elm2.clickable}get type(){return super.type??this.elm1.type??this.elm2.type??"g"}set type(t){this._type=t}get editorContent(){return super.editorContent??this.elm1.editorContent??this.elm2.editorContent??null}get adapter(){return super.adapter??this.elm1.adapter??this.elm2.adapter}set adapter(t){this._adapter=t}get address(){return this.column.address+this.row.address}get range(){return rv.fromA1(this.address)}get allowInvalid(){return super.allowInvalid??this.elm1.allowInvalid??this.elm2.allowInvalid??this.model.options.allowInvalid}get editable(){return super.editable??this.elm1.editable??this.elm2.editable??this.model.options.editable}set editable(t){this._editable=t}get commentable(){return super.commentable??this.elm1.commentable??this.elm2.commentable??this.model.options.commentable}get renderer(){return super.renderer??this.elm1.renderer??this.elm2.renderer}get afterRenderer(){return super.afterRenderer??this.elm1.afterRenderer??this.elm2.afterRenderer??this.model.options.afterRenderer}get commentRenderer(){return super.commentRenderer??this.elm1.commentRenderer??this.elm2.commentRenderer??this.model.options.comments.renderer}get format(){return super.format??this.elm1.format??this.elm2.format}set format(t){super.format=t}get hasOwnFormula(){return!!this._formula}get hasFormula(){return null==this._hasFormula&&(this._hasFormula=!!this.formula),this._hasFormula}get formula(){return this._formula??this.elm1.formula??this.elm2.formula}set formula(t){super.formula=t,this.refreshFormula()}invalidateValue(){this.hasFormula?(this._value=void 0,this._evaluated=!1):this._evaluated=!0,this.clearError()}refreshFormula(){this.invalidateValue(),this._hasFormula=null}clearFormula(){this._formula=null,this._hasFormula=!1,this._evaluated=!0}constructor(t,e){super(t),this._evaluated=!0,this._sparkline=null,this._hasComment=null,this._hasStyle=null,this.row=t.rows[e.r],this.column=t.columns[e.c],this.populate(e)}populate(t){super.populate(t),this._colspan=t.cs??1,this._rowspan=t.rs??1,this._tooltip=t.tooltip,null!=t.f?this._evaluated=!1:null!=t.v&&(this.value=t.v),this._displayValue=t.dv}update(t){const e=super.update(t);return null!=t.cs&&(e.cs=this._colspan,this._colspan=t.cs),null!=t.rs&&(e.rs=this._rowspan,this._rowspan=t.rs),null!=t.tooltip&&(e.tooltip=this._tooltip,this._tooltip=t.tooltip),null!=t.f?this._evaluated=!1:null!=t.v&&(e.v=this.value,this.value=t.v),null!=t.dv&&(e.dv=this._displayValue,this._displayValue=t.dv),e}getSourceData(t){const e=super.getSourceData();return this._colspan>1&&(e.cs=this._colspan),this._rowspan>1&&(e.rs=this._rowspan),null!=this.value&&(e.v=this.value),this.hasTooltip&&(e.tooltip=this._tooltip),t&&t.displayValue&&this.hasDisplayValue&&(e.dv=this._displayValue),e}createComposedStyle(t,e,i){const o=[];return t=t||this.column.style,e=e||this.row.style,null!=t&&null!=e?this.column.priority>this.row.priority?o.push(e,t):o.push(t,e):null!=t?o.push(t):null!=e&&o.push(e),null!=this.style&&o.push(this.style),null!=i&&o.push(i),o.length>0?this.model.styles.merge(...o):null}get composedStyle(){if(null===this._hasStyle){const t=this.createComposedStyle(null,null,this.model.conditionalFormats.evaluate(this));this._hasStyle=null!=t,this._composedStyle=t}return this._composedStyle}get calculatedIndent(){const t=this.composedStyle;return t?.alignment?.indent?t.alignment.indent:this.column.levelIndent&&this.row.level>0?this.row.level*this.model.options.levelIndentFactor:null}get cssStyle(){if(!1===this._hasStyle)return null;if(!this._cssStyle){const t=this.composedStyle;t&&(this._cssStyle=Gy(t))}return this._cssStyle}invalidateStyle(){this._hasComment=null,this._hasStyle=null,this._composedStyle=null,this._cssStyle=null,this._sparkline=null}setStyleProperties(t){super.setStyleProperties(t),this.invalidateStyle()}removeStyleProperties(t){super.removeStyleProperties(t),this.invalidateStyle()}previewStyleProperties(t,e="cell"){const i=Object.assign({},this.createComposedStyle("column"==e?t:null,"row"==e?t:null)??{});if("cell"==e)for(const e in t)i[e]=t[e];this._hasStyle=!0,this._cssStyle=Gy(i)}toString(){return this.address}}const Qy={property:"value",enabled:!0};class Ky extends(dn($y)){get comparer(){return this._comparer}set comparer(t){this._comparer=t}get filter(){return this._filter??(this.model.options.filters?.enabled?Qy:{enabled:!1})}set filter(t){this._filter=t}get hasFilter(){return this.filter.enabled}get sorting(){return this._sorting??this.model.options.columnSorting}set sorting(t){this._sorting=t}get width(){return this._width??this.model.options.columnWidth}set width(t){this._width=t}get levelIndent(){return this._levelIndent}set levelIndent(t){this._levelIndent=t}get levelButtons(){return this._levelButtons}set levelButtons(t){this._levelButtons=t}get priority(){return this._priority}set priority(t){this._priority=t}get address(){return lv(this.index)}get range(){return new rv(this.index,null,this.index,null)}get hasFormula(){return!!this._formula}get formula(){return this._formula}set formula(t){super.formula=t;const e=this.index;this.model.rows.forEach((t=>t.cells[e]?.refreshFormula()))}constructor(t,e){super(t,e),null==this._priority&&(this._priority=t.options.columnPriority)}get mergedHeaders(){return this._mergedHeaders??(this._mergedHeaders=this._header?.filter((t=>t.cs>1||t.rs>1))??[])}updateMergedHeaders(){this._mergedHeaders=null}set header(t){this._mergedHeaders=null,this._header=t}get header(){if(!this._header||this._header.length<this.model.headerCount){this._header=this._header??[];for(let t=this._header.length;t<this.model.headerCount;t++)this._header.push({r:t})}return this._header}convertSourceHeader(t){return Array.isArray(t)?t.map(((t,e)=>(null==(t=t??{r:e}).height&&(t.height=t.h),t.r=e,null==t.style&&(t.style=t.s),t._style=null==t.style?null:this.model.styles.add(t.style).id,t))):Z(t)?[{label:t,r:0}]:null}populate(t){super.populate(t),this._width=null==t.w||"auto"==t.w?null:t.w,this._levelIndent=t.levelIndent,this._levelButtons=t.levelButtons,this._header=this.convertSourceHeader(t.header),this._sorting=t.sorting,this._filter=q(t.filter)?Object.assign({enabled:!0},t.filter):t.filter?Qy:!1===t.filter?{enabled:!1}:null,this._comparer=t.comparer,this.data=t.data,this._mergedHeaders=null,null!=t.priority&&(this._priority=t.priority)}getSourceData(){const t=super.getSourceData();return null!=this._width&&(t.w=this._width),null!=this._levelIndent&&(t.levelIndent=this._levelIndent),null!=this._levelButtons&&(t.levelButtons=this._levelButtons),null!=this._header&&(t.header=this._header),null!=this._sorting&&(t.sorting=this._sorting),null!=this._filter&&(t.filter=this._filter),null!=this.data&&(t.data=this.data),t}expand(t){super.expand(t),this.model.indexVisibleColumns()}collapse(){super.collapse(),this.model.indexVisibleColumns()}get prev(){return this.model.columns[this.index-1]}get next(){return this.model.columns[this.index+1]}get prevVisible(){const t=this.model.visibleColumnIndex[this.index];return null==t||0===t?null:this.model.visibleColumns[t-1]}get nextVisible(){const t=this.model.visibleColumnIndex[this.index];return null==t?null:this.model.visibleColumns[t+1]}calculateRealColspan(t){let e=1,i=this.nextVisible;for(;i&&i.index-this.index<t&&e<t;)++e,i=i.nextVisible;return e}cell(t){return this.model.rows[t].cell(this.index)}clearCalculatedValues(){this.model.rows.forEach((t=>{const e=t.cells[this.index];e&&this.model.calculations.refreshFormula(e)}))}}var Jy;!function(t){t[t.Asc=1]="Asc",t[t.Desc=-1]="Desc"}(Jy||(Jy={}));const tw={g:(t,e)=>t.value==e.value?0:t.value>e.value?1:-1,t:(t,e)=>(t.value||"").toString().localeCompare((e.value||"").toString()),s:(t,e)=>t.value==e.value?0:t.value>e.value?1:-1,m:(t,e)=>t.value==e.value?0:t.value>e.value?1:-1,n:(t,e)=>t.value-e.value,d:(t,e)=>(t.value instanceof Date?t.value.getTime():0)-(e.value instanceof Date?e.value.getTime():0),tm:(t,e)=>(t.value instanceof Date?t.value.getTime():0)-(e.value instanceof Date?e.value.getTime():0),dt:(t,e)=>(t.value instanceof Date?t.value.getTime():0)-(e.value instanceof Date?e.value.getTime():0),b:(t,e)=>t.value-e.value,h:(t,e)=>(t.value||"").localeCompare(e.value),a:()=>0},ew={g:(t,e)=>e.value==t.value?0:e.value>t.value?1:-1,t:(t,e)=>(e.value||"").toString().localeCompare((t.value||"").toString()),s:(t,e)=>e.value==t.value?0:e.value>t.value?1:-1,m:(t,e)=>e.value==t.value?0:e.value>t.value?1:-1,n:(t,e)=>e.value-t.value,d:(t,e)=>(e.value instanceof Date?e.value.getTime():0)-(t.value instanceof Date?t.value.getTime():0),tm:(t,e)=>(e.value instanceof Date?e.value.getTime():0)-(t.value instanceof Date?t.value.getTime():0),dt:(t,e)=>(e.value instanceof Date?e.value.getTime():0)-(t.value instanceof Date?t.value.getTime():0),b:(t,e)=>e.value-t.value,h:(t,e)=>(e.value||"").localeCompare(t.value),a:()=>0},iw=(t,e)=>t.origIndex-e.origIndex;class ow extends EventTarget{get settings(){return this._settings}set settings(t){this._settings=t,this.colMap.clear(),this.settings.length>0&&(this.settings.forEach(((t,e)=>this.colMap.set(t.c,e))),this.applySort(),ln().info(`sorting applied: ${JSON.stringify(this.settings)}`))}constructor(t,e=[]){super(),this.model=t,this.colMap=new Map,this._settings=[],this.settings=e}get(t){return this.colMap.has(t)?this.settings[this.colMap.get(t)]:null}sort(t,e=null,i=!1){let o=this.get(t);return o&&o.ord==Jy.Desc&&null===e?(this.settings.splice(this.colMap.get(t),1),o=null):o?(o.ord=Jy.Desc,this.settings.splice(this.colMap.get(t),1)):o={c:t,ord:Jy.Asc},o&&(null!==e&&(o.ord=e),this.colMap.set(t,0),this.settings.unshift(o)),this.settings.length>this.model.options.maxSortingColumns&&this.settings.pop(),this.colMap.clear(),this.settings.forEach(((t,e)=>{t.index=e,this.colMap.set(t.c,e)})),i||(this.settings.length>0?this.applySort():this.resetSort()),o}applySort(){const t=this.model,e=this.settings.map((e=>{const i=t.columns[e.c];return i?i.comparer?e.ord==Jy.Asc?i.comparer:(t,e)=>-i.comparer(t,e):e.ord==Jy.Asc?tw[i.type??"t"]:ew[i.type??"t"]:(ln().warn(`Column sorting: Column with index ${e.c} not found`),null)})).filter((t=>t)),i=e.length;let o,n,r;t.rowRoot.sort(((t,s)=>{if(!1===t.sortable||!1===s.sortable)return t.origIndex-s.origIndex;for(n=0;n<i;n++)if(r=this.settings[n].c,o=e[n](t.cell(r),s.cell(r)),0!=o)return o;return 0})),t.indexRowsByTree()}resetSort(){this.settings=[],this.colMap.clear(),this.model.rowRoot.sort(iw),this.model.indexRowsByTree()}persistSort(){this.model.rows.forEach(((t,e)=>t.origIndex=e))}}class nw{get properties(){return this._properties}set properties(t){this._properties=t}constructor(t){t&&this.pupulate(t)}pupulate(t){this.author=t.author,this.text=t.text,this.date=t.date?new Date(t.date):null,this.data=t.data,this.readOnly=!!t.readOnly,this._properties=t.props}getSourceData(){const t={};return this._properties&&(t.props=this._properties),this.author&&(t.author=this.author),this.text&&(t.text=this.text),this.data&&(t.data=this.data),null!==this.readOnly&&(t.readOnly=this.readOnly),this.date&&(t.date=Ro("en-US")(this.date,"yyyy-MM-dd HH:mm:ss")),t}}class rw{constructor(t,e){this.model=t,this._commentMap=new Map,this.has=t=>this._commentMap.has(t),this.delete=t=>this._commentMap.delete(t),this.cleanCell=t=>{this.has(t)&&this._commentMap.set(t,this.get(t).filter((t=>(t.text??"").length>0||null!=t.data)))},this.get=t=>(this.has(t)||this._commentMap.set(t,[]),this._commentMap.get(t)),this.set=(t,e)=>{this._commentMap.set(t,e),this.cleanCell(t)},e&&this.populate(e)}populate(t){t.forEach((t=>{const e=t.a1||new rv(t.c,t.r).A1;this._commentMap.has(e)||this._commentMap.set(e,[]),this._commentMap.get(e).push(new nw(t))})),this._commentMap.forEach((t=>{t.sort(((t,e)=>(e.date?e.date.getTime():0)-(t.date?t.date.getTime():0)))}))}shift(t){Array.from(this._commentMap.keys()).forEach((e=>{const i=rv.fromA1(e);i.shift(t),i.A1!=e&&(this._commentMap.set(i.A1,this._commentMap.get(e)),this._commentMap.delete(e))}))}}class sw{get tokenizer(){return this._tokenizer}get dependencies(){return this._dependencies}get formulas(){return this._formulas}constructor(t){this.model=t,this._tokenizer=new iv,this._formulas=new Map,this._dependencies=new fw(t),this.context=new Hy(t)}createFormula(t){const e=new Cv(t.formula,this.tokenizer);return this._formulas.set(t.address,e),t.hasOwnFormula&&(t.formula=e.createFormulaString()),this.createDependecies(t),e}createDependecies(t){const e=t.address;if(this.formulas.has(e)){const i=this.formulas.get(e);i.ranges.forEach((([t,i,o])=>this._dependencies.add(e,i.A1,o))),i.cells.forEach((([t,i,o])=>this._dependencies.add(e,i.A1,o))),i.variables.forEach((([i,o])=>{const n=this.model.getCellByName(o,t.range);n&&this._dependencies.add(e,n.address,null)}))}return this}refreshFormula(t){return t.refreshFormula(),this.formulas.delete(t.address),this.clearDependecies(t),this}updateDependencies(t){return this.clearDependecies(t).getFormula(t),this}getFormula(t){return this._formulas.has(t.address)?this._formulas.get(t.address):this.createFormula(t)}refresh(){this.dependencies.clear(),this._formulas.clear()}clearDependecies(t){const e=t.address;return this.dependencies.clearCellDependecies(e),this.formulas.delete(e),this}evaluateFormula(t,e){return this.context.currentCell=e,t.fn(this.context,{cell:e,formula:t})}evaluateExpression(t,e){this.context.currentCell=e;const i=new Cv(t,this.tokenizer);return i.fn(this.context,{cell:e,formula:i})}evaluate(t,e){if(!t)return null;let i=null;if(t.hasFormula){const o=this.getFormula(t);try{t.clearError(),this.context.currentCell=t,i=o.fn(this.context,{cell:t,formula:o}),Array.isArray(i)?(e||this.model.spillValues({cell:t,values:i}).range,i=i.length>0&&i[0].length>0?i[0][0]:null,e&&(t.value=i)):t.value=i}catch(e){t.error=function(t){return t instanceof RangeError?"Maximum call stack size exceeded"==t.message?"infinite loop":t.message:t.toString()}(e)}}else i=t.value;return i}evaluateAll(){this.model.rows.forEach((t=>this.model.columns.forEach(((e,i)=>t.cell(i).evaluate()))))}calculateViewport(t){const e=[];return t.rows.forEach((t=>t.cells.forEach((t=>{if(t.hasFormula){if(!t.hasValue&&(this.evaluate(t),t.spillRange))for(const i of this.model.getRangeIterator(t.spillRange))e.push(i);e.push(t)}})))),e}shift(t){this.getFormulaCells().forEach((e=>{e.formula=this.getFormula(e).shift(t).createFormulaString(!1),this.updateDependencies(e)}));const e=this.model.name;return this.dependencies.sheetDependants.forEach((i=>{const o=this.model.getConnectedModel(i);o?.calculations.getFormulaCells().forEach((i=>{const n=o.calculations.getFormula(i);n.hasSheetReference(e)&&(i.formula=n.shift(t).createFormulaString(!1),o.calculations.updateDependencies(i))}))})),this}getFormulaCells(){const t=this.model,e=[];let i;const o=t.rows.length,n=t.columns.length;for(let r=0;r<o;r++){i=t.rows[r];for(let t=0;t<n;t++)i.hasCellFormula(t)&&e.push(i.cell(t))}return e}renameSheet(t,e){let i=!1;return this.dependencies.renameSheet(t,e),this.getFormulaCells().forEach((o=>{const n=this.getFormula(o);n.renameSheet(t,e)&&(o.formula=n.createFormulaString(),this.refreshFormula(o),i=!0)})),i}invalidateCellDependants(t){const e=[];return this.dependencies.getDependants(t.range).forEach((([t,i])=>{e.push([t,i]),t.invalidateValue()})),e}invalidateDependants(t){const e=new Map,i=new Map;for(const i of t)this.invalidateCellDependants(i).forEach((([t,i])=>e.set(t,i)));e.forEach(((t,e)=>i.set(e,t)));for(const i of t)e.set(i,null);return e.forEach(((t,e)=>{this.model.sparklines.dependencies.getDependants(e.range).forEach((([t,e])=>{i.set(t,e)})),this.model.conditionalFormats.dependencies.getDependants(e.range).forEach((([t,e])=>{this.model.conditionalFormats.invalidateExtremes(t),t.invalidateStyle(),i.set(t,e)}))})),i}}const aw="#ff0000",lw="#fcd53f",cw="#00bb5e",hw="#555555",dw=new Map([["3Arrows",[{icon:["fas","down"],color:aw},{icon:["fas","right"],color:lw},{icon:["fas","up"],color:cw}]],["3ArrowsGray",[{icon:["fas","down"],color:hw},{icon:["fas","right"],color:hw},{icon:["fas","up"],color:hw}]],["3Flags",[{icon:["fas","flag-pennant"],color:aw},{icon:["fas","flag-pennant"],color:lw},{icon:["fas","flag-pennant"],color:cw}]],["3TrafficLights1",[{icon:["fas","circle"],color:aw},{icon:["fas","circle"],color:lw},{icon:["fas","circle"],color:cw}]],["3TrafficLights2",[{icon:["fas","square-o"],color:aw},{icon:["fas","square-o"],color:lw},{icon:["fas","square-o"],color:cw}]],["3Signs",[{icon:["fas","square"],rotation:45,color:aw},{icon:["fas","triangle"],color:lw},{icon:["fas","circle"],color:cw}]],["3Symbols",[{icon:["fas","circle-xmark"],color:aw},{icon:["fas","circle-exclamation"],color:lw},{icon:["fas","circle-check"],color:cw}]],["3Symbols2",[{icon:["fas","xmark"],color:aw},{icon:["fas","exclamation"],color:lw},{icon:["fas","check"],color:cw}]],["3Stars",[{icon:["fal","star"],color:lw},{icon:["fas","star-half-stroke"],color:lw},{icon:["fas","star"],color:lw}]],["3Triangles",[{icon:"caret-down",color:aw},{icon:"dash",color:lw},{icon:"caret-up",color:cw}]],["4Arrows",[{icon:["fas","down"],color:aw},{icon:["fas","down-right"],color:lw},{icon:["fas","up-right"],color:lw},{icon:["fas","up"],color:cw}]],["4ArrowsGray",[{icon:["fas","down"],color:hw},{icon:["fas","down-right"],color:hw},{icon:["fas","up-right"],color:hw},{icon:["fas","up"],color:hw}]],["4RedToBlack",[{icon:["fas","circle"],color:"#000000"},{icon:["fas","circle"],color:"#b1b1b1"},{icon:["fas","circle"],color:"#edb2a3"},{icon:["fas","circle"],color:aw}]],["4Rating",[{icon:"signal-bars-weak",color:"#4a7db1"},{icon:"signal-bars-fair",color:"#4a7db1"},{icon:"signal-bars-good",color:"#4a7db1"},{icon:["fas","signal-bars"],color:"#4a7db1"}]],["4TrafficLights",[{icon:["fas","circle"],color:"#000000"},{icon:["fas","circle"],color:aw},{icon:["fas","circle"],color:lw},{icon:["fas","circle"],color:cw}]],["5Arrows",[{icon:["fas","down"],color:aw},{icon:["fas","down-right"],color:lw},{icon:["fas","right"],color:lw},{icon:["fas","up-right"],color:lw},{icon:["fas","up"],color:cw}]],["5ArrowsGray",[{icon:["fas","down"],color:hw},{icon:["fas","down-right"],color:hw},{icon:["fas","right"],color:hw},{icon:["fas","up-right"],color:hw},{icon:["fas","up"],color:hw}]],["5Rating",[{icon:["fal","signal-bars"]},{icon:["fal","signal-bars-weak"],color:"#4a7db1"},{icon:["fal","signal-bars-fair"],color:"#4a7db1"},{icon:["fal","signal-bars-good"],color:"#4a7db1"},{icon:["fas","signal-bars"],color:"#4a7db1"}]],["5Quarters",[{icon:["fal","circle"],color:"#505050"},{icon:["fas","circle-quarter-stroke"],color:"#505050"},{icon:["fas","circle-half-stroke"],color:"#505050"},{icon:["fas","circle-three-quarters-stroke"],color:"#505050"},{icon:["fas","circle"],color:"#505050"}]]]),uw=(t,e)=>{const i=dw.get(t);return i?i[e]:null};class pw{get dependencies(){return this._dependencies}constructor(t,e){this.model=t,this.formats=[],this.cellFormatMap=new Map,this.extremes=new Map,this._dependencies=new fw(t),e&&this.populate(e)}populate(t){t.forEach((t=>{try{this.add(t)}catch(e){ln().error(`conditional format error: ${JSON.stringify(t)}`,e)}}))}refresh(){this.dependencies.clear(),this.cellFormatMap.clear(),this.extremes.clear(),this.formats.forEach((t=>this.initConditionalFormat(t)))}clearCellDependecies(t){const e=t.address;return this.dependencies.clearCellDependecies(e),this.cellFormatMap.get(e).forEach((t=>({cf:t.cf}))),this}getExtremes(t){if(!this.extremes.has(t.key)){let e=1/0,i=-1/0;t.ranges.forEach((t=>{for(const o of this.model.getValuesInRange(t))for(const t of o)null!=t&&(isNaN(t)||(e=Math.min(e,t),i=Math.max(i,t)))})),this.extremes.set(t.key,[e,i])}return this.extremes.get(t.key)}invalidateExtremes(t){this.cellFormatMap.get(t.address).forEach((t=>this.extremes.delete(t.cf.key)))}evaluateScaleFormat(t,e){const i=t.value;if(null==i)return null;const[o,n]=this.getExtremes(e.cf);let r;const s=(i-o)/(n-o);if(e.cf.cmid?.color)r=.5==s?"#"+e.cf.cmid.color:s>.5?yn("#"+e.cf.cmid.color,"#"+e.cf.cmax.color,2*(s-.5)):yn("#"+e.cf.cmin.color,"#"+e.cf.cmid.color,2*s);else{if(!e.cf.cmin?.color||!e.cf.cmax?.color)return null;r=yn("#"+e.cf.cmin.color,"#"+e.cf.cmax.color,s)}return{color:wn(r).substring(1),fgColor:r.substring(1)}}evaluateBarFormat(t,e){const i=t.value;if(null==i)return null;const o=this.getExtremes(e.cf);let n=o[0];const r=o[1],s=n<0;s||(n-=.1*(r-n));const a=Math.round(100*(i-n)/(r-n));e.initialized||(e.initialized=!0,e.cf.ranges.forEach((e=>this._dependencies.add(t.address,e.A1,null))));const l=[];if(s){const t=Math.round(-100*n/(r-n));i>=0?(l.push(`#00000000 ${t}%`),l.push(`#${e.cf.color} ${t}%`),l.push(`#${e.cf.color} ${a}%`),l.push(`#00000000 ${a}%`)):(l.push(`#00000000 ${a}%`),l.push(`#ff0000 ${a}%`),l.push(`#ff0000 ${t}%`),l.push(`#00000000 ${t}%`))}else l.push(`#${e.cf.color} ${a}%`),l.push(`#00000000 ${a}%`);return{cssStyle:{backgroundClip:"padding-box",backgroundImage:`linear-gradient(90deg, ${l.join(",")})`}}}evaluateFormulaFormat(t,e){if(!e.initialized&&e.cf.condition){e.initialized=!0;const i=t.address,o=new Cv(e.cf.condition,this.model.calculations.tokenizer);e.f=o.shift({index:0,offset:t.c-e.cf.firstCell.c1,direction:"right"}).shift({index:0,offset:t.r-e.cf.firstCell.r1,direction:"down"}),o.cells.forEach((t=>this._dependencies.add(i,t[1].A1,t[2]))),o.ranges.forEach((t=>this._dependencies.add(i,t[1].A1,t[2]))),o.variables.forEach((([e,o])=>{const n=this.model.getCellByName(o,t.range);n&&this._dependencies.add(i,n.address,null)}))}if(e.f&&!this.model.calculations.evaluateFormula(e.f,t))return null;const i={...e.cf.style};return i.color||xn(wn(kn(e.cf.style.fgColor))),i}evaluateIconFormat(t,e){const i=t.value;if(null==i)return null;const[o,n]=this.getExtremes(e.cf);let r;for(let t=e.cf.thresh.length-1;t>=0;t--){const s=e.cf.thresh[t];if("percent"===s.t){if(null==r&&(r=100*(i-o)/(n-o)),r>=s.v)return{icon:uw(e.cf.v,t)}}else if("num"===s.t&&i>=s.v)return{icon:uw(e.cf.v,t)}}return null}evaluate(t){const e=t.address,i=this.cellFormatMap.get(e);if(!i)return null;let o=null,n=null;for(const e of i){try{switch(e.cf.type){case"formula":n=this.evaluateFormulaFormat(t,e);break;case"scale":n=this.evaluateScaleFormat(t,e);break;case"bar":n=this.evaluateBarFormat(t,e);break;case"icon":n=this.evaluateIconFormat(t,e);break;default:n=null}}catch(t){ln().error(`Conditional format error: ${JSON.stringify(e)}`,t)}if(n&&(o=o?{...o,...n}:n,e.cf.stop))break}return o}initConditionalFormat(t){return t.firstCell=null,t.ranges.forEach((e=>{for(const i of new _w(e.intersect(this.model.gridRange))){const e=i.A1;"formula"===t.type&&(t.firstCell||(t.firstCell=i,t.formula=t.condition?new Cv(t.condition,this.model.calculations.tokenizer):null)),(this.cellFormatMap.get(e)||this.cellFormatMap.set(e,[]).get(e)).push({cf:t})}})),t}add(t){const e={key:t.ranges,ranges:rv.fromA1s(t.ranges),type:t.type||"formula",firstCell:null,formula:null,style:t.style?this.model.styles.add(t.style):null,condition:t.condition,stop:!!t.stop,cmin:t.cmin,cmid:t.cmid,cmax:t.cmax,color:t.color,v:t.v,thresh:t.thresh};this.formats.push(this.initConditionalFormat(e))}getSourceData(){return this.formats.map((t=>({type:t.type,ranges:rv.toA1s(t.ranges),style:t.style,condition:t.condition,stop:t.stop,cmin:t.cmin,cmid:t.cmid,cmax:t.cmax,color:t.color,v:t.v,thresh:t.thresh})))}}function gw(t,e,i){t.forEach((t=>t.forEach((t=>{t[1]==e&&(t[1]=i)}))))}class fw{get cellDependencies(){return this._cellDependencies}get cellDependants(){return this._cellDependants}get rangeDependencies(){return this._rangeDependencies}get rangeDependants(){return this._rangeDependants}get sheetDependencies(){return this._sheetDependencies}get sheetDependants(){return this._sheetDependants}constructor(t){this.model=t,this._cellDependencies=new Map,this._cellDependants=new Map,this._rangeDependencies=new Map,this._rangeDependants=new Map,this._sheetDependencies=new Map,this._sheetDependants=new Map}clear(){this._cellDependants.clear(),this._cellDependencies.clear(),this._rangeDependencies.clear(),this._rangeDependants.clear()}clearCellDependecies(t){return this._cellDependencies.has(t)&&this._cellDependencies.delete(t),this._rangeDependencies.has(t)&&this._rangeDependants.delete(t),this}has(t){return this._cellDependencies.has(t)||this._rangeDependencies.has(t)}add(t,e,i){const o=rv.fromA1(t).removeAnchors(),n=rv.fromA1(e).removeAnchors();e=n.A1;const r=n.isRange,s=r?this._rangeDependencies:this._cellDependencies;let a=null;if((s.has(t)?s.get(t):s.set(t,new Map).get(t)).set(e,[n,i]),i){const t=this.model.getConnectedModel(i);t&&(t.calculations.dependencies.sheetDependants.set(this.model.name,this.model.name),this.sheetDependencies.set(i,i),a=r?t.calculations.dependencies.rangeDependants:t.calculations.dependencies.cellDependants),i=this.model.name}else a=r?this._rangeDependants:this._cellDependants;a&&(a.has(e)||a.set(e,new Map),a.get(e).set(t,[o,i]))}getDependants(t,e=null){const i=t.A1;return e=e??new Map,this._cellDependants.has(i)&&this._cellDependants.get(i).forEach((([t,o])=>{if(e.has(t))return;const n=e.set(t,[(o?this.model.getConnectedModel(o):this.model).getCellByRange(t),o]);t.A1!=i&&this.getDependants(t,n)})),this._rangeDependants.forEach(((i,o)=>{rv.fromA1(o).contains(t)&&i.forEach((([t,i])=>{e.has(t)||(e.delete(t),this.getDependants(t,e.set(t,[(i?this.model.getConnectedModel(i):this.model).getCellByRange(t),i])))}))})),e}renameSheet(t,e){this._sheetDependants.has(t)&&(this._sheetDependants.delete(t),this._sheetDependants.set(e,e)),this._sheetDependencies.has(t)&&(this._sheetDependencies.delete(t),this._sheetDependencies.set(e,e)),gw(this._cellDependants,t,e),gw(this._cellDependencies,t,e),gw(this._rangeDependants,t,e),gw(this._rangeDependencies,t,e)}}const mw=(t,e)=>{const i=new RegExp(`${ht(t)}`,"ig");return t=>(i.lastIndex=0,i.test(at((t[e]??"").toString())))},vw=(t,e)=>i=>!!i[e]===t,bw=(t,e)=>{const i=t.map((t=>t.key?.toString()));return t=>null!=t[e]&&i.includes(t[e].toString())},yw=(t,e)=>t=>!1,ww=(t,e,i)=>(i=i??"value","b"===t?vw(e,i):"s"===t&&Array.isArray(e)?bw(e,"value"):"s"===t?mw(e?.toString(),"formattedValue"):"m"===t&&Array.isArray(e)?yw(e,i):mw(e?.toString(),"d"===t?"formattedValue":i));class xw extends Event{constructor(){super("filter",{bubbles:!1,cancelable:!0,composed:!0})}}class kw extends EventTarget{constructor(t){super(),this.model=t,this.settings=new Map,this.custom=!1}get(t){return this.settings.has(t)?this.settings.get(t):null}filter(t,e=!0){null===t.term||""===t.term?this.settings.delete(t.c):this.settings.set(t.c,t),this.custom||(this.settings.size>0?this.applyFilter(!1):this.resetFilter(!1)),e&&this.dispatchEvent(new xw)}applyFilter(t=!0){const e=[];this.settings.forEach(((t,i)=>{const o=this.model.columns[i];e.push({c:i,matcher:ww(o.type,t.term,o.filter?.property)})}));const i=e.length,o=this.model.options.filters?.includeParents??!0,n=this.model.options.filters?.includeChildren??!0,r=new Set;this.model.rows.forEach((t=>{const s=r.has(t.index);(t=>{if(!t.filterable)return!0;for(let o=0;o<i;o++)if(!e[o].matcher(t.cell(e[o].c)))return!1;return!0})(t)?(t.filterState=cn.Matched,o&&t.walkUp((t=>{if(r.has(t.index)&&t.filterState>0)return!1;t.filterState=cn.ChildMatched,r.add(t.index)})),n&&t.walk((t=>{if(r.has(t.index)&&t.filterState>0)return!1;t.filterState=cn.ParentMatched,r.add(t.index)}))):s||(t.filterState=cn.Filtered),r.add(t.index)})),this.model.indexRows(),t&&this.dispatchEvent(new xw)}resetFilter(t=!0){this.settings.clear(),this.model.rows.forEach((t=>t.filterState=cn.Matched)),this.model.indexRows(),t&&this.dispatchEvent(new xw)}}class Cw{get dependencies(){return this._dependencies}constructor(t,e){this.model=t,this.map=new Map,this.groups=new Map,this.extremes=new Map,this.maxIndex=0,this.updateRangeMap=!1,this._dependencies=new fw(t),this.populate(e)}populate(t){t?.forEach((t=>{try{this.add(rv.fromA1(t.location),Array.isArray(t.data)?t.data.map((t=>[rv.fromA1(t)])):t.data.split(",").map((t=>[rv.fromA1(t)])),et({},Nm.DEFAULT_SPARKLINE_OPTIONS,t.options))}catch(e){this.model.logger.error(`sparkline error: ${JSON.stringify(t)}`,e)}}))}getSourceData(){const t=[];return this.groups.forEach((e=>{t.push({location:e.locRange.A1,data:e.dataRanges.map((t=>t[0].A1)).join(","),options:{minValue:e.minValue,maxValue:e.maxValue,type:e.type,style:e.style,marker:e.marker}})})),t}has(t){return this.map.has(t)}get(t){return this.map.get(t)}createDependencies(t){this.map.get(t)[1].forEach((e=>this._dependencies.add(t,e[0].A1,e[1])))}updateRangeMaps(){this.dependencies.clear(),this.map.clear(),this.groups.forEach(((t,e)=>this.createRangeMap(e,t.locRange,t.dataRanges)))}getValues(t){this.updateRangeMap&&this.updateRangeMaps();const e=this.map.get(t),i=e[1][0][1]?this.model.getConnectedModel(e[1][0][1]):this.model;return this._dependencies.has(t)||this.createDependencies(t),e[1].flatMap((t=>i.getValuesInRange(t[0])[0]))}getExtremes(t){const e=this.map.get(t),i=e[1][0][1]?this.model.getConnectedModel(e[1][0][1]):this.model,o=this.groups.get(e[0]);let n,r,s,a;return null==o.minValue||Z(o.minValue)?"auto"==(o.minValue||"auto")?(n=n??st(...e[1].map((t=>i.getValuesInRange(t[0])))),s=n[0]):(this.extremes.has(e[0])||this.extremes.set(e[0],st(...o.dataRanges.map((t=>i.getValuesInRange(t[0]))))),r=this.extremes.get(e[0]),s=r[0]):s=o.minValue,null==o.maxValue||Z(o.maxValue)?"auto"==(o.maxValue||"auto")?(n=n??st(...e[1].map((t=>i.getValuesInRange(t[0])))),a=n[1]):(this.extremes.has(e[0])||this.extremes.set(e[0],st(...o.dataRanges.map((t=>i.getValuesInRange(t[0]))))),r=this.extremes.get(e[0]),a=r[1]):a=o.maxValue,[s,a]}createRangeMap(t,e,i){e=e.intersect(this.model.gridRange);const o=i[0][0].size,n=e.size;if(n.columns>1&&n.rows>1)return void this.model.logger?.error(`invalid sparkline location range: ${e.A1}`);let r=!1;if(r=1==n.columns&&1==n.rows?o.rows>1:n.columns>1,r)for(let o=e.c1;o<=e.c2;o++)this.map.set(new rv(o,e.r1).A1,[t,i.map((([t,i])=>[new rv(t.c1+o-e.c1,t.r1,t.c1+o-e.c1,t.r2),i]))]);else for(let o=e.r1;o<=e.r2;o++)this.map.set(new rv(e.c1,o).A1,[t,i.map((([t,i])=>[new rv(t.c1,t.r1+o-e.r1,t.c2,t.r1+o-e.r1),i]))])}add(t,e,i){const o=++this.maxIndex;t&&e&&this.createRangeMap(o,t,e),this.groups.set(o,Object.assign({dataRanges:e,locRange:t},JSON.parse(JSON.stringify(Nm.DEFAULT_SPARKLINE_OPTIONS)),i))}update(t,e,i,o){const n=this.groups.get(t);Object.assign(n,{dataRanges:i,locRange:e},o),this.updateRangeMap=!0}delete(t){this.groups.delete(t),this.updateRangeMap=!0}shift(t){this.groups.forEach((e=>{e.dataRanges.forEach((([e])=>e.shift(t))),e.locRange.shift(t)})),this.updateRangeMaps()}}class Mw extends rv{constructor(t,e,i=!1){super(e.c1,e.r1,e.c2,e.r2),this.model=t,this.initializedOnly=i,this.r=0,this.c=-1,this.done=!1}[Symbol.iterator](){return this}nextInitialized(){let t;for(;!this.done&&!t;)this.c<this.size.columns-1?this.c++:this.r<this.size.rows-1&&(this.c=0,this.r++),t=this.model.rows[this.r].cells[this.c],this.done=this.c>=this.size.columns-1&&this.r>=this.size.rows-1;return t}next(){if(this.done)return{done:!0};this.c<this.size.columns-1?this.c++:this.r<this.size.rows-1&&(this.c=0,this.r++),this.done=this.c>=this.size.columns-1&&this.r>=this.size.rows-1;const t=this.model.rows[this.r+this.r1],e=this.c+this.c1,i=this.initializedOnly&&!t.isCellInitialized(e)?this.nextInitialized():t?.cell(e);return i?{done:!1,value:i}:{done:!0}}forEach(t){let e;for(;e=this.next().value;)t(e)}}class _w extends rv{constructor(t){super(t.c1,t.r1,t.c2,t.r2),this.r=0,this.c=-1,this.done=!1}[Symbol.iterator](){return this}next(){return this.done?{done:!0}:(this.c<this.size.columns-1?this.c++:this.r<this.size.rows-1&&(this.c=0,this.r++),this.done=this.c==this.size.columns-1&&this.r==this.size.rows-1,{done:!1,value:new rv(this.c+this.c1,this.r+this.r1)})}}class Sw{constructor(t,e){this.model=t,this.names=new Map,this.rangeMap=new Map,e&&this.populate(e)}populate(t){t.forEach((({name:t,ref:e})=>this.set(t,q(e)?rv.fromCoords(e):rv.fromA1(e))))}set(t,e){this.names.set(t,e),this.rangeMap.set(e.A1,t)}delete(t){const e=this.names.get(t);e&&(this.rangeMap.delete(e.A1),this.names.delete(t))}findCellByName(t){let e;const i=this.model.rows,o=this.model.columns.length;for(let n=0;n<i.length;n++){e=i[n];for(let i=0;i<o;i++)if(e.hasCellName(i)){const o=e.cell(i);if(o.name==t)return o.range}}return null}getCellByName(t,e){const i=this.names.get(t)??this.findCellByName(t);return i?i.isColumn?this.model.rows.length>e.r1?this.model.columns[i.c1].cell(e.r1):null:i.isRow?this.model.columns.length>e.c1?this.model.rows[i.r1].cell(e.c1):null:this.model.rows[i.r1].cell(i.c1):null}getRangeByName(t,e=!0){const i=this.names.get(t);return e?i?.intersect(this.model.gridRange):i}shift(t){this.names.forEach(((e,i)=>{const o=e.A1;e.shift(t);const n=e.A1;o!=n&&(this.rangeMap.delete(o),this.rangeMap.set(n,i))}))}}function Ew(t,e=null){const i=et({},Nm.DEFAULT_OPTIONS,e,jn(t,e));return i.numberFormat?i.numberFormatter=qo(i.locale,i.numberFormat):i.numberFormatter||(i.numberFormatter=qo(i.locale)),i.dateFormat?i.dateFormatter=Ro(i.locale,i.dateFormat):i.dateFormatter||(i.dateFormatter=Ro(i.locale)),i.columnSorting&&(i.sorting=i.sorting||{enabled:!0}),"boolean"==typeof i.filters&&(i.filters={enabled:i.filters}),i.filters=Object.assign({},$m,i.filters),"boolean"==typeof i.rowTree&&(i.rowTree={enabled:i.rowTree}),i.rowTree=Object.assign({},Dm,i.rowTree),"boolean"==typeof i.columnTree&&(i.columnTree={enabled:i.columnTree}),i.columnTree=Object.assign({},Dm,i.columnTree),i}class zw extends(dn($y)){get cells(){return this._cells}get data(){return this._data}set data(t){this._data=t}get height(){return this._height??this.model.options.rowHeight}set height(t){this._height=t}get priority(){return this._priority}set priority(t){this._priority=t}get address(){return sv(this.index)}get range(){return new rv(null,this.index,null,this.index)}get hasFormula(){return!!this._formula}get formula(){return this._formula}set formula(t){super.formula=t,this.model.columns.forEach((t=>this.cell(t.index).refreshFormula()))}get values(){return this.model.columns.map((t=>this.cell(t.index).value))}cell(t,e){if(this.model.options.singleCellModel)return this._singleCell||(this._singleCell=new Xy(this.model,{c:t,r:this.index})),this._singleCell.row=this,this._singleCell.column=this.model.columns[t],this._singleCell;let i=this._cells[t];if((e||!i)&&this.model.columns[t]){if(i=new Xy(this.model,e??{c:t,r:this.index}),this._data){const e=this.model.columns[t].data;null!=e&&(q(this._data[e])?i.populate(this._data[e]):i.hasValue||(i.value=this._data[e]))}i.name&&this.model.names.set(i.name,i.range),this._cells[t]=i}return i}constructor(t,e){super(t,e),this.isCellInitialized=t=>!!this.cells[t],this._cells=[],null==this._priority&&(this._priority=t.options.rowPriority)}populate(t){super.populate(t),this._height=null==t.h||"auto"==t.h?this.model.options.rowHeight:t.h,this._data=t.data,null!=t.priority&&(this._priority=t.priority)}getSourceData(){const t=super.getSourceData();return null!=this._height&&this._height!=this.model.options.rowHeight&&(t.h=this._height),t}expand(t){super.expand(t),this.model.indexVisibleRows()}collapse(){super.collapse(),this.model.indexVisibleRows()}get prev(){return this.model.rows[this.index-1]}get next(){return this.model.rows[this.index+1]}get prevVisible(){let t=this.prev;for(;t&&!t.visible;)t=t.prev;return t}get nextVisible(){let t=this.next;for(;t&&!t.visible;)t=t.next;return t}hasCellFormula(t){return this.cells[t]&&this.cells[t].hasFormula||this._data&&this._data[this.model.columns[t].data]&&this._data[this.model.columns[t].data].f}hasCellName(t){return this.cells[t]&&null!=this.cells[t].name||this._data&&this._data[this.model.columns[t].data]&&null!=this._data[this.model.columns[t].data].name}insertColumns(t,e,i=!1){let o;const n=this.model.columns.length,r=this.model.calculations;if(i)for(let i=0;i<n;i++)this.hasCellFormula(i)&&(o=this.cell(i),o.formula=r.getFormula(o).shift({index:t,offset:e,direction:"right"}).createFormulaString(!1));t<this.cells.length&&this.cells.splice(t,0,...Array(e).fill(null))}deleteColumns(t,e,i=!1){let o;const n=this.model.columns.length,r=this.model.calculations;if(i)for(let i=0;i<n;i++)this.hasCellFormula(i)&&(o=this.cell(i),o.formula=r.getFormula(o).shift({index:t,offset:e,direction:"left"}).createFormulaString(!1));return t<this.cells.length?this.cells.splice(t,e):null}clearCalculatedValues(){this.cells.forEach((t=>t&&this.model.calculations.refreshFormula(t)))}}var Lw=i(4418),Rw=i.n(Lw);const Iw=t=>t?"1":"0",Hw=t=>null==t?"_":t,Tw=t=>null==t?"_":t.toString(),Aw=t=>null==t?"_":JSON.stringify(t),Ow=t=>Hw(t&&t.color?t.color:"_")+Hw(t&&t.style?t.style:"_"),$w=t=>Hw(t?t.horizontal:null)+Hw(t?t.vertical:null)+Hw(t?t.horizontal:null)+Tw(t?t.indent:null)+Iw(t?t.wrapText:null)+Tw(t?t.textRotation:null),Dw=t=>Rw()("s_"+Iw(t.bold)+Iw(t.italic)+Iw(t.underline)+Tw(t.sz)+Hw(t.font)+Hw(t.color)+Ow(t.top)+Ow(t.right)+Ow(t.bottom)+Ow(t.left)+Hw(t.patternType)+Hw(t.fgColor)+Hw(t.bgColor)+$w(t.alignment)+Tw(t.angle)+Aw(t.stops)+Iw(t.hidden)+Iw(t.editable)+Aw(t.cssStyle)+Aw(t.icon));function Nw(t){const e={...t};return delete e.id,delete e.hash,e}class Pw{constructor(t){this.model=t,this._count=0,this.hashmap=new Map,this.map=new Map}add(t){if(!isNaN(t))return this.get(t);const e=this.model.options.cssStyles?qy(t):t,i=e.hash?e.hash:Dw(e);return this.hashmap.has(i)?this.map.get(this.hashmap.get(i)):(null==e.id&&(e.id=this._count),this._count=Math.max(e.id+1,this._count+1),e.hash=i,this.hashmap.set(i,e.id),this.map.set(e.id,e),e)}populate(t){t.forEach((t=>this.add(t)))}get(t){return this.map.has(t)?this.map.get(t):null}remove(t){const e="object"==typeof t?t:this.map.get(t);this.hashmap.delete(e.hash),this.map.delete(e.id)}merge(...t){const e=Object.assign({},...t.map((t=>q(t)?t:this.get(t))));return this.add(Nw(e))}duplicate(t,e){const i=this.get(t);return this.add(Nw({...i,...e}))}set(t,e){let i=this.map.has(t)?this.map.get(t):{};for(const t in e)i[t]=e[t];return i=i.id?i:this.add(i),i}unset(t,e){if(this.map.has(t)){const i=this.map.get(t);for(const t of e)delete i[t]}}getSourceData(){return Array.from(this.map.values())}clean(){const t=new Map(Array.from(this.map.entries()).map((([t])=>[t,0])));this.model.columns.forEach((e=>{const i=t.get(e.style);null!=i&&t.set(e.style,i+1)})),this.model.rows.forEach((e=>{const i=t.get(e.style);null!=i&&t.set(e.style,i+1),e.cells.forEach((e=>{const i=t.get(e.style);null!=i&&t.set(e.style,i+1)}))})),t.forEach(((t,e)=>{0==t&&this.remove(e)}))}}function jw(t,e,i){const o="rows"==i?e.rows:e.columns,n=function(t){const e=new Map;for(const i of t)e.has(i.level)||e.set(i.level,[]),e.get(i.level).push(i);return e}(o);for(const i of t){let t;if(t=i.index>-1?[o[i.index]]:i.level>-1?n.get(i.level):o,i.name){const e=i.name instanceof RegExp?i.name:new RegExp(ht(i.name));t=t.filter((t=>e.test(t.name)))}t.forEach((t=>{i.type?e.conditionalFormats.add(Object.assign({ranges:`${t.address}:${t.address}`},i)):t.style=e.styles.add(i.style).id}))}}function Vw(t,e){!function(t,e){for(const i of t)if(i.type)e.conditionalFormats.add(Object.assign({ranges:"A:"+e.columns[e.columns.length-1].address},i));else for(const t of e.columns)null==t.style&&(t.style=e.styles.add(i.style).id)}(t.cells??[],e),jw(t.columns??[],e,"columns"),jw(t.rows??[],e,"rows")}const Bw=["index","name","rows","columns","cells","options","sparklines","rules","comments","styles","names","props","tab","theme"];class Fw{get comments(){return this._comments}get calculations(){return this._calculations}get names(){return this._names}get sparklines(){return this._sparklines}get conditionalFormats(){return this._conditionalFormats}get mergedHeaders(){return this._mergedHeaders}get mergedCells(){return this._mergedCells}get hiddenCells(){return this._hiddenCells}get hasFilter(){return this._filter}get hasRowTree(){return this._maxRowLevel>0}get hasRowTreeEnabled(){return this.hasRowTree&&this.options.rowTree.enabled}get maxRowLevel(){return this._maxRowLevel}get hasColumnTree(){return this._maxColumnLevel>0}get hasColumnTreeEnabled(){return this.hasColumnTree&&this.options.columnTree.enabled}get maxColumnLevel(){return this._maxColumnLevel}get headerCount(){return this._headerCount}get columnHeaderCount(){return this.headerCount+(this.hasColumnTreeEnabled?1:0)+(this.hasFilter?1:0)}get properties(){return this._properties}set properties(t){this._properties=t}constructor(t,e,i){this.otherModels={},this.autofitColumns=new Set,this.autofitRows=new Set,this.styles=new Pw(this),this._comments=new rw(this),this._calculations=new sw(this),this._names=new Sw(this),this._sparklines=new Cw(this),this._conditionalFormats=new pw(this),this._hiddenCells=new Map,this._filter=!1,this._maxRowLevel=0,this._maxColumnLevel=0,this._headerCount=0,this._levelBasedRowTree=!0,this._levelBasedColTree=!0,this.clearRows=()=>(this.rowRoot.clearChildren(),this.rows=[],this.rows),this.clearColumns=()=>this.columns=[],this.logger=i,this.options=e??Ew(t.options),this.populate(t)}getConnectedModel(t){return this.group?this.group.get(t):null}getModelByRange(t){return t.sheet?this.getConnectedModel(t.sheet):this}getCellByA1(t){return this.getCellByRange(rv.fromA1(t))}getCellByRange(t){return this.getCellByCoords(t.r1,t.c1)}getCellByCoords(t,e){return this.rows[t].cell(e)}cell(t,e){return isNaN(t)?t instanceof rv?this.getCellByRange(t):"string"==typeof t?this.getCellByA1(t):null:this.getCellByCoords(t,e||0)}createRows(t,e=new zw(this,{l:-1}),i=0){let o=!1,n=!1;this.autofitRows.clear();const r=t.map(((t,e)=>{t||(t={}),isNaN(t.l)||(o=!0),null!=t.p&&(n=!0),"auto"==t.h&&this.autofitRows.add(e);const r=new zw(this,t);return r.origIndex=e+i,r.name&&this.names.set(r.name,rv.fullRow(e)),r}));let s=-1;return o?s=un(r,e,{reverse:this.options.rowTree.reversed}):n?s=pn(r,e):e.children=r,[e,r,s,o]}insertRowData(t,e,i){const o=this.createRows(i,new zw(this,{l:t.level}),e);this._maxRowLevel=Math.max(this._maxRowLevel,o[2]),t.insertChildren(o[0].children,e),this.indexRowsByTree()}applyTheme(t,e){if(e)for(const t of this.getInitializedCellIterator())t.invalidateStyle();Vw(t,this)}populate(t){this.index=t.index,this.name=t.name??this.name,this.tab=t.tab;let e=!1,i=!1;if(t.columns||(t.columns=new Array(this.options.columns).fill({})),t.rows||(t.rows=new Array(this.options.rows).fill({})),t.styles&&this.styles.populate(t.styles),this.autofitColumns.clear(),this.columns=t.columns.map(((t,o)=>{t||(t={}),t.l>0&&(e=!0),null!=t.p&&(i=!0),"auto"==t.w&&this.autofitColumns.add(o);const n=new Ky(this,t);return this._filter=n.hasFilter||this._filter,n.name&&this.names.set(n.name,rv.fullColumn(o)),n})),this._levelBasedColTree=e,this._maxColumnLevel=-1,this.colRoot=new Ky(this,{l:-1}),e?this._maxColumnLevel=un(this.columns,this.colRoot,{reverse:this.options.columnTree.reversed}):i?this._maxColumnLevel=pn(this.columns,this.colRoot):this.colRoot.children=this.columns,this.indexColumns(),this.indexVisibleColumns(),[this.rowRoot,this.rows,this._maxRowLevel,this._levelBasedRowTree]=this.createRows(t.rows),this.indexRows(),this.indexVisibleRows(),this.options.pageSize&&this.options.pageSize<=this.rows.length&&(this.rowRoot.count=1/0),this._mergedCells=[],t.cells?.forEach(((t,e)=>{const i=this.rows[t.r]?this.rows[t.r].cell(t.c,t):null;i?(i.colspan>1||i.rowspan>1)&&this._mergedCells.push({r:i.r,c:i.c,rs:i.rowspan,cs:i.colspan}):this.logger?.error(`invalid cell definition (index ${e}): ${JSON.stringify(t)}`)})),this.indexHiddenCells(),t.sparklines)try{this.sparklines.populate(t.sparklines)}catch(t){ln().error(`Sparkline init error: ${t}`)}if(t.names)try{this.names.populate(t.names)}catch(t){ln().error(`Named range init error: ${t}`)}if(t.rules)try{this.conditionalFormats.populate(t.rules)}catch(t){ln().error(`Conditional formats init error: ${t}`)}if(t.theme)try{this.applyTheme(t.theme)}catch(t){ln().error(`Theme init error: ${t}`)}if(t.comments)try{this.comments.populate(t.comments)}catch(t){ln().error(`Comment init error: ${t}`)}this._properties=t.props,this.otherSourceData={};const o=new Set(Bw),n=Object.keys(t).filter((t=>!o.has(t)));n.forEach((e=>this.otherSourceData[e]=t[e])),this.calcHeaderHeights()}getSourceData(){const t={index:this.index,name:this.name,tab:this.tab,columns:this.columns.map((t=>t.getSourceData())),rows:this.rows.map((t=>t.getSourceData())),styles:this.styles.getSourceData(),rules:this.conditionalFormats.getSourceData(),sparklines:this.sparklines.getSourceData(),options:this.options};this._properties&&(t.props=this._properties);const e=[];let i;for(let t=0;t<this.rows.length;t++)for(let o=0;o<this.columns.length;o++)i=this.rows[t].cell(o).getSourceData(),Object.keys(i).length>0&&(i.r=t,i.c=o,e.push(i));e.length>0&&(t.cells=e);const o=[];return this.styles.clean(),this.styles.map.forEach((t=>o.push(t))),o.length>0&&(t.styles=o),new Set([...Object.keys(this.otherModels??{}),...Object.keys(this.otherSourceData??{})]).forEach((e=>t[e]=this.otherModels[e]?Array.from(this.otherModels[e]).map((t=>t.getSourceData())):this.otherSourceData[e])),t}calcHeaderHeights(){this._headerCount=0,this._headerHeights=[],this.columns.forEach((t=>{this._headerCount=t.header?t.header.length:this._headerCount,this._headerHeights.length<this._headerCount&&this._headerHeights.push(...Array(this._headerCount-this._headerHeights.length).fill(0)),t.header?.forEach(((t,e)=>{e>=this._headerHeights.length&&this._headerHeights.push(0),this._headerHeights[e]=Math.max(this._headerHeights[e],t.height??0)}))}))}indexRows(){this.visibleRows=[],this.rows.forEach(((t,e)=>{t.index=e,t.isLoaded||(t.collapsed=!0),t.hidden||t.filterState==cn.Filtered||this.visibleRows.push(t)}))}indexVisibleRows(){this.visibleRows=[];let t=0;if(this._levelBasedRowTree){if(this.rowRoot.walkVisible((e=>{e.visibleIndex=t++,this.visibleRows.push(e)})),this.options.rowTree.reversed){const e=new Array(this.visibleRows.length);this.visibleRows.forEach(((i,o)=>{t=this.visibleRows.length-o-1,i.visibleIndex=t,e[t]=i})),this.visibleRows=e}}else this.rowRoot.walkVisible((t=>this.visibleRows[t.index]=t)),this.visibleRows=this.visibleRows.filter((e=>!!e&&(e.visibleIndex=t++,!0)))}indexRowsByTree(){this.rows=[];let t=0;this.rowRoot.walk((e=>{e.index=t++,this.rows.push(e)})),this.options.rowTree.reversed&&this.rows.reverse(),this.indexVisibleRows()}indexColumns(){this.visibleColumns=[],this.columns.forEach(((t,e)=>{t.index=e,t.hidden||this.visibleColumns.push(t)}))}indexVisibleColumns(){this.visibleColumns=[],this.visibleColumnIndex={};let t=0;if(this.colRoot.walkVisible((e=>{e.visibleIndex=t,this.visibleColumnIndex[e.index]=t++,this.visibleColumns.push(e)})),this.options.columnTree.reversed){this.visibleColumnIndex={};const e=new Array(this.visibleColumns.length);this.visibleColumns.forEach(((i,o)=>{t=this.visibleColumns.length-o-1,i.visibleIndex=t,this.visibleColumnIndex[i.index]=t,e[t]=i})),this.visibleColumns=e}this.indexHeaders()}indexHeaders(){this._mergedHeaders=[],this._headerCount=0,this.colRoot.walkVisible((t=>{this._headerCount=Math.max(t.header?t.header.length:0,this._headerCount),t.mergedHeaders.forEach((e=>this._mergedHeaders.push({h:e,c:t.index,r:e.r,cs:t.calculateRealColspan(e.cs??1),rs:e.rs??1})))})),this._mergedHeaders.forEach((t=>{if(!t.h.hidden)for(let e=t.c;e<t.c+t.cs;e++)for(let i=t.r;i<t.r+t.rs;i++)(i>t.r||e>t.c)&&this.columns[e]&&this.columns[e].header[i]&&(this.columns[e].header[i].hidden=!0)})),this.calcHeaderHeights()}removeHeader(t){this.columns.forEach((e=>{t<e.header.length&&e.header.splice(t,1)})),this.indexHeaders()}clear(){this.clearRows(),this.clearColumns(),this.resetViewport()}resetViewport(){return this._viewport=null,this}getViewport(t,e,i){const o=[],n=[];let r,s,a=e.h,l=0;for(l=0;l<i.t;l++)r=this.visibleRows[l],a-=r.height,o.push(r);for(l=this.visibleRows.length-i.b;l<this.visibleRows.length;l++)r=this.visibleRows[l],a-=r.height;for(l=i.t+t.r;a>0&&l<this.visibleRows.length;)r=this.visibleRows[l++],a-=r.height,o.push(r);for(l=this.visibleRows.length-i.b;l<this.visibleRows.length;l++)o.push(this.visibleRows[l]);let c=e.w,h=0;for(h=0;h<i.l;h++)s=this.visibleColumns[h],c-=s.width,n.push(s);for(h=this.visibleColumns.length-i.r;h<this.visibleColumns.length;h++)s=this.visibleColumns[h],c-=s.width;for(h=i.l+t.c;c>0&&h<this.visibleColumns.length;)s=this.visibleColumns[h++],c-=s.width,n.push(s);for(h=this.visibleColumns.length-i.r;h<this.visibleColumns.length;h++)n.push(this.visibleColumns[h]);return this._viewport={rows:o,columns:n}}calculateViewport(){return this._viewport?this.calculations.calculateViewport(this._viewport):[]}getValuesInRange(t,e=!1){if(!(t=t.intersect(this.gridRange)))return[];const{columns:i,rows:o}=t.size,n=new Array(o);let r,s=0,a=0;for(let o=t.r1;o<=t.r2;o++){n[s]=new Array(i),a=0,r=this.rows[o];for(let i=t.c1;i<=t.c2;i++)n[s][a++]=e?r.cell(i).formattedValue:r.cell(i).value;++s}return n}setRowExpandLevel(t){this.rows.forEach((e=>{e.collapsed=!e.isLoaded&&!e.isPartialyLoaded||e.level>=t,e.level<=t&&(e.hidden=!1)})),this.indexVisibleRows()}setColumnExpandLevel(t){this.columns.forEach((e=>e.collapsed=e.level>=t)),this.indexVisibleColumns()}getViewportRange(){return this._viewport?new rv(this._viewport.columns[0].index,this._viewport.rows[0].index,this._viewport.columns[this._viewport.columns.length-1].index,this._viewport.rows[this._viewport.rows.length-1].index):null}get gridRange(){return new rv(0,0,this.columns.length-1,this.rows.length-1)}getRangeIterator(t,e=!1){return new Mw(this,e&&this._viewport?t.intersect(this.getViewportRange()):t.intersect(this.gridRange))}getInitializedCellIterator(){return new Mw(this,this.gridRange,!0)}getCellArray(t){const e=[];for(const i of this.getRangeIterator(t))e.push(i);return e}transformRangeToMatrix(t,e){let i,o,n;const r=[];for(let s=(t=t.intersect(this.gridRange)).r1;s<=t.r2;s++)if(i=this.rows[s],i){n=[];for(let r=t.c1;r<=t.c2;r++)o=i.cell(r),o&&n.push(e(o));r.push(n)}return r}getCellMatrix(t){return this.getModelByRange(t)?.transformRangeToMatrix(t,(t=>t))}getValueMatrix(t){return this.getModelByRange(t)?.transformRangeToMatrix(t,(t=>t.value))}shiftMerges(t){const{index:e,offset:i,direction:o}=t,n={down:t=>{e<=t.r?t.r+=i:e>t.r&&e<t.r+t.rs&&(this.rows[t.r].cell(t.c).rowspan=t.rs+=i)},up:t=>{e<=t.r?t.r-=i:e>t.r&&e<t.r+t.rs&&(this.rows[t.r].cell(t.c).rowspan=t.rs-=i)},right:t=>{e<=t.c?t.c+=i:e>t.c&&e<t.c+t.cs&&(this.rows[t.r].cell(t.c).colspan=t.cs+=i)},left:t=>{e<=t.c?t.c-=i:e>t.c&&e<t.c+t.cs&&(this.rows[t.r].cell(t.c).colspan=t.cs-=i)}};this.mergedCells.forEach(n[o]),this.indexHiddenCells()}indexHiddenCells(){this._hiddenCells.clear(),this.mergedCells.forEach((t=>{if(!(t.r>0||this._hiddenCells.has(t.r)&&this._hiddenCells.get(t.r).has(t.c)))for(let e=t.r;e<t.r+t.rs;e++)for(let i=t.c;i<t.c+t.cs;i++)(e>t.r||i>t.c)&&(this._hiddenCells.has(e)||this._hiddenCells.set(e,new Map),this._hiddenCells.get(e).set(i,t))}))}shift(t){t.sheet=this.name,this.shiftMerges(t),this.calculations.shift(t),this.names.shift(t),this.comments.shift(t),this.sparklines.shift(t)}clearCalculations(t=!1){t&&this.group?this.group.models.forEach((t=>t.calculations.refresh())):this.calculations.refresh()}refreshSparklines(){this.sparklines.updateRangeMaps();for(const t of this.getInitializedCellIterator())t.invalidateStyle()}clearCalculatedStyles(){this.conditionalFormats.refresh();const t=[];for(const e of this.getInitializedCellIterator())t.push(e),e.invalidateStyle()}insertColumns(t,e,i=!1){const o=this.columns[Math.min(this.columns.length-1,t)].parent;i&&++t,this.shift({index:t,offset:e,direction:"right"});for(let i=0;i<this.rows.length;i++)this.rows[i].insertColumns(t,e,!1);const n=new Array(e).fill(null).map((()=>new Ky(this)));return this.columns.splice(t,0,...n),this.maxColumnLevel>0&&o.insertChildren(n,t-(o.index||-1)-1),this.indexColumns(),this.clearCalculations(!0),n}deleteColumns(t,e){const i=this.columns[t].parent;this.shift({index:t,offset:e,direction:"left"});const o=[];for(let i=0;i<this.rows.length;i++)o.push(this.rows[i].deleteColumns(t,e,!1));const n=this.columns.splice(t,e);return i?.deleteChildren(n),this.indexColumns(),this.clearCalculations(!0),n}insertRows(t,e,i=!1){const o=Math.min(this.rows.length-1,t),n=o<0?this.rowRoot:this.rows[o].parent;i&&++t;const r=isNaN(e)?e.length:e;this.shift({index:t,offset:r,direction:"down"});const s=isNaN(e)?e:new Array(r).fill(null).map((()=>new zw(this)));return this.rows.splice(t,0,...s),this.maxRowLevel>0&&n.insertChildren(s,t-(n.index||-1)-1),this.indexRows(),this.clearCalculations(!0),s}deleteRows(t,e){const i=this.rows[t].parent;this.shift({index:t,offset:e,direction:"up"});const o=this.rows.splice(t,e);return i?.deleteChildren(o),this.indexRows(),this.clearCalculations(!0),o}moveRows(t,e,i){const o=this.rows.splice(t,e);return this.rows.splice(i,0,...o),this.shift({index:t,offset:i-t,direction:"down",maxIndex:t+e-1}),this.indexRows(),this.clearCalculations(!0),o}moveColumns(t,e,i){const o=this.columns.splice(t,e);return this.columns.splice(i,0,...o),this.shift({index:t,offset:i-t,direction:"right",maxIndex:t+e-1}),this.indexColumns(),this.clearCalculations(!0),o}spillValues(t){const{cell:e,values:i,displayValues:o,propertyCell:n}=t,r=[],s=[],a=0===i.length||0===i[0].length;let l,c;const h=a?null:new rv(e.c,e.r,e.c+i[0].length-1,e.r+i.length-1);if(e.spillRange&&this.getRangeIterator(e.spillRange,!0).forEach((t=>{e==t||h?.contains(t.range)||t.clearSpilledValue()})),e.spillRange=h,a)return{cells:r,oldValues:s,range:null};for(let t=h.r1;t<=h.r2;t++){if(l=this.rows[t],!l)continue;const a=t-h.r1;for(let t=h.c1;t<=h.c2;t++){const d=t-h.c1;c=l.cell(t),c.editable&&(s.push(c.value2),c.spillValue(i[a][d],e),n&&(c.format=n.format,c.type=n.type),o&&null!=o[a][d]&&(c.displayValue=o[a][d]),r.push(c))}}return{cells:r,oldValues:s,range:h}}getCellByName(t,e,i=!0){return this.names.getCellByName(t,e)||(this.group&&i?this.group.getCellByName(t,e):null)}getRangeByName(t,e=!0){return this.names.getRangeByName(t)||(this.group&&e?this.group.getRangeByName(t):null)}getValueMatrixByName(t,e=!0){const i=this.names.getRangeByName(t);return i?this.getValueMatrix(i):this.group&&e?this.group.getValueMatrixByName(t):null}rebuildRowTree(){const t=this._levelBasedRowTree?un:pn;this._maxRowLevel=t(this.rows,this.rowRoot,{reverse:this.options.rowTree.reversed}),this.indexRowsByTree()}rebuildColumnTree(){const t=this._levelBasedColTree?un:pn;this._maxColumnLevel=t(this.columns,this.colRoot,{reverse:this.options.columnTree.reversed}),this.indexColumns()}calculateCellOffset(t){let e=0,i=0;for(let i=0;i<t.c1&&this.columns[i];i++)e+=this.columns[i].width;for(let e=0;e<t.r1&&this.rows[e];e++)i+=this.rows[e].height;return{x:e,y:i}}}class Ww{get errors(){return this._errors}get(t){return this.models.get(t)}has(t){return this.models.has(t)}getNewName(){let t;do{t=`sheet${this._max}`}while(this.models.has(t));return t}add(t){if(t.index=t.index??this._max,++this._max,t.name=t.name||this.getNewName(),this.models.has(t.name))throw Error(`sheet "${t.name}" already exists`);return this.models.set(t.name,t),t.group=this,t}duplicate(t){const e=this.get(t);if(!e)return;const i=new Fw(e.getSourceData(),e.options);let o=1;for(;this.models.has(`${t}_${o}`);)++o;return i.name=`${t}_${o}`,this.add(i),i}remove(t){return this.models.delete(t),this}rename(t,e){if(this.has(t)){if(this.has(e))throw new Error(`Model '${e}' already exists`);const i=this.get(t);i.name=e,this.models.set(e,i),this.models.delete(t),this.models.forEach((i=>{i.calculations.renameSheet(t,e)&&i.calculateViewport()}))}return this}clear(){this.models.clear(),this._errors=[]}constructor(t){this._max=0,this.models=new Map,this.themes=new Map,this._errors=[],t&&this.populate(t)}populate(t){this.clear(),t.models.forEach((t=>{const e=new Fw(t);try{this.add(e)}catch(t){this.errors.push(t)}})),t.themes&&t.themes.forEach((t=>this.themes.set(t.name,t)))}getSourceData(){const t={models:[]};return this.models.forEach((e=>t.models.push(e.getSourceData()))),t}getCellByName(t,e){for(const i of this.models.values()){const o=i.getCellByName(t,e,!1);if(o)return o}return null}getRangeByName(t){for(const e of this.models.values()){const i=e.getRangeByName(t,!1);if(i)return i}return null}getValueMatrixByName(t){for(const e of this.models.values()){const i=e.getValueMatrixByName(t,!1);if(i)return i}return null}}class Uw{constructor(t){this.model=t,this.stack=[],this.restack=[]}push(t){return this.restack=[],t.timestamp||(t.timestamp=Date.now()),this.stack.push(t),this}pop(t=1){let e=0;const i=[];for(;e++<t&&this.stack.length>0;){const t=this.stack.pop();i.push(t),this.restack.push(t)}return i}pop2(t=1){let e=0;const i=[];for(;e++<t&&this.restack.length>0;){const t=this.restack.pop();i.push(t),this.stack.push(t)}return i}}class Gw{get activeCellCoords(){return{c:this.range.c1+this.activeCell.c1,r:this.range.r1+this.activeCell.r1}}constructor(t,e,i,o){this.hidden=!1,this.range=new rv(t,e,i,o),this.activeCell=new rv(0,0)}static fromRange(t){return new Gw(t.c1,t.r1,t.c2,t.r2)}setCoords(t,e,i,o){this.range.setCoords(t,e,i,o),this.activeCell.setCoords(0,0)}setRange(t){"string"==typeof t&&(t=rv.fromA1(t)),this.range.setCoords(t.c1,t.r1,t.c2,t.r2),this.activeCell.setCoords(0,0)}move(t,e,i,o){this.range.setCoords(this.range.c1+this.activeCell.c1,this.range.r1+this.activeCell.r1,this.range.c1+this.activeCell.c2,this.range.r1+this.activeCell.r2),this.range.move(t,e,i,o,!1),this.activeCell.setCoords(0,0)}moveRange(t,e,i,o){this.range.move(t,e,i,o,!0)}moveActiveCell(t,e){const{columns:i,rows:o}=this.range.size;this.activeCell.move(t,e,i,o,!0)}}const qw={...Nm,CUSTOM_CLIPBOARD_TYPE:"web application/json"};class Yw{constructor(t,e,i=qw.MAX_CACHE_ITEMS){this.maxCacheItems=i,this.queue=[],this.disabled=!1,this.table=new Array(e).fill(null).map((()=>new Array(t)))}get(t,e){return this.table[e][t]}delete(t,e){return this.table[e][t]=null,this}deleteColumn(t){for(let e=0;e<this.table.length;e++)this.table[e][t]=null;return this}deleteRow(t){return this.table[t]=new Array(this.table[0].length).fill(null),this}set(t,e,i){this.disabled||(this.get(t,e)||this.queue.push([e,t]),this.table[e][t]=i)}clear(){this.queue=[],this.table=this.table.map((t=>new Array(t.length)))}clean(){if(this.maxCacheItems>0&&this.queue.length>this.maxCacheItems){let t=this.queue.length;for(let e=0;e<this.queue.length;e++){const i=this.queue[e];if(!this.table[i[0]][i[1]].parentNode&&(this.queue[e]=null,this.table[i[0]][i[1]]=null,--t<=this.maxCacheItems))break}t<this.queue.length&&(this.queue=this.queue.filter((t=>t)))}}}var Zw=function(t,e,i,o){var n,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,o);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(r<3?n(s):r>3?n(e,i,s):n(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};let Xw=class extends Kr{constructor(){super(),this.render=()=>Hr`
2660
2660
  <og-icon id="filterIcon" .icon="${{icon:"filter"}}"></og-icon>
2661
2661
  <div class="text">${G(this.value)?Hr`
2662
2662
  <og-icon .icon="${this.value?"square-check":"square"}"></og-icon>
@@ -7927,4 +7927,4 @@ milkdown-block-handle {
7927
7927
  `:null}
7928
7928
  </div>
7929
7929
  </og-panel>
7930
- `:null,this.addEventListener("mousedown",(t=>t.stopPropagation()))}getTypeIndex(t){const e=this.types.findIndex((e=>e.type==t.type&&e.grouping==(t.grouping||"standard")));return e>-1?e:null}updateModel(){if(this.editTitle=!1,!this.model)return;this.titleInput&&(this.model.title=this.titleInput.value);const t=this.types[this.typeList.value];this.model.type=t.type,this.model.grouping=t.grouping,this.model.categoriesRange=this.categoryRangeInput?.value?rv.fromA1(this.categoryRangeInput.value):null,this.model.seriesRange=this.seriesRangeInput?.value?rv.fromA1(this.seriesRangeInput.value):null,this.model.dataRange=rv.fromA1(this.dataRangeInput.value),this.dispatchEvent(new Ln({value:this.model}))}async updated(){this.editTitle&&this.titleInput&&(await this.titleInput.updateComplete,this.titleInput.focus(),this.titleInput.selectAll())}};XE.styles=[YE],ZE([os({type:Object})],XE.prototype,"model",void 0),ZE([ns()],XE.prototype,"editTitle",void 0),ZE([ss("#title")],XE.prototype,"titleInput",void 0),ZE([ss("#type")],XE.prototype,"typeList",void 0),ZE([ss("#dataRange")],XE.prototype,"dataRangeInput",void 0),ZE([ss("#seriesRange")],XE.prototype,"seriesRangeInput",void 0),ZE([ss("#categoryRange")],XE.prototype,"categoryRangeInput",void 0),XE=ZE([ts("og-plugin-chart-form")],XE);const QE=ha().themes.get("dark");Object.assign(QE.definition,{"highcharts-title-font-size":"16px","highcharts-subtitle-font-size":"14px","highcharts-color-0":"#2caffe","highcharts-color-1":"#544fc5","highcharts-color-2":"#00e272","highcharts-color-3":"#fe6a35","highcharts-color-4":"#6b8abc","highcharts-color-5":"#d568fb","highcharts-color-6":"#2ee0ca","highcharts-color-7":"#fa4b42","highcharts-color-8":"#feb56a","highcharts-color-9":"#91e8e1","highcharts-background-color":"rgb(48, 48, 48)","highcharts-neutral-color-100":"rgb(255, 255, 255)","highcharts-neutral-color-80":"rgb(214, 214, 214)","highcharts-neutral-color-60":"rgb(173, 173, 173)","highcharts-neutral-color-40":"rgb(133, 133, 133)","highcharts-neutral-color-20":"rgb(92, 92, 92)","highcharts-neutral-color-10":"rgb(71, 71, 71)","highcharts-neutral-color-5":"rgb(61, 61, 61)","highcharts-neutral-color-3":"rgb(57, 57, 57)","highcharts-highlight-color-100":"rgb(122, 167, 255)","highcharts-highlight-color-80":"rgb(108, 144, 214)","highcharts-highlight-color-60":"rgb(94, 121, 173)","highcharts-highlight-color-20":"rgb(65, 74, 92)","highcharts-highlight-color-10":"rgb(58, 63, 71)"});const KE=ha().themes.get("light");Object.assign(KE.definition,{"highcharts-title-font-size":"16px","chart-background-color":"#2a2a2b","highcharts-color-0":"#2caffe","highcharts-color-1":"#544fc5","highcharts-color-2":"#00e272","highcharts-color-3":"#fe6a35","highcharts-color-4":"#6b8abc","highcharts-color-5":"#d568fb","highcharts-color-6":"#2ee0ca","highcharts-color-7":"#fa4b42","highcharts-color-8":"#feb56a","highcharts-color-9":"#91e8e1","highcharts-background-color":"#ffffff","highcharts-neutral-color-100":"#000000","highcharts-neutral-color-80":"#333333","highcharts-neutral-color-60":"#666666","highcharts-neutral-color-40":"#999999","highcharts-neutral-color-20":"#cccccc","highcharts-neutral-color-10":"#e6e6e6","highcharts-neutral-color-5":"#f2f2f2","highcharts-neutral-color-3":"#f7f7f7","highcharts-highlight-color-100":"#0022ff","highcharts-highlight-color-80":"#334eff","highcharts-highlight-color-60":"#667aff","highcharts-highlight-color-20":"#ccd3ff","highcharts-highlight-color-10":"#e6e9ff","highcharts-positive-color":"#06b535","highcharts-negative-color":"#f21313","highcharts-annotation-color-0":"rgba(130, 170, 255, 0.4)","highcharts-annotation-color-1":"rgba(139, 191, 216, 0.4)","highcharts-annotation-color-2":"rgba(150, 216, 192, 0.4)","highcharts-annotation-color-3":"rgba(156, 229, 161, 0.4)","highcharts-annotation-color-4":"rgba(162, 241, 130, 0.4)","highcharts-annotation-color-5":"rgba(169, 255, 101, 0.4)"});var JE=i(2439),tz=i(8022),ez=i(6158),iz=i(127),oz=i(4505),nz=i(8659),rz=i(397),sz=i(930),az=i(9723),lz=i(6343),cz=i(4582),hz=i(6127),dz=i(8238),uz=i(7362),pz=i(452),gz=i(5390),fz=i(3368),mz=i(6288),vz=i(7513),bz=i(1386),yz=i(5764),wz=i(1261),xz=i(3071),kz=i(3285),Cz=i(2356),Mz=i(6780),_z=i(8542),Sz=i(8385),Ez=i(1025),zz=i(2034),Lz=i(8113),Rz=i(1821),Iz=i(7212),Hz=i(2583),Tz=i(5360),Az=i(2377),Oz=i(2864),$z=i(7998),Dz=i(4101),Nz=i(7813),Pz=i(5037),jz=i(7005),Vz=i(9626),Bz=i(9517),Fz=i(1504),Wz=i(3838),Uz=i(4935),Gz=i(7699),qz=i(3322),Yz=i(5757),Zz=i(536),Xz=i(1673),Qz=i(8736),Kz=i(196),Jz=i(5133),tL=i(6092),eL=i(791),iL=i(5927),oL=i(1802),nL=i(9511),rL=i(6267),sL=i(1072),aL=i(4331),lL=i(8644),cL=i(2704),hL=i(2419),dL=i(6363),uL=i(5236),pL=i(3499),gL=i(3811),fL=i(1953),mL=i(4729),vL=i(8964),bL=i(8540),yL=i(8752),wL=i(8783),xL=i(8270),kL=i(7261),CL=i(9231),ML=i(4555),_L=i(5293),SL=i(6981),EL=i(5268),zL=i(2680),LL=i(789),RL=i(4373),IL=i(436),HL=i(8573),TL=i(1808),AL=i(3247),OL=i(5143),$L=i(2415),DL=i(2561),NL=i(5726),PL=i(7436),jL=i(4201),VL=i(8248),BL=i(6433),FL=i(2698),WL=i(979),UL=i(9358),GL=i(9176),qL=i(1239),YL=i(4218),ZL=i(8377),XL=i(3740),QL=i(5379),KL=i(9974),JL=i(8955),tR=i(3559),eR=i(809),iR=i(8014),oR=i(8265),nR=i(3300),rR=i(8724),sR=i(8033),aR=i(7700),lR=i(5741),cR=i(3478),hR=i(512),dR=i(9432),uR=i(2841),pR=i(75),gR=i(9256),fR=i(444),mR=i(5633),vR=i(3788),bR=i(3573),yR=i(9948),wR=i(1836),xR=i(7029),kR=i(8532),CR=i(6639),MR=i(1633),_R=i(9805),SR=i(2171),ER=i(875),zR=i(9595),LR=i(3894),RR=i(2803),IR=i(7765),HR=i(8804),TR=i(8654),AR=i(257),OR=i(5844),$R=i(9651),DR=i(760),NR=i(9518),PR=i(4585),jR=i(1769),VR=i(643),BR=i(5156),FR=i(822),WR=i(8249),UR=i(3434),GR=i(9314),qR=i(3093),YR=i(7721),ZR=i(588),XR=i(7645),QR=i(7148),KR=i(6795),JR=i(7047),tI=i(9428),eI=i(1879),iI=i(9779),oI=i(2476),nI=i(9648),rI=i(2896),sI=i(6817),aI=i(5196),lI=i(2762),cI=i(5981),hI=i(9014),dI=i(2611),uI=i(7946),pI=i(6301),gI=i(8020),fI=i(3987),mI=i(3192),vI=i(8796),bI=i(2489),yI=i(7324),wI=i(6069),xI=i(4155),kI=i(6977),CI=i(8055),MI=i(2653),_I=i(9492),SI=i(4334),EI=i(6804),zI=i(9954),LI=i(2211),RI=i(5211),II=i(1519),HI=i(6204),TI=i(5501),AI=i(5244),OI=i(9742),$I=i(1552),DI=i(1330),NI=i(2596),PI=i(5184),jI=i(7675),VI=i(1513),BI=i(9396),FI=i(7673),WI=i(244),UI=i(1187),GI=i(1736),qI=i(4390),YI=i(7106),ZI=i(2096),XI=i(9991),QI=i(5629),KI=i(3386),JI=i(6651),tH=i(1684),eH=i(3849),iH=i(2582),oH=i(8569),nH=i(2955),rH=i(9100),sH=i(7381),aH=i(9190),lH=i(4071),cH=i(8e3),hH=i(4633),dH=i(4374),uH=i(486),pH=i(3680),gH=i(9999),fH=i(2830),mH=i(5255),vH=i(6021),bH=i(2214),yH=i(8497),wH=i(2052),xH=i(5327),kH=i(8701);const CH=[JE.w2,tz.Jt,ez.Xk,iz.Wz,oz.UR,nz.mR,rz.cb,sz.td,az.GF,cz.xB,lz.S$,hz.Ot,dz.fU,uz.Vp,pz.HV,gz.BH,fz.Dn,mz.hy,vz.IP,bz.Nf,yz.jP,wz.AP,xz._X,kz.mu,Cz.LB,Mz.hS,_z.l5,Sz.SI,Ez.ch,Lz._u,Rz.ec,Iz.jb,Hz.cW,Tz.$f,Az.qI,Oz.j3,$z.fq,Dz.ao,Nz.Uj,Pz.GE,jz.QR,Vz.DQ,Fz.lE,Bz.mE,Wz.hp,Uz.yL,Gz.ub,qz.lL,Yz.IN,Zz.B0,Xz.Ce,Qz.dm,Kz.h0,Jz.sx,tL.HF,eL.qf,oL.jw,nL.k8,rL.Am,sL.ff,aL.s6,lL.bx,cL.pS,hL.k6,dL.q9,uL.$F,pL.gK,gL.W1,fL.QL,mL.EZ,vL.DN,bL.Jy,yL.z1,wL.Gl,xL.n2,iL.Ew,kL.QL,CL.ck,ML.I2,_L.Qv,SL.CK,EL.bn,zL.bx,LL.e6,RL.yy,IL.xg,HL.AJ,TL.py,AL.I0,OL.id,$L.qp,DL.UX,NL.PA,PL.B2,jL.It,VL.PZ,BL.aG,FL.$U,WL.S9,UL.Nb,GL.Z4,qL.qz,YL.jw,ZL.cd,XL.jR,QL.qt,KL.x7,JL.oE,tR.ad,eR.IT,iR.Ts,oR.UN,nR.jb,rR.jT,sR.w9,aR.Jm,lR.CQ,zz.$6,cR.Dw,hR.nx,dR.w2,uR.Jt,pR.Xk,gR.Wz,fR.UR,mR.mR,vR.cb,bR.td,yR.GF,xR.xB,wR.S$,CR.fU,kR.Ot,MR.Vp,_R.HV,SR.BH,ER.Dn,zR.hy,LR.IP,RR.Nf,IR.jP,HR.AP,DR._X,NR.mu,PR.LB,jR.hS,VR.l5,BR.SI,FR.ch,UR._u,GR.ec,qR.jb,KR.cW,JR.$f,tI.qI,eI.j3,iI.fq,oI.ao,nI.Uj,rI.GE,TR.QR,AR.DQ,$R.lE,OR.mE,sI.hp,aI.yL,lI.ub,cI.lL,hI.IN,dI.B0,uI.Ce,pI.dm,YR.h0,ZR.sx,XR.HF,QR.qf,fI.jw,mI.k8,vI.Am,bI.ff,yI.s6,wI.bx,xI.pS,kI.k6,CI.q9,MI.$F,_I.gK,SI.W1,EI.QL,zI.EZ,LI.DN,RI.Jy,II.z1,HI.Gl,TI.n2,gI.Ew,AI.QL,OI.ck,$I.I2,DI.Qv,NI.CK,PI.bn,jI.bx,VI.e6,BI.yy,FI.xg,WI.AJ,UI.py,GI.I0,qI.id,YI.qp,ZI.UX,XI.PA,QI.B2,KI.It,JI.PZ,tH.aG,eH.$U,iH.S9,oH.Nb,nH.Z4,rH.qz,sH.jw,aH.cd,lH.jR,cH.qt,hH.x7,dH.oE,uH.ad,pH.IT,gH.Ts,fH.UN,mH.jb,vH.jT,bH.w9,yH.Jm,wH.CQ,WR.$6,xH.Dw,kH.nx],MH={xlsx:P,charts:j},_H={name:"@omegagrid/bundle",version:"0.6.15"};ha().activate("light"),Rh.styleDefault="fal",Ih.add(...CH)})(),window.Omegagrid=o})();
7930
+ `:null,this.addEventListener("mousedown",(t=>t.stopPropagation()))}getTypeIndex(t){const e=this.types.findIndex((e=>e.type==t.type&&e.grouping==(t.grouping||"standard")));return e>-1?e:null}updateModel(){if(this.editTitle=!1,!this.model)return;this.titleInput&&(this.model.title=this.titleInput.value);const t=this.types[this.typeList.value];this.model.type=t.type,this.model.grouping=t.grouping,this.model.categoriesRange=this.categoryRangeInput?.value?rv.fromA1(this.categoryRangeInput.value):null,this.model.seriesRange=this.seriesRangeInput?.value?rv.fromA1(this.seriesRangeInput.value):null,this.model.dataRange=rv.fromA1(this.dataRangeInput.value),this.dispatchEvent(new Ln({value:this.model}))}async updated(){this.editTitle&&this.titleInput&&(await this.titleInput.updateComplete,this.titleInput.focus(),this.titleInput.selectAll())}};XE.styles=[YE],ZE([os({type:Object})],XE.prototype,"model",void 0),ZE([ns()],XE.prototype,"editTitle",void 0),ZE([ss("#title")],XE.prototype,"titleInput",void 0),ZE([ss("#type")],XE.prototype,"typeList",void 0),ZE([ss("#dataRange")],XE.prototype,"dataRangeInput",void 0),ZE([ss("#seriesRange")],XE.prototype,"seriesRangeInput",void 0),ZE([ss("#categoryRange")],XE.prototype,"categoryRangeInput",void 0),XE=ZE([ts("og-plugin-chart-form")],XE);const QE=ha().themes.get("dark");Object.assign(QE.definition,{"highcharts-title-font-size":"16px","highcharts-subtitle-font-size":"14px","highcharts-color-0":"#2caffe","highcharts-color-1":"#544fc5","highcharts-color-2":"#00e272","highcharts-color-3":"#fe6a35","highcharts-color-4":"#6b8abc","highcharts-color-5":"#d568fb","highcharts-color-6":"#2ee0ca","highcharts-color-7":"#fa4b42","highcharts-color-8":"#feb56a","highcharts-color-9":"#91e8e1","highcharts-background-color":"rgb(48, 48, 48)","highcharts-neutral-color-100":"rgb(255, 255, 255)","highcharts-neutral-color-80":"rgb(214, 214, 214)","highcharts-neutral-color-60":"rgb(173, 173, 173)","highcharts-neutral-color-40":"rgb(133, 133, 133)","highcharts-neutral-color-20":"rgb(92, 92, 92)","highcharts-neutral-color-10":"rgb(71, 71, 71)","highcharts-neutral-color-5":"rgb(61, 61, 61)","highcharts-neutral-color-3":"rgb(57, 57, 57)","highcharts-highlight-color-100":"rgb(122, 167, 255)","highcharts-highlight-color-80":"rgb(108, 144, 214)","highcharts-highlight-color-60":"rgb(94, 121, 173)","highcharts-highlight-color-20":"rgb(65, 74, 92)","highcharts-highlight-color-10":"rgb(58, 63, 71)"});const KE=ha().themes.get("light");Object.assign(KE.definition,{"highcharts-title-font-size":"16px","chart-background-color":"#2a2a2b","highcharts-color-0":"#2caffe","highcharts-color-1":"#544fc5","highcharts-color-2":"#00e272","highcharts-color-3":"#fe6a35","highcharts-color-4":"#6b8abc","highcharts-color-5":"#d568fb","highcharts-color-6":"#2ee0ca","highcharts-color-7":"#fa4b42","highcharts-color-8":"#feb56a","highcharts-color-9":"#91e8e1","highcharts-background-color":"#ffffff","highcharts-neutral-color-100":"#000000","highcharts-neutral-color-80":"#333333","highcharts-neutral-color-60":"#666666","highcharts-neutral-color-40":"#999999","highcharts-neutral-color-20":"#cccccc","highcharts-neutral-color-10":"#e6e6e6","highcharts-neutral-color-5":"#f2f2f2","highcharts-neutral-color-3":"#f7f7f7","highcharts-highlight-color-100":"#0022ff","highcharts-highlight-color-80":"#334eff","highcharts-highlight-color-60":"#667aff","highcharts-highlight-color-20":"#ccd3ff","highcharts-highlight-color-10":"#e6e9ff","highcharts-positive-color":"#06b535","highcharts-negative-color":"#f21313","highcharts-annotation-color-0":"rgba(130, 170, 255, 0.4)","highcharts-annotation-color-1":"rgba(139, 191, 216, 0.4)","highcharts-annotation-color-2":"rgba(150, 216, 192, 0.4)","highcharts-annotation-color-3":"rgba(156, 229, 161, 0.4)","highcharts-annotation-color-4":"rgba(162, 241, 130, 0.4)","highcharts-annotation-color-5":"rgba(169, 255, 101, 0.4)"});var JE=i(2439),tz=i(8022),ez=i(6158),iz=i(127),oz=i(4505),nz=i(8659),rz=i(397),sz=i(930),az=i(9723),lz=i(6343),cz=i(4582),hz=i(6127),dz=i(8238),uz=i(7362),pz=i(452),gz=i(5390),fz=i(3368),mz=i(6288),vz=i(7513),bz=i(1386),yz=i(5764),wz=i(1261),xz=i(3071),kz=i(3285),Cz=i(2356),Mz=i(6780),_z=i(8542),Sz=i(8385),Ez=i(1025),zz=i(2034),Lz=i(8113),Rz=i(1821),Iz=i(7212),Hz=i(2583),Tz=i(5360),Az=i(2377),Oz=i(2864),$z=i(7998),Dz=i(4101),Nz=i(7813),Pz=i(5037),jz=i(7005),Vz=i(9626),Bz=i(9517),Fz=i(1504),Wz=i(3838),Uz=i(4935),Gz=i(7699),qz=i(3322),Yz=i(5757),Zz=i(536),Xz=i(1673),Qz=i(8736),Kz=i(196),Jz=i(5133),tL=i(6092),eL=i(791),iL=i(5927),oL=i(1802),nL=i(9511),rL=i(6267),sL=i(1072),aL=i(4331),lL=i(8644),cL=i(2704),hL=i(2419),dL=i(6363),uL=i(5236),pL=i(3499),gL=i(3811),fL=i(1953),mL=i(4729),vL=i(8964),bL=i(8540),yL=i(8752),wL=i(8783),xL=i(8270),kL=i(7261),CL=i(9231),ML=i(4555),_L=i(5293),SL=i(6981),EL=i(5268),zL=i(2680),LL=i(789),RL=i(4373),IL=i(436),HL=i(8573),TL=i(1808),AL=i(3247),OL=i(5143),$L=i(2415),DL=i(2561),NL=i(5726),PL=i(7436),jL=i(4201),VL=i(8248),BL=i(6433),FL=i(2698),WL=i(979),UL=i(9358),GL=i(9176),qL=i(1239),YL=i(4218),ZL=i(8377),XL=i(3740),QL=i(5379),KL=i(9974),JL=i(8955),tR=i(3559),eR=i(809),iR=i(8014),oR=i(8265),nR=i(3300),rR=i(8724),sR=i(8033),aR=i(7700),lR=i(5741),cR=i(3478),hR=i(512),dR=i(9432),uR=i(2841),pR=i(75),gR=i(9256),fR=i(444),mR=i(5633),vR=i(3788),bR=i(3573),yR=i(9948),wR=i(1836),xR=i(7029),kR=i(8532),CR=i(6639),MR=i(1633),_R=i(9805),SR=i(2171),ER=i(875),zR=i(9595),LR=i(3894),RR=i(2803),IR=i(7765),HR=i(8804),TR=i(8654),AR=i(257),OR=i(5844),$R=i(9651),DR=i(760),NR=i(9518),PR=i(4585),jR=i(1769),VR=i(643),BR=i(5156),FR=i(822),WR=i(8249),UR=i(3434),GR=i(9314),qR=i(3093),YR=i(7721),ZR=i(588),XR=i(7645),QR=i(7148),KR=i(6795),JR=i(7047),tI=i(9428),eI=i(1879),iI=i(9779),oI=i(2476),nI=i(9648),rI=i(2896),sI=i(6817),aI=i(5196),lI=i(2762),cI=i(5981),hI=i(9014),dI=i(2611),uI=i(7946),pI=i(6301),gI=i(8020),fI=i(3987),mI=i(3192),vI=i(8796),bI=i(2489),yI=i(7324),wI=i(6069),xI=i(4155),kI=i(6977),CI=i(8055),MI=i(2653),_I=i(9492),SI=i(4334),EI=i(6804),zI=i(9954),LI=i(2211),RI=i(5211),II=i(1519),HI=i(6204),TI=i(5501),AI=i(5244),OI=i(9742),$I=i(1552),DI=i(1330),NI=i(2596),PI=i(5184),jI=i(7675),VI=i(1513),BI=i(9396),FI=i(7673),WI=i(244),UI=i(1187),GI=i(1736),qI=i(4390),YI=i(7106),ZI=i(2096),XI=i(9991),QI=i(5629),KI=i(3386),JI=i(6651),tH=i(1684),eH=i(3849),iH=i(2582),oH=i(8569),nH=i(2955),rH=i(9100),sH=i(7381),aH=i(9190),lH=i(4071),cH=i(8e3),hH=i(4633),dH=i(4374),uH=i(486),pH=i(3680),gH=i(9999),fH=i(2830),mH=i(5255),vH=i(6021),bH=i(2214),yH=i(8497),wH=i(2052),xH=i(5327),kH=i(8701);const CH=[JE.w2,tz.Jt,ez.Xk,iz.Wz,oz.UR,nz.mR,rz.cb,sz.td,az.GF,cz.xB,lz.S$,hz.Ot,dz.fU,uz.Vp,pz.HV,gz.BH,fz.Dn,mz.hy,vz.IP,bz.Nf,yz.jP,wz.AP,xz._X,kz.mu,Cz.LB,Mz.hS,_z.l5,Sz.SI,Ez.ch,Lz._u,Rz.ec,Iz.jb,Hz.cW,Tz.$f,Az.qI,Oz.j3,$z.fq,Dz.ao,Nz.Uj,Pz.GE,jz.QR,Vz.DQ,Fz.lE,Bz.mE,Wz.hp,Uz.yL,Gz.ub,qz.lL,Yz.IN,Zz.B0,Xz.Ce,Qz.dm,Kz.h0,Jz.sx,tL.HF,eL.qf,oL.jw,nL.k8,rL.Am,sL.ff,aL.s6,lL.bx,cL.pS,hL.k6,dL.q9,uL.$F,pL.gK,gL.W1,fL.QL,mL.EZ,vL.DN,bL.Jy,yL.z1,wL.Gl,xL.n2,iL.Ew,kL.QL,CL.ck,ML.I2,_L.Qv,SL.CK,EL.bn,zL.bx,LL.e6,RL.yy,IL.xg,HL.AJ,TL.py,AL.I0,OL.id,$L.qp,DL.UX,NL.PA,PL.B2,jL.It,VL.PZ,BL.aG,FL.$U,WL.S9,UL.Nb,GL.Z4,qL.qz,YL.jw,ZL.cd,XL.jR,QL.qt,KL.x7,JL.oE,tR.ad,eR.IT,iR.Ts,oR.UN,nR.jb,rR.jT,sR.w9,aR.Jm,lR.CQ,zz.$6,cR.Dw,hR.nx,dR.w2,uR.Jt,pR.Xk,gR.Wz,fR.UR,mR.mR,vR.cb,bR.td,yR.GF,xR.xB,wR.S$,CR.fU,kR.Ot,MR.Vp,_R.HV,SR.BH,ER.Dn,zR.hy,LR.IP,RR.Nf,IR.jP,HR.AP,DR._X,NR.mu,PR.LB,jR.hS,VR.l5,BR.SI,FR.ch,UR._u,GR.ec,qR.jb,KR.cW,JR.$f,tI.qI,eI.j3,iI.fq,oI.ao,nI.Uj,rI.GE,TR.QR,AR.DQ,$R.lE,OR.mE,sI.hp,aI.yL,lI.ub,cI.lL,hI.IN,dI.B0,uI.Ce,pI.dm,YR.h0,ZR.sx,XR.HF,QR.qf,fI.jw,mI.k8,vI.Am,bI.ff,yI.s6,wI.bx,xI.pS,kI.k6,CI.q9,MI.$F,_I.gK,SI.W1,EI.QL,zI.EZ,LI.DN,RI.Jy,II.z1,HI.Gl,TI.n2,gI.Ew,AI.QL,OI.ck,$I.I2,DI.Qv,NI.CK,PI.bn,jI.bx,VI.e6,BI.yy,FI.xg,WI.AJ,UI.py,GI.I0,qI.id,YI.qp,ZI.UX,XI.PA,QI.B2,KI.It,JI.PZ,tH.aG,eH.$U,iH.S9,oH.Nb,nH.Z4,rH.qz,sH.jw,aH.cd,lH.jR,cH.qt,hH.x7,dH.oE,uH.ad,pH.IT,gH.Ts,fH.UN,mH.jb,vH.jT,bH.w9,yH.Jm,wH.CQ,WR.$6,xH.Dw,kH.nx],MH={xlsx:P,charts:j},_H={name:"@omegagrid/bundle",version:"0.6.16"};ha().activate("light"),Rh.styleDefault="fal",Ih.add(...CH)})(),window.Omegagrid=o})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/bundle",
3
- "version": "0.6.15",
3
+ "version": "0.6.16",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Distribution package for Omegagrid library",
6
6
  "main": "omegagrid.js",
@@ -19,23 +19,23 @@
19
19
  "@fortawesome/fontawesome-svg-core": "6.4.2",
20
20
  "@fortawesome/pro-light-svg-icons": "6.4.2",
21
21
  "@fortawesome/pro-solid-svg-icons": "6.4.2",
22
- "@omegagrid/bucket": "^0.6.15",
23
- "@omegagrid/calendar": "^0.6.15",
24
- "@omegagrid/code": "^0.6.15",
25
- "@omegagrid/commands": "^0.6.15",
26
- "@omegagrid/core": "^0.6.15",
27
- "@omegagrid/dialog": "^0.6.15",
28
- "@omegagrid/editor": "^0.6.15",
29
- "@omegagrid/form": "^0.6.15",
30
- "@omegagrid/grid": "^0.6.15",
31
- "@omegagrid/localize": "^0.6.15",
32
- "@omegagrid/markdown": "^0.6.15",
33
- "@omegagrid/plugin-charts": "^0.6.15",
34
- "@omegagrid/plugin-xlsx": "^0.6.15",
35
- "@omegagrid/statusbar": "^0.6.15",
36
- "@omegagrid/tabs": "^0.6.15",
37
- "@omegagrid/toolbar": "^0.6.15",
38
- "@omegagrid/tree": "^0.6.15",
22
+ "@omegagrid/bucket": "^0.6.16",
23
+ "@omegagrid/calendar": "^0.6.16",
24
+ "@omegagrid/code": "^0.6.16",
25
+ "@omegagrid/commands": "^0.6.16",
26
+ "@omegagrid/core": "^0.6.16",
27
+ "@omegagrid/dialog": "^0.6.16",
28
+ "@omegagrid/editor": "^0.6.16",
29
+ "@omegagrid/form": "^0.6.16",
30
+ "@omegagrid/grid": "^0.6.16",
31
+ "@omegagrid/localize": "^0.6.16",
32
+ "@omegagrid/markdown": "^0.6.16",
33
+ "@omegagrid/plugin-charts": "^0.6.16",
34
+ "@omegagrid/plugin-xlsx": "^0.6.16",
35
+ "@omegagrid/statusbar": "^0.6.16",
36
+ "@omegagrid/tabs": "^0.6.16",
37
+ "@omegagrid/toolbar": "^0.6.16",
38
+ "@omegagrid/tree": "^0.6.16",
39
39
  "lit": "^3.1.1"
40
40
  },
41
41
  "devDependencies": {