@univerjs/sheets-table 0.10.14 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +1 -1
- package/lib/es/index.js +249 -251
- package/lib/index.js +249 -251
- package/lib/umd/index.js +1 -1
- package/package.json +4 -4
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/sheets"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","rxjs"],u):(m=typeof globalThis<"u"?globalThis:m||self,u(m.UniverSheetsTable={},m.UniverCore,m.UniverSheets,m.rxjs))})(this,(function(m,u,C,N){"use strict";var en=Object.defineProperty;var tn=(m,u,C)=>u in m?en(m,u,{enumerable:!0,configurable:!0,writable:!0,value:C}):m[u]=C;var T=(m,u,C)=>tn(m,typeof u!="symbol"?u+"":u,C);var te;var v=(n=>(n.Insert="insert",n.Delete="delete",n))(v||{}),D=(n=>(n.Row="row",n.Col="column",n))(D||{}),ae=(n=>(n.None="none",n.String="string",n.Number="number",n.Date="date",n.Bool="bool",n.Checkbox="checkbox",n.List="list",n))(ae||{}),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||{}),x=(n=>(n.Equal="equal",n.NotEqual="notEqual",n.Contains="contains",n.NotContains="notContains",n.StartsWith="startsWith",n.EndsWith="endsWith",n))(x||{}),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||{}),L=(n=>(n.Asc="asc",n.Desc="desc",n.None="none",n))(L||{});function P(n,e){return`${e} ${n}`}const oe="TRUE",ie="FALSE",Ee=n=>{var t;return((t=n.body)==null?void 0:t.dataStream.replace(/\r\n$/,""))||""};function le(n){if(n){const{v:e,t,p:a}=n;return a?Ee(a):(t===u.CellValueType.FORCE_STRING||t===u.CellValueType.STRING)&&e!==void 0&&e!==null?String(e):t===u.CellValueType.BOOLEAN?e?oe:ie:t===u.CellValueType.NUMBER?String(e):typeof e==="boolean"?e?oe:ie:e==null?"":String(e)}return""}function xe(n,e){if(n!=null)switch(e){case L.Asc:return A.FilteredSortAsc;case L.Desc:return A.FilteredSortDesc;default:return A.FilteredSortNone}else switch(e){case L.Asc:return A.FilterNoneSortAsc;case L.Desc:return A.FilterNoneSortDesc;default:return A.FilterNoneSortNone}}function ue(n){return n?n.filterType===V.condition:!1}function Ae(n){return n?n.filterType===V.manual:!1}const U={s:u.BorderStyleTypes.THIN,cl:{rgb:"rgb(95, 101, 116)"}},de="sheets-table.config",ce={},$e={headerRowStyle:{bd:{t:U}},headerColumnStyle:{bd:{l:U}},lastColumnStyle:{bd:{r:U}},lastRowStyle:{bd:{b:U}}},Be=(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},he=[[["#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,i]=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:i},bd:{b:U}},lastColumnStyle:{bd:{r:U}}}}});class q{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=ae.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 Le=n=>n.getMonth()<=2,We=n=>{const e=n.getMonth();return e>2&&e<=5},Ve=n=>{const e=n.getMonth();return e>5&&e<=8},qe=n=>{const e=n.getMonth();return e>8&&e<=11},He=n=>n.getMonth()===0,Pe=n=>n.getMonth()===1,Je=n=>n.getMonth()===2,ke=n=>n.getMonth()===3,Qe=n=>n.getMonth()===4,Ye=n=>n.getMonth()===5,je=n=>n.getMonth()===6,Ge=n=>n.getMonth()===7,Xe=n=>n.getMonth()===8,ze=n=>n.getMonth()===9,Ke=n=>n.getMonth()===10,Ze=n=>n.getMonth()===11,et=(n,e=new Date)=>n.toDateString()===e.toDateString(),tt=(n,e=new Date)=>{const t=new Date(e);return t.setDate(t.getDate()+1),n.toDateString()===t.toDateString()},nt=(n,e=new Date)=>{const t=new Date(e);return t.setDate(t.getDate()-1),n.toDateString()===t.toDateString()},H=n=>{const e=n.getDay(),t=n.getDate()-e+(e===0?-6:1),a=new Date(n);return a.setDate(t),a},ge=10080*60*1e3,at=(n,e=new Date)=>{const t=H(n),a=H(e);return t.toDateString()===a.toDateString()},rt=(n,e=new Date)=>{const t=H(n),a=new Date(H(e).getTime()+ge);return t.toDateString()===a.toDateString()},st=(n,e=new Date)=>{const t=H(n),a=new Date(H(e).getTime()-ge);return t.toDateString()===a.toDateString()},ot=(n,e=new Date)=>n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth(),it=n=>{const e=new Date(n);return e.setHours(0,0,0,0),e.setDate(1),e},lt=(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()},ut=(n,e=new Date)=>{const t=it(e),a=new Date(t);a.setMonth(a.getMonth()+1,0);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},re=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},dt=(n,e=new Date)=>{const t=re(e),a=new Date(t);a.setMonth(a.getMonth()+3);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},ct=(n,e=new Date)=>{const t=re(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()},ht=(n,e=new Date)=>{const t=re(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()},gt=(n,e=new Date)=>n.getFullYear()===e.getFullYear(),mt=(n,e=new Date)=>n.getFullYear()===e.getFullYear()+1,bt=(n,e=new Date)=>n.getFullYear()===e.getFullYear()-1,St=(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 Ct(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=>et(t,e)}case S.Yesterday:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>nt(t,e)}case S.Tomorrow:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>tt(t,e)}case S.ThisWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>at(t,e)}case S.LastWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>st(t,e)}case S.NextWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>rt(t,e)}case S.ThisMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ot(t,e)}case S.LastMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ut(t,e)}case S.NextMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>lt(t,e)}case S.ThisQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>dt(t,e)}case S.LastQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ht(t,e)}case S.NextQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ct(t,e)}case S.ThisYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>gt(t,e)}case S.LastYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>bt(t,e)}case S.NextYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>mt(t,e)}case S.YearToDate:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>St(t,e)}case S.M1:return He;case S.M2:return Pe;case S.M3:return Je;case S.M4:return ke;case S.M5:return Qe;case S.M6:return Ye;case S.M7:return je;case S.M8:return Ge;case S.M9:return Xe;case S.M10:return ze;case S.M11:return Ke;case S.M12:return Ze;case S.Q1:return Le;case S.Q2:return We;case S.Q3:return Ve;case S.Q4:return qe;default:throw new Error("Unsupported compare type")}}class Tt{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 Rt extends Tt{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 wt=(n,e)=>{const t=new Rt;for(const a of n)t.insert(a),t.size()>e&&t.pop();return t.heap},ft=(n,e)=>n>e,It=(n,e)=>n<e,_t=(n,e,t)=>wt(n,e).includes(t);function pt(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=>ft(a,t)}case y.Below:{const t=e.average;return a=>It(a,t)}case y.TopN:{const t=e.list,a=Number(n.expectedValue);return r=>_t(t,a,r)}}}const vt=(n,e)=>u.createREGEXFromWildChar(e).test(n),Mt=(n,e)=>!u.createREGEXFromWildChar(e).test(n),Ft=(n,e)=>u.createREGEXFromWildChar(`*${e}*`).test(n),yt=(n,e)=>!u.createREGEXFromWildChar(`*${e}*`).test(n),Dt=(n,e)=>u.createREGEXFromWildChar(`${e}*`).test(n),Nt=(n,e)=>u.createREGEXFromWildChar(`*${e}`).test(n);function Ot(n){switch(n.compareType){case x.Equal:return e=>vt(e,n.expectedValue);case x.NotEqual:return e=>Mt(e,n.expectedValue);case x.Contains:return e=>Ft(e,n.expectedValue);case x.NotContains:return e=>yt(e,n.expectedValue);case x.StartsWith:return e=>Dt(e,n.expectedValue);case x.EndsWith:return e=>Nt(e,n.expectedValue);default:return console.error(`Unknown filter operator: ${n.compareType}`),e=>!0}}const Ut=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 me(n){return Ut.has(n)}function Et(n,e){if(me(n.filterInfo.compareType))return t=>!0;switch(n.filterInfo.conditionType){case O.Date:return Ct(n.filterInfo);case O.Number:return pt(n.filterInfo,e);case O.String:return Ot(n.filterInfo);case O.Logic:default:return t=>!0}}function k(n,e,t,a){switch(a){case O.Date:{const r=be(n,e,t);return r?$t(r):null}case O.Number:return be(n,e,t);case O.String:default:return At(n,e,t)}}const xt=n=>{var t;return((t=n.body)==null?void 0:t.dataStream.replace(/\r\n$/,""))||""};function At(n,e,t){const a=n.getCell(e,t);if(!a)return null;const{v:r,t:s,p:o}=a;if(o)return xt(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 be(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 $t(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 Se{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:L.None;return xe(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:i,startColumn:d}=t,l=d+a,c=this.getExecuteFunc(e,t,a,s);for(let g=o;g<=i;g++){const h=ue(s)?s.filterInfo.conditionType:O.String;k(e,g,l,h)===null?r.add(g):c(k(e,g,l,h))||r.add(g)}}}_getNumberCalculatedOptions(e,t,a){const{startRow:r,endRow:s,startColumn:o}=t,i=o+a,d=[];let l=0,c=0;for(let g=r;g<=s;g++){const h=k(e,g,i,O.Number);h!==null&&(d.push(h),l++,c+=h)}return{list:d,average:l>0?c/l: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=me(r.filterInfo.compareType)?this._getNumberCalculatedOptions(e,t,a):void 0;return Et(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 Ce{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 Se,this._init(r,s)}_init(e,t){var o,i;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 l=d-r;let c,g;(i=t.columns)!=null&&i[l]?(c=t.columns[l].id,g=t.columns[l].displayName):(c=u.generateRandomId(),g=e[d-r]);const h=new q(c,g);this._columns.set(c,h),this._columnOrder.push(c)}t.filters&&t.filters.forEach((l,c)=>{l&&this._tableFilters.setColumnFilter(c,l)})}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:i}=e,d=t?r+1:r,l=a?o-1:o;return{startRow:d,startColumn:s,endRow:l,endColumn:i}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(t=>{const a=new q(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:he[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 q(s.id,s.displayName);o.fromJSON(s),this._columns.set(s.id,o),this._columnOrder.push(s.id)}),this._tableFilters=new Se,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 Bt=Object.getOwnPropertyDescriptor,Lt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Bt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},Te=(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 N.Subject);T(this,"tableAdd$",this._tableAdd$.asObservable());T(this,"_tableDelete$",new N.Subject);T(this,"tableDelete$",this._tableDelete$.asObservable());T(this,"_tableNameChanged$",new N.Subject);T(this,"tableNameChanged$",this._tableNameChanged$.asObservable());T(this,"_tableRangeChanged$",new N.Subject);T(this,"tableRangeChanged$",this._tableRangeChanged$.asObservable());T(this,"_tableThemeChanged$",new N.Subject);T(this,"tableThemeChanged$",this._tableThemeChanged$.asObservable());T(this,"_tableFilterChanged$",new N.Subject);T(this,"tableFilterChanged$",this._tableFilterChanged$.asObservable());T(this,"_tableInitStatus",new N.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:i,startColumn:d,endColumn:l}=r,c=[],g=s!=null?s:"Column";for(let b=d;b<=l;b++)c.push(le(o==null?void 0:o.getCell(i,b))||P(b-d+1,g));return c}addTable(t,a,r,s,o,i,d){var b;const l=i!=null?i:u.generateRandomId(),c=o||this.getColumnHeader(t,a,s),g=new Ce(l,r,s,c,d);if(g.setSubunitId(a),this._ensureUnit(t).set(l,g),this._tableAdd$.next({unitId:t,subUnitId:a,range:s,tableName:r,tableId:l,tableStyleId:d==null?void 0:d.tableStyleId}),d!=null&&d.filters){const w=(b=this._univerInstanceService.getUnit(t))==null?void 0:b.getSheetBySheetId(a);g.getTableFilters().doFilter(w,s),this._tableFilterChanged$.next({unitId:t,subUnitId:a,tableId:l})}return l}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,i=1;for(;s.has(o);)o=`${a}-${i}`,i++;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(),i=s.getTableStyleId();r==null||r.delete(a);const{subUnitId:d,range:l,name:c}=o;this._tableDelete$.next({unitId:t,subUnitId:d,tableId:a,range:l,tableName:c,tableStyleId:i})}}operationTableRowCol(t,a,r){const s=this.getTableById(t,a);if(!s)return;const{operationType:o,rowColType:i,index:d,count:l,columnsJson:c}=r,g=s.getRange(),h={...g};if(o===v.Insert){if(i==="row")h.endRow+=l;else if(i==="column"){h.endColumn+=l;for(let b=0;b<l;b++){const w=this._localeService.t("sheets-table.columnPrefix"),R=new q(u.generateRandomId(),P(s.getColumnsCount()+1+b,w));c!=null&&c[b]&&R.fromJSON(c[b]);const I=d+b-g.startColumn;s.insertColumn(I,R)}}}else if(i==="row")h.endRow-=l;else if(i==="column"){h.endColumn-=l;for(let b=l-1;b>=0;b--){const w=d+b-g.startColumn;s.removeColumn(w)}}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(),i=r.newRange;if(i.startColumn<o.startColumn){const d=o.startColumn-i.startColumn,l=this._localeService.t("sheets-table.columnPrefix");for(let c=0;c<d;c++)s.insertColumn(o.startColumn,new q(u.generateRandomId(),P(s.getColumnsCount()+1,l)))}else if(i.startColumn>o.startColumn){const d=i.startColumn-o.startColumn;for(let l=d-1;l>=0;l--){const c=i.startColumn+l-o.startColumn;s.removeColumn(c)}}if(i.endColumn<o.endColumn){const d=o.endColumn-i.endColumn;for(let l=d-1;l>=0;l--){const c=i.endColumn+l-o.startColumn;s.removeColumn(c)}}else if(i.endColumn>o.endColumn){const d=i.endColumn-o.endColumn;for(let l=0;l<d;l++)s.insertColumn(o.endColumn,new q(u.generateRandomId(),P(s.getColumnsCount()+1,"Column")))}s.setRange(i),this._tableRangeChanged$.next({unitId:t,subUnitId:s.getSubunitId(),tableId:a,range:i,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 i=o.getSubunitId(),{name:d,updateRange:l,rowColOperation:c,theme:g,options:h}=r;if(d){const w=o.getDisplayName();o.setDisplayName(d),this._tableNameChanged$.next({unitId:t,subUnitId:i,tableId:a,tableName:d,oldTableName:w})}if(c&&this.operationTableRowCol(t,a,c),l&&this.updateTableRange(t,a,l),g){const w=(b=o.getTableStyleId())!=null?b:"default";o.setTableStyleId(g),this._tableThemeChanged$.next({unitId:t,subUnitId:i,tableId:a,theme:g,oldTheme:w})}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 i=new Set;this.getTablesBySubunitId(t,o).forEach(l=>{const c=l.getTableFilters().getFilterOutRows();if(c)for(const g of c)i.add(g)}),a[o]={tables:[],tableFilteredOutRows:Array.from(i)}}a[o].tables.push(s.toJSON())}),a}fromJSON(t,a){const r=this._ensureUnit(t);Object.keys(a).forEach(o=>{const i=C.getSheetCommandTarget(this._univerInstanceService,{unitId:t,subUnitId:o});if(!i)return;const d=i.worksheet;let l;a[o].tables?l=a[o].tables:Array.isArray(a[o])&&(l=a[o]),l&&l.forEach(c=>{const g=this.getColumnHeader(t,o,c.range),h=new Ce(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){this._tableMap.delete(t)}dispose(){super.dispose(),this._tableMap.forEach(t=>{t.forEach(a=>a.dispose()),t.clear()}),this._tableMap.clear()}},m.TableManager=Lt([Te(0,u.IUniverInstanceService),Te(1,u.Inject(u.LocaleService))],m.TableManager);var Wt=Object.getOwnPropertyDescriptor,Vt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Wt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},qt=(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,i){return this._tableManager.addTable(e,t,a,r,s,o,i)}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 k(e,t,a,r)}},m.SheetTableService=Vt([qt(0,u.Inject(m.TableManager))],m.SheetTableService);const $={id:"sheet.mutation.add-table",type:u.CommandType.MUTATION,handler:(n,e)=>{const{tableId:t,unitId:a,subUnitId:r,name:s,range:o,header:i,options:d}=e;return n.get(m.SheetTableService).addTable(a,r,s,o,i,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}},Re={id:"sheet.command.add-table",type:u.CommandType.COMMAND,handler:(n,e)=>{var R;if(!e)return!1;const t=n.get(u.IUndoRedoService),a=n.get(u.ICommandService),r=n.get(u.LocaleService),s=(R=e.id)!=null?R:u.generateRandomId();let o=e.name;if(!o){const f=n.get(m.TableManager).getTableList(e.unitId).length;o=`${r.t("sheets-table.tablePrefix")}${f+1}`}const i=[],d=[],l=n.get(m.TableManager),{unitId:c,subUnitId:g,range:h}=e,b=l.getColumnHeader(c,g,h,r.t("sheets-table.columnPrefix"));return i.push({id:$.id,params:{...e,tableId:s,name:o,header:b}}),d.push({id:B.id,params:{tableId:s,unitId:e.unitId}}),u.sequenceExecute(i,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:d,redoMutations:i}),!0}},we={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=[],o=[],i=r.getTable(e.unitId,e.tableId),d=i==null?void 0:i.toJSON();if(!d)throw new Error("[TableManager]: Table not found");return s.push({id:B.id,params:{...e}}),o.push({id:$.id,params:{unitId:e.unitId,subUnitId:e.subUnitId,tableId:e.tableId,name:d.name,range:d.range,options:d.options}}),u.sequenceExecute(s,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:o,redoMutations:s}),!0}},Q={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}},fe={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:Q.id,params:{...e,tableId:r}}),o.push({id:Q.id,params:{...e,tableId:r,tableFilter:void 0}}),u.sequenceExecute(s,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:o,redoMutations:s}),!0}},Ie="SHEET_TABLE_PLUGIN",Y="SHEET_TABLE",_e="table-custom";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},j=(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),i=Array.from(s.bulkSearch([{unitId:t,sheetId:a,range:r}])).find(d=>{const l=this._tableManager.getTable(t,String(d));return l?u.Rectangle.contains(l.getRange(),r):!1});if(i)return this._tableManager.getTable(t,String(i))}_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:i}=t,d=this._ensureTableRangeRTree(s);d.remove({unitId:s,sheetId:o,id:r,range:{...i}}),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:i,subUnitId:d}=a,l=this._ensureTableRangeRTree(i);if((t==null?void 0:t.v)===void 0&&l){const g=Array.from(l.bulkSearch([{unitId:i,sheetId:d,range:{startColumn:o,endColumn:o,startRow:s,endRow:s}}]));if(g.length>0){const h=this._tableManager.getTable(i,g[0]);if(h){const b=h.getRange(),w=o-b.startColumn;if(b.startRow===s){const I=h.getColumnNameByIndex(w);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:Ie,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 i=this._tableManager.getTablesBySubunitId(s,o);if(i.length===0)return{redos:[],undos:[]};const d=[],l=[];return i.forEach(c=>{const g=c.toJSON();d.push({id:B.id,params:{unitId:s,subUnitId:o,tableId:g.id}}),l.push({id:$.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:l}}else if(t.id===C.CopySheetCommand.id){const r=t.params,{unitId:s,subUnitId:o,targetSubUnitId:i}=r;if(!s||!o||!i)return{redos:[],undos:[]};const d=this._tableManager.getTablesBySubunitId(s,o);if(d.length===0)return{redos:[],undos:[]};const l=[],c=[];return d.forEach(g=>{const h=g.toJSON(),b=u.generateRandomId();l.push({id:$.id,params:{unitId:s,subUnitId:i,name:h.name,range:{...h.range,sheetId:i},tableId:b,options:{...h.options,columns:h.columns,filters:h.filters.tableColumnFilterList}}}),c.push({id:B.id,params:{unitId:s,subUnitId:i,tableId:b}})}),{redos:l,undos:c}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}},m.SheetsTableController=Pt([j(0,u.Inject(u.IUniverInstanceService)),j(1,u.Inject(C.SheetInterceptorService)),j(2,u.Inject(m.TableManager)),j(3,u.Inject(u.IResourceManagerService))],m.SheetsTableController);const _={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}},pe={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=[],i=[],d=t.getTableById(a,r);if(!d)return!1;const l=d.getSubunitId();o.push({id:C.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:l,styleJSON:s.toJson()}}),o.push({id:_.id,params:{unitId:a,subUnitId:l,tableId:r,config:{theme:s.getName()}}}),i.push({id:_.id,params:{unitId:a,subUnitId:l,tableId:r,config:{themeStyle:d.getTableStyleId()}}}),i.push({id:C.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:l,styleName:s.getName()}});const c=n.get(u.ICommandService);return u.sequenceExecute(o,c)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:i,redoMutations:o}),!0}},ve={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),i=s.getTableById(t,a);if(!i)return!1;const d=i.getSubunitId(),l=[],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(_e)).find(f=>f!==r);b||(b=g[0]),l.push({id:_.id,params:{unitId:t,subUnitId:d,tableId:a,config:{theme:b}}}),l.push({id:C.RemoveRangeThemeMutation.id,params:{unitId:t,subUnitId:d,styleName:r}});const w=o.getDefaultRangeThemeStyle(r);w&&(c.push({id:C.AddRangeThemeMutation.id,params:{unitId:t,subUnitId:d,styleJSON:w.toJson()}}),c.push({id:_.id,params:{unitId:t,subUnitId:d,tableId:a,config:{theme:r}}}));const R=n.get(u.ICommandService);return u.sequenceExecute(l,R)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:t,redoMutations:l,undoMutations:c}),!0}},Me={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:i}=e,d=n.get(m.TableManager),l=d.getTableById(t,a);if(!l)return!1;const c={},g={},h=n.get(u.LocaleService),w=n.get(u.IUniverInstanceService).getCurrentUnitOfType(u.UniverInstanceType.UNIVER_SHEET),R=new Set;if(w&&(w.getSheets().forEach(p=>{R.add(p.getName())}),d.getTableList(t).forEach(p=>{R.add(p.name)})),r){if(!u.customNameCharacterCheck(r,R))return n.get(u.ILogService).warn(h.t("sheets-table.tableNameError")),!1;c.name=l.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:l.getRange()},g.updateRange=s),i&&(c.theme=l.getTableStyleId(),g.theme=i);const I={unitId:t,subUnitId:l.getSubunitId(),tableId:a,config:g};return n.get(u.ICommandService).executeCommand(_.id,I),n.get(u.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:_.id,params:{unitId:t,subUnitId:l.getSubunitId(),tableId:a,config:c}}],redoMutations:[{id:_.id,params:I}]}),!0}},Fe={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,R=r.getRowCount()-1,I=r.getCellMatrix().getDataRange().endRow,f=[],M=[];if(R-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}}}}}),M.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{updateRange:{newRange:h.getRange()}}}}),M.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}}}}}),M.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),M.push(...J.undos))}const E=n.get(u.ICommandService);return u.sequenceExecute(f,E)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:M,redoMutations:f}),!0}},ye={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,i=n.get(C.SheetsSelectionsService).getCurrentSelections();if(!i.length||i.length>1)return!1;const l=i[0].range,g=n.get(m.SheetsTableController).getContainerTableWithRange(r,s,l);if(!g)return!1;const h=l.endColumn-l.startColumn+1,w=a.getColumnCount()-1,R=a.getCellMatrix().getDataRange().endColumn,I=[],f=[];if(w-R<h)I.push({id:C.InsertColMutation.id,params:{unitId:r,subUnitId:s,range:{...l}}}),I.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:l.startColumn,count:h}}}}),f.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:l.startColumn,count:h}}}}),f.push({id:C.RemoveColMutation.id,params:{unitId:r,subUnitId:s,range:{...l}}});else{const p=g.getRange();I.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:l.startColumn,count:h}}}}),f.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:l.startColumn,count:h}}}});const F=C.getMoveRangeUndoRedoMutations(n,{unitId:r,subUnitId:s,range:{startRow:p.startRow,endRow:p.endRow,startColumn:l.startColumn,endColumn:R}},{unitId:r,subUnitId:s,range:{startRow:p.startRow,endRow:p.endRow,startColumn:l.startColumn+h,endColumn:R+h}});F&&(I.push(...F.redos),f.push(...F.undos))}const M=n.get(u.ICommandService);return u.sequenceExecute(I,M)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:f,redoMutations:I}),!0}},De={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);if(!a)return!1;const{unitId:r,subUnitId:s}=a,i=n.get(C.SheetsSelectionsService).getCurrentSelections();if(!i.length||i.length>1)return!1;const l=i[0].range,g=n.get(m.SheetsTableController).getContainerTableWithRange(r,s,l);if(!g)return!1;const h=l.endRow-l.startRow+1,b=[],w=[],R=g.getRange();b.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{updateRange:{newRange:{...R,endRow:R.endRow-h}}}}}),w.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{updateRange:{newRange:{...R}}}}});const f=a.worksheet.getCellMatrix().getDataRange().endRow,M=C.getMoveRangeUndoRedoMutations(n,{unitId:r,subUnitId:s,range:{startRow:l.endRow+1,endRow:f,startColumn:R.startColumn,endColumn:R.endColumn}},{unitId:r,subUnitId:s,range:{startRow:l.startRow,endRow:f-h,startColumn:R.startColumn,endColumn:R.endColumn}});M&&(b.push(...M.redos),w.push(...M.undos));const E=n.get(u.ICommandService);return u.sequenceExecute(b,E)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:w,redoMutations:b}),!0}},Ne={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);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,w=[],R=[],I=h.getRange();w.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:c.startColumn,count:b}}}});const f=[],M=c.startColumn-I.startColumn;for(let ne=0;ne<b;ne++){const Ue=h.getTableInfo().columns[M+ne];Ue&&f.push(Ue)}R.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:c.startColumn,count:b,columnsJson:f}}}});const p=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:p}},{unitId:s,subUnitId:o,range:{startRow:I.startRow,endRow:I.endRow,startColumn:c.startColumn,endColumn:p-b}});F&&(w.push(...F.redos),R.push(...F.undos));const J=n.get(u.ICommandService);return u.sequenceExecute(w,J)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:R,redoMutations:w}),!0}};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},Oe=(n,e)=>(t,a)=>e(t,a,n);let G=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)}))}};G=kt([Oe(0,u.Inject(m.TableManager)),Oe(1,u.Inject(C.IExclusiveRangeService))],G);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},W=(n,e)=>(t,a)=>e(t,a,n);let X=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);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:i}=n;return o.forEach(d=>{const l=d.getRange();if(i.startRow>l.startRow&&i.startRow<=l.endRow){const c=i.endRow-i.startRow+1;t.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{updateRange:{newRange:{...l,endRow:l.endRow+c}}}}}),e.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{updateRange:{newRange:{...l}}}}})}}),{undos:e,redos:t}}_generateTableMutationWithInsertCol(n){const e=[],t=[],a=C.getSheetCommandTarget(this._univerInstanceService);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:i}=n;return o.forEach(d=>{const l=d.getRange();if(i.startColumn>l.startColumn&&i.startColumn<=l.endColumn){const c=i.endColumn-i.startColumn+1;t.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:i.startColumn,count:c}}}}),e.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:i.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:i}=s,d=this._tableManager.getTablesBySubunitId(o,i);if(!d.length)return{undos:e,redos:t,preRedos:a,preUndos:r};const{range:l}=n,c=l.endRow-l.startRow+1;return d.forEach(g=>{const h=g.getRange();if(u.Rectangle.intersects(h,l))if(l.startRow<=h.startRow&&l.endRow>=h.startRow){a.push({id:B.id,params:{unitId:o,subUnitId:i,tableId:g.getId()}});const b=g.toJSON();e.push({id:$.id,params:{unitId:o,subUnitId:i,tableId:b.id,name:b.name,range:b.range,options:b.options}})}else l.startRow>h.startRow&&l.startRow<=h.endRow?(t.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{updateRange:{newRange:{...h,endRow:h.endRow-c}}}}}),e.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{updateRange:{newRange:{...h}}}}})):l.startRow<h.endRow&&l.endRow>=h.endRow&&(t.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{updateRange:{newRange:{...h,endRow:l.startRow-1}}}}}),e.push({id:_.id,params:{unitId:o,subUnitId:i,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:i}=s,d=this._tableManager.getTablesBySubunitId(o,i);if(!d.length)return{undos:e,redos:t,preRedos:a,preUndos:r};const{range:l}=n,c=l.endColumn-l.startColumn+1;return d.forEach(g=>{const h=g.getRange();if(u.Rectangle.intersects(h,l)){if(l.startColumn<=h.startColumn&&l.endColumn>=h.endColumn){a.push({id:B.id,params:{unitId:o,subUnitId:i,tableId:g.getId()}});const b=g.toJSON(),{startRow:w,startColumn:R,endColumn:I}=b.range,f=this._univerInstanceService.getUnit(o),M=f==null?void 0:f.getSheetBySheetId(i);if(!M)return{undos:e,redos:t,preRedos:a,preUndos:r};const E=[];for(let p=R;p<=I;p++)E.push(le(M==null?void 0:M.getCell(w,p))||P(p-R+1,this._localeService.t("sheets-table.columnPrefix")));e.push({id:$.id,params:{unitId:o,subUnitId:i,tableId:b.id,name:b.name,header:E,range:b.range,options:b.options}})}else if(l.startColumn<=h.startColumn&&l.endColumn>=h.startColumn){const b=l.endColumn-h.startColumn+1;t.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:h.startColumn,count:b}}}});const w=[];for(let R=0;R<b;R++){const I=g.getTableColumnByIndex(R);I&&w.push(I.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:h.startColumn,count:b,columnsJson:w}}}})}else if(l.startColumn>h.startColumn&&l.endColumn>h.endColumn){const b=h.endColumn-l.startColumn+1;t.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:l.startColumn,count:b}}}});const w=[],R=l.startColumn-h.startColumn;for(let I=0;I<b;I++){const f=g.getTableColumnByIndex(I+R);f&&w.push(f.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:l.startColumn,count:c,columnsJson:w}}}})}else if(l.startColumn>h.startColumn&&l.endColumn<=h.endColumn){t.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:l.startColumn,count:c}}}});const b=[],w=l.startColumn-h.startColumn;for(let R=0;R<c;R++){const I=g.getTableColumnByIndex(R+w);I&&b.push(I.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:i,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:l.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(i=>{const d=i.getRange();r.startRow<=d.startRow&&this._tableManager.updateTableRange(t,i.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(i=>{const d=i.getRange();r.startColumn<=d.startColumn&&this._tableManager.updateTableRange(t,i.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(i=>{const d=i.getRange();r.startRow<d.startRow&&this._tableManager.updateTableRange(t,i.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(i=>{const d=i.getRange();r.startColumn<d.startColumn&&this._tableManager.updateTableRange(t,i.getId(),{newRange:{...d,startColumn:d.startColumn-s,endColumn:d.endColumn-s}})})}})}};X=Yt([W(0,u.Inject(u.ICommandService)),W(1,u.Inject(C.RefRangeService)),W(2,u.Inject(u.IUniverInstanceService)),W(3,u.Inject(u.Injector)),W(4,u.Inject(C.SheetInterceptorService)),W(5,u.Inject(m.TableManager)),W(6,u.Inject(u.LocaleService))],X);var jt=Object.getOwnPropertyDescriptor,Gt=(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},z=(n,e)=>(t,a)=>e(t,a,n);let K=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,i=this._tableManager.getTable(r,a),d=o||this._allThemes[this._defaultThemeIndex].name;i.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,i=this._tableManager.getTable(s,r);let d=i.getTableStyleId();d||(d=this._allThemes[this._defaultThemeIndex].name,i.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(de)||{},t=e.defaultThemeIndex||0,a=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=a.concat(he)}_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}};K=Gt([z(0,u.Inject(m.TableManager)),z(1,u.Inject(C.SheetRangeThemeService)),z(2,u.Inject(C.SheetRangeThemeModel)),z(3,u.IConfigService)],K);var Xt=Object.getOwnPropertyDescriptor,zt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Xt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},Z=(n,e)=>(t,a)=>e(t,a,n);let ee=class extends u.Disposable{constructor(e,t,a,r){super();T(this,"_tableFilteredOutRows$",new N.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(N.filter(e=>e),N.switchMap(()=>this._univerInstanceService.getCurrentTypeOfUnit$(u.UniverInstanceType.UNIVER_SHEET)),N.filter(e=>e!=null),N.switchMap(e=>e.activeSheet$),N.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 i of o)this.tableFilteredOutRows.add(i)})})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{var l;const{unitId:t,subUnitId:a,tableId:r}=e,s=(l=this._univerInstanceService.getUnit(t))==null?void 0:l.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()}};ee=zt([Z(0,u.Inject(m.TableManager)),Z(1,u.Inject(C.SheetInterceptorService)),Z(2,u.Inject(u.IUniverInstanceService)),Z(3,u.Inject(C.ZebraCrossingCacheController))],ee);var Kt=Object.getOwnPropertyDescriptor,Zt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Kt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},se=(n,e)=>(t,a)=>e(t,a,n);m.UniverSheetsTablePlugin=(te=class extends u.Plugin{constructor(e=ce,t,a,r){super(),this._config=e,this._injector=t,this._configService=a,this._commandService=r;const{...s}=u.merge({},ce,this._config);this._configService.setConfig(de,s),this._initRegisterCommand()}onStarting(){u.registerDependencies(this._injector,[[m.TableManager],[K],[m.SheetsTableController],[m.SheetTableService],[ee],[G],[X]]),u.touchDependencies(this._injector,[[G],[X],[K],[m.SheetsTableController],[m.SheetTableService],[ee]])}onReady(){u.touchDependencies(this._injector,[[m.TableManager]])}_initRegisterCommand(){[Re,$,we,B,Q,fe,Me,_,pe,ve,Fe,ye,De,Ne].forEach(e=>this._commandService.registerCommand(e))}},T(te,"pluginName",Ie),T(te,"type",u.UniverInstanceType.UNIVER_SHEET),te),m.UniverSheetsTablePlugin=Zt([se(1,u.Inject(u.Injector)),se(2,u.IConfigService),se(3,u.Inject(u.ICommandService))],m.UniverSheetsTablePlugin),m.AddSheetTableCommand=Re,m.AddSheetTableMutation=$,m.AddTableThemeCommand=pe,m.DeleteSheetTableCommand=we,m.DeleteSheetTableMutation=B,m.RemoveTableThemeCommand=ve,m.SHEET_TABLE_CUSTOM_THEME_PREFIX=_e,m.SetSheetTableCommand=Me,m.SetSheetTableFilterCommand=fe,m.SetSheetTableFilterMutation=Q,m.SetSheetTableMutation=_,m.SheetTableInsertColCommand=ye,m.SheetTableInsertRowCommand=Fe,m.SheetTableRemoveColCommand=Ne,m.SheetTableRemoveRowCommand=De,m.SheetsTableButtonStateEnum=A,m.SheetsTableSortStateEnum=L,m.TableColumnDataTypeEnum=ae,m.TableColumnFilterTypeEnum=V,m.TableConditionTypeEnum=O,m.TableDateCompareTypeEnum=S,m.TableNumberCompareTypeEnum=y,m.TableStringCompareTypeEnum=x,m.customEmptyThemeWithBorderStyle=$e,m.isConditionFilter=ue,m.isManualFilter=Ae,m.processStyleWithBorderStyle=Be,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(m,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@univerjs/sheets","rxjs"],u):(m=typeof globalThis<"u"?globalThis:m||self,u(m.UniverSheetsTable={},m.UniverCore,m.UniverSheets,m.rxjs))})(this,(function(m,u,C,N){"use strict";var en=Object.defineProperty;var tn=(m,u,C)=>u in m?en(m,u,{enumerable:!0,configurable:!0,writable:!0,value:C}):m[u]=C;var T=(m,u,C)=>tn(m,typeof u!="symbol"?u+"":u,C);var te;var v=(n=>(n.Insert="insert",n.Delete="delete",n))(v||{}),D=(n=>(n.Row="row",n.Col="column",n))(D||{}),ae=(n=>(n.None="none",n.String="string",n.Number="number",n.Date="date",n.Bool="bool",n.Checkbox="checkbox",n.List="list",n))(ae||{}),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||{}),x=(n=>(n.Equal="equal",n.NotEqual="notEqual",n.Contains="contains",n.NotContains="notContains",n.StartsWith="startsWith",n.EndsWith="endsWith",n))(x||{}),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||{}),L=(n=>(n.Asc="asc",n.Desc="desc",n.None="none",n))(L||{});function P(n,e){return`${e} ${n}`}const oe="TRUE",ie="FALSE",Ee=n=>{var t;return((t=n.body)==null?void 0:t.dataStream.replace(/\r\n$/,""))||""};function le(n){if(n){const{v:e,t,p:a}=n;return a?Ee(a):(t===u.CellValueType.FORCE_STRING||t===u.CellValueType.STRING)&&e!==void 0&&e!==null?String(e):t===u.CellValueType.BOOLEAN?e?oe:ie:t===u.CellValueType.NUMBER?String(e):typeof e==="boolean"?e?oe:ie:e==null?"":String(e)}return""}function xe(n,e){if(n!=null)switch(e){case L.Asc:return A.FilteredSortAsc;case L.Desc:return A.FilteredSortDesc;default:return A.FilteredSortNone}else switch(e){case L.Asc:return A.FilterNoneSortAsc;case L.Desc:return A.FilterNoneSortDesc;default:return A.FilterNoneSortNone}}function ue(n){return n?n.filterType===V.condition:!1}function Ae(n){return n?n.filterType===V.manual:!1}const U={s:u.BorderStyleTypes.THIN,cl:{rgb:"rgb(95, 101, 116)"}},de="sheets-table.config",ce={},$e={headerRowStyle:{bd:{t:U}},headerColumnStyle:{bd:{l:U}},lastColumnStyle:{bd:{r:U}},lastRowStyle:{bd:{b:U}}},Be=(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},he=[[["#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 q{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=ae.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 Le=n=>n.getMonth()<=2,We=n=>{const e=n.getMonth();return e>2&&e<=5},Ve=n=>{const e=n.getMonth();return e>5&&e<=8},qe=n=>{const e=n.getMonth();return e>8&&e<=11},He=n=>n.getMonth()===0,Pe=n=>n.getMonth()===1,Je=n=>n.getMonth()===2,ke=n=>n.getMonth()===3,Qe=n=>n.getMonth()===4,Ye=n=>n.getMonth()===5,je=n=>n.getMonth()===6,Ge=n=>n.getMonth()===7,Xe=n=>n.getMonth()===8,ze=n=>n.getMonth()===9,Ke=n=>n.getMonth()===10,Ze=n=>n.getMonth()===11,et=(n,e=new Date)=>n.toDateString()===e.toDateString(),tt=(n,e=new Date)=>{const t=new Date(e);return t.setDate(t.getDate()+1),n.toDateString()===t.toDateString()},nt=(n,e=new Date)=>{const t=new Date(e);return t.setDate(t.getDate()-1),n.toDateString()===t.toDateString()},H=n=>{const e=n.getDay(),t=n.getDate()-e+(e===0?-6:1),a=new Date(n);return a.setDate(t),a},ge=10080*60*1e3,at=(n,e=new Date)=>{const t=H(n),a=H(e);return t.toDateString()===a.toDateString()},rt=(n,e=new Date)=>{const t=H(n),a=new Date(H(e).getTime()+ge);return t.toDateString()===a.toDateString()},st=(n,e=new Date)=>{const t=H(n),a=new Date(H(e).getTime()-ge);return t.toDateString()===a.toDateString()},ot=(n,e=new Date)=>n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth(),it=n=>{const e=new Date(n);return e.setHours(0,0,0,0),e.setDate(1),e},lt=(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()},ut=(n,e=new Date)=>{const t=it(e),a=new Date(t);a.setMonth(a.getMonth()+1,0);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},re=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},dt=(n,e=new Date)=>{const t=re(e),a=new Date(t);a.setMonth(a.getMonth()+3);const r=n.getTime();return r>=t.getTime()&&r<a.getTime()},ct=(n,e=new Date)=>{const t=re(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()},ht=(n,e=new Date)=>{const t=re(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()},gt=(n,e=new Date)=>n.getFullYear()===e.getFullYear(),mt=(n,e=new Date)=>n.getFullYear()===e.getFullYear()+1,bt=(n,e=new Date)=>n.getFullYear()===e.getFullYear()-1,St=(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 Ct(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=>et(t,e)}case S.Yesterday:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>nt(t,e)}case S.Tomorrow:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>tt(t,e)}case S.ThisWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>at(t,e)}case S.LastWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>st(t,e)}case S.NextWeek:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>rt(t,e)}case S.ThisMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ot(t,e)}case S.LastMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ut(t,e)}case S.NextMonth:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>lt(t,e)}case S.ThisQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>dt(t,e)}case S.LastQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ht(t,e)}case S.NextQuarter:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>ct(t,e)}case S.ThisYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>gt(t,e)}case S.LastYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>bt(t,e)}case S.NextYear:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>mt(t,e)}case S.YearToDate:{const e=n.anchorTime?new Date(n.anchorTime):new Date;return t=>St(t,e)}case S.M1:return He;case S.M2:return Pe;case S.M3:return Je;case S.M4:return ke;case S.M5:return Qe;case S.M6:return Ye;case S.M7:return je;case S.M8:return Ge;case S.M9:return Xe;case S.M10:return ze;case S.M11:return Ke;case S.M12:return Ze;case S.Q1:return Le;case S.Q2:return We;case S.Q3:return Ve;case S.Q4:return qe;default:throw new Error("Unsupported compare type")}}class Tt{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 Rt extends Tt{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 wt=(n,e)=>{const t=new Rt;for(const a of n)t.insert(a),t.size()>e&&t.pop();return t.heap},ft=(n,e)=>n>e,It=(n,e)=>n<e,_t=(n,e,t)=>wt(n,e).includes(t);function pt(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=>ft(a,t)}case y.Below:{const t=e.average;return a=>It(a,t)}case y.TopN:{const t=e.list,a=Number(n.expectedValue);return r=>_t(t,a,r)}}}const vt=(n,e)=>u.createREGEXFromWildChar(e).test(n),Mt=(n,e)=>!u.createREGEXFromWildChar(e).test(n),Ft=(n,e)=>u.createREGEXFromWildChar(`*${e}*`).test(n),yt=(n,e)=>!u.createREGEXFromWildChar(`*${e}*`).test(n),Dt=(n,e)=>u.createREGEXFromWildChar(`${e}*`).test(n),Nt=(n,e)=>u.createREGEXFromWildChar(`*${e}`).test(n);function Ot(n){switch(n.compareType){case x.Equal:return e=>vt(e,n.expectedValue);case x.NotEqual:return e=>Mt(e,n.expectedValue);case x.Contains:return e=>Ft(e,n.expectedValue);case x.NotContains:return e=>yt(e,n.expectedValue);case x.StartsWith:return e=>Dt(e,n.expectedValue);case x.EndsWith:return e=>Nt(e,n.expectedValue);default:return console.error(`Unknown filter operator: ${n.compareType}`),e=>!0}}const Ut=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 me(n){return Ut.has(n)}function Et(n,e){if(me(n.filterInfo.compareType))return t=>!0;switch(n.filterInfo.conditionType){case O.Date:return Ct(n.filterInfo);case O.Number:return pt(n.filterInfo,e);case O.String:return Ot(n.filterInfo);case O.Logic:default:return t=>!0}}function k(n,e,t,a){switch(a){case O.Date:{const r=be(n,e,t);return r?$t(r):null}case O.Number:return be(n,e,t);case O.String:default:return At(n,e,t)}}const xt=n=>{var t;return((t=n.body)==null?void 0:t.dataStream.replace(/\r\n$/,""))||""};function At(n,e,t){const a=n.getCell(e,t);if(!a)return null;const{v:r,t:s,p:o}=a;if(o)return xt(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 be(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 $t(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 Se{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:L.None;return xe(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=ue(s)?s.filterInfo.conditionType:O.String;k(e,g,i,h)===null?r.add(g):c(k(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=k(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=me(r.filterInfo.compareType)?this._getNumberCalculatedOptions(e,t,a):void 0;return Et(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 Ce{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 Se,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 q(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 q(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:he[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 q(s.id,s.displayName);o.fromJSON(s),this._columns.set(s.id,o),this._columnOrder.push(s.id)}),this._tableFilters=new Se,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 Bt=Object.getOwnPropertyDescriptor,Lt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Bt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},Te=(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 N.Subject);T(this,"tableAdd$",this._tableAdd$.asObservable());T(this,"_tableDelete$",new N.Subject);T(this,"tableDelete$",this._tableDelete$.asObservable());T(this,"_tableNameChanged$",new N.Subject);T(this,"tableNameChanged$",this._tableNameChanged$.asObservable());T(this,"_tableRangeChanged$",new N.Subject);T(this,"tableRangeChanged$",this._tableRangeChanged$.asObservable());T(this,"_tableThemeChanged$",new N.Subject);T(this,"tableThemeChanged$",this._tableThemeChanged$.asObservable());T(this,"_tableFilterChanged$",new N.Subject);T(this,"tableFilterChanged$",this._tableFilterChanged$.asObservable());T(this,"_tableInitStatus",new N.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(le(o==null?void 0:o.getCell(l,b))||P(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 Ce(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 w=(b=this._univerInstanceService.getUnit(t))==null?void 0:b.getSheetBySheetId(a);g.getTableFilters().doFilter(w,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 w=this._localeService.t("sheets-table.columnPrefix"),R=new q(u.generateRandomId(),P(s.getColumnsCount()+1+b,w));c!=null&&c[b]&&R.fromJSON(c[b]);const I=d+b-g.startColumn;s.insertColumn(I,R)}}}else if(l==="row")h.endRow-=i;else if(l==="column"){h.endColumn-=i;for(let b=i-1;b>=0;b--){const w=d+b-g.startColumn;s.removeColumn(w)}}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 q(u.generateRandomId(),P(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 q(u.generateRandomId(),P(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 w=o.getDisplayName();o.setDisplayName(d),this._tableNameChanged$.next({unitId:t,subUnitId:l,tableId:a,tableName:d,oldTableName:w})}if(c&&this.operationTableRowCol(t,a,c),i&&this.updateTableRange(t,a,i),g){const w=(b=o.getTableStyleId())!=null?b:"default";o.setTableStyleId(g),this._tableThemeChanged$.next({unitId:t,subUnitId:l,tableId:a,theme:g,oldTheme:w})}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 Ce(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){this._tableMap.delete(t)}dispose(){super.dispose(),this._tableMap.forEach(t=>{t.forEach(a=>a.dispose()),t.clear()}),this._tableMap.clear()}},m.TableManager=Lt([Te(0,u.IUniverInstanceService),Te(1,u.Inject(u.LocaleService))],m.TableManager);var Wt=Object.getOwnPropertyDescriptor,Vt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Wt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},qt=(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 k(e,t,a,r)}},m.SheetTableService=Vt([qt(0,u.Inject(m.TableManager))],m.SheetTableService);const $={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}},Re={id:"sheet.command.add-table",type:u.CommandType.COMMAND,handler:(n,e)=>{var R;if(!e)return!1;const t=n.get(u.IUndoRedoService),a=n.get(u.ICommandService),r=n.get(u.LocaleService),s=(R=e.id)!=null?R:u.generateRandomId();let o=e.name;if(!o){const f=n.get(m.TableManager).getTableList(e.unitId).length;o=`${r.t("sheets-table.tablePrefix")}${f+1}`}const l=[],d=[],i=n.get(m.TableManager),{unitId:c,subUnitId:g,range:h}=e,b=i.getColumnHeader(c,g,h,r.t("sheets-table.columnPrefix"));return l.push({id:$.id,params:{...e,tableId:s,name:o,header:b}}),d.push({id:B.id,params:{tableId:s,unitId:e.unitId}}),u.sequenceExecute(l,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:d,redoMutations:l}),!0}},we={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:$.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)}},Q={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}},fe={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:Q.id,params:{...e,tableId:r}}),o.push({id:Q.id,params:{...e,tableId:r,tableFilter:void 0}}),u.sequenceExecute(s,a)&&t.pushUndoRedo({unitID:e.unitId,undoMutations:o,redoMutations:s}),!0}},Ie="SHEET_TABLE_PLUGIN",Y="SHEET_TABLE",_e="table-custom";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},j=(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(),w=o-b.startColumn;if(b.startRow===s){const I=h.getColumnNameByIndex(w);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:Ie,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:$.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:$.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=Pt([j(0,u.Inject(u.IUniverInstanceService)),j(1,u.Inject(C.SheetInterceptorService)),j(2,u.Inject(m.TableManager)),j(3,u.Inject(u.IResourceManagerService))],m.SheetsTableController);const _={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}},pe={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}},ve={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(_e)).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 w=o.getDefaultRangeThemeStyle(r);w&&(c.push({id:C.AddRangeThemeMutation.id,params:{unitId:t,subUnitId:d,styleJSON:w.toJson()}}),c.push({id:_.id,params:{unitId:t,subUnitId:d,tableId:a,config:{theme:r}}}));const R=n.get(u.ICommandService);return u.sequenceExecute(i,R)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:t,redoMutations:i,undoMutations:c}),!0}},Me={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),w=n.get(u.IUniverInstanceService).getCurrentUnitOfType(u.UniverInstanceType.UNIVER_SHEET),R=new Set;if(w&&(w.getSheets().forEach(p=>{R.add(p.getName())}),d.getTableList(t).forEach(p=>{R.add(p.name)})),r){if(!u.customNameCharacterCheck(r,R))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 I={unitId:t,subUnitId:i.getSubunitId(),tableId:a,config:g};return n.get(u.ICommandService).executeCommand(_.id,I),n.get(u.IUndoRedoService).pushUndoRedo({unitID:t,undoMutations:[{id:_.id,params:{unitId:t,subUnitId:i.getSubunitId(),tableId:a,config:c}}],redoMutations:[{id:_.id,params:I}]}),!0}},Fe={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,R=r.getRowCount()-1,I=r.getCellMatrix().getDataRange().endRow,f=[],M=[];if(R-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}}}}}),M.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{updateRange:{newRange:h.getRange()}}}}),M.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}}}}}),M.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),M.push(...J.undos))}const E=n.get(u.ICommandService);return u.sequenceExecute(f,E)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:M,redoMutations:f}),!0}},ye={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,w=a.getColumnCount()-1,R=a.getCellMatrix().getDataRange().endColumn,I=[],f=[];if(w-R<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:D.Col,index:i.startColumn,count:h}}}}),f.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:i.startColumn,count:h}}}}),f.push({id:C.RemoveColMutation.id,params:{unitId:r,subUnitId:s,range:{...i}}});else{const p=g.getRange();I.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:i.startColumn,count:h}}}}),f.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:i.startColumn,count:h}}}});const F=C.getMoveRangeUndoRedoMutations(n,{unitId:r,subUnitId:s,range:{startRow:p.startRow,endRow:p.endRow,startColumn:i.startColumn,endColumn:R}},{unitId:r,subUnitId:s,range:{startRow:p.startRow,endRow:p.endRow,startColumn:i.startColumn+h,endColumn:R+h}});F&&(I.push(...F.redos),f.push(...F.undos))}const M=n.get(u.ICommandService);return u.sequenceExecute(I,M)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:f,redoMutations:I}),!0}},De={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);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=[],w=[],R=g.getRange();b.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{updateRange:{newRange:{...R,endRow:R.endRow-h}}}}}),w.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:g.getId(),config:{updateRange:{newRange:{...R}}}}});const f=a.worksheet.getCellMatrix().getDataRange().endRow,M=C.getMoveRangeUndoRedoMutations(n,{unitId:r,subUnitId:s,range:{startRow:i.endRow+1,endRow:f,startColumn:R.startColumn,endColumn:R.endColumn}},{unitId:r,subUnitId:s,range:{startRow:i.startRow,endRow:f-h,startColumn:R.startColumn,endColumn:R.endColumn}});M&&(b.push(...M.redos),w.push(...M.undos));const E=n.get(u.ICommandService);return u.sequenceExecute(b,E)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:r,undoMutations:w,redoMutations:b}),!0}},Ne={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);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,w=[],R=[],I=h.getRange();w.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.Col,index:c.startColumn,count:b}}}});const f=[],M=c.startColumn-I.startColumn;for(let ne=0;ne<b;ne++){const Ue=h.getTableInfo().columns[M+ne];Ue&&f.push(Ue)}R.push({id:_.id,params:{unitId:s,subUnitId:o,tableId:h.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:c.startColumn,count:b,columnsJson:f}}}});const p=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:p}},{unitId:s,subUnitId:o,range:{startRow:I.startRow,endRow:I.endRow,startColumn:c.startColumn,endColumn:p-b}});F&&(w.push(...F.redos),R.push(...F.undos));const J=n.get(u.ICommandService);return u.sequenceExecute(w,J)&&n.get(u.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:R,redoMutations:w}),!0}};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},Oe=(n,e)=>(t,a)=>e(t,a,n);let G=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)}))}};G=kt([Oe(0,u.Inject(m.TableManager)),Oe(1,u.Inject(C.IExclusiveRangeService))],G);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},W=(n,e)=>(t,a)=>e(t,a,n);let X=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);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);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:D.Col,index:l.startColumn,count:c}}}}),e.push({id:_.id,params:{unitId:r,subUnitId:s,tableId:d.getId(),config:{rowColOperation:{operationType:v.Delete,rowColType:D.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:$.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:w,startColumn:R,endColumn:I}=b.range,f=this._univerInstanceService.getUnit(o),M=f==null?void 0:f.getSheetBySheetId(l);if(!M)return{undos:e,redos:t,preRedos:a,preUndos:r};const E=[];for(let p=R;p<=I;p++)E.push(le(M==null?void 0:M.getCell(w,p))||P(p-R+1,this._localeService.t("sheets-table.columnPrefix")));e.push({id:$.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:D.Col,index:h.startColumn,count:b}}}});const w=[];for(let R=0;R<b;R++){const I=g.getTableColumnByIndex(R);I&&w.push(I.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:h.startColumn,count:b,columnsJson:w}}}})}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:D.Col,index:i.startColumn,count:b}}}});const w=[],R=i.startColumn-h.startColumn;for(let I=0;I<b;I++){const f=g.getTableColumnByIndex(I+R);f&&w.push(f.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.Col,index:i.startColumn,count:c,columnsJson:w}}}})}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:D.Col,index:i.startColumn,count:c}}}});const b=[],w=i.startColumn-h.startColumn;for(let R=0;R<c;R++){const I=g.getTableColumnByIndex(R+w);I&&b.push(I.toJSON())}e.push({id:_.id,params:{unitId:o,subUnitId:l,tableId:g.getId(),config:{rowColOperation:{operationType:v.Insert,rowColType:D.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}})})}})}};X=Yt([W(0,u.Inject(u.ICommandService)),W(1,u.Inject(C.RefRangeService)),W(2,u.Inject(u.IUniverInstanceService)),W(3,u.Inject(u.Injector)),W(4,u.Inject(C.SheetInterceptorService)),W(5,u.Inject(m.TableManager)),W(6,u.Inject(u.LocaleService))],X);var jt=Object.getOwnPropertyDescriptor,Gt=(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},z=(n,e)=>(t,a)=>e(t,a,n);let K=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(de)||{},t=e.defaultThemeIndex||0,a=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=a.concat(he)}_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}};K=Gt([z(0,u.Inject(m.TableManager)),z(1,u.Inject(C.SheetRangeThemeService)),z(2,u.Inject(C.SheetRangeThemeModel)),z(3,u.IConfigService)],K);var Xt=Object.getOwnPropertyDescriptor,zt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Xt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},Z=(n,e)=>(t,a)=>e(t,a,n);let ee=class extends u.Disposable{constructor(e,t,a,r){super();T(this,"_tableFilteredOutRows$",new N.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(N.filter(e=>e),N.switchMap(()=>this._univerInstanceService.getCurrentTypeOfUnit$(u.UniverInstanceType.UNIVER_SHEET)),N.filter(e=>e!=null),N.switchMap(e=>e.activeSheet$),N.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()}};ee=zt([Z(0,u.Inject(m.TableManager)),Z(1,u.Inject(C.SheetInterceptorService)),Z(2,u.Inject(u.IUniverInstanceService)),Z(3,u.Inject(C.ZebraCrossingCacheController))],ee);var Kt=Object.getOwnPropertyDescriptor,Zt=(n,e,t,a)=>{for(var r=a>1?void 0:a?Kt(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=o(r)||r);return r},se=(n,e)=>(t,a)=>e(t,a,n);m.UniverSheetsTablePlugin=(te=class extends u.Plugin{constructor(e=ce,t,a,r){super(),this._config=e,this._injector=t,this._configService=a,this._commandService=r;const{...s}=u.merge({},ce,this._config);this._configService.setConfig(de,s),this._initRegisterCommand()}onStarting(){u.registerDependencies(this._injector,[[m.TableManager],[K],[m.SheetsTableController],[m.SheetTableService],[ee],[G],[X]]),u.touchDependencies(this._injector,[[G],[X],[K],[m.SheetsTableController],[m.SheetTableService],[ee]])}onReady(){u.touchDependencies(this._injector,[[m.TableManager]])}_initRegisterCommand(){[Re,$,we,B,Q,fe,Me,_,pe,ve,Fe,ye,De,Ne].forEach(e=>this._commandService.registerCommand(e))}},T(te,"pluginName",Ie),T(te,"type",u.UniverInstanceType.UNIVER_SHEET),te),m.UniverSheetsTablePlugin=Zt([se(1,u.Inject(u.Injector)),se(2,u.IConfigService),se(3,u.Inject(u.ICommandService))],m.UniverSheetsTablePlugin),m.AddSheetTableCommand=Re,m.AddSheetTableMutation=$,m.AddTableThemeCommand=pe,m.DeleteSheetTableCommand=we,m.DeleteSheetTableMutation=B,m.RemoveTableThemeCommand=ve,m.SHEET_TABLE_CUSTOM_THEME_PREFIX=_e,m.SetSheetTableCommand=Me,m.SetSheetTableFilterCommand=fe,m.SetSheetTableFilterMutation=Q,m.SetSheetTableMutation=_,m.SheetTableInsertColCommand=ye,m.SheetTableInsertRowCommand=Fe,m.SheetTableRemoveColCommand=Ne,m.SheetTableRemoveRowCommand=De,m.SheetsTableButtonStateEnum=A,m.SheetsTableSortStateEnum=L,m.TableColumnDataTypeEnum=ae,m.TableColumnFilterTypeEnum=V,m.TableConditionTypeEnum=O,m.TableDateCompareTypeEnum=S,m.TableNumberCompareTypeEnum=y,m.TableStringCompareTypeEnum=x,m.customEmptyThemeWithBorderStyle=$e,m.isConditionFilter=ue,m.isManualFilter=Ae,m.processStyleWithBorderStyle=Be,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-table",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.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,15 +60,15 @@
|
|
|
60
60
|
"rxjs": ">=7.0.0"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@univerjs/core": "0.
|
|
64
|
-
"@univerjs/sheets": "0.
|
|
63
|
+
"@univerjs/core": "0.11.0",
|
|
64
|
+
"@univerjs/sheets": "0.11.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"rxjs": "^7.8.2",
|
|
68
68
|
"typescript": "^5.9.3",
|
|
69
69
|
"vite": "^7.1.12",
|
|
70
70
|
"vitest": "^3.2.4",
|
|
71
|
-
"@univerjs-infra/shared": "0.
|
|
71
|
+
"@univerjs-infra/shared": "0.11.0"
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
74
|
"test": "vitest run",
|