@univerjs/sheets-table 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +7 -7
- package/lib/types/model/filter-util/condition.d.ts +0 -27
- package/lib/types/model/filter-util/date-filter-util.d.ts +0 -225
- package/lib/types/model/filter-util/number-filter-util.d.ts +0 -47
- package/lib/types/model/filter-util/text-filter-util.d.ts +0 -23
- package/lib/types/model/filter-util/top-n.d.ts +0 -29
- package/lib/types/model/table-column.d.ts +0 -39
- package/lib/types/model/table-filter.d.ts +0 -42
- package/lib/types/model/table-manager.d.ts +0 -97
- package/lib/types/model/table.d.ts +0 -96
package/lib/cjs/index.js
CHANGED
|
@@ -3925,7 +3925,7 @@ SheetsTableThemeController = __decorate([
|
|
|
3925
3925
|
//#endregion
|
|
3926
3926
|
//#region package.json
|
|
3927
3927
|
var name = "@univerjs/sheets-table";
|
|
3928
|
-
var version = "1.0.
|
|
3928
|
+
var version = "1.0.1";
|
|
3929
3929
|
|
|
3930
3930
|
//#endregion
|
|
3931
3931
|
//#region src/controllers/sheet-table-formula.controller.ts
|
package/lib/es/index.js
CHANGED
|
@@ -3924,7 +3924,7 @@ SheetsTableThemeController = __decorate([
|
|
|
3924
3924
|
//#endregion
|
|
3925
3925
|
//#region package.json
|
|
3926
3926
|
var name = "@univerjs/sheets-table";
|
|
3927
|
-
var version = "1.0.
|
|
3927
|
+
var version = "1.0.1";
|
|
3928
3928
|
|
|
3929
3929
|
//#endregion
|
|
3930
3930
|
//#region src/controllers/sheet-table-formula.controller.ts
|
package/lib/index.js
CHANGED
|
@@ -3924,7 +3924,7 @@ SheetsTableThemeController = __decorate([
|
|
|
3924
3924
|
//#endregion
|
|
3925
3925
|
//#region package.json
|
|
3926
3926
|
var name = "@univerjs/sheets-table";
|
|
3927
|
-
var version = "1.0.
|
|
3927
|
+
var version = "1.0.1";
|
|
3928
3928
|
|
|
3929
3929
|
//#endregion
|
|
3930
3930
|
//#region src/controllers/sheet-table-formula.controller.ts
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-formula`,`@univerjs/sheets`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsTable={},e.UniverCore,e.UniverEngineFormula,e.UniverSheets,e.rxjs))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=function(e){return e.None=`none`,e.String=`string`,e.Number=`number`,e.Date=`date`,e.Bool=`bool`,e.Checkbox=`checkbox`,e.List=`list`,e}({}),o=function(e){return e.manual=`manual`,e.condition=`condition`,e.color=`color`,e.record=`record`,e}({}),s=function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),c=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.GreaterThan=`greaterThan`,e.GreaterThanOrEqual=`greaterThanOrEqual`,e.LessThan=`lessThan`,e.LessThanOrEqual=`lessThanOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Above=`above`,e.Below=`below`,e.TopN=`topN`,e}({}),l=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),u=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.After=`after`,e.AfterOrEqual=`afterOrEqual`,e.Before=`before`,e.BeforeOrEqual=`beforeOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Today=`today`,e.Yesterday=`yesterday`,e.Tomorrow=`tomorrow`,e.ThisWeek=`thisWeek`,e.LastWeek=`lastWeek`,e.NextWeek=`nextWeek`,e.ThisMonth=`thisMonth`,e.LastMonth=`lastMonth`,e.NextMonth=`nextMonth`,e.ThisQuarter=`thisQuarter`,e.LastQuarter=`lastQuarter`,e.NextQuarter=`nextQuarter`,e.ThisYear=`thisYear`,e.LastYear=`lastYear`,e.NextYear=`nextYear`,e.YearToDate=`yearToDate`,e.Quarter=`quarter`,e.Month=`month`,e.M1=`m1`,e.M2=`m2`,e.M3=`m3`,e.M4=`m4`,e.M5=`m5`,e.M6=`m6`,e.M7=`m7`,e.M8=`m8`,e.M9=`m9`,e.M10=`m10`,e.M11=`m11`,e.M12=`m12`,e.Q1=`q1`,e.Q2=`q2`,e.Q3=`q3`,e.Q4=`q4`,e}({}),d=function(e){return e[e.FilteredSortNone=1]=`FilteredSortNone`,e[e.FilteredSortAsc=2]=`FilteredSortAsc`,e[e.FilteredSortDesc=3]=`FilteredSortDesc`,e[e.FilterNoneSortNone=4]=`FilterNoneSortNone`,e[e.FilterNoneSortAsc=5]=`FilterNoneSortAsc`,e[e.FilterNoneSortDesc=6]=`FilterNoneSortDesc`,e}({}),f=function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function p(e,t){return`${t} ${e}`}let m=`TRUE`,h=`FALSE`,g=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function _(e){if(e){let{v:n,t:r,p:i}=e;return i?g(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?m:h:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?m:h:n==null?``:String(n)}return``}function v(e,t){if(e!=null)switch(t){case`asc`:return 2;case`desc`:return 3;default:return 1}else switch(t){case`asc`:return 5;case`desc`:return 6;default:return 4}}function y(e){return e?e.filterType===`condition`:!1}function b(e){return e?e.filterType===`manual`:!1}function x(e){return e?e.filterType===`color`:!1}function S(e){return e?e.filterType===`record`:!1}function C(e,n){let{univerInstanceService:r,tableManager:i,definedNamesService:a}=n,o=new Set,s=r==null?void 0:r.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);s&&s.getSheets().forEach(e=>{o.add(e.getName().toLowerCase())});let c=i==null?void 0:i.getTableList(e);c&&c.length>0&&c.forEach(e=>{o.add(e.name.toLowerCase())});let l=a==null?void 0:a.getDefinedNameMap(e);return l&&Object.values(l).forEach(e=>{o.add(e.name.toLowerCase())}),o}let w={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},T={},ee={headerRowStyle:{bd:{t:w}},headerColumnStyle:{bd:{l:w}},lastColumnStyle:{bd:{r:w}},lastRowStyle:{bd:{b:w}}},te=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:w}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:w}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:w}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:w}};return t},ne=[[[`#6280F9`,`#FFFFFF`,`#EEF2FF`,`#DCE4FF`],[`#fff`]],[[`#16BDCA`,`#FFFFFF`,`#EDFAFA`,`#AFECEF`],[`#000`]],[[`#31C48D`,`#FFFFFF`,`#F3FAF7`,`#BCF0DA`],[`#fff`]],[[`#AC94FA`,`#FFFFFF`,`#F6F5FF`,`#EDEBFE`],[`#fff`]],[[`#F17EBB`,`#FFFFFF`,`#FDF2F8`,`#FCE8F3`],[`#fff`]],[[`#F98080`,`#FFFFFF`,`#FDF2F2`,`#FDE8E8`],[`#fff`]]].map((e,t)=>{let[n,r]=e,[i,a,o,s]=n,[c]=r;return{name:`table-default-${t}`,style:{headerRowStyle:{bg:{rgb:i},cl:{rgb:c},bd:{t:w}},headerColumnStyle:{bd:{l:w}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:w}},lastColumnStyle:{bd:{r:w}}}}});function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function re(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ie(e){var t=re(e,`string`);return E(t)==`symbol`?t:t+``}function D(e,t,n){return(t=ie(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=class{constructor(e,t){D(this,`dataType`,void 0),D(this,`id`,void 0),D(this,`displayName`,void 0),D(this,`formula`,void 0),D(this,`formulaIsArray`,void 0),D(this,`totalsRowLabel`,void 0),D(this,`totalsRowFunction`,void 0),D(this,`totalsRowFormula`,void 0),D(this,`showFilterButton`,void 0),D(this,`meta`,void 0),D(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=`string`,this.formula=``,this.showFilterButton=!0,this.meta={},this.style={}}getMeta(){return this.meta}setMeta(e){this.meta=e}getDisplayName(){return this.displayName}toJSON(){return{id:this.id,displayName:this.displayName,dataType:this.dataType,formula:this.formula,formulaIsArray:this.formulaIsArray,totalsRowLabel:this.totalsRowLabel,totalsRowFunction:this.totalsRowFunction,totalsRowFormula:this.totalsRowFormula,showFilterButton:this.showFilterButton,meta:this.meta,style:this.style}}fromJSON(e){this.id=e.id,this.displayName=e.displayName,this.dataType=e.dataType,this.formula=e.formula,this.formulaIsArray=e.formulaIsArray,this.totalsRowLabel=e.totalsRowLabel,this.totalsRowFunction=e.totalsRowFunction,this.totalsRowFormula=e.totalsRowFormula,this.showFilterButton=e.showFilterButton??!0,this.meta=e.meta,this.style=e.style}isShowFilterButton(){return this.showFilterButton}};let ae=`SHEET_TABLE_PLUGIN`,k=`SHEET_TABLE`,oe=`table-custom`,se=`__UNIVER_TABLE_FILTER_EMPTY__`,ce=e=>e.getMonth()<=2,le=e=>{let t=e.getMonth();return t>2&&t<=5},ue=e=>{let t=e.getMonth();return t>5&&t<=8},de=e=>{let t=e.getMonth();return t>8&&t<=11},fe=e=>e.getMonth()===0,pe=e=>e.getMonth()===1,me=e=>e.getMonth()===2,he=e=>e.getMonth()===3,ge=e=>e.getMonth()===4,_e=e=>e.getMonth()===5,ve=e=>e.getMonth()===6,ye=e=>e.getMonth()===7,be=e=>e.getMonth()===8,xe=e=>e.getMonth()===9,Se=e=>e.getMonth()===10,Ce=e=>e.getMonth()===11,we=(e,t=new Date)=>e.toDateString()===t.toDateString(),Te=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},Ee=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()-1),e.toDateString()===n.toDateString()},A=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1),r=new Date(e);return r.setDate(n),r},De=6048e5,Oe=(e,t=new Date)=>{let n=A(e),r=A(t);return n.toDateString()===r.toDateString()},ke=(e,t=new Date)=>{let n=A(e),r=new Date(A(t).getTime()+De);return n.toDateString()===r.toDateString()},Ae=(e,t=new Date)=>{let n=A(e),r=new Date(A(t).getTime()-De);return n.toDateString()===r.toDateString()},je=(e,t=new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),Me=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},Ne=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(n.getMonth()+1,1);let r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Pe=(e,t=new Date)=>{let n=Me(t),r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},j=e=>{let t=new Date(e);t.setHours(0,0,0,0),t.setDate(1);let n=t.getMonth();return t.setMonth(n-n%3),t},Fe=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Ie=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=new Date(r);i.setMonth(i.getMonth()+3,0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Le=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()-3);let i=new Date(n);i.setDate(0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Re=(e,t=new Date)=>e.getFullYear()===t.getFullYear(),ze=(e,t=new Date)=>e.getFullYear()===t.getFullYear()+1,Be=(e,t=new Date)=>e.getFullYear()===t.getFullYear()-1,Ve=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(0,1);let r=e.getTime();return r>=n.getTime()&&r<t.getTime()};function He(e){switch(e.compareType){case`equal`:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case`notEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case`after`:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case`before`:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case`afterOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case`beforeOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case`between`:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case`notBetween`:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case`today`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>we(e,t)}case`yesterday`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ee(e,t)}case`tomorrow`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Te(e,t)}case`thisWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Oe(e,t)}case`lastWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ae(e,t)}case`nextWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ke(e,t)}case`thisMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>je(e,t)}case`lastMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Pe(e,t)}case`nextMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ne(e,t)}case`thisQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Fe(e,t)}case`lastQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Le(e,t)}case`nextQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ie(e,t)}case`thisYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Re(e,t)}case`lastYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Be(e,t)}case`nextYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ze(e,t)}case`yearToDate`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ve(e,t)}case`m1`:return fe;case`m2`:return pe;case`m3`:return me;case`m4`:return he;case`m5`:return ge;case`m6`:return _e;case`m7`:return ve;case`m8`:return ye;case`m9`:return be;case`m10`:return xe;case`m11`:return Se;case`m12`:return Ce;case`q1`:return ce;case`q2`:return le;case`q3`:return ue;case`q4`:return de;default:throw Error(`Unsupported compare type`)}}var Ue=class{constructor(){D(this,`heap`,void 0),this.heap=[]}swap(e,t){let n=this.heap[e];this.heap[e]=this.heap[t],this.heap[t]=n}getParentIndex(e){return Math.floor((e-1)/2)}getLeftIndex(e){return e*2+1}getRightIndex(e){return e*2+2}size(){return this.heap.length}peek(){return this.heap[0]}include(e){return this.heap.includes(e)}},We=class extends Ue{constructor(){super()}shiftUp(e){if(e===0)return;let t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){let t=this.getLeftIndex(e),n=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[n]<this.heap[e]&&(this.swap(n,e),this.shiftDown(n))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}};let Ge=(e,t)=>{let n=new We;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},Ke=(e,t)=>e>t,qe=(e,t)=>e<t,Je=(e,t,n)=>Ge(e,t).includes(n);function Ye(e,t){switch(e.compareType){case`equal`:{let t=Number(e.expectedValue);return e=>e===t}case`notEqual`:{let t=Number(e.expectedValue);return e=>e!==t}case`greaterThan`:{let t=Number(e.expectedValue);return e=>e>t}case`greaterThanOrEqual`:{let t=Number(e.expectedValue);return e=>e>=t}case`lessThan`:{let t=Number(e.expectedValue);return e=>e<t}case`lessThanOrEqual`:{let t=Number(e.expectedValue);return e=>e<=t}case`between`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e>=i&&e<=r:e=>e>=r&&e<=i}case`notBetween`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e<i||e>r:e=>e<r||e>i}case`above`:{let e=t.average;return t=>Ke(t,e)}case`below`:{let e=t.average;return t=>qe(t,e)}case`topN`:{let n=t.list,r=Number(e.expectedValue);return e=>Je(n,r,e)}}}let Xe=(e,n)=>t.regexp.createFromWildcard(n).test(e),Ze=(e,n)=>!t.regexp.createFromWildcard(n).test(e),Qe=(e,n)=>t.regexp.createFromWildcard(`*${n}*`).test(e),$e=(e,n)=>!t.regexp.createFromWildcard(`*${n}*`).test(e),et=(e,n)=>t.regexp.createFromWildcard(`${n}*`).test(e),tt=(e,n)=>t.regexp.createFromWildcard(`*${n}`).test(e);function nt(e){switch(e.compareType){case`equal`:return t=>Xe(t,e.expectedValue);case`notEqual`:return t=>Ze(t,e.expectedValue);case`contains`:return t=>Qe(t,e.expectedValue);case`notContains`:return t=>$e(t,e.expectedValue);case`startsWith`:return t=>et(t,e.expectedValue);case`endsWith`:return t=>tt(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let rt=new Set([`above`,`below`,`topN`]);function it(e){return rt.has(e)}function at(e,t){if(it(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case`date`:return He(e.filterInfo);case`number`:return Ye(e.filterInfo,t);case`string`:return nt(e.filterInfo);default:return e=>!0}}function M(e,n,r,i,a=t.DateSystem.Date1900){switch(i){case`date`:{let t=ct(e,n,r);return t==null?null:lt(t,a)}case`number`:return ct(e,n,r);default:return st(e,n,r)}}let ot=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function st(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return ot(s);if(typeof a==`string`)return o===t.CellValueType.BOOLEAN?a.toUpperCase():a;if(typeof a==`number`)return o===t.CellValueType.BOOLEAN?a?`TRUE`:`FALSE`:a;if(typeof a==`boolean`)return a?`TRUE`:`FALSE`;if(a!==void 0)return String(a)}function ct(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;return s?null:typeof a==`string`&&o===t.CellValueType.NUMBER?Number(e.getCellRaw(n,r).v):Number(a)}function lt(e,n=t.DateSystem.Date1900){let r=(0,t.excelSerialToDateTime)(e,n);return Number.isNaN(r.getTime())?r:new Date(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds())}function ut(e,r,i){let a=e.getCell(r,i),o=(0,n.extractFormulaError)(a,(a==null?void 0:a.isInArrayFormulaRange)===!0);if(o!==null)return{type:t.RecordValueType.Error,value:o};if(!a)return{type:t.RecordValueType.Blank};if(a.p)return{type:t.RecordValueType.String,value:_(a)};let s=a.v;if(s==null)return{type:t.RecordValueType.Blank};if(a.t===t.CellValueType.STRING||a.t===t.CellValueType.FORCE_STRING)return{type:t.RecordValueType.String,value:String(s)};if(a.t===t.CellValueType.BOOLEAN)return{type:t.RecordValueType.Boolean,value:dt(s)};if(a.t===t.CellValueType.NUMBER||typeof s==`number`){var c;let n=ft(pt(e,r,i,s,a.t===t.CellValueType.NUMBER,a.isInArrayFormulaRange===!0)),o=(c=e.getComposedCellStyleByCellData(r,i,a).n)==null?void 0:c.pattern;return o&&t.numfmt.getFormatInfo(o).isDate?{type:t.RecordValueType.Date,value:n}:{type:t.RecordValueType.Number,value:n}}if(typeof s==`boolean`)return{type:t.RecordValueType.Boolean,value:s};if(typeof s==`string`)return{type:t.RecordValueType.String,value:s};throw TypeError(`Invalid table record cell value.`)}function N(e){let n=e;if(!mt(n)||typeof n.type!=`string`)throw TypeError(`Invalid table record value.`);switch(n.type){case t.RecordValueType.Blank:if(`value`in n)throw TypeError(`Blank table record values cannot have a value.`);return`["blank"]`;case t.RecordValueType.String:case t.RecordValueType.Error:if(typeof n.value!=`string`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Boolean:if(typeof n.value!=`boolean`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Number:case t.RecordValueType.Date:if(typeof n.value!=`number`)throw TypeError(`Invalid table record value.`);if(!Number.isFinite(n.value))throw RangeError(`Table record numeric values must be finite.`);return JSON.stringify([n.type,n.value===0?0:n.value]);default:throw TypeError(`Unknown table record value type.`)}}function P(e){let n=e;if(!mt(n)||n.filterType!==`record`||n.mode!==t.FilterSelectionMode.Include&&n.mode!==t.FilterSelectionMode.Exclude||!Array.isArray(n.values))throw TypeError(`Invalid table record filter.`);let r=new Set(n.values.map(e=>N(e)));return n.mode===t.FilterSelectionMode.Include?e=>r.has(N(e)):e=>!r.has(N(e))}function F(e){return P(e),{filterType:`record`,mode:e.mode,values:e.values.map(e=>e.type===t.RecordValueType.Blank?{type:t.RecordValueType.Blank}:{...e})}}function dt(e){if(e===!0||e===1||typeof e==`string`&&e.toUpperCase()===`TRUE`)return!0;if(e===!1||e===0||typeof e==`string`&&e.toUpperCase()===`FALSE`)return!1;throw TypeError(`Invalid table record boolean value.`)}function ft(e){let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))throw RangeError(`Table record numeric values must be finite.`);return t}function pt(e,t,n,r,i,a){var o;return!i||a?r:((o=e.getCellRaw(t,n))==null?void 0:o.v)??r}function mt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ht=class{constructor(){D(this,`_tableColumnFilterList`,void 0),D(this,`_tableSortInfo`,void 0),D(this,`_filterOutRows`,new Set),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?t.filterType===`record`?this._tableColumnFilterList[e]=F(t):this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}setSortInfo(e){this._tableSortInfo=e}getColumnFilter(e){let t=this._tableColumnFilterList[e];return(t==null?void 0:t.filterType)===`record`?F(t):t}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:`none`;return v(this._tableColumnFilterList[e],n)}getSortState(){return this._tableSortInfo??{}}getFilterStates(e){let t=[],{startColumn:n,endColumn:r}=e;for(let e=n;e<=r;e++)t.push(this.getFilterState(e-n));return t}getFilterOutRows(){return this._filterOutRows}setFilterOutRows(e){this._filterOutRows=new Set(e)}doFilter(e,n,r=t.DateSystem.Date1900){let i=new Set,a=this._tableColumnFilterList;for(let t=0;t<a.length;t++)a[t]&&this.doColumnFilter(e,n,t,i,r);return this._filterOutRows=i,i}doColumnFilter(e,n,r,i,a=t.DateSystem.Date1900){let o=this._tableColumnFilterList[r];if(o&&e){let{startRow:t,endRow:s,startColumn:c}=n,l=c+r;if(o.filterType===`record`){let n=P(o);for(let r=t;r<=s;r++)n(ut(e,r,l))||i.add(r);return}let u=this.getExecuteFunc(e,n,r,o);for(let n=t;n<=s;n++){if(x(o)){let t=e.getCell(n,l);u(e.getComposedCellStyleByCellData(n,l,t))||i.add(n);continue}let t=y(o)?o.filterInfo.conditionType:`string`,r=M(e,n,l,t,a);r===null&&!u(r)?i.add(n):u(M(e,n,l,t,a))||i.add(n)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,l=0;for(let t=r;t<=i;t++){let n=M(e,t,o,`number`);n!==null&&(s.push(n),c++,l+=n)}return{list:s,average:c>0?l/c:0}}getExecuteFunc(e,n,r,i){if(i.filterType===`manual`){let e=new Set(i.values);return t=>t==null?e.has(se):e.has(String(t))}if(i.filterType===`record`)return P(i);if(i.filterType===`condition`)return at(i,it(i.filterInfo.compareType)?this._getNumberCalculatedOptions(e,n,r):void 0);if(i.filterType===`color`){let e=e=>e?new t.ColorKit(e).toRgbString():null;if(i.cellFillColors){let n=new Set(i.cellFillColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.bg)))}if(i.cellTextColors){let n=new Set(i.cellTextColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.cl)??(0,t.getColorStyle)(t.DEFAULT_STYLES.cl)))}}else return e=>!0;return()=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList.some(e=>(e==null?void 0:e.filterType)===`record`)?this._tableColumnFilterList.map(e=>(e==null?void 0:e.filterType)===`record`?F(e):e):this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){let t=e.tableColumnFilterList??[];t.some(e=>(e==null?void 0:e.filterType)===`record`)?(this._tableColumnFilterList=[],t.forEach((e,t)=>this.setColumnFilter(t,e))):this._tableColumnFilterList=t,e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[],this._filterOutRows=new Set}},gt=class{constructor(e,t,n,r,i={}){D(this,`_id`,void 0),D(this,`_name`,void 0),D(this,`_tableStyleId`,void 0),D(this,`_showHeader`,void 0),D(this,`_showFooter`,void 0),D(this,`_showAutoFilter`,void 0),D(this,`_range`,void 0),D(this,`_columns`,new Map),D(this,`_columnOrder`,[]),D(this,`tableMeta`,void 0),D(this,`_tableFilters`,void 0),D(this,`_subUnitId`,void 0),this._id=e,this._range=n,this._name=t,this._tableFilters=new ht,this._init(r,i)}_init(e,n){this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(n==null?void 0:n.showHeader)??!0,this._showFooter=(n==null?void 0:n.showFooter)??!1,this._showAutoFilter=(n==null?void 0:n.showAutoFilter)??!0;let r=this.getRange(),i=r.startColumn,a=r.endColumn;for(let r=i;r<=a;r++){var o;let a=r-i,s,c;(o=n.columns)!=null&&o[a]?(s=n.columns[a].id,c=n.columns[a].displayName):(s=(0,t.generateRandomId)(),c=e[r-i]);let l=new O(s,c);this._columns.set(s,l),this._columnOrder.push(s)}n.filters&&n.filters.forEach((e,t)=>{e&&this._tableFilters.setColumnFilter(t,e)})}setTableFilterColumn(e,t){this._tableFilters.setColumnFilter(e,t)}getTableFilterColumn(e){return this._tableFilters.getColumnFilter(e)}getTableFilters(){return this._tableFilters}getTableFilterRange(){let e=this.getRange(),t=this.isShowHeader(),n=this.isShowFooter(),{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return{startRow:t?r+1:r,startColumn:i,endRow:n?a-1:a,endColumn:o}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(e=>{let t=new O(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)})}getColumnsCount(){return this._columnOrder.length}insertColumn(e,t){let n=t.id;this._columns.set(n,t),this._columnOrder.splice(e,0,n)}removeColumn(e){let t=this._columnOrder[e];this._columns.delete(t),this._columnOrder.splice(e,1)}setTableMeta(e){this.tableMeta=e}getTableMeta(){return this.tableMeta}getColumn(e){return this._columns.get(e)}getTableColumnByIndex(e){let t=this._columnOrder[e];return this.getColumn(t)}getColumnNameByIndex(e){var t;let n=this._columnOrder[e];return((t=this.getColumn(n))==null?void 0:t.getDisplayName())||``}getId(){return this._id}getRangeInfo(){return{...this._range}}getRange(){return{...this._range}}setRange(e){this._range=e}setDisplayName(e){this._name=e}getDisplayName(){return this._name}getSubunitId(){return this._subUnitId}setSubunitId(e){this._subUnitId=e}getTableStyleId(){return this._tableStyleId??ne[0].name}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){return this._showHeader??!0}setShowHeader(e){this._showHeader=e}isShowFooter(){return this._showFooter??!1}isShowAutoFilter(){return this._showAutoFilter??!0}setShowAutoFilter(e){this._showAutoFilter=e}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,showAutoFilter:this._showAutoFilter,columns:this._columnOrder.map(e=>this._columns.get(e).toJSON())}}getTableConfig(){return{name:this.getDisplayName(),range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter},tableStyleId:this._tableStyleId}}getFilterStates(e){return this._tableFilters.getFilterStates(e)}toJSON(){let e=[];return this._columns.forEach(t=>{e.push(t.toJSON())}),{id:this._id,name:this._name,range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=e.options.showHeader??!0,this._showFooter=e.options.showFooter??!0,this._showAutoFilter=e.options.showAutoFilter??!0,this._columns.clear(),this._columnOrder=[],e.columns.forEach(e=>{let t=new O(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new ht,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!0,this._showAutoFilter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}};function I(e,t){return function(n,r){t(n,r,e)}}function L(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let R=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._localeService=t,D(this,`_tableMap`,void 0),D(this,`_tableAdd$`,new i.Subject),D(this,`tableAdd$`,this._tableAdd$.asObservable()),D(this,`_tableDelete$`,new i.Subject),D(this,`tableDelete$`,this._tableDelete$.asObservable()),D(this,`_tableNameChanged$`,new i.Subject),D(this,`tableNameChanged$`,this._tableNameChanged$.asObservable()),D(this,`_tableRangeChanged$`,new i.Subject),D(this,`tableRangeChanged$`,this._tableRangeChanged$.asObservable()),D(this,`_tableThemeChanged$`,new i.Subject),D(this,`tableThemeChanged$`,this._tableThemeChanged$.asObservable()),D(this,`_tableFilterChanged$`,new i.Subject),D(this,`tableFilterChanged$`,this._tableFilterChanged$.asObservable()),D(this,`_tableInitStatus`,new i.BehaviorSubject(!1)),D(this,`tableInitStatus$`,this._tableInitStatus.asObservable()),this._tableMap=new Map}_ensureUnit(e){return this._tableMap.has(e)||this._tableMap.set(e,new Map),this._tableMap.get(e)}getColumnHeader(e,t,n,r){var i;let a=(i=this._univerInstanceService.getUnit(e))==null?void 0:i.getSheetBySheetId(t),{startRow:o,startColumn:s,endColumn:c}=n,l=[],u=r??`Column`;for(let e=s;e<=c;e++)l.push(_(a==null?void 0:a.getCell(o,e))||p(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o??(0,t.generateRandomId)(),l=new gt(c,r,i,a||this.getColumnHeader(e,n,i),s);if(l.setSubunitId(n),this._ensureUnit(e).set(c,l),this._tableAdd$.next({unitId:e,subUnitId:n,range:i,tableName:r,tableId:c,tableStyleId:s==null?void 0:s.tableStyleId}),s!=null&&s.filters){let t=this._univerInstanceService.getUnit(e),r=t==null?void 0:t.getSheetBySheetId(n);l.getTableFilters().doFilter(r,i,t==null?void 0:t.getDateSystem()),this._tableFilterChanged$.next({unitId:e,subUnitId:n,tableId:c})}return c}addFilter(e,t,n,r){let i=this.getTable(e,t);if(i){i.getTableFilters().setColumnFilter(n,r);let a=i.getSubunitId();this._tableFilterChanged$.next({unitId:e,subUnitId:a,tableId:t})}}getFilterRanges(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push(e.getRange())}),r}getSheetFilterRangeWithState(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&e.isShowAutoFilter()&&r.push({tableId:e.getId(),range:e.getRange(),states:e.getFilterStates(e.getRange())})}),r}getTable(e,t){let n=this._tableMap.get(e);if(n)return n.get(t)}getUniqueTableName(e,t){let n=this._tableMap.get(e);if(!n)return t;let r=new Set(Array.from(n.values()).map(e=>e.getDisplayName())),i=t,a=1;for(;r.has(i);)i=`${t}-${a}`,a++;return i}getTableById(e,t){return this.getTable(e,t)}getTableList(e){let t=this._tableMap.get(e);return t?Array.from(t.values()).map(t=>({...t.getTableInfo(),unitId:e})):[]}getTablesBySubunitId(e,t){let n=this._tableMap.get(e);return n?Array.from(n.values()).filter(e=>e.getSubunitId()===t):[]}getTablesInfoBySubunitId(e,t){return this.getTablesBySubunitId(e,t).map(e=>({id:e.getId(),name:e.getDisplayName(),range:e.getRange()}))}deleteTable(e,t){let n=this._tableMap.get(e),r=n==null?void 0:n.get(t);if(r){let i=r.getTableInfo(),a=r.getTableStyleId();n==null||n.delete(t);let{subUnitId:o,range:s,name:c}=i;this._tableDelete$.next({unitId:e,subUnitId:o,tableId:t,range:s,tableName:c,tableStyleId:a})}}operationTableRowCol(e,n,r){let i=this.getTableById(e,n);if(!i)return;let{operationType:a,rowColType:o,index:s,count:c,columnsJson:l}=r,u=i.getRange(),d={...u};if(a===`insert`){if(o===`row`)d.endRow+=c;else if(o===`column`){d.endColumn+=c;for(let e=0;e<c;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1+e,n));l!=null&&l[e]&&r.fromJSON(l[e]);let a=s+e-u.startColumn;i.insertColumn(a,r)}}}else if(o===`row`)d.endRow-=c;else if(o===`column`){d.endColumn-=c;for(let e=c-1;e>=0;e--){let t=s+e-u.startColumn;i.removeColumn(t)}}i.setRange(d),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:d,oldRange:u})}updateTableRange(e,n,r){let i=this.getTableById(e,n);if(!i)return;let a=i.getRange(),o=r.newRange;if(o.startColumn<a.startColumn){let e=a.startColumn-o.startColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.startColumn,new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}else if(o.startColumn>a.startColumn){let e=o.startColumn-a.startColumn;for(let t=e-1;t>=0;t--){let e=o.startColumn+t-a.startColumn;i.removeColumn(e)}}if(o.endColumn<a.endColumn){let e=a.endColumn-o.endColumn;for(let t=e-1;t>=0;t--){let e=o.endColumn+t-a.startColumn;i.removeColumn(e)}}else if(o.endColumn>a.endColumn){let e=o.endColumn-a.endColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.endColumn,new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}i.setRange(o),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:o,oldRange:a})}setTableByConfig(e,t,n){let r=this._tableMap.get(e),i=r==null?void 0:r.get(t);if(!i)return;let a=i.getSubunitId(),{name:o,updateRange:s,rowColOperation:c,theme:l,sortInfo:u,options:d,filterButtons:f}=n;if(n.calculatedColumn){let e=i.getColumn(n.calculatedColumn.columnId);e&&(e.formula=n.calculatedColumn.formula,e.formulaIsArray=n.calculatedColumn.formulaIsArray)}if(f){f.showAutoFilter!==void 0&&i.setShowAutoFilter(f.showAutoFilter);for(let[e,t]of Object.entries(f.columns??{})){let n=i.getColumn(e);n&&(n.showFilterButton=t)}}if(o){let n=i.getDisplayName();i.setDisplayName(o),this._tableNameChanged$.next({unitId:e,subUnitId:a,tableId:t,tableName:o,oldTableName:n})}if(c&&this.operationTableRowCol(e,t,c),s&&this.updateTableRange(e,t,s),l){let n=i.getTableStyleId()??`default`;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}`sortInfo`in n&&i.getTableFilters().setSortInfo(u),d&&d.showHeader!==void 0&&i.setShowHeader(d.showHeader)}toJSON(e){let t={},n=this._tableMap.get(e);return n&&n.forEach(n=>{let r=n.getSubunitId();if(!t[r]){let n=new Set;this.getTablesBySubunitId(e,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),t[r]={tables:[],tableFilteredOutRows:Array.from(n)}}t[r].tables.push(n.toJSON())}),t}fromJSON(e,t){let n=this._ensureUnit(e);Object.keys(t).forEach(i=>{let a=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:i});if(!a)return;let o=a.worksheet,s;if(t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),!s)return;let c=t[i].tableFilteredOutRows;s.forEach(t=>{var r;let s=this.getColumnHeader(e,i,t.range),l=new gt(t.id,t.name,t.range,s,t.options);if(l.setTableMeta(t.meta),t.columns.length&&l.setColumns(t.columns),t.filters){let e=l.getTableFilters();if(e.fromJSON(t.filters),Array.isArray(c)){let{startRow:t,endRow:n}=l.getTableFilterRange();e.setFilterOutRows(c.filter(e=>e>=t&&e<=n))}else e.doFilter(o,l.getTableFilterRange(),a.workbook.getDateSystem())}l.setSubunitId(i),n.set(t.id,l),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id,tableStyleId:(r=t.options)==null?void 0:r.tableStyleId})})}),this._tableInitStatus.next(!0)}deleteUnitId(e){let t=this._tableMap.get(e);t&&t.forEach(e=>e.dispose()),this._tableMap.delete(e)}dispose(){super.dispose(),this._tableAdd$.complete(),this._tableDelete$.complete(),this._tableNameChanged$.complete(),this._tableRangeChanged$.complete(),this._tableThemeChanged$.complete(),this._tableFilterChanged$.complete(),this._tableInitStatus.complete(),this._tableMap.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._tableMap.clear()}};R=L([I(0,t.IUniverInstanceService),I(1,(0,t.Inject)(t.LocaleService))],R);let z=class extends t.Disposable{constructor(e){super(),this._tableManager=e}getTableInfo(e,t){let n=this._tableManager.getTable(e,t);if(n)return{unitId:e,...n.getTableInfo()}}getTableList(e){return this._tableManager.getTableList(e)}addTable(e,t,n,r,i,a,o){return this._tableManager.addTable(e,t,n,r,i,a,o)}deleteTable(e,t,n){this._tableManager.deleteTable(e,n)}getTableMeta(e,t){var n;return(n=this._tableManager.getTable(e,t))==null?void 0:n.getTableMeta()}setTableMeta(e,t,n){var r;(r=this._tableManager.getTable(e,t))==null||r.setTableMeta(n)}getTableColumnMeta(e,t,n){var r;return(r=this._tableManager.getTable(e,t))==null||(r=r.getTableColumnByIndex(n))==null?void 0:r.getMeta()}selTableColumnMeta(e,t,n,r){var i;(i=this._tableManager.getTable(e,t))==null||(i=i.getTableColumnByIndex(n))==null||i.setMeta(r)}addFilter(e,t,n,r){this._tableManager.addFilter(e,t,n,r)}getCellValueWithConditionType(e,t,n,r=`string`){return M(e,t,n,r)}};z=L([I(0,(0,t.Inject)(R))],z);let B={id:`sheet.mutation.add-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,subUnitId:i,name:a,range:o,header:s,options:c}=t;return e.get(z).addTable(r,i,a,o,s,n,c),!0}},V={id:`sheet.mutation.delete-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,tableId:i}=t;return e.get(z).deleteTable(n,r,i),!0}},_t={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(t.LocaleService),s=e.get(R),c=r.id??(0,t.generateRandomId)(),l=C(r.unitId,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:s,definedNamesService:e.get(n.IDefinedNamesService)}),u=r.name;if(!u||!(0,t.customNameCharacterCheck)(u.toLowerCase(),l)){let e=o.t(`sheets-table.tablePrefix`),t=s.getTableList(r.unitId).length+1;for(let n of l)if(n.startsWith(e.toLowerCase())){let r=Number(n.slice(e.length));Number.isInteger(r)&&r>=t&&(t=r+1)}u=`${e}${t}`}let d=[],f=[],{unitId:p,subUnitId:m,range:h}=r,g=s.getColumnHeader(p,m,h,o.t(`sheets-table.columnPrefix`));return d.push({id:B.id,params:{...r,tableId:c,name:u,header:g}}),f.push({id:V.id,params:{tableId:c,unitId:r.unitId}}),(0,t.sequenceExecute)(d,a).result?(i.pushUndoRedo({unitID:r.unitId,undoMutations:f,redoMutations:d}),!0):!1}},H={id:`sheet.mutation.set-sheet-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,tableId:r,config:i}=t;return e.get(R).setTableByConfig(n,r,i),!0}},vt={id:`sheet.command.add-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(R),{unitId:a,tableId:o,themeStyle:s}=n,c=[],l=[],u=i.getTableById(a,o);if(!u)return!1;let d=u.getSubunitId();c.push({id:r.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleJSON:s.toJson()}}),c.push({id:H.id,params:{unitId:a,subUnitId:d,tableId:o,config:{theme:s.getName()}}}),l.push({id:H.id,params:{unitId:a,subUnitId:d,tableId:o,config:{themeStyle:u.getTableStyleId()}}}),l.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleName:s.getName()}});let f=e.get(t.ICommandService);return(0,t.sequenceExecute)(c,f).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0):!1}},U={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(R),s=e.get(t.ILogService),c=[],l=[],u=o.getTable(n.unitId,n.tableId),d=u==null?void 0:u.toJSON();if(!d)return s.error(`[TableManager]: Table not found`),!1;let f=e.get(r.SheetInterceptorService).onCommandExecute({id:U.id,params:{...n,tableName:d.name}});return c.push(...f.preRedos??[]),c.push({id:V.id,params:{...n}}),c.push(...f.redos),l.push(...f.preUndos??[]),l.push({id:B.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:d.name,range:d.range,options:d.options}}),l.push(...f.undos),(0,t.sequenceExecute)(c,a).result?(i.pushUndoRedo({unitID:n.unitId,undoMutations:l,redoMutations:c}),!0):!1}},yt={id:`sheet.command.remove-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,tableId:a,themeName:o}=n,s=e.get(R),c=e.get(r.SheetRangeThemeModel),l=s.getTableById(i,a);if(!l)return!1;let u=l.getSubunitId(),d=[],f=[],p=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(`table-default`)),m=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(oe)).find(e=>e!==o);m||=p[0],d.push({id:H.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:m}}}),d.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleName:o}});let h=c.getDefaultRangeThemeStyle(o);h&&(f.push({id:r.AddRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleJSON:h.toJson()}}),f.push({id:H.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:o}}}));let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(d,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0):!1}};function bt(e,n){let r=e.trim();if(!r)return{valid:!1,reason:`empty`};let i=new Set(Array.from(n,e=>e.toLowerCase()));return(0,t.customNameCharacterCheck)(r.toLowerCase(),i)?{valid:!0}:{valid:!1,reason:`invalid`}}function W(e,i,a,o,s,c,l){var u;let d=(u=e.getTableInfo)==null?void 0:u.call(e);if(!d)return;let f=d.range.startRow+ +!!d.showHeader,p={},m;if(d.columns.forEach((e,r)=>{var i;if(l&&e.id!==l.columnId)return;let a=(i=(l==null?void 0:l.formula)??e.formula)==null?void 0:i.trim(),u=(l==null?void 0:l.formulaIsArray)??e.formulaIsArray;if(!a)return;let h=xt(a.startsWith(`=`)?a:`=${a}`,d.name),g=d.range.startColumn+r;m??=c();for(let e=o;e<=s;e++){p[e]??={};let r={f:m.moveFormulaRefOffset(h,0,e-f),si:null,ref:null,ft:u?t.FormulaType.ARRAY:null,fd:u?t.BooleanNumber.FALSE:null,v:null,p:null,t:null};u&&(r.ref=(0,n.serializeRange)({startRow:e,endRow:e,startColumn:g,endColumn:g})),p[e][g]=r}}),Object.keys(p).length)return{id:r.SetRangeValuesMutation.id,params:{unitId:i,subUnitId:a,cellValue:p}}}function xt(e,t){let n=``;for(let r=0;r<e.length;r++){let i=r,a=e[r];if(a===`"`||a===`'`){for(;++r<e.length;)if(e[r]===a){if(e[r+1]!==a)break;r++}}else if(a===`[`){let a=1;for(;++r<e.length&&a>0&&(e[r]===`'`?r++:e[r]===`[`?a++:e[r]===`]`&&a--,a!==0););if(a===0){let a=e.slice(i+1,r),o=e.slice(0,i).trimEnd().slice(-1),s=!o||/[=+\-*/^&(<>,;:{]/.test(o),c=e.slice(r+1).trimStart();if(!/^[^+\-*/^&=<>%),;}:\s]/.test(c)){let e=s?t:``,r=a.slice(1);n+=a.startsWith(`@`)?`${e}[[#This Row],${r.startsWith(`[`)?r:`[${r}]`}]`:`${e}[${a}]`;continue}}}n+=e.slice(i,r+1)}return n}let St={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,tableId:o,name:s,updateRange:c,rowColOperation:l,theme:u,filterButtons:d}=i,f=e.get(R),p=f.getTableById(a,o);if(!p)return!1;let m=[],h=[],g={},_={};if(i.calculatedColumn){let{columnId:t,formula:o,formulaIsArray:s}=i.calculatedColumn,u=p.getColumn(t);if(!u||typeof o!=`string`||s!==void 0&&typeof s!=`boolean`||c||l)return!1;let d=p.getTableFilterRange(),f=p.getTableInfo().columns.findIndex(e=>e.id===t),v=d.startColumn+f,y={...d,startColumn:v,endColumn:v};if(!(0,r.checkRangesEditablePermission)(e,a,p.getSubunitId(),[y]))return!1;let b=o.trim();if(b===`=`)return!1;g.calculatedColumn={columnId:t,formula:u.formula,formulaIsArray:u.formulaIsArray},_.calculatedColumn={columnId:t,formula:b&&!b.startsWith(`=`)?`=${b}`:b,formulaIsArray:b?s??u.formulaIsArray:void 0};let x=W(p,a,p.getSubunitId(),d.startRow,d.endRow,()=>e.get(n.LexerTreeBuilder),_.calculatedColumn);x&&(m.push(x),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,x.params)}))}if(d){var v;if(((v=e.get(t.IPermissionService).getPermissionPoint(new r.WorkbookEditablePermission(a).id))==null?void 0:v.value)===!1)return!1;let{showAutoFilter:n,columns:i}=d;if(n!==void 0&&typeof n!=`boolean`)return!1;let o=Object.entries(i??{});if(o.some(([e,t])=>!p.getColumn(e)||typeof t!=`boolean`))return!1;g.filterButtons={...n===void 0?{}:{showAutoFilter:p.isShowAutoFilter()},columns:Object.fromEntries(o.map(([e])=>[e,p.getColumn(e).isShowFilterButton()]))},_.filterButtons={...n===void 0?{}:{showAutoFilter:n},columns:Object.fromEntries(o)}}let y=e.get(t.LocaleService),b=C(a,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:f,definedNamesService:e.get(n.IDefinedNamesService)});if(s){if(!bt(s,b).valid)return e.get(t.ILogService).warn(y.t(`sheets-table.tableNameError`)),!1;g.name=p.getDisplayName(),_.name=s}l&&(g.rowColOperation={operationType:l.operationType===`insert`?`delete`:`insert`,rowColType:l.rowColType,index:l.index,count:l.count},_.rowColOperation=l),c&&(g.updateRange={newRange:p.getRange()},_.updateRange=c),u&&(g.theme=p.getTableStyleId(),_.theme=u);let x={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:_},S={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:g},w=e.get(r.SheetInterceptorService).onCommandExecute({id:St.id,params:{...i,oldTableName:g.name}}),T=[...w.preRedos??[],{id:H.id,params:x},...m,...w.redos],ee=[...w.preUndos??[],{id:H.id,params:S},...h,...w.undos],te=e.get(t.ICommandService);return(0,t.sequenceExecute)(T,te).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:ee,redoMutations:T}),!0):!1}},G={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t,o=e.get(R),s=o.getTable(r,n);if(o.addFilter(r,n,i,a),s){var c;let e=s.getTableFilters();t.filterOutRows?e.setFilterOutRows(t.filterOutRows):t.filterOutRows=[...e.getFilterOutRows()],t.subUnitId=s.getSubunitId(),t.tableFilteredOutRows=((c=o.toJSON(r)[t.subUnitId])==null?void 0:c.tableFilteredOutRows)??[]}return!0}},Ct={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;if(!n)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(R),c=n.tableId||(0,t.generateRandomId)(),l=(r=s.getTable(n.unitId,c))==null?void 0:r.getTableFilters(),u=l==null?void 0:l.getColumnFilter(n.column),d=[...(l==null?void 0:l.getFilterOutRows())??[]],f=((i=n.tableFilter)==null?void 0:i.filterType)===`record`?F(n.tableFilter):n.tableFilter,p=[],m=[];return p.push({id:G.id,params:{...n,tableId:c,tableFilter:f}}),m.push({id:G.id,params:{...n,tableId:c,tableFilter:u,filterOutRows:d}}),(0,t.sequenceExecute)(p,o).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:m,redoMutations:p}),!0):!1}},wt={id:`sheet.command.set-table-sort-state`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(R).getTable(n.unitId,n.tableId);if(!r)return!1;let i=r.getTableFilters().toJSON().tableSortInfo,a=e.get(t.ICommandService),o={unitId:n.unitId,subUnitId:r.getSubunitId(),tableId:n.tableId,config:{sortInfo:n.sortInfo}};return a.syncExecuteCommand(H.id,o)?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n.unitId,undoMutations:[{id:H.id,params:{...o,config:{sortInfo:i}}}],redoMutations:[{id:H.id,params:o}]}),!0):!1}},K=class extends t.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetInterceptorService=t,this._tableManager=n,this._resourceManagerService=r,D(this,`_tableRangeRTree`,new Map),this.registerTableChangeEvent(),this._initSnapshot(),this._initSheetChange(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(e,n,r){let i=this._ensureTableRangeRTree(e),a=Array.from(i.bulkSearch([{unitId:e,sheetId:n,range:r}])).find(n=>{let i=this._tableManager.getTable(e,String(n));return i?t.Rectangle.contains(i.getRange(),r):!1});if(a)return this._tableManager.getTable(e,String(a))}_ensureTableRangeRTree(e){return this._tableRangeRTree.has(e)||this._tableRangeRTree.set(e,new t.RTree),this._tableRangeRTree.get(e)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._ensureTableRangeRTree(r).insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,oldRange:a}=e,o=this._ensureTableRangeRTree(r);o.remove({unitId:r,sheetId:i,id:n,range:{...a}}),o.insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._ensureTableRangeRTree(n).remove({unitId:n,sheetId:r,id:t,range:{...i}})}))}registerTableHeaderInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._ensureTableRangeRTree(a);if((e==null?void 0:e.v)===void 0&&s){let c=Array.from(s.bulkSearch([{unitId:a,sheetId:o,range:{startColumn:i,endColumn:i,startRow:r,endRow:r}}]));if(c.length>0){let o=this._tableManager.getTable(a,c[0]);if(o){let a=o.getRange(),s=i-a.startColumn;if(a.startRow===r){let r=o.getColumnNameByIndex(s);return(!e||e===t.rawData)&&(e={...t.rawData}),e.v=r,n(e)}}}}return n(e)}}))}_toJson(e){return this._tableManager.toJSON(e)}_fromJSON(e,t){return this._tableManager.fromJSON(e,t)}_deleteUnitId(e){this._tableManager.deleteUnitId(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>JSON.stringify(this._toJson(e)),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:ae,onLoad:(e,t)=>{this._fromJSON(e,t)},onUnLoad:e=>{this._deleteUnitId(e)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId||this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=r.subUnitId||((n=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:n.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._tableManager.getTablesBySubunitId(i,a);if(o.length===0)return{redos:[],undos:[]};let s=[],c=[];return o.forEach(e=>{let t=e.toJSON();s.push({id:V.id,params:{unitId:i,subUnitId:a,tableId:t.id}}),c.push({id:B.id,params:{unitId:i,subUnitId:a,name:t.name,range:t.range,tableId:t.id,options:{...t.options,columns:t.columns,filters:t.filters.tableColumnFilterList}}})}),{redos:s,undos:c}}if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._tableManager.getTablesBySubunitId(n,r);if(a.length===0)return{redos:[],undos:[]};let o=[],s=[];return a.forEach(e=>{let r=e.toJSON(),a=(0,t.generateRandomId)();o.push({id:B.id,params:{unitId:n,subUnitId:i,name:r.name,range:{...r.range,sheetId:i},tableId:a,options:{...r.options,columns:r.columns,filters:r.filters.tableColumnFilterList}}}),s.push({id:V.id,params:{unitId:n,subUnitId:i,tableId:a}})}),{redos:o,undos:s}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}};K=L([I(0,(0,t.Inject)(t.IUniverInstanceService)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,(0,t.Inject)(R)),I(3,(0,t.Inject)(t.IResourceManagerService))],K);function Tt(e,n,r,i){let a=e.get(t.ICommandService);return(0,t.sequenceExecute)(r,a).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:i,redoMutations:r}),!0):!1}let Et={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(K).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endRow-u.startRow+1,p=o.getRowCount()-1,m=o.getCellMatrix().getDataRange().endRow,h=[],g=[];if(p-m<f)h.push({id:r.InsertRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}}),h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...d.getRange(),endRow:d.getRange().endRow+f}}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:d.getRange()}}}}),g.push({id:r.RemoveRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}});else{let t={...d.getRange()};h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t,endRow:t.endRow+f}}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:s,fromSubUnitId:c,toSubUnitId:c,fromRange:{startRow:u.startRow,endRow:m,startColumn:t.startColumn,endColumn:t.endColumn},toRange:{startRow:u.startRow+f,endRow:m+f,startColumn:t.startColumn,endColumn:t.endColumn}},{includeSelection:!1,includeAutoHeight:!1});n&&(h.push(...n.redos),g.push(...n.undos))}let _=W(d,s,c,u.startRow,u.endRow,()=>e.get(n.LexerTreeBuilder));_&&(h.push(_),g.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,_.params)}));let v=e.get(t.ICommandService);return(0,t.sequenceExecute)(h,v).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:g,redoMutations:h}),!0):!1}},Dt={id:`sheet.command.table-insert-row-at`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,subUnitId:o,tableId:s,index:c,count:l=1}=i;if(l<=0)return!1;let u=e.get(t.IUniverInstanceService),d=(0,r.getSheetCommandTarget)(u,{unitId:a,subUnitId:o});if(!d)return!1;let f=e.get(R).getTableById(a,s);if(!f||f.getSubunitId()!==o)return!1;let p=f.getRange();if(c<=p.startRow||c>p.endRow+1)return!1;let m=[{id:H.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p,endRow:p.endRow+l}}}}}],h=[{id:H.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p}}}}}],g=d.worksheet.getCellMatrix().getDataRange().endRow,_=c<=g?(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:a,fromSubUnitId:o,toSubUnitId:o,fromRange:{startRow:c,endRow:g,startColumn:p.startColumn,endColumn:p.endColumn},toRange:{startRow:c+l,endRow:g+l,startColumn:p.startColumn,endColumn:p.endColumn}},{includeSelection:!1,includeAutoHeight:!1}):null;_&&(m.push(..._.redos),h.push(..._.undos));let v=W(f,a,o,c,c+l-1,()=>e.get(n.LexerTreeBuilder));return v&&(m.push(v),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,v.params)})),Tt(e,a,m,h)}},Ot={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=e.get(t.IUniverInstanceService),i=(0,r.getSheetCommandTarget)(n);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(K).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endColumn-l.startColumn+1,f=a.getColumnCount()-1,p=a.getCellMatrix().getDataRange().endColumn,m=[],h=[];if(f-p<d)m.push({id:r.InsertColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:r.RemoveColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}});else{let t=u.getRange();m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn,endColumn:p}},{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn+d,endColumn:p+d}});n&&(m.push(...n.redos),h.push(...n.undos))}let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(m,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},kt={id:`sheet.command.table-insert-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(R).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s>f.endColumn+1)return!1;let p=[{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c}}}}],m=[{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}}],h=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s<=h){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:h}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:h+c}});t&&(p.push(...t.redos),m.push(...t.undos))}return Tt(e,i,p,m)}},At={id:`sheet.command.table-remove-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(R).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s+c-1>f.endColumn||c>=f.endColumn-f.startColumn+1)return!1;let p=d.getTableInfo(),m=[],h=s-f.startColumn;for(let e=0;e<c;e++){let t=p.columns[h+e];t&&m.push(t)}let g=e.get(r.SheetInterceptorService).onCommandExecute({id:At.id,params:{...n,tableName:p.name,removedColumnNames:m.map(e=>e.displayName)}}),_=[...g.preRedos??[],{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}},...g.redos],v=[...g.preUndos??[],{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c,columnsJson:m}}}},...g.undos],y=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s+c<=y){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:y}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:y-c}});t&&(_.push(...t.redos),v.push(...t.undos))}return Tt(e,i,_,v)}},jt={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(K).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endRow-l.startRow+1,f=[],p=[],m=u.getRange();f.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m,endRow:m.endRow-d}}}}}),p.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m}}}}});let h=a.worksheet.getCellMatrix().getDataRange().endRow,g=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.endRow+1,endRow:h,startColumn:m.startColumn,endColumn:m.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:h-d,startColumn:m.startColumn,endColumn:m.endColumn}});g&&(f.push(...g.redos),p.push(...g.undos));let _=e.get(t.ICommandService);return(0,t.sequenceExecute)(f,_).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:p,redoMutations:f}),!0):!1}},q={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{workbook:o,unitId:s,subUnitId:c}=a;e.get(R);let l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(K).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endColumn-u.startColumn+1,p=[],m=[],h=d.getRange();p.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:u.startColumn,count:f}}}});let g=d.getTableInfo(),_=[],v=u.startColumn-h.startColumn;for(let e=0;e<f;e++){let t=g.columns[v+e];t&&_.push(t)}let y=e.get(r.SheetInterceptorService).onCommandExecute({id:q.id,params:{...n,tableName:g.name,removedColumnNames:_.map(e=>e.displayName)}});p.unshift(...y.preRedos??[]),p.push(...y.redos),m.unshift(...y.preUndos??[]),m.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:u.startColumn,count:f,columnsJson:_}}}}),m.push(...y.undos);let b=a.worksheet.getCellMatrix().getDataRange().endColumn,x=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.endColumn+1,endColumn:b}},{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.startColumn,endColumn:b-f}});x&&(p.push(...x.redos),m.push(...x.undos));let S=e.get(t.ICommandService);return(0,t.sequenceExecute)(p,S).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}},J=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=n,this._configService=r,D(this,`_defaultThemeIndex`,0),D(this,`_allThemes`,[]),this._initUserTableTheme(),this.registerTableChangeEvent(),this._initDefaultTableTheme()}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,tableStyleId:a}=e,o=this._tableManager.getTable(r,n),s=a||this._allThemes[this._defaultThemeIndex].name;o.setTableStyleId(s),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:r,subUnitId:i,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,oldRange:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r),s=o.getTableStyleId();s||(s=this._allThemes[this._defaultThemeIndex].name,o.setTableStyleId(s)),this._sheetRangeThemeService.removeRangeThemeRule(s,{unitId:i,subUnitId:a,range:{...n}}),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:i,subUnitId:a,range:{...t}})})),this.disposeWithMe(this._tableManager.tableThemeChanged$.subscribe(e=>{let{theme:t,oldTheme:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r).getRange();this._sheetRangeThemeService.removeRangeThemeRule(n,{unitId:i,subUnitId:a,range:{...o}}),this._sheetRangeThemeService.registerRangeThemeStyle(t,{unitId:i,subUnitId:a,range:{...o}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{range:t,unitId:n,subUnitId:r,tableStyleId:i=this._allThemes[this._defaultThemeIndex].name}=e;this._sheetRangeThemeService.removeRangeThemeRule(i,{unitId:n,subUnitId:r,range:{...t}})}))}_initUserTableTheme(){let e=this._configService.getConfig(`sheets-table.config`)||{},t=e.defaultThemeIndex||0,n=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=n.concat(ne)}_initDefaultTableTheme(){for(let e=0;e<this._allThemes.length;e++){let{name:t,style:n}=this._allThemes[e],i=new r.RangeThemeStyle(t,n);this._sheetRangeThemeModel.registerDefaultRangeTheme(i)}}dispose(){super.dispose(),this._allThemes=[],this._defaultThemeIndex=0}};J=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetRangeThemeService)),I(2,(0,t.Inject)(r.SheetRangeThemeModel)),I(3,t.IConfigService)],J);var Mt=`@univerjs/sheets-table`,Nt=`1.0.0`;let Y=class extends t.Disposable{constructor(e,t,n){super(),this._tableManager=e,this._commandService=t,this._activeDirtyManagerService=n,this._initRangeListener(),this._initFilterDirtyRange()}_initFilterDirtyRange(){this._activeDirtyManagerService.register(G.id,{commandId:G.id,getDirtyData:e=>{let t=e.params,n=this._tableManager.getTableById(t.unitId,t.tableId);if(!n)return{};let{subUnitId:r,range:i}=n.getTableInfo();return{dirtyRanges:[{unitId:t.unitId,sheetId:r,range:i}],clearDependencyTreeCache:{[t.unitId]:{[r]:`1`}}}}}),this.disposeWithMe((0,t.toDisposable)(()=>{this._activeDirtyManagerService.remove(G.id)}))}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{unitId:t,subUnitId:r,tableName:i,range:a}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:i,reference:{sheetId:r,range:a}},{onlyLocal:!0})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(e=>{let{tableId:t,unitId:r,oldTableName:i}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:r,tableName:i},{onlyLocal:!0});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a,i)}))}_updateSuperTable(e,t,r){let i=t.getTableInfo(),a=i.name,o=i.columns,s=new Map;o.forEach((e,t)=>{s.set(e.displayName,t)}),this._commandService.executeCommand(n.SetSuperTableMutation.id,{unitId:e,tableName:a,oldTableName:r,reference:{range:i.range,sheetId:i.subUnitId,titleMap:s}},{onlyLocal:!0})}};Y=L([I(0,(0,t.Inject)(R)),I(1,t.ICommandService),I(2,n.IActiveDirtyManagerService)],Y);let X=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._exclusiveRangeService=t,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(r,i,k,n),this._exclusiveRangeService.addExclusiveRange(r,i,k,[{range:{...t},groupId:n}])})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._exclusiveRangeService.addExclusiveRange(n,r,k,[{range:{...i},groupId:t}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(n,r,k,t)}))}};X=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.IExclusiveRangeService))],X);let Z=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._tableManager=a,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({priority:-1,getMutations(t){let n={redos:[],undos:[]},{id:i,params:a}=t;switch(i){case r.InsertRowCommand.id:return e._generateTableMutationWithInsertRow(a);case r.InsertColCommand.id:return e._generateTableMutationWithInsertCol(a);case r.RemoveRowCommand.id:return e._generateTableMutationWithRemoveRow(a);case r.RemoveColCommand.id:return e._generateTableMutationWithRemoveCol(a)}return n}})}_generateTableMutationWithInsertRow(e){let t=[],i=[],a=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!a)return{undos:t,redos:i};let{unitId:o,subUnitId:s}=a,c=this._tableManager.getTablesBySubunitId(o,s);if(!c.length)return{undos:t,redos:i};let{range:l}=e;return c.forEach(e=>{let r=e.getRange();if(l.startRow>r.startRow&&l.startRow<=r.endRow){let a=l.endRow-l.startRow+1;i.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+a}}}}});let c=W(e,o,s,l.startRow,l.endRow,()=>this._injector.get(n.LexerTreeBuilder));c&&i.push(c),t.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:i}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startColumn>r.startColumn&&c.startColumn<=r.endColumn){let r=c.endColumn-c.startColumn+1;n.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:r}}}}),t.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:r}}}})}}),{undos:t,redos:n}}_generateTableMutationWithRemoveRow(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endRow-d.startRow+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startRow<=r.startRow&&d.endRow>=r.startRow){a.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let t=e.toJSON();n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:t.id,name:t.name,range:t.range,options:t.options}})}else d.startRow>r.startRow&&d.startRow<=r.endRow?(i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow-f}}}}}),n.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})):d.startRow<r.endRow&&d.endRow>=r.endRow&&(i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:d.startRow-1}}}}}),n.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}}))}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_generateTableMutationWithRemoveCol(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endColumn-d.startColumn+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startColumn<=r.startColumn&&d.endColumn>=r.endColumn){let t=e.getTableInfo(),r=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.delete-table`,params:{unitId:c,subUnitId:l,tableId:e.getId(),tableName:t.name}});a.push(...r.preRedos??[],...r.redos),a.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let s=e.toJSON(),{startRow:u,startColumn:d,endColumn:f}=s.range,m=this._univerInstanceService.getUnit(c),h=m==null?void 0:m.getSheetBySheetId(l);if(!h)return{undos:n,redos:i,preRedos:a,preUndos:o};let g=[];for(let e=d;e<=f;e++)g.push(_(h==null?void 0:h.getCell(u,e))||p(e-d+1,this._localeService.t(`sheets-table.columnPrefix`)));n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:s.id,name:s.name,header:g,range:s.range,options:s.options}}),n.push(...r.preUndos??[],...r.undos)}else if(d.startColumn<=r.startColumn&&d.endColumn>=r.startColumn){let t=e.toJSON(),a=d.endColumn-r.startColumn+1;i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:r.startColumn,count:a}}}});let s=[];for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn>r.endColumn){let t=e.toJSON(),a=r.endColumn-d.startColumn+1;i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:a}}}});let s=[],u=d.startColumn-r.startColumn;for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t+u);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn<=r.endColumn){let t=e.toJSON();i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:f}}}});let a=[],s=d.startColumn-r.startColumn;for(let t=0;t<f;t++){let n=e.getTableColumnByIndex(t+s);n&&a.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:a})}}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_getDeleteTableMutation(e,t,n){return{id:V.id,params:{unitId:e,subUnitId:t,tableId:n}}}_getAddTableMutation(e,t,n){let r=n.columns.map(e=>e.displayName);return{id:B.id,params:{unitId:e,subUnitId:t,tableId:n.id,name:n.name,header:r,range:n.range,options:{...n.options,columns:n.columns,filters:n.filters.tableColumnFilterList}}}}_appendTableColumnFormulaMutations(e,t,n){let r=n.columns.map(e=>e.displayName);if(!r.length)return;let i=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.table-remove-col`,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,tableName:n.tableName,range:n.range,removedColumnNames:r}});e.splice(Math.max(e.length-1,0),0,...i.preRedos??[],...i.redos),t.push(...i.preUndos??[],...i.undos)}_initCommandListener(){this._commandService.onCommandExecuted(e=>{if(e.id===r.InsertRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<=n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow+i,endRow:n.endRow+i}})})}else if(e.id===r.InsertColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<=n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn+i,endColumn:n.endColumn+i}})})}else if(e.id===r.RemoveRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow-i,endRow:n.endRow-i}})})}else if(e.id===r.RemoveColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn-i,endColumn:n.endColumn-i}})})}})}};Z=L([I(0,(0,t.Inject)(t.ICommandService)),I(1,(0,t.Inject)(r.RefRangeService)),I(2,(0,t.Inject)(t.IUniverInstanceService)),I(3,(0,t.Inject)(t.Injector)),I(4,(0,t.Inject)(r.SheetInterceptorService)),I(5,(0,t.Inject)(R)),I(6,(0,t.Inject)(t.LocaleService))],Z);let Q=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._sheetRowFilteredService=r,this._zebraCrossingCacheController=i,D(this,`_tableFilteredOutRows`,new Map),D(this,`_subscription`,null),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._registerFormulaRowFiltered(),this._initFilteredOutRows()}_registerFormulaRowFiltered(){this.disposeWithMe(this._sheetRowFilteredService.register((e,t,n)=>this._getTableFilteredOutRows(e,t).has(n)))}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this._getTableFilteredOutRows(t.unitId,t.subUnitId).has(t.row);return r?!0:n(r)}}))}_initFilteredOutRows(){this._tableManager.tableInitStatus$.pipe((0,i.filter)(e=>e),(0,i.switchMap)(()=>this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET)),(0,i.filter)(e=>e!=null),(0,i.switchMap)(e=>e.activeSheet$),(0,i.filter)(e=>e!=null)).subscribe(()=>{let e=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!e)return;let{unitId:t,subUnitId:n}=e;this._refreshTableFilteredOutRows(t,n)})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{let{unitId:t,subUnitId:n,tableId:r}=e,i=this._univerInstanceService.getUnit(t),a=i==null?void 0:i.getSheetBySheetId(n),o=this._tableManager.getTable(t,r);a&&o&&(o.getTableFilters().doFilter(a,o.getTableFilterRange(),i==null?void 0:i.getDateSystem()),this._refreshTableFilteredOutRows(t,n),this._zebraCrossingCacheController.updateZebraCrossingCache(t,n))}))}_refreshTableFilteredOutRows(e,t){let n=new Set;this._tableManager.getTablesBySubunitId(e,t).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),this._tableFilteredOutRows.set(this._getSheetKey(e,t),n)}_getTableFilteredOutRows(e,t){let n=this._getSheetKey(e,t);return this._tableFilteredOutRows.has(n)||this._refreshTableFilteredOutRows(e,t),this._tableFilteredOutRows.get(n)??new Set}_getSheetKey(e,t){return`${e}|${t}`}dispose(){var e;super.dispose(),(e=this._subscription)==null||e.unsubscribe()}};Q=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,(0,t.Inject)(t.IUniverInstanceService)),I(3,(0,t.Inject)(n.ISheetRowFilteredService)),I(4,(0,t.Inject)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=T,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},T,this._config);this._configService.setConfig(`sheets-table.config`,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[R],[J],[K],[z],[Q],[X],[Z],[Y]])}onReady(){(0,t.touchDependencies)(this._injector,[[Y],[X],[Z],[J],[K],[z],[Q]]),(0,t.touchDependencies)(this._injector,[[R]])}_initRegisterCommand(){[_t,B,U,V,G,Ct,wt,St,H,vt,yt,Et,Ot,Dt,kt,jt,q,At].forEach(e=>this._commandService.registerCommand(e))}};D($,`pluginName`,ae),D($,`packageName`,Mt),D($,`version`,Nt),D($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=L([(0,t.DependentOn)(r.UniverSheetsPlugin),I(1,(0,t.Inject)(t.Injector)),I(2,t.IConfigService),I(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=_t,e.AddSheetTableMutation=B,e.AddTableThemeCommand=vt,e.DeleteSheetTableCommand=U,e.DeleteSheetTableMutation=V,e.RemoveTableThemeCommand=yt,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=oe,e.SetSheetTableCommand=St,e.SetSheetTableFilterCommand=Ct,e.SetSheetTableFilterMutation=G,e.SetSheetTableMutation=H,e.SetSheetTableSortStateCommand=wt,e.SheetTableInsertColCommand=Ot,e.SheetTableInsertColumnAtCommand=kt,e.SheetTableInsertRowAtCommand=Dt,e.SheetTableInsertRowCommand=Et,e.SheetTableRemoveColCommand=q,e.SheetTableRemoveColumnAtCommand=At,e.SheetTableRemoveRowCommand=jt,Object.defineProperty(e,"SheetTableService",{enumerable:!0,get:function(){return z}}),e.SheetsTableButtonStateEnum=d,Object.defineProperty(e,"SheetsTableController",{enumerable:!0,get:function(){return K}}),e.SheetsTableSortStateEnum=f,Object.defineProperty(e,"SheetsTableThemeController",{enumerable:!0,get:function(){return J}}),e.TABLE_FILTER_EMPTY_VALUE=se,e.TableColumnDataTypeEnum=a,e.TableColumnFilterTypeEnum=o,e.TableConditionTypeEnum=s,e.TableDateCompareTypeEnum=u,Object.defineProperty(e,"TableManager",{enumerable:!0,get:function(){return R}}),e.TableNumberCompareTypeEnum=c,e.TableStringCompareTypeEnum=l,Object.defineProperty(e,"UniverSheetsTablePlugin",{enumerable:!0,get:function(){return $}}),e.compileTableRecordFilter=P,e.customEmptyThemeWithBorderStyle=ee,e.getExistingNamesSet=C,e.getTableRecordValue=ut,e.getTableRecordValueKey=N,e.isColorTableFilter=x,e.isConditionFilter=y,e.isManualTableFilter=b,e.isRecordTableFilter=S,e.processStyleWithBorderStyle=te,e.validateSheetTableName=bt});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-formula`,`@univerjs/sheets`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsTable={},e.UniverCore,e.UniverEngineFormula,e.UniverSheets,e.rxjs))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=function(e){return e.None=`none`,e.String=`string`,e.Number=`number`,e.Date=`date`,e.Bool=`bool`,e.Checkbox=`checkbox`,e.List=`list`,e}({}),o=function(e){return e.manual=`manual`,e.condition=`condition`,e.color=`color`,e.record=`record`,e}({}),s=function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),c=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.GreaterThan=`greaterThan`,e.GreaterThanOrEqual=`greaterThanOrEqual`,e.LessThan=`lessThan`,e.LessThanOrEqual=`lessThanOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Above=`above`,e.Below=`below`,e.TopN=`topN`,e}({}),l=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),u=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.After=`after`,e.AfterOrEqual=`afterOrEqual`,e.Before=`before`,e.BeforeOrEqual=`beforeOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Today=`today`,e.Yesterday=`yesterday`,e.Tomorrow=`tomorrow`,e.ThisWeek=`thisWeek`,e.LastWeek=`lastWeek`,e.NextWeek=`nextWeek`,e.ThisMonth=`thisMonth`,e.LastMonth=`lastMonth`,e.NextMonth=`nextMonth`,e.ThisQuarter=`thisQuarter`,e.LastQuarter=`lastQuarter`,e.NextQuarter=`nextQuarter`,e.ThisYear=`thisYear`,e.LastYear=`lastYear`,e.NextYear=`nextYear`,e.YearToDate=`yearToDate`,e.Quarter=`quarter`,e.Month=`month`,e.M1=`m1`,e.M2=`m2`,e.M3=`m3`,e.M4=`m4`,e.M5=`m5`,e.M6=`m6`,e.M7=`m7`,e.M8=`m8`,e.M9=`m9`,e.M10=`m10`,e.M11=`m11`,e.M12=`m12`,e.Q1=`q1`,e.Q2=`q2`,e.Q3=`q3`,e.Q4=`q4`,e}({}),d=function(e){return e[e.FilteredSortNone=1]=`FilteredSortNone`,e[e.FilteredSortAsc=2]=`FilteredSortAsc`,e[e.FilteredSortDesc=3]=`FilteredSortDesc`,e[e.FilterNoneSortNone=4]=`FilterNoneSortNone`,e[e.FilterNoneSortAsc=5]=`FilterNoneSortAsc`,e[e.FilterNoneSortDesc=6]=`FilterNoneSortDesc`,e}({}),f=function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function p(e,t){return`${t} ${e}`}let m=`TRUE`,h=`FALSE`,g=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function _(e){if(e){let{v:n,t:r,p:i}=e;return i?g(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?m:h:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?m:h:n==null?``:String(n)}return``}function v(e,t){if(e!=null)switch(t){case`asc`:return 2;case`desc`:return 3;default:return 1}else switch(t){case`asc`:return 5;case`desc`:return 6;default:return 4}}function y(e){return e?e.filterType===`condition`:!1}function b(e){return e?e.filterType===`manual`:!1}function x(e){return e?e.filterType===`color`:!1}function S(e){return e?e.filterType===`record`:!1}function C(e,n){let{univerInstanceService:r,tableManager:i,definedNamesService:a}=n,o=new Set,s=r==null?void 0:r.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);s&&s.getSheets().forEach(e=>{o.add(e.getName().toLowerCase())});let c=i==null?void 0:i.getTableList(e);c&&c.length>0&&c.forEach(e=>{o.add(e.name.toLowerCase())});let l=a==null?void 0:a.getDefinedNameMap(e);return l&&Object.values(l).forEach(e=>{o.add(e.name.toLowerCase())}),o}let w={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},T={},ee={headerRowStyle:{bd:{t:w}},headerColumnStyle:{bd:{l:w}},lastColumnStyle:{bd:{r:w}},lastRowStyle:{bd:{b:w}}},te=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:w}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:w}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:w}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:w}};return t},ne=[[[`#6280F9`,`#FFFFFF`,`#EEF2FF`,`#DCE4FF`],[`#fff`]],[[`#16BDCA`,`#FFFFFF`,`#EDFAFA`,`#AFECEF`],[`#000`]],[[`#31C48D`,`#FFFFFF`,`#F3FAF7`,`#BCF0DA`],[`#fff`]],[[`#AC94FA`,`#FFFFFF`,`#F6F5FF`,`#EDEBFE`],[`#fff`]],[[`#F17EBB`,`#FFFFFF`,`#FDF2F8`,`#FCE8F3`],[`#fff`]],[[`#F98080`,`#FFFFFF`,`#FDF2F2`,`#FDE8E8`],[`#fff`]]].map((e,t)=>{let[n,r]=e,[i,a,o,s]=n,[c]=r;return{name:`table-default-${t}`,style:{headerRowStyle:{bg:{rgb:i},cl:{rgb:c},bd:{t:w}},headerColumnStyle:{bd:{l:w}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:w}},lastColumnStyle:{bd:{r:w}}}}});function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function re(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ie(e){var t=re(e,`string`);return E(t)==`symbol`?t:t+``}function D(e,t,n){return(t=ie(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=class{constructor(e,t){D(this,`dataType`,void 0),D(this,`id`,void 0),D(this,`displayName`,void 0),D(this,`formula`,void 0),D(this,`formulaIsArray`,void 0),D(this,`totalsRowLabel`,void 0),D(this,`totalsRowFunction`,void 0),D(this,`totalsRowFormula`,void 0),D(this,`showFilterButton`,void 0),D(this,`meta`,void 0),D(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=`string`,this.formula=``,this.showFilterButton=!0,this.meta={},this.style={}}getMeta(){return this.meta}setMeta(e){this.meta=e}getDisplayName(){return this.displayName}toJSON(){return{id:this.id,displayName:this.displayName,dataType:this.dataType,formula:this.formula,formulaIsArray:this.formulaIsArray,totalsRowLabel:this.totalsRowLabel,totalsRowFunction:this.totalsRowFunction,totalsRowFormula:this.totalsRowFormula,showFilterButton:this.showFilterButton,meta:this.meta,style:this.style}}fromJSON(e){this.id=e.id,this.displayName=e.displayName,this.dataType=e.dataType,this.formula=e.formula,this.formulaIsArray=e.formulaIsArray,this.totalsRowLabel=e.totalsRowLabel,this.totalsRowFunction=e.totalsRowFunction,this.totalsRowFormula=e.totalsRowFormula,this.showFilterButton=e.showFilterButton??!0,this.meta=e.meta,this.style=e.style}isShowFilterButton(){return this.showFilterButton}};let ae=`SHEET_TABLE_PLUGIN`,k=`SHEET_TABLE`,oe=`table-custom`,se=`__UNIVER_TABLE_FILTER_EMPTY__`,ce=e=>e.getMonth()<=2,le=e=>{let t=e.getMonth();return t>2&&t<=5},ue=e=>{let t=e.getMonth();return t>5&&t<=8},de=e=>{let t=e.getMonth();return t>8&&t<=11},fe=e=>e.getMonth()===0,pe=e=>e.getMonth()===1,me=e=>e.getMonth()===2,he=e=>e.getMonth()===3,ge=e=>e.getMonth()===4,_e=e=>e.getMonth()===5,ve=e=>e.getMonth()===6,ye=e=>e.getMonth()===7,be=e=>e.getMonth()===8,xe=e=>e.getMonth()===9,Se=e=>e.getMonth()===10,Ce=e=>e.getMonth()===11,we=(e,t=new Date)=>e.toDateString()===t.toDateString(),Te=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},Ee=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()-1),e.toDateString()===n.toDateString()},A=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1),r=new Date(e);return r.setDate(n),r},De=6048e5,Oe=(e,t=new Date)=>{let n=A(e),r=A(t);return n.toDateString()===r.toDateString()},ke=(e,t=new Date)=>{let n=A(e),r=new Date(A(t).getTime()+De);return n.toDateString()===r.toDateString()},Ae=(e,t=new Date)=>{let n=A(e),r=new Date(A(t).getTime()-De);return n.toDateString()===r.toDateString()},je=(e,t=new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),Me=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},Ne=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(n.getMonth()+1,1);let r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Pe=(e,t=new Date)=>{let n=Me(t),r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},j=e=>{let t=new Date(e);t.setHours(0,0,0,0),t.setDate(1);let n=t.getMonth();return t.setMonth(n-n%3),t},Fe=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Ie=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=new Date(r);i.setMonth(i.getMonth()+3,0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Le=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()-3);let i=new Date(n);i.setDate(0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Re=(e,t=new Date)=>e.getFullYear()===t.getFullYear(),ze=(e,t=new Date)=>e.getFullYear()===t.getFullYear()+1,Be=(e,t=new Date)=>e.getFullYear()===t.getFullYear()-1,Ve=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(0,1);let r=e.getTime();return r>=n.getTime()&&r<t.getTime()};function He(e){switch(e.compareType){case`equal`:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case`notEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case`after`:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case`before`:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case`afterOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case`beforeOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case`between`:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case`notBetween`:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case`today`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>we(e,t)}case`yesterday`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ee(e,t)}case`tomorrow`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Te(e,t)}case`thisWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Oe(e,t)}case`lastWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ae(e,t)}case`nextWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ke(e,t)}case`thisMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>je(e,t)}case`lastMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Pe(e,t)}case`nextMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ne(e,t)}case`thisQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Fe(e,t)}case`lastQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Le(e,t)}case`nextQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ie(e,t)}case`thisYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Re(e,t)}case`lastYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Be(e,t)}case`nextYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ze(e,t)}case`yearToDate`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ve(e,t)}case`m1`:return fe;case`m2`:return pe;case`m3`:return me;case`m4`:return he;case`m5`:return ge;case`m6`:return _e;case`m7`:return ve;case`m8`:return ye;case`m9`:return be;case`m10`:return xe;case`m11`:return Se;case`m12`:return Ce;case`q1`:return ce;case`q2`:return le;case`q3`:return ue;case`q4`:return de;default:throw Error(`Unsupported compare type`)}}var Ue=class{constructor(){D(this,`heap`,void 0),this.heap=[]}swap(e,t){let n=this.heap[e];this.heap[e]=this.heap[t],this.heap[t]=n}getParentIndex(e){return Math.floor((e-1)/2)}getLeftIndex(e){return e*2+1}getRightIndex(e){return e*2+2}size(){return this.heap.length}peek(){return this.heap[0]}include(e){return this.heap.includes(e)}},We=class extends Ue{constructor(){super()}shiftUp(e){if(e===0)return;let t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){let t=this.getLeftIndex(e),n=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[n]<this.heap[e]&&(this.swap(n,e),this.shiftDown(n))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}};let Ge=(e,t)=>{let n=new We;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},Ke=(e,t)=>e>t,qe=(e,t)=>e<t,Je=(e,t,n)=>Ge(e,t).includes(n);function Ye(e,t){switch(e.compareType){case`equal`:{let t=Number(e.expectedValue);return e=>e===t}case`notEqual`:{let t=Number(e.expectedValue);return e=>e!==t}case`greaterThan`:{let t=Number(e.expectedValue);return e=>e>t}case`greaterThanOrEqual`:{let t=Number(e.expectedValue);return e=>e>=t}case`lessThan`:{let t=Number(e.expectedValue);return e=>e<t}case`lessThanOrEqual`:{let t=Number(e.expectedValue);return e=>e<=t}case`between`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e>=i&&e<=r:e=>e>=r&&e<=i}case`notBetween`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e<i||e>r:e=>e<r||e>i}case`above`:{let e=t.average;return t=>Ke(t,e)}case`below`:{let e=t.average;return t=>qe(t,e)}case`topN`:{let n=t.list,r=Number(e.expectedValue);return e=>Je(n,r,e)}}}let Xe=(e,n)=>t.regexp.createFromWildcard(n).test(e),Ze=(e,n)=>!t.regexp.createFromWildcard(n).test(e),Qe=(e,n)=>t.regexp.createFromWildcard(`*${n}*`).test(e),$e=(e,n)=>!t.regexp.createFromWildcard(`*${n}*`).test(e),et=(e,n)=>t.regexp.createFromWildcard(`${n}*`).test(e),tt=(e,n)=>t.regexp.createFromWildcard(`*${n}`).test(e);function nt(e){switch(e.compareType){case`equal`:return t=>Xe(t,e.expectedValue);case`notEqual`:return t=>Ze(t,e.expectedValue);case`contains`:return t=>Qe(t,e.expectedValue);case`notContains`:return t=>$e(t,e.expectedValue);case`startsWith`:return t=>et(t,e.expectedValue);case`endsWith`:return t=>tt(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let rt=new Set([`above`,`below`,`topN`]);function it(e){return rt.has(e)}function at(e,t){if(it(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case`date`:return He(e.filterInfo);case`number`:return Ye(e.filterInfo,t);case`string`:return nt(e.filterInfo);default:return e=>!0}}function M(e,n,r,i,a=t.DateSystem.Date1900){switch(i){case`date`:{let t=ct(e,n,r);return t==null?null:lt(t,a)}case`number`:return ct(e,n,r);default:return st(e,n,r)}}let ot=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function st(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return ot(s);if(typeof a==`string`)return o===t.CellValueType.BOOLEAN?a.toUpperCase():a;if(typeof a==`number`)return o===t.CellValueType.BOOLEAN?a?`TRUE`:`FALSE`:a;if(typeof a==`boolean`)return a?`TRUE`:`FALSE`;if(a!==void 0)return String(a)}function ct(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;return s?null:typeof a==`string`&&o===t.CellValueType.NUMBER?Number(e.getCellRaw(n,r).v):Number(a)}function lt(e,n=t.DateSystem.Date1900){let r=(0,t.excelSerialToDateTime)(e,n);return Number.isNaN(r.getTime())?r:new Date(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds())}function ut(e,r,i){let a=e.getCell(r,i),o=(0,n.extractFormulaError)(a,(a==null?void 0:a.isInArrayFormulaRange)===!0);if(o!==null)return{type:t.RecordValueType.Error,value:o};if(!a)return{type:t.RecordValueType.Blank};if(a.p)return{type:t.RecordValueType.String,value:_(a)};let s=a.v;if(s==null)return{type:t.RecordValueType.Blank};if(a.t===t.CellValueType.STRING||a.t===t.CellValueType.FORCE_STRING)return{type:t.RecordValueType.String,value:String(s)};if(a.t===t.CellValueType.BOOLEAN)return{type:t.RecordValueType.Boolean,value:dt(s)};if(a.t===t.CellValueType.NUMBER||typeof s==`number`){var c;let n=ft(pt(e,r,i,s,a.t===t.CellValueType.NUMBER,a.isInArrayFormulaRange===!0)),o=(c=e.getComposedCellStyleByCellData(r,i,a).n)==null?void 0:c.pattern;return o&&t.numfmt.getFormatInfo(o).isDate?{type:t.RecordValueType.Date,value:n}:{type:t.RecordValueType.Number,value:n}}if(typeof s==`boolean`)return{type:t.RecordValueType.Boolean,value:s};if(typeof s==`string`)return{type:t.RecordValueType.String,value:s};throw TypeError(`Invalid table record cell value.`)}function N(e){let n=e;if(!mt(n)||typeof n.type!=`string`)throw TypeError(`Invalid table record value.`);switch(n.type){case t.RecordValueType.Blank:if(`value`in n)throw TypeError(`Blank table record values cannot have a value.`);return`["blank"]`;case t.RecordValueType.String:case t.RecordValueType.Error:if(typeof n.value!=`string`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Boolean:if(typeof n.value!=`boolean`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Number:case t.RecordValueType.Date:if(typeof n.value!=`number`)throw TypeError(`Invalid table record value.`);if(!Number.isFinite(n.value))throw RangeError(`Table record numeric values must be finite.`);return JSON.stringify([n.type,n.value===0?0:n.value]);default:throw TypeError(`Unknown table record value type.`)}}function P(e){let n=e;if(!mt(n)||n.filterType!==`record`||n.mode!==t.FilterSelectionMode.Include&&n.mode!==t.FilterSelectionMode.Exclude||!Array.isArray(n.values))throw TypeError(`Invalid table record filter.`);let r=new Set(n.values.map(e=>N(e)));return n.mode===t.FilterSelectionMode.Include?e=>r.has(N(e)):e=>!r.has(N(e))}function F(e){return P(e),{filterType:`record`,mode:e.mode,values:e.values.map(e=>e.type===t.RecordValueType.Blank?{type:t.RecordValueType.Blank}:{...e})}}function dt(e){if(e===!0||e===1||typeof e==`string`&&e.toUpperCase()===`TRUE`)return!0;if(e===!1||e===0||typeof e==`string`&&e.toUpperCase()===`FALSE`)return!1;throw TypeError(`Invalid table record boolean value.`)}function ft(e){let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))throw RangeError(`Table record numeric values must be finite.`);return t}function pt(e,t,n,r,i,a){var o;return!i||a?r:((o=e.getCellRaw(t,n))==null?void 0:o.v)??r}function mt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ht=class{constructor(){D(this,`_tableColumnFilterList`,void 0),D(this,`_tableSortInfo`,void 0),D(this,`_filterOutRows`,new Set),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?t.filterType===`record`?this._tableColumnFilterList[e]=F(t):this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}setSortInfo(e){this._tableSortInfo=e}getColumnFilter(e){let t=this._tableColumnFilterList[e];return(t==null?void 0:t.filterType)===`record`?F(t):t}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:`none`;return v(this._tableColumnFilterList[e],n)}getSortState(){return this._tableSortInfo??{}}getFilterStates(e){let t=[],{startColumn:n,endColumn:r}=e;for(let e=n;e<=r;e++)t.push(this.getFilterState(e-n));return t}getFilterOutRows(){return this._filterOutRows}setFilterOutRows(e){this._filterOutRows=new Set(e)}doFilter(e,n,r=t.DateSystem.Date1900){let i=new Set,a=this._tableColumnFilterList;for(let t=0;t<a.length;t++)a[t]&&this.doColumnFilter(e,n,t,i,r);return this._filterOutRows=i,i}doColumnFilter(e,n,r,i,a=t.DateSystem.Date1900){let o=this._tableColumnFilterList[r];if(o&&e){let{startRow:t,endRow:s,startColumn:c}=n,l=c+r;if(o.filterType===`record`){let n=P(o);for(let r=t;r<=s;r++)n(ut(e,r,l))||i.add(r);return}let u=this.getExecuteFunc(e,n,r,o);for(let n=t;n<=s;n++){if(x(o)){let t=e.getCell(n,l);u(e.getComposedCellStyleByCellData(n,l,t))||i.add(n);continue}let t=y(o)?o.filterInfo.conditionType:`string`,r=M(e,n,l,t,a);r===null&&!u(r)?i.add(n):u(M(e,n,l,t,a))||i.add(n)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,l=0;for(let t=r;t<=i;t++){let n=M(e,t,o,`number`);n!==null&&(s.push(n),c++,l+=n)}return{list:s,average:c>0?l/c:0}}getExecuteFunc(e,n,r,i){if(i.filterType===`manual`){let e=new Set(i.values);return t=>t==null?e.has(se):e.has(String(t))}if(i.filterType===`record`)return P(i);if(i.filterType===`condition`)return at(i,it(i.filterInfo.compareType)?this._getNumberCalculatedOptions(e,n,r):void 0);if(i.filterType===`color`){let e=e=>e?new t.ColorKit(e).toRgbString():null;if(i.cellFillColors){let n=new Set(i.cellFillColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.bg)))}if(i.cellTextColors){let n=new Set(i.cellTextColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.cl)??(0,t.getColorStyle)(t.DEFAULT_STYLES.cl)))}}else return e=>!0;return()=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList.some(e=>(e==null?void 0:e.filterType)===`record`)?this._tableColumnFilterList.map(e=>(e==null?void 0:e.filterType)===`record`?F(e):e):this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){let t=e.tableColumnFilterList??[];t.some(e=>(e==null?void 0:e.filterType)===`record`)?(this._tableColumnFilterList=[],t.forEach((e,t)=>this.setColumnFilter(t,e))):this._tableColumnFilterList=t,e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[],this._filterOutRows=new Set}},gt=class{constructor(e,t,n,r,i={}){D(this,`_id`,void 0),D(this,`_name`,void 0),D(this,`_tableStyleId`,void 0),D(this,`_showHeader`,void 0),D(this,`_showFooter`,void 0),D(this,`_showAutoFilter`,void 0),D(this,`_range`,void 0),D(this,`_columns`,new Map),D(this,`_columnOrder`,[]),D(this,`tableMeta`,void 0),D(this,`_tableFilters`,void 0),D(this,`_subUnitId`,void 0),this._id=e,this._range=n,this._name=t,this._tableFilters=new ht,this._init(r,i)}_init(e,n){this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(n==null?void 0:n.showHeader)??!0,this._showFooter=(n==null?void 0:n.showFooter)??!1,this._showAutoFilter=(n==null?void 0:n.showAutoFilter)??!0;let r=this.getRange(),i=r.startColumn,a=r.endColumn;for(let r=i;r<=a;r++){var o;let a=r-i,s,c;(o=n.columns)!=null&&o[a]?(s=n.columns[a].id,c=n.columns[a].displayName):(s=(0,t.generateRandomId)(),c=e[r-i]);let l=new O(s,c);this._columns.set(s,l),this._columnOrder.push(s)}n.filters&&n.filters.forEach((e,t)=>{e&&this._tableFilters.setColumnFilter(t,e)})}setTableFilterColumn(e,t){this._tableFilters.setColumnFilter(e,t)}getTableFilterColumn(e){return this._tableFilters.getColumnFilter(e)}getTableFilters(){return this._tableFilters}getTableFilterRange(){let e=this.getRange(),t=this.isShowHeader(),n=this.isShowFooter(),{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return{startRow:t?r+1:r,startColumn:i,endRow:n?a-1:a,endColumn:o}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(e=>{let t=new O(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)})}getColumnsCount(){return this._columnOrder.length}insertColumn(e,t){let n=t.id;this._columns.set(n,t),this._columnOrder.splice(e,0,n)}removeColumn(e){let t=this._columnOrder[e];this._columns.delete(t),this._columnOrder.splice(e,1)}setTableMeta(e){this.tableMeta=e}getTableMeta(){return this.tableMeta}getColumn(e){return this._columns.get(e)}getTableColumnByIndex(e){let t=this._columnOrder[e];return this.getColumn(t)}getColumnNameByIndex(e){var t;let n=this._columnOrder[e];return((t=this.getColumn(n))==null?void 0:t.getDisplayName())||``}getId(){return this._id}getRangeInfo(){return{...this._range}}getRange(){return{...this._range}}setRange(e){this._range=e}setDisplayName(e){this._name=e}getDisplayName(){return this._name}getSubunitId(){return this._subUnitId}setSubunitId(e){this._subUnitId=e}getTableStyleId(){return this._tableStyleId??ne[0].name}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){return this._showHeader??!0}setShowHeader(e){this._showHeader=e}isShowFooter(){return this._showFooter??!1}isShowAutoFilter(){return this._showAutoFilter??!0}setShowAutoFilter(e){this._showAutoFilter=e}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,showAutoFilter:this._showAutoFilter,columns:this._columnOrder.map(e=>this._columns.get(e).toJSON())}}getTableConfig(){return{name:this.getDisplayName(),range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter},tableStyleId:this._tableStyleId}}getFilterStates(e){return this._tableFilters.getFilterStates(e)}toJSON(){let e=[];return this._columns.forEach(t=>{e.push(t.toJSON())}),{id:this._id,name:this._name,range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=e.options.showHeader??!0,this._showFooter=e.options.showFooter??!0,this._showAutoFilter=e.options.showAutoFilter??!0,this._columns.clear(),this._columnOrder=[],e.columns.forEach(e=>{let t=new O(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new ht,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!0,this._showAutoFilter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}};function I(e,t){return function(n,r){t(n,r,e)}}function L(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let R=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._localeService=t,D(this,`_tableMap`,void 0),D(this,`_tableAdd$`,new i.Subject),D(this,`tableAdd$`,this._tableAdd$.asObservable()),D(this,`_tableDelete$`,new i.Subject),D(this,`tableDelete$`,this._tableDelete$.asObservable()),D(this,`_tableNameChanged$`,new i.Subject),D(this,`tableNameChanged$`,this._tableNameChanged$.asObservable()),D(this,`_tableRangeChanged$`,new i.Subject),D(this,`tableRangeChanged$`,this._tableRangeChanged$.asObservable()),D(this,`_tableThemeChanged$`,new i.Subject),D(this,`tableThemeChanged$`,this._tableThemeChanged$.asObservable()),D(this,`_tableFilterChanged$`,new i.Subject),D(this,`tableFilterChanged$`,this._tableFilterChanged$.asObservable()),D(this,`_tableInitStatus`,new i.BehaviorSubject(!1)),D(this,`tableInitStatus$`,this._tableInitStatus.asObservable()),this._tableMap=new Map}_ensureUnit(e){return this._tableMap.has(e)||this._tableMap.set(e,new Map),this._tableMap.get(e)}getColumnHeader(e,t,n,r){var i;let a=(i=this._univerInstanceService.getUnit(e))==null?void 0:i.getSheetBySheetId(t),{startRow:o,startColumn:s,endColumn:c}=n,l=[],u=r??`Column`;for(let e=s;e<=c;e++)l.push(_(a==null?void 0:a.getCell(o,e))||p(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o??(0,t.generateRandomId)(),l=new gt(c,r,i,a||this.getColumnHeader(e,n,i),s);if(l.setSubunitId(n),this._ensureUnit(e).set(c,l),this._tableAdd$.next({unitId:e,subUnitId:n,range:i,tableName:r,tableId:c,tableStyleId:s==null?void 0:s.tableStyleId}),s!=null&&s.filters){let t=this._univerInstanceService.getUnit(e),r=t==null?void 0:t.getSheetBySheetId(n);l.getTableFilters().doFilter(r,i,t==null?void 0:t.getDateSystem()),this._tableFilterChanged$.next({unitId:e,subUnitId:n,tableId:c})}return c}addFilter(e,t,n,r){let i=this.getTable(e,t);if(i){i.getTableFilters().setColumnFilter(n,r);let a=i.getSubunitId();this._tableFilterChanged$.next({unitId:e,subUnitId:a,tableId:t})}}getFilterRanges(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push(e.getRange())}),r}getSheetFilterRangeWithState(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&e.isShowAutoFilter()&&r.push({tableId:e.getId(),range:e.getRange(),states:e.getFilterStates(e.getRange())})}),r}getTable(e,t){let n=this._tableMap.get(e);if(n)return n.get(t)}getUniqueTableName(e,t){let n=this._tableMap.get(e);if(!n)return t;let r=new Set(Array.from(n.values()).map(e=>e.getDisplayName())),i=t,a=1;for(;r.has(i);)i=`${t}-${a}`,a++;return i}getTableById(e,t){return this.getTable(e,t)}getTableList(e){let t=this._tableMap.get(e);return t?Array.from(t.values()).map(t=>({...t.getTableInfo(),unitId:e})):[]}getTablesBySubunitId(e,t){let n=this._tableMap.get(e);return n?Array.from(n.values()).filter(e=>e.getSubunitId()===t):[]}getTablesInfoBySubunitId(e,t){return this.getTablesBySubunitId(e,t).map(e=>({id:e.getId(),name:e.getDisplayName(),range:e.getRange()}))}deleteTable(e,t){let n=this._tableMap.get(e),r=n==null?void 0:n.get(t);if(r){let i=r.getTableInfo(),a=r.getTableStyleId();n==null||n.delete(t);let{subUnitId:o,range:s,name:c}=i;this._tableDelete$.next({unitId:e,subUnitId:o,tableId:t,range:s,tableName:c,tableStyleId:a})}}operationTableRowCol(e,n,r){let i=this.getTableById(e,n);if(!i)return;let{operationType:a,rowColType:o,index:s,count:c,columnsJson:l}=r,u=i.getRange(),d={...u};if(a===`insert`){if(o===`row`)d.endRow+=c;else if(o===`column`){d.endColumn+=c;for(let e=0;e<c;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1+e,n));l!=null&&l[e]&&r.fromJSON(l[e]);let a=s+e-u.startColumn;i.insertColumn(a,r)}}}else if(o===`row`)d.endRow-=c;else if(o===`column`){d.endColumn-=c;for(let e=c-1;e>=0;e--){let t=s+e-u.startColumn;i.removeColumn(t)}}i.setRange(d),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:d,oldRange:u})}updateTableRange(e,n,r){let i=this.getTableById(e,n);if(!i)return;let a=i.getRange(),o=r.newRange;if(o.startColumn<a.startColumn){let e=a.startColumn-o.startColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.startColumn,new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}else if(o.startColumn>a.startColumn){let e=o.startColumn-a.startColumn;for(let t=e-1;t>=0;t--){let e=o.startColumn+t-a.startColumn;i.removeColumn(e)}}if(o.endColumn<a.endColumn){let e=a.endColumn-o.endColumn;for(let t=e-1;t>=0;t--){let e=o.endColumn+t-a.startColumn;i.removeColumn(e)}}else if(o.endColumn>a.endColumn){let e=o.endColumn-a.endColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.endColumn,new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}i.setRange(o),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:o,oldRange:a})}setTableByConfig(e,t,n){let r=this._tableMap.get(e),i=r==null?void 0:r.get(t);if(!i)return;let a=i.getSubunitId(),{name:o,updateRange:s,rowColOperation:c,theme:l,sortInfo:u,options:d,filterButtons:f}=n;if(n.calculatedColumn){let e=i.getColumn(n.calculatedColumn.columnId);e&&(e.formula=n.calculatedColumn.formula,e.formulaIsArray=n.calculatedColumn.formulaIsArray)}if(f){f.showAutoFilter!==void 0&&i.setShowAutoFilter(f.showAutoFilter);for(let[e,t]of Object.entries(f.columns??{})){let n=i.getColumn(e);n&&(n.showFilterButton=t)}}if(o){let n=i.getDisplayName();i.setDisplayName(o),this._tableNameChanged$.next({unitId:e,subUnitId:a,tableId:t,tableName:o,oldTableName:n})}if(c&&this.operationTableRowCol(e,t,c),s&&this.updateTableRange(e,t,s),l){let n=i.getTableStyleId()??`default`;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}`sortInfo`in n&&i.getTableFilters().setSortInfo(u),d&&d.showHeader!==void 0&&i.setShowHeader(d.showHeader)}toJSON(e){let t={},n=this._tableMap.get(e);return n&&n.forEach(n=>{let r=n.getSubunitId();if(!t[r]){let n=new Set;this.getTablesBySubunitId(e,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),t[r]={tables:[],tableFilteredOutRows:Array.from(n)}}t[r].tables.push(n.toJSON())}),t}fromJSON(e,t){let n=this._ensureUnit(e);Object.keys(t).forEach(i=>{let a=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:i});if(!a)return;let o=a.worksheet,s;if(t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),!s)return;let c=t[i].tableFilteredOutRows;s.forEach(t=>{var r;let s=this.getColumnHeader(e,i,t.range),l=new gt(t.id,t.name,t.range,s,t.options);if(l.setTableMeta(t.meta),t.columns.length&&l.setColumns(t.columns),t.filters){let e=l.getTableFilters();if(e.fromJSON(t.filters),Array.isArray(c)){let{startRow:t,endRow:n}=l.getTableFilterRange();e.setFilterOutRows(c.filter(e=>e>=t&&e<=n))}else e.doFilter(o,l.getTableFilterRange(),a.workbook.getDateSystem())}l.setSubunitId(i),n.set(t.id,l),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id,tableStyleId:(r=t.options)==null?void 0:r.tableStyleId})})}),this._tableInitStatus.next(!0)}deleteUnitId(e){let t=this._tableMap.get(e);t&&t.forEach(e=>e.dispose()),this._tableMap.delete(e)}dispose(){super.dispose(),this._tableAdd$.complete(),this._tableDelete$.complete(),this._tableNameChanged$.complete(),this._tableRangeChanged$.complete(),this._tableThemeChanged$.complete(),this._tableFilterChanged$.complete(),this._tableInitStatus.complete(),this._tableMap.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._tableMap.clear()}};R=L([I(0,t.IUniverInstanceService),I(1,(0,t.Inject)(t.LocaleService))],R);let z=class extends t.Disposable{constructor(e){super(),this._tableManager=e}getTableInfo(e,t){let n=this._tableManager.getTable(e,t);if(n)return{unitId:e,...n.getTableInfo()}}getTableList(e){return this._tableManager.getTableList(e)}addTable(e,t,n,r,i,a,o){return this._tableManager.addTable(e,t,n,r,i,a,o)}deleteTable(e,t,n){this._tableManager.deleteTable(e,n)}getTableMeta(e,t){var n;return(n=this._tableManager.getTable(e,t))==null?void 0:n.getTableMeta()}setTableMeta(e,t,n){var r;(r=this._tableManager.getTable(e,t))==null||r.setTableMeta(n)}getTableColumnMeta(e,t,n){var r;return(r=this._tableManager.getTable(e,t))==null||(r=r.getTableColumnByIndex(n))==null?void 0:r.getMeta()}selTableColumnMeta(e,t,n,r){var i;(i=this._tableManager.getTable(e,t))==null||(i=i.getTableColumnByIndex(n))==null||i.setMeta(r)}addFilter(e,t,n,r){this._tableManager.addFilter(e,t,n,r)}getCellValueWithConditionType(e,t,n,r=`string`){return M(e,t,n,r)}};z=L([I(0,(0,t.Inject)(R))],z);let B={id:`sheet.mutation.add-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,subUnitId:i,name:a,range:o,header:s,options:c}=t;return e.get(z).addTable(r,i,a,o,s,n,c),!0}},V={id:`sheet.mutation.delete-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,tableId:i}=t;return e.get(z).deleteTable(n,r,i),!0}},_t={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(t.LocaleService),s=e.get(R),c=r.id??(0,t.generateRandomId)(),l=C(r.unitId,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:s,definedNamesService:e.get(n.IDefinedNamesService)}),u=r.name;if(!u||!(0,t.customNameCharacterCheck)(u.toLowerCase(),l)){let e=o.t(`sheets-table.tablePrefix`),t=s.getTableList(r.unitId).length+1;for(let n of l)if(n.startsWith(e.toLowerCase())){let r=Number(n.slice(e.length));Number.isInteger(r)&&r>=t&&(t=r+1)}u=`${e}${t}`}let d=[],f=[],{unitId:p,subUnitId:m,range:h}=r,g=s.getColumnHeader(p,m,h,o.t(`sheets-table.columnPrefix`));return d.push({id:B.id,params:{...r,tableId:c,name:u,header:g}}),f.push({id:V.id,params:{tableId:c,unitId:r.unitId}}),(0,t.sequenceExecute)(d,a).result?(i.pushUndoRedo({unitID:r.unitId,undoMutations:f,redoMutations:d}),!0):!1}},H={id:`sheet.mutation.set-sheet-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,tableId:r,config:i}=t;return e.get(R).setTableByConfig(n,r,i),!0}},vt={id:`sheet.command.add-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(R),{unitId:a,tableId:o,themeStyle:s}=n,c=[],l=[],u=i.getTableById(a,o);if(!u)return!1;let d=u.getSubunitId();c.push({id:r.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleJSON:s.toJson()}}),c.push({id:H.id,params:{unitId:a,subUnitId:d,tableId:o,config:{theme:s.getName()}}}),l.push({id:H.id,params:{unitId:a,subUnitId:d,tableId:o,config:{themeStyle:u.getTableStyleId()}}}),l.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleName:s.getName()}});let f=e.get(t.ICommandService);return(0,t.sequenceExecute)(c,f).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0):!1}},U={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(R),s=e.get(t.ILogService),c=[],l=[],u=o.getTable(n.unitId,n.tableId),d=u==null?void 0:u.toJSON();if(!d)return s.error(`[TableManager]: Table not found`),!1;let f=e.get(r.SheetInterceptorService).onCommandExecute({id:U.id,params:{...n,tableName:d.name}});return c.push(...f.preRedos??[]),c.push({id:V.id,params:{...n}}),c.push(...f.redos),l.push(...f.preUndos??[]),l.push({id:B.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:d.name,range:d.range,options:d.options}}),l.push(...f.undos),(0,t.sequenceExecute)(c,a).result?(i.pushUndoRedo({unitID:n.unitId,undoMutations:l,redoMutations:c}),!0):!1}},yt={id:`sheet.command.remove-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,tableId:a,themeName:o}=n,s=e.get(R),c=e.get(r.SheetRangeThemeModel),l=s.getTableById(i,a);if(!l)return!1;let u=l.getSubunitId(),d=[],f=[],p=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(`table-default`)),m=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(oe)).find(e=>e!==o);m||=p[0],d.push({id:H.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:m}}}),d.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleName:o}});let h=c.getDefaultRangeThemeStyle(o);h&&(f.push({id:r.AddRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleJSON:h.toJson()}}),f.push({id:H.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:o}}}));let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(d,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0):!1}};function bt(e,n){let r=e.trim();if(!r)return{valid:!1,reason:`empty`};let i=new Set(Array.from(n,e=>e.toLowerCase()));return(0,t.customNameCharacterCheck)(r.toLowerCase(),i)?{valid:!0}:{valid:!1,reason:`invalid`}}function W(e,i,a,o,s,c,l){var u;let d=(u=e.getTableInfo)==null?void 0:u.call(e);if(!d)return;let f=d.range.startRow+ +!!d.showHeader,p={},m;if(d.columns.forEach((e,r)=>{var i;if(l&&e.id!==l.columnId)return;let a=(i=(l==null?void 0:l.formula)??e.formula)==null?void 0:i.trim(),u=(l==null?void 0:l.formulaIsArray)??e.formulaIsArray;if(!a)return;let h=xt(a.startsWith(`=`)?a:`=${a}`,d.name),g=d.range.startColumn+r;m??=c();for(let e=o;e<=s;e++){p[e]??={};let r={f:m.moveFormulaRefOffset(h,0,e-f),si:null,ref:null,ft:u?t.FormulaType.ARRAY:null,fd:u?t.BooleanNumber.FALSE:null,v:null,p:null,t:null};u&&(r.ref=(0,n.serializeRange)({startRow:e,endRow:e,startColumn:g,endColumn:g})),p[e][g]=r}}),Object.keys(p).length)return{id:r.SetRangeValuesMutation.id,params:{unitId:i,subUnitId:a,cellValue:p}}}function xt(e,t){let n=``;for(let r=0;r<e.length;r++){let i=r,a=e[r];if(a===`"`||a===`'`){for(;++r<e.length;)if(e[r]===a){if(e[r+1]!==a)break;r++}}else if(a===`[`){let a=1;for(;++r<e.length&&a>0&&(e[r]===`'`?r++:e[r]===`[`?a++:e[r]===`]`&&a--,a!==0););if(a===0){let a=e.slice(i+1,r),o=e.slice(0,i).trimEnd().slice(-1),s=!o||/[=+\-*/^&(<>,;:{]/.test(o),c=e.slice(r+1).trimStart();if(!/^[^+\-*/^&=<>%),;}:\s]/.test(c)){let e=s?t:``,r=a.slice(1);n+=a.startsWith(`@`)?`${e}[[#This Row],${r.startsWith(`[`)?r:`[${r}]`}]`:`${e}[${a}]`;continue}}}n+=e.slice(i,r+1)}return n}let St={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,tableId:o,name:s,updateRange:c,rowColOperation:l,theme:u,filterButtons:d}=i,f=e.get(R),p=f.getTableById(a,o);if(!p)return!1;let m=[],h=[],g={},_={};if(i.calculatedColumn){let{columnId:t,formula:o,formulaIsArray:s}=i.calculatedColumn,u=p.getColumn(t);if(!u||typeof o!=`string`||s!==void 0&&typeof s!=`boolean`||c||l)return!1;let d=p.getTableFilterRange(),f=p.getTableInfo().columns.findIndex(e=>e.id===t),v=d.startColumn+f,y={...d,startColumn:v,endColumn:v};if(!(0,r.checkRangesEditablePermission)(e,a,p.getSubunitId(),[y]))return!1;let b=o.trim();if(b===`=`)return!1;g.calculatedColumn={columnId:t,formula:u.formula,formulaIsArray:u.formulaIsArray},_.calculatedColumn={columnId:t,formula:b&&!b.startsWith(`=`)?`=${b}`:b,formulaIsArray:b?s??u.formulaIsArray:void 0};let x=W(p,a,p.getSubunitId(),d.startRow,d.endRow,()=>e.get(n.LexerTreeBuilder),_.calculatedColumn);x&&(m.push(x),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,x.params)}))}if(d){var v;if(((v=e.get(t.IPermissionService).getPermissionPoint(new r.WorkbookEditablePermission(a).id))==null?void 0:v.value)===!1)return!1;let{showAutoFilter:n,columns:i}=d;if(n!==void 0&&typeof n!=`boolean`)return!1;let o=Object.entries(i??{});if(o.some(([e,t])=>!p.getColumn(e)||typeof t!=`boolean`))return!1;g.filterButtons={...n===void 0?{}:{showAutoFilter:p.isShowAutoFilter()},columns:Object.fromEntries(o.map(([e])=>[e,p.getColumn(e).isShowFilterButton()]))},_.filterButtons={...n===void 0?{}:{showAutoFilter:n},columns:Object.fromEntries(o)}}let y=e.get(t.LocaleService),b=C(a,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:f,definedNamesService:e.get(n.IDefinedNamesService)});if(s){if(!bt(s,b).valid)return e.get(t.ILogService).warn(y.t(`sheets-table.tableNameError`)),!1;g.name=p.getDisplayName(),_.name=s}l&&(g.rowColOperation={operationType:l.operationType===`insert`?`delete`:`insert`,rowColType:l.rowColType,index:l.index,count:l.count},_.rowColOperation=l),c&&(g.updateRange={newRange:p.getRange()},_.updateRange=c),u&&(g.theme=p.getTableStyleId(),_.theme=u);let x={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:_},S={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:g},w=e.get(r.SheetInterceptorService).onCommandExecute({id:St.id,params:{...i,oldTableName:g.name}}),T=[...w.preRedos??[],{id:H.id,params:x},...m,...w.redos],ee=[...w.preUndos??[],{id:H.id,params:S},...h,...w.undos],te=e.get(t.ICommandService);return(0,t.sequenceExecute)(T,te).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:ee,redoMutations:T}),!0):!1}},G={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t,o=e.get(R),s=o.getTable(r,n);if(o.addFilter(r,n,i,a),s){var c;let e=s.getTableFilters();t.filterOutRows?e.setFilterOutRows(t.filterOutRows):t.filterOutRows=[...e.getFilterOutRows()],t.subUnitId=s.getSubunitId(),t.tableFilteredOutRows=((c=o.toJSON(r)[t.subUnitId])==null?void 0:c.tableFilteredOutRows)??[]}return!0}},Ct={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;if(!n)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(R),c=n.tableId||(0,t.generateRandomId)(),l=(r=s.getTable(n.unitId,c))==null?void 0:r.getTableFilters(),u=l==null?void 0:l.getColumnFilter(n.column),d=[...(l==null?void 0:l.getFilterOutRows())??[]],f=((i=n.tableFilter)==null?void 0:i.filterType)===`record`?F(n.tableFilter):n.tableFilter,p=[],m=[];return p.push({id:G.id,params:{...n,tableId:c,tableFilter:f}}),m.push({id:G.id,params:{...n,tableId:c,tableFilter:u,filterOutRows:d}}),(0,t.sequenceExecute)(p,o).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:m,redoMutations:p}),!0):!1}},wt={id:`sheet.command.set-table-sort-state`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(R).getTable(n.unitId,n.tableId);if(!r)return!1;let i=r.getTableFilters().toJSON().tableSortInfo,a=e.get(t.ICommandService),o={unitId:n.unitId,subUnitId:r.getSubunitId(),tableId:n.tableId,config:{sortInfo:n.sortInfo}};return a.syncExecuteCommand(H.id,o)?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n.unitId,undoMutations:[{id:H.id,params:{...o,config:{sortInfo:i}}}],redoMutations:[{id:H.id,params:o}]}),!0):!1}},K=class extends t.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetInterceptorService=t,this._tableManager=n,this._resourceManagerService=r,D(this,`_tableRangeRTree`,new Map),this.registerTableChangeEvent(),this._initSnapshot(),this._initSheetChange(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(e,n,r){let i=this._ensureTableRangeRTree(e),a=Array.from(i.bulkSearch([{unitId:e,sheetId:n,range:r}])).find(n=>{let i=this._tableManager.getTable(e,String(n));return i?t.Rectangle.contains(i.getRange(),r):!1});if(a)return this._tableManager.getTable(e,String(a))}_ensureTableRangeRTree(e){return this._tableRangeRTree.has(e)||this._tableRangeRTree.set(e,new t.RTree),this._tableRangeRTree.get(e)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._ensureTableRangeRTree(r).insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,oldRange:a}=e,o=this._ensureTableRangeRTree(r);o.remove({unitId:r,sheetId:i,id:n,range:{...a}}),o.insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._ensureTableRangeRTree(n).remove({unitId:n,sheetId:r,id:t,range:{...i}})}))}registerTableHeaderInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._ensureTableRangeRTree(a);if((e==null?void 0:e.v)===void 0&&s){let c=Array.from(s.bulkSearch([{unitId:a,sheetId:o,range:{startColumn:i,endColumn:i,startRow:r,endRow:r}}]));if(c.length>0){let o=this._tableManager.getTable(a,c[0]);if(o){let a=o.getRange(),s=i-a.startColumn;if(a.startRow===r){let r=o.getColumnNameByIndex(s);return(!e||e===t.rawData)&&(e={...t.rawData}),e.v=r,n(e)}}}}return n(e)}}))}_toJson(e){return this._tableManager.toJSON(e)}_fromJSON(e,t){return this._tableManager.fromJSON(e,t)}_deleteUnitId(e){this._tableManager.deleteUnitId(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>JSON.stringify(this._toJson(e)),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:ae,onLoad:(e,t)=>{this._fromJSON(e,t)},onUnLoad:e=>{this._deleteUnitId(e)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId||this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=r.subUnitId||((n=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:n.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._tableManager.getTablesBySubunitId(i,a);if(o.length===0)return{redos:[],undos:[]};let s=[],c=[];return o.forEach(e=>{let t=e.toJSON();s.push({id:V.id,params:{unitId:i,subUnitId:a,tableId:t.id}}),c.push({id:B.id,params:{unitId:i,subUnitId:a,name:t.name,range:t.range,tableId:t.id,options:{...t.options,columns:t.columns,filters:t.filters.tableColumnFilterList}}})}),{redos:s,undos:c}}if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._tableManager.getTablesBySubunitId(n,r);if(a.length===0)return{redos:[],undos:[]};let o=[],s=[];return a.forEach(e=>{let r=e.toJSON(),a=(0,t.generateRandomId)();o.push({id:B.id,params:{unitId:n,subUnitId:i,name:r.name,range:{...r.range,sheetId:i},tableId:a,options:{...r.options,columns:r.columns,filters:r.filters.tableColumnFilterList}}}),s.push({id:V.id,params:{unitId:n,subUnitId:i,tableId:a}})}),{redos:o,undos:s}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}};K=L([I(0,(0,t.Inject)(t.IUniverInstanceService)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,(0,t.Inject)(R)),I(3,(0,t.Inject)(t.IResourceManagerService))],K);function Tt(e,n,r,i){let a=e.get(t.ICommandService);return(0,t.sequenceExecute)(r,a).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:i,redoMutations:r}),!0):!1}let Et={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(K).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endRow-u.startRow+1,p=o.getRowCount()-1,m=o.getCellMatrix().getDataRange().endRow,h=[],g=[];if(p-m<f)h.push({id:r.InsertRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}}),h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...d.getRange(),endRow:d.getRange().endRow+f}}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:d.getRange()}}}}),g.push({id:r.RemoveRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}});else{let t={...d.getRange()};h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t,endRow:t.endRow+f}}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:s,fromSubUnitId:c,toSubUnitId:c,fromRange:{startRow:u.startRow,endRow:m,startColumn:t.startColumn,endColumn:t.endColumn},toRange:{startRow:u.startRow+f,endRow:m+f,startColumn:t.startColumn,endColumn:t.endColumn}},{includeSelection:!1,includeAutoHeight:!1});n&&(h.push(...n.redos),g.push(...n.undos))}let _=W(d,s,c,u.startRow,u.endRow,()=>e.get(n.LexerTreeBuilder));_&&(h.push(_),g.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,_.params)}));let v=e.get(t.ICommandService);return(0,t.sequenceExecute)(h,v).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:g,redoMutations:h}),!0):!1}},Dt={id:`sheet.command.table-insert-row-at`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,subUnitId:o,tableId:s,index:c,count:l=1}=i;if(l<=0)return!1;let u=e.get(t.IUniverInstanceService),d=(0,r.getSheetCommandTarget)(u,{unitId:a,subUnitId:o});if(!d)return!1;let f=e.get(R).getTableById(a,s);if(!f||f.getSubunitId()!==o)return!1;let p=f.getRange();if(c<=p.startRow||c>p.endRow+1)return!1;let m=[{id:H.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p,endRow:p.endRow+l}}}}}],h=[{id:H.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p}}}}}],g=d.worksheet.getCellMatrix().getDataRange().endRow,_=c<=g?(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:a,fromSubUnitId:o,toSubUnitId:o,fromRange:{startRow:c,endRow:g,startColumn:p.startColumn,endColumn:p.endColumn},toRange:{startRow:c+l,endRow:g+l,startColumn:p.startColumn,endColumn:p.endColumn}},{includeSelection:!1,includeAutoHeight:!1}):null;_&&(m.push(..._.redos),h.push(..._.undos));let v=W(f,a,o,c,c+l-1,()=>e.get(n.LexerTreeBuilder));return v&&(m.push(v),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,v.params)})),Tt(e,a,m,h)}},Ot={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=e.get(t.IUniverInstanceService),i=(0,r.getSheetCommandTarget)(n);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(K).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endColumn-l.startColumn+1,f=a.getColumnCount()-1,p=a.getCellMatrix().getDataRange().endColumn,m=[],h=[];if(f-p<d)m.push({id:r.InsertColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:r.RemoveColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}});else{let t=u.getRange();m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn,endColumn:p}},{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn+d,endColumn:p+d}});n&&(m.push(...n.redos),h.push(...n.undos))}let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(m,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},kt={id:`sheet.command.table-insert-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(R).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s>f.endColumn+1)return!1;let p=[{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c}}}}],m=[{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}}],h=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s<=h){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:h}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:h+c}});t&&(p.push(...t.redos),m.push(...t.undos))}return Tt(e,i,p,m)}},At={id:`sheet.command.table-remove-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(R).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s+c-1>f.endColumn||c>=f.endColumn-f.startColumn+1)return!1;let p=d.getTableInfo(),m=[],h=s-f.startColumn;for(let e=0;e<c;e++){let t=p.columns[h+e];t&&m.push(t)}let g=e.get(r.SheetInterceptorService).onCommandExecute({id:At.id,params:{...n,tableName:p.name,removedColumnNames:m.map(e=>e.displayName)}}),_=[...g.preRedos??[],{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}},...g.redos],v=[...g.preUndos??[],{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c,columnsJson:m}}}},...g.undos],y=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s+c<=y){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:y}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:y-c}});t&&(_.push(...t.redos),v.push(...t.undos))}return Tt(e,i,_,v)}},jt={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(K).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endRow-l.startRow+1,f=[],p=[],m=u.getRange();f.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m,endRow:m.endRow-d}}}}}),p.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m}}}}});let h=a.worksheet.getCellMatrix().getDataRange().endRow,g=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.endRow+1,endRow:h,startColumn:m.startColumn,endColumn:m.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:h-d,startColumn:m.startColumn,endColumn:m.endColumn}});g&&(f.push(...g.redos),p.push(...g.undos));let _=e.get(t.ICommandService);return(0,t.sequenceExecute)(f,_).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:p,redoMutations:f}),!0):!1}},q={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{workbook:o,unitId:s,subUnitId:c}=a;e.get(R);let l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(K).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endColumn-u.startColumn+1,p=[],m=[],h=d.getRange();p.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:u.startColumn,count:f}}}});let g=d.getTableInfo(),_=[],v=u.startColumn-h.startColumn;for(let e=0;e<f;e++){let t=g.columns[v+e];t&&_.push(t)}let y=e.get(r.SheetInterceptorService).onCommandExecute({id:q.id,params:{...n,tableName:g.name,removedColumnNames:_.map(e=>e.displayName)}});p.unshift(...y.preRedos??[]),p.push(...y.redos),m.unshift(...y.preUndos??[]),m.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:u.startColumn,count:f,columnsJson:_}}}}),m.push(...y.undos);let b=a.worksheet.getCellMatrix().getDataRange().endColumn,x=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.endColumn+1,endColumn:b}},{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.startColumn,endColumn:b-f}});x&&(p.push(...x.redos),m.push(...x.undos));let S=e.get(t.ICommandService);return(0,t.sequenceExecute)(p,S).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}},J=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=n,this._configService=r,D(this,`_defaultThemeIndex`,0),D(this,`_allThemes`,[]),this._initUserTableTheme(),this.registerTableChangeEvent(),this._initDefaultTableTheme()}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,tableStyleId:a}=e,o=this._tableManager.getTable(r,n),s=a||this._allThemes[this._defaultThemeIndex].name;o.setTableStyleId(s),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:r,subUnitId:i,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,oldRange:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r),s=o.getTableStyleId();s||(s=this._allThemes[this._defaultThemeIndex].name,o.setTableStyleId(s)),this._sheetRangeThemeService.removeRangeThemeRule(s,{unitId:i,subUnitId:a,range:{...n}}),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:i,subUnitId:a,range:{...t}})})),this.disposeWithMe(this._tableManager.tableThemeChanged$.subscribe(e=>{let{theme:t,oldTheme:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r).getRange();this._sheetRangeThemeService.removeRangeThemeRule(n,{unitId:i,subUnitId:a,range:{...o}}),this._sheetRangeThemeService.registerRangeThemeStyle(t,{unitId:i,subUnitId:a,range:{...o}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{range:t,unitId:n,subUnitId:r,tableStyleId:i=this._allThemes[this._defaultThemeIndex].name}=e;this._sheetRangeThemeService.removeRangeThemeRule(i,{unitId:n,subUnitId:r,range:{...t}})}))}_initUserTableTheme(){let e=this._configService.getConfig(`sheets-table.config`)||{},t=e.defaultThemeIndex||0,n=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=n.concat(ne)}_initDefaultTableTheme(){for(let e=0;e<this._allThemes.length;e++){let{name:t,style:n}=this._allThemes[e],i=new r.RangeThemeStyle(t,n);this._sheetRangeThemeModel.registerDefaultRangeTheme(i)}}dispose(){super.dispose(),this._allThemes=[],this._defaultThemeIndex=0}};J=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetRangeThemeService)),I(2,(0,t.Inject)(r.SheetRangeThemeModel)),I(3,t.IConfigService)],J);var Mt=`@univerjs/sheets-table`,Nt=`1.0.1`;let Y=class extends t.Disposable{constructor(e,t,n){super(),this._tableManager=e,this._commandService=t,this._activeDirtyManagerService=n,this._initRangeListener(),this._initFilterDirtyRange()}_initFilterDirtyRange(){this._activeDirtyManagerService.register(G.id,{commandId:G.id,getDirtyData:e=>{let t=e.params,n=this._tableManager.getTableById(t.unitId,t.tableId);if(!n)return{};let{subUnitId:r,range:i}=n.getTableInfo();return{dirtyRanges:[{unitId:t.unitId,sheetId:r,range:i}],clearDependencyTreeCache:{[t.unitId]:{[r]:`1`}}}}}),this.disposeWithMe((0,t.toDisposable)(()=>{this._activeDirtyManagerService.remove(G.id)}))}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{unitId:t,subUnitId:r,tableName:i,range:a}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:i,reference:{sheetId:r,range:a}},{onlyLocal:!0})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(e=>{let{tableId:t,unitId:r,oldTableName:i}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:r,tableName:i},{onlyLocal:!0});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a,i)}))}_updateSuperTable(e,t,r){let i=t.getTableInfo(),a=i.name,o=i.columns,s=new Map;o.forEach((e,t)=>{s.set(e.displayName,t)}),this._commandService.executeCommand(n.SetSuperTableMutation.id,{unitId:e,tableName:a,oldTableName:r,reference:{range:i.range,sheetId:i.subUnitId,titleMap:s}},{onlyLocal:!0})}};Y=L([I(0,(0,t.Inject)(R)),I(1,t.ICommandService),I(2,n.IActiveDirtyManagerService)],Y);let X=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._exclusiveRangeService=t,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(r,i,k,n),this._exclusiveRangeService.addExclusiveRange(r,i,k,[{range:{...t},groupId:n}])})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._exclusiveRangeService.addExclusiveRange(n,r,k,[{range:{...i},groupId:t}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(n,r,k,t)}))}};X=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.IExclusiveRangeService))],X);let Z=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._tableManager=a,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({priority:-1,getMutations(t){let n={redos:[],undos:[]},{id:i,params:a}=t;switch(i){case r.InsertRowCommand.id:return e._generateTableMutationWithInsertRow(a);case r.InsertColCommand.id:return e._generateTableMutationWithInsertCol(a);case r.RemoveRowCommand.id:return e._generateTableMutationWithRemoveRow(a);case r.RemoveColCommand.id:return e._generateTableMutationWithRemoveCol(a)}return n}})}_generateTableMutationWithInsertRow(e){let t=[],i=[],a=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!a)return{undos:t,redos:i};let{unitId:o,subUnitId:s}=a,c=this._tableManager.getTablesBySubunitId(o,s);if(!c.length)return{undos:t,redos:i};let{range:l}=e;return c.forEach(e=>{let r=e.getRange();if(l.startRow>r.startRow&&l.startRow<=r.endRow){let a=l.endRow-l.startRow+1;i.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+a}}}}});let c=W(e,o,s,l.startRow,l.endRow,()=>this._injector.get(n.LexerTreeBuilder));c&&i.push(c),t.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:i}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startColumn>r.startColumn&&c.startColumn<=r.endColumn){let r=c.endColumn-c.startColumn+1;n.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:r}}}}),t.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:r}}}})}}),{undos:t,redos:n}}_generateTableMutationWithRemoveRow(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endRow-d.startRow+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startRow<=r.startRow&&d.endRow>=r.startRow){a.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let t=e.toJSON();n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:t.id,name:t.name,range:t.range,options:t.options}})}else d.startRow>r.startRow&&d.startRow<=r.endRow?(i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow-f}}}}}),n.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})):d.startRow<r.endRow&&d.endRow>=r.endRow&&(i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:d.startRow-1}}}}}),n.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}}))}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_generateTableMutationWithRemoveCol(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endColumn-d.startColumn+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startColumn<=r.startColumn&&d.endColumn>=r.endColumn){let t=e.getTableInfo(),r=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.delete-table`,params:{unitId:c,subUnitId:l,tableId:e.getId(),tableName:t.name}});a.push(...r.preRedos??[],...r.redos),a.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let s=e.toJSON(),{startRow:u,startColumn:d,endColumn:f}=s.range,m=this._univerInstanceService.getUnit(c),h=m==null?void 0:m.getSheetBySheetId(l);if(!h)return{undos:n,redos:i,preRedos:a,preUndos:o};let g=[];for(let e=d;e<=f;e++)g.push(_(h==null?void 0:h.getCell(u,e))||p(e-d+1,this._localeService.t(`sheets-table.columnPrefix`)));n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:s.id,name:s.name,header:g,range:s.range,options:s.options}}),n.push(...r.preUndos??[],...r.undos)}else if(d.startColumn<=r.startColumn&&d.endColumn>=r.startColumn){let t=e.toJSON(),a=d.endColumn-r.startColumn+1;i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:r.startColumn,count:a}}}});let s=[];for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn>r.endColumn){let t=e.toJSON(),a=r.endColumn-d.startColumn+1;i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:a}}}});let s=[],u=d.startColumn-r.startColumn;for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t+u);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn<=r.endColumn){let t=e.toJSON();i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:f}}}});let a=[],s=d.startColumn-r.startColumn;for(let t=0;t<f;t++){let n=e.getTableColumnByIndex(t+s);n&&a.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:a})}}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_getDeleteTableMutation(e,t,n){return{id:V.id,params:{unitId:e,subUnitId:t,tableId:n}}}_getAddTableMutation(e,t,n){let r=n.columns.map(e=>e.displayName);return{id:B.id,params:{unitId:e,subUnitId:t,tableId:n.id,name:n.name,header:r,range:n.range,options:{...n.options,columns:n.columns,filters:n.filters.tableColumnFilterList}}}}_appendTableColumnFormulaMutations(e,t,n){let r=n.columns.map(e=>e.displayName);if(!r.length)return;let i=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.table-remove-col`,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,tableName:n.tableName,range:n.range,removedColumnNames:r}});e.splice(Math.max(e.length-1,0),0,...i.preRedos??[],...i.redos),t.push(...i.preUndos??[],...i.undos)}_initCommandListener(){this._commandService.onCommandExecuted(e=>{if(e.id===r.InsertRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<=n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow+i,endRow:n.endRow+i}})})}else if(e.id===r.InsertColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<=n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn+i,endColumn:n.endColumn+i}})})}else if(e.id===r.RemoveRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow-i,endRow:n.endRow-i}})})}else if(e.id===r.RemoveColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn-i,endColumn:n.endColumn-i}})})}})}};Z=L([I(0,(0,t.Inject)(t.ICommandService)),I(1,(0,t.Inject)(r.RefRangeService)),I(2,(0,t.Inject)(t.IUniverInstanceService)),I(3,(0,t.Inject)(t.Injector)),I(4,(0,t.Inject)(r.SheetInterceptorService)),I(5,(0,t.Inject)(R)),I(6,(0,t.Inject)(t.LocaleService))],Z);let Q=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._sheetRowFilteredService=r,this._zebraCrossingCacheController=i,D(this,`_tableFilteredOutRows`,new Map),D(this,`_subscription`,null),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._registerFormulaRowFiltered(),this._initFilteredOutRows()}_registerFormulaRowFiltered(){this.disposeWithMe(this._sheetRowFilteredService.register((e,t,n)=>this._getTableFilteredOutRows(e,t).has(n)))}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this._getTableFilteredOutRows(t.unitId,t.subUnitId).has(t.row);return r?!0:n(r)}}))}_initFilteredOutRows(){this._tableManager.tableInitStatus$.pipe((0,i.filter)(e=>e),(0,i.switchMap)(()=>this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET)),(0,i.filter)(e=>e!=null),(0,i.switchMap)(e=>e.activeSheet$),(0,i.filter)(e=>e!=null)).subscribe(()=>{let e=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!e)return;let{unitId:t,subUnitId:n}=e;this._refreshTableFilteredOutRows(t,n)})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{let{unitId:t,subUnitId:n,tableId:r}=e,i=this._univerInstanceService.getUnit(t),a=i==null?void 0:i.getSheetBySheetId(n),o=this._tableManager.getTable(t,r);a&&o&&(o.getTableFilters().doFilter(a,o.getTableFilterRange(),i==null?void 0:i.getDateSystem()),this._refreshTableFilteredOutRows(t,n),this._zebraCrossingCacheController.updateZebraCrossingCache(t,n))}))}_refreshTableFilteredOutRows(e,t){let n=new Set;this._tableManager.getTablesBySubunitId(e,t).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),this._tableFilteredOutRows.set(this._getSheetKey(e,t),n)}_getTableFilteredOutRows(e,t){let n=this._getSheetKey(e,t);return this._tableFilteredOutRows.has(n)||this._refreshTableFilteredOutRows(e,t),this._tableFilteredOutRows.get(n)??new Set}_getSheetKey(e,t){return`${e}|${t}`}dispose(){var e;super.dispose(),(e=this._subscription)==null||e.unsubscribe()}};Q=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,(0,t.Inject)(t.IUniverInstanceService)),I(3,(0,t.Inject)(n.ISheetRowFilteredService)),I(4,(0,t.Inject)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=T,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},T,this._config);this._configService.setConfig(`sheets-table.config`,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[R],[J],[K],[z],[Q],[X],[Z],[Y]])}onReady(){(0,t.touchDependencies)(this._injector,[[Y],[X],[Z],[J],[K],[z],[Q]]),(0,t.touchDependencies)(this._injector,[[R]])}_initRegisterCommand(){[_t,B,U,V,G,Ct,wt,St,H,vt,yt,Et,Ot,Dt,kt,jt,q,At].forEach(e=>this._commandService.registerCommand(e))}};D($,`pluginName`,ae),D($,`packageName`,Mt),D($,`version`,Nt),D($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=L([(0,t.DependentOn)(r.UniverSheetsPlugin),I(1,(0,t.Inject)(t.Injector)),I(2,t.IConfigService),I(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=_t,e.AddSheetTableMutation=B,e.AddTableThemeCommand=vt,e.DeleteSheetTableCommand=U,e.DeleteSheetTableMutation=V,e.RemoveTableThemeCommand=yt,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=oe,e.SetSheetTableCommand=St,e.SetSheetTableFilterCommand=Ct,e.SetSheetTableFilterMutation=G,e.SetSheetTableMutation=H,e.SetSheetTableSortStateCommand=wt,e.SheetTableInsertColCommand=Ot,e.SheetTableInsertColumnAtCommand=kt,e.SheetTableInsertRowAtCommand=Dt,e.SheetTableInsertRowCommand=Et,e.SheetTableRemoveColCommand=q,e.SheetTableRemoveColumnAtCommand=At,e.SheetTableRemoveRowCommand=jt,Object.defineProperty(e,"SheetTableService",{enumerable:!0,get:function(){return z}}),e.SheetsTableButtonStateEnum=d,Object.defineProperty(e,"SheetsTableController",{enumerable:!0,get:function(){return K}}),e.SheetsTableSortStateEnum=f,Object.defineProperty(e,"SheetsTableThemeController",{enumerable:!0,get:function(){return J}}),e.TABLE_FILTER_EMPTY_VALUE=se,e.TableColumnDataTypeEnum=a,e.TableColumnFilterTypeEnum=o,e.TableConditionTypeEnum=s,e.TableDateCompareTypeEnum=u,Object.defineProperty(e,"TableManager",{enumerable:!0,get:function(){return R}}),e.TableNumberCompareTypeEnum=c,e.TableStringCompareTypeEnum=l,Object.defineProperty(e,"UniverSheetsTablePlugin",{enumerable:!0,get:function(){return $}}),e.compileTableRecordFilter=P,e.customEmptyThemeWithBorderStyle=ee,e.getExistingNamesSet=C,e.getTableRecordValue=ut,e.getTableRecordValueKey=N,e.isColorTableFilter=x,e.isConditionFilter=y,e.isManualTableFilter=b,e.isRecordTableFilter=S,e.processStyleWithBorderStyle=te,e.validateSheetTableName=bt});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-table",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Structured table model and commands for Univer Sheets.",
|
|
6
6
|
"author": "DreamNum Co., Ltd. <developer@univer.ai>",
|
|
@@ -67,14 +67,14 @@
|
|
|
67
67
|
"rxjs": ">=7.0.0"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@univerjs/core": "1.0.
|
|
71
|
-
"@univerjs/engine-formula": "1.0.
|
|
72
|
-
"@univerjs/sheets": "1.0.
|
|
70
|
+
"@univerjs/core": "1.0.1",
|
|
71
|
+
"@univerjs/engine-formula": "1.0.1",
|
|
72
|
+
"@univerjs/sheets": "1.0.1"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@univerjs-infra/shared": "1.0.
|
|
76
|
-
"@univerjs/engine-render": "1.0.
|
|
77
|
-
"@univerjs/sheets-formula": "1.0.
|
|
75
|
+
"@univerjs-infra/shared": "1.0.1",
|
|
76
|
+
"@univerjs/engine-render": "1.0.1",
|
|
77
|
+
"@univerjs/sheets-formula": "1.0.1",
|
|
78
78
|
"rxjs": "^7.8.2",
|
|
79
79
|
"typescript": "^6.0.3",
|
|
80
80
|
"vitest": "^5.0.0"
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { IDocumentData, Worksheet } from '@univerjs/core';
|
|
17
|
-
import type { TableStringCompareTypeEnum } from '../../types/enum';
|
|
18
|
-
import type { ICalculatedOptions, ITableConditionFilterItem } from '../../types/type';
|
|
19
|
-
import { TableConditionTypeEnum, TableDateCompareTypeEnum, TableNumberCompareTypeEnum } from '../../types/enum';
|
|
20
|
-
type TableConditionCompareType = TableNumberCompareTypeEnum | TableDateCompareTypeEnum | TableStringCompareTypeEnum;
|
|
21
|
-
export declare function isNumberDynamicFilter(compareType: TableConditionCompareType): compareType is TableNumberCompareTypeEnum;
|
|
22
|
-
export declare function isDateDynamicFilter(compareType: TableConditionCompareType): compareType is TableDateCompareTypeEnum;
|
|
23
|
-
export declare function getConditionExecuteFunc(filter: ITableConditionFilterItem, calculatedOptions: ICalculatedOptions | undefined): ((date: Date) => boolean) | ((value: number) => boolean) | ((value: string) => boolean);
|
|
24
|
-
export declare function getCellValueWithConditionType(sheet: Worksheet, row: number, col: number, conditionType: TableConditionTypeEnum): string | number | Date | null | undefined;
|
|
25
|
-
export declare const getStringFromDataStream: (data: IDocumentData) => string;
|
|
26
|
-
export declare function excelSerialToDateTime(serial: number): Date;
|
|
27
|
-
export {};
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { ITableDateFilterInfo } from '../../types/type';
|
|
17
|
-
/**
|
|
18
|
-
* The provided date is a date in Q1 of the year.
|
|
19
|
-
* @param {Date} date - The date to compare.
|
|
20
|
-
* @returns {boolean} return the date is match
|
|
21
|
-
*/
|
|
22
|
-
export declare const dateQ1: (date: Date) => boolean;
|
|
23
|
-
/**
|
|
24
|
-
* The provided date is a date in Q2 of the year.
|
|
25
|
-
* @param {Date} date - The date to compare.
|
|
26
|
-
* @returns {boolean} return the date is match
|
|
27
|
-
*/
|
|
28
|
-
export declare const dateQ2: (date: Date) => boolean;
|
|
29
|
-
/**
|
|
30
|
-
* The provided date is a date in Q3 of the year.
|
|
31
|
-
* @param {Date} date - The date to compare.
|
|
32
|
-
* @returns {boolean} return the date is match
|
|
33
|
-
*/
|
|
34
|
-
export declare const dateQ3: (date: Date) => boolean;
|
|
35
|
-
/**
|
|
36
|
-
* The provided date is a date in Q4 of the year.
|
|
37
|
-
* @param {Date} date - The date to compare.
|
|
38
|
-
* @returns {boolean} return the date is match
|
|
39
|
-
*/
|
|
40
|
-
export declare const dateQ4: (date: Date) => boolean;
|
|
41
|
-
/**
|
|
42
|
-
* The provided date is a date in January.
|
|
43
|
-
* @param {Date} date - The date to compare.
|
|
44
|
-
* @returns {boolean} return the date is match
|
|
45
|
-
*/
|
|
46
|
-
export declare const dateM1: (date: Date) => boolean;
|
|
47
|
-
/**
|
|
48
|
-
* The provided date is a date in February.
|
|
49
|
-
* @param {Date} date - The date to compare.
|
|
50
|
-
* @returns {boolean} return the date is match
|
|
51
|
-
*/
|
|
52
|
-
export declare const dateM2: (date: Date) => boolean;
|
|
53
|
-
/**
|
|
54
|
-
* The provided date is a date in March.
|
|
55
|
-
* @param {Date} date - The date to compare.
|
|
56
|
-
* @returns {boolean} return the date is match
|
|
57
|
-
*/
|
|
58
|
-
export declare const dateM3: (date: Date) => boolean;
|
|
59
|
-
/**
|
|
60
|
-
* The provided date is a date in April.
|
|
61
|
-
* @param {Date} date - The date to compare.
|
|
62
|
-
* @returns {boolean} return the date is match
|
|
63
|
-
*/
|
|
64
|
-
export declare const dateM4: (date: Date) => boolean;
|
|
65
|
-
/**
|
|
66
|
-
* The provided date is a date in May.
|
|
67
|
-
* @param {Date} date - The date to compare.
|
|
68
|
-
* @returns {boolean} return the date is match
|
|
69
|
-
*/
|
|
70
|
-
export declare const dateM5: (date: Date) => boolean;
|
|
71
|
-
/**
|
|
72
|
-
* The provided date is a date in June.
|
|
73
|
-
* @param {Date} date - The date to compare.
|
|
74
|
-
* @returns {boolean} return the date is match
|
|
75
|
-
*/
|
|
76
|
-
export declare const dateM6: (date: Date) => boolean;
|
|
77
|
-
/**
|
|
78
|
-
* The provided date is a date in July.
|
|
79
|
-
* @param {Date} date - The date to compare.
|
|
80
|
-
* @returns {boolean} return the date is match
|
|
81
|
-
*/
|
|
82
|
-
export declare const dateM7: (date: Date) => boolean;
|
|
83
|
-
/**
|
|
84
|
-
* The provided date is a date in August.
|
|
85
|
-
* @param {Date} date - The date to compare.
|
|
86
|
-
* @returns {boolean} return the date is match
|
|
87
|
-
*/
|
|
88
|
-
export declare const dateM8: (date: Date) => boolean;
|
|
89
|
-
/**
|
|
90
|
-
* The provided date is a date in September.
|
|
91
|
-
* @param {Date} date - The date to compare.
|
|
92
|
-
* @returns {boolean} return the date is match
|
|
93
|
-
*/
|
|
94
|
-
export declare const dateM9: (date: Date) => boolean;
|
|
95
|
-
/**
|
|
96
|
-
* The provided date is a date in October.
|
|
97
|
-
* @param {Date} date - The date to compare.
|
|
98
|
-
* @returns {boolean} return the date is match
|
|
99
|
-
*/
|
|
100
|
-
export declare const dateM10: (date: Date) => boolean;
|
|
101
|
-
/**
|
|
102
|
-
* The provided date is a date in November.
|
|
103
|
-
* @param {Date} date - The date to compare.
|
|
104
|
-
* @returns {boolean} return the date is match
|
|
105
|
-
*/
|
|
106
|
-
export declare const dateM11: (date: Date) => boolean;
|
|
107
|
-
/**
|
|
108
|
-
* The provided date is a date in December.
|
|
109
|
-
* @param {Date} date - The date to compare.
|
|
110
|
-
* @returns {boolean} return the date is match
|
|
111
|
-
*/
|
|
112
|
-
export declare const dateM12: (date: Date) => boolean;
|
|
113
|
-
/**
|
|
114
|
-
* The provided date is today.
|
|
115
|
-
* @param {Date} expectedDate - The date to compare.
|
|
116
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
117
|
-
* @returns {boolean} return the date is match
|
|
118
|
-
*/
|
|
119
|
-
export declare const today: (expectedDate: Date, anchorTime?: Date) => boolean;
|
|
120
|
-
/**
|
|
121
|
-
* The provided date is tomorrow.
|
|
122
|
-
* @param {Date} date - The date to compare.
|
|
123
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
124
|
-
* @returns {boolean} return the date is match
|
|
125
|
-
*/
|
|
126
|
-
export declare const tomorrow: (date: Date, anchorTime?: Date) => boolean;
|
|
127
|
-
/**
|
|
128
|
-
* The provided date is yesterday.
|
|
129
|
-
* @param {Date} date - The date to compare.
|
|
130
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
131
|
-
* @returns {boolean} return the date is match
|
|
132
|
-
*/
|
|
133
|
-
export declare const yesterday: (date: Date, anchorTime?: Date) => boolean;
|
|
134
|
-
/**
|
|
135
|
-
* The provided date is in the current week.
|
|
136
|
-
* @param {Date} date - The date to compare.
|
|
137
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
138
|
-
* @returns {boolean} return the date is match
|
|
139
|
-
*/
|
|
140
|
-
export declare const thisWeek: (date: Date, anchorTime?: Date) => boolean;
|
|
141
|
-
/**
|
|
142
|
-
* The provided date is in the next week.
|
|
143
|
-
* @param {Date} date - The date to compare.
|
|
144
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
145
|
-
* @returns {boolean} return the date is match
|
|
146
|
-
*/
|
|
147
|
-
export declare const nextWeek: (date: Date, anchorTime?: Date) => boolean;
|
|
148
|
-
/**
|
|
149
|
-
* The provided date is in the last week.
|
|
150
|
-
* @param {Date} date - The date to compare.
|
|
151
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
152
|
-
* @returns {boolean} return the date is match
|
|
153
|
-
*/
|
|
154
|
-
export declare const lastWeek: (date: Date, anchorTime?: Date) => boolean;
|
|
155
|
-
/**
|
|
156
|
-
* The provided date is in the current month.
|
|
157
|
-
* @param {Date} date - The date to compare.
|
|
158
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
159
|
-
* @returns {boolean} return the date is match
|
|
160
|
-
*/
|
|
161
|
-
export declare const thisMonth: (date: Date, anchorTime?: Date) => boolean;
|
|
162
|
-
/**
|
|
163
|
-
* The provided date is in the next month.
|
|
164
|
-
* @param {Date} date - The date to compare.
|
|
165
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
166
|
-
* @returns {boolean} return the date is match
|
|
167
|
-
*/
|
|
168
|
-
export declare const nextMonth: (date: Date, anchorTime?: Date) => boolean;
|
|
169
|
-
/**
|
|
170
|
-
* The provided date is in the last month.
|
|
171
|
-
* @param {Date} date - The date to compare.
|
|
172
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
173
|
-
* @returns {boolean} return the date is match
|
|
174
|
-
*/
|
|
175
|
-
export declare const lastMonth: (date: Date, anchorTime?: Date) => boolean;
|
|
176
|
-
/**
|
|
177
|
-
* The provided date is in the current quarter.
|
|
178
|
-
* @param {Date} date - The date to compare.
|
|
179
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
180
|
-
* @returns {boolean} return the date is match
|
|
181
|
-
*/
|
|
182
|
-
export declare const thisQuarter: (date: Date, anchorTime?: Date) => boolean;
|
|
183
|
-
/**
|
|
184
|
-
* The provided date is in the next quarter.
|
|
185
|
-
* @param {Date} date - The date to compare.
|
|
186
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
187
|
-
* @returns {boolean} return the date is match
|
|
188
|
-
*/
|
|
189
|
-
export declare const nextQuarter: (date: Date, anchorTime?: Date) => boolean;
|
|
190
|
-
/**
|
|
191
|
-
* The provided date is in the last quarter.
|
|
192
|
-
* @param {Date} date - The date to compare.
|
|
193
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
194
|
-
* @returns {boolean} return the date is match
|
|
195
|
-
*/
|
|
196
|
-
export declare const lastQuarter: (date: Date, anchorTime?: Date) => boolean;
|
|
197
|
-
/**
|
|
198
|
-
* The provided date is in the current year.
|
|
199
|
-
* @param {Date} date - The date to compare.
|
|
200
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
201
|
-
* @returns {boolean} return the date is match
|
|
202
|
-
*/
|
|
203
|
-
export declare const thisYear: (date: Date, anchorTime?: Date) => boolean;
|
|
204
|
-
/**
|
|
205
|
-
* The provided date is in the next year.
|
|
206
|
-
* @param {Date} date - The date to compare.
|
|
207
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
208
|
-
* @returns {boolean} return the date is match
|
|
209
|
-
*/
|
|
210
|
-
export declare const nextYear: (date: Date, anchorTime?: Date) => boolean;
|
|
211
|
-
/**
|
|
212
|
-
* The provided date is in the last year.
|
|
213
|
-
* @param {Date} date - The date to compare.
|
|
214
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
215
|
-
* @returns {boolean} return the date is match
|
|
216
|
-
*/
|
|
217
|
-
export declare const lastYear: (date: Date, anchorTime?: Date) => boolean;
|
|
218
|
-
/**
|
|
219
|
-
* The provided date is in the year to date.
|
|
220
|
-
* @param {Date} date - The date to compare.
|
|
221
|
-
* @param {Date} [anchorTime] - The reference date.
|
|
222
|
-
* @returns {boolean} return the date is match
|
|
223
|
-
*/
|
|
224
|
-
export declare const yearToDate: (date: Date, anchorTime?: Date) => boolean;
|
|
225
|
-
export declare function getDateFilterExecuteFunc(filterInfo: ITableDateFilterInfo): (date: Date) => boolean;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { ICalculatedOptions, ITableNumberFilterInfo } from '../../types/type';
|
|
17
|
-
/**
|
|
18
|
-
* @description Checks if a value is above the average.
|
|
19
|
-
* @param {number} value - The value to check.
|
|
20
|
-
* @param {number} average - The average value.
|
|
21
|
-
* @returns {boolean} A boolean value indicating whether the value is above the average.
|
|
22
|
-
*/
|
|
23
|
-
export declare const above: (value: number, average: number) => boolean;
|
|
24
|
-
/**
|
|
25
|
-
* @description Checks if a value is below the average.
|
|
26
|
-
* @param {number} value - The value to check.
|
|
27
|
-
* @param {number} average - The average value.
|
|
28
|
-
* @returns {boolean} A boolean value indicating whether the value is below the average.
|
|
29
|
-
*/
|
|
30
|
-
export declare const below: (value: number, average: number) => boolean;
|
|
31
|
-
/**
|
|
32
|
-
* @description Gets the largest N values from a list and checks if the expected value is included.
|
|
33
|
-
* @param {number[]} list - The list of numbers.
|
|
34
|
-
* @param {number} top - The number of top values to retrieve.
|
|
35
|
-
* @param {number} expectedValue - The expected value to check for inclusion.
|
|
36
|
-
* @returns {boolean} A boolean value indicating whether the expected value is included in the top N values.
|
|
37
|
-
*/
|
|
38
|
-
export declare const getTopN: (list: number[], top: number, expectedValue: number) => boolean;
|
|
39
|
-
/**
|
|
40
|
-
* @description Gets the smallest N values from a list and checks if the expected value is included.
|
|
41
|
-
* @param {number[]} list - The list of numbers.
|
|
42
|
-
* @param {number} bottom - The number of bottom values to retrieve.
|
|
43
|
-
* @param {number} expectedValue - The expected value to check for inclusion.
|
|
44
|
-
* @returns {boolean} A boolean value indicating whether the expected value is included in the bottom N values.
|
|
45
|
-
*/
|
|
46
|
-
export declare const getBottomN: (list: number[], bottom: number, expectedValue: number) => boolean;
|
|
47
|
-
export declare function getNumberFilterExecuteFunc(filter: ITableNumberFilterInfo, calculatedOptions: ICalculatedOptions | undefined): (value: number) => boolean;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { ITableStringFilterInfo } from '../../types/type';
|
|
17
|
-
export declare const textEqual: (compareValue: string, expectedValue: string) => boolean;
|
|
18
|
-
export declare const textNotEqual: (compareValue: string, expectedValue: string) => boolean;
|
|
19
|
-
export declare const textContain: (compareValue: string, expectedValue: string) => boolean;
|
|
20
|
-
export declare const textNotContain: (compareValue: string, expectedValue: string) => boolean;
|
|
21
|
-
export declare const textStartWith: (compareValue: string, expectedValue: string) => boolean;
|
|
22
|
-
export declare const textEndWith: (compareValue: string, expectedValue: string) => boolean;
|
|
23
|
-
export declare function getTextFilterExecuteFunc(filter: ITableStringFilterInfo): (value: string) => boolean;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Returns the kth largest element from the given list using a min heap.
|
|
18
|
-
* @param {number[]} list The list of numbers.
|
|
19
|
-
* @param {number} k The value of k.
|
|
20
|
-
* @returns The kth largest element.
|
|
21
|
-
*/
|
|
22
|
-
export declare const getLargestK: (list: number[], k: number) => number[];
|
|
23
|
-
/**
|
|
24
|
-
* Returns the kth smallest element from the given list using a max heap.
|
|
25
|
-
* @param {number[]} list The list of numbers.
|
|
26
|
-
* @param {number} k The value of k.
|
|
27
|
-
* @returns The kth smallest element.
|
|
28
|
-
*/
|
|
29
|
-
export declare const getSmallestK: (list: number[], k: number) => number[];
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { IStyleData } from '@univerjs/core';
|
|
17
|
-
import type { TableMetaType } from '../types/type';
|
|
18
|
-
import { TableColumnDataTypeEnum } from '../types/enum';
|
|
19
|
-
export declare class TableColumn {
|
|
20
|
-
dataType: TableColumnDataTypeEnum;
|
|
21
|
-
id: string;
|
|
22
|
-
displayName: string;
|
|
23
|
-
formula: string;
|
|
24
|
-
meta: TableMetaType;
|
|
25
|
-
style: IStyleData;
|
|
26
|
-
constructor(id: string, name: string);
|
|
27
|
-
getMeta(): TableMetaType;
|
|
28
|
-
setMeta(meta: TableMetaType): void;
|
|
29
|
-
getDisplayName(): string;
|
|
30
|
-
toJSON(): {
|
|
31
|
-
id: string;
|
|
32
|
-
displayName: string;
|
|
33
|
-
dataType: TableColumnDataTypeEnum;
|
|
34
|
-
formula: string;
|
|
35
|
-
meta: TableMetaType;
|
|
36
|
-
style: IStyleData;
|
|
37
|
-
};
|
|
38
|
-
fromJSON(json: any): void;
|
|
39
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { Worksheet } from '@univerjs/core';
|
|
17
|
-
import type { SheetsTableButtonStateEnum } from '../types/enum';
|
|
18
|
-
import type { ITableFilterItem, ITableFilterJSON, ITableRange } from '../types/type';
|
|
19
|
-
import { SheetsTableSortStateEnum } from '../types/enum';
|
|
20
|
-
export declare class TableFilters {
|
|
21
|
-
private _tableColumnFilterList;
|
|
22
|
-
private _tableSortInfo;
|
|
23
|
-
private _filterOutRows;
|
|
24
|
-
constructor();
|
|
25
|
-
setColumnFilter(columnIndex: number, filter: ITableFilterItem | undefined): void;
|
|
26
|
-
setSortState(columnIndex: number, sortState: SheetsTableSortStateEnum): void;
|
|
27
|
-
getColumnFilter(columnIndex: number): ITableFilterItem | undefined;
|
|
28
|
-
getFilterState(columnIndex: number): SheetsTableButtonStateEnum;
|
|
29
|
-
getSortState(): {
|
|
30
|
-
columnIndex: number;
|
|
31
|
-
sortState: SheetsTableSortStateEnum;
|
|
32
|
-
};
|
|
33
|
-
getFilterStates(range: ITableRange): SheetsTableButtonStateEnum[];
|
|
34
|
-
getFilterOutRows(): Set<number>;
|
|
35
|
-
doFilter(sheet: Worksheet, range: ITableRange): Set<number>;
|
|
36
|
-
doColumnFilter(sheet: Worksheet, range: ITableRange, columnIndex: number, filterOutRows: Set<number>): void;
|
|
37
|
-
private _getNumberCalculatedOptions;
|
|
38
|
-
getExecuteFunc(sheet: Worksheet, range: ITableRange, columnIndex: number, filter: ITableFilterItem): (value: any) => boolean;
|
|
39
|
-
toJSON(): ITableFilterJSON;
|
|
40
|
-
fromJSON(json: ITableFilterJSON): void;
|
|
41
|
-
dispose(): void;
|
|
42
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { IRange } from '@univerjs/core';
|
|
17
|
-
import type { ITableAddedEvent, ITableDeletedEvent, ITableFilterChangedEvent, ITableFilterItem, ITableInfoWithUnitId, ITableNameChangedEvent, ITableOptions, ITableRange, ITableRangeChangedEvent, ITableRangeRowColOperation, ITableRangeUpdate, ITableRangeWithState, ITableResource, ITableSetConfig, ITableThemeChangedEvent } from '../types/type';
|
|
18
|
-
import { Disposable, IUniverInstanceService, LocaleService } from '@univerjs/core';
|
|
19
|
-
import { Table } from './table';
|
|
20
|
-
export declare class TableManager extends Disposable {
|
|
21
|
-
private readonly _univerInstanceService;
|
|
22
|
-
private readonly _localeService;
|
|
23
|
-
private _tableMap;
|
|
24
|
-
private _tableAdd$;
|
|
25
|
-
tableAdd$: import("rxjs").Observable<ITableAddedEvent>;
|
|
26
|
-
private _tableDelete$;
|
|
27
|
-
tableDelete$: import("rxjs").Observable<ITableDeletedEvent>;
|
|
28
|
-
private _tableNameChanged$;
|
|
29
|
-
tableNameChanged$: import("rxjs").Observable<ITableNameChangedEvent>;
|
|
30
|
-
private _tableRangeChanged$;
|
|
31
|
-
tableRangeChanged$: import("rxjs").Observable<ITableRangeChangedEvent>;
|
|
32
|
-
private _tableThemeChanged$;
|
|
33
|
-
tableThemeChanged$: import("rxjs").Observable<ITableThemeChangedEvent>;
|
|
34
|
-
private _tableFilterChanged$;
|
|
35
|
-
tableFilterChanged$: import("rxjs").Observable<ITableFilterChangedEvent>;
|
|
36
|
-
private _tableInitStatus;
|
|
37
|
-
tableInitStatus$: import("rxjs").Observable<boolean>;
|
|
38
|
-
constructor(_univerInstanceService: IUniverInstanceService, _localeService: LocaleService);
|
|
39
|
-
private _ensureUnit;
|
|
40
|
-
getColumnHeader(unitId: string, subUnitId: string, range: ITableRange, prefixText?: string): string[];
|
|
41
|
-
/**
|
|
42
|
-
* Add a table to univer.
|
|
43
|
-
* @param {string} unitId The unit id of the table.
|
|
44
|
-
* @param {string} subUnitId The subunit id of the table.
|
|
45
|
-
* @param {string} name The table name, it should be unique in the unit or it will be appended with a number.
|
|
46
|
-
* @param {ITableRange} range The range of the table, it contains the unit id and subunit id.
|
|
47
|
-
* @param {string[]} [header] The header of the table, if not provided, it will be generated based on the range.
|
|
48
|
-
* @param {string} [initId] The initial id of the table, if not provided, a random id will be generated.
|
|
49
|
-
* @param {ITableOptions} [options] Other options of the table.
|
|
50
|
-
* @returns {string} The table id.
|
|
51
|
-
*/
|
|
52
|
-
addTable(unitId: string, subUnitId: string, name: string, range: ITableRange, header?: string[], initId?: string, options?: ITableOptions): string;
|
|
53
|
-
addFilter(unitId: string, tableId: string, column: number, filter: ITableFilterItem | undefined): void;
|
|
54
|
-
getFilterRanges(unitId: string, subUnitId: string): IRange[];
|
|
55
|
-
getSheetFilterRangeWithState(unitId: string, subUnitId: string): ITableRangeWithState[];
|
|
56
|
-
getTable(unitId: string, tableId: string): Table | undefined;
|
|
57
|
-
/**
|
|
58
|
-
* Get the unique table name, in excel, the table name should be unique because it is used as a reference.
|
|
59
|
-
* @param {string} unitId The unit id of the table.
|
|
60
|
-
* @param {string} baseName The base name of the table.
|
|
61
|
-
* @returns {string} The unique table name
|
|
62
|
-
*/
|
|
63
|
-
getUniqueTableName(unitId: string, baseName: string): string;
|
|
64
|
-
/**
|
|
65
|
-
* Get table by unit id and table id.
|
|
66
|
-
* @param {string} unitId The unit id of the table.
|
|
67
|
-
* @param {string} tableId The table id.
|
|
68
|
-
* @returns {Table} The table.
|
|
69
|
-
*/
|
|
70
|
-
getTableById(unitId: string, tableId: string): Table | undefined;
|
|
71
|
-
getTableList(unitId: string): ITableInfoWithUnitId[];
|
|
72
|
-
/**
|
|
73
|
-
* Get the table list by unit id and subunit id.
|
|
74
|
-
* @param {string} unitId The unit id of the table.
|
|
75
|
-
* @param {string} subUnitId The subunit id of the table.
|
|
76
|
-
* @returns {Table[]} The table list.
|
|
77
|
-
*/
|
|
78
|
-
getTablesBySubunitId(unitId: string, subUnitId: string): Table[];
|
|
79
|
-
getTablesInfoBySubunitId(unitId: string, subUnitId: string): {
|
|
80
|
-
id: string;
|
|
81
|
-
name: string;
|
|
82
|
-
range: {
|
|
83
|
-
startRow: number;
|
|
84
|
-
startColumn: number;
|
|
85
|
-
endRow: number;
|
|
86
|
-
endColumn: number;
|
|
87
|
-
};
|
|
88
|
-
}[];
|
|
89
|
-
deleteTable(unitId: string, tableId: string): void;
|
|
90
|
-
operationTableRowCol(unitId: string, tableId: string, config: ITableRangeRowColOperation): void;
|
|
91
|
-
updateTableRange(unitId: string, tableId: string, config: ITableRangeUpdate): void;
|
|
92
|
-
setTableByConfig(unitId: string, tableId: string, config: ITableSetConfig): void;
|
|
93
|
-
toJSON(unitId: string): ITableResource;
|
|
94
|
-
fromJSON(unitId: string, data: ITableResource): void;
|
|
95
|
-
deleteUnitId(unitId: string): void;
|
|
96
|
-
dispose(): void;
|
|
97
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright 2023-present DreamNum Co., Ltd.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import type { ITableColumnJson, ITableFilterItem, ITableInfo, ITableJson, ITableOptions, ITableRange } from '../types/type';
|
|
17
|
-
import { TableColumn } from './table-column';
|
|
18
|
-
import { TableFilters } from './table-filter';
|
|
19
|
-
export declare class Table {
|
|
20
|
-
private _id;
|
|
21
|
-
private _name;
|
|
22
|
-
/**
|
|
23
|
-
* @property {string} tableStyleId The table style id. If the property is empty, the default style will be used.
|
|
24
|
-
*/
|
|
25
|
-
private _tableStyleId?;
|
|
26
|
-
private _showHeader;
|
|
27
|
-
private _showFooter;
|
|
28
|
-
private _range;
|
|
29
|
-
private _columns;
|
|
30
|
-
private _columnOrder;
|
|
31
|
-
tableMeta: Record<string, any>;
|
|
32
|
-
private _tableFilters;
|
|
33
|
-
private _subUnitId;
|
|
34
|
-
constructor(id: string, name: string, range: ITableRange, header: string[], options?: ITableOptions);
|
|
35
|
-
_init(header: string[], options: ITableOptions): void;
|
|
36
|
-
setTableFilterColumn(columnIndex: number, filter: ITableFilterItem): void;
|
|
37
|
-
getTableFilterColumn(columnIndex: number): ITableFilterItem | undefined;
|
|
38
|
-
getTableFilters(): TableFilters;
|
|
39
|
-
getTableFilterRange(): {
|
|
40
|
-
startRow: number;
|
|
41
|
-
startColumn: number;
|
|
42
|
-
endRow: number;
|
|
43
|
-
endColumn: number;
|
|
44
|
-
};
|
|
45
|
-
setColumns(columns: ITableColumnJson[]): void;
|
|
46
|
-
getColumnsCount(): number;
|
|
47
|
-
insertColumn(index: number, column: TableColumn): void;
|
|
48
|
-
removeColumn(index: number): void;
|
|
49
|
-
setTableMeta(meta: Record<string, any>): void;
|
|
50
|
-
getTableMeta(): Record<string, any>;
|
|
51
|
-
getColumn(columnId: string): TableColumn | undefined;
|
|
52
|
-
getTableColumnByIndex(index: number): TableColumn | undefined;
|
|
53
|
-
getColumnNameByIndex(index: number): string;
|
|
54
|
-
getId(): string;
|
|
55
|
-
getRangeInfo(): {
|
|
56
|
-
startRow: number;
|
|
57
|
-
startColumn: number;
|
|
58
|
-
endRow: number;
|
|
59
|
-
endColumn: number;
|
|
60
|
-
};
|
|
61
|
-
getRange(): {
|
|
62
|
-
startRow: number;
|
|
63
|
-
startColumn: number;
|
|
64
|
-
endRow: number;
|
|
65
|
-
endColumn: number;
|
|
66
|
-
};
|
|
67
|
-
setRange(range: ITableRange): void;
|
|
68
|
-
setDisplayName(name: string): void;
|
|
69
|
-
getDisplayName(): string;
|
|
70
|
-
getSubunitId(): string;
|
|
71
|
-
setSubunitId(subUnitId: string): void;
|
|
72
|
-
getTableStyleId(): string;
|
|
73
|
-
setTableStyleId(tableStyleId: string): void;
|
|
74
|
-
isShowHeader(): boolean;
|
|
75
|
-
setShowHeader(showHeader: boolean): void;
|
|
76
|
-
isShowFooter(): boolean;
|
|
77
|
-
getTableInfo(): ITableInfo;
|
|
78
|
-
getTableConfig(): {
|
|
79
|
-
name: string;
|
|
80
|
-
range: {
|
|
81
|
-
startRow: number;
|
|
82
|
-
startColumn: number;
|
|
83
|
-
endRow: number;
|
|
84
|
-
endColumn: number;
|
|
85
|
-
};
|
|
86
|
-
options: {
|
|
87
|
-
showHeader: boolean;
|
|
88
|
-
showFooter: boolean;
|
|
89
|
-
};
|
|
90
|
-
tableStyleId: string | undefined;
|
|
91
|
-
};
|
|
92
|
-
getFilterStates(range: ITableRange): import("..").SheetsTableButtonStateEnum[];
|
|
93
|
-
toJSON(): ITableJson;
|
|
94
|
-
fromJSON(json: ITableJson): void;
|
|
95
|
-
dispose(): void;
|
|
96
|
-
}
|