@univerjs/sheets-table 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +1 -1
  3. package/lib/es/facade.js +1 -165
  4. package/lib/es/index.js +1 -2922
  5. package/lib/facade.js +1 -165
  6. package/lib/index.js +1 -2922
  7. package/lib/types/commands/commands/add-sheet-table.command.d.ts +17 -2
  8. package/lib/types/commands/commands/add-table-theme.command.d.ts +17 -2
  9. package/lib/types/commands/commands/delete-sheet-table.command.d.ts +17 -2
  10. package/lib/types/commands/commands/remove-table-theme.command.d.ts +16 -1
  11. package/lib/types/commands/commands/set-sheet-table.command.d.ts +17 -2
  12. package/lib/types/commands/commands/set-table-filter.command.d.ts +17 -2
  13. package/lib/types/commands/commands/sheet-table-row-col.command.d.ts +16 -1
  14. package/lib/types/commands/mutations/add-sheet-table.mutation.d.ts +17 -2
  15. package/lib/types/commands/mutations/delete-sheet-table.mutation.d.ts +16 -1
  16. package/lib/types/commands/mutations/set-sheet-table.mutation.d.ts +17 -2
  17. package/lib/types/commands/mutations/set-table-filter.mutation.d.ts +17 -2
  18. package/lib/types/config/config.d.ts +16 -1
  19. package/lib/types/controllers/sheet-table-formula.controller.d.ts +15 -0
  20. package/lib/types/controllers/sheet-table-range.controller.d.ts +15 -0
  21. package/lib/types/controllers/sheet-table-ref-range.controller.d.ts +15 -0
  22. package/lib/types/controllers/sheet-table-theme.controller.d.ts +15 -0
  23. package/lib/types/controllers/sheets-table.controller.d.ts +18 -2
  24. package/lib/types/controllers/table-filter.controller.d.ts +16 -1
  25. package/lib/types/controllers/table-theme.factory.d.ts +45 -30
  26. package/lib/types/facade/f-enum.d.ts +15 -0
  27. package/lib/types/facade/f-workbook.d.ts +16 -1
  28. package/lib/types/facade/f-worksheet.d.ts +17 -2
  29. package/lib/types/model/filter-util/condition.d.ts +19 -3
  30. package/lib/types/model/filter-util/date-filter-util.d.ts +16 -1
  31. package/lib/types/model/filter-util/manual.d.ts +16 -1
  32. package/lib/types/model/filter-util/number-filter-util.d.ts +16 -1
  33. package/lib/types/model/filter-util/text-filter-util.d.ts +16 -1
  34. package/lib/types/model/table-column.d.ts +17 -2
  35. package/lib/types/model/table-filter.d.ts +19 -3
  36. package/lib/types/model/table-manager.d.ts +25 -9
  37. package/lib/types/model/table.d.ts +17 -2
  38. package/lib/types/plugin.d.ts +16 -1
  39. package/lib/types/services/table-service.d.ts +18 -2
  40. package/lib/types/types/type.d.ts +17 -2
  41. package/lib/types/util.d.ts +19 -4
  42. package/lib/umd/facade.js +1 -1
  43. package/lib/umd/index.js +1 -1
  44. package/package.json +9 -8
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(m,u){typeof exports=="object"&&typeof module<"u"?u(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"],u):(m=typeof globalThis<"u"?globalThis:m||self,u(m.UniverSheetsTable={},m.UniverCore,m.UniverEngineFormula,m.UniverSheets,m.rxjs))})(this,(function(m,u,x,C,D){"use strict";var ln=Object.defineProperty;var un=(m,u,x)=>u in m?ln(m,u,{enumerable:!0,configurable:!0,writable:!0,value:x}):m[u]=x;var T=(m,u,x)=>un(m,typeof u!="symbol"?u+"":u,x);var J;var v=(n=>(n.Insert="insert",n.Delete="delete",n))(v||{}),N=(n=>(n.Row="row",n.Col="column",n))(N||{}),se=(n=>(n.None="none",n.String="string",n.Number="number",n.Date="date",n.Bool="bool",n.Checkbox="checkbox",n.List="list",n))(se||{}),V=(n=>(n.manual="manual",n.condition="condition",n))(V||{}),O=(n=>(n.Date="date",n.Number="number",n.String="string",n.Logic="logic",n))(O||{}),y=(n=>(n.Equal="equal",n.NotEqual="notEqual",n.GreaterThan="greaterThan",n.GreaterThanOrEqual="greaterThanOrEqual",n.LessThan="lessThan",n.LessThanOrEqual="lessThanOrEqual",n.Between="between",n.NotBetween="notBetween",n.Above="above",n.Below="below",n.TopN="topN",n))(y||{}),$=(n=>(n.Equal="equal",n.NotEqual="notEqual",n.Contains="contains",n.NotContains="notContains",n.StartsWith="startsWith",n.EndsWith="endsWith",n))($||{}),S=(n=>(n.Equal="equal",n.NotEqual="notEqual",n.After="after",n.AfterOrEqual="afterOrEqual",n.Before="before",n.BeforeOrEqual="beforeOrEqual",n.Between="between",n.NotBetween="notBetween",n.Today="today",n.Yesterday="yesterday",n.Tomorrow="tomorrow",n.ThisWeek="thisWeek",n.LastWeek="lastWeek",n.NextWeek="nextWeek",n.ThisMonth="thisMonth",n.LastMonth="lastMonth",n.NextMonth="nextMonth",n.ThisQuarter="thisQuarter",n.LastQuarter="lastQuarter",n.NextQuarter="nextQuarter",n.ThisYear="thisYear",n.LastYear="lastYear",n.NextYear="nextYear",n.YearToDate="yearToDate",n.Quarter="quarter",n.Month="month",n.M1="m1",n.M2="m2",n.M3="m3",n.M4="m4",n.M5="m5",n.M6="m6",n.M7="m7",n.M8="m8",n.M9="m9",n.M10="m10",n.M11="m11",n.M12="m12",n.Q1="q1",n.Q2="q2",n.Q3="q3",n.Q4="q4",n))(S||{}),A=(n=>(n[n.FilteredSortNone=1]="FilteredSortNone",n[n.FilteredSortAsc=2]="FilteredSortAsc",n[n.FilteredSortDesc=3]="FilteredSortDesc",n[n.FilterNoneSortNone=4]="FilterNoneSortNone",n[n.FilterNoneSortAsc=5]="FilterNoneSortAsc",n[n.FilterNoneSortDesc=6]="FilterNoneSortDesc",n))(A||{}),W=(n=>(n.Asc="asc",n.Desc="desc",n.None="none",n))(W||{});function k(n,e){return`${e} ${n}`}const le="TRUE",ue="FALSE",Be=n=>{var t;return((t=n.body)==null?void 0:t.dataStream.replace(/\r\n$/,""))||""};function de(n){if(n){const{v:e,t,p:a}=n;return a?Be(a):(t===u.CellValueType.FORCE_STRING||t===u.CellValueType.STRING)&&e!==void 0&&e!==null?String(e):t===u.CellValueType.BOOLEAN?e?le:ue:t===u.CellValueType.NUMBER?String(e):typeof e==="boolean"?e?le:ue:e==null?"":String(e)}return""}function We(n,e){if(n!=null)switch(e){case W.Asc:return A.FilteredSortAsc;case W.Desc:return A.FilteredSortDesc;default:return A.FilteredSortNone}else switch(e){case W.Asc:return A.FilterNoneSortAsc;case W.Desc:return A.FilterNoneSortDesc;default:return A.FilterNoneSortNone}}function ce(n){return n?n.filterType===V.condition:!1}function qe(n){return n?n.filterType===V.manual:!1}function he(n,e){const{univerInstanceService:t,tableManager:a,definedNamesService:r}=e,s=new Set,o=t==null?void 0:t.getUnit(n,u.UniverInstanceType.UNIVER_SHEET);o&&o.getSheets().forEach(i=>{s.add(i.getName().toLowerCase())});const l=a==null?void 0:a.getTableList(n);l&&l.length>0&&l.forEach(i=>{s.add(i.name.toLowerCase())});const d=r==null?void 0:r.getDefinedNameMap(n);return d&&Object.values(d).forEach(i=>{s.add(i.name.toLowerCase())}),s}const U={s:u.BorderStyleTypes.THIN,cl:{rgb:"rgb(95, 101, 116)"}},ge="sheets-table.config",me={},Ve={headerRowStyle:{bd:{t:U}},headerColumnStyle:{bd:{l:U}},lastColumnStyle:{bd:{r:U}},lastRowStyle:{bd:{b:U}}},He=(n,e)=>{if(n==="headerRowStyle"){if(!e.bd)return{...e,bd:{t:U}}}else if(n==="lastRowStyle"){if(!e.bd)return{...e,bd:{b:U}}}else if(n==="lastColumnStyle"){if(!e.bd)return{...e,bd:{r:U}}}else if(n==="headerColumnStyle"&&!e.bd)return{...e,bd:{l:U}};return e},be=[[["#6280F9","#FFFFFF","#BAC6F8","#D2DAFA"],["#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((n,e)=>{const[t,a]=n,[r,s,o,l]=t,[d]=a;return{name:`table-default-${e}`,style:{headerRowStyle:{bg:{rgb:r},cl:{rgb:d},bd:{t:U}},headerColumnStyle:{bd:{l:U}},firstRowStyle:{bg:{rgb:s}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:l},bd:{b:U}},lastColumnStyle:{bd:{r:U}}}}});class H{constructor(e,t){T(this,"dataType");T(this,"id");T(this,"displayName");T(this,"formula");T(this,"meta");T(this,"style");this.id=e,this.displayName=t,this.dataType=se.String,this.formula="",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,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.meta=e.meta,this.style=e.style}}const Pe=n=>n.getMonth()<=2,Je=n=>{const e=n.getMonth();return e>2&&e<=5},ke=n=>{const e=n.getMonth();return e>5&&e<=8},je=n=>{const e=n.getMonth();return e>8&&e<=11},Qe=n=>n.getMonth()===0,Ye=n=>n.getMonth()===1,Ge=n=>n.getMonth()===2,Xe=n=>n.getMonth()===3,ze=n=>n.getMonth()===4,Ke=n=>n.getMonth()===5,Ze=n=>n.getMonth()===6,et=n=>n.getMonth()===7,tt=n=>n.getMonth()===8,nt=n=>n.getMonth()===9,at=n=>n.getMonth()===10,rt=n=>n.getMonth()===11,st=(n,e=new Date)=>n.toDateString()===e.toDateString(),ot=(n,e=new Date)=>{const t=new Date(e);return t.setDate(t.getDate()+1),n.toDateString()===t.toDateString()},it=(n,e=new Date)=>{const t=new Date(e);return t.setDate(t.getDate()-1),n.toDateString()===t.toDateString()},P=n=>{const e=n.getDay(),t=n.getDate()-e+(e===0?-6:1),a=new Date(n);return a.setDate(t),a},Se=10080*60*1e3,lt=(n,e=new Date)=>{const t=P(n),a=P(e);return t.toDateString()===a.toDateString()},ut=(n,e=new Date)=>{const t=P(n),a=new Date(P(e).getTime()+Se);return t.toDateString()===a.toDateString()},dt=(n,e=new Date)=>{const t=P(n),a=new Date(P(e).getTime()-Se);return t.toDateString()===a.toDateString()},ct=(n,e=new Date)=>n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth(),ht=n=>{const e=new Date(n);return e.setHours(0,0,0,0),e.setDate(1),e},gt=(n,e=new Date)=>{const t=new Date(e);t.setHours(0,0,0,0),t.setMonth(t.getMonth()+1,1);const a=new Date(t);a.setMonth(a.getMonth()+1,0);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},mt=(n,e=new Date)=>{const t=ht(e),a=new Date(t);a.setMonth(a.getMonth()+1,0);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},oe=n=>{const e=new Date(n);e.setHours(0,0,0,0),e.setDate(1);const t=e.getMonth();return e.setMonth(t-t%3),e},bt=(n,e=new Date)=>{const t=oe(e),a=new Date(t);a.setMonth(a.getMonth()+3);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},St=(n,e=new Date)=>{const t=oe(e),a=new Date(t);a.setMonth(a.getMonth()+3);const r=new Date(a);r.setMonth(r.getMonth()+3,0);const s=n.getTime();return s>=a.getTime()&&s<r.getTime()},Ct=(n,e=new Date)=>{const t=oe(e),a=new Date(t);a.setMonth(a.getMonth()-3);const r=new Date(t);r.setDate(0);const s=n.getTime();return s>=a.getTime()&&s<r.getTime()},Tt=(n,e=new Date)=>n.getFullYear()===e.getFullYear(),Rt=(n,e=new Date)=>n.getFullYear()===e.getFullYear()+1,ft=(n,e=new Date)=>n.getFullYear()===e.getFullYear()-1,wt=(n,e=new Date)=>{const t=new Date(e);t.setHours(0,0,0,0),t.setMonth(0,1);const a=n.getTime();return a>=t.getTime()&&a<e.getTime()};function It(n){switch(n.compareType){case S.Equal:{const e=new Date(n.expectedValue);return t=>t.getTime()===e.getTime()}case S.NotEqual:{const e=new Date(n.expectedValue);return t=>t.getTime()!==e.getTime()}case S.After:{const e=new Date(n.expectedValue);return t=>t.getTime()>e.getTime()}case S.Before:{const e=new Date(n.expectedValue);return t=>t.getTime()<e.getTime()}case S.AfterOrEqual:{const e=new Date(n.expectedValue);return t=>t.getTime()>=e.getTime()}case S.BeforeOrEqual:{const e=new Date(n.expectedValue);return t=>t.getTime()<=e.getTime()}case S.Between:return e=>{const[t,a]=n.expectedValue;return e.getTime()>=new Date(t).getTime()&&e.getTime()<=new Date(a).getTime()};case S.NotBetween:return e=>{const[t,a]=n.expectedValue;return e.getTime()<new Date(t).getTime()||e.getTime()>new Date(a).getTime()};case S.Today:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>st(t,e)}case S.Yesterday:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>it(t,e)}case S.Tomorrow:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ot(t,e)}case S.ThisWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>lt(t,e)}case S.LastWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>dt(t,e)}case S.NextWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ut(t,e)}case S.ThisMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ct(t,e)}case S.LastMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>mt(t,e)}case S.NextMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>gt(t,e)}case S.ThisQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>bt(t,e)}case S.LastQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>Ct(t,e)}case S.NextQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>St(t,e)}case S.ThisYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>Tt(t,e)}case S.LastYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ft(t,e)}case S.NextYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>Rt(t,e)}case S.YearToDate:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>wt(t,e)}case S.M1:return Qe;case S.M2:return Ye;case S.M3:return Ge;case S.M4:return Xe;case S.M5:return ze;case S.M6:return Ke;case S.M7:return Ze;case S.M8:return et;case S.M9:return tt;case S.M10:return nt;case S.M11:return at;case S.M12:return rt;case S.Q1:return Pe;case S.Q2:return Je;case S.Q3:return ke;case S.Q4:return je;default:throw new Error("Unsupported compare type")}}class _t{constructor(){T(this,"heap");this.heap=[]}swap(e,t){const a=this.heap[e];this.heap[e]=this.heap[t],this.heap[t]=a}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)}}class pt extends _t{constructor(){super()}shiftUp(e){if(e===0)return;const t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){const t=this.getLeftIndex(e),a=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[a]<this.heap[e]&&(this.swap(a,e),this.shiftDown(a))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}}const vt=(n,e)=>{const t=new pt;for(const a of n)t.insert(a),t.size()>e&&t.pop();return t.heap},Mt=(n,e)=>n>e,Ft=(n,e)=>n<e,yt=(n,e,t)=>vt(n,e).includes(t);function Nt(n,e){switch(n.compareType){case y.Equal:{const t=Number(n.expectedValue);return a=>a===t}case y.NotEqual:{const t=Number(n.expectedValue);return a=>a!==t}case y.GreaterThan:{const t=Number(n.expectedValue);return a=>a>t}case y.GreaterThanOrEqual:{const t=Number(n.expectedValue);return a=>a>=t}case y.LessThan:{const t=Number(n.expectedValue);return a=>a<t}case y.LessThanOrEqual:{const t=Number(n.expectedValue);return a=>a<=t}case y.Between:{const[t,a]=n.expectedValue,r=Number(t),s=Number(a);return r>s?o=>o>=s&&o<=r:o=>o>=r&&o<=s}case y.NotBetween:{const[t,a]=n.expectedValue,r=Number(t),s=Number(a);return r>s?o=>o<s||o>r:o=>o<r||o>s}case y.Above:{const t=e.average;return a=>Mt(a,t)}case y.Below:{const t=e.average;return a=>Ft(a,t)}case y.TopN:{const t=e.list,a=Number(n.expectedValue);return r=>yt(t,a,r)}}}const Dt=(n,e)=>u.createREGEXFromWildChar(e).test(n),Ot=(n,e)=>!u.createREGEXFromWildChar(e).test(n),Ut=(n,e)=>u.createREGEXFromWildChar(`*${e}*`).test(n),Et=(n,e)=>!u.createREGEXFromWildChar(`*${e}*`).test(n),xt=(n,e)=>u.createREGEXFromWildChar(`${e}*`).test(n),$t=(n,e)=>u.createREGEXFromWildChar(`*${e}`).test(n);function At(n){switch(n.compareType){case $.Equal:return e=>Dt(e,n.expectedValue);case $.NotEqual:return e=>Ot(e,n.expectedValue);case $.Contains:return e=>Ut(e,n.expectedValue);case $.NotContains:return e=>Et(e,n.expectedValue);case $.StartsWith:return e=>xt(e,n.expectedValue);case $.EndsWith:return e=>$t(e,n.expectedValue);default:return console.error(`Unknown filter operator: ${n.compareType}`),e=>!0}}const Lt=new Set([y.Above,y.Below,y.TopN]);S.Today,S.Yesterday,S.Tomorrow,S.ThisWeek,S.LastWeek,S.NextWeek,S.ThisMonth,S.LastMonth,S.NextMonth,S.ThisQuarter,S.LastQuarter,S.NextQuarter,S.NextYear,S.ThisYear,S.LastYear,S.YearToDate;function Ce(n){return Lt.has(n)}function Bt(n,e){if(Ce(n.filterInfo.compareType))return t=>!0;switch(n.filterInfo.conditionType){case O.Date:return It(n.filterInfo);case O.Number:return Nt(n.filterInfo,e);case O.String:return At(n.filterInfo);case O.Logic:default:return t=>!0}}function Q(n,e,t,a){switch(a){case O.Date:{const r=Te(n,e,t);return r?Vt(r):null}case O.Number:return Te(n,e,t);case O.String:default:return qt(n,e,t)}}const Wt=n=>{var t;return((t=n.body)==null?void 0:t.dataStream.replace(/\r\n$/,""))||""};function qt(n,e,t){const a=n.getCell(e,t);if(!a)return null;const{v:r,t:s,p:o}=a;if(o)return Wt(o);if(typeof r=="string")return s===u.CellValueType.BOOLEAN?r.toUpperCase():r;if(typeof r=="number")return s===u.CellValueType.BOOLEAN?r?"TRUE":"FALSE":r;if(typeof r=="boolean")return r?"TRUE":"FALSE";if(r!==void 0)return String(r)}function Te(n,e,t){const a=n.getCell(e,t);if(!a)return null;const{v:r,t:s,p:o}=a;return o?null:typeof r=="string"&&s===u.CellValueType.NUMBER?Number(n.getCellRaw(e,t).v):Number(r)}function Vt(n){const e=new Date(Date.UTC(1900,0,1,0,0,0)),t=new Date(Date.UTC(1900,1,28,0,0,0));let a=n-1;return a>(t.getTime()-e.getTime())/(1e3*3600*24)&&(a-=1),a<0&&(a=n),new Date(e.getTime()+a*(1e3*3600*24))}class Re{constructor(){T(this,"_tableColumnFilterList");T(this,"_tableSortInfo");T(this,"_filterOutRows");this._tableColumnFilterList=[]}setColumnFilter(e,t){t?this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}getColumnFilter(e){return this._tableColumnFilterList[e]}getFilterState(e){var a;const t=((a=this._tableSortInfo)==null?void 0:a.columnIndex)===e?this._tableSortInfo.sortState:W.None;return We(this._tableColumnFilterList[e],t)}getSortState(){var e;return(e=this._tableSortInfo)!=null?e:{}}getFilterStates(e){const t=[],{startColumn:a,endColumn:r}=e;for(let s=a;s<=r;s++)t.push(this.getFilterState(s-a));return t}getFilterOutRows(){return this._filterOutRows}doFilter(e,t){const a=new Set,r=this._tableColumnFilterList;for(let s=0;s<r.length;s++)r[s]&&this.doColumnFilter(e,t,s,a);return this._filterOutRows=a,a}doColumnFilter(e,t,a,r){const s=this._tableColumnFilterList[a];if(s&&e){const{startRow:o,endRow:l,startColumn:d}=t,i=d+a,c=this.getExecuteFunc(e,t,a,s);for(let g=o;g<=l;g++){const h=ce(s)?s.filterInfo.conditionType:O.String;Q(e,g,i,h)===null?r.add(g):c(Q(e,g,i,h))||r.add(g)}}}_getNumberCalculatedOptions(e,t,a){const{startRow:r,endRow:s,startColumn:o}=t,l=o+a,d=[];let i=0,c=0;for(let g=r;g<=s;g++){const h=Q(e,g,l,O.Number);h!==null&&(d.push(h),i++,c+=h)}return{list:d,average:i>0?c/i:0}}getExecuteFunc(e,t,a,r){if(r.filterType===V.manual){const s=new Set(r.values);return o=>s.has(o)}else if(r.filterType===V.condition){const o=Ce(r.filterInfo.compareType)?this._getNumberCalculatedOptions(e,t,a):void 0;return Bt(r,o)}else return s=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){var t;this._tableColumnFilterList=(t=e.tableColumnFilterList)!=null?t:[],e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[]}}class fe{constructor(e,t,a,r,s={}){T(this,"_id");T(this,"_name");T(this,"_tableStyleId");T(this,"_showHeader");T(this,"_showFooter");T(this,"_range");T(this,"_columns",new Map);T(this,"_columnOrder",[]);T(this,"tableMeta");T(this,"_tableFilters");T(this,"_subUnitId");this._id=e,this._range=a,this._name=t,this._tableFilters=new Re,this._init(r,s)}_init(e,t){var o,l;this._tableStyleId=t==null?void 0:t.tableStyleId,this._showHeader=(o=t==null?void 0:t.showHeader)!=null?o:!0,this._showFooter=!1;const a=this.getRange(),r=a.startColumn,s=a.endColumn;for(let d=r;d<=s;d++){const i=d-r;let c,g;(l=t.columns)!=null&&l[i]?(c=t.columns[i].id,g=t.columns[i].displayName):(c=u.generateRandomId(),g=e[d-r]);const h=new H(c,g);this._columns.set(c,h),this._columnOrder.push(c)}t.filters&&t.filters.forEach((i,c)=>{i&&this._tableFilters.setColumnFilter(c,i)})}setTableFilterColumn(e,t){this._tableFilters.setColumnFilter(e,t)}getTableFilterColumn(e){return this._tableFilters.getColumnFilter(e)}getTableFilters(){return this._tableFilters}getTableFilterRange(){const e=this.getRange(),t=this.isShowHeader(),a=this.isShowFooter(),{startRow:r,startColumn:s,endRow:o,endColumn:l}=e,d=t?r+1:r,i=a?o-1:o;return{startRow:d,startColumn:s,endRow:i,endColumn:l}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(t=>{const a=new H(t.id,t.displayName);a.fromJSON(t),this._columns.set(t.id,a),this._columnOrder.push(t.id)})}getColumnsCount(){return this._columnOrder.length}insertColumn(e,t){const a=t.id;this._columns.set(a,t),this._columnOrder.splice(e,0,a)}removeColumn(e){const 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){const t=this._columnOrder[e];return this.getColumn(t)}getColumnNameByIndex(e){var a;const t=this._columnOrder[e];return((a=this.getColumn(t))==null?void 0:a.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(){var e;return(e=this._tableStyleId)!=null?e:be[0].name}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){var e;return(e=this._showHeader)!=null?e:!0}setShowHeader(e){this._showHeader=e}isShowFooter(){var e;return(e=this._showFooter)!=null?e:!1}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,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},tableStyleId:this._tableStyleId}}getFilterStates(e){return this._tableFilters.getFilterStates(e)}toJSON(){const 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,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){var a,r;this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||"",this._showHeader=(a=e.options.showHeader)!=null?a:!0,this._showFooter=(r=e.options.showFooter)!=null?r:!0,e.columns.forEach(s=>{const o=new H(s.id,s.displayName);o.fromJSON(s),this._columns.set(s.id,o),this._columnOrder.push(s.id)}),this._tableFilters=new Re,this._tableFilters.fromJSON(e.filters)}dispose(){this._id="",this._name="",this._tableStyleId="",this._showHeader=!0,this._showFooter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}}var Ht=Object.getOwnPropertyDescriptor,Pt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Ht(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},we=(n,e)=>(t,a)=>e(t,a,n);m.TableManager=class extends u.Disposable{constructor(t,a){super();T(this,"_tableMap");T(this,"_tableAdd$",new D.Subject);T(this,"tableAdd$",this._tableAdd$.asObservable());T(this,"_tableDelete$",new D.Subject);T(this,"tableDelete$",this._tableDelete$.asObservable());T(this,"_tableNameChanged$",new D.Subject);T(this,"tableNameChanged$",this._tableNameChanged$.asObservable());T(this,"_tableRangeChanged$",new D.Subject);T(this,"tableRangeChanged$",this._tableRangeChanged$.asObservable());T(this,"_tableThemeChanged$",new D.Subject);T(this,"tableThemeChanged$",this._tableThemeChanged$.asObservable());T(this,"_tableFilterChanged$",new D.Subject);T(this,"tableFilterChanged$",this._tableFilterChanged$.asObservable());T(this,"_tableInitStatus",new D.BehaviorSubject(!1));T(this,"tableInitStatus$",this._tableInitStatus.asObservable());this._univerInstanceService=t,this._localeService=a,this._tableMap=new Map}_ensureUnit(t){return this._tableMap.has(t)||this._tableMap.set(t,new Map),this._tableMap.get(t)}getColumnHeader(t,a,r,s){var h;const o=(h=this._univerInstanceService.getUnit(t))==null?void 0:h.getSheetBySheetId(a),{startRow:l,startColumn:d,endColumn:i}=r,c=[],g=s!=null?s:"Column";for(let b=d;b<=i;b++)c.push(de(o==null?void 0:o.getCell(l,b))||k(b-d+1,g));return c}addTable(t,a,r,s,o,l,d){var b;const i=l!=null?l:u.generateRandomId(),c=o||this.getColumnHeader(t,a,s),g=new fe(i,r,s,c,d);if(g.setSubunitId(a),this._ensureUnit(t).set(i,g),this._tableAdd$.next({unitId:t,subUnitId:a,range:s,tableName:r,tableId:i,tableStyleId:d==null?void 0:d.tableStyleId}),d!=null&&d.filters){const R=(b=this._univerInstanceService.getUnit(t))==null?void 0:b.getSheetBySheetId(a);g.getTableFilters().doFilter(R,s),this._tableFilterChanged$.next({unitId:t,subUnitId:a,tableId:i})}return i}addFilter(t,a,r,s){const o=this.getTable(t,a);if(o){o.getTableFilters().setColumnFilter(r,s);const d=o.getSubunitId();this._tableFilterChanged$.next({unitId:t,subUnitId:d,tableId:a})}}getFilterRanges(t,a){const r=this._tableMap.get(t);if(!r)return[];const s=[];return r.forEach(o=>{o.getSubunitId()===a&&o.isShowHeader()&&s.push(o.getRange())}),s}getSheetFilterRangeWithState(t,a){const r=this._tableMap.get(t);if(!r)return[];const s=[];return r.forEach(o=>{o.getSubunitId()===a&&o.isShowHeader()&&s.push({tableId:o.getId(),range:o.getRange(),states:o.getFilterStates(o.getRange())})}),s}getTable(t,a){const r=this._tableMap.get(t);if(r)return r.get(a)}getUniqueTableName(t,a){const r=this._tableMap.get(t);if(!r)return a;const s=new Set(Array.from(r.values()).map(d=>d.getDisplayName()));let o=a,l=1;for(;s.has(o);)o=`${a}-${l}`,l++;return o}getTableById(t,a){return this.getTable(t,a)}getTableList(t){const a=this._tableMap.get(t);return a?Array.from(a.values()).map(r=>({...r.getTableInfo(),unitId:t})):[]}getTablesBySubunitId(t,a){const r=this._tableMap.get(t);return r?Array.from(r.values()).filter(s=>s.getSubunitId()===a):[]}getTablesInfoBySubunitId(t,a){return this.getTablesBySubunitId(t,a).map(r=>({id:r.getId(),name:r.getDisplayName(),range:r.getRange()}))}deleteTable(t,a){const r=this._tableMap.get(t),s=r==null?void 0:r.get(a);if(s){const o=s.getTableInfo(),l=s.getTableStyleId();r==null||r.delete(a);const{subUnitId:d,range:i,name:c}=o;this._tableDelete$.next({unitId:t,subUnitId:d,tableId:a,range:i,tableName:c,tableStyleId:l})}}operationTableRowCol(t,a,r){const s=this.getTableById(t,a);if(!s)return;const{operationType:o,rowColType:l,index:d,count:i,columnsJson:c}=r,g=s.getRange(),h={...g};if(o===v.Insert){if(l==="row")h.endRow+=i;else if(l==="column"){h.endColumn+=i;for(let b=0;b<i;b++){const R=this._localeService.t("sheets-table.columnPrefix"),w=new H(u.generateRandomId(),k(s.getColumnsCount()+1+b,R));c!=null&&c[b]&&w.fromJSON(c[b]);const I=d+b-g.startColumn;s.insertColumn(I,w)}}}else if(l==="row")h.endRow-=i;else if(l==="column"){h.endColumn-=i;for(let b=i-1;b>=0;b--){const R=d+b-g.startColumn;s.removeColumn(R)}}s.setRange(h),this._tableRangeChanged$.next({unitId:t,subUnitId:s.getSubunitId(),tableId:a,range:h,oldRange:g})}updateTableRange(t,a,r){const s=this.getTableById(t,a);if(!s)return;const o=s.getRange(),l=r.newRange;if(l.startColumn<o.startColumn){const d=o.startColumn-l.startColumn,i=this._localeService.t("sheets-table.columnPrefix");for(let c=0;c<d;c++)s.insertColumn(o.startColumn,new H(u.generateRandomId(),k(s.getColumnsCount()+1,i)))}else if(l.startColumn>o.startColumn){const d=l.startColumn-o.startColumn;for(let i=d-1;i>=0;i--){const c=l.startColumn+i-o.startColumn;s.removeColumn(c)}}if(l.endColumn<o.endColumn){const d=o.endColumn-l.endColumn;for(let i=d-1;i>=0;i--){const c=l.endColumn+i-o.startColumn;s.removeColumn(c)}}else if(l.endColumn>o.endColumn){const d=l.endColumn-o.endColumn;for(let i=0;i<d;i++)s.insertColumn(o.endColumn,new H(u.generateRandomId(),k(s.getColumnsCount()+1,"Column")))}s.setRange(l),this._tableRangeChanged$.next({unitId:t,subUnitId:s.getSubunitId(),tableId:a,range:l,oldRange:o})}setTableByConfig(t,a,r){var b;const s=this._tableMap.get(t),o=s==null?void 0:s.get(a);if(!o)return;const l=o.getSubunitId(),{name:d,updateRange:i,rowColOperation:c,theme:g,options:h}=r;if(d){const R=o.getDisplayName();o.setDisplayName(d),this._tableNameChanged$.next({unitId:t,subUnitId:l,tableId:a,tableName:d,oldTableName:R})}if(c&&this.operationTableRowCol(t,a,c),i&&this.updateTableRange(t,a,i),g){const R=(b=o.getTableStyleId())!=null?b:"default";o.setTableStyleId(g),this._tableThemeChanged$.next({unitId:t,subUnitId:l,tableId:a,theme:g,oldTheme:R})}h&&h.showHeader!==void 0&&o.setShowHeader(h.showHeader)}toJSON(t){const a={},r=this._tableMap.get(t);return r&&r.forEach(s=>{const o=s.getSubunitId();if(!a[o]){const l=new Set;this.getTablesBySubunitId(t,o).forEach(i=>{const c=i.getTableFilters().getFilterOutRows();if(c)for(const g of c)l.add(g)}),a[o]={tables:[],tableFilteredOutRows:Array.from(l)}}a[o].tables.push(s.toJSON())}),a}fromJSON(t,a){const r=this._ensureUnit(t);Object.keys(a).forEach(o=>{const l=C.getSheetCommandTarget(this._univerInstanceService,{unitId:t,subUnitId:o});if(!l)return;const d=l.worksheet;let i;a[o].tables?i=a[o].tables:Array.isArray(a[o])&&(i=a[o]),i&&i.forEach(c=>{const g=this.getColumnHeader(t,o,c.range),h=new fe(c.id,c.name,c.range,g,c.options);if(h.setTableMeta(c.meta),c.columns.length&&h.setColumns(c.columns),c.filters){const b=h.getTableFilters();b.fromJSON(c.filters),b.doFilter(d,h.getTableFilterRange())}h.setSubunitId(o),r.set(c.id,h),this._tableAdd$.next({unitId:t,subUnitId:o,range:c.range,tableName:c.name,tableId:c.id})})}),this._tableInitStatus.next(!0)}deleteUnitId(t){const a=this._tableMap.get(t);a&&a.forEach(r=>r.dispose()),this._tableMap.delete(t)}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(t=>{t.forEach(a=>a.dispose()),t.clear()}),this._tableMap.clear()}},m.TableManager=Pt([we(0,u.IUniverInstanceService),we(1,u.Inject(u.LocaleService))],m.TableManager);var Jt=Object.getOwnPropertyDescriptor,kt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Jt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},jt=(n,e)=>(t,a)=>e(t,a,n);m.SheetTableService=class extends u.Disposable{constructor(e){super(),this._tableManager=e}getTableInfo(e,t){const a=this._tableManager.getTable(e,t);if(a)return{unitId:e,...a.getTableInfo()}}getTableList(e){return this._tableManager.getTableList(e)}addTable(e,t,a,r,s,o,l){return this._tableManager.addTable(e,t,a,r,s,o,l)}deleteTable(e,t,a){this._tableManager.deleteTable(e,a)}getTableMeta(e,t){var a;return(a=this._tableManager.getTable(e,t))==null?void 0:a.getTableMeta()}setTableMeta(e,t,a){var r;(r=this._tableManager.getTable(e,t))==null||r.setTableMeta(a)}getTableColumnMeta(e,t,a){var r,s;return(s=(r=this._tableManager.getTable(e,t))==null?void 0:r.getTableColumnByIndex(a))==null?void 0:s.getMeta()}selTableColumnMeta(e,t,a,r){var s,o;(o=(s=this._tableManager.getTable(e,t))==null?void 0:s.getTableColumnByIndex(a))==null||o.setMeta(r)}addFilter(e,t,a,r){this._tableManager.addFilter(e,t,a,r)}getCellValueWithConditionType(e,t,a,r=O.String){return Q(e,t,a,r)}},m.SheetTableService=kt([jt(0,u.Inject(m.TableManager))],m.SheetTableService);const L={id:"sheet.mutation.add-table",type:u.CommandType.MUTATION,handler:(n,e)=>{const{tableId:t,unitId:a,subUnitId:r,name:s,range:o,header:l,options:d}=e;return n.get(m.SheetTableService).addTable(a,r,s,o,l,t,d),!0}},B={id:"sheet.mutation.delete-table",type:u.CommandType.MUTATION,handler:(n,e)=>{const{unitId:t,subUnitId:a,tableId:r}=e;return n.get(m.SheetTableService).deleteTable(t,a,r),!0}},Ie={id:"sheet.command.add-table",type:u.CommandType.COMMAND,handler:(n,e)=>{var I;if(!e)return!1;const t=n.get(u.IUndoRedoService),a=n.get(u.ICommandService),r=n.get(u.LocaleService),s=n.get(m.TableManager),o=(I=e.id)!=null?I:u.generateRandomId(),l=he(e.unitId,{univerInstanceService:n.get(u.IUniverInstanceService),tableManager:s,definedNamesService:n.get(x.IDefinedNamesService)});let d=e.name;if(!d||!u.customNameCharacterCheck(d.toLowerCase(),l)){const f=r.t("sheets-table.tablePrefix");let p=s.getTableList(e.unitId).length+1;for(const E of l)if(E.startsWith(f.toLowerCase())){const M=Number(E.slice(f.length));Number.isInteger(M)&&M>=p&&(p=M+1)}d=`${f}${p}`}const i=[],c=[],{unitId:g,subUnitId:h,range:b}=e,R=s.getColumnHeader(g,h,b,r.t("sheets-table.columnPrefix"));return i.push({id:L.id,params:{...e,tableId:o,name:d,header:R}}),c.push({id:B.id,params:{tableId:o,unitId:e.unitId}}),u.sequenceExecute(i,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:c,redoMutations:i}),!0}},_={id:"sheet.mutation.set-sheet-table",type:u.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:t,tableId:a,config:r}=e;return n.get(m.TableManager).setTableByConfig(t,a,r),!0}},_e={id:"sheet.command.add-table-theme",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const t=n.get(m.TableManager),{unitId:a,tableId:r,themeStyle:s}=e,o=[],l=[],d=t.getTableById(a,r);if(!d)return!1;const i=d.getSubunitId();o.push({id:C.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:i,styleJSON:s.toJson()}}),o.push({id:_.id,params:{unitId:a,subUnitId:i,tableId:r,config:{theme:s.getName()}}}),l.push({id:_.id,params:{unitId:a,subUnitId:i,tableId:r,config:{themeStyle:d.getTableStyleId()}}}),l.push({id:C.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:i,styleName:s.getName()}});const c=n.get(u.ICommandService);return u.sequenceExecute(o,c)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:o}),!0}},pe={id:"sheet.command.delete-table",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const t=n.get(u.IUndoRedoService),a=n.get(u.ICommandService),r=n.get(m.TableManager),s=n.get(u.ILogService),o=[],l=[],d=r.getTable(e.unitId,e.tableId),i=d==null?void 0:d.toJSON();return i?(o.push({id:B.id,params:{...e}}),l.push({id:L.id,params:{unitId:e.unitId,subUnitId:e.subUnitId,tableId:e.tableId,name:i.name,range:i.range,options:i.options}}),u.sequenceExecute(o,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:l,redoMutations:o}),!0):(s.error("[TableManager]: Table not found"),!1)}},ve="SHEET_TABLE_PLUGIN",Y="SHEET_TABLE",Me="table-custom",Fe={id:"sheet.command.remove-table-theme",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const{unitId:t,tableId:a,themeName:r}=e,s=n.get(m.TableManager),o=n.get(C.SheetRangeThemeModel),l=s.getTableById(t,a);if(!l)return!1;const d=l.getSubunitId(),i=[],c=[],g=o.getRegisteredRangeThemes().filter(f=>f==null?void 0:f.startsWith("table-default"));let b=o.getRegisteredRangeThemes().filter(f=>f==null?void 0:f.startsWith(Me)).find(f=>f!==r);b||(b=g[0]),i.push({id:_.id,params:{unitId:t,subUnitId:d,tableId:a,config:{theme:b}}}),i.push({id:C.RemoveRangeThemeMutation.id,params:{unitId:t,subUnitId:d,styleName:r}});const R=o.getDefaultRangeThemeStyle(r);R&&(c.push({id:C.AddRangeThemeMutation.id,params:{unitId:t,subUnitId:d,styleJSON:R.toJson()}}),c.push({id:_.id,params:{unitId:t,subUnitId:d,tableId:a,config:{theme:r}}}));const w=n.get(u.ICommandService);return u.sequenceExecute(i,w)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:t,redoMutations:i,undoMutations:c}),!0}},ye={id:"sheet.command.set-table-config",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const{unitId:t,tableId:a,name:r,updateRange:s,rowColOperation:o,theme:l}=e,d=n.get(m.TableManager),i=d.getTableById(t,a);if(!i)return!1;const c={},g={},h=n.get(u.LocaleService),b=he(t,{univerInstanceService:n.get(u.IUniverInstanceService),tableManager:d,definedNamesService:n.get(x.IDefinedNamesService)});if(r){if(!u.customNameCharacterCheck(r.toLowerCase(),b))return n.get(u.ILogService).warn(h.t("sheets-table.tableNameError")),!1;c.name=i.getDisplayName(),g.name=r}o&&(c.rowColOperation={operationType:o.operationType===v.Insert?v.Delete:v.Insert,rowColType:o.rowColType,index:o.index,count:o.count},g.rowColOperation=o),s&&(c.updateRange={newRange:i.getRange()},g.updateRange=s),l&&(c.theme=i.getTableStyleId(),g.theme=l);const R={unitId:t,subUnitId:i.getSubunitId(),tableId:a,config:g};return n.get(u.ICommandService).executeCommand(_.id,R),n.get(u.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:_.id,params:{unitId:t,subUnitId:i.getSubunitId(),tableId:a,config:c}}],redoMutations:[{id:_.id,params:R}]}),!0}},G={id:"sheet.mutation.set-table-filter",type:u.CommandType.MUTATION,handler:(n,e)=>{const{tableId:t,unitId:a,column:r,tableFilter:s}=e;return n.get(m.TableManager).addFilter(a,t,r,s),!0}},Ne={id:"sheet.command.set-table-filter",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const t=n.get(u.IUndoRedoService),a=n.get(u.ICommandService),r=e.tableId||u.generateRandomId(),s=[],o=[];return s.push({id:G.id,params:{...e,tableId:r}}),o.push({id:G.id,params:{...e,tableId:r,tableFilter:void 0}}),u.sequenceExecute(s,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:o,redoMutations:s}),!0}};var Qt=Object.getOwnPropertyDescriptor,Yt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Qt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},X=(n,e)=>(t,a)=>e(t,a,n);m.SheetsTableController=class extends u.Disposable{constructor(t,a,r,s){super();T(this,"_tableRangeRTree",new Map);this._univerInstanceService=t,this._sheetInterceptorService=a,this._tableManager=r,this._resourceManagerService=s,this._initSnapshot(),this._initSheetChange(),this.registerTableChangeEvent(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(t,a,r){const s=this._ensureTableRangeRTree(t),l=Array.from(s.bulkSearch([{unitId:t,sheetId:a,range:r}])).find(d=>{const i=this._tableManager.getTable(t,String(d));return i?u.Rectangle.contains(i.getRange(),r):!1});if(l)return this._tableManager.getTable(t,String(l))}_ensureTableRangeRTree(t){return this._tableRangeRTree.has(t)||this._tableRangeRTree.set(t,new u.RTree),this._tableRangeRTree.get(t)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(t=>{const{range:a,tableId:r,unitId:s,subUnitId:o}=t;this._ensureTableRangeRTree(s).insert({unitId:s,sheetId:o,id:r,range:{...a}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(t=>{const{range:a,tableId:r,unitId:s,subUnitId:o,oldRange:l}=t,d=this._ensureTableRangeRTree(s);d.remove({unitId:s,sheetId:o,id:r,range:{...l}}),d.insert({unitId:s,sheetId:o,id:r,range:{...a}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(t=>{const{tableId:a,unitId:r,subUnitId:s,range:o}=t;this._ensureTableRangeRTree(r).remove({unitId:r,sheetId:s,id:a,range:{...o}})}))}registerTableHeaderInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(C.INTERCEPTOR_POINT.CELL_CONTENT,{effect:u.InterceptorEffectEnum.Value,handler:(t,a,r)=>{const{row:s,col:o,unitId:l,subUnitId:d}=a,i=this._ensureTableRangeRTree(l);if((t==null?void 0:t.v)===void 0&&i){const g=Array.from(i.bulkSearch([{unitId:l,sheetId:d,range:{startColumn:o,endColumn:o,startRow:s,endRow:s}}]));if(g.length>0){const h=this._tableManager.getTable(l,g[0]);if(h){const b=h.getRange(),R=o-b.startColumn;if(b.startRow===s){const I=h.getColumnNameByIndex(R);return(!t||t===a.rawData)&&(t={...a.rawData}),t.v=I,r(t)}}}}return r(t)}}))}_toJson(t){return this._tableManager.toJSON(t)}_fromJSON(t,a){return this._tableManager.fromJSON(t,a)}_deleteUnitId(t){this._tableManager.deleteUnitId(t)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:t=>JSON.stringify(this._toJson(t)),parseJson:t=>{if(!t)return{};try{return JSON.parse(t)}catch{return{}}},businesses:[u.UniverInstanceType.UNIVER_SHEET],pluginName:ve,onLoad:(t,a)=>{this._fromJSON(t,a)},onUnLoad:t=>{this._deleteUnitId(t)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:t=>{var a;if(t.id===C.RemoveSheetCommand.id){const r=t.params,s=r.unitId||this._univerInstanceService.getCurrentUnitOfType(u.UniverInstanceType.UNIVER_SHEET).getUnitId(),o=r.subUnitId||((a=this._univerInstanceService.getCurrentUnitOfType(u.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:a.getSheetId());if(!s||!o)return{redos:[],undos:[]};const l=this._tableManager.getTablesBySubunitId(s,o);if(l.length===0)return{redos:[],undos:[]};const d=[],i=[];return l.forEach(c=>{const g=c.toJSON();d.push({id:B.id,params:{unitId:s,subUnitId:o,tableId:g.id}}),i.push({id:L.id,params:{unitId:s,subUnitId:o,name:g.name,range:g.range,tableId:g.id,options:{...g.options,columns:g.columns,filters:g.filters.tableColumnFilterList}}})}),{redos:d,undos:i}}else if(t.id===C.CopySheetCommand.id){const r=t.params,{unitId:s,subUnitId:o,targetSubUnitId:l}=r;if(!s||!o||!l)return{redos:[],undos:[]};const d=this._tableManager.getTablesBySubunitId(s,o);if(d.length===0)return{redos:[],undos:[]};const i=[],c=[];return d.forEach(g=>{const h=g.toJSON(),b=u.generateRandomId();i.push({id:L.id,params:{unitId:s,subUnitId:l,name:h.name,range:{...h.range,sheetId:l},tableId:b,options:{...h.options,columns:h.columns,filters:h.filters.tableColumnFilterList}}}),c.push({id:B.id,params:{unitId:s,subUnitId:l,tableId:b}})}),{redos:i,undos:c}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}},m.SheetsTableController=Yt([X(0,u.Inject(u.IUniverInstanceService)),X(1,u.Inject(C.SheetInterceptorService)),X(2,u.Inject(m.TableManager)),X(3,u.Inject(u.IResourceManagerService))],m.SheetsTableController);const De={id:"sheet.command.table-insert-row",type:u.CommandType.COMMAND,handler:n=>{const e=n.get(u.IUniverInstanceService),t=C.getSheetCommandTarget(e);if(!t)return!1;const{workbook:a,worksheet:r,unitId:s,subUnitId:o}=t,d=n.get(C.SheetsSelectionsService).getCurrentSelections();if(!d.length||d.length>1)return!1;n.get(m.TableManager);const c=d[0].range,h=n.get(m.SheetsTableController).getContainerTableWithRange(s,o,c);if(!h)return!1;const b=c.endRow-c.startRow+1,w=r.getRowCount()-1,I=r.getCellMatrix().getDataRange().endRow,f=[],p=[];if(w-I<b)f.push({id:C.InsertRowMutation.id,params:{unitId:s,subUnitId:o,range:{...c}}}),f.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{updateRange:{newRange:{...h.getRange(),endRow:h.getRange().endRow+b}}}}}),p.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{updateRange:{newRange:h.getRange()}}}}),p.push({id:C.RemoveRowMutation.id,params:{unitId:s,subUnitId:o,range:{...c}}});else{const F={...h.getRange()};f.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{updateRange:{newRange:{...F,endRow:F.endRow+b}}}}}),p.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{updateRange:{newRange:{...F}}}}});const j=C.getMoveRangeUndoRedoMutations(n,{unitId:s,subUnitId:o,range:{startRow:c.startRow,endRow:I,startColumn:F.startColumn,endColumn:F.endColumn}},{unitId:s,subUnitId:o,range:{startRow:c.startRow+b,endRow:I+b,startColumn:F.startColumn,endColumn:F.endColumn}});j&&(f.push(...j.redos),p.push(...j.undos))}const E=n.get(u.ICommandService);return u.sequenceExecute(f,E)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:p,redoMutations:f}),!0}},Oe={id:"sheet.command.table-insert-col",type:u.CommandType.COMMAND,handler:n=>{const e=n.get(u.IUniverInstanceService),t=C.getSheetCommandTarget(e);if(!t)return!1;const{worksheet:a,unitId:r,subUnitId:s}=t,l=n.get(C.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;const i=l[0].range,g=n.get(m.SheetsTableController).getContainerTableWithRange(r,s,i);if(!g)return!1;const h=i.endColumn-i.startColumn+1,R=a.getColumnCount()-1,w=a.getCellMatrix().getDataRange().endColumn,I=[],f=[];if(R-w<h)I.push({id:C.InsertColMutation.id,params:{unitId:r,subUnitId:s,range:{...i}}}),I.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:i.startColumn,count:h}}}}),f.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:i.startColumn,count:h}}}}),f.push({id:C.RemoveColMutation.id,params:{unitId:r,subUnitId:s,range:{...i}}});else{const M=g.getRange();I.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:i.startColumn,count:h}}}}),f.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:i.startColumn,count:h}}}});const F=C.getMoveRangeUndoRedoMutations(n,{unitId:r,subUnitId:s,range:{startRow:M.startRow,endRow:M.endRow,startColumn:i.startColumn,endColumn:w}},{unitId:r,subUnitId:s,range:{startRow:M.startRow,endRow:M.endRow,startColumn:i.startColumn+h,endColumn:w+h}});F&&(I.push(...F.redos),f.push(...F.undos))}const p=n.get(u.ICommandService);return u.sequenceExecute(I,p)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:f,redoMutations:I}),!0}},Ue={id:"sheet.command.table-remove-row",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const t=n.get(u.IUniverInstanceService),a=C.getSheetCommandTarget(t,e);if(!a)return!1;const{unitId:r,subUnitId:s}=a,l=n.get(C.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;const i=l[0].range,g=n.get(m.SheetsTableController).getContainerTableWithRange(r,s,i);if(!g)return!1;const h=i.endRow-i.startRow+1,b=[],R=[],w=g.getRange();b.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{updateRange:{newRange:{...w,endRow:w.endRow-h}}}}}),R.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{updateRange:{newRange:{...w}}}}});const f=a.worksheet.getCellMatrix().getDataRange().endRow,p=C.getMoveRangeUndoRedoMutations(n,{unitId:r,subUnitId:s,range:{startRow:i.endRow+1,endRow:f,startColumn:w.startColumn,endColumn:w.endColumn}},{unitId:r,subUnitId:s,range:{startRow:i.startRow,endRow:f-h,startColumn:w.startColumn,endColumn:w.endColumn}});p&&(b.push(...p.redos),R.push(...p.undos));const E=n.get(u.ICommandService);return u.sequenceExecute(b,E)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:R,redoMutations:b}),!0}},Ee={id:"sheet.command.table-remove-col",type:u.CommandType.COMMAND,handler:(n,e)=>{if(!e)return!1;const t=n.get(u.IUniverInstanceService),a=C.getSheetCommandTarget(t,e);if(!a)return!1;const{workbook:r,unitId:s,subUnitId:o}=a;n.get(m.TableManager);const d=n.get(C.SheetsSelectionsService).getCurrentSelections();if(!d.length||d.length>1)return!1;const c=d[0].range,h=n.get(m.SheetsTableController).getContainerTableWithRange(s,o,c);if(!h)return!1;const b=c.endColumn-c.startColumn+1,R=[],w=[],I=h.getRange();R.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:c.startColumn,count:b}}}});const f=[],p=c.startColumn-I.startColumn;for(let re=0;re<b;re++){const Le=h.getTableInfo().columns[p+re];Le&&f.push(Le)}w.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:c.startColumn,count:b,columnsJson:f}}}});const M=a.worksheet.getCellMatrix().getDataRange().endColumn,F=C.getMoveRangeUndoRedoMutations(n,{unitId:s,subUnitId:o,range:{startRow:I.startRow,endRow:I.endRow,startColumn:c.endColumn+1,endColumn:M}},{unitId:s,subUnitId:o,range:{startRow:I.startRow,endRow:I.endRow,startColumn:c.startColumn,endColumn:M-b}});F&&(R.push(...F.redos),w.push(...F.undos));const j=n.get(u.ICommandService);return u.sequenceExecute(R,j)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:w,redoMutations:R}),!0}},xe={name:"@univerjs/sheets-table",version:"0.17.0"};var Gt=Object.getOwnPropertyDescriptor,Xt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Gt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},$e=(n,e)=>(t,a)=>e(t,a,n);let z=class extends u.Disposable{constructor(n,e){super(),this._tableManager=n,this._commandService=e,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(n=>{const{tableId:e,unitId:t}=n,a=this._tableManager.getTableById(t,e);a&&this._updateSuperTable(t,a)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(n=>{const{tableId:e,unitId:t}=n,a=this._tableManager.getTableById(t,e);a&&this._updateSuperTable(t,a)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(n=>{const{unitId:e,tableName:t}=n;this._commandService.executeCommand(x.RemoveSuperTableMutation.id,{unitId:e,tableName:t})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(n=>{const{tableId:e,unitId:t,oldTableName:a}=n;this._commandService.executeCommand(x.RemoveSuperTableMutation.id,{unitId:t,tableName:a});const r=this._tableManager.getTableById(t,e);r&&this._updateSuperTable(t,r)}))}_updateSuperTable(n,e){const t=e.getTableInfo(),a=t.name,r=t.columns,s=new Map;r.forEach((o,l)=>{s.set(o.displayName,l)}),this._commandService.executeCommand(x.SetSuperTableMutation.id,{unitId:n,tableName:a,reference:{range:t.range,sheetId:t.subUnitId,titleMap:s}})}};z=Xt([$e(0,u.Inject(m.TableManager)),$e(1,u.ICommandService)],z);var zt=Object.getOwnPropertyDescriptor,Kt=(n,e,t,a)=>{for(var r=a>1?void 0:a?zt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},Ae=(n,e)=>(t,a)=>e(t,a,n);let K=class extends u.Disposable{constructor(n,e){super(),this._tableManager=n,this._exclusiveRangeService=e,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(n=>{const{range:e,tableId:t,unitId:a,subUnitId:r}=n;this._exclusiveRangeService.clearExclusiveRangesByGroupId(a,r,Y,t),this._exclusiveRangeService.addExclusiveRange(a,r,Y,[{range:{...e},groupId:t}])})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(n=>{const{tableId:e,unitId:t,subUnitId:a,range:r}=n;this._exclusiveRangeService.addExclusiveRange(t,a,Y,[{range:{...r},groupId:e}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(n=>{const{tableId:e,unitId:t,subUnitId:a}=n;this._exclusiveRangeService.clearExclusiveRangesByGroupId(t,a,Y,e)}))}};K=Kt([Ae(0,u.Inject(m.TableManager)),Ae(1,u.Inject(C.IExclusiveRangeService))],K);var Zt=Object.getOwnPropertyDescriptor,en=(n,e,t,a)=>{for(var r=a>1?void 0:a?Zt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},q=(n,e)=>(t,a)=>e(t,a,n);let Z=class extends u.Disposable{constructor(n,e,t,a,r,s,o){super(),this._commandService=n,this._refRangeService=e,this._univerInstanceService=t,this._injector=a,this._sheetInterceptorService=r,this._tableManager=s,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(e){const t={redos:[],undos:[]},{id:a,params:r}=e;switch(a){case C.InsertRowCommand.id:return n._generateTableMutationWithInsertRow(r);case C.InsertColCommand.id:return n._generateTableMutationWithInsertCol(r);case C.RemoveRowCommand.id:return n._generateTableMutationWithRemoveRow(r);case C.RemoveColCommand.id:return n._generateTableMutationWithRemoveCol(r)}return t}})}_generateTableMutationWithInsertRow(n){const e=[],t=[],a=C.getSheetCommandTarget(this._univerInstanceService,n);if(!a)return{undos:e,redos:t};const{unitId:r,subUnitId:s}=a,o=this._tableManager.getTablesBySubunitId(r,s);if(!o.length)return{undos:e,redos:t};const{range:l}=n;return o.forEach(d=>{const i=d.getRange();if(l.startRow>i.startRow&&l.startRow<=i.endRow){const c=l.endRow-l.startRow+1;t.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{updateRange:{newRange:{...i,endRow:i.endRow+c}}}}}),e.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{updateRange:{newRange:{...i}}}}})}}),{undos:e,redos:t}}_generateTableMutationWithInsertCol(n){const e=[],t=[],a=C.getSheetCommandTarget(this._univerInstanceService,n);if(!a)return{undos:e,redos:t};const{unitId:r,subUnitId:s}=a,o=this._tableManager.getTablesBySubunitId(r,s);if(!o.length)return{undos:e,redos:t};const{range:l}=n;return o.forEach(d=>{const i=d.getRange();if(l.startColumn>i.startColumn&&l.startColumn<=i.endColumn){const c=l.endColumn-l.startColumn+1;t.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:l.startColumn,count:c}}}}),e.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:l.startColumn,count:c}}}})}}),{undos:e,redos:t}}_generateTableMutationWithRemoveRow(n){const e=[],t=[],a=[],r=[],s=C.getSheetCommandTarget(this._univerInstanceService);if(!s)return{undos:e,redos:t,preRedos:a,preUndos:r};const{unitId:o,subUnitId:l}=s,d=this._tableManager.getTablesBySubunitId(o,l);if(!d.length)return{undos:e,redos:t,preRedos:a,preUndos:r};const{range:i}=n,c=i.endRow-i.startRow+1;return d.forEach(g=>{const h=g.getRange();if(u.Rectangle.intersects(h,i))if(i.startRow<=h.startRow&&i.endRow>=h.startRow){a.push({id:B.id,params:{unitId:o,subUnitId:l,tableId:g.getId()}});const b=g.toJSON();e.push({id:L.id,params:{unitId:o,subUnitId:l,tableId:b.id,name:b.name,range:b.range,options:b.options}})}else i.startRow>h.startRow&&i.startRow<=h.endRow?(t.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{updateRange:{newRange:{...h,endRow:h.endRow-c}}}}}),e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{updateRange:{newRange:{...h}}}}})):i.startRow<h.endRow&&i.endRow>=h.endRow&&(t.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{updateRange:{newRange:{...h,endRow:i.startRow-1}}}}}),e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{updateRange:{newRange:{...h}}}}}))}),{undos:e,redos:t,preRedos:a,preUndos:r}}_generateTableMutationWithRemoveCol(n){const e=[],t=[],a=[],r=[],s=C.getSheetCommandTarget(this._univerInstanceService);if(!s)return{undos:e,redos:t,preRedos:a,preUndos:r};const{unitId:o,subUnitId:l}=s,d=this._tableManager.getTablesBySubunitId(o,l);if(!d.length)return{undos:e,redos:t,preRedos:a,preUndos:r};const{range:i}=n,c=i.endColumn-i.startColumn+1;return d.forEach(g=>{const h=g.getRange();if(u.Rectangle.intersects(h,i)){if(i.startColumn<=h.startColumn&&i.endColumn>=h.endColumn){a.push({id:B.id,params:{unitId:o,subUnitId:l,tableId:g.getId()}});const b=g.toJSON(),{startRow:R,startColumn:w,endColumn:I}=b.range,f=this._univerInstanceService.getUnit(o),p=f==null?void 0:f.getSheetBySheetId(l);if(!p)return{undos:e,redos:t,preRedos:a,preUndos:r};const E=[];for(let M=w;M<=I;M++)E.push(de(p==null?void 0:p.getCell(R,M))||k(M-w+1,this._localeService.t("sheets-table.columnPrefix")));e.push({id:L.id,params:{unitId:o,subUnitId:l,tableId:b.id,name:b.name,header:E,range:b.range,options:b.options}})}else if(i.startColumn<=h.startColumn&&i.endColumn>=h.startColumn){const b=i.endColumn-h.startColumn+1;t.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:h.startColumn,count:b}}}});const R=[];for(let w=0;w<b;w++){const I=g.getTableColumnByIndex(w);I&&R.push(I.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:h.startColumn,count:b,columnsJson:R}}}})}else if(i.startColumn>h.startColumn&&i.endColumn>h.endColumn){const b=h.endColumn-i.startColumn+1;t.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:i.startColumn,count:b}}}});const R=[],w=i.startColumn-h.startColumn;for(let I=0;I<b;I++){const f=g.getTableColumnByIndex(I+w);f&&R.push(f.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:i.startColumn,count:c,columnsJson:R}}}})}else if(i.startColumn>h.startColumn&&i.endColumn<=h.endColumn){t.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:N.Col,index:i.startColumn,count:c}}}});const b=[],R=i.startColumn-h.startColumn;for(let w=0;w<c;w++){const I=g.getTableColumnByIndex(w+R);I&&b.push(I.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:N.Col,index:i.startColumn,count:c,columnsJson:b}}}})}}}),{undos:e,redos:t,preRedos:a,preUndos:r}}_initCommandListener(){this._commandService.onCommandExecuted(n=>{if(n.id===C.InsertRowMutation.id){const e=n.params,{unitId:t,subUnitId:a,range:r}=e,s=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,a).forEach(l=>{const d=l.getRange();r.startRow<=d.startRow&&this._tableManager.updateTableRange(t,l.getId(),{newRange:{...d,startRow:d.startRow+s,endRow:d.endRow+s}})})}else if(n.id===C.InsertColMutation.id){const e=n.params,{unitId:t,subUnitId:a,range:r}=e,s=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,a).forEach(l=>{const d=l.getRange();r.startColumn<=d.startColumn&&this._tableManager.updateTableRange(t,l.getId(),{newRange:{...d,startColumn:d.startColumn+s,endColumn:d.endColumn+s}})})}else if(n.id===C.RemoveRowMutation.id){const e=n.params,{unitId:t,subUnitId:a,range:r}=e,s=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,a).forEach(l=>{const d=l.getRange();r.startRow<d.startRow&&this._tableManager.updateTableRange(t,l.getId(),{newRange:{...d,startRow:d.startRow-s,endRow:d.endRow-s}})})}else if(n.id===C.RemoveColMutation.id){const e=n.params,{unitId:t,subUnitId:a,range:r}=e,s=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,a).forEach(l=>{const d=l.getRange();r.startColumn<d.startColumn&&this._tableManager.updateTableRange(t,l.getId(),{newRange:{...d,startColumn:d.startColumn-s,endColumn:d.endColumn-s}})})}})}};Z=en([q(0,u.Inject(u.ICommandService)),q(1,u.Inject(C.RefRangeService)),q(2,u.Inject(u.IUniverInstanceService)),q(3,u.Inject(u.Injector)),q(4,u.Inject(C.SheetInterceptorService)),q(5,u.Inject(m.TableManager)),q(6,u.Inject(u.LocaleService))],Z);var tn=Object.getOwnPropertyDescriptor,nn=(n,e,t,a)=>{for(var r=a>1?void 0:a?tn(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},ee=(n,e)=>(t,a)=>e(t,a,n);let te=class extends u.Disposable{constructor(e,t,a,r){super();T(this,"_defaultThemeIndex",0);T(this,"_allThemes",[]);this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=a,this._configService=r,this._initUserTableTheme(),this.registerTableChangeEvent(),this._initDefaultTableTheme()}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{const{range:t,tableId:a,unitId:r,subUnitId:s,tableStyleId:o}=e,l=this._tableManager.getTable(r,a),d=o||this._allThemes[this._defaultThemeIndex].name;l.setTableStyleId(d),this._sheetRangeThemeService.registerRangeThemeStyle(d,{unitId:r,subUnitId:s,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{const{range:t,oldRange:a,tableId:r,unitId:s,subUnitId:o}=e,l=this._tableManager.getTable(s,r);let d=l.getTableStyleId();d||(d=this._allThemes[this._defaultThemeIndex].name,l.setTableStyleId(d)),this._sheetRangeThemeService.removeRangeThemeRule(d,{unitId:s,subUnitId:o,range:{...a}}),this._sheetRangeThemeService.registerRangeThemeStyle(d,{unitId:s,subUnitId:o,range:{...t}})})),this.disposeWithMe(this._tableManager.tableThemeChanged$.subscribe(e=>{const{theme:t,oldTheme:a,tableId:r,unitId:s,subUnitId:o}=e,d=this._tableManager.getTable(s,r).getRange();this._sheetRangeThemeService.removeRangeThemeRule(a,{unitId:s,subUnitId:o,range:{...d}}),this._sheetRangeThemeService.registerRangeThemeStyle(t,{unitId:s,subUnitId:o,range:{...d}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{const{range:t,unitId:a,subUnitId:r,tableStyleId:s=this._allThemes[this._defaultThemeIndex].name}=e;this._sheetRangeThemeService.removeRangeThemeRule(s,{unitId:a,subUnitId:r,range:{...t}})}))}_initUserTableTheme(){const e=this._configService.getConfig(ge)||{},t=e.defaultThemeIndex||0,a=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=a.concat(be)}_initDefaultTableTheme(){for(let e=0;e<this._allThemes.length;e++){const{name:t,style:a}=this._allThemes[e],r=new C.RangeThemeStyle(t,a);this._sheetRangeThemeModel.registerDefaultRangeTheme(r)}}dispose(){super.dispose(),this._allThemes=[],this._defaultThemeIndex=0}};te=nn([ee(0,u.Inject(m.TableManager)),ee(1,u.Inject(C.SheetRangeThemeService)),ee(2,u.Inject(C.SheetRangeThemeModel)),ee(3,u.IConfigService)],te);var an=Object.getOwnPropertyDescriptor,rn=(n,e,t,a)=>{for(var r=a>1?void 0:a?an(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},ne=(n,e)=>(t,a)=>e(t,a,n);let ae=class extends u.Disposable{constructor(e,t,a,r){super();T(this,"_tableFilteredOutRows$",new D.BehaviorSubject(new Set));T(this,"tableFilteredOutRows$",this._tableFilteredOutRows$.asObservable());T(this,"_subscription",null);this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=a,this._zebraCrossingCacheController=r,this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._initFilteredOutRows()}get tableFilteredOutRows(){return this._tableFilteredOutRows$.value}set tableFilteredOutRows(e){this._tableFilteredOutRows$.next(e)}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(C.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,a)=>{if(e)return!0;const r=this.tableFilteredOutRows.has(t.row);return r?!0:a(r)}}))}_initFilteredOutRows(){this._tableManager.tableInitStatus$.pipe(D.filter(e=>e),D.switchMap(()=>this._univerInstanceService.getCurrentTypeOfUnit$(u.UniverInstanceType.UNIVER_SHEET)),D.filter(e=>e!=null),D.switchMap(e=>e.activeSheet$),D.filter(e=>e!=null)).subscribe(()=>{const e=C.getSheetCommandTarget(this._univerInstanceService);if(!e)return;const{unitId:t,subUnitId:a}=e;this.tableFilteredOutRows.clear(),this._tableManager.getTablesBySubunitId(t,a).forEach(s=>{const o=s.getTableFilters().getFilterOutRows();if(o)for(const l of o)this.tableFilteredOutRows.add(l)})})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{var i;const{unitId:t,subUnitId:a,tableId:r}=e,s=(i=this._univerInstanceService.getUnit(t))==null?void 0:i.getSheetBySheetId(a),o=this._tableManager.getTable(t,r);if(!s||!o)return;this.tableFilteredOutRows.clear(),o.getTableFilters().doFilter(s,o.getTableFilterRange()),this._tableManager.getTablesBySubunitId(t,a).forEach(c=>{const g=c.getTableFilters().getFilterOutRows();if(g)for(const h of g)this.tableFilteredOutRows.add(h)}),this._zebraCrossingCacheController.updateZebraCrossingCache(t,a)}))}dispose(){var e;super.dispose(),(e=this._subscription)==null||e.unsubscribe()}};ae=rn([ne(0,u.Inject(m.TableManager)),ne(1,u.Inject(C.SheetInterceptorService)),ne(2,u.Inject(u.IUniverInstanceService)),ne(3,u.Inject(C.ZebraCrossingCacheController))],ae);var sn=Object.getOwnPropertyDescriptor,on=(n,e,t,a)=>{for(var r=a>1?void 0:a?sn(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},ie=(n,e)=>(t,a)=>e(t,a,n);m.UniverSheetsTablePlugin=(J=class extends u.Plugin{constructor(e=me,t,a,r){super(),this._config=e,this._injector=t,this._configService=a,this._commandService=r;const{...s}=u.merge({},me,this._config);this._configService.setConfig(ge,s),this._initRegisterCommand()}onStarting(){u.registerDependencies(this._injector,[[m.TableManager],[te],[m.SheetsTableController],[m.SheetTableService],[ae],[K],[Z],[z]])}onReady(){u.touchDependencies(this._injector,[[z],[K],[Z],[te],[m.SheetsTableController],[m.SheetTableService],[ae]]),u.touchDependencies(this._injector,[[m.TableManager]])}_initRegisterCommand(){[Ie,L,pe,B,G,Ne,ye,_,_e,Fe,De,Oe,Ue,Ee].forEach(e=>this._commandService.registerCommand(e))}},T(J,"pluginName",ve),T(J,"packageName",xe.name),T(J,"version",xe.version),T(J,"type",u.UniverInstanceType.UNIVER_SHEET),J),m.UniverSheetsTablePlugin=on([ie(1,u.Inject(u.Injector)),ie(2,u.IConfigService),ie(3,u.Inject(u.ICommandService))],m.UniverSheetsTablePlugin),m.AddSheetTableCommand=Ie,m.AddSheetTableMutation=L,m.AddTableThemeCommand=_e,m.DeleteSheetTableCommand=pe,m.DeleteSheetTableMutation=B,m.RemoveTableThemeCommand=Fe,m.SHEET_TABLE_CUSTOM_THEME_PREFIX=Me,m.SetSheetTableCommand=ye,m.SetSheetTableFilterCommand=Ne,m.SetSheetTableFilterMutation=G,m.SetSheetTableMutation=_,m.SheetTableInsertColCommand=Oe,m.SheetTableInsertRowCommand=De,m.SheetTableRemoveColCommand=Ee,m.SheetTableRemoveRowCommand=Ue,m.SheetsTableButtonStateEnum=A,m.SheetsTableSortStateEnum=W,m.TableColumnDataTypeEnum=se,m.TableColumnFilterTypeEnum=V,m.TableConditionTypeEnum=O,m.TableDateCompareTypeEnum=S,m.TableNumberCompareTypeEnum=y,m.TableStringCompareTypeEnum=$,m.customEmptyThemeWithBorderStyle=Ve,m.isConditionFilter=ce,m.isManualTableFilter=qe,m.processStyleWithBorderStyle=He,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
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.Insert=`insert`,e.Delete=`delete`,e}({}),o=function(e){return e.Row=`row`,e.Col=`column`,e}({}),s=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}({}),c=function(e){return e.manual=`manual`,e.condition=`condition`,e}({}),l=function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),u=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}({}),d=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),f=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}({}),p=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}({}),m=function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function h(e,t){return`${t} ${e}`}let g=`TRUE`,_=`FALSE`,v=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function y(e){if(e){let{v:n,t:r,p:i}=e;return i?v(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?g:_:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?g:_:n==null?``:String(n)}return``}function b(e,t){if(e!=null)switch(t){case m.Asc:return p.FilteredSortAsc;case m.Desc:return p.FilteredSortDesc;default:return p.FilteredSortNone}else switch(t){case m.Asc:return p.FilterNoneSortAsc;case m.Desc:return p.FilterNoneSortDesc;default:return p.FilterNoneSortNone}}function ee(e){return e?e.filterType===c.condition:!1}function te(e){return e?e.filterType===c.manual:!1}function ne(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 x={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},S=`sheets-table.config`;Symbol(S);let C={},re={headerRowStyle:{bd:{t:x}},headerColumnStyle:{bd:{l:x}},lastColumnStyle:{bd:{r:x}},lastRowStyle:{bd:{b:x}}},ie=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:x}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:x}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:x}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:x}};return t},w=[[[`#6280F9`,`#FFFFFF`,`#BAC6F8`,`#D2DAFA`],[`#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:x}},headerColumnStyle:{bd:{l:x}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:x}},lastColumnStyle:{bd:{r:x}}}}});function T(e){"@babel/helpers - typeof";return T=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},T(e)}function ae(e,t){if(T(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(T(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function oe(e){var t=ae(e,`string`);return T(t)==`symbol`?t:t+``}function E(e,t,n){return(t=oe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D=class{constructor(e,t){E(this,`dataType`,void 0),E(this,`id`,void 0),E(this,`displayName`,void 0),E(this,`formula`,void 0),E(this,`meta`,void 0),E(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=s.String,this.formula=``,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,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.meta=e.meta,this.style=e.style}};let se=e=>e.getMonth()<=2,ce=e=>{let t=e.getMonth();return t>2&&t<=5},le=e=>{let t=e.getMonth();return t>5&&t<=8},ue=e=>{let t=e.getMonth();return t>8&&t<=11},de=e=>e.getMonth()===0,fe=e=>e.getMonth()===1,pe=e=>e.getMonth()===2,me=e=>e.getMonth()===3,he=e=>e.getMonth()===4,ge=e=>e.getMonth()===5,_e=e=>e.getMonth()===6,ve=e=>e.getMonth()===7,ye=e=>e.getMonth()===8,be=e=>e.getMonth()===9,xe=e=>e.getMonth()===10,Se=e=>e.getMonth()===11,Ce=(e,t=new Date)=>e.toDateString()===t.toDateString(),we=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},Te=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()-1),e.toDateString()===n.toDateString()},O=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1),r=new Date(e);return r.setDate(n),r},k=10080*60*1e3,Ee=(e,t=new Date)=>{let n=O(e),r=O(t);return n.toDateString()===r.toDateString()},De=(e,t=new Date)=>{let n=O(e),r=new Date(O(t).getTime()+k);return n.toDateString()===r.toDateString()},Oe=(e,t=new Date)=>{let n=O(e),r=new Date(O(t).getTime()-k);return n.toDateString()===r.toDateString()},ke=(e,t=new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),Ae=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},je=(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()},Me=(e,t=new Date)=>{let n=Ae(t),r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},A=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},Ne=(e,t=new Date)=>{let n=A(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Pe=(e,t=new Date)=>{let n=A(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()},Fe=(e,t=new Date)=>{let n=A(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()},Ie=(e,t=new Date)=>e.getFullYear()===t.getFullYear(),Le=(e,t=new Date)=>e.getFullYear()===t.getFullYear()+1,Re=(e,t=new Date)=>e.getFullYear()===t.getFullYear()-1,ze=(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 Be(e){switch(e.compareType){case f.Equal:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case f.NotEqual:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case f.After:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case f.Before:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case f.AfterOrEqual:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case f.BeforeOrEqual:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case f.Between:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case f.NotBetween:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case f.Today:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ce(e,t)}case f.Yesterday:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Te(e,t)}case f.Tomorrow:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>we(e,t)}case f.ThisWeek:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ee(e,t)}case f.LastWeek:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Oe(e,t)}case f.NextWeek:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>De(e,t)}case f.ThisMonth:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ke(e,t)}case f.LastMonth:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Me(e,t)}case f.NextMonth:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>je(e,t)}case f.ThisQuarter:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ne(e,t)}case f.LastQuarter:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Fe(e,t)}case f.NextQuarter:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Pe(e,t)}case f.ThisYear:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ie(e,t)}case f.LastYear:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Re(e,t)}case f.NextYear:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Le(e,t)}case f.YearToDate:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ze(e,t)}case f.M1:return de;case f.M2:return fe;case f.M3:return pe;case f.M4:return me;case f.M5:return he;case f.M6:return ge;case f.M7:return _e;case f.M8:return ve;case f.M9:return ye;case f.M10:return be;case f.M11:return xe;case f.M12:return Se;case f.Q1:return se;case f.Q2:return ce;case f.Q3:return le;case f.Q4:return ue;default:throw Error(`Unsupported compare type`)}}var Ve=class{constructor(){E(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)}},He=class extends Ve{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 Ue=(e,t)=>{let n=new He;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},We=(e,t)=>e>t,Ge=(e,t)=>e<t,Ke=(e,t,n)=>Ue(e,t).includes(n);function qe(e,t){switch(e.compareType){case u.Equal:{let t=Number(e.expectedValue);return e=>e===t}case u.NotEqual:{let t=Number(e.expectedValue);return e=>e!==t}case u.GreaterThan:{let t=Number(e.expectedValue);return e=>e>t}case u.GreaterThanOrEqual:{let t=Number(e.expectedValue);return e=>e>=t}case u.LessThan:{let t=Number(e.expectedValue);return e=>e<t}case u.LessThanOrEqual:{let t=Number(e.expectedValue);return e=>e<=t}case u.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 u.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 u.Above:{let e=t.average;return t=>We(t,e)}case u.Below:{let e=t.average;return t=>Ge(t,e)}case u.TopN:{let n=t.list,r=Number(e.expectedValue);return e=>Ke(n,r,e)}}}let Je=(e,n)=>(0,t.createREGEXFromWildChar)(n).test(e),Ye=(e,n)=>!(0,t.createREGEXFromWildChar)(n).test(e),Xe=(e,n)=>(0,t.createREGEXFromWildChar)(`*${n}*`).test(e),Ze=(e,n)=>!(0,t.createREGEXFromWildChar)(`*${n}*`).test(e),Qe=(e,n)=>(0,t.createREGEXFromWildChar)(`${n}*`).test(e),$e=(e,n)=>(0,t.createREGEXFromWildChar)(`*${n}`).test(e);function et(e){switch(e.compareType){case d.Equal:return t=>Je(t,e.expectedValue);case d.NotEqual:return t=>Ye(t,e.expectedValue);case d.Contains:return t=>Xe(t,e.expectedValue);case d.NotContains:return t=>Ze(t,e.expectedValue);case d.StartsWith:return t=>Qe(t,e.expectedValue);case d.EndsWith:return t=>$e(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let tt=new Set([u.Above,u.Below,u.TopN]);new Set([f.Today,f.Yesterday,f.Tomorrow,f.ThisWeek,f.LastWeek,f.NextWeek,f.ThisMonth,f.LastMonth,f.NextMonth,f.ThisQuarter,f.LastQuarter,f.NextQuarter,f.NextYear,f.ThisYear,f.LastYear,f.YearToDate]);function j(e){return tt.has(e)}function nt(e,t){if(j(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case l.Date:return Be(e.filterInfo);case l.Number:return qe(e.filterInfo,t);case l.String:return et(e.filterInfo);case l.Logic:default:return e=>!0}}function M(e,t,n,r){switch(r){case l.Date:{let r=N(e,t,n);return r?at(r):null}case l.Number:return N(e,t,n);case l.String:default:return it(e,t,n)}}let rt=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function it(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return rt(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 N(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 at(e){let t=new Date(Date.UTC(1900,0,1,0,0,0)),n=new Date(Date.UTC(1900,1,28,0,0,0)),r=e-1;return r>(n.getTime()-t.getTime())/(1e3*3600*24)&&--r,r<0&&(r=e),new Date(t.getTime()+1e3*3600*24*r)}var P=class{constructor(){E(this,`_tableColumnFilterList`,void 0),E(this,`_tableSortInfo`,void 0),E(this,`_filterOutRows`,void 0),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}getColumnFilter(e){return this._tableColumnFilterList[e]}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:m.None;return b(this._tableColumnFilterList[e],n)}getSortState(){var e;return(e=this._tableSortInfo)==null?{}:e}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}doFilter(e,t){let n=new Set,r=this._tableColumnFilterList;for(let i=0;i<r.length;i++)r[i]&&this.doColumnFilter(e,t,i,n);return this._filterOutRows=n,n}doColumnFilter(e,t,n,r){let i=this._tableColumnFilterList[n];if(i&&e){let{startRow:a,endRow:o,startColumn:s}=t,c=s+n,u=this.getExecuteFunc(e,t,n,i);for(let t=a;t<=o;t++){let n=ee(i)?i.filterInfo.conditionType:l.String;M(e,t,c,n)===null?r.add(t):u(M(e,t,c,n))||r.add(t)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,u=0;for(let t=r;t<=i;t++){let n=M(e,t,o,l.Number);n!==null&&(s.push(n),c++,u+=n)}return{list:s,average:c>0?u/c:0}}getExecuteFunc(e,t,n,r){if(r.filterType===c.manual){let e=new Set(r.values);return t=>e.has(t)}else if(r.filterType===c.condition)return nt(r,j(r.filterInfo.compareType)?this._getNumberCalculatedOptions(e,t,n):void 0);else return e=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){var t;this._tableColumnFilterList=(t=e.tableColumnFilterList)==null?[]:t,e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[]}},F=class{constructor(e,t,n,r,i={}){E(this,`_id`,void 0),E(this,`_name`,void 0),E(this,`_tableStyleId`,void 0),E(this,`_showHeader`,void 0),E(this,`_showFooter`,void 0),E(this,`_range`,void 0),E(this,`_columns`,new Map),E(this,`_columnOrder`,[]),E(this,`tableMeta`,void 0),E(this,`_tableFilters`,void 0),E(this,`_subUnitId`,void 0),this._id=e,this._range=n,this._name=t,this._tableFilters=new P,this._init(r,i)}_init(e,n){var r;this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(r=n==null?void 0:n.showHeader)==null?!0:r,this._showFooter=!1;let i=this.getRange(),a=i.startColumn,o=i.endColumn;for(let r=a;r<=o;r++){var s;let i=r-a,o,c;(s=n.columns)!=null&&s[i]?(o=n.columns[i].id,c=n.columns[i].displayName):(o=(0,t.generateRandomId)(),c=e[r-a]);let l=new D(o,c);this._columns.set(o,l),this._columnOrder.push(o)}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 D(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(){var e;return(e=this._tableStyleId)==null?w[0].name:e}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){var e;return(e=this._showHeader)==null?!0:e}setShowHeader(e){this._showHeader=e}isShowFooter(){var e;return(e=this._showFooter)==null?!1:e}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,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},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,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){var t,n;this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=(t=e.options.showHeader)==null?!0:t,this._showFooter=(n=e.options.showFooter)==null?!0:n,e.columns.forEach(e=>{let t=new D(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new P,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!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,E(this,`_tableMap`,void 0),E(this,`_tableAdd$`,new i.Subject),E(this,`tableAdd$`,this._tableAdd$.asObservable()),E(this,`_tableDelete$`,new i.Subject),E(this,`tableDelete$`,this._tableDelete$.asObservable()),E(this,`_tableNameChanged$`,new i.Subject),E(this,`tableNameChanged$`,this._tableNameChanged$.asObservable()),E(this,`_tableRangeChanged$`,new i.Subject),E(this,`tableRangeChanged$`,this._tableRangeChanged$.asObservable()),E(this,`_tableThemeChanged$`,new i.Subject),E(this,`tableThemeChanged$`,this._tableThemeChanged$.asObservable()),E(this,`_tableFilterChanged$`,new i.Subject),E(this,`tableFilterChanged$`,this._tableFilterChanged$.asObservable()),E(this,`_tableInitStatus`,new i.BehaviorSubject(!1)),E(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==null?`Column`:r;for(let e=s;e<=c;e++)l.push(y(a==null?void 0:a.getCell(o,e))||h(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o==null?(0,t.generateRandomId)():o,l=new F(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){var u;let t=(u=this._univerInstanceService.getUnit(e))==null?void 0:u.getSheetBySheetId(n);l.getTableFilters().doFilter(t,i),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()&&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:o,rowColType:s,index:c,count:l,columnsJson:u}=r,d=i.getRange(),f={...d};if(o===a.Insert){if(s===`row`)f.endRow+=l;else if(s===`column`){f.endColumn+=l;for(let e=0;e<l;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new D((0,t.generateRandomId)(),h(i.getColumnsCount()+1+e,n));u!=null&&u[e]&&r.fromJSON(u[e]);let a=c+e-d.startColumn;i.insertColumn(a,r)}}}else if(s===`row`)f.endRow-=l;else if(s===`column`){f.endColumn-=l;for(let e=l-1;e>=0;e--){let t=c+e-d.startColumn;i.removeColumn(t)}}i.setRange(f),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:f,oldRange:d})}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 D((0,t.generateRandomId)(),h(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;for(let n=0;n<e;n++)i.insertColumn(a.endColumn,new D((0,t.generateRandomId)(),h(i.getColumnsCount()+1,`Column`)))}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,options:u}=n;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){var d;let n=(d=i.getTableStyleId())==null?`default`:d;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}u&&u.showHeader!==void 0&&i.setShowHeader(u.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;t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),s&&s.forEach(t=>{let r=this.getColumnHeader(e,i,t.range),a=new F(t.id,t.name,t.range,r,t.options);if(a.setTableMeta(t.meta),t.columns.length&&a.setColumns(t.columns),t.filters){let e=a.getTableFilters();e.fromJSON(t.filters),e.doFilter(o,a.getTableFilterRange())}a.setSubunitId(i),n.set(t.id,a),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id})})}),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=l.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}},ot={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i;if(!r)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(t.LocaleService),c=e.get(R),l=(i=r.id)==null?(0,t.generateRandomId)():i,u=ne(r.unitId,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:c,definedNamesService:e.get(n.IDefinedNamesService)}),d=r.name;if(!d||!(0,t.customNameCharacterCheck)(d.toLowerCase(),u)){let e=s.t(`sheets-table.tablePrefix`),t=c.getTableList(r.unitId).length+1;for(let n of u)if(n.startsWith(e.toLowerCase())){let r=Number(n.slice(e.length));Number.isInteger(r)&&r>=t&&(t=r+1)}d=`${e}${t}`}let f=[],p=[],{unitId:m,subUnitId:h,range:g}=r,_=c.getColumnHeader(m,h,g,s.t(`sheets-table.columnPrefix`));return f.push({id:B.id,params:{...r,tableId:l,name:d,header:_}}),p.push({id:V.id,params:{tableId:l,unitId:r.unitId}}),(0,t.sequenceExecute)(f,o)&&a.pushUndoRedo({unitID:r.unitId,undoMutations:p,redoMutations:f}),!0}},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}},st={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();return 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()}}),(0,t.sequenceExecute)(c,e.get(t.ICommandService))&&e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0}},ct={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.IUndoRedoService),i=e.get(t.ICommandService),a=e.get(R),o=e.get(t.ILogService),s=[],c=[],l=a.getTable(n.unitId,n.tableId),u=l==null?void 0:l.toJSON();return u?(s.push({id:V.id,params:{...n}}),c.push({id:B.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:u.name,range:u.range,options:u.options}}),(0,t.sequenceExecute)(s,i)&&r.pushUndoRedo({unitID:n.unitId,undoMutations:c,redoMutations:s}),!0):(o.error(`[TableManager]: Table not found`),!1)}},lt=`SHEET_TABLE_PLUGIN`,U=`SHEET_TABLE`,ut=`table-custom`,W={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(ut)).find(e=>e!==o);m||(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);return 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}}})),(0,t.sequenceExecute)(d,e.get(t.ICommandService))&&e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0}},dt={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let{unitId:i,tableId:o,name:s,updateRange:c,rowColOperation:l,theme:u}=r,d=e.get(R),f=d.getTableById(i,o);if(!f)return!1;let p={},m={},h=e.get(t.LocaleService),g=ne(i,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:d,definedNamesService:e.get(n.IDefinedNamesService)});if(s){if(!(0,t.customNameCharacterCheck)(s.toLowerCase(),g))return e.get(t.ILogService).warn(h.t(`sheets-table.tableNameError`)),!1;p.name=f.getDisplayName(),m.name=s}l&&(p.rowColOperation={operationType:l.operationType===a.Insert?a.Delete:a.Insert,rowColType:l.rowColType,index:l.index,count:l.count},m.rowColOperation=l),c&&(p.updateRange={newRange:f.getRange()},m.updateRange=c),u&&(p.theme=f.getTableStyleId(),m.theme=u);let _={unitId:i,subUnitId:f.getSubunitId(),tableId:o,config:m};return e.get(t.ICommandService).executeCommand(H.id,_),e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,undoMutations:[{id:H.id,params:{unitId:i,subUnitId:f.getSubunitId(),tableId:o,config:p}}],redoMutations:[{id:H.id,params:_}]}),!0}},G={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t;return e.get(R).addFilter(r,n,i,a),!0}},ft={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.IUndoRedoService),i=e.get(t.ICommandService),a=n.tableId||(0,t.generateRandomId)(),o=[],s=[];return o.push({id:G.id,params:{...n,tableId:a}}),s.push({id:G.id,params:{...n,tableId:a,tableFilter:void 0}}),(0,t.sequenceExecute)(o,i)&&r.pushUndoRedo({unitID:n.unitId,undoMutations:s,redoMutations:o}),!0}},K=class extends t.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetInterceptorService=t,this._tableManager=n,this._resourceManagerService=r,E(this,`_tableRangeRTree`,new Map),this._initSnapshot(),this._initSheetChange(),this.registerTableChangeEvent(),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:lt,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}}else 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);let pt={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let n=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService));if(!n)return!1;let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=n,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;e.get(R);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=a.getRowCount()-1,p=a.getCellMatrix().getDataRange().endRow,m=[],h=[];if(f-p<d)m.push({id:r.InsertRowMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...u.getRange(),endRow:u.getRange().endRow+d}}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:u.getRange()}}}}),h.push({id:r.RemoveRowMutation.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:{updateRange:{newRange:{...t,endRow:t.endRow+d}}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:p,startColumn:t.startColumn,endColumn:t.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow+d,endRow:p+d,startColumn:t.startColumn,endColumn:t.endColumn}});n&&(m.push(...n.redos),h.push(...n.undos))}return(0,t.sequenceExecute)(m,e.get(t.ICommandService))&&e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0}},mt={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService));if(!n)return!1;let{worksheet:i,unitId:s,subUnitId:c}=n,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=i.getColumnCount()-1,m=i.getCellMatrix().getDataRange().endColumn,h=[],g=[];if(p-m<f)h.push({id:r.InsertColMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}}),h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:u.startColumn,count:f}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:u.startColumn,count:f}}}}),g.push({id:r.RemoveColMutation.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:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:u.startColumn,count:f}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:u.startColumn,count:f}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:s,subUnitId:c,range:{startRow:t.startRow,endRow:t.endRow,startColumn:u.startColumn,endColumn:m}},{unitId:s,subUnitId:c,range:{startRow:t.startRow,endRow:t.endRow,startColumn:u.startColumn+f,endColumn:m+f}});n&&(h.push(...n.redos),g.push(...n.undos))}return(0,t.sequenceExecute)(h,e.get(t.ICommandService))&&e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:g,redoMutations:h}),!0}},ht={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o}=i,s=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!s.length||s.length>1)return!1;let c=s[0].range,l=e.get(K).getContainerTableWithRange(a,o,c);if(!l)return!1;let u=c.endRow-c.startRow+1,d=[],f=[],p=l.getRange();d.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{updateRange:{newRange:{...p,endRow:p.endRow-u}}}}}),f.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{updateRange:{newRange:{...p}}}}});let m=i.worksheet.getCellMatrix().getDataRange().endRow,h=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:a,subUnitId:o,range:{startRow:c.endRow+1,endRow:m,startColumn:p.startColumn,endColumn:p.endColumn}},{unitId:a,subUnitId:o,range:{startRow:c.startRow,endRow:m-u,startColumn:p.startColumn,endColumn:p.endColumn}});return h&&(d.push(...h.redos),f.push(...h.undos)),(0,t.sequenceExecute)(d,e.get(t.ICommandService))&&e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:f,redoMutations:d}),!0}},q={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:s,unitId:c,subUnitId:l}=i;e.get(R);let u=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!u.length||u.length>1)return!1;let d=u[0].range,f=e.get(K).getContainerTableWithRange(c,l,d);if(!f)return!1;let p=d.endColumn-d.startColumn+1,m=[],h=[],g=f.getRange();m.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:f.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:d.startColumn,count:p}}}});let _=[],v=d.startColumn-g.startColumn;for(let e=0;e<p;e++){let t=f.getTableInfo().columns[v+e];t&&_.push(t)}h.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:f.getId(),config:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:d.startColumn,count:p,columnsJson:_}}}});let y=i.worksheet.getCellMatrix().getDataRange().endColumn,b=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:c,subUnitId:l,range:{startRow:g.startRow,endRow:g.endRow,startColumn:d.endColumn+1,endColumn:y}},{unitId:c,subUnitId:l,range:{startRow:g.startRow,endRow:g.endRow,startColumn:d.startColumn,endColumn:y-p}});return b&&(m.push(...b.redos),h.push(...b.undos)),(0,t.sequenceExecute)(m,e.get(t.ICommandService))&&e.get(t.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0}};var gt=`@univerjs/sheets-table`,_t=`0.18.0`;let J=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._commandService=t,this._initRangeListener()}_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,tableName:r}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:r})})),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});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a)}))}_updateSuperTable(e,t){let r=t.getTableInfo(),i=r.name,a=r.columns,o=new Map;a.forEach((e,t)=>{o.set(e.displayName,t)}),this._commandService.executeCommand(n.SetSuperTableMutation.id,{unitId:e,tableName:i,reference:{range:r.range,sheetId:r.subUnitId,titleMap:o}})}};J=L([I(0,(0,t.Inject)(R)),I(1,t.ICommandService)],J);let Y=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,U,n),this._exclusiveRangeService.addExclusiveRange(r,i,U,[{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,U,[{range:{...i},groupId:t}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(n,r,U,t)}))}};Y=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.IExclusiveRangeService))],Y);let X=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({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=[],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.startRow>r.startRow&&c.startRow<=r.endRow){let i=c.endRow-c.startRow+1;n.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+i}}}}}),t.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:n}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:s,subUnitId:c}=i,l=this._tableManager.getTablesBySubunitId(s,c);if(!l.length)return{undos:t,redos:n};let{range:u}=e;return l.forEach(e=>{let r=e.getRange();if(u.startColumn>r.startColumn&&u.startColumn<=r.endColumn){let r=u.endColumn-u.startColumn+1;n.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:e.getId(),config:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:u.startColumn,count:r}}}}),t.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:e.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:u.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=[],s=[],c=[],l=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!l)return{undos:n,redos:i,preRedos:s,preUndos:c};let{unitId:u,subUnitId:d}=l,f=this._tableManager.getTablesBySubunitId(u,d);if(!f.length)return{undos:n,redos:i,preRedos:s,preUndos:c};let{range:p}=e,m=p.endColumn-p.startColumn+1;return f.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,p)){if(p.startColumn<=r.startColumn&&p.endColumn>=r.endColumn){s.push({id:V.id,params:{unitId:u,subUnitId:d,tableId:e.getId()}});let t=e.toJSON(),{startRow:r,startColumn:a,endColumn:o}=t.range,l=this._univerInstanceService.getUnit(u),f=l==null?void 0:l.getSheetBySheetId(d);if(!f)return{undos:n,redos:i,preRedos:s,preUndos:c};let p=[];for(let e=a;e<=o;e++)p.push(y(f==null?void 0:f.getCell(r,e))||h(e-a+1,this._localeService.t(`sheets-table.columnPrefix`)));n.push({id:B.id,params:{unitId:u,subUnitId:d,tableId:t.id,name:t.name,header:p,range:t.range,options:t.options}})}else if(p.startColumn<=r.startColumn&&p.endColumn>=r.startColumn){let t=p.endColumn-r.startColumn+1;i.push({id:H.id,params:{unitId:u,subUnitId:d,tableId:e.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:r.startColumn,count:t}}}});let s=[];for(let n=0;n<t;n++){let t=e.getTableColumnByIndex(n);t&&s.push(t.toJSON())}n.push({id:H.id,params:{unitId:u,subUnitId:d,tableId:e.getId(),config:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:r.startColumn,count:t,columnsJson:s}}}})}else if(p.startColumn>r.startColumn&&p.endColumn>r.endColumn){let t=r.endColumn-p.startColumn+1;i.push({id:H.id,params:{unitId:u,subUnitId:d,tableId:e.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:p.startColumn,count:t}}}});let s=[],c=p.startColumn-r.startColumn;for(let n=0;n<t;n++){let t=e.getTableColumnByIndex(n+c);t&&s.push(t.toJSON())}n.push({id:H.id,params:{unitId:u,subUnitId:d,tableId:e.getId(),config:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:p.startColumn,count:m,columnsJson:s}}}})}else if(p.startColumn>r.startColumn&&p.endColumn<=r.endColumn){i.push({id:H.id,params:{unitId:u,subUnitId:d,tableId:e.getId(),config:{rowColOperation:{operationType:a.Delete,rowColType:o.Col,index:p.startColumn,count:m}}}});let t=[],s=p.startColumn-r.startColumn;for(let n=0;n<m;n++){let r=e.getTableColumnByIndex(n+s);r&&t.push(r.toJSON())}n.push({id:H.id,params:{unitId:u,subUnitId:d,tableId:e.getId(),config:{rowColOperation:{operationType:a.Insert,rowColType:o.Col,index:p.startColumn,count:m,columnsJson:t}}}})}}}),{undos:n,redos:i,preRedos:s,preUndos:c}}_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}})})}})}};X=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))],X);let Z=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=n,this._configService=r,E(this,`_defaultThemeIndex`,0),E(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(w)}_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}};Z=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)],Z);let Q=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._zebraCrossingCacheController=r,E(this,`_tableFilteredOutRows$`,new i.BehaviorSubject(new Set)),E(this,`tableFilteredOutRows$`,this._tableFilteredOutRows$.asObservable()),E(this,`_subscription`,null),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._initFilteredOutRows()}get tableFilteredOutRows(){return this._tableFilteredOutRows$.value}set tableFilteredOutRows(e){this._tableFilteredOutRows$.next(e)}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this.tableFilteredOutRows.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.tableFilteredOutRows.clear(),this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)this.tableFilteredOutRows.add(e)})})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{var t;let{unitId:n,subUnitId:r,tableId:i}=e,a=(t=this._univerInstanceService.getUnit(n))==null?void 0:t.getSheetBySheetId(r),o=this._tableManager.getTable(n,i);!a||!o||(this.tableFilteredOutRows.clear(),o.getTableFilters().doFilter(a,o.getTableFilterRange()),this._tableManager.getTablesBySubunitId(n,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)this.tableFilteredOutRows.add(e)}),this._zebraCrossingCacheController.updateZebraCrossingCache(n,r))}))}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)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=C,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},C,this._config);this._configService.setConfig(S,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[R],[Z],[K],[z],[Q],[Y],[X],[J]])}onReady(){(0,t.touchDependencies)(this._injector,[[J],[Y],[X],[Z],[K],[z],[Q]]),(0,t.touchDependencies)(this._injector,[[R]])}_initRegisterCommand(){[ot,B,ct,V,G,ft,dt,H,st,W,pt,mt,ht,q].forEach(e=>this._commandService.registerCommand(e))}};E($,`pluginName`,lt),E($,`packageName`,gt),E($,`version`,_t),E($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=L([I(1,(0,t.Inject)(t.Injector)),I(2,t.IConfigService),I(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=ot,e.AddSheetTableMutation=B,e.AddTableThemeCommand=st,e.DeleteSheetTableCommand=ct,e.DeleteSheetTableMutation=V,e.RemoveTableThemeCommand=W,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=ut,e.SetSheetTableCommand=dt,e.SetSheetTableFilterCommand=ft,e.SetSheetTableFilterMutation=G,e.SetSheetTableMutation=H,e.SheetTableInsertColCommand=mt,e.SheetTableInsertRowCommand=pt,e.SheetTableRemoveColCommand=q,e.SheetTableRemoveRowCommand=ht,Object.defineProperty(e,`SheetTableService`,{enumerable:!0,get:function(){return z}}),e.SheetsTableButtonStateEnum=p,Object.defineProperty(e,`SheetsTableController`,{enumerable:!0,get:function(){return K}}),e.SheetsTableSortStateEnum=m,e.TableColumnDataTypeEnum=s,e.TableColumnFilterTypeEnum=c,e.TableConditionTypeEnum=l,e.TableDateCompareTypeEnum=f,Object.defineProperty(e,`TableManager`,{enumerable:!0,get:function(){return R}}),e.TableNumberCompareTypeEnum=u,e.TableStringCompareTypeEnum=d,Object.defineProperty(e,`UniverSheetsTablePlugin`,{enumerable:!0,get:function(){return $}}),e.customEmptyThemeWithBorderStyle=re,e.isConditionFilter=ee,e.isManualTableFilter=te,e.processStyleWithBorderStyle=ie});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-table",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "private": false,
5
5
  "description": "A library for connect and bind data from other sources to Univer Sheets",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -60,23 +60,24 @@
60
60
  "rxjs": ">=7.0.0"
61
61
  },
62
62
  "dependencies": {
63
- "@univerjs/core": "0.17.0",
64
- "@univerjs/sheets": "0.17.0",
65
- "@univerjs/engine-formula": "0.17.0"
63
+ "@univerjs/core": "0.18.0",
64
+ "@univerjs/engine-formula": "0.18.0",
65
+ "@univerjs/sheets": "0.18.0"
66
66
  },
67
67
  "devDependencies": {
68
68
  "rxjs": "^7.8.2",
69
69
  "typescript": "^5.9.3",
70
- "vite": "^7.3.1",
71
- "vitest": "^4.0.18",
72
- "@univerjs-infra/shared": "0.17.0"
70
+ "vitest": "^4.1.0",
71
+ "@univerjs-infra/shared": "0.18.0"
73
72
  },
74
73
  "scripts": {
75
74
  "test": "vitest run",
76
75
  "test:watch": "vitest",
77
76
  "coverage": "vitest run --coverage",
78
77
  "typecheck": "tsc --noEmit",
79
- "build": "univer-cli build"
78
+ "build:bundle": "univer-cli build",
79
+ "build:types": "tsc -p tsconfig.node.json",
80
+ "build": "pnpm run build:bundle && pnpm run build:types"
80
81
  },
81
82
  "module": "./lib/es/index.js"
82
83
  }